// JavaScript Document
// von Alexander Flint
var map;
var gdir;
var geocoder = null;
var addressMarker;

function showAddress(address,text) {
		to = address;
		txt= text;
		document.getElementById('atort').innerHTML=to;
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " nicht gefunden");
            } else {
              map.setCenter(point, 11);
              var marker = new GMarker(point);
			  map.clearOverlays();
              map.addOverlay(marker);
			  
              marker.openInfoWindowHtml('<strong>'+text+'</strong><br/>'+address);
			  if(document.getElementById('StartPunkt').value!=''){
			  	setDir();
			  } else{
			  	document.getElementById('rtCtls').style.visibility='hidden';
			  }
            }
          }
        );
      }
}


function setDir() {
	var fromAddress=document.getElementById('StartPunkt').value;
	var toAddress = to;	
	if(fromAddress!=""){
		gdir.load("from: " + fromAddress + " to: " + toAddress);
	} else {
		document.getElementById('gmapper_directions').innerHTML="";	
		document.getElementById('rtCtls').style.visibility='hidden';
		showAddress(to,txt);
	}
	var cPanel1 = new Spry.Widget.CollapsiblePanel("CollapsiblePanel1",{contentIsOpen:true});
	tb_remove();
}
function delDir(){
	document.getElementById('StartPunkt').value	="";
	setDir();
}


function handleErrors(){
   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	 alert("Für die von Ihnen angegebene Adresse wurde kein passender Ort grfunden.\nDas kann daran liegen, dass die Adresse noch neu ist oder falsch geschrieben ist\nError code: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	 alert("Unbekannter Fehler bei der Verarbeitung Ihrer Anfrage.\n Error code: " + gdir.getStatus().code);
   
   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	 alert("Der HTTP q parameter hat keinen Wert. Möglicherweise haben sie eine unbekannte oder leere Adresse eingegeben.\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("Für diese Domain ist kein API-Key vorhanden. \n Error code: " + gdir.getStatus().code);

   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	 alert("Die Routenberechnung konnte nicht korrekt durchgeführt werden.\n Error code: " + gdir.getStatus().code);
	
   else alert("Unbekannter Fehler.");
   
}

function onGDirectionsLoad(){ 
	document.getElementById('rtCtls').style.visibility='visible';
	var imgs=document.getElementById('gmapper_directions').getElementsByTagName('img');
	for(var i=0;i<imgs.length;i++){
		imgs[i].src="/bilder/143.png";
	}
}


$(function(){
	var cPanel1 = new Spry.Widget.CollapsiblePanel("CollapsiblePanel1",{contentIsOpen:true});
	$('#nsMap').remove();
	$('#getRoute').attr({
	href: '#TB_inline?height=200&width=300&inlineId=jqFrmRoute&modal=true'
	});
	$('#getRoute').text('Route berechnen');
	if (GBrowserIsCompatible()) {      
		
		gdir = new GDirections(map, document.getElementById("gmapper_directions"));//
		
		GEvent.addListener(gdir, "addoverlay", onGDirectionsLoad);
		GEvent.addListener(gdir, "error", handleErrors);
		
	}
	if(!isOpera){
		$("#cPrint").remove()
	} else{
		$('#aPrint').remove();
	}
	
	
}
);
/*END*/
