var map;
var gdir;
var geocoder = null;
var addressMarker;

function gmapInit() {
  if (GBrowserIsCompatible()) {  
    
	geocoder = new GClientGeocoder();
    map = new GMap2(document.getElementById("map_canvas"));
	map.setUI(map.getDefaultUI());
	
    /*gdir = new GDirections(map, document.getElementById("directions"));
    GEvent.addListener(gdir, "load", onGDirectionsLoad);
    GEvent.addListener(gdir, "error", handleGdirErrors);*/
  }
}


function handleGdirErrors(){
	
	switch (gdir.getStatus().code) {
		case G_GEO_UNKNOWN_ADDRESS: 
			alert("Es wurde kein entsprechender Ort zu Ihrer Routenberechnung gefunden!\nError code: " + gdir.getStatus().code);
			break;
		case G_GEO_SERVER_ERROR: 
			alert("Leider konnte keine Route berechnet werden!\n Error code: " + gdir.getStatus().code);
			break;
		case G_GEO_MISSING_QUERY: 
			alert("Der HTTP q Parameter fehlt oder hat keinen Inhalt!\n Error code: " + gdir.getStatus().code);
			break;
		case G_GEO_BAD_KEY: 
			alert("Der angegeben API Key ist fÌr eine andere Domain. \n Error code: " + gdir.getStatus().code);
			break;
		case G_GEO_BAD_REQUEST: 
			alert("Leider ist ein Fehler bei der Routenberechnung aufgetreten.\n Error code: " + gdir.getStatus().code);
			break;
		default:
			alert("Ein unbekannter Fehler trat auf!");
	}
}

function onGDirectionsLoad(){ 

}

function addMarker(address, tabs) {
	
	geocoder.getLatLng(address, function(point) {
		if (!point) {
			alert(address + " wurde nicht gefunden!");
		}
		else {
			map.setCenter(point, 12);
			
			var marker = new GMarker(point);
			GEvent.addListener(marker, 'click', function() {
				marker.openInfoWindowTabsHtml(tabs);
			});
			map.addOverlay(marker);
		}
	});
}
