var global_ajax_callback;
function Ajax()
{
  var http_request = false;
  var methode = 'post';
  var asynchron = 'true';

  var url = '';
  var callback = '';


 /*
  * initalize
  */
  function initalize()
  {
    http_request = false;

    if (window.XMLHttpRequest)
    {
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType)
      {
         http_request.overrideMimeType('text/xml');
      }
    }

    else if (window.ActiveXObject)
    {
      try
      {
         http_request = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e)
      {
       try
       {
          http_request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (e) {}
      }
    }

    if (!http_request)
    {
      alert('Could not initalize XMLHttpRequest Object!');
    }
  }




 /*
  * setMethode
  */
  this.setMethode = function(newMethode)
  {
    this.methode = newMethode;
  }

 /*
  * setUrl
  */
  this.setUrl = function(newUrl)
  {
    this.url = newUrl;
  }

 /*
  * setCallback
  */
  this.setCallback = function(funcname)
  {
    this.callback = funcname;
  }




 /*
  * sendRequest
  */
  this.sendRequest = function(param)
  {
    http_request.open(methode, this.url, asynchron);
    global_ajax_callback = this.callback;
    //http_request.callbackFunc = this.callback;
    http_request.onreadystatechange = listener;

    if(methode == 'post')
    {
      http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      http_request.send(param);
    }
    else
    {
      http_request.send(null);
    }
  }



 /*
  * listener
  */
  function listener()
  {
    if(http_request.readyState == 4)
    {
     	eval(global_ajax_callback + '(http_request);');
      //eval(http_request.callbackFunc + '(http_request);');
    }
    else
    {
    }
  }



 // RequestObj initialisieren
 initalize();
}
