function changeStatus(url) {
  // branch for native XMLHttpRequest object
  if (window.XMLHttpRequest) {

    req = new XMLHttpRequest();
    req.onreadystatechange = processReqChange;
    req.open("GET", url, true);
    req.send(null);
    // branch for IE/Windows ActiveX version
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
      req.onreadystatechange = processReqChange;
      req.open("GET", url, true);
      req.send();
    }
  }
}

function processReqChange() {
  // only if req shows "complete"
  if (req.readyState == 4) {

    // only if "OK"
    if (req.status == 200) {
      var response  = req.responseXML;

      /* Weiteres Vorgehen je nach Art der Rückmeldung
       */
      var result = response.getElementsByTagName("result")[0].childNodes[0].nodeValue;
      if (result == 'changed') {
        var accountID = response.getElementsByTagName("accountID")[0].childNodes[0].nodeValue;
        if (response.getElementsByTagName("statusAdministration")[0] != undefined) {
          var statusAdministration= response.getElementsByTagName("statusAdministration")[0].childNodes[0].nodeValue;
        }
        if (response.getElementsByTagName("statusGoods")[0] != undefined) {
          var statusGoods         = response.getElementsByTagName("statusGoods")[0].childNodes[0].nodeValue;
        }
        if (response.getElementsByTagName("statusMoney")[0] != undefined) {
          var statusMoney         = response.getElementsByTagName("statusMoney")[0].childNodes[0].nodeValue;
        }
        if (response.getElementsByTagName("statusHtml")[0] != undefined) {
          var statusHtml          = response.getElementsByTagName("statusHtml")[0].childNodes[0].nodeValue;
        }
        if (response.getElementsByTagName("actionsHtml")[0] != undefined) {
          var actionsHtml         = response.getElementsByTagName("actionsHtml")[0].childNodes[0].nodeValue;
        }
        if (response.getElementsByTagName("paymethodHtml")[0] != undefined) {
          var paymethodHtml       = response.getElementsByTagName("paymethodHtml")[0].childNodes[0].nodeValue;
        }
        if (response.getElementsByTagName("deliveryHtml")[0] != undefined) {
          var deliveryHtml        = response.getElementsByTagName("deliveryHtml")[0].childNodes[0].nodeValue;
        }
        if (response.getElementsByTagName("basketTotalHtml")[0] != undefined) {
          var basketTotalHtml     = response.getElementsByTagName("basketTotalHtml")[0].childNodes[0].nodeValue;
        }

        if (statusHtml != undefined) {
          var divParentOfStatus = document.getElementById('containerStatus'+accountID).parentNode;
          divParentOfStatus.innerHTML = statusHtml;
        }

        if (actionsHtml != undefined) {
          if (document.getElementById('containerActions'+accountID) != undefined) {
            var divParentOfActions = document.getElementById('containerActions'+accountID).parentNode;
            divParentOfActions.innerHTML = actionsHtml;
          }
        }

        if (paymethodHtml != undefined) {
          var divParentOfPaymethod = document.getElementById('containerPaymethodDIV'+accountID).parentNode;
          divParentOfPaymethod.innerHTML = paymethodHtml;
        }

        if ((deliveryHtml != undefined) && (deliveryHtml != '')) {
          var divParentOfDelivery = document.getElementById('containerDeliveryDIV'+accountID).parentNode;
          divParentOfDelivery.innerHTML = deliveryHtml;
        }

        if (response.getElementsByTagName("deliveryDateHtml")[0] != undefined) {
          var deliveryDateHtml = response.getElementsByTagName("deliveryDateHtml")[0].childNodes[0].nodeValue;
          if (deliveryDateHtml != undefined) {
            var parentOfDeliveryDate = document.getElementById('containerDeliveryDate'+accountID).parentNode;
            parentOfDeliveryDate.innerHTML = deliveryDateHtml;
          }
        }

        if (response.getElementsByTagName("basketTotalHtml")[0] != undefined) {
          if (document.getElementById('containerBasketTotal'+accountID) != undefined) {
            var parentOfBasketTotal       = document.getElementById('containerBasketTotal'+accountID).parentNode;
            parentOfBasketTotal.innerHTML = response.getElementsByTagName("basketTotalHtml")[0].childNodes[0].nodeValue;
          }
        }
        if (response.getElementsByTagName("basketTotalPrice")[0] != undefined) {
          var priceDiv = document.getElementById('price'+accountID);
          if (priceDiv != undefined) priceDiv.innerHTML = response.getElementsByTagName("basketTotalPrice")[0].childNodes[0].nodeValue;
        }

        if (response.getElementsByTagName("paymethodDataHtml")[0] != undefined) {
          var paymethodDataHtml = response.getElementsByTagName("paymethodDataHtml")[0].childNodes[0].nodeValue;
          if (paymethodDataHtml != undefined) {
            var containerPaymethodData = document.getElementById('containerPaymethodData'+accountID);
            if (containerPaymethodData != undefined) containerPaymethodData.parentNode.innerHTML = paymethodDataHtml;
          }
        }
      } else {
        alert("Es ist ein Fehler aufgetreten:\n" + result);
        var action    = response.getElementsByTagName("action")[0].childNodes[0].nodeValue;
        var accountID = response.getElementsByTagName("accountID")[0].childNodes[0].nodeValue;
        if (action == 'changeDeliveryDate') {
          document.getElementById('deliverydate'+accountID).disabled = "";
          document.getElementById('deliverydate'+accountID).focus();
        }
      }
    } else {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
    }
  }
}


function createInvoice(url) {
  // branch for native XMLHttpRequest object

  if (window.XMLHttpRequest) {

    req = new XMLHttpRequest();
    req.onreadystatechange = processInvoiceReqChange;
    req.open("GET", url, true);
    req.send(null);
    // branch for IE/Windows ActiveX version
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
      req.onreadystatechange = processInvoiceReqChange;
      req.open("GET", url, true);
      req.send();
    }
  }
}

function processInvoiceReqChange() {
  // only if req shows "complete"
  if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200) {
      var response  = req.responseXML;
      /* Weiteres Vorgehen je nach Art der Rückmeldung
       */

      var result = response.getElementsByTagName("result")[0].childNodes[0].nodeValue;
      if (result == 'invoice created') {
        var accountID           = response.getElementsByTagName("accountID")[0].childNodes[0].nodeValue;
        var invoiceNumber       = response.getElementsByTagName("invoiceNumber")[0].childNodes[0].nodeValue;


        // Aufruf einer Funktion aus main.js
        //hideInnerPopUps();
        //openInnerPopUp('containerActionCreateInvoice'+accountID, 'itemActionShowInvoice'+accountID, 10, 10);

        var containerActionCreateInvoice = document.getElementById("containerActions"+accountID);
        var parent = containerActionCreateInvoice.parentNode;
        while (parent.nodeName != "TR") {
          parent = parent.parentNode;
        }

        //alert(parent.nodeName+' '+offsetTop(parent)+' '+offsetLeft(parent)+' '+parent.offsetWidth+' '+parent.offsetHeight);
        var div = document.getElementById("DisableDiv"+accountID);
        div.style.top = offsetTop(parent);
        div.style.left = offsetLeft(parent);
        div.style.width = parent.offsetWidth;
        div.style.height = parent.offsetHeight;
        div.style.visibility = 'visible';

        unlockInput(accountID);
        //document.body.appendChild(div);


      }



    } else {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
    }
  }
}


function orderPattern(url) {
  // branch for native XMLHttpRequest object
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    req.onreadystatechange = processReqOrderPattern;
    req.open("GET", url, true);
    req.send(null);
    // branch for IE/Windows ActiveX version
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
      req.onreadystatechange = processReqOrderPattern;
      req.open("GET", url, true);
      req.send();
    }
  }
}

function processReqOrderPattern() {
  // only if req shows "complete"
  if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200) {
      var response  = req.responseXML;

      /* Weiteres Vorgehen je nach Art der Rückmeldung
       */
      var result = response.getElementsByTagName("result")[0].childNodes[0].nodeValue;
      if (result == 'changed') {
        var colorID = response.getElementsByTagName("colorID")[0].childNodes[0].nodeValue;
        var div     = document.getElementById('OrderPatternConfirm'+colorID);
        var parent  = div.parentNode;
        while (parent.nodeName != "TD") {
          parent = parent.parentNode;
        }
        var vtype = '';
        if (response.getElementsByTagName("vtype")[0].childNodes[0] != undefined) {
          vtype = response.getElementsByTagName("vtype")[0].childNodes[0].nodeValue;
        }
        if (vtype == 'colorselector') {
          div.style.display = '';
          setTimeout(function(){ $('#OrderPatternConfirm' + colorID).hide() }, 6000);
        } else {
          div.style.width = parent.offsetWidth - 40;
          div.style.visibility  = 'visible';
        }

        if (response.getElementsByTagName("basketPanelHtml")[0] != undefined) {
          var basketPanelHtml = response.getElementsByTagName("basketPanelHtml")[0].childNodes[0].nodeValue;
          document.getElementById('BasketPanel').parentNode.innerHTML = basketPanelHtml;
        }
      }
    } else {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
    }
  }
}


function editAddr(url) {
  if (typeof url == 'undefined') return;

  // branch for native XMLHttpRequest object
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    req.onreadystatechange = processReqEditAddr;
    req.open("GET", url, true);
    req.send(null);
    // branch for IE/Windows ActiveX version
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
      req.onreadystatechange = processReqEditAddr;
      req.open("GET", url, true);
      req.send();
    }
  }
}

function processReqEditAddr() {
  // only if req shows "complete"
  if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200) {
      var response  = req.responseXML;
      /* Weiteres Vorgehen je nach Art der Rückmeldung
       */
      var result = response.getElementsByTagName("result")[0].childNodes[0].nodeValue;
      if (result == 'changed') {
        if (response.getElementsByTagName("viewDivHtml")[0] != undefined) {
          var viewDivHtml       = response.getElementsByTagName("viewDivHtml")[0].childNodes[0].nodeValue;
          var viewDiv           = document.getElementById('viewDiv');
          viewDiv.innerHTML     = viewDivHtml;
          viewDiv.style.display = "block";
          document.getElementById('editDiv').style.display         = "none";
          document.getElementById('editDivDelivery').style.display = "none";
          document.getElementById('savelink').style.display        = "none";
          document.getElementById('editlink').style.display        = "inline";
          document.getElementById('progressDiv').style.display     = "none";

          var viewDivDeliveryHtml       = response.getElementsByTagName("viewDivDeliveryHtml")[0].childNodes[0].nodeValue;
          var viewDivDelivery           = document.getElementById('viewDivDelivery');
          viewDivDelivery.innerHTML     = viewDivDeliveryHtml;
          viewDivDelivery.style.display = "block";

          if (response.getElementsByTagName("basketTotalHtml")[0] != undefined) {
            var accountID       = response.getElementsByTagName("accountID")[0].childNodes[0].nodeValue;
            var basketTotalHtml = response.getElementsByTagName("basketTotalHtml")[0].childNodes[0].nodeValue;
            if (document.getElementById('containerBasketTotal'+accountID) != undefined) {
              var parentOfBasketTotal       = document.getElementById('containerBasketTotal'+accountID).parentNode;
              parentOfBasketTotal.innerHTML = response.getElementsByTagName("basketTotalHtml")[0].childNodes[0].nodeValue;
            }
          }

          if (response.getElementsByTagName("taxIDCheck")[0] != undefined) {
            alert(response.getElementsByTagName("taxIDCheck")[0].childNodes[0].nodeValue);
          }
        }
      }
    } else {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
    }
  }
}

function shipping(url) {
  // branch for native XMLHttpRequest object
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    req.onreadystatechange = processReqShipping;
    req.open("GET", url, true);
    req.send(null);
    // branch for IE/Windows ActiveX version
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
      req.onreadystatechange = processReqShipping;
      req.open("GET", url, true);
      req.send();
    }
  }
}

function processReqShipping() {

  // only if req shows "complete"
  if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200) {
      var response  = req.responseXML;
      /* Weiteres Vorgehen je nach Art der Rückmeldung
       */
      var result = response.getElementsByTagName("result")[0].childNodes[0].nodeValue;
      if (result == 'changed') {
        if (response.getElementsByTagName("totalpriceHtml")[0] != undefined) {
          var totalpriceHtml = response.getElementsByTagName("totalpriceHtml")[0].childNodes[0].nodeValue;
          document.getElementById('totalpricedata').innerHTML = totalpriceHtml;
        }
        if (response.getElementsByTagName("shipmentPanelHtml")[0] != undefined) {
          var shipmentPanelHtml = response.getElementsByTagName("shipmentPanelHtml")[0].childNodes[0].nodeValue;
          document.getElementById('shipmentPanel').innerHTML = shipmentPanelHtml;
          document.body.style.cursor = "default";

          var paymethodNumber = 0;
          if (response.getElementsByTagName("paymethodNumber")[0].childNodes[0] != undefined) {
            paymethodNumber = response.getElementsByTagName("paymethodNumber")[0].childNodes[0].nodeValue;
          }
          if ($('#paymethodAcc').html()) initPaymethodAccordion(paymethodNumber);
        }
        if (response.getElementsByTagName("itemprices")[0] != undefined) {
          var itemprices = response.getElementsByTagName("itemprices")[0];
          for (var i = 0; i < itemprices.childNodes.length; i++) {
            document.getElementById('itemprice' + (i + 1)).innerHTML = itemprices.childNodes[i].firstChild.nodeValue;
          }
        }
        initDeliveryNoteTooltip();
      }
    } else {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
    }
  }
}

