Title formatting fixes on route view
Title formatting fixes on route view

--- a/common-template.inc.php
+++ b/common-template.inc.php
@@ -3,8 +3,9 @@
 {
 	echo '
 <!DOCTYPE html> 
-<html> 
-	<head> 
+<html lang="en">
+	<head>
+        <meta charset="UTF-8">
 	<title>' . $pageTitle . '</title>';
 	if ($datepicker) echo '<link rel="stylesheet"  href="css/jquery.ui.datepicker.mobile.css" />';
 	if (isDebugServer()) echo '<link rel="stylesheet"  href="css/jquery-mobile-1.0a3.css" />
@@ -20,7 +21,7 @@
 		});	
 	</script> 
 	<script src="js/jQuery.ui.datepicker.js"></script>';
-echo '<style type="text/css">
+	echo '<style type="text/css">
      .ui-navbar {
      width: 100%;
      }
@@ -44,11 +45,34 @@
     body {
         background-color: #F0F0F0;
     }
-</style>
-<meta name="apple-mobile-web-app-capable" content="yes" />
+    #jqm-homeheader {
+        text-align: center;
+    }        
+    
+    // source http://webaim.org/techniques/skipnav/
+    #skip a, #skip a:hover, #skip a:visited 
+{ 
+position:absolute; 
+left:0px; 
+top:-500px; 
+width:1px; 
+height:1px; 
+overflow:hidden;
+} 
+
+#skip a:active, #skip a:focus 
+{ 
+position:static; 
+width:auto; 
+height:auto; 
+}
+</style>';
+	if (strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPod')) {
+		echo '<meta name="apple-mobile-web-app-capable" content="yes" />
  <meta name="apple-mobile-web-app-status-bar-style" content="black" />
  <link rel="apple-touch-startup-image" href="startup.png" />
  <link rel="apple-touch-icon" href="apple-touch-icon.png" />';
+	}
 	if ($geolocate) {
 		echo "<script>
 
@@ -75,6 +99,9 @@
 	}
 	echo '</head>
 <body>
+    <div id="skip">
+    <a href="#maincontent">Skip to content</a>
+    </div>
  ';
 	if ($opendiv) {
 		echo '<div data-role="page"> 
@@ -87,6 +114,7 @@
 	<div data-role="header"> 
 		<h1>' . $pageTitle . '</h1>
 	</div><!-- /header -->
+        <a name="maincontent" id="maincontent"></a>
         <div data-role="content"> ';
 	}
 }
@@ -114,22 +142,22 @@
         or enter an address/co-ordinates in the box below.</div>';
 	}
 	echo '<div data-role="collapsible" data-collapsed="' . !$geoerror . '">
-        <h3>Change Time/Place (' . (isset($_SESSION['time']) ? $_SESSION['time'] : "Current Time,") . ' '.ucwords(service_period()).')...</h3>
-        <form action="" method="post">
+        <h3>Change Time/Place (' . (isset($_SESSION['time']) ? $_SESSION['time'] : "Current Time,") . ' ' . ucwords(service_period()) . ')...</h3>
+        <form action="'.basename($_SERVER['PHP_SELF']).'" method="post">
         <div class="ui-body"> 
 		<div data-role="fieldcontain">
 	            <label for="geolocate"> Current Location: </label>
-			<input type="text" id="geolocate" name="geolocate" value="' . (isset($_SESSION['lat']) && isset($_SESSION['lon']) ? $_SESSION['lat'] . "," . $_SESSION['lon'] : "Enter co-ordinates or address here") . '"/> <a href="#" style="display:none" name="here" id="here"/>Here?</a>
+			<input type="text" id="geolocate" name="geolocate" value="' . (isset($_SESSION['lat']) && isset($_SESSION['lon']) ? $_SESSION['lat'] . "," . $_SESSION['lon'] : "Enter co-ordinates or address here") . '"/> <a href="#" style="display:none" name="here" id="here">Here?</a>
 	        </div>
     		<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"/>Current Time?</a>
+		    	<input type="time" name="time" id="time" value="' . (isset($_SESSION['time']) ? $_SESSION['time'] : date("H:i")) . '"/> <a href="#" name="currentTime" id="currentTime">Current Time?</a>
 	        </div>
 		<div data-role="fieldcontain">
 		    <label for="service_period"> Service Period:  </label>
-			<select name="service_period">';
+			<select name="service_period" id="service_period">';
 	foreach ($service_periods as $service_period) {
-		echo "<option value=\"$service_period\"" . (service_period() === $service_period ? "SELECTED" : "") . '>' . ucwords($service_period) . '</option>';
+		echo "<option value=\"$service_period\"" . (service_period() === $service_period ? " SELECTED" : "") . '>' . ucwords($service_period) . '</option>';
 	}
 	echo '</select>
 			<a href="#" style="display:none" name="currentPeriod" id="currentPeriod"/>Current Period?</a>

--- a/common.inc.php
+++ b/common.inc.php
@@ -25,31 +25,31 @@
 	$_SESSION['time'] = filter_var($_REQUEST['time'], FILTER_SANITIZE_STRING);
 }
 if (isset($_REQUEST['geolocate'])) {
-   
 	$geocoded = false;
 	if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) {
 		$_SESSION['lat'] = trim(filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
 		$_SESSION['lon'] = trim(filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
 	}
 	else {
-	 $geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL);
-	 echo $_REQUEST['geolocate'];
-   	 if (startsWith($geolocate, "-")) {
-		  $locateparts = explode(",",$geolocate);
-		  $_SESSION['lat'] = $locateparts[0];
-			$_SESSION['lon'] =$locateparts[1];
-		} else {
-		$contents = geocode($geolocate, true);
-		print_r($contents);
-		if (isset($contents[0]->centroid)) {
-			$geocoded = true;
-			$_SESSION['lat'] = $contents[0]->centroid->coordinates[0];
-			$_SESSION['lon'] = $contents[0]->centroid->coordinates[1];
+		$geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL);
+		echo $_REQUEST['geolocate'];
+		if (startsWith($geolocate, "-")) {
+			$locateparts = explode(",", $geolocate);
+			$_SESSION['lat'] = $locateparts[0];
+			$_SESSION['lon'] = $locateparts[1];
 		}
 		else {
-			$_SESSION['lat'] = "";
-			$_SESSION['lon'] = "";
-		}
+			$contents = geocode($geolocate, true);
+			print_r($contents);
+			if (isset($contents[0]->centroid)) {
+				$geocoded = true;
+				$_SESSION['lat'] = $contents[0]->centroid->coordinates[0];
+				$_SESSION['lon'] = $contents[0]->centroid->coordinates[1];
+			}
+			else {
+				$_SESSION['lat'] = "";
+				$_SESSION['lon'] = "";
+			}
 		}
 	}
 }
@@ -66,6 +66,31 @@
 function debug($msg, $debugReason = "other")
 {
 	if (isDebug($debugReason)) echo "\n<!-- " . date(DATE_RFC822) . "\n $msg -->\n";
+}
+function isJQueryMobileDevice()
+{
+   // http://forum.jquery.com/topic/what-is-the-best-way-to-detect-all-useragents-which-can-handle-jquery-mobile#14737000002087897
+	$user_agent = $_SERVER['HTTP_USER_AGENT'];   
+	return preg_match('/iphone/i', $user_agent)
+	|| preg_match('/android/i', $user_agent)
+	|| preg_match('/webos/i', $user_agent)
+	|| preg_match('/ios/i', $user_agent)
+	|| preg_match('/bada/i', $user_agent)
+	|| preg_match('/maemo/i', $user_agent)
+	|| preg_match('/meego/i', $user_agent)
+	|| preg_match('/fennec/i', $user_agent)
+	|| (preg_match('/symbian/i', $user_agent)
+	    && preg_match('/s60/i', $user_agent)
+	    && $browser['majorver'] >= 5)
+	|| (preg_match('/symbian/i', $user_agent)
+	    && preg_match('/platform/i', $user_agent)
+	    && $browser['majorver'] >= 3)
+	|| (preg_match('/blackberry/i', $user_agent)
+	    && $browser['majorver'] >= 5)
+	|| (preg_match('/opera mobile/i', $user_agent)
+	    && $browser['majorver'] >= 10)
+	|| (preg_match('/opera mini/i', $user_agent)
+	    && $browser['majorver'] >= 5);
 }
 function isFastDevice()
 {
@@ -129,33 +154,27 @@
 {
 	return str_replace(")", "</small>", str_replace("(", "<br><small>", $input));
 }
-
-function sksort(&$array, $subkey="id", $sort_ascending=false) {
-
-    if (count($array))
-        $temp_array[key($array)] = array_shift($array);
-
-    foreach($array as $key => $val){
-        $offset = 0;
-        $found = false;
-        foreach($temp_array as $tmp_key => $tmp_val)
-        {
-            if(!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey]))
-            {
-                $temp_array = array_merge(    (array)array_slice($temp_array,0,$offset),
-                                            array($key => $val),
-                                            array_slice($temp_array,$offset)
-                                          );
-                $found = true;
-            }
-            $offset++;
-        }
-        if(!$found) $temp_array = array_merge($temp_array, array($key => $val));
-    }
-
-    if ($sort_ascending) $array = array_reverse($temp_array);
-
-    else $array = $temp_array;
+function sksort(&$array, $subkey = "id", $sort_ascending = false)
+{
+	if (count($array)) $temp_array[key($array) ] = array_shift($array);
+	foreach ($array as $key => $val) {
+		$offset = 0;
+		$found = false;
+		foreach ($temp_array as $tmp_key => $tmp_val) {
+			if (!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey])) {
+				$temp_array = array_merge((array)array_slice($temp_array, 0, $offset) , array(
+					$key => $val
+				) , array_slice($temp_array, $offset));
+				$found = true;
+			}
+			$offset++;
+		}
+		if (!$found) $temp_array = array_merge($temp_array, array(
+			$key => $val
+		));
+	}
+	if ($sort_ascending) $array = array_reverse($temp_array);
+	else $array = $temp_array;
 }
 ?>
 

file:a/index.php -> file:b/index.php
--- a/index.php
+++ b/index.php
@@ -5,9 +5,10 @@
 <div data-role="page">
 	<div data-role="content">
 			<div id="jqm-homeheader">
-	    	<center><h3>busness time</h3><br><small>Canberra Bus Timetables and Trip Planner</small></center>
+	    	<h1>busness time</h1><br><small>Canberra Bus Timetables and Trip Planner</small>
 	</div> 
-	    <a href="tripPlanner.php" data-role="button" data-icon="navigation">Launch Trip Planner...</a>
+	<a name="maincontent" id="maincontent"></a>
+	   <a href="tripPlanner.php" data-role="button" data-icon="navigation">Launch Trip Planner...</a>
             <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b">
                 <li data-role="list-divider">Timetables - Stops</li>
                 <li><a href="stopList.php">Major (Timing Point) Stops</a></li>
@@ -19,7 +20,7 @@
                 <li data-role="list-divider">Timetables - Routes</li>
                 <li><a href="routeList.php">Routes By Final Destination</a></li>
 		<li><a href="routeList.php?bynumber=yes">Routes By Number</a></li>
-		<li><a href="routeList.php?bysuburb=yes">Stops By Suburb</a></li>
+		<li><a href="routeList.php?bysuburb=yes">Routes By Suburb</a></li>
 		<li><a class="nearby" href="routeList.php?nearby=yes">Nearby Routes</a></li>
             </ul>
 <?php

--- a/routeList.php
+++ b/routeList.php
@@ -17,14 +17,16 @@
 	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";
+	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 {
+		foreach ($suburbs as $suburb) {
+			if (startsWith($suburb, $_REQUEST['firstLetter'])) {
+				echo '<li><a href="routeList.php?suburb=' . urlencode($suburb) . '">' . $suburb . '</a></li>';
 			}
-		}
-		else if (startsWith($suburb, $_REQUEST['firstLetter'])) {
-			echo '<li><a href="routeList.php?suburb=' . urlencode($suburb) . '">' . $suburb . '</a></li>';
 		}
 	}
 	echo '</ul>';

file:a/stop.php -> file:b/stop.php
--- a/stop.php
+++ b/stop.php
@@ -48,7 +48,7 @@
 }
 include_header($stop[1], "stop");
 timePlaceSettings();
-echo '<div data-role="content" class="ui-content" role="main">';
+echo '<div data-role="content" class="ui-content" role="main">        <a name="maincontent" id="maincontent"></a>';
 echo $stopLinks;
 if (sizeof($stops) > 0) {
 	echo '<p>' . staticmap($stopPositions) . '</p>';

--- a/stopList.php
+++ b/stopList.php
@@ -1,7 +1,8 @@
 <?php
 include ('common.inc.php');
-function filterByFirstLetter($var) {
-   return $var[1][0] == $_REQUEST['firstLetter'];
+function filterByFirstLetter($var)
+{
+	return $var[1][0] == $_REQUEST['firstLetter'];
 }
 function navbar()
 {
@@ -21,14 +22,16 @@
 	include_header("Stops by Suburb", "stopList");
 	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=\"stopList.php?firstLetter=$letter&suburbs=yes\">$letter...</a></li>\n";
+	if (!isset($_REQUEST['firstLetter'])) {
+		foreach (range('A', 'Z') as $letter) {
+			echo "<li><a href=\"stopList.php?firstLetter=$letter&suburbs=yes\">$letter...</a></li>\n";
+		}
+	}
+	else {
+		foreach ($suburbs as $suburb) {
+			if (startsWith($suburb, $_REQUEST['firstLetter'])) {
+				echo '<li><a href="stopList.php?suburb=' . urlencode($suburb) . '">' . $suburb . '</a></li>';
 			}
-		}
-		else if (startsWith($suburb, $_REQUEST['firstLetter'])) {
-			echo '<li><a href="stopList.php?suburb=' . urlencode($suburb) . '">' . $suburb . '</a></li>';
 		}
 	}
 	echo '</ul>';
@@ -48,6 +51,10 @@
 		include_header("Nearby Stops", "stopList");
 		navbar();
 		timePlaceSettings(true);
+		if (!isset($_SESSION['lat']) || !isset($_SESSION['lat']) || $_SESSION['lat'] == "" || $_SESSION['lon'] == "") {
+			include_footer();
+			die();
+		}
 	}
 	else if ($_REQUEST['suburb']) {
 		$suburb = filter_var($_REQUEST['suburb'], FILTER_SANITIZE_STRING);
@@ -75,48 +82,47 @@
 		}
 		// Sort the stops by name
 		array_multisort($stopName, SORT_ASC, $stops);
-		if (!isset($_REQUEST['suburb']) && !isset($_REQUEST['nearby'])){
-		  $stops = array_filter($stops, "filterByFirstLetter");
-		} 
+		if (!isset($_REQUEST['suburb']) && !isset($_REQUEST['nearby'])) {
+			$stops = array_filter($stops, "filterByFirstLetter");
+		}
 		$stopsGrouped = Array();
 		foreach ($stops as $key => $row) {
-				if ((trim(preg_replace("/\(Platform.*/","",$stops[$key][1])) != trim(preg_replace("/\(Platform.*/","",$stops[$key + 1][1]))) || $key + 1 >= sizeof($stops)) {
-					if (sizeof($stopsGrouped) > 0) {
-						// print and empty grouped stops
-						// subsequent duplicates
-						$stopsGrouped["stop_ids"][] = $row[0];
-						echo '<li>';
-						
-						if (!startsWith($stopsGrouped['stop_codes'][0], "Wj")) echo '<img src="css/images/time.png" alt="Timing Point" class="ui-li-icon">';
-						echo '<a href="stop.php?stopids=' . implode(",", $stopsGrouped['stop_ids']) . '">';
-						if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) {
-							echo '<span class="ui-li-count">' . distance($row[2], $row[3], $_SESSION['lat'], $_SESSION['lon'], true) . 'm away</span>';
-						}
-						echo bracketsMeanNewLine(trim(preg_replace("/\(Platform.*/","",$row[1])) . '(' . sizeof($stopsGrouped["stop_ids"]) . ' stops)');
-						echo "</a></li>\n";
-						$stopsGrouped = Array();
+			if ((trim(preg_replace("/\(Platform.*/", "", $stops[$key][1])) != trim(preg_replace("/\(Platform.*/", "", $stops[$key + 1][1]))) || $key + 1 >= sizeof($stops)) {
+				if (sizeof($stopsGrouped) > 0) {
+					// print and empty grouped stops
+					// subsequent duplicates
+					$stopsGrouped["stop_ids"][] = $row[0];
+					echo '<li>';
+					if (!startsWith($stopsGrouped['stop_codes'][0], "Wj")) echo '<img src="css/images/time.png" alt="Timing Point: " class="ui-li-icon">';
+					echo '<a href="stop.php?stopids=' . implode(",", $stopsGrouped['stop_ids']) . '">';
+					if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) {
+						echo '<span class="ui-li-count">' . distance($row[2], $row[3], $_SESSION['lat'], $_SESSION['lon'], true) . 'm away</span>';
 					}
-					else {
-						// just a normal stop
-						echo '<li>';
-						if (!startsWith($row[5], "Wj")) echo '<img src="css/images/time.png" alt="Timing Point" class="ui-li-icon">';
-						echo '<a href="stop.php?stopid=' . $row[0] . (startsWith($row[5], "Wj") ? '&stopcode=' . $row[5] : "") . '">';
-						if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) {
-							echo '<span class="ui-li-count">' . distance($row[2], $row[3], $_SESSION['lat'], $_SESSION['lon'], true) . 'm away</span>';
-						}
-						echo bracketsMeanNewLine($row[1]);
-						echo "</a></li>\n";
+					echo bracketsMeanNewLine(trim(preg_replace("/\(Platform.*/", "", $row[1])) . '(' . sizeof($stopsGrouped["stop_ids"]) . ' stops)');
+					echo "</a></li>\n";
+					$stopsGrouped = Array();
+				}
+				else {
+					// just a normal stop
+					echo '<li>';
+					if (!startsWith($row[5], "Wj")) echo '<img src="css/images/time.png" alt="Timing Point" class="ui-li-icon">';
+					echo '<a href="stop.php?stopid=' . $row[0] . (startsWith($row[5], "Wj") ? '&stopcode=' . $row[5] : "") . '">';
+					if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) {
+						echo '<span class="ui-li-count">' . distance($row[2], $row[3], $_SESSION['lat'], $_SESSION['lon'], true) . 'm away</span>';
 					}
-				
-			} else {
+					echo bracketsMeanNewLine($row[1]);
+					echo "</a></li>\n";
+				}
+			}
+			else {
 				// this is a duplicated line item
-				if ($key - 1 <= 0 || (trim(preg_replace("/\(Platform.*/","",$stops[$key][1])) != trim(preg_replace("/\(Platform.*/","",$stops[$key - 1][1])))) {
+				if ($key - 1 <= 0 || (trim(preg_replace("/\(Platform.*/", "", $stops[$key][1])) != trim(preg_replace("/\(Platform.*/", "", $stops[$key - 1][1])))) {
 					// first duplicate
 					$stopsGrouped = Array(
-						"name" => trim(preg_replace("/\(Platform.*/","",$row[1])),
+						"name" => trim(preg_replace("/\(Platform.*/", "", $row[1])) ,
 						"stop_ids" => Array(
 							$row[0]
-						),
+						) ,
 						"stop_codes" => Array(
 							$row[5]
 						)
@@ -127,8 +133,7 @@
 					$stopsGrouped["stop_ids"][] = $row[0];
 				}
 			}
-		
-	       }
+		}
 	}
 	echo '</ul>';
 }

file:a/trip.php -> file:b/trip.php
--- a/trip.php
+++ b/trip.php
@@ -34,12 +34,12 @@
 		$viaPoints[] = $stop[1];
 	}
 }
-echo 'Via: ' . implode(", ", $viaPoints) . '</small>';
-echo '<p> Other Trips: ';
+echo '<p><h2>Via:</h2> ' . implode(", ", $viaPoints) . '</small></p>';
+echo '<p><h2>Other Trips:</h2> ';
 foreach ($routetrips as $othertrip) {
 	echo '<a href="trip.php?tripid=' . $othertrip[1] . "&routeid=" . $routeid . '">' . midnight_seconds_to_time($othertrip[0]) . '</a> ';
 }
-echo '</p> Other directions/timing periods: ';
+echo '</p><p><h2>Other directions/timing periods:</h2> ';
 $url = $APIurl . "/json/routesearch?routeshortname=" . $trips[1]->route_short_name;
 $json = json_decode(getPage($url));
 foreach ($json as $row) {

--- a/tripPlanner.php
+++ b/tripPlanner.php
@@ -5,7 +5,10 @@
 $to = (isset($_REQUEST['to']) ? filter_var($_REQUEST['to'], FILTER_SANITIZE_STRING) : "Barry");
 $date = (isset($_REQUEST['date']) ? filter_var($_REQUEST['date'], FILTER_SANITIZE_STRING) : date("m/d/Y"));
 $time = (isset($_REQUEST['time']) ? filter_var($_REQUEST['time'], FILTER_SANITIZE_STRING) : date("H:i"));
-// todo: convert date from form to h:ia?
+function formatTime($timeString) {
+  $timeParts = explode("T",$timeString);
+  return str_replace("Z","",$timeParts[1]);
+}
 function tripPlanForm($errorMessage = "")
 {
 	global $date, $time, $from, $to;
@@ -40,7 +43,7 @@
 }
 function processItinerary($itineraryNumber, $itinerary)
 {
-	echo '<div data-role="collapsible" ' . ($itineraryNumber > 0 ? 'data-collapsed="true"' : "") . '> <h3> Option #' . ($itineraryNumber + 1) . ": " . floor($itinerary->duration / 60000) . " minutes ({$itinerary->startTime} to {$itinerary->endTime})</h3><p>";
+	echo '<div data-role="collapsible" ' . ($itineraryNumber > 0 ? 'data-collapsed="true"' : "") . '> <h3> Option #' . ($itineraryNumber + 1) . ": " . floor($itinerary->duration / 60000) . " minutes (".formatTime($itinerary->startTime)." to ".formatTime($itinerary->endTime).")</h3><p>";
 	echo "Walking time: " . floor($itinerary->walkTime / 60000) . " minutes (" . floor($itinerary->walkDistance) . " meters)<br>\n";
 	echo "Transit time: " . floor($itinerary->transitTime / 60000) . " minutes<br>\n";
 	echo "Waiting time: " . floor($itinerary->waitingTime / 60000) . " minutes<br>\n";
@@ -119,7 +122,7 @@
 			$tripplan = json_decode($page);
 			debug(print_r($triplan, true));
 			echo "<h1> From: {$tripplan->plan->from->name} To: {$tripplan->plan->to->name} </h1>";
-			echo "<h1> At: {$tripplan->plan->date} </h1>";
+			echo "<h1> At: ".formatTime($tripplan->plan->date)." </h1>";
 			if (is_array($tripplan->plan->itineraries->itinerary)) {
 				echo '<div data-role="collapsible-set">';
 				foreach ($tripplan->plan->itineraries->itinerary as $itineraryNumber => $itinerary) {