var route = function(ln) {
	var map;
	var dir = "to";
	var gdir;
	var geocoder = null;
	var travelMode = "G_TRAVEL_MODE_DRIVING";
	var addressMarker;
	
	switch(ln) {
		case "en":	var locale = "us_US";	break;
		case "fr":	var locale = "fr_FR";	break;
		default:	var locale = "de_DE";	break;
	}
	
	map = new GMap2(getObjectById("gMap"));
	geocoder = new GClientGeocoder();

	geocoder.getLatLng(
		"Poetenweg 88, 14612 Falkensee",
		function(point) {
			if (!point) {
				alert("Poetenweg 88, 14612 Falkensee konnte nicht gefunden werden!");
			}
			else {
				map.setCenter(point, 12);
				var marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml("<div class=\"gMap-label\">Literaturcaf&eacute; Hexenhaus</div><div>Poetenweg 88, 14612 Falkensee</div>");
    		}
    	}
    );
	
	this.generate = function(form_obj, heading) {
		try {
			var inputAddress, tmp, direction;
			
			if(typeof form_obj != "object") {
				form_obj = getObjectById("fe_route_generator");
			}
			inputAddress = form_obj.street.value+" "+form_obj.number.value+", "+form_obj.plz.value+" "+form_obj.town.value;
			
			gfx.fade("fe_route_generator", 100, 0 , false);
			
			tmp = getObjectById("gDirections");
			tmp.innerHTML = "";
			
			gdir = new GDirections(map, tmp);
			GEvent.addListener(gdir, "addoverlay", onGDirectionsLoad);
			
			if(dir == "to")
				direction = "from: " + inputAddress + " to: Poetenweg 88, 14612 Falkensee";
			else
				direction = "from: Poetenweg 88, 14612 Falkensee to: " + inputAddress;
			
			gdir.load(direction, {"locale": locale, "travelMode": eval(travelMode)});
			
			return false;
		}
		catch(e) {
			alert(e);
			return false;
		}
	}

	var onGDirectionsLoad = function(){
		try {
			getObjectById("fe_route_generator").style.display = "none";
			var gDirections = getObjectById("gDirections").style;
			
			gDirections.opacity = 0;
			gDirections.MozOpacity = 0;
			gDirections.KhtmlOpacity = 0;
			gDirections.filter = "alpha(opacity=0)";
			gDirections.display = "block";
			
			gfx.fade("gDirections", 0, 100, true);
		}
		catch(e) {
			alert(e);
		}
	}
	
	this.changeDir = function(nDir) {
		if(nDir == "to") {
			dir = "to";
			
			getObjectById("radio_direction_to").className = "styled_input checked";
			getObjectById("radio_direction_from").className = "styled_input";
		}
		else {
			dir = "from";
			
			getObjectById("radio_direction_from").className = "styled_input checked";
			getObjectById("radio_direction_to").className = "styled_input";
		}
	}
	
	this.changeType = function(nType) {
		if(nType == "driving") {
			travelMode = "G_TRAVEL_MODE_DRIVING";
			
			getObjectById("radio_type_driving").className = "styled_input checked";
			getObjectById("radio_type_walking").className = "styled_input";
		}
		else {
			travelMode = "G_TRAVEL_MODE_WALKING";
			
			getObjectById("radio_type_walking").className = "styled_input checked";
			getObjectById("radio_type_driving").className = "styled_input";
		}
	}
}