Android web browser has trouble with CSS3 shadows, disable for now
[busui.git] / include / common-template.inc.php
blob:a/include/common-template.inc.php -> blob:b/include/common-template.inc.php
<?php <?php
   
  /*
  * Copyright 2010,2011 Alexander Sadleir
   
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
   
  http://www.apache.org/licenses/LICENSE-2.0
   
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  */
   
// Copyright 2009 Google Inc. All Rights Reserved. // Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "MO-22173039-1"; $GA_ACCOUNT = "MO-22173039-1";
$GA_PIXEL = "/lib/ga.php"; $GA_PIXEL = "/lib/ga.php";
function googleAnalyticsGetImageUrl()  
{ function googleAnalyticsGetImageUrl() {
global $GA_ACCOUNT, $GA_PIXEL; global $GA_ACCOUNT, $GA_PIXEL;
//if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot') return ""; //if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot') return "";
$url = ""; $url = "";
$url.= $GA_PIXEL . "?"; $url.= $GA_PIXEL . "?";
$url.= "utmac=" . $GA_ACCOUNT; $url.= "utmac=" . $GA_ACCOUNT;
$url.= "&utmn=" . rand(0, 0x7fffffff); $url.= "&utmn=" . rand(0, 0x7fffffff);
$referer = $_SERVER["HTTP_REFERER"]; $referer = (isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : "");
$query = $_SERVER["QUERY_STRING"]; $query = $_SERVER["QUERY_STRING"];
$path = $_SERVER["REQUEST_URI"]; $path = $_SERVER["REQUEST_URI"];
if (empty($referer)) { if (empty($referer)) {
$referer = "-"; $referer = "-";
} }
$url.= "&utmr=" . urlencode($referer); $url.= "&utmr=" . urlencode($referer);
if (!empty($path)) { if (!empty($path)) {
$url.= "&utmp=" . urlencode($path); $url.= "&utmp=" . urlencode($path);
} }
$url.= "&guid=ON"; $url.= "&guid=ON";
return str_replace("&", "&amp;", $url); return str_replace("&", "&amp;", $url);
} }
   
$labsPath = ""; function include_header($pageTitle, $pageType, $opendiv = true, $geolocate = false, $datepicker = false) {
if (strstr($_SERVER['PHP_SELF'],"labs")) $labsPath = "../"; global $basePath, $GTFSREnabled, $stopid, $routeid;
  echo '
function include_header($pageTitle, $pageType, $opendiv = true, $geolocate = false, $datepicker = false)  
{  
global $labsPath;  
echo '  
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head profile="http://microformats.org/profile/hcalendar http://microformats.org/profile/geo http://vocab.org/transit/terms">
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>' . $pageTitle . '</title> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="google-site-verification" <title>' . $pageTitle . ' - Canberra Bus Timetable</title>
content="-53T5Qn4TB_de1NyfR_ZZkEVdUNcNFSaYKSFkWKx-sY" /> <meta name="google-site-verification" content="-53T5Qn4TB_de1NyfR_ZZkEVdUNcNFSaYKSFkWKx-sY" />
<link rel="stylesheet" href="'.$labsPath.'css/jquery-ui-1.8.12.custom.css" />'; <link rel="dns-prefetch" href="//code.jquery.com">
if (isDebugServer()) { <link rel="dns-prefetch" href="//ajax.googleapis.com">
echo '<link rel="stylesheet" href="'.$labsPath.'css/jquery.mobile-1.0b1.css" /> <link rel="stylesheet" href="' . $basePath . 'css/jquery-ui-1.8.12.custom.css" />';
  $jqmVersion = "1.1.0";
<script type="text/javascript" src="'.$labsPath.'js/jquery-1.6.1.min.js"></script> if (isDebugServer()) {
<script>$(document).bind("mobileinit", function(){ $jqmcss = $basePath . "css/jquery.mobile-$jqmVersion.min.css";
  $jqjs = $basePath . "js/jquery-1.7.2.min.js";
  $jqmjs = $basePath . "js/jquery.mobile-$jqmVersion.min.js";
  } else {
  $jqmcss = "//code.jquery.com/mobile/$jqmVersion/jquery.mobile-$jqmVersion.min.css";
  $jqjs = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
  $jqmjs = "//code.jquery.com/mobile/$jqmVersion/jquery.mobile-$jqmVersion.min.js";
  }
  echo '<link rel="stylesheet" href="' . $jqmcss . '" />
  <script src="' . $jqjs . '"></script>
  <script>$(document).bind("mobileinit", function(){
$.mobile.ajaxEnabled = false; $.mobile.ajaxEnabled = false;
}); });
</script> </script>
<script type="text/javascript" src="'.$labsPath.'js/jquery.mobile-1.0b1.js"></script>'; <script src="' . $jqmjs . '"></script>
}  
else { <script src="' . $basePath . 'js/jquery.ui.core.min.js"></script>
echo '<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" /> <script src="' . $basePath . 'js/jquery.ui.position.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <script src="' . $basePath . 'js/jquery.ui.widget.min.js"></script>
<script>$(document).bind("mobileinit", function(){ <script src="' . $basePath . 'js/jquery.ui.autocomplete.min.js"></script>
$.mobile.ajaxEnabled = false;  
});  
</script>  
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>';  
}  
echo '  
<script src="'.$labsPath.'js/jquery.ui.autocomplete.min.js"></script>  
<script src="'.$labsPath.'js/jquery.ui.core.min.js"></script>  
<script src="'.$labsPath.'js/jquery.ui.position.min.js"></script>  
<script src="'.$labsPath.'js/jquery.ui.widget.min.js"></script>  
<script> <script>
$(function() { $(function() {
$( "#geolocate" ).autocomplete({ $( "#geolocate" ).autocomplete({
source: "lib/autocomplete.php", source: "lib/autocomplete.php",
minLength: 2 minLength: 2
}); });
$( "#from" ).autocomplete({ $( "#from" ).autocomplete({
source: "lib/autocomplete.php", source: "lib/autocomplete.php",
minLength: 2 minLength: 2
}); });
$( "#to" ).autocomplete({ $( "#to" ).autocomplete({
source: "lib/autocomplete.php", source: "lib/autocomplete.php",
minLength: 2 minLength: 2
}); });
}); });
</script> </script>';
'; echo '<style type="text/css">';
echo '<style type="text/css"> if (strstr($_SERVER['HTTP_USER_AGENT'], 'Android'))
.ui-li-thumb, .ui-li-icon { position: relative; }'; echo '.ui-shadow,.ui-btn-up-a,.ui-btn-hover-a,.ui-btn-down-a,.ui-body-b,.ui-btn-up-b,.ui-btn-hover-b,
   
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Android')) echo '.ui-shadow,.ui-btn-up-a,.ui-btn-hover-a,.ui-btn-down-a,.ui-body-b,.ui-btn-up-b,.ui-btn-hover-b,  
.ui-btn-down-b,.ui-bar-c,.ui-body-c,.ui-btn-up-c,.ui-btn-hover-c,.ui-btn-down-c,.ui-bar-c,.ui-body-d, .ui-btn-down-b,.ui-bar-c,.ui-body-c,.ui-btn-up-c,.ui-btn-hover-c,.ui-btn-down-c,.ui-bar-c,.ui-body-d,
.ui-btn-up-d,.ui-btn-hover-d,.ui-btn-down-d,.ui-bar-d,.ui-body-e,.ui-btn-up-e,.ui-btn-hover-e, .ui-btn-up-d,.ui-btn-hover-d,.ui-btn-down-d,.ui-bar-d,.ui-body-e,.ui-btn-up-e,.ui-btn-hover-e,
.ui-btn-down-e,.ui-bar-e,.ui-overlay-shadow,.ui-shadow,.ui-btn-active,.ui-body-a,.ui-bar-a { .ui-btn-down-e,.ui-bar-e,.ui-overlay-shadow,.ui-shadow,.ui-btn-active,.ui-body-a,.ui-bar-a {
text-shadow: none; text-shadow: none;
box-shadow: none; box-shadow: none;
-webkit-box-shadow: none; -webkit-box-shadow: none;
}'; }';
echo ' echo '</style>';
.ui-navbar { echo '<link rel="stylesheet" href="' . $basePath . 'css/local.css.php" />';
width: 100%; if (isIOSDevice()) {
} echo '<meta name="apple-mobile-web-app-capable" content="yes" />
.ui-btn-inner {  
white-space: normal !important;  
}  
.ui-li-heading {  
white-space: normal !important;  
}  
.ui-listview-filter {  
margin: 0 !important;  
}  
.ui-icon-navigation {  
background-image: url('.$labsPath.'css/images/113-navigation.png);  
background-position: 1px 0;  
}  
.ui-icon-beaker {  
background-image: url('.$labsPath.'css/images/91-beaker-2.png);  
background-position: 1px 0;  
}  
#footer {  
text-size: 0.75em;  
text-align: center;  
}  
body {  
background-color: #F0F0F0;  
}  
#jqm-homeheader {  
text-align: center;  
}  
.viaPoints {  
display: none;  
text-size: 0.2em;  
}  
.min-width-480px .viaPoints {  
display: inline;  
}  
#extrainfo {  
visibility: hidden;  
display: none;  
}  
#servicewarning {  
padding: 1em;  
margin-bottom: 0.5em;  
text-size: 0.2em;  
background-color: #FF9;  
-moz-border-radius: 15px;  
border-radius: 15px;  
}  
   
/*#leftcolumn {  
float: none;  
}  
.min-width-768px #leftcolumn {  
float: left;  
width: 30%;  
}  
#rightcolumn {  
float: none;  
}  
.min-width-768px #rightcolumn {  
float: right;  
width: 68%;  
}*/  
   
#footer {  
clear:both;  
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') || strstr($_SERVER['HTTP_USER_AGENT'], 'iPad')) {  
echo '<meta name="apple-mobile-web-app-capable" content="yes" />  
<meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="apple-touch-startup-image" href="startup.png" /> <link rel="apple-touch-startup-image" href="startup.png" />
<link rel="apple-touch-icon" href="apple-touch-icon.png" />'; <link rel="apple-touch-icon" href="apple-touch-icon.png" />';
} }
if ($geolocate) { if ($geolocate) {
echo "<script> echo "<script>
   
function success(position) { function success(position) {
$('#error').val('Location now detected. Please wait for data to load.'); $('#error').val('Location now detected. Please wait for data to load.');
$('#geolocate').val(position.coords.latitude+','+position.coords.longitude); $('#geolocate').val(position.coords.latitude+','+position.coords.longitude);
$.ajax({ url: \"include/common.inc.php?geolocate=yes&lat=\"+position.coords.latitude+\"&lon=\"+position.coords.longitude }); $.ajax({ async: false,
location.reload(true); success: function(){
  location.reload(true);
  },
  url: \"include/common.inc.php?geolocate=yes&lat=\"+position.coords.latitude+\"&lon=\"+position.coords.longitude });
} }
function error(msg) { function error(msg) {
$('#error').val('Error: '+msg); $('#error').val('Error: '+msg);
} }
   
function geolocate() { function geolocate() {
if (navigator.geolocation) { if (navigator.geolocation) {
var options = { var options = {
enableHighAccuracy: true, enableHighAccuracy: true,
timeout: 60000, timeout: 60000,
maximumAge: 10000 maximumAge: 10000
} }
navigator.geolocation.getCurrentPosition(success, error, options); navigator.geolocation.getCurrentPosition(success, error, options);
} }
} }
$(document).ready(function() { $(document).ready(function() {
$('#here').click(function(event) { $('#geolocate').val(geolocate()); return false;}); $('#here').click(function(event) { $('#geolocate').val(geolocate()); return false;});
$('#here').show(); $('#here').show();
/*if ($.mobile.media('screen and (min-width: 768px)')) {  
$('map a:first').click();  
$('#settings a:first').click();  
}*/  
}); });
"; ";
if (!isset($_SESSION['lat']) || $_SESSION['lat'] == "") echo "geolocate();"; if (!isset($_SESSION['lat']) || $_SESSION['lat'] == "")
echo "</script> "; echo "geolocate();";
} echo "</script> ";
if (isAnalyticsOn()) echo ' }
  if (isAnalyticsOn())
  echo '
<script type="text/javascript">' . " <script type="text/javascript">' . "
   
var _gaq = _gaq || []; var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-22173039-1']); _gaq.push(['_setAccount', 'UA-22173039-1']);
_gaq.push(['_trackPageview']); _gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']); _gaq.push(['_trackPageLoadTime']);
</script>"; </script>";
echo '</head> echo '</head>
<body> <body>
<div id="skip"> <div id="skip">
<a href="#maincontent">Skip to content</a> <a href="#maincontent">Skip to content</a>
</div> </div>
'; ';
if ($opendiv) { if ($opendiv) {
echo '<div data-role="page"> echo '<div data-role="page"'. (isset($stopid) ? 'itemscope itemtype="http://schema.org/BusStop"':'').'>';
<div data-role="header" data-position="inline"> echo '<div data-role="header" data-position="inline">
<a href="' . (isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : "javascript:history.go(-1)") . '" data-icon="arrow-l" data-rel="back" class="ui-btn-left">Back</a> <a href="' . (isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : "javascript:history.go(-1)") . '" data-icon="arrow-l" data-rel="back" class="ui-btn-left">Back</a>
<h1>' . $pageTitle . '</h1> <h1 itemprop="name">' . $pageTitle . '</h1>
<a href="'.$labsPath.'/index.php" data-icon="home" class="ui-btn-right">Home</a> <a href="' . $basePath . '/index.php" data-icon="home" class="ui-btn-right" rel="home">Home</a>
</div><!-- /header --> </div><!-- /header -->
<a name="maincontent" id="maincontent"></a> <a name="maincontent" id="maincontent"></a>
<div data-role="content"> '; <div data-role="content"> ';
$overrides = getServiceOverride(); if ($GTFSREnabled) {
if ($overrides['service_id']) { $overrides = getServiceOverride();
if ($overrides['service_id'] == "noservice") { if (isset($overrides['service_id'])) {
echo '<div id="servicewarning">Buses are <strong>not running today</strong> due to industrial action/public holiday. See <a if ($overrides['service_id'] == "noservice") {
  echo '<div class="servicewarning">Buses are <strong>not running today</strong> due to industrial action/public holiday. See <a
href="http://www.action.act.gov.au">http://www.action.act.gov.au</a> for details.</div>'; href="http://www.action.act.gov.au">http://www.action.act.gov.au</a> for details.</div>';
} } else {
else { echo '<div class="servicewarning">Buses are running on an altered timetable today due to industrial action/public holiday. See <a href="http://www.action.act.gov.au">http://www.action.act.gov.au</a> for details.</div>';
echo '<div id="servicewarning">Buses are running on an altered timetable today due to industrial action/public holiday. See <a href="http://www.action.act.gov.au">http://www.action.act.gov.au</a> for details.</div>'; }
} }
} $serviceAlerts = Array();
} $globalAlerts = getServiceAlertsAsArray("agency", "0");
  if ($globalAlerts != null) {
} // echo "getting alerts due to network wide";
function include_footer() $serviceAlerts = array_merge($serviceAlerts, $globalAlerts);
{ }
  if (isset($stopid)) {
global $labsPath; $stopAlerts = getServiceAlertsAsArray("stop", $stopid);
echo '<div id="footer"><a href="'.$labsPath.'about.php">About/Contact Us</a>&nbsp;<a href="'.$labsPath.'feedback.php">Feedback/Bug Report</a>&nbsp;<a href="'.$labsPath.'privacy.php">Privacy Policy</a>'; if ($stopAlerts != null) {
echo '</div>'; // echo "getting alerts due to stop $stopid";
if (isAnalyticsOn()) { $serviceAlerts = array_merge($serviceAlerts, $stopAlerts);
echo "<script> (function() { }
  }
  if (isset($routeid)) {
  $routeAlerts = getServiceAlertsAsArray("route", $routeid);
  if ($routeAlerts != null) {
  // echo "getting alerts due to route $routeid";
  $serviceAlerts = array_merge($serviceAlerts, $routeAlerts);
  }
  }
  if (isset($serviceAlerts['entity']) && sizeof($serviceAlerts['entity']) > 0) {
  foreach ($serviceAlerts['entity'] as $entity) {
  echo "<div class='servicewarning'><b>{$entity['alert']['header_text']['translation'][0]['text']}</b>&nbsp;<small>"
  . date("F jS Y, g:i a", $entity['alert']['active_period'][0]['start']) . " to "
  . date("F jS Y, g:i a", $entity['alert']['active_period'][0]['end']) . "</small>
  <br>Warning: {$entity['alert']['description_text']['translation'][0]['text']}
  <br><a href='{$entity['alert']['url']['translation'][0]['text']}'>Source</a> </div>";
  }
  }
  }
  }
  }
   
  function include_footer() {
  global $basePath;
  echo '<div id="footer"><a href="' . $basePath . 'about.php">About/Contact Us</a>&nbsp;<a href="' . $basePath . 'feedback.php">Feedback/Bug Report</a>&nbsp;<a href="' . $basePath . 'privacy.php">Privacy Policy</a>';
  echo '<br><small>
  <a rel="license" href="http://creativecommons.org/licenses/by/3.0/au/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by/3.0/au/80x15.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/3.0/au/">Creative Commons Attribution 3.0 Australia License</a>.</div></small>';
  if (isAnalyticsOn()) {
  echo "<script> (func