//<![CDATA[

	var h_lon;
	var h_lat;
	var map_type;
	var ctrl_type;
	var map_type_choose;
	var dist_view;
	var map_overview;
    var map;
    var gdir;
    var geocoder = null;
    var addressMarker;

    function initialize(h_lon, h_lat, map_type, ctrl_type, map_type_choose, dist_view, map_overview) {
      if (GBrowserIsCompatible()) {
		  if (map_type == '1') {
			map = new GMap2(document.getElementById("map_canvas"), {mapTypes:[G_NORMAL_MAP, G_SATELLITE_MAP, G_HYBRID_MAP]});
		  }else if(map_type == '2'){
			map = new GMap2(document.getElementById("map_canvas"), {mapTypes:[G_SATELLITE_MAP, G_HYBRID_MAP, G_NORMAL_MAP]});
		  }else if(map_type == '3'){
			map = new GMap2(document.getElementById("map_canvas"), {mapTypes:[G_HYBRID_MAP, G_NORMAL_MAP, G_SATELLITE_MAP]});
		  }
		  if (ctrl_type == '1') {
			map.addControl(new GSmallMapControl());
		  }else if(ctrl_type == '2'){
			map.addControl(new GLargeMapControl());
		  }else if(ctrl_type == '3'){
			map.addControl(new GSmallZoomControl());
		  }
		  
		  if (map_type_choose == '1') {
			map.addControl(new GMapTypeControl());
		  }

		  if (dist_view == '1') {
			map.addControl(new GScaleControl());
		  }
		  
		  if (map_overview == '1') {
			map.addControl(new GOverviewMapControl());
		  }
			
			gdir = new GDirections(map, document.getElementById("directions"));
			GEvent.addListener(gdir, "load", onGDirectionsLoad);
			GEvent.addListener(gdir, "error", handleErrors);
			
			setDirections("48.1829053, 16.3621888", ''+h_lat+', '+h_lon+'', "de");
      }
    }
    
    function setDirections(fromAddress, toAddress, locale) {
      gdir.load("from: " + fromAddress + " to: " + toAddress,
                { "locale": locale });
    }

    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Es konnten keine geografischen Daten zu dem von Ihnen spezifizierten Ort gefunden werden. Entweder ist diese Adresse zu neu oder Sie haben sich in der Eingabe geirrt. Eingabeformat: Straße Hausnummer, Plz. Ort\nError Code: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("Es ist ein unbekannter Fehler aufgetreten, weshalb keine zu Ihren Angeben passenden geografischen Daten gefunden werden konnten. Eingabeformat: Straße Hausnummer, Plz. Ort\n Error Code: " + gdir.getStatus().code);
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Bitte geben Sie korrekte Daten nach folgendem Muster ein: Straße Hausnummer, Plz. Ort.\n Error Code: " + gdir.getStatus().code);

	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
	     
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("Es besteht ein API-Key Problem. Bitte informieren Sie uns mit dem unter Kontakte befindlichen Formular. Geben Sie bitte folgenden Error Code an: \n Error Code: API-Key/" + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("Ihre Anfrage konnte im System leider nicht erfolgreich umgesetzt werden. Versuchen Sie es nochmal. Eingabeformat: Straße Hausnummer, Plz. Ort\n Error Code: " + gdir.getStatus().code);
	    
	   else alert("Ein unbekannter Fehler ist aufgetreten.");
	   
	}

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

      // ie: comment out for testing! The Status will be shown at the top of the map.
      //document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	}
//]]>

