/*//////////////////////
//   © STM-Consult   ///
//////////////////////*/
//AjaxRequest - Funktion zum Senden eines XMLHttp-Requests
//Paramter :
//	purl - Die Url an die der Request zu Senden ist
//	pmethod - Methode, "GET" oder "POST"
//	pbody - bei "GET" => null, bei POST => Zu übertragende Daten
//	pheaders - Array welche alle Header enthält die gesetzt werden sollen in der Form header[i][0] => Name, header[i][1] => Wert			

function AjaxRequest(purl,pmethod,pbody,pheaders)
{
  //Variablen setzen
  this.url     = purl;
  this.method  = pmethod;
  this.body    = pbody;
  this.headers = pheaders || null;
  this.onstatechange = null;
  this.xmlhttp       = null;
  this.explorere = null;
  
  //xmlhttp-Objekt erzeugen
  if (window.XMLHttpRequest){ this.xmlhttp = new XMLHttpRequest(); this.explorer=false; }  //Firefox
  else if (window.ActiveXObject){ this.xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP"); this.explorer=true;}  //Internet-Explorer
  
  //doRequest - Bei Aufruf dieser Funktion wird der Request gesendet
  this.doRequest = function()
  {
    //Verbindung starten
    this.xmlhttp.open(this.method,this.url,true); 
  
    //Cachen unterbinden
    this.xmlhttp.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
    if (this.method=="POST" || this.method=="post") 
    { //Bei Methode "POST" Content-Type setzen
      this.xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    }
	//mögliche Zusätzliche header im headers-Array setzen
    if (this.headers!=null)
    {
      for (var i=0; i<this.headers.length; i++)
      {
        this.xmlhttp.setRequestHeader(this.headers[i][0],this.headers[i][1]);
      }
    }
    //Funktion definieren, welche bei einem Statuswechsel des Requests aufgerufen wird
    this.xmlhttp.onreadystatechange = this.onstatechange;
    
    //Senden des Requests
    this.xmlhttp.send(this.body);
  } 
}
