/******************************************************************************
**  httpComServerRequest.js                                                  **
**                                                                           **
**  Dient zur Kommunikation zwischen Client und Server über HTTP-Request.    **
**                                                                           **
**  Autor: Höft, Torben                                                      **
**  Email: t-hoeft@web.de / thoeft@studio-hamburg.de                         **
**  Copyright: 2006                                                          **
**                                                                           **
**  Erstellt: 14. September 2006                                             **
**  Aktualisiert: 14. September 2006                                         **
**                                                                           **
**                                                                           **
******************************************************************************/

function httpComServerRequest(){

   var responseXMLObjectCom=null;
   var requesterCom=null;
   var outputErrorDiv = null;
   var url = "";
   var sendparameter = "";
   var timerfunction = "";
   var timerduration = 1000;
   var debug_mode = false;


   function loadRequestObjectCom(){

       try{

          requesterCom = new XMLHttpRequest();

          requesterCom.overrideMimeType('text/xml');

          return true;

       }catch (error){

          try{

             //requesterCom = new ActiveXObject("Microsoft.XMLHTTP");
             requesterCom = new ActiveXObject("MSXML2.XMLHTTP");

             return true;

          }catch (error){

             return false;
          }
       }
   }


   function stateHandlerCom(){

      try{

        if (requesterCom.readyState == 4){

           if (requesterCom.status == 200){

             xmlDom = requesterCom.responseXML;

             if(debug_mode){

                alert('Debug Mode');

                //document.write(requesterCom.responseText);

                alert(requesterCom.responseText);

             }

             //Auswertung der übergebenden Daten
             var ajaxServerResponseObject = new ajaxServerResponse();

             ajaxServerResponseObject.handleServerResponse(xmlDom);

           }else{

             ausgabe_failureCom();
           }
       }

      }catch (error){

         ausgabe_failureCom();
      }

      return true;

   }


   this.setDebugMode = function(mode){

     debug_mode = mode;

   }


   function ausgabe_failureCom(){

      if(outputErrorDiv==null){

        alert("Connection Error");

      }else{

        outputErrorDiv.innerHTML = "Connection Error";

      }
   }


   this.setURL = function(seturl){

       url = seturl;

   }


   this.setParameter = function(setsendparameter){

       sendparameter = setsendparameter;

   }

   this.setFailureOutputDiv = function(div){

       outputErrorDiv = div;

   }


   this.comstart = function(){

      loadRequestObjectCom();

      requesterCom.onreadystatechange = stateHandlerCom;

      requesterCom.open("POST", url, true);

      requesterCom.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');

      requesterCom.send(sendparameter);

   }

}
