// JavaScript Document
function MM_validateForm() {
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='Das Feld - '+nm+' - enthält keine gültige E-Mail-Adresse.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += 'Das Feld - '+nm+' - wurde nicht ausgefüllt.\n'; }
    } if (errors) alert('Die folgenden Fehler sind aufgetreten\n'+errors);
    document.MM_returnValue = (errors == '');
} }


//Animation mittels Scriptacolous von Link-Elementen
function an_start(aktuelles_objekt) {
	$(aktuelles_objekt).morph('margin-left:5px;',{duration:0.2}); return false;
}

function an_stop(aktuelles_objekt) {
	$(aktuelles_objekt).morph('margin-left:0px;',{duration:0.2}); return false;
}

//Ein- und Ausblenden bei den FAQs

function expand(thistag) {
styleObj=document.getElementById(thistag).style;
if (styleObj.display=='none')
	{
	styleObj.display='';
	}
else {
	styleObj.display='none';
	}
}

//GoogleMaps

 var map;
 var gdir;
 var geocoder = null;
 var addressMarker;
 
 function karte_laden() {
  	window.onload=load;
	window.onunload=GUnload;
 }

    function load() {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);
        setDirections("Heidelberg", "Bergheimer Straße 23, 69115 Heidelberg", "de_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 konnte keine passende Adresse gefunden werden. Möglicherweise ist die Adresse noch sehr neu oder die angegebene Adresse ist falsch.\nError code: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("Es ist ein Serverfehler aufgetreten bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.\n Error code: " + gdir.getStatus().code);
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Es ist ein unbekannter Fehler aufgetreten. Möglicherweise haben Sie keine 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("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
	    
	   else alert("Es ist ein unbekannter Fehler aufgetreten. Möglicherweise habe Sie keine Adresse eingegeben");
	   
	}

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

          // e.g.
	  // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	  // and yada yada yada...
	}

//ajax für Tarifrechner
function ajax(a) {
var http = null;
if (window.XMLHttpRequest) {
	http = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		http = new ActiveXObject("Microsoft.XMLHTTP");
	}
if (http !=null) {
	http.open("GET", "/php/tarifrechner.php?a="+a, true);
	http.onreadystatechange = ausgeben;
	http.send(null);
	}

function ausgeben() {
	if (http.readyState == 4) {
	document.getElementById("ausgabe").innerHTML = http.responseText;
	}
}
}

//Bilder dynamisch laden auf der Kontaktseite
function bild_anzeigen(bildname) {
	var obj = document.getElementById("picture");
	var image = document.createElement("img");
	image.src = "bilder/partner/"+bildname+".gif";
	obj.appendChild(image);
}

function bild_verbergen() {
	var obj = document.getElementById("picture");
	var bild = document.getElementById("picture").firstChild;
	obj.removeChild(bild);
}

//Mail-Adresse dechiffrieren
function uncryptmail() {
 var fenster = window.open("mailto:post@barking.de");
 fenster.close();
} 
