Fixed current time javascript
Fixed current time javascript

--- a/include/common-session.inc.php
+++ b/include/common-session.inc.php
@@ -53,4 +53,7 @@
 }
 debug(print_r($_SESSION, true) , "session");
 
+function current_time() {
+	return ($_SESSION['time']? $_SESSION['time'] : date("H:i:s"));
+}
 ?>

--- a/include/common-template.inc.php
+++ b/include/common-template.inc.php
@@ -222,7 +222,7 @@
     		<div data-role="fieldcontain">
 		        <label for="time"> Time: </label>
 		    	<input type="time" name="time" id="time" value="' . (isset($_SESSION['time']) ? $_SESSION['time'] : date("H:i")) . '"/>
-			<a href="#" name="currentTime" id="currentTime" onClick="var d = new Date();' . "$('#time').val(d.getHours() +':'+ (d.getMinutes().toString().length = 1 ? '0'+ d.getMinutes():  d.getMinutes()));" . '">Current Time?</a>
+			<a href="#" name="currentTime" id="currentTime" onClick="var d = new Date();' . "$('#time').val(d.getHours() +':'+ (d.getMinutes().toString().length == 1 ? '0'+ d.getMinutes():  d.getMinutes()));" . '">Current Time?</a>
 	        </div>
 		<div data-role="fieldcontain">
 		    <label for="service_period"> Service Period:  </label>

--- a/include/db/route-dao.inc.php
+++ b/include/db/route-dao.inc.php
@@ -40,10 +40,10 @@
 }
 
 function getRouteNextTrip($routeID) {
-    global $conn;
+     global $conn;
     $query = "select * from routes join trips on trips.route_id = routes.route_id
 join stop_times on stop_times.trip_id = trips.trip_id where
-arrival_time > CURRENT_TIME and routes.route_id = '$routeID' order by
+arrival_time > '".current_time()."' and routes.route_id = '$routeID' order by
 arrival_time limit 1";
         debug($query,"database");
 	$result = pg_query($conn, $query);
@@ -53,6 +53,18 @@
 	}
 	return pg_fetch_assoc($result);       
   }
+  
+  function getTimeInterpolatedRouteAtStop($routeID, $stop_id)
+{
+    $nextTrip = getRouteNextTrip($routeID);
+    if ($nextTrip['trip_id']){
+    	foreach (getTimeInterpolatedTrip($nextTrip['trip_id']) as $tripStop) {
+		if ($tripStop['stop_id'] == $stop_id) return $tripStop;
+	}
+    }
+	return Array();
+}
+  
 function getRouteTrips($routeID) {
         global $conn;
     $query = "select * from routes join trips on trips.route_id = routes.route_id
@@ -112,7 +124,7 @@
                  if ($service_period == "") $service_period = service_period();
                   if ($limit != "") $limit = " LIMIT $limit "; 
     global $conn;
-        $query = "SELECT service_id,trips.route_id,route_short_name,route_long_name,
+        $query = "SELECT service_id,trips.route_id,route_short_name,route_long_name,min(stops.stop_id) as stop_id,
         min(ST_Distance(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), FALSE)) as distance
 FROM stop_times
 join trips on trips.trip_id = stop_times.trip_id

--- a/include/db/stop-dao.inc.php
+++ b/include/db/stop-dao.inc.php
@@ -119,7 +119,7 @@
 {
 	if ($service_period == "") $service_period = service_period();
 	if ($time_range == "") $time_range = (24 * 60 * 60);
-	if ($time == "") $time = ($_SESSION['time'] ? $_SESSION['time'] : date("H:i:s"));
+	if ($time == "") $time = current_time();
 	if ($limit == "") $limit = 10;
 	$trips = getStopTrips($stopID, $service_period, $time);
 	$timedTrips = Array();

--- a/include/db/trip-dao.inc.php
+++ b/include/db/trip-dao.inc.php
@@ -109,10 +109,11 @@
 	}
 	return $rv;
 }
-function getTimeInterpolatedTripAtStop($tripID, $stop_sequence)
+function getTimeInterpolatedTripAtStop($tripID, $stop_sequence, $stop_id = "")
 {
     	foreach (getTimeInterpolatedTrip($tripID) as $tripStop) {
 		if ($tripStop['stop_sequence'] == $stop_sequence) return $tripStop;
+		if ($tripStop['stop_id'] == $stop_id) return $tripStop;
 	}
 	return Array();
 }

--- a/layar_api.php
+++ b/layar_api.php
@@ -3,18 +3,18 @@
 $output = Array();
 $output['hotspots'] = Array();
 $output['layer'] = "canberrabusstops";
-//$max_page = 10;
-//$max_results = 50;
-//$page_start = 0 + filter_var($_REQUEST['pageKey'], FILTER_SANITIZE_NUMBER_INT);
-//$page_end = $max_page + filter_var($_REQUEST['pageKey'], FILTER_SANITIZE_NUMBER_INT);
+$max_page = 10;
+$max_results = 50;
+$page_start = 0 + filter_var($_REQUEST['pageKey'], FILTER_SANITIZE_NUMBER_INT);
+$page_end = $max_page + filter_var($_REQUEST['pageKey'], FILTER_SANITIZE_NUMBER_INT);
 $lat = filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
 $lon = filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
-
-$contents = getNearbyStops($lat, $lon, 50);
+$max_distance = filter_var($_REQUEST['radius'], FILTER_SANITIZE_NUMBER_INT);
+$contents = getNearbyStops($lat, $lon, 50, $max_distance);
 $stopNum = 0;
 foreach ($contents as $stop) {
 	$stopNum++;
-//	if ($stopNum > $page_start && $stopNum <= $page_end) {
+	if ($stopNum > $page_start && $stopNum <= $page_end) {
 		$hotspot = Array();
 		$hotspot['id'] = $stop['stop_id'];
 		$hotspot['title'] = $stop['stop_name'];
@@ -22,22 +22,22 @@
 		$hotspot['lat'] = floor($stop['stop_lat'] * 1000000);
 		$hotspot['lon'] = floor($stop['stop_lon'] * 1000000);
 		$hotspot['distance'] = floor($stop['distance']);
+		$hotspot['attribution'] = "ACTION Buses";
 		$hotspot['actions'] = Array(
 			Array(
 				"label" => 'View more trips/information',
 				'uri' => 'http://bus.lambdacomplex.org/' . 'stop.php?stopid=' . $stop['stop_id']
 			)
 		);
-
-		$trips = getStopTripsWithTimes($stop['stop_id'],"","","",3);
+		$trips = getStopTripsWithTimes($stop['stop_id'], "", "", "", 3);
 		foreach ($trips as $key => $row) {
 			if ($key < 3) {
-				$hotspot['line' . strval($key + 2) ] = $row['route_short_name'] . ' '. $row['route_long_name']. ' @ ' . $row['arrival_time'];
+				$hotspot['line' . strval($key + 2) ] = $row['route_short_name'] . ' ' . $row['route_long_name'] . ' @ ' . $row['arrival_time'];
 			}
 		}
 		if (sizeof($trips) == 0) $hotspot['line2'] = 'No trips in the near future.';
 		$output['hotspots'][] = $hotspot;
-//	}
+	}
 }
 if (sizeof($hotspot) > 0) {
 	$output['errorString'] = 'ok';
@@ -47,14 +47,14 @@
 	$output['errorString'] = 'no results, try increasing range';
 	$output['errorCode'] = 21;
 }
-/*if ($page_end >= $max_results || sizeof($hotspot) < $max_page) {*/
+if ($page_end >= $max_results || sizeof($contents) < $page_start+$max_page) {
 	$output["morePages"] = false;
 	$output["nextPageKey"] = null;
-/*}
+}
 else {
 	$output["morePages"] = true;
 	$output["nextPageKey"] = $page_end;
-}*/
+}
 echo json_encode($output);
 ?>
 

--- a/routeList.php
+++ b/routeList.php
@@ -59,7 +59,8 @@
 	foreach ($routes as $route) {
 		echo '<li><a href="trip.php?routeid=' . $route['route_id'] . '"><h3>' . $route['route_short_name'] . "</h3><p>" . $route['route_long_name'] . " (" . ucwords($route['service_id']) . ")</p>";
 		if ($_REQUEST['nearby']) {
-				echo '<span class="ui-li-count">' .floor($route['distance']) . 'm away</span>';
+			$time = getTimeInterpolatedRouteAtStop($route['route_id'], $route['stop_id']);
+				echo '<span class="ui-li-count">'.($time['arrival_time']?$time['arrival_time']:"No more trips today")."<br>" .floor($route['distance']) . 'm away</span>';
 		}
 		echo "</a></li>\n";
 	}