function showRoute(mapid)
{
	if(!mapid) return;
	document.getElementById("routepanel").innerHTML="";
	rMap = new GMap2(document.getElementById(mapid));
	var routePanel = document.getElementById("routepanel");
	var addressFrom = document.getElementById("addressField").value;
	if(addressFrom=="") { addressFrom = "Wien,at"; document.getElementById("addressField").value = addressFrom;}
	if(addressFrom != "")
	{
		var addressTo = document.getElementById("routeTo").value;
		if(addressTo != "" && addressTo != "Address" && addressTo != "Indirizzo")
		{
			var totalRoute = "from:" + addressFrom + " to: " + addressTo;
			document.getElementById("routeControl").style.display="block";
			directions = new GDirections(rMap, routePanel);
			GEvent.addListener(directions, "error", handleErrors);
			directions.load(totalRoute, {"locale" : "de"});
		}
		else
		{
			alert("Please enter an address.");
		}
	}
	else
	{
		alert("Sorry, target address is not available.");
	}
}

function presetDeparture(mapid,departure)
{
	if(departure != "")
	{
		document.getElementById("addressField").value = departure;
		showRoute(mapid);
	}
}

function unshowRoute()
{
	document.getElementById("routepanel").innerHTML="";
	document.getElementById("routeControl").style.display="none";
}

function closePanel()
{
	var sURL = unescape(window.location.pathname);
	window.location.replace( sURL );
}

function handleErrors(){
	if (directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	{
		alert("Diese Adresse konnte nicht gefunden werden.\nEntschuldigung!\nBitte probieren Sie eine andere.");
	}
	else if (directions.getStatus().code == G_GEO_SERVER_ERROR)
	{
		alert("Oops, unbekannter Fehler.\nEntschuldigung!");
		closePanel();
	}
	else if (directions.getStatus().code == G_GEO_MISSING_QUERY)
	{
		alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + directions.getStatus().code);
		closePanel();
	}
	else if (directions.getStatus().code == G_GEO_BAD_KEY)
	{
		alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + directions.getStatus().code);
		closePanel();
	}
	else if (directions.getStatus().code == G_GEO_BAD_REQUEST)
	{
		alert("Die Adresse konnte nicht richtig aufgelšst werden.\nEntschuldigung!");
		closePanel();
	}
	else 
	{
		alert("Unbekannter Fehler.\nDoh!");
		closePanel();
	}
}

