
// Ajax Klasse für httprequest aufruf

// Konstruktor
function Ajax() 
{
	this.url="";
    this.data="";
    this.sync=true;
    this.method="POST";
    this.onSucess=null;
    this.onError=function(msg) { alert(msg) };
}

Ajax.prototype.doRequest=function()
{
	if(!this.url)
    {
   		   	this.onError("Es wurde kein URL angegeben. Der Request wurde abgebrochen.");
    		return false;
    }
    
    if(!this.method)
    {
    		this.method="GET";
    } else 
    {
    		this.method=this.method.toUpperCase();
    }
    
    var xmlHttpRequest=getXMLHttpRequest();
    if(!xmlHttpRequest)
    {
    		this.onError("Es konnte kein XMLHttpRequest-Objekt erstellt werden.");
            return false;
    }
    
    var _this = this;
    
    switch(this.method)
    {
    case "GET":	xmlHttpRequest.open(this.method, this.url, this.sync);
    			xmlHttpRequest.onreadystatechange = readyStateHandler;        
                  xmlHttpRequest.send(null);                
                  break;
    case "POST":	xmlHttpRequest.open(this.method, this.url, this.sync);
    			xmlHttpRequest.onreadystatechange = readyStateHandler;
                  xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                  xmlHttpRequest.send(this.data+"&sessionid="+bu_g_sessionid+"&r="+Math.random());
                  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 Datenuebertragung auf.");
                  }
            }
     }
     
     function getXMLHttpRequest()
     {
     		if(window.XMLHttpRequest)
            {	
            	return new XMLHttpRequest();
            } else
            {
                  return new ActiveXObject("MSXML2.XMLHTTP");     
            }
     }

}

