--- a/busui/routeList.php +++ b/busui/routeList.php @@ -1,34 +1,90 @@ <?php include('common.inc.php'); include_header("Routes"); -/* data-filter="true">'; -echo "<script> $('#routeList').listnav({prefixes: ['to'] }); </script>";*/ +echo' + <div data-role="navbar"> + <ul> + <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?bysuburb=yes">By Suburb... </a></li>--> + </ul> + </div> + '; echo ' <ul data-role="listview">'; $url = $APIurl."/json/routes"; +$contents = json_decode(getPage($url)); +debug(print_r($contents,true)); -$contents = json_decode(getPage($url)); -foreach ($contents as $key => $row) { - $routeDestinations[$row[2]][] = $row; +function 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"; + } } -foreach ($routeDestinations as $destination => $routes) -{ - echo '<li>'.$destination."... <ul>\n"; - foreach($routes as $row) { - echo '<li>'.$row[1].' <a href="route.php?routeid='.$row[0].'">'.$row[2]."</a></li>\n"; + +if ($_REQUEST['bynumber']) { + $routeSeries = Array(); + $seriesRange = Array(); + foreach ($contents as $key => $row) { + foreach (explode(" ",$row[1]) as $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; } - echo "</ul></li>\n"; + } + ksort($routeSeries); + ksort($seriesRange); + echo '<div class="noscriptnav"> Go to route numbers: '; + foreach ($seriesRange as $series => $range) + { + if ($range['min'] == $range['max']) echo "<a href=\"#$series\">$series</a> "; + else echo "<a href=\"#$series\">{$range['min']}-{$range['max']}</a> "; + } + 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 { + foreach ($contents as $key => $row) { + $routeDestinations[$row[2]][] = $row; + } + echo '<div class="noscriptnav"> Go to Destination: '; + foreach(ksort($routeDestinations) as $destination => $routes) + { + echo "<a href=\"#$destination\">$destination</a> "; + } + 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"; -/* - <div data-role="footer" data-id="foo1" data-position="fixed"> - <div data-role="navbar"> - <ul> - <li><a href="footer-persist-a.html" class="ui-btn-active">Friends</a></li> - <li><a href="footer-persist-b.html">Albums</a></li> - <li><a href="footer-persist-c.html">Emails</a></li> - </ul> - </div><!-- /navbar --> -*/ + + include_footer(); ?>