function KAjax()
{
	this.url="";
	this.params="";
	this.method="GET";
	this.onError=function(msg)
	{
		alert(msg);
	};
	this.onSuccess=null;
}

function getXMLHttpRequest()
{
	if (window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}
	else
	{
		if (window.ActiveXObject)
		{
			try
			{
				return new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e)
			{
				try
				{
					return new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(e)
				{
					return null;
				}
			}
		}
	}
	return null;
}

KAjax.prototype.doRequest=function()
{
	if (!this.url)
	{
		this.onError("Es wurde keine URL angegeben.");
		return false;
	}
	if (!this.method)
	{
		this.method="GET";
	}
	else
	{
		this.method=this.method.toUpperCase();
	}
	var _this=this;
	var xmlHttpRequest=getXMLHttpRequest();
	if (!xmlHttpRequest)
	{
		this.onError("Es konnte kein XMLHttpRequest erstellt werden.");
		return false;
	}
	switch(this.method)
	{
		case "GET":
			xmlHttpRequest.open(this.method,this.url+"?"+this.params,true);
			xmlHttpRequest.send(null);
			xmlHttpRequest.onreadystatechange=readyStateHandler;
			break;
		case "POST":
			xmlHttpRequest.open(this.method,this.url,true);
			xmlHttpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xmlHttpRequest.send(this.params);
			xmlHttpRequest.onreadystatechange=readyStateHandler;
			break;
	}
	function readyStateHandler()
	{
		if (xmlHttpRequest.readystate < 4) return false;
		if (xmlHttpRequest.status == 200 || xmlHttpRequest.status == 304)
		{
			if (_this.onSuccess)
			{
				_this.onSuccess(xmlHttpRequest.responseText,xmlHttpRequest.responseXML);
			}
		}
		else
		{
			if (_this.onError)
			{
				_this.onError("["+xmlHttpRequest.status+" "+xmlHttpRequest.statusText+"] Es trat ein Fehler bei der Datenübertragung auf.");
			}
		}
	}
}
