// Referenz auf XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

// XMLHttpRequest aufrufen
function createXmlHttpRequestObject ()
{
	// Referenz speichern
	var xmlHttp;
	// fuer IE:
	if(window.ActiveXObject)
	{
		try {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e) {
			xmlHttp = false;	
		}
	}
	// fuer Mozilla etc.
	else {	
		try {
			xmlHttp = new XMLHttpRequest();
		}
		catch (e) {
			xmlHttp = false;
		}
	}
	// gibt das gefundene XMLHttpRequest Objekt zurueck
	if(!xmlHttp) {
		alert("Error creating XMLHttpRequest object.");
	}
	else {
		return xmlHttp;
	}
}
// Server anrufen
function makeRequest(mode, params)
{
	// nur weitermachen wenn xmlHttp nicht busy ist
	if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		params = "mode=" + mode + "&" + params;
		var url = "php/anfrage.php?" + params;
		params = encodeURIComponent(params);
		xmlHttp.open("POST", url, true);
		xmlHttp.onreadystatechange = handleServerResponse;
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");		xmlHttp.setRequestHeader("Content-length", params.length);		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
	}
	// Try again later! 
	else {
		setTimeout('makeRequest('+ mode + ', ' + params + ')', 1000);
	}
}

// Antwort verarbeiten
function handleServerResponse () {
	// ist der Request abgeschlossen?
	if(xmlHttp.readyState == 4) {
		// war der Request erfolgreich?
		if(xmlHttp.status == 200) {
			// DO SHIT
			response = xmlHttp.responseText;
			var url = "php/message.php";
			var params = response;
			var options = "height=350,width=350,resizable=0,scrollbars=0,menubar=0,toolbar=0,location=0,status=0";
			//alert(params);
			window.open(url + "?" + params, "PopUp", options);
		} 
		// Statuscode nicht 200
		else {
			alert("Error retrieving data from server. " + xmlHttp.statusText);
		}
	}
	
}