//<![CDATA[

	var routeFromPoints;
	var distanceOnRoad;
	var dirn;
	var xmlHttp;

if (GBrowserIsCompatible()) {

	var map = new GMap2(document.getElementById("map"));
	
	dirn = new GDirections(map);
	GEvent.addListener(dirn,"error", function() {
		writeDistance("Failed: "+dirn.getStatus().code);
	});
	GEvent.addListener(dirn,"load", function() {
		writeDistance(dirn.getDistance().meters);
	}); 


	// ==== It is necessary to make a setCenter call of some description before adding markers ====
	// ==== At this point we dont know the real values ====
	map.setCenter(new GLatLng(lat1,lng1),0);
	map.enableScrollWheelZoom();
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.removeMapType(G_HYBRID_MAP);



	var pointA = new GLatLng(lat1,lng1);
	var pointB = new GLatLng(lat2,lng2);

	// Empty GLatLngBounds object
	var bounds = new GLatLngBounds();

	// Extend the bounds to include point A and B
	bounds.extend(pointA);
	bounds.extend(pointB);

	// Determine zoom level from the bounds
	map.setZoom(map.getBoundsZoomLevel(bounds));
	// Determine the centre from the bounds
	map.setCenter(bounds.getCenter());

	routeFromPoints = "from: "+lat1+","+lng1+" to: "+lat2+","+lng2;
	dirn.load(routeFromPoints, {getSteps:true, getPolyline:true, preserveViewport:true});
}

var distancekm = pointA.distanceFrom(pointB) / 1000;
var distancemi = distancekm * 0.621371192;
var html = Math.round(distancemi*100)/100 +" miles / "+ Math.round(distancekm*100)/100 +" km";
document.getElementById("info").innerHTML = html ;

function writeDistance(dist) {
	var distancekm = dist / 1000;
	var distancemi = distancekm * 0.621371192;
	var html = Math.round(distancemi*100)/100 +" miles / "+ Math.round(distancekm*100)/100 +" km (est.)";
	document.getElementById("info").innerHTML = html ;
	co2Emissions(distancemi);
}

function co2Emissions(dist) {
	var poundsCo2 = dist * 1.63 / 2;
	var kgCo2 = poundsCo2 * 0.45359237;
	var html = Math.round(poundsCo2*100)/100 +"lbs / "+ Math.round(kgCo2*100)/100 +"kg ";
	document.getElementById("co2").innerHTML = html ;
}

function getEmail() {
	var text =	"Please enter the email address with which you created this trip: <br />";
	text += 	"<input type='input' size='20' id='emailDelete'>";
	text += 	"<input type='hidden' id='tripIdDelete' value='"+tripId+"'> ";
	text +=		"<a href='javascript: deleteTrip();'>Delete !</a>";
	text +=		" or <a href='javascript: cancelDelete();'>Cancel</a>";
	document.getElementById("deleteTrip").innerHTML = text;
}

function cancelDelete() {
	var text = 	"<a href='javascript: tripId = " + tripId + "; getEmail();'>";
	text +=		"<img src='_imgs/icons/cancel.png' border='0' hspace='5' float='right'>";
	text +=		"Delete this trip.</a>";
	document.getElementById("deleteTrip").innerHTML = text;
}

function deleteTrip() {
	var tripId = document.getElementById("tripIdDelete").value;
	var email = document.getElementById("emailDelete").value;

	var url="deleteRideProcessor.php?tripId=";
	url = url+tripId;
	url = url+"&email="+email;
	url = url+"&sid="+Math.random();
	
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return;
	}
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged() {
	if (xmlHttp.readyState>1 || xmlHttp.readyState<4 ) { 
		document.getElementById("deleteTrip").innerHTML = "<img src='_imgs/ajax-loader.gif'> Please wait ... ";
	}

	if (xmlHttp.readyState==4 || xmlHttp.readyState=="Complete") { 
		var result = 	xmlHttp.responseText;
		var text =	"<a href='javascript: cancelDelete();'>Go back.</a>";
		document.getElementById("deleteTrip").innerHTML = result + "<br />" + text;
	}
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try { // Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) { //Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

//]]>