// Ruft ein PHP-Script auf, übergibt die
// Parameter und wartet max. 2 Sekunden
// auf die Rückgabe
//
// Parameter:
//
// getRequest.Script = Welches Script/Programm aufrufen
// getRequest.Parameter = Parameter für das Script
// getRequest.AusgabeFunc = Funktion zur Ausgabe der Daten
// getRequest.AusagabeID = ID des DIVs fuer die Ausgabe
// getRequest.AbbruchFunc = Funktion für den Abbruch den Anfrage
//							kann z.B. showRequestError sein.
//
// getRequest und http müssen als global bekannt sein.

var http = null;
var getRequest = new Object();

// Standardfunktion fuer die Fehleranzeige
getRequest.CheckDaten = true;
getRequest.CheckRequestFunc = i_checkRequest;
getRequest.AbbruchFunc = i_showRequestError; // Funktion für Abbruch, TimeOut
getRequest.URL = "http://www.tierregistrierung.de/themes/tierregistrierung/ajax_php/";	// Pfad wo Programme liegen

function i_makeRequest() {

	if (window.XMLHttpRequest) {
		http = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		http = new ActiveXObject("Microsoft.XMLHTTP");
	}

	if (http != null) {
		http.open("POST", getRequest.URL+getRequest.Script, true);	// Script-Aufruf
		http.onreadystatechange = getRequest.CheckRequestFunc;		// Funktion fuer die Anzeige, wir aber hier zuerst durch den Check geschickt
		http.setRequestHeader(										// Header und Parameter für Script senden
			"Content-Type", "application/x-www-form-urlencoded");
		http.send(getRequest.Parameter);
		getRequest.TimeoutId = window.setTimeout("getRequest.AbbruchFunc('Error: Zeitueberschreitung bei Serverabfrage')", 2000);	// max. 2 Sekunde (2000 ms) warten sonst TimOutAnzeige
	}
}


/***
  Prueft ob ein Fehler beim Request aufgetreten ist.

**/
function i_checkRequest(){

	if (http.readyState == 4) {
		if(http.status == 200) {
			window.clearTimeout(getRequest.TimeoutId);
			var daten = http.responseText;
			if (getRequest.CheckDaten) {
			  daten = eval("(" + daten + ")");
			  var inhalt = daten[0];
			  if(typeof(inhalt.error) != 'undefined') {
				  getRequest.AbbruchFunc(inhalt.error);
			  }
			  else {
				  getRequest.AusgabeFunc(daten);
			  }
			}
			else {
			  getRequest.AusgabeFunc(daten);
			}
		}
		else {
			getRequest.AbbruchFunc('Error: Serverabfrage fehlgeschlagen ('+http.status+')');
		}
	}
}

// Zeigt die Fehlermeldung an, wenn ein Request
// fehlschlaegt
//
// getRequest.AusgabeID ist der DIV in welchem
// eigentlich auch die korrekte Anzeige erfolgt



function i_showRequestError(cError) {

	document.getElementById(getRequest.AusgabeID).innerHTML = '<font color=red>'+cError+'</font>';
	http.abort();
}
