function Ajax()
{
	this.url="";
	this.params="";
	this.method="GET";
	this.onSuccess=null;
	this.onError=function(msg)
	{
		alert(msg)
	}
}

Ajax.prototype.doRequest=function(){
	if(!this.url)
	{
		alert("Es wurde keine URL angegeben. Der Request wird abgebrochen");
		return false;
	}
	
	if(!this.method){
		this.method="GET";
	} else {
		this.method = this.method.toUpperCase();
	}
	
	var xmlHttpRequest=getXMLHttpRequest();
	if(!xmlHttpRequest){
		alert("Es konnte kein XMLHttpRequest-Objekt erstellt werden!");
		return false;
	}
	
	var _this = this;
	
	switch(this.method) {
		case "GET": xmlHttpRequest.open(this.method, this.url+"?"+this.params, true);
					xmlHttpRequest.onreadystatechange = readyStateHandler;
					xmlHttpRequest.setRequestHeader('Encoding', 'ISO-8859-1');
					xmlHttpRequest.send(null);
					break;
		case "POST": xmlHttpRequest.open(this.method, this.url, true);
					xmlHttpRequest.onreadystatechange = readyStateHandler;
					xmlHttpRequest.setRequestHeader('Encoding', 'ISO-8859-1');
					xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					xmlHttpRequest.setRequestHeader('Content-Length', this.params.length);
					xmlHttpRequest.send(this.params);
					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
		{
			
				alert("[".xmlHttpRequest.status+" "+xmlHttpRequest.statusText+"] Es trat ein Fehler bei der Datenuebertragung auf.");
				
			
		}
	}
}

function getXMLHttpRequest()
{
	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}
	else
	{
		try{
			return new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
			try{
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				return null;
			}
		}
	}
	return null;
}

function kAjax()
{
	this.data = "";
	this.ajax = new Ajax();
	this.ajax.onSuccess = function(txt, xml)
	{
		try{
			if(kjx.mode == 0)
			{
				var obj = window.document.getElementById(kjx.div);
				obj.innerHTML = txt;
			}
		this.lastResult = txt;
		}catch(e)
		{
		}
	};
	this.ajax.onError = this.error;
	this.div = "content";
	this.lastResult = "";
	this.mode = 0; // 0 = inDIV, 1 = Nothing
	this.switchMode =function()
	{
		switch(this.ajax.method)
		{
			case "GET":
				this.ajax.method = "POST";
				break;
			case "POST":
				this.ajax.method = "GET";
				break;
		}
	}
	
	this.toPOST = function()
	{
		this.switchTo("POST");
	}
	this.toGET = function()
	{
		this.switchTo("GET");
	}
	this.switchTo = function(method)
	{
		this.ajax.method = method;
	}
	this.error = function(txt)
	{
		alert(txt);
	}
	this.setData = function(xdata)
	{
		this.data = xdata;
	}
	this.setURI = function(url)
	{
		this.ajax.url = url;
	}
	this.send = function()
	{
		this.ajax.params = this.data;
		this.ajax.doRequest();
	}
	this.sendRequest = function(url, data)
	{
		this.setData(data);
		this.setURI(url);
		this.send();
	}

}

