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

var responseHandler = new Array();
responseHandler["createPopup"] = createPopup;

function showImage(aImg) {
    if(document.getElementById("shadow") == null) {
        var shadow = document.createElement("DIV");
        shadow.id = "shadow";
        // document.body.appendChild(shadow);
    }

    var url = "image.php?imageID=" + aImg; 
    // alert(url);
    XGetRequest(url);
}

function XGetRequest(url) { // alert(url); return;
   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);
}


// Position eines Records (Zeile) in einer Tabelle
function getPosition(aElem) {
   theTBody = aElem.parentNode.parentNode.parentNode;
   if(theTBody.getElementsByTagName("TR").length > 1)  {
      for(x=0;x<theTBody.getElementsByTagName("TR").length;x++) {
         if(aElem.parentNode.parentNode == theTBody.getElementsByTagName("TR")[x]) aRow = x;
      }
   }
   else aRow = 0;
   return aRow;
}

function createPopup(block) {
   var Container = document.createElement("DIV");
   removePopup(block.getAttribute("target"));
   Container.id = block.getAttribute("target");   // alert(); return;
   Container.style.position = "absolute";
   goodGuy = (document.all)?"yes":"no";
   if(goodGuy == "yes") Inhalt = block.getElementsByTagName("content")[0].firstChild.nodeValue;
   if(goodGuy == "no") Inhalt = block.getElementsByTagName("content")[0].childNodes[1].nodeValue;
   Container.innerHTML = Inhalt;      // menuID + ": </br>" +
   document.body.appendChild(Container);
}

String.prototype.unescapeHTML = function() {
  dummie = document.createElement('span');
  dummie.innerHTML = this;
  return dummie.firstChild.data;
}

function getItemPosition(aItem) {
   this.x = 0;
   this.y = 0;

   var tNode = aItem;
   menuWidth = aItem.parentNode.offsetWidth;
   menuHeight = aItem.parentNode.offsetHeight;

   while (tNode.nodeName != "BODY") {
      this.x += tNode.offsetLeft;
      this.y += tNode.offsetTop;
      tNode = tNode.offsetParent;
   }
   return this;
}

function OpenSelection(TheFeld) {
   var SessionID = getSessionID();
   var url = "x.action.php?sid=" + SessionID

   if(TheFeld.name == "AdrRange") {     // alert(TheFeld.name);
       url += "&action=common.address.range&adrRange=" + TheFeld.value;
       xGet(url);
   }

   if(TheFeld.name == "P_AdrRange") {     // alert(TheFeld.name);
       url += "&action=common.address.range&adrRange=" + TheFeld.value;
       url += "&person=1";
       xGet(url);
   }

   if(TheFeld.name == "AdrGroup") {     // alert(TheFeld.name);
      var adrRange = document.forms["Entity"].elements["AdrRange"].value;
      url += "&action=common.address.group&adrGroup=" + TheFeld.value;
      url += "&adrRange=" + adrRange;
      xGet(url);
   }
   if(TheFeld.name == "AdrType") {    // alert(TheFeld);
      url += "&action=common.address.type&adrType=" + TheFeld.value;
      xGet(url);
   }

   if(TheFeld.name == "P_AdrGroup") {     // alert(TheFeld.name);
      var adrRange = document.forms["Entity"].elements["P_AdrRange"].value;
      url += "&action=common.address.group&adrGroup=" + TheFeld.value;
      url += "&adrRange=" + adrRange;
      url += "&person=1";
      xGet(url);
   }
   if(TheFeld.name == "P_AdrType") {    // alert(TheFeld);
      url += "&action=common.address.type&adrType=" + TheFeld.value;
      url += "&person=1";
      xGet(url);
   }


}

function switchItem(Key,Field,aForm,aTarget) {
   if(Field.checked == true) addItem(aForm,aTarget,Key);
   if(Field.checked == false) removeItem(aForm,aTarget,Key);
}

function removeItem(aForm,aFieldName,aID) {
   var aField = document.forms[aForm].elements[aFieldName];
   var aFieldItems = aField.value.split(",");

   var tmp = new Array();
   for(i=0;i<aFieldItems.length;i++) {
      if(aFieldItems[i] != aID) tmp.push(aFieldItems[i]);
   }
   aField.value = tmp.join(",");
}

function addItem(aForm,aFieldName,aID) {    // alert(aForm);
   var aField = document.forms[aForm].elements[aFieldName];
   var aFieldItems = aField.value.split(",");

   var tmp = new Array();
   for(i=0;i<aFieldItems.length;i++) {
      if(aFieldItems[i] == aID) return;
      else {
         if(aFieldItems[i] != '') tmp.push(aFieldItems[i]);
      }
   }
   tmp.push(aID);
   aField.value = tmp.join(",");
}

function getSessionID(){
   var s = window.location.search.substring(1).split('&');
   if(!s.length) return;
   for(var i  = 0; i < s.length; i++) {
      var parts = s[i].split('=');
      if(parts[0] == "sid") return parts[1];
   }
}

function sessionSave(Key,Wert){     // alert(url); return;
   Session = getSessionID();
   url = "x.action.php?sid=" + Session +"&action=common.session.save&key=" + Key +"&wert=" + Wert;
   xGet(url);
}

function ToggleSection(xSection,aButton) {
   if(document.getElementById(xSection).style.display == "block") {
      document.getElementById(xSection).style.display = "none";
      aButton.src = "css/img/area.show.jpg";
      sessionSave(xSection,"hide");
   }
   else {
      document.getElementById(xSection).style.display = "block";
      aButton.src = "css/img/area.hide.jpg";
      sessionSave(xSection,"show");
   }

}

function ToggleActivitySection(Section,Button) {
   if(document.getElementById(Section).style.display == "block") {
      document.getElementById(Section).style.display = "none";
      AT = document.getElementById("ActivityTable");
      RowsToHide = AT.getElementsByTagName("TR");
      for(x=2;x<RowsToHide.length;x=x+2) {
         RowsToHide[x].style.display = "none";
      }
      Button.src = "css/img/area.show.jpg";
      sessionSave(Section,"hide");
   }
   else {
      document.getElementById(Section).style.display = "block";
      Button.src = "css/img/area.hide.jpg";
      AT = document.getElementById("ActivityTable");
      RowsToShow = AT.getElementsByTagName("TR");
      for(x=2;x<RowsToShow.length;x=x+2) {
         RowsToShow[x].style.display = "block";
      }
      sessionSave(Section,"show");
   }
}

function performHelp(aField){
   var PosX = ((window.event.screenX - 40) > 0)?(window.event.screenX - 40):40;
   var PosY = ((window.event.screenY - 40) > 0)?(window.event.screenY - 40):40;

   var SessionID = getSessionID();
   var url = "x.action.php?&sid=" + SessionID + "&action=common.help.show";
   url += "&fld=" + aField;
   url += "&posX=" + PosX;
   url += "&posY=" + PosY;
   xGet(url);
}



function doAutoSuggest(TheValue,TheUser) {
   newPosX = ((window.event.screenX - 40) > 0)?(window.event.screenX - 40):40;
   newPosY = ((window.event.screenY - 40) > 0)?(window.event.screenY - 40):40;
   url = "autosuggest.php?match=" + TheValue + "&user=" + TheUser;
   performAutoSuggest(url);
}

function ChangeSelectBox(aField,aTarget) {      // alert(TheFeld);
   var SessionID = getSessionID();
   var url = "x.action.php?sid=" + SessionID;
   switch(aTarget) {
      case "ProvinceCode":
         url += "&action=common.provinceCode.select";
         url += "&countryCode=" + aField.value;
      break;
   }
   xGet(url);
}

function closePopup(ThePopup) {
   document.getElementById(ThePopup).style.display = "none";
}

function openPopup(ThePopup) {
   document.getElementById(ThePopup).style.display = "block";
}

function removePopup(ThePopup) {
   if(document.getElementById(ThePopup)) document.body.removeChild(document.getElementById(ThePopup));
}

function setStatusLine(block) {
   // alert(block.firstChild.nodeValue);
   displayStatusLine(block.firstChild.nodeValue);
}

function displayStatusLine(Text) {
   var targetID = "StatusLine";
   var target = document.getElementById(targetID);
   target.innerHTML = Text;
}

function MoveLeft(Zelle) {
   Zeile = Zelle.parentNode;
   Zeile.insertBefore(Zelle,Zelle.previousSibling);
}

function MoveRight(Zelle) {
   Zeile = Zelle.parentNode;
   ToMove = Zelle.nextSibling;
   Zeile.insertBefore(ToMove,Zelle);
}

function MoveUp(Zeile) {
   Table = Zeile.parentNode;
   if(Zeile.previousSibling != Table.firstChild) Table.insertBefore(Zeile,Zeile.previousSibling);
}

function MoveDown(Zeile) {
   Table = Zeile.parentNode;
   ToMove = Zeile.nextSibling;
   if(ToMove != null) Table.insertBefore(ToMove,Zeile);
}

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 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;
}function showGalerie(aPath) {
    var url = "galerie.php?path=" + aPath;
    var shadow = document.createElement("DIV");
    shadow.id = "shadow";
    document.body.appendChild(shadow);
    XGetRequest(url);

}


function XGetText(url) { // alert(url);
   var req = CreateRequestObject();
   var aTextFile = url + ".txt";
   req.open("GET", aTextFile, true);
   req.onreadystatechange = function(){
   switch(req.readyState) {
      case 4:
         if(req.status!=200) {
            alert("Fehler:" + req.status);
         } else {
            // alert(req.responseText);
            var aText = document.getElementById("light").innerHTML;
            aText = aText + req.responseText;
            document.getElementById("light").innerHTML = aText;
            // alert(aText);
         }
       break;

       default:
          return false;
       break;
    }
   };
   req.send(null);
}
function lightbox(imageID) {
    var shadow = document.createElement("DIV");
    shadow.id = "SHADOW";
    document.body.appendChild(shadow);

    url = "image.php?imageID=" + imageID;
    XGetRequest(url);
}

function nextLightbox(imageID) {
    removePopup("LIGHT");
    url = "image.php?imageID=" + imageID;
    XGetRequest(url);
}

function closeLightbox(imageID) {
    removePopup("LIGHT");
    removePopup("SHADOW");
}
