var SelectedForm;
var SelectedRow;
var SelectedField;
var SelectedDateField;
var SelectedPosition;
var newPosX;
var newPosY;


function CreateRequestObject() {
   var req = null;
   try {
      req = new XMLHttpRequest();
   }
   catch (ms){
      try{
         req = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (nonms){
         try{
            req = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch (failed){
            req = null;
         }
      }
   }
   if (req == null) alert("Error creating request object!");
   return req;
}

function XGetRequest(url) { // alert(url);
   var req = CreateRequestObject();
   req.open("GET", url, true);
   req.onreadystatechange = function(){
   switch(req.readyState) {
      case 4:
         if(req.status!=200) {
            alert("Fehler:" + req.status);
         } else {
            // alert(url);
            // alert(req.responseText); //return;
            xRequestHandler(req.responseXML);
         }
       break;

       default:
          return false;
       break;
    }
   };
   req.send(null);
}

function XPostRequest(url,params) {      // alert(url);
   //      alert(params);
   var req = CreateRequestObject();
   req.open("POST", url, true);
   req.onreadystatechange = function(){
   switch(req.readyState) {
      case 4:
         if(req.status!=200) {
            alert("Fehler:" + req.status);
         } else {
           // alert(req.responseText);
           // displayStatusLine("OK");
           xRequestHandler(req.responseXML);
         }
       break;

       default:
          return false;
       break;
    }
   };
   req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   req.setRequestHeader("Content-length", params.length);
   req.setRequestHeader("Connection", "close");
   req.send(params);
}

function xPost(aForm,url) {
   params = xPostParams(aForm);
   XPostRequest(url,params);
}

function xGet(url) {   // alert(url); return;
   XGetRequest(url);
}

function xPostParams(aForm) {
   params = "";
   for(i=0;i<aForm.elements.length;i++) {
      if(aForm.elements[i].tagName == "SELECT") {
         theOptions = aForm.elements[i].options;
         for(x=0;x<theOptions.length;x++) {
            if(theOptions[x].selected == true) {
               add = aForm.elements[i].name + '=' + theOptions[x].value + "&";
               params += add;
            }
         }

      }
      else params += aForm.elements[i].name + "=" + encodeURIComponent(aForm.elements[i].value) + "&";
   }
   return params;
}

function xRequestHandler(xmldoc) {
   blocks = xmldoc.getElementsByTagName("block");
   for(i=0;i<blocks.length;i++) {
      handlerID = blocks[i].getAttribute("respHandler");
      // alert(handlerID);
      if(responseHandler[handlerID]) {
         responseHandler[handlerID](blocks[i]);
      }
      else alert("Fuer " + handlerID + " wurde kein Handler gefunden!");
   }
}

function XTextResponse(theText,theContainer) {
   OpenPopup(theContainer);
   document.getElementById(theContainer).innerHTML = theText;
}
