var noGPS = false;
var redirectAddress;
var storeName = "dublin-bikes";
var manifestLocation = "bikes_geo_manifest.txt";
var cookieName="bikeCook4";

function createStore(){
	var localServer = google.gears.factory.create('beta.localserver');
	var store = localServer.createManagedStore(storeName);
	if(!getCookie(cookieName)){
		updateStore();
	}
	else{
		loadGearsGeo();
	}
}

function updateStore(){
setCookie(cookieName,true,3);
var localServer = google.gears.factory.create('beta.localserver');
var store = localServer.openManagedStore(storeName);
store.manifestUrl = manifestLocation;
store.onerror = function(error) {alert(error.message);loadGearsGeo();};
store.oncomplete = function(details) {if(details.newVersion!=""){alert(details.newVersion)}loadGearsGeo();};
store.checkForUpdate();
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function g_gears(){
	var googleGearsInstalled = (window.google && google.gears);
 
	if (googleGearsInstalled) {
		createStore();
	}
}

function loadGearsGeo(){
		var geo = google.gears.factory.create('beta.geolocation');
		if ( (geo) && (geo.getPermission()) ) {
			var positionOpts = new Object();
			positionOpts.enableHighAccuracy = true;
			geo.watchPosition(positionSuccessCallback, positionErrorCallback, positionOpts);
	       }
}


function positionErrorCallback(positionErr) {
	if (positionErr.message.match("disabled")){
		noGPS=true;
	}
	var script = document.createElement("li");
	script.innerHTML="error: " + positionErr.message; 
	document.getElementById("error_list").appendChild(script);
}

function positionSuccessCallback (p) {
	if(noGPS){
	window.location.href='search.php?w3c='+p.latitude+','+p.longitude;
	}
	else{
	redirectAddress ='search.php?w3c='+p.latitude+','+p.longitude;
	setTimeout("window.location.href=redirectAddress", 3500);
	noGPS=true;
	}	
}

