previous/next trip on route/trip view
previous/next trip on route/trip view

--- a/include/common-geo.inc.php
+++ b/include/common-geo.inc.php
@@ -13,14 +13,11 @@
 	$metersperpixel[13] = 19.093 * $width;
 	$metersperpixel[14] = 9.547 * $width;
 	$metersperpixel[15] = 4.773 * $width;
-	$metersperpixel[16] = 2.387 * $width;
+	//$metersperpixel[16] = 2.387 * $width;
 	// $metersperpixel[17]=1.193*$width;
 	$center = "";
 	$markers = "";
-	$minlat = 999;
-	$minlon = 999;
-	$maxlat = 0;
-	$maxlon = 0;
+	$mapwidthinmeters = 50; 
 	if (sizeof($mapPoints) < 1) return "map error";
 	if (sizeof($mapPoints) === 1) {
 		if ($zoom == 0) $zoom = 14;
@@ -31,17 +28,15 @@
 		foreach ($mapPoints as $index => $mapPoint) {
 			$markers.= $mapPoint[0] . "," . $mapPoint[1] . "," . $markerImage . ($index + 1);
 			if ($index + 1 != sizeof($mapPoints)) $markers.= "|";
-			if ($mapPoint[0] < $minlat) $minlat = $mapPoint[0];
-			if ($mapPoint[0] > $maxlat) $maxlat = $mapPoint[0];
-			if ($mapPoint[1] < $minlon) $minlon = $mapPoint[1];
-			if ($mapPoint[1] > $maxlon) $maxlon = $mapPoint[1];
+			$dist = distance($mapPoints[0][0], $mapPoint[0][1],$mapPoint[0], $mapPoint[1]);
+			$mapwidthinmeters = ($dist>$mapwidthinmeters ? $dist : $mapwidthinmeters);
 			$totalLat+= $mapPoint[0];
 			$totalLon+= $mapPoint[1];
 		}
 		if ($zoom == 0) {
 			$mapwidthinmeters = distance($minlat, $minlon, $minlat, $maxlon);
 			foreach (array_reverse($metersperpixel, true) as $zoomLevel => $maxdistance) {
-				if ($zoom == 0 && $mapwidthinmeters < ($maxdistance + 50)) $zoom = $zoomLevel;
+				if ($zoom == 0 && $mapwidthinmeters*1.5 < ($maxdistance)) $zoom = $zoomLevel;
 			}
 		}
 		$center = $totalLat / sizeof($mapPoints) . "," . $totalLon / sizeof($mapPoints);

--- a/include/common-template.inc.php
+++ b/include/common-template.inc.php
@@ -322,10 +322,6 @@
 $(document).ready(function() {
         $('#here').click(function(event) { $('#geolocate').val(geolocate()); return false;});
         $('#here').show();
-	/*if ($.mobile.media('screen and (min-width: 768px)')) {
-	  $('map a:first').click();
-	  $('#settings a:first').click();
-	}*/
 });
 ";
 		if (!isset($_SESSION['lat']) || $_SESSION['lat'] == "") echo "geolocate();";

--- a/include/common.inc.php
+++ b/include/common.inc.php
@@ -6,7 +6,7 @@
 	"phperror",
 	"awsotp",
 	//"squallotp",
-	"vanilleotp",
+	//"vanilleotp",
 	"database",
 	"other"
 );

file:a/trip.php -> file:b/trip.php
--- a/trip.php
+++ b/trip.php
@@ -9,15 +9,23 @@
 	$trip = getTrip($tripid);
 	$routeid = $trip["route_id"];
 }
-$routetrips = getRouteTrips($routeid);
+
 include_header("Stops on " . $trip['route_short_name'] . ' ' . $trip['route_long_name'], "trip");
 trackEvent("Route/Trip View", "View Route", $trip['route_short_name'] . ' ' . $trip['route_long_name'], $routeid);
 echo '<span class="content-secondary">';
 echo '<a href="' . $trip['route_url'] . '">View Original Timetable/Map</a>';
 echo '<h2>Via:</h2> <small>' . viaPointNames($tripid) . '</small>';
 echo '<h2>Other Trips:</h2> ';
-foreach (getRouteTrips($routeid) as $othertrip) {
+$routeTrips = getRouteTrips($routeid);
+foreach ($routeTrips as $key => $othertrip) {
+    if ($othertrip['trip_id']!= $tripid) {
 	echo '<a href="trip.php?tripid=' . $othertrip['trip_id'] . "&amp;routeid=" . $routeid . '">' . str_replace("  ", ":00", str_replace(":00", " ", $othertrip['arrival_time'])) . '</a> ';
+    } else {
+        // skip this trip but look forward/back
+        if ($key-1 > 0) $prevTrip = $routeTrips[$key-1]['trip_id'];
+        if ($key+1 < sizeof($routeTrips)) $nextTrip = $routeTrips[$key+1]['trip_id'];
+        
+    }
 }
 flush();
 @ob_flush();
@@ -33,6 +41,10 @@
 echo '</span><span class="content-primary">';
 flush();
 @ob_flush();
+echo "<div class='ui-header' style='overflow: visible; height: 1.5em'>";
+if($nextTrip) echo '<a href="trip.php?tripid=' . $nextTrip . "&amp;routeid=" . $routeid . '" data-icon="arrow-r" class="ui-btn-right">Next Trip</a>';
+if($prevTrip) echo '<a href="trip.php?tripid=' . $prevTrip . "&amp;routeid=" . $routeid . '" data-icon="arrow-l" class="ui-btn-left">Previous Trip</a>';
+echo "</div>";
 echo '  <ul data-role="listview"  data-inset="true">';
 $stopsGrouped = Array();
 $tripStopTimes = getTimeInterpolatedTrip($tripid);

--- a/tripPlanner.php
+++ b/tripPlanner.php
@@ -1,6 +1,6 @@
 <?php
 include ('include/common.inc.php');
-include_header("Trip Planner", "tripPlanner", true, true, true);
+include_header("Trip Planner", "tripPlanner", true, false, true);
 $from = (isset($_REQUEST['from']) ? filter_var($_REQUEST['from'], FILTER_SANITIZE_STRING) : "");
 $to = (isset($_REQUEST['to']) ? filter_var($_REQUEST['to'], FILTER_SANITIZE_STRING) : "");
 $date = (isset($_REQUEST['date']) ? filter_var($_REQUEST['date'], FILTER_SANITIZE_STRING) : date("m/d/Y"));
@@ -13,17 +13,17 @@
 function tripPlanForm($errorMessage = "")
 {
 	global $date, $time, $from, $to;
-	echo "<font color=red>$errorMessage</font>";
+	echo "<div class='error'>$errorMessage</font>";
 	echo '<form action="tripPlanner.php" method="post">
     <div data-role="fieldcontain">
         <label for="from">I would like to go from</label>
         <input type="text" name="from" id="from" value="' . $from . '"  />
-        <a href="#" style="display:none" name="fromHere" id="fromHere"/>Here?</a>
+        <a href="#" style="display:none" name="fromHere" id="fromHere">Here?</a>
     </div>
         <div data-role="fieldcontain">
         <label for="to"> to </label>
         <input type="text" name="to" id="to" value="' . $to . '"  />
-        <a href="#" style="display:none" name="toHere" id="toHere"/>Here?</a>
+        <a href="#" style="display:none" name="toHere" id="toHere">Here?</a>
     </div>
     <div data-role="fieldcontain">
         <label for="date"> on </label>
@@ -34,13 +34,7 @@
         <input type="time" name="time" id="time" value="' . $time . '"  />
     </div>
         <input type="submit" value="Go!"></form>';
-	echo "<script>
-$('#toHere').click(function(event) { $('#to').val(getCookie('geolocate')); return false;});
-$('#toHere').show();
-$('#fromHere').click(function(event) { $('#from').val(getCookie('geolocate')); return false;});
-$('#fromHere').show();
 
-        </script>";
 }
 function processItinerary($itineraryNumber, $itinerary)
 {
@@ -83,7 +77,7 @@
 	$legArray = object2array($leg);
 	echo '<h3>Leg #' . ($legNumber + 1) . " ( {$legArray['@mode']} from: {$leg->from->name} to {$leg->to->name}, " . floor($leg->duration / 60000) . " minutes) </h3>\n";
 	if ($legArray["@mode"] === "BUS") {
-		echo "Take bus {$legArray['@route']} " . str_replace("To", "towards", $legArray['@headsign']) . "<br>";
+		echo "Take bus {$legArray['@route']} " . str_replace("To", "towards", $legArray['@headsign']) . " departing at ". formatTime($leg->startTime)."<br>";
 	}
 	else {
 		$walkStepMarkers = array();
@@ -117,7 +111,6 @@
 	}
 	else if (strpos($to, "(") !== false) {
 		$toParts = explode("(", $to);
-                print_r($toParts);
 		$toPlace = str_replace( ")", "", $toParts[1]);
 	}
 	else {