// XmlHttpRequest Objekt erstellen
var xmlHttp	= createXmlHttpRequestObject();

/**
* erstellt das XmlHttpRequest Object
*
* @return void
*/
function createXmlHttpRequestObject()
{
	var xmlHttp;

	// wenn Browser Internet Explorer ist ...
	if(window.ActiveXObject)
	{
		try
		{
			// neuere Internet Explorer
			xmlHttp	= new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try
			{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				xmlHttp = false;
			}
		}

	} else {
		// alle anderen Browser
		try
		{
			xmlHttp	= new XMLHttpRequest();
		} catch (e) {
			xmlHttp = false;
		}
	}

	if(!xmlHttp)
	{
		alert("Error creating the XMLHttpRequest object.");

		return null;
	}

	return xmlHttp;
}


/**
* Ajax Request absenden - POST Übermittlung
*
* @param string	url			Daten dorthin schicken
* @param string	params		URL Parameter werden hier übergeben, nicht in url!
* @param string	callback	callback Funktion die die response auffängt
* @return void
*/
function ajaxRequestPost(url, params, callback)
{
	// wenn alles Ok ist so das Abfrage gesendet werden kann
	if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
	{
		xmlHttp.open("POST", url, true);
		xmlHttp.onreadystatechange = addCallback(xmlHttp, callback);

		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-Length", params.length);
		xmlHttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
		xmlHttp.setRequestHeader("Connection", "close");

		xmlHttp.send(params);
	}
}

// Lege einen namenlosen Callback fuer einen Request an
function addCallback(request, callback)
{
	return function ()
	{
		if (request.readyState != 4) return false;

		if (request.status == 200)

		// OK, http code 200 - callback aufrufen
		return callback(request.responseText);

		// es gab ein Problem
		alert("HTTP error: "+request.status);
		return false; 
	}
}


