

function XMLHttpRequestObject(send,url,fct,getFct)
{
	this.sendTyp = send;
	this.url = url;
	this.sendVars = null;
	
	
	var xmlHttp = createXMLHttpRequest();

	var result = null;
	var userFunction = fct;
	var getSendVars = getFct;
	
	this.start = function()
	{
		if(xmlHttp)
			{
				try
				{
					if(xmlHttp.readyState == 0 || xmlHttp.readyState == 4) 
					{						
						xmlHttp.open(this.sendTyp,this.url,true);
						xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
						xmlHttp.onreadystatechange = handleRequest;
						
						if(this.sendVars != null)
							xmlHttp.send(this.sendVars);
						else
						{
							var post = getSendVars();
							xmlHttp.send(post);
						}
							
					}
				}
				catch(e){}
			}		
	}
	
	function handleRequest()
	{
		try
		{
			if(xmlHttp.readyState == 4) 
			{			
				if(xmlHttp.status == 200)
				{
					var Text = xmlHttp.responseText;
					if(Text && Text.length > 0 )
					{
						userFunction(xmlHttp.responseXML);
					}
				}
			}
		}
		catch(e){}		
		return;
	}
}

/****************************************************************************
		AJAX REQUEST
****************************************************************************/
function createXMLHttpRequest()
{
	var xmlHttp = null;
	
	try
	{
		if(window.ActiveXObject)
		{
			//für IE6 und aelter
			var XMLHttpVersion = new Array('MSXML2.XMLHTTP.6.0',
										   'MSXML2.XMLHTTP.5.0',
										   'MSXML2.XMLHTTP.4.0',
										   'MSXML2.XMLHTTP.3.0',
										   'MSXML2.XMLHTTP',
										   'Microsoft.XMLHTTP');
			//Prog- IDs ausprobieren
			for(var i=0;i < XMLHttpVersion.length && !xmlHttp;i++)
			{
				try
				{
					xmlHttp = new ActiveXObject(XMLHttpVersion[i]);
				}
				catch(e){}
			}
		}
		else
		{
			xmlHttp = new XMLHttpRequest();
		}
	}
	catch(e){}
	
	if(!xmlHttp)
		alert('Das XMLHttpRequest- Objekt konnte nicht erzeugt werden');
	else
		return xmlHttp;
}
