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

Ajax.prototype.doRequest=function()  
{
	if (!this.url) {
		this.onError("Kein URL angegeben. Der Request wird abgebrochen.");
		return false;
		}
	if (!this.method)  {
		this.method="GET";
		}
	else {
		this.method=this.method.toUpperCase();
		}		
	var request=getRequest();
		if(!request) {
		this.onError("Keine Verbindung erstellbar"); 
		return false;
		}
	var _this = this;
	
	switch (this.method) {
		case "GET": request.open(this.method, this.url+"?"+this.params, true);
					request.onreadystatechange = readyStateHandler;
					request.send(null);
					break;
		case "POST":request.open(this.method, this.url, true);
					request.onreadystatechange = readyStateHandler;
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					request.send(this.params);
					break;
					}
	function readyStateHandler() {
		if (request.readyState < 4) {
			return false;
		}
		if (request.status == 200 || request.status == 304) {
			if (_this.onSuccess) {
				_this.onSuccess(request.responseText, request.responseXML);
			}		
		}
		else {
			if (_this.onError){
				_this.onError("[" +request.status+" "+request.statusText+"] Es trat ein Fehler auf.");
			}
		}
	}
	
}

function getRequest()
{
	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;
}
