/*
*
*
*	Ajax Objekt: es muss das Aufrufende Objekt selber �bergeben werden. So kann
*	in onreadystatechange die Methode zum Abarbeiten der R�ckgabewerte aufgerufen werden.
*	Die Methoden m�ssen 'AjaxresponseText' oder 'AjaxresponseXML' je nach "ResponseArt" heissen.
*
*	Um einen Wartestatus auszugeben muss die Methode 'AjaxWait()' im Aufrufenden Objekt enthalten sein.
*
*	Es wird f�r den Wartestatus AjaxWait(true) und f�r den fertigen Status AjaxWait(false) zur�ck gegeben.
*
*	Neu Hinzugef�gt: Es kann an den Construktor jetzt auch die gew�nschte Callback Funktion angegeben werden.
*	Diese Funktion muss im aufrufenden Construktor bzw. Objekt definiert sein!
*
*
*
*/

/*
if (navigator.userAgent.indexOf("MSIE")+1) {
	if (navigator.appVersion.indexOf('6.0') != -1) {
		alert("WICHTIGER HINWEIS!\n\nSie verwenden eine nicht mehr aktuelle Browserversion!\n\nVersion: "+navigator.appVersion);
		window.XMLHttpRequest = function() {
			return new ActiveXObject('Msxml2.XMLHTTP.3.0');
		}
	} else {
		window.XMLHttpRequest = function() {
			return new ActiveXObject('Microsoft.XMLHTTP');
		}
	}
}
*/

ObjAjax = new Array();

function AjaxGet (Id,AjaxDatei,AjaxParams,Callback,Debug) {

	if (ObjAjax[Id] == null) ObjAjax[Id] = new XMLHttpRequest;

	ObjAjax[Id].open('get',AjaxDatei+'?Time='+new Date().getTime()+AjaxParams,true);
	ObjAjax[Id].onreadystatechange = function() { AjaxChkResponse(Id,AjaxDatei,AjaxParams,Callback,Debug); };
	ObjAjax[Id].setRequestHeader('If-Modified-Since','Sat, 20 May 2000 00:00:00 GMT');
	ObjAjax[Id].setRequestHeader('Connection','close');
	ObjAjax[Id].send(null);

	return false;
}

function AjaxChkResponse (Id,AjaxDatei,AjaxParams,AjaxCallback,Debug) {

	if (ObjAjax[Id].readyState == 4) {
		switch(Number(ObjAjax[Id].status)) {
		case 404:
			alert("Datei nicht gefunden: "+AjaxDatei+AjaxParams);
			break;
		case 200:
			if (Debug) alert(ObjAjax[Id].responseText);
			if (ObjAjax[Id].getResponseHeader('Content-Type') == 'text/xml') {
				Response = ObjAjax[Id].responseXML;
			} else {
				Response = ObjAjax[Id].responseText;
			}
			if (window[AjaxCallback]) {
				window[AjaxCallback](Response);
			} else {
				alert("'"+AjaxCallback+"' ist nicht definiert!");
			}
			break;
		default:
			//alert("Fehler:"+Number(ObjAjax[Id].status));
			break;
		}
	} else {

	}

	return false;
}
