var request = false;
queue = new Array();

if (window.XMLHttpRequest) {
		request = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		try {
			request = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
			try {
				request = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {}
		}
	}

function setRequest(destfile, destid, postvars) {
	if (!request) {
		//alert("Kann keine XMLHTTP-Instanz erzeugen");
		return false;
	} else {
		if(request.readyState == 1 || request.readyState == 2 || request.readyState == 3) {
			queueLength = queue.length;
			queue[queueLength] = new Array();
			queue[queueLength][0] = destfile;
			queue[queueLength][1] = destid;
			queue[queueLength][2] = postvars;
		} else {
			request.open('post', destfile, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request.send(postvars);
			request.onreadystatechange = function() { interpretRequest(destid); };
		}
	}
}

function interpretRequest(destid) {
	switch (request.readyState) {
		case 4:
			if (request.status != 200) {
				//alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
			} else {
				if (destid.length != 0) { document.getElementById(destid).innerHTML = request.responseText; }
			}
			queueLength = queue.length;
			if(queueLength != 0) {
				setRequest(queue[0][0], queue[0][1], queue[0][2]);
				queue.shift();
			}
			break;
		default:
			break;
	}
}