Nearby routes and routes by suburb
[busui.git] / routeList.php
blob:a/routeList.php -> blob:b/routeList.php
--- a/routeList.php
+++ b/routeList.php
@@ -1,7 +1,8 @@
 <?php
 include ('common.inc.php');
-include_header("Routes", "routeList");
-echo '
+function navbar()
+{
+	echo '
 		<div data-role="navbar"> 
 			<ul> 
 				<li><a href="routeList.php">By Final Destination...</a></li> 
@@ -11,16 +12,55 @@
 			</ul>
                 </div>
 	';
-echo '  <ul data-role="listview"  data-inset="true">';
-$url = $APIurl . "/json/routes";
-$contents = json_decode(getPage($url));
-function printRoutes($routes)
-{
+}
+if ($_REQUEST['bysuburb']) {
+	include_header("Routes by Suburb", "routeList");
+	navbar();
+	echo '  <ul data-role="listview" data-filter="true" data-inset="true" >';
+	foreach ($suburbs as $suburb) {
+		if (!isset($_REQUEST['firstLetter'])) {
+			foreach (range('A', 'Z') as $letter) {
+				echo "<li><a href=\"routeList.php?firstLetter=$letter&bysuburb=yes\">$letter...</a></li>\n";
+			}
+		}
+		else if (startsWith($suburb, $_REQUEST['firstLetter'])) {
+			echo '<li><a href="routeList.php?suburb=' . urlencode($suburb) . '">' . $suburb . '</a></li>';
+		}
+	}
+	echo '</ul>';
+}
+else if ($_REQUEST['nearby'] || $_REQUEST['suburb']) {
+	if ($_REQUEST['suburb']) {
+		$suburb = filter_var($_REQUEST['suburb'], FILTER_SANITIZE_STRING);
+		$url = $APIurl . "/json/stopzonesearch?q=" . $suburb;
+		include_header("Routes by Suburb", "routeList");
+	}
+	if ($_REQUEST['nearby']) {
+		$url = $APIurl . "/json/neareststops?lat={$_SESSION['lat']}&lon={$_SESSION['lon']}&limit=15";
+		include_header("Routes Nearby", "routeList");
+	}
+	$stops = json_decode(getPage($url));
+	$routes = Array();
+	foreach ($stops as $stop) {
+		$url = $APIurl . "/json/stoproutes?stop=" . $stop[0];
+		$stoproutes = json_decode(getPage($url));
+		foreach ($stoproutes as $route) {
+			if (!isset($routes[$route[0]])) $routes[$route[0]] = $route;
+		}
+	}
+	navbar();
+	echo '  <ul data-role="listview" data-filter="true" data-inset="true" >';
+	sksort($routes, 1, true);
 	foreach ($routes as $row) {
-		echo '<li>' . $row[1] . ' <a href="trip.php?routeid=' . $row[0] . '">' . $row[2] . " (" . ucwords($row[3]) . ")</a></li>\n";
+		echo '<li>' . $row[1] . ' <a href="trip.php?routeid=' . $row[0] . '">' . $row[2] . " (" . ucwords($row[4]) . ")</a></li>\n";
 	}
 }
-if ($_REQUEST['bynumber']) {
+else if ($_REQUEST['bynumber']) {
+	include_header("Routes by Number", "routeList");
+	navbar();
+	echo ' <ul data-role="listview"  data-inset="true">';
+	$url = $APIurl . "/json/routes";
+	$contents = json_decode(getPage($url));
 	$routeSeries = Array();
 	$seriesRange = Array();
 	foreach ($contents as $key => $row) {
@@ -54,11 +94,19 @@
 		echo '<a name="' . $series . '"></a>';
 		if ($series <= 9) echo '<li>' . $series . "<ul>\n";
 		else echo "<li>{$seriesRange[$series]['min']}-{$seriesRange[$series]['max']}<ul>\n";
-		printRoutes($routes);
+		foreach ($routes as $row) {
+			echo '<li>' . $row[1] . ' <a href="trip.php?routeid=' . $row[0] . '">' . $row[2] . " (" . ucwords($row[3]) . ")</a></li>\n";
+		}
 		echo "</ul></li>\n";
 	}
 }
 else {
+	include_header("Routes by Destination", "routeList");
+	navbar();
+	echo ' <ul data-role="listview"  data-inset="true">';
+	$url = $APIurl . "/json/routes";
+	$contents = json_decode(getPage($url));
+	// by destination!
 	foreach ($contents as $key => $row) {
 		$routeDestinations[$row[2]][] = $row;
 	}
@@ -73,7 +121,9 @@
 	foreach ($routeDestinations as $destination => $routes) {
 		echo '<a name="' . $destination . '"></a>';
 		echo '<li>' . $destination . "... <ul>\n";
-		printRoutes($routes);
+		foreach ($routes as $row) {
+			echo '<li>' . $row[1] . ' <a href="trip.php?routeid=' . $row[0] . '">' . $row[2] . " (" . ucwords($row[3]) . ")</a></li>\n";
+		}
 		echo "</ul></li>\n";
 	}
 }