var g_requests = [];
var g_reqCounter = 0;

// die an callback übergebene funktion muss ein argument für den response-text bieten.
// beispiel:  function callback_function(responseDoc) {}
function AjaxRequest(url, callback, bGetXml) 
{
	this._xmlReq = null;
	this._callback = callback;
		
	var responseMethod = (bGetXml != undefined && bGetXml == true) ? 'responseXML' : 'responseText';
	var f = new Function
	(
	' \
		var r = g_requests[' + g_reqCounter + ']; \
		if (r._xmlReq.readyState == 4) { \
			if (r._xmlReq.status == 200) { \
				if (r._callback) { r._callback(r._xmlReq.' + responseMethod + '); } \
			} else { \
				alert("Es ist ein Fehler aufgetreten:\\n" + r._xmlReq.statusText); \
			} \
			document.getElementsByTagName("body")[0].style.cursor = "auto"; \
		} \
	'
	);
	
	g_requests[g_reqCounter] = this;
	g_reqCounter++;
	
	//window.onerror = NoActiveX;
	if (window.XMLHttpRequest){
		this._xmlReq = new XMLHttpRequest();
		this._xmlReq.onreadystatechange = f;
		this._xmlReq.open("GET", url, true);
		this._xmlReq.send(null);
	}
	else if (window.ActiveXObject){
		this._xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
		this._xmlReq.onreadystatechange = f;
		this._xmlReq.open("GET", url, true);
		this._xmlReq.send();
	}
	else
		alert("Das XMLHttpRequest-Objekt ist nicht aktiv!");
	
	/*
	function NoActiveX(){
		document.getElementsByTagName("body")[0].style.cursor = "auto";
		alert("ActiveX ist ausgeschaltet!");
		return true;
	}
	*/
}

