// AJAX 

// start: Diese Funktion speichert in der Variable xhr (Xml Http Request) die zu verwendende connect methode. 
function http()
{
	try {
		// IE abhängig von build version
		xhr = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(Error){
		try {
			// IE abhängig von build version
			xhr = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch(Error){
			try {
				// Alle Browser außer IE z.B.: Mozilla, Opera, ...
				xhr = new XMLHttpRequest();
			}
			catch(Error){
				// Falls der Browser keines der 3 Methoden unterstützt (sollte nicht vorkommen).
				alert("Ihr browser ist nicht AJAX fähig");
			}
		}
	}
	return xhr;
}
// ende: Diese Funktion speichert in der Variable xhr (Xml Http Request) die zu verwendende connect methode. 

// start: Default Requestanfrage
function send_req(datei,parameter) {
	// Es wird die entsprechende Methode aus der Funktion http() in die Variable xhr gespeichert.
	xhr = http();
	
	// Es wird eine Verbindung mit folgenden Daten aufgebaut.
	//   'post/get' = mit welcher Methode soll die Anfrage gesendet werden.
	//   datei      = Variable welche die Datei enthält welche aufgerufen werden soll (kann auch als string geschrieben werden).
	//   true/false = Ob die Anfrage asynchron/synchron gesendet werden soll.
    //                - false steht für synchron: Die Skriptausführung wird angehalten, bis die Daten vom Server zurückkommen.
    //                - true steht für asynchron: Die Skriptausführung geht weiter, denn die HTTP-Anfrage wird im Hintergrund ausgeführt.
	xhr.open('post', datei ,true);
	
	// In der Eigenschaft onreadystatechange geben Sie den Namen dieser Callback-Funktion an (als Verweis, also ohne Anführungszeichen).
	// Alternativ verwenden Sie eine anonyme Funktion:
	// bzw. Hier wird auf eine Funktion verwiesen, dies wird solange gemacht bis die Verbindung fertig ist.
	xhr.onreadystatechange = handleResponse;
	
	// Dieser Parameter wird benötigt wenn man Parameter per POST mitschicken will (header)
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	// In diesem Parameter werden alle Daten angegeben die via POST mitübertragen werden sollen. (parameter = Variable)
	xhr.send(parameter);
}
// ende: Default Requestanfrage

// start: Was soll gemacht werden solange die AJAX Verbindung nicht abgeschlossen ist?
function handleResponse() {
	
	// Mögliche readyState parameter:
	// 0 = nicht initialisiert
	// 1 = lädt
    // 2 = fertig geladen
    // 3 = wartet
    // 4 = fertig
	if(xhr.readyState == 4){
		// responseText enthält den gesammten Inhalt der von der aufgerufenen datei zurückgegeben wird als string.
		var rueckgabe = xhr.responseText;
		// eval nimmt den Inhalt einer Variable und wandelt die dort als string enthaltenen Befehle in wirkliche JS Befehle um (z.B. erzeugt Array, usw ...).
		var objekt = eval("(" + rueckgabe + ")");
		alert(objekt[1]['url']);
	}
// ende: Was soll gemacht werden solange die AJAX Verbindung nicht abgeschlossen ist?
}
function send_req_default(datei,parameter,handle) {
	xhr = http();
	xhr.open('post', datei ,true);
	xhr.onreadystatechange = eval(handle);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send(unescape(parameter));
}
function handleResponse_kontakt() {
	if(xhr.readyState == 4){
		var rueckgabe = xhr.responseText;
		var objekt = eval("(" + rueckgabe + ")");
		alert (objekt[0]['text']);
		document.kontaktform.reset();
	}
}
// AJAX ENDE





function radio_value(id,id2){
	radio_counter = 0;
	while(radio_counter < document.getElementsByName(id).length){
		if(document.getElementsByName(id)[radio_counter].checked == true){
			document.getElementById(id2).value = document.getElementsByName(id)[radio_counter].value;
			return;
		}
		radio_counter = radio_counter + 1;
	}
}

