function myTT_clsAjax() {
/*------------------------------------------------------------------------------------------------------------------------------------
 <jsclass>
  <name>     myTT_clsAjax   </name>
  <datum>    12.01.2007     </datum>
  <lastedit> 12.01.2008     </lastedit>
  <version>  1.0            </version>
  <copyright>tiefensee.com  </datum>
  <text>     Klasse zum arbeiten mit Ajax</text>
--------------------------------------------------------------------------------------------------------------------------------------
  <variablen>
------------------------------------------------------------------------------------------------------------------------------------*/
 this.fUrl         = "";                             // string -> Name der aufzurufenden URL
 this.fParams      = "";                             // array  -> Parameter für die Datenübergabe
 this.fMethod      = "GET";                          // string -> Methode der Datenübertragung
 this.fXML         = null;                           // object -> XML-Document

 this.onSuccess    = null;                           // event  ->
 this.onError      = myTT_clsAjax_OnError;           // event  -> Fehler
 this.onRequest    = myTT_clsAjax_OnRequest;         // event  ->
/*------------------------------------------------------------------------------------------------------------------------------------
  </variablen>
  <functions>
------------------------------------------------------------------------------------------------------------------------------------*/

/*------------------------------------------------------------------------------------------------------------------------------------
   <function>
    <name>myTT_Ajax_OnError</name>
--------------------------------------------------------------------------------------------------------------------------------------
    <variable>
     aMessage : string -> Fehlermeldung
    </variable>
--------------------------------------------------------------------------------------------------------------------------------------
    <text></text>
    <inhalt>
------------------------------------------------------------------------------------------------------------------------------------*/
 function myTT_clsAjax_OnError(aMessage) {
  alert(aMessage);                                    //** - Fehlermeldung mittels Meldungsbox
 }
/*------------------------------------------------------------------------------------------------------------------------------------
    </inhalt>
   </function>
------------------------------------------------------------------------------------------------------------------------------------*/

/*------------------------------------------------------------------------------------------------------------------------------------
   <function>
    <name>myTT_Ajax_OnRequest</name>
    <return>booelan - ob erfolgreich oder nicht</return>
--------------------------------------------------------------------------------------------------------------------------------------
    <text></text>
    <inhalt>
------------------------------------------------------------------------------------------------------------------------------------*/
 function myTT_clsAjax_OnRequest() {

  //** - Üeberpruefen der Angaben
  if(!this.fUrl) {                                                                                 //** - Überprüfen der URL
   this.onError("Es wurde kein URL angegeben. Der Request wird abgebrochen.");                     //** - Fehlermeldung
   return false;                                                                                   //** - Rückgabewert auf Falsch
  }

  if(!this.fMethod) this.fMethod = "GET";
               else this.fMethod  = this.fMethod.toUpperCase();

  var _this          = this;                                                                       //** - Zugriff auf Klasse für readyStateHandler ermöglichen
  var xmlHttpRequest = myTT_clsAjax_XMLHttpRequest();                                              //** - XMLHttpRequest-Objekt erstellen

  if(!xmlHttpRequest) {                                                                            //** - Testen ob Objekt erzeugt wurde
   this.onError("Es konnte kein XMLHttpRequest-Objekt erstellt werden.");                          //** - Fehlermeldung
   return false;                                                                                   //** - Rückgabewert auf Falsch
  }

  switch(this.fMethod) {                                                                           //** - Fallunterscheidung nach Übertragungsmethode
   case "GET" : // alert(this.fUrl+"&"+this.fParams);
                xmlHttpRequest.open(this.fMethod, this.fUrl+"&"+this.fParams, true);
                xmlHttpRequest.onreadystatechange = myTT_clsAjax_ReadyStateHandler;
                xmlHttpRequest.send(null);
                break;
   case "POST": xmlHttpRequest.open(this.fMethod, this.fUrl, true);
                xmlHttpRequest.onreadystatechange = myTT_clsAjax_ReadyStateHandler;
                xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                xmlHttpRequest.send(this.fParams);
                break;
  }

/*------------------------------------------------------------------------------------------------------------------------------------
   <private>
    <name>myTT_Ajax_ReadyStateHandler</name>
    <return>booelan - ob erfolgreich oder nicht</return>
--------------------------------------------------------------------------------------------------------------------------------------
    <text>Private Methode zur Verarbeitung der erhaltenen Daten</text>
    <inhalt>
------------------------------------------------------------------------------------------------------------------------------------*/
  function myTT_clsAjax_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 Datenbertragung auf.");
    }
   }
  }
/*------------------------------------------------------------------------------------------------------------------------------------
      </inhalt>
     </private>
------------------------------------------------------------------------------------------------------------------------------------*/
 }
/*------------------------------------------------------------------------------------------------------------------------------------
    </inhalt>
   </function>
------------------------------------------------------------------------------------------------------------------------------------*/

/*------------------------------------------------------------------------------------------------------------------------------------
   <function>
    <name>myTT_clsAjax_XMLHttpRequest</name>
--------------------------------------------------------------------------------------------------------------------------------------
    <text>Erstellt die XMLHttpRequest-Verbindung</text>
    <inhalt>
------------------------------------------------------------------------------------------------------------------------------------*/
 function myTT_clsAjax_XMLHttpRequest() {
  if (window.XMLHttpRequest) {
   return new XMLHttpRequest();                                               //** - XMLHttpRequest für Firefox, Opera, Safari, ...
  } else {
   if (window.ActiveXObject) {
    try {
     return new ActiveXObject("Msxml2.XMLHTTP");                              //** - XMLHTTP (neu) für Internet Explorer
    } catch(e) {
     try {
      return new ActiveXObject("Microsoft.XMLHTTP");                          //** - XMLHTTP (alt) für Internet Explorer
     } catch (e) {
      return null;
   }}}
   return false;
 }}
/*------------------------------------------------------------------------------------------------------------------------------------
    </inhalt>
   </function>
------------------------------------------------------------------------------------------------------------------------------------*/
}
/*------------------------------------------------------------------------------------------------------------------------------------
  </functions>
 </jsclass>
------------------------------------------------------------------------------------------------------------------------------------*/

