// $URL: svn+ssh://svn/home/svn/sds2/trunk/src/websites/abslohn/ror/abslohn/public/javascripts/route.js $
// $Id: route.js 8862 2009-07-29 09:39:29Z mg $

// Schlüssel für die Benutzung von Google Maps
if(self.location.host == "yoda2:3000"){
// für http://yoda2:3000/rcm/show/contact/anfahrt
	var key = 'ABQIAAAAndUEoKgKNqFQpA9Z51kAABT2rPpetrkXv5HNACBmpl1XpsXBWRRcvsdjeBIHjHGNql14EelyIZuJRQ';
} else {
// für http://abslohn.de/rcm/show/contact/anfahrt
	var key = 'ABQIAAAAndUEoKgKNqFQpA9Z51kAABTkVRrKywFonLDmPOUcBj4VnZe_5hR5hPq8Ss5E2-l9Xdy0hBnmyy0_yw';
}
// weitere Schlüssel können unter: http://www.google.com/apis/maps/signup.html erstellt werden

// Include the Google-Library
document.write('<script type="text/javascript" src="http://maps.google.com/?file=api&amp;v=2.x&amp;key=' + key + '"></script>');

var map;
var gdir;
var geocoder;
var addressMarker;

function load() {
	/* activate for real card (not screenshot) */

//	if(!map){
//		start();
//	}

//	geocoder.getLatLng(document.getElementById("toAddress").value, setMapTo);
}

function start() {
	if (GBrowserIsCompatible()) {      

		map = new GMap2(document.getElementById("map"), { size: new GSize(400,460) });

		var customUI = map.getDefaultUI();
		map.setUI(customUI);

		map.removeMapType(G_PHYSICAL_MAP);

		map.enableDragging();
		map.enableInfoWindow(); /* ? */
		map.enableDoubleClickZoom();
		map.enableContinuousZoom();
		map.disableGoogleBar();
		map.enableScrollWheelZoom();

		gdir = new GDirections(map, document.getElementById("directions"));
		GEvent.addListener(gdir, "load", onGDirectionsLoad);
		GEvent.addListener(gdir, "error", handleErrors);

		geocoder= new GClientGeocoder();
	}
}

function setMapTo(point) {
	map.setCenter(point, 13);
	map.addOverlay(new GMarker(point));
}


function setDirections(fromAddress, toAddress) {
	if(!map){
		start();
	}

	gdir.load("from: " + fromAddress + " to: " + toAddress, {"locale": "DE_de"});
}

function handleErrors(){
	switch(gdir.getStatus().code)
	{
		case G_GEO_BAD_REQUEST:
			alert("Ihre Abfrage konnte nicht erfolgreich verarbeitet werden. Versuchen Sie es später noch einmal.\nFehlernr.: " + gdir.getStatus().code);
			break;
		case G_GEO_MISSING_QUERY:
			alert("Eingaben unvollständig.\nFehlernr.: " + gdir.getStatus().code);
			break;
		case G_GEO_UNKNOWN_ADDRESS:
		case G_GEO_UNAVAILABLE_ADDRESS:
			alert("Ihre Adresse konnte nicht gefunden werden. Bitte wählen Sie eine andere.\nFehlernr.: " + gdir.getStatus().code);
			break;
		case G_GEO_UNKNOW_DIRETIONS:
			alert("Es wurde keine Route gefunden.\nFehlernr.: " + gdir.getStatus().code);
			break;
		case G_GEO_BAD_KEY:
			alert("Ungültiger Serial-Key. Bitte verständigen Sie den Administrator.\nFehlernr.:" + gdir.getStatus().code);
			break;
		default:
			alert("Unbekannter Fehler. \nFehlernr.: " + gdir.getStatus().code);
	}
}

function onGDirectionsLoad(){ 
	// Use this function to access information about the latest load()
	// results.

	// e.g.
	// document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	// and yada yada yada...
}

function checkRouteForm(from, to){
	if (from == "") {
		alert("Bitte geben Sie Ihre Startadresse ein.");
		return(false);
	}
	if (to == "") {
		alert("Bitte geben Sie Ihre Zieladresse ein.");
		return(false);
	}
	return(true);
}
