<?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("&", "&", $url); |
return str_replace("&", "&", $url); |
} |
} |
|
|
function include_header($pageTitle, $pageType, $opendiv = true, $geolocate = false, $datepicker = false) |
function include_header($pageTitle, $pageType, $opendiv = true, $geolocate = false, $datepicker = false) { |
{ |
global $basePath, $GTFSREnabled, $stopid, $routeid; |
global $labsPath; |
echo ' |
echo ' |
|
<!DOCTYPE html> |
<!DOCTYPE html> |
<html lang="en"> |
<html lang="en"> |
<head> |
<head> |
<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.0.1"; |
<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.css"; |
|
$jqjs = $basePath . "js/jquery-1.6.4.min.js"; |
|
$jqmjs = $basePath . "js/jquery.mobile-$jqmVersion.js"; |
|
|
|
$jqmcss = $basePath . "css/jquery.mobile-b90eab4935.css"; |
|
$jqmjs = $basePath . "js/jquery.mobile-b90eab4935.js"; |
|
} else { |
|
$jqmcss = "//code.jquery.com/mobile/$jqmVersion/jquery.mobile-$jqmVersion.min.css"; |
|
$jqjs = "//ajax.googleapis.com/ajax/libs/jquery/1.6.4/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; |
|
} |
|
|
|
|
|
#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; |
|
} |
|
|
|
|
|
// adaptive layout from jQuery Mobile docs site |
|
.type-interior .content-secondary { |
|
border-right: 0; |
|
border-left: 0; |
|
margin: 10px -15px 0; |
|
background: #fff; |
|
border-top: 1px solid #ccc; |
|
} |
|
.type-home .ui-content { |
|
margin-top: 5px; |
|
} |
|
.type-interior .ui-content { |
|
padding-bottom: 0; |
|
} |
|
.content-secondary .ui-collapsible-contain { |
|
padding: 10px 15px; |
|
|
|
} |
|
.content-secondary .ui-collapsible-heading { |
|
margin: 0 0 30px; |
|
} |
|
.content-secondary .ui-collapsible-heading-collapsed, |
|
.content-secondary .ui-collapsible-content { |
|
padding:0; |
|
margin: 0; |
|
} |
|
@media all and (min-width: 650px){ |
|
.content-secondary { |
|
text-align: left; |
|
float: left; |
|
width: 45%; |
|
background: none; |
|
border-top: 0; |
|
} |
|
.content-secondary, |
|
.type-interior .content-secondary { |
|
margin: 30px 0 20px 2%; |
|
padding: 20px 4% 0 0; |
|
background: none; |
|
} |
|
.type-index .content-secondary { |
|
padding: 0; |
|
} |
|
.type-index .content-secondary .ui-listview { |
|
margin: 0; |
|
} |
|
.content-primary { |
|
width: 45%; |
|
float: right; |
|
margin-top: 30px; |
|
margin-right: 1%; |
|
padding-right: 1%; |
|
} |
|
.content-primary ul:first-child { |
|
margin-top: 0; |
|
} |
|
|
|
.type-interior .content-primary { |
|
padding: 1.5em 6% 3em 0; |
|
margin: 0; |
|
} |
|
/* fix up the collapsibles - expanded on desktop */ |
|
.content-secondary .ui-collapsible-heading { |
|
display: none; |
|
} |
|
.content-secondary .ui-collapsible-contain { |
|
margin:0; |
|
} |
|
.content-secondary .ui-collapsible-content { |
|
display: block; |
|
margin: 0; |
|
padding: 0; |
|
} |
|
.type-interior .content-secondary .ui-li-divider { |
|
padding-top: 1em; |
|
padding-bottom: 1em; |
|
} |
|
.type-interior .content-secondary { |
|
margin: 0; |
|
padding: 0; |
|
} |
|
|
|
} |
|
@media all and (min-width: 750px){ |
|
.type-home .ui-content, |
|
.type-interior .ui-content { |
|
background-position: 39%; |
|
} |
|
.content-secondary { |
|
width: 34%; |
|
} |
|
.content-primary { |
|
width: 56%; |
|
padding-right: 1%; |
|
} |
|
.type-interior .ui-content { |
|
background-position: 34%; |
|
} |
|
} |
|
|
|
@media all and (min-width: 1200px){ |
|
.type-home .ui-content{ |
|
background-position: 38.5%; |
|
} |
|
.type-interior .ui-content { |
|
background-position: 30%; |
|
} |
|
.content-secondary { |
|
width: 30%; |
|
padding-right:6%; |
|
margin: 30px 0 20px 5%; |
|
} |
|
.type-interior .content-secondary { |
|
margin: 0; |
|
padding: 0; |
|
} |
|
.content-primary { |
|
width: 50%; |
|
margin-right: 5%; |
|
padding-right: 3%; |
|
} |
|
.type-interior .content-primary { |
|
width: 60%; |
|
} |
|
} |
|
|
|
</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/javascri |