	var map;
    var gdir;
    var geocoder = null;
    var addressMarker;

    function initialize() {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map_canvas"));
        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);
		var meters = (gdir.getDistance()).meters;
		document.getElementById("strecke").value=meters;
		if(meters <= 10000){
			var preis = (meters/1000)*2*1.2;
			document.getElementById("preis").innerHTML=("PREIS: "+kaufm(preis)+"€");
			document.getElementById("kosten").value=kaufm(preis);
		}else{
			var preis = (meters/1000)*2*1;
			document.getElementById("preis").innerHTML=("PREIS: "+kaufm(preis)+"€");
			document.getElementById("kosten").value=kaufm(preis);
		}
      }
    }
    
    function setDirections(fromAddress, toAddress, locale) {
      gdir.load("from: " + fromAddress + " to: " + toAddress,
                { "locale": locale });
	  document.getElementById("start").value=fromAddress;
	  document.getElementById("ziel").value=toAddress;
    }

    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Ihr Ort wurde nicht gefunden.\nBitte spezifizieren Sie genauer:\nz.B.:Bahnstraße 3,Klagenfurt,Kärnten,Österreich");
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("Diese Route konnte leider nicht berechnet werden.");
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Ein Parameter wurde nicht übergeben");

	//   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("Ihr Google Key ist ungültig.");

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("Eine Eingabe ist ungültig");
	    
	   else alert("Ein unbekannter Fehler ist aufgetreten.");
	   
	}

	function onGDirectionsLoad(){ 
      // Use this function to access information about the latest load()
      // results.
	  var meters = (gdir.getDistance()).meters;
	  document.getElementById("strecke").value=meters;
	  if(meters <= 10000){
	  	  var preis = (meters/1000)*2*1.2;
		  document.getElementById("preis").innerHTML=("PREIS: "+kaufm(preis)+"€");
		  document.getElementById("kosten").value=kaufm(preis);
	  }else{
		  var preis = (meters/1000)*2*1;
		  document.getElementById("preis").innerHTML=("PREIS: "+kaufm(preis)+"€");
		  document.getElementById("kosten").value=kaufm(preis);
	  }
      // e.g.
      // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	  // and yada yada yada...
	}
	
	function kaufm(x) {
	  var k = (Math.round(x * 10) / 10).toString();
	  k += (k.indexOf('.') == -1)? '.00' : '00';
	  var p = k.indexOf('.'), m = k.indexOf('-.');
	  var f = (p == 0 || m == 0)? '0,' : ',';
	  return k.substring(0, p) + f + k.substring(p+1, p+3);
	}	
	
	$(document).ready(function(){
        $.datepicker.setDefaults({showOn: 'both', buttonImageOnly: true,
            buttonImage: 'gfx/calendar.gif',dateFormat: 'dd.mm.yy', buttonText: 'Kalender'});
        $("#date").datepicker({showOn: 'button'});
    });