Local debugging switches
[bus.git] / busui / common.inc.php
blob:a/busui/common.inc.php -> blob:b/busui/common.inc.php
--- a/busui/common.inc.php
+++ b/busui/common.inc.php
@@ -2,39 +2,61 @@
 date_default_timezone_set('Australia/ACT');
 $APIurl = "http://localhost:8765";
 error_reporting(E_ALL ^ E_NOTICE);
+
+// SELECT array_to_string(array(SELECT REPLACE(name_2006, ',', '\,') as name FROM suburbs order by name), ',')
+$suburbs = explode(",","Acton,Ainslie,Amaroo,Aranda,Banks,Barton,Belconnen,Bonner,Bonython,Braddon,Bruce,Calwell,Campbell,Chapman,Charnwood,Chifley,Chisholm,City,Conder,Cook,Curtin,Deakin,Dickson,Downer,Duffy,Dunlop,Evatt,Fadden,Farrer,Fisher,Florey,Flynn,Forrest,Franklin,Fraser,Fyshwick,Garran,Gilmore,Giralang,Gordon,Gowrie,Greenway,Griffith,Gungahlin,Hackett,Hall,Harrison,Hawker,Higgins,Holder,Holt,Hughes,Hume,Isaacs,Isabella Plains,Kaleen,Kambah,Kingston,Latham,Lawson,Lyneham,Lyons,Macarthur,Macgregor,Macquarie,Mawson,McKellar,Melba,Mitchell,Monash,Narrabundah,Ngunnawal,Nicholls,Oaks Estate,O'Connor,O'Malley,Oxley,Page,Palmerston,Parkes,Pearce,Phillip,Pialligo,Red Hill,Reid,Richardson,Rivett,Russell,Scullin,Spence,Stirling,Symonston,Tharwa,Theodore,Torrens,Turner,Wanniassa,Waramanga,Watson,Weetangera,Weston,Yarralumla");
+
  // you have to open the session to be able to modify or remove it 
+session_start(); 
+ 
+
+function isDebug()
+{
+    return $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME'];
+}
+
+function debug($msg) {
+    if (isDebug()) echo "<!-- $msg -->";
+}
+function isFastDevice() {
+    return true;
+}
+
+function include_header($pageTitle, $opendiv = true, $geolocate = false) {
+ // this starts the session 
  session_start(); 
  
-
-function isDebug()
-{
-    return $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME'];
-}
-
-function debug($msg) {
-    if (isDebug()) echo "<!-- $msg -->";
-}
-function isFastDevice() {
-    return true;
-}
-
-function include_header($pageTitle, $opendiv = true, $geolocate = false) {
     // if (isDebug()) // set php error level high
     echo '
 <!DOCTYPE html> 
 <html> 
 	<head> 
-	<title>bus.lambdacomplex.org - '.$pageTitle.'</title> 
+	<title>busness time - '.$pageTitle.'</title> 
 	';
-         if (isDebug()) echo '<link rel="stylesheet"  href="jquery-mobile-1.0a2.css" />
-        <script type="text/javascript" src="jquery-mobile-1.0a2.js"></script>';
-         else echo '<link rel="stylesheet"  href="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.css" />
-        <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.js"></script>';
+         if (isDebug()) echo '<link rel="stylesheet"  href="css/jquery-mobile-1.0a3.css" />
+         <script type="text/javascript" src="js/jquery-1.5.js"></script>
+        <script type="text/javascript" src="js/jquery-mobile-1.0a3.js"></script>';
+         else echo '<link rel="stylesheet"  href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.css" />
+        <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"></script>
+        <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.js"></script>';
 echo '
+<link rel="stylesheet"  href="css/jquery.ui.datepicker.mobile.css" />
+	<script> 
+		//reset type=date inputs to text
+		$( document ).bind( "mobileinit", function(){
+			$.mobile.page.prototype.options.degradeInputs.date = true;
+		});	
+	</script> 
+	<script src="js/jQuery.ui.datepicker.js"></script> 
+	<script src="js/jquery.ui.datepicker.mobile.js"></script> 
      <style type="text/css">
      .ui-navbar {
      padding-bottom: 18px;
      width: 100%;
+     }
+     
+     .ui-li-heading {
+        white-space: normal !important;
      }
 </style>
 <meta name="apple-mobile-web-app-capable" content="yes" />
@@ -133,15 +155,22 @@
 
 function midnight_seconds_to_time($seconds)
 {
+if ($seconds > 0) {
 	$midnight = mktime (0, 0, 0, date("n"), date("j"), date("Y"));
 	return date("h:ia",$midnight+$seconds);
+} else {
+return "";
+}
 }
 function getPage($url)
 {
+    debug($url);
     $ch = curl_init($url);
 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
 curl_setopt( $ch, CURLOPT_HEADER, 0 );
+          curl_setopt($ch,CURLOPT_TIMEOUT,30); 
 $page = curl_exec($ch);
+ if(curl_errno($ch)) echo "<font color=red> Database temporarily unavailable: ".curl_errno($ch)." ".curl_error($ch)."</font>";
 curl_close($ch);
 return $page;
 }
@@ -328,6 +357,41 @@
     if($case){return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);}
     return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);
 }
+function bracketsMeanNewLine($input) {
+    return str_replace(")","</small>",str_replace("(","<br><small>",$input));
+}
+
+function viaPoints($tripid,$stopid, $timingPointsOnly = false) {
+    global $APIurl;
+    $url = $APIurl."/json/tripstoptimes?trip=".$tripid;
+
+$json = json_decode(getPage($url));
+debug(print_r($json,true));
+$stops = $json[0];
+$times = $json[1];
+$foundStop = false;
+$viaPoints = Array();
+foreach ($stops as $key => $row)
+{
+    if ($foundStop) {
+        if (!$timingPointsOnly || !startsWith($row[5],"Wj") ) {
+            $viaPoints[] = Array("id" => $row[0], "name" => $row[1], "time" => $times[$key]);
+        }
+    } else {
+        if ($row[0] == $stopid) $foundStop = true;
+    }
+}
+    return $viaPoints;
+}
+
+function viaPointNames($tripid,$stopid) {
+    $points = viaPoints($tripid,$stopid,true);
+    $pointNames = Array();
+    foreach ($points as $point) {
+        $pointNames[] = $point['name'];
+    }
+    return implode(", ",$pointNames);
+}
 ?>