/*
 * $Id: ajax.js,v 1.1 2007-10-27 12:47:02 nicol Exp $
 */

XmlHttp = new Array();

function createXMLHeaderRequest(mimetype){
   http_request = false;
   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      http_request = new XMLHttpRequest();
      // MimeType wird gesetzt
	  if(mimetype != null) {
	     if (http_request.overrideMimeType) {
            http_request.overrideMimeType(mimetype);
         }
      }
   } else if (window.ActiveXObject) { // IE
      try {
         http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
      }
   }
   return(http_request);
}


function sendXmlHttpCall(url, parameters, callback, mimetype, nameTag, actionStatement, resultType, requestHeader){
   var idx = XmlHttp.length;
   for(var i=0; i<idx; i++)
      if(XmlHttp[i] == null){
         idx = i;
	  break;
   }
   XmlHttp[idx]=new Array(5);
   XmlHttp[idx][0] = createXMLHeaderRequest(mimetype);
   XmlHttp[idx][1] = callback;
   XmlHttp[idx][2] = nameTag;
   XmlHttp[idx][3] = actionStatement;
   XmlHttp[idx][4] = resultType;
   if(XmlHttp[idx]) {
      XmlHttp[idx][0].open('GET', url + parameters, true);
	  if( requestHeader !=null){
	  	// XmlHttp[idx][0].setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
		XmlHttp[idx][0].setRequestHeader(requestHeader);
      }
      XmlHttp[idx][0].onreadystatechange = processResponse;
	  XmlHttp[idx][0].send(null);	
   }
}

function processResponse(){
   for (var i=0; i<XmlHttp.length; i++){
      if(XmlHttp[i] && XmlHttp[i][0] && XmlHttp[i][0].readyState == 4 && XmlHttp[i][0].responseText) {
         if (XmlHttp[i][0].status == 200) {
            var resultString = XmlHttp[i][0].responseText;
            var callback = XmlHttp[i][1];
            var nameTag = XmlHttp[i][2];
            var actionStatement = XmlHttp[i][3];
			var resultType = XmlHttp[i][4];
            XmlHttp[i][0] = null;
            XmlHttp[i][1] = null;
            XmlHttp[i][2] = null;
            XmlHttp[i][3] = null;
			XmlHttp[i][4] = null;
            XmlHttp[i] = null;
			callback(nameTag, actionStatement, resultString, resultType);
         } else {
            // Fehler
            alert('Fehler bei der Webseiten-Anfrage (Fehlercode: ' + XmlHttp[i][0].status + ')' );
         }
      }
   }
}

