Add initial between point adding prototype
[bus.git] / betweenpoint.php
blob:a/betweenpoint.php -> blob:b/betweenpoint.php
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <script src="openlayers/OpenLayers.js"></script>
  <SCRIPT TYPE="text/javascript" SRC="OpenStreetMap.js"></SCRIPT>
  <script type="text/javascript" src="jquery.1.3.2.min.js"></script>
  <script type="text/javascript">
   
  function init()
  {
  // create the ol map object
  var map = new OpenLayers.Map('map');
   
  var osmtiles = new OpenLayers.Layer.OSM("local", "http://127.0.0.1/Maps/OSM/${z}/${x}/${y}.png")
  // use http://open.atlas.free.fr/GMapsTransparenciesImgOver.php and http://code.google.com/p/googletilecutter/ to make tiles
  markers = new OpenLayers.Layer.Markers("Between Stop Markers");
   
   
  <?php
  $conn = pg_connect("dbname=bus user=postgres password=snmc");
  if (!$conn) {
  echo "An error occured.\n";
  exit;
  }
  $result_stops = pg_query($conn, "Select * FROM stops");
   
  while ($stop = pg_fetch_assoc($result_stops)) {
  echo 'marker = new OpenLayers.Marker(new OpenLayers.LonLat('.($stop['lng']/10000000).",".($stop['lat']/10000000).')
  .transform(
  new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
  new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
  ));';
   
  echo '
  marker.id="'.$stop['geohash'].'";
  markers.addMarker(marker);
  marker.events.register("mousedown", marker, function() {
  document.getElementById("between_points").innerHTML += this.id+";";
  });
  ';
  }
  ?>
  var timeicon = new OpenLayers.Icon("http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png",new OpenLayers.Size(32,32));
  var timepoints = new OpenLayers.Layer.GeoRSS("Timing Points", "displaytimepoints.georss.php", { icon: timeicon });
   
  map.addLayers([osmtiles, markers,timepoints]);
  map.addControl(new OpenLayers.Control.LayerSwitcher());
  map.zoomToExtent(markers.getDataExtent());
  }
   
  function submit(){
  $.ajax({
  type: "POST",
  url: "betweenpoint.submit.php",
  data: "reverse=" + document.getElementById("reverse").value +
  "&from=" + document.getElementById("from").value +
  "&to=" + document.getElementById("to").value +
  "&routes=" + document.getElementById("routes").value +
  "&between_points=" + document.getElementById("between_points").value,
  success: function(html){
  $("#response").html(html);
  clearForms();
  }
  });
   
  }
  <!--
  function OnChange(dropdown)
  {
  var myindex = dropdown.selectedIndex
  var selValue = dropdown.options[myindex].value
  alert(selValue);
  return true;
  }
  //-->
   
  // function will clear input elements on each form
  function clearForms(){
  document.getElementById("between_points").innerHTML = "";
  // declare element type
  var type = null;
  // loop through forms on HTML page
  for (var x=0; x<document.forms.length; x++){
  // loop through each element on form
  for (var y=0; y<document.forms[x].elements.length; y++){
  // define element type
  type = document.forms[x].elements[y].type
  // alert before erasing form element
  //alert('form='+x+' element='+y+' type='+type);
  // switch on element type
  switch(type){
  case "text":
  case "textarea":
  case "password":
  //case "hidden":
  document.forms[x].elements[y].value = "";
  break;
  case "radio":
  case "checkbox":
  document.forms[x].elements[y].checked = "";
  break;
  case "select-one":
  document.forms[x].elements[y].options[0].selected = true;
  break;
  case "select-multiple":
  for (z=0; z<document.forms[x].elements[y].options.length; z++){
  document.forms[x].elements[y].options[z].selected = false;
  }
  break;
  }
  }
  }
  }
  </script>
   
  </head>
  <body onload="init()">
  <div id="inputpane"><form id="inputform">
  <select name=selectPair onchange='OnChange(this.form.selectPair);'>
  <option>Select a from/to pair...</option>
  <?php
  include('spyc/spyc.php');
  //$timetable = Spyc::YAMLLoad('../spyc.yaml');
  $path = "maxious-canberra-transit-feed/output/";
  $dhandle = opendir("maxious-canberra-transit-feed/output/");
  // define an array to hold the files
  $files = array();
  $paths = array();
   
  if ($dhandle) {
  // loop through all of the files
  while (false !== ($fname = readdir($dhandle))) {
  if (($fname != '.') && ($fname != '..')) {
  $timetable = Spyc::YAMLLoad("maxious-canberra-transit-feed/output/".$fname);
  for ($i = 0; $i < sizeof($timetable["time_points"]) -1 ; $i++)
  {
  @$paths[$timetable["time_points"][$i]."->".$timetable["time_points"][$i+1]] .= $timetable["short_name"].";";
  }
  }
  }
  }
  $completedPaths = Array("Cameron Ave Bus Station->Lathlain St Bus Station",
  "Lathlain St Bus Station->Cohen St Bus Station",
  "Cohen St Bus Station->Lathlain St Bus Station",
  "Lathlain St Bus Station->Cameron Ave Bus Station",
  "Lathlain St Bus Station - Platform 1->Cameron Ave Bus Station - Platform 1",
  "Lathlain St Bus Station - Platform 2->Cameron Ave Bus Station - Platform 1",
  "Lathlain St Bus Station - Platform 2->Cameron Ave Bus Station - Platform 2",
  "Lathlain St Bus Station - Platform 3->Cameron Ave Bus Station - Platform 2",
  "Lathlain St Bus Station - Platform 3->Cameron Ave Bus Station - Platform 3",
  "Lathlain St Bus Station - Platform 4->Cohen St Bus Station - Platform 4",
  "Lathlain St Bus Station - Platform 4->Cohen St Bus Station - Platform 6",
  "Lathlain St Bus Station - Platform 5->Cohen St Bus Station - Platform 5",
  "Lathlain St Bus Station - Platform 6->Cohen St Bus Station - Platform 5",
  "Cohen St Bus Station - Platform 1->Lathlain St Bus Station - Platform 2",
  "Cohen St Bus Station - Platform 1->Lathlain St Bus Station - Platform 3",
  "Cohen St Bus Station - Platform 2->Lathlain St Bus Station - Platform 1",
  "Cohen St Bus Station - Platform 2->Lathlain St Bus Station - Platform 2",
  "Cohen St Bus Station - Platform 2->Lathlain St Bus Station - Platform 3",
  "Cohen St Bus Station - Platform 3->Lathlain St Bus Station - Platform 1",
  "Cameron Ave Bus Station - Platform 4->Lathlain St Bus Station - Platform 4",
  "Cameron Ave Bus Station - Platform 5->Lathlain St Bus Station - Platform 5",
  "Cameron Ave Bus Station - Platform 5->Lathlain St Bus Station - Platform 6"
  );
  ksort($paths);
  foreach ($paths as $path => $routes)
  {
  if (!in_array($path,$completedPaths)) echo "<option value=\"$routes:$path\">".sizeof(explode(";",$routes))." $path</option>\n";
  }
  ?>
  </select>
  from <input type="text" id="from"/>
  to <input type="text" id="to"/>
  <br>
  on routes <input type="text" id="routes"/>
  Reverse? <input type="checkbox" name="reverse" id="reverse" value="true"/>
  <input type="button" onclick="javascript:submit()" name="mysubmit" value="Submit!">
  <input type="button" value="Clear" onclick="javascript:clearForms()" title="Start clearForms() JavaScript function">
  <br>
  <textarea id="between_points" rows="1" cols="120"></textarea>
  </form>
  <br><div id="response">
  <!-- Our message will be echoed out here -->
  </div>
  </div>
  <div id="map" width="100%" height="100%"></div>
  </body>
  </html>