 var http_request = false;
 var id = null;
 warteschlange = new Array();

function macheRequest(funktion,getpost,ajaxdatei,poststring,timeout) {

    send_aktiv = 0;
    if(http_request.readyState == 1 || http_request.readyState == 2 || http_request.readyState == 3 || warteschlange.length > 0) {
      if (warteschlange.length > 6) return false;
      neuer_request = "'"+funktion+"','"+getpost+"','"+ajaxdatei+"','"+poststring+"','"+timeout+"'";
      warteschlange.push(neuer_request);
      setTimeout("macheRequest("+warteschlange[0]+")",500);
      warteschlange.shift();
    }
    else {
    
      if (http_request) {
        http_request.abort();
      }
    
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
          http_request = new XMLHttpRequest();
          if (http_request.overrideMimeType) {
              http_request.overrideMimeType('text/html; charset=iso-8859-1');
              // zu dieser Zeile siehe weiter unten
          }
      } else if (window.ActiveXObject) { // IE
          try {
              http_request = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (e) {
              try {
                  http_request = new ActiveXObject("Microsoft.XMLHTTP");
              } catch (e) {}
          }
      }

      if (!http_request) {
          // alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
          return false;
      }
      if (funktion.indexOf("(") == -1) funktion = funktion+'()';
      http_request.onreadystatechange = new Function(funktion);
      http_request.open(getpost, ajaxdatei, true);
      //http_request.setRequestHeader("Connection", "close");
      if (getpost == "post") {
        http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http_request.send(poststring);
      }
      else if (getpost == "get") {
        http_request.send(null);
      }
      id = window.setTimeout("abbrechen('"+funktion+"')", timeout);
    }
}
function abbrechen(funktion) {
  http_request.abort();
  //alert("Zeitüberschreitung der Anfrage...");
}
function leave() {
  if (http_request) {
    http_request.abort();
    http_request = false;
  }
}
