	var map = null;
	var gdir;
	var geocoder = null;
	var addressMarker;
	var locale = "de_DE";
	var routeTarget = "Hubstraße 33, 77833 Ottersweier";

	function showAddress(address, theMap) {
		var point = null;
		if (geocoder) {
		  geocoder.getLatLng(
		    address,
		    function(point) {
		      if (!point) {
		        alert(address + " nicht gefunden");
		      } else {
		        theMap.setCenter(point, 13);
		        theMap.addOverlay(new GMarker(point));
		      }
		    }
		  );
		}
	}

	function setDirections(fromAddress, toAddress, locale) {
		//alert("from: " + fromAddress + " to: " + toAddress + " locale: " + locale);
		$('dircontainer').show();
		dMap = new GMap2($('map_canvas'));
		$('directions').update('');
		gdir = new GDirections(dMap, $('directions'));
		GEvent.addListener(gdir, "error", handleErrors);
		gdir.load("from: " + fromAddress + " to: " + toAddress,
	           { "locale": locale });
		dMap.setUIToDefault();
		location.href = "#mapstart";
	}

	function displayErrMsg(theMsg) {
		$('errDsp').update($('errDsp').innerHTML + "<br />" + theMsg);
	}

	function planRoute() {
		$('errDsp').update('');
		if($F('startLoc') == "") {
			displayErrMsg("Bitte Startadresse auswählen!");
			return false;
		} else {
			setDirections($F('startLoc'), routeTarget, locale);
		}
	}

	function handleErrors(){
		var errMsg;
		switch(gdir.getStatus().code) {

			case G_GEO_UNKNOWN_ADDRESS:
				errMsg = "Ihr Standort konnte leider nicht lokalisiert werden. Vielleicht ist Ihre Adresse sehr neu oder fehlerhaft.";
			break;

			case G_GEO_SERVER_ERROR:
				errMsg = "Die Berechnung konnte aufgrund eines unbekannten Fehlers leider nicht durchgefürt werden.";
			break;

			case G_GEO_MISSING_QUERY:
				errMsg = "Die Berechnung konnte aufgrund eines unbekannten Fehlers leider nicht durchgefürt werden.";
			break;

			case G_GEO_BAD_KEY:
				errMsg = "Die Berechnung konnte aufgrund eines Schlüsselfehlers leider nicht durchgefürt werden.";
			break;

			case G_GEO_BAD_REQUEST:
				errMsg = "Die Berechnung konnte leider nicht durchgefürt werden.";
			break;

			default:
				errMsg = "Fehler! Die Zieladresse ist nicht erreichbar.";
			break;
		}
		alert(errMsg);
	}
