Grouping of identical stops on trip view
[busui.git] / routeList.php
blob:a/routeList.php -> blob:b/routeList.php
<?php <?php
include ('common.inc.php'); include ('include/common.inc.php');
include_header("Routes", "routeList"); function navbar()
echo ' {
  echo '
<div data-role="navbar"> <div data-role="navbar">
<ul> <ul>
<li><a href="routeList.php">By Final Destination...</a></li> <li><a href="routeList.php">By Final Destination...</a></li>
<li><a href="routeList.php?bynumber=yes">By Number... </a></li> <li><a href="routeList.php?bynumber=yes">By Number... </a></li>
<li><a href="routeList.php?bysuburb=yes">By Suburb... </a></li> <li><a href="routeList.php?bysuburbs=yes">By Suburb... </a></li>
<li><a href="routeList.php?nearby=yes">Nearby... </a></li> <li><a href="routeList.php?nearby=yes">Nearby... </a></li>
</ul> </ul>
</div> </div>
'; ';
echo ' <ul data-role="listview" data-inset="true">'; }
$url = $APIurl . "/json/routes"; if (isset($bysuburbs)) {
$contents = json_decode(getPage($url)); include_header("Routes by Suburb", "routeList");
function printRoutes($routes) navbar();
{ echo ' <ul data-role="listview" data-filter="true" data-inset="true" >';
foreach ($routes as $row) { if (!isset($firstLetter)) {
echo '<li>' . $row[1] . ' <a href="trip.php?routeid=' . $row[0] . '">' . $row[2] . " (" . ucwords($row[3]) . ")</a></li>\n"; foreach (range('A', 'Z') as $letter) {
  echo "<li><a href=\"routeList.php?firstLetter=$letter&amp;bysuburbs=yes\">$letter...</a></li>\n";
  }
  }
  else {
  foreach ($suburbs as $suburb) {
  if (startsWith($suburb, $firstLetter)) {
  echo '<li><a href="routeList.php?suburb=' . urlencode($suburb) . '">' . $suburb . '</a></li>';
  }
  }
  }
  echo '</ul>';
  }
  else if (isset($nearby) || isset($suburb)) {
  $routes = Array();
  if ($suburb) {
  include_header($suburb . " - " . ucwords(service_period()) , "routeList");
  navbar();
  timePlaceSettings();
  trackEvent("Route Lists", "Routes By Suburb", $suburb);
  $routes = getRoutesBySuburb($suburb);
  }
  if (isset($nearby)) {
  include_header("Routes Nearby", "routeList", true, true);
  trackEvent("Route Lists", "Routes Nearby", $_SESSION['lat'] . "," . $_SESSION['lon']);
  navbar();
  placeSettings();
  if (!isset($_SESSION['lat']) || !isset($_SESSION['lat']) || $_SESSION['lat'] == "" || $_SESSION['lon'] == "") {
  include_footer();
  die();
  }
  $routes = getRoutesNearby($_SESSION['lat'], $_SESSION['lon']);
  }
  echo ' <ul data-role="listview" data-filter="true" data-inset="true" >';
  if ($routes) {
  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 (isset($nearby)) {
  $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";
  }
  }
  else {
  echo "<li style='text-align: center;'> No routes nearby.</li>";
} }
} }
if ($_REQUEST['bynumber']) { else if (isset($bynumber) || isset($numberSeries)) {
$routeSeries = Array(); include_header("Routes by Number", "routeList");
$seriesRange = Array(); navbar();
foreach ($contents as $key => $row) { echo ' <ul data-role="listview" data-inset="true">';
foreach (explode(" ", $row[1]) as $routeNumber) { if (isset($bynumber)) {
$seriesNum = substr($routeNumber, 0, -1) . "0"; $routes = getRoutesByNumber();
if ($seriesNum == "0") $seriesNum = $routeNumber; $routeSeries = Array();
$finalDigit = substr($routeNumber, sizeof($routeNumber) - 1, 1); $seriesRange = Array();
if (isset($seriesRange[$seriesNum])) { foreach ($routes as $key => $routeNumber) {
if ($finalDigit < $seriesRange[$seriesNum]['max']) $seriesRange[$seriesNum]['max'] = $routeNumber; foreach (explode(" ", $routeNumber['route_short_name']) as $routeNumber) {
if ($finalDigit > $seriesRange[$seriesNum]['min']) $seriesRange[$seriesNum]['min'] = $routeNumber; $seriesNum = substr($routeNumber, 0, -1) . "0";
  if ($seriesNum == "0") $seriesNum = $routeNumber;
  $finalDigit = substr($routeNumber, sizeof($routeNumber) - 1, 1);
  if (isset($seriesRange[$seriesNum])) {
  if ($finalDigit < $seriesRange[$seriesNum]['max']) $seriesRange[$seriesNum]['max'] = $routeNumber;
  if ($finalDigit > $seriesRange[$seriesNum]['min']) $seriesRange[$seriesNum]['min'] = $routeNumber;
  }
  else {
  $seriesRange[$seriesNum]['max'] = $routeNumber;
  $seriesRange[$seriesNum]['min'] = $routeNumber;
  }
  $routeSeries[$seriesNum][$seriesNum . "-" . $row[1] . "-" . $row[0]] = $row;
} }
else { }
$seriesRange[$seriesNum]['max'] = $routeNumber; ksort($routeSeries);
$seriesRange[$seriesNum]['min'] = $routeNumber; ksort($seriesRange);
} foreach ($routeSeries as $series => $routes) {
$routeSeries[$seriesNum][$seriesNum . "-" . $row[1] . "-" . $row[0]] = $row; echo '<li><a href="' . curPageURL() . '/routeList.php?numberSeries=' . $series . '">';
  if ($series <= 9) echo $series;
  else echo "{$seriesRange[$series]['min']}-{$seriesRange[$series]['max']}";
  echo "</a></li>\n";
} }
} }
ksort($routeSeries); else if ($numberSeries) {
ksort($seriesRange); $routes = getRoutesByNumberSeries($numberSeries);
echo '<div class="noscriptnav"> Go to route numbers: '; foreach ($routes as $route) {
foreach ($seriesRange as $series => $range) { 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></a></li>\n";
if ($range['min'] == $range['max']) echo "<a href=\"#$series\">$series</a>&nbsp;"; }
else echo "<a href=\"#$series\">{$range['min']}-{$range['max']}</a>&nbsp;";  
}  
echo "</div>  
<script>  
$('.noscriptnav').hide();  
</script>";  
foreach ($routeSeries as $series => $routes) {  
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);  
echo "</ul></li>\n";  
} }
} }
else { else {
foreach ($contents as $key => $row) { include_header("Routes by Destination", "routeList");
$routeDestinations[$row[2]][] = $row; navbar();
  echo ' <ul data-role="listview" data-inset="true">';
  if (isset($routeDestination)) {
  foreach (getRoutesByDestination($routeDestination) 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></a></li>\n";
  }
} }
echo '<div class="noscriptnav"> Go to Destination: '; else {
foreach (ksort($routeDestinations) as $destination => $routes) { foreach (getRoutesByDestination() as $destination) {
echo "<a href=\"#$destination\">$destination</a>&nbsp;"; echo '<li><a href="' . curPageURL() . '/routeList.php?routeDestination=' . urlencode($destination['route_long_name']) . '">' . $destination['route_long_name'] . "... </a></li>\n";
} }
echo "</div>  
<script>  
$('.noscriptnav').hide();  
</script>";  
foreach ($routeDestinations as $destination => $routes) {  
echo '<a name="' . $destination . '"></a>';  
echo '<li>' . $destination . "... <ul>\n";  
printRoutes($routes);  
echo "</ul></li>\n";  
} }
} }
echo "</ul>\n"; echo "</ul>\n";
include_footer(); include_footer();
?> ?>