//var RequestObject = new ActiveXObject('Microsoft.XMLHTTP');
// Globale Variablen
var tajax_FloodLock = false;
var tajax_timer = null;

/*
	#########################################################################################
	#########################################################################################
	
	### tAJAX-Request-Initialisierung ###
	## wird nur intern verwendet ##
*/

function tajax_InitRequest() {
  //var RequestObject;
  RequestObject = null;
  try {
    RequestObject = new ActiveXObject('Microsoft.XMLHTTP');
  }
  catch(Error) {
    try {
      RequestObject = new ActiveXObject('MSXML2.XMLHTTP');
    }
    catch(Error) {
      try {
        RequestObject = new XMLHttpRequest();
      }
      catch(Error) {
        alert('Ihr Browser unterstützt keine XMLHTTP-Objekte.');
      }
    }
  }
  return RequestObject;
}	

/*
	#########################################################################################
	#########################################################################################
	
	### tAJAX-Aufruffunktion ###
	## wird nur intern verwendet ##
*/

function tajax_request(Interface, Query, QueryType, ASync, TargetObject, AddType, TargetType, MyAreaName) {
  //alert('Aufgerufen');
  //alert(Interface);
  var req;
  var response;
  req = tajax_InitRequest();
  if (!req) return;
  if (parseInt(ASync) == 1) {
    //alert('asynch');
    req.onreadystatechange = function() {
      //alert('Antwort?' + RequestObject.readyState );
      //document.getElementById('tajaxLoadArea').innerHTML = document.getElementById('tajaxLoadArea').innerHTML + RequestObject.readyState;
      ShowtajaxLoadArea(req.readyState, '', MyAreaName);
      if (req.readyState == 4) {
        ShowtajaxLoadArea(req.readyState, req.status, MyAreaName);
        if (req.status == 200) {
          tajax('', '', TargetObject, AddType, TargetType, '', '', 0, MyAreaName, 1, req.responseText);
          HidetajaxLoadArea(MyAreaName);
        }
        else {
          ShowtajaxLoadArea(5, req.status, MyAreaName);
        }
      }
    };
    req.open(QueryType, Interface + '?' + Query, true);
    req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    req.send(null);
    return ('done');
  }
  else {
    req.open(QueryType, Interface + '?' + Query, false);
    req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    req.send(null);
    response = req.responseText;
    //alert(response);
    return (response);
  }
}

/*
	#########################################################################################
	#########################################################################################
	
	tAJAX-Hauptfunktion
	### Parameter ###
	Interface		-	Optional		- Gibt die Seite an, welche als Interface benutzt werden soll. Im CRM schon als Standard eingetragen.
	Query			-	Conditional		- Angabe eines GET-Query an die Schnittstelle
	TargetObject	-	Conditional		- Gibt ein Zielobjekt an, wenn das Ergebniss auf die Seite geschrieben werden soll (Für "HTML", "Text" und "Value" PFLICHT!)
	AddType			-	Conditional		- Gibt an, ob die Rückabge angehangen oder Vorgestellt werden soll. Wenn nichts angegeben, dann wird das Ziel ersetzt. (NICHT für "DirectReturn")
	TargetType		-	Optional		- Gibt an, welcher Art die Rückgabe sein soll. ("HTML", "Text", "Value", "DirectReturn")
	OriginForm		-	Conditional		- Ermöglicht die Übergabe eines ganzen Formulars. (Falls ein Formular an die Schnittstelle gesendet werden soll)
	ASync			-	Optional		- Gibt an, ob die Anfrage Asynchron gestellt werden soll. Geht NICHT für "DirectReturn".
	FloodTimer		-	Optional		- Angabe einer Zeit, wie lange tAJAX-Aufrufe zum 'Flutschutz' gesperrt werden sollen. (In Sekunden)
	MyAreaName		-	Optional		- Gibt eine alternative Ladeanzeige an (ID des OberElements!). Der Aufbau muss alle 3 Elemente enthalten. (MyAreaName, MyAreaNameBody, MyAreaNameBar)
	
	### Interne Parameter ###
	### Diese Parameter dürfen NICHT im Aufruf gesetzt werden ###
	Callback		-	Intern			- Ist zuständig einen Callback eine asynchronen Aufrufs zu ermitteln.
	CallbackResponse-	Intern			- Enthält die Rückgabe der Schnittstelle eines asynch-Aufrufs.
	
*/
function tajax(Interface, Query, TargetObject, AddType, TargetType, OriginForm, ASync, FloodTimer, MyAreaName, Callback, CallbackResponse) {
  var Target = document.getElementById(TargetObject);
  var RequestResponse;
  var ElementsCounter = 0;
  var tempQuery = '';

  // wenn taJaX-Aufrufe durch Überflutungsschutz gesperrt sind, einfach rausspringen
  if ((tajax_FloodLock == true) && (parseInt(Callback) != 1)) {
    return ('');
  }

  if (parseInt(FloodTimer) > 0) {
    tajax_Floodprotect(parseInt(FloodTimer));
  }

  if (Interface == '') Interface = '/includes/AjaxInterface.aspx';
  if (Query == '') Query = 'ntrfctest=1';
  if ((AddType == '') || (AddType == null)) AddType = '';
  if ((TargetType == '') || (TargetType == null)) TargetType = 'Text';
  if ((MyAreaName == '') || (MyAreaName == null)) MyAreaName = 'tajaxLoadArea';
  if (OriginForm == null) OriginForm = '';

  //alert(MyAreaName);
  //alert(Interface);
  if (parseInt(Callback) != 1) {
    if (OriginForm != '') {
      Query = '';
      do {
        if ((OriginForm.elements[ElementsCounter].type != 'button') && (OriginForm.elements[ElementsCounter].type != 'submit')) {
          if (Query == '') {
            if (OriginForm.elements[ElementsCounter].type == 'checkbox') {
              if (OriginForm.elements[ElementsCounter].checked == true) {
                tempQuery = OriginForm.elements[ElementsCounter].name + '=' + escape(OriginForm.elements[ElementsCounter].value);
                tempQuery = tempQuery.replace(/\+/g, "%2B");
                Query = tempQuery;
              }
              else {
                tempQuery = OriginForm.elements[ElementsCounter].name + '=';
                tempQuery = tempQuery.replace(/\+/g, "%2B");
                Query = tempQuery;
              }
            }
            else {
              tempQuery = OriginForm.elements[ElementsCounter].name + '=' + escape(OriginForm.elements[ElementsCounter].value);
              tempQuery = tempQuery.replace(/\+/g, "%2B");
              Query = tempQuery;
            }
          }
          else {
            if (OriginForm.elements[ElementsCounter].type == 'checkbox') {
              if (OriginForm.elements[ElementsCounter].checked == true) {
                tempQuery = OriginForm.elements[ElementsCounter].name + '=' + escape(OriginForm.elements[ElementsCounter].value);
                tempQuery = tempQuery.replace(/\+/g, "%2B");
                Query = Query + '&' + tempQuery;
              }
              else {
                tempQuery = OriginForm.elements[ElementsCounter].name + '=';
                tempQuery = tempQuery.replace(/\+/g, "%2B");
                Query = Query + '&' + tempQuery;
              }
            }
            else {
              tempQuery = OriginForm.elements[ElementsCounter].name + '=' + escape(OriginForm.elements[ElementsCounter].value);
              tempQuery = tempQuery.replace(/\+/g, "%2B");
              Query = Query + '&' + tempQuery;
            }
          }
        }
        ElementsCounter += 1
      } while ( OriginForm . elements [ ElementsCounter ] != null);
      //alert(Query);
      if (navigator.appName != 'Netscape') RequestResponse = tajax_request(Interface, Query, 'POST', ASync, TargetObject, AddType, TargetType, MyAreaName);
      else RequestResponse = tajax_request(Interface, Query, 'get', ASync, TargetObject, AddType, TargetType, MyAreaName);
    }
    else {
      Query = Query.replace(/\+/g, "%2B");
      //alert(Interface);
      //alert(Query);
      RequestResponse = tajax_request(Interface, Query, 'get', ASync, TargetObject, AddType, TargetType, MyAreaName);
    }
  }

  if ((parseInt(ASync) != 1) || (parseInt(Callback) == 1)) {
    if (parseInt(Callback) == 1) {
      RequestResponse = CallbackResponse;
    }
    if (TargetType == 'HTML') {
      if (RequestResponse != null) {
        switch (AddType) {
        case "after":
          Target.innerHTML = Target.innerHTML + RequestResponse;
          break;
        case "before":
          Target.innerHTML = RequestResponse + Target.innerHTML;
          break;
        case "":
          //alert(RequestResponse);
          Target.innerHTML = RequestResponse;
          break;
        }
      }
      else {
        Target.innerHTML = 'tajax_error!';
      }
    }
    if (TargetType == 'Text') {
      if (RequestResponse != null) {
        if (navigator.appName != 'Netscape') {
          switch (AddType) {
          case "after":
            Target.innerText = Target.innerText + RequestResponse;
            break;
          case "before":
            Target.innerText = RequestResponse + Target.innerText;
            break;
          case "":
            Target.innerText = RequestResponse;
            break;
          }
        }
        else {
          switch (AddType) {
          case "after":
            Target.textContent = Target.textContent + RequestResponse;
            break;
          case "before":
            Target.textContent = RequestResponse + Target.textContent;
            break;
          case "":
            Target.textContent = RequestResponse;
            break;
          }
        }
      }
      else {
        if (navigator.appName != 'Netscape') Target.innerText = 'tajax_error!';
        else Target.textContent = 'tajax_error!';
      }
    }
    if (TargetType == 'Value') {
      if (RequestResponse != null) {
        switch (AddType) {
        case "after":
          Target.value = Target.value + RequestResponse;
          break;
        case "before":
          Target.value = RequestResponse + Target.value;
          break;
        case "":
          Target.value = RequestResponse;
          break;
        }
      }
      else {
        Target.value = 'tajax_error!';
      }
    }
    if (TargetType == 'DirectReturn') {
      if (RequestResponse != null) {
        return (RequestResponse);
      }
      else {
        return ('tajax_error!');
      }
    }
  }
}

function tajax_Basket(Interface, Query, TargetObject, PreloadObject, ErrorObject) {
  var Target = document.getElementById(TargetObject);
  var RequestResponse;
  var ElementsCounter = 0;
  var tempQuery = '';
  var AddType = '';
  var TargetType = 'DirectReturn';
  var OriginForm = '';
  var ASync = 0;
  var FloodTimer;
  var MyAreaName;
  var Callback;
  var CallbackResponse;

  // wenn taJaX-Aufrufe durch Überflutungsschutz gesperrt sind, einfach rausspringen
  if ((tajax_FloodLock == true) && (parseInt(Callback) != 1)) {
    return ('');
  }

  if (parseInt(FloodTimer) > 0) {
    tajax_Floodprotect(parseInt(FloodTimer));
  }

  if (Interface == '') Interface = '/includes/AjaxInterface.aspx';
  if (Query == '') Query = 'ntrfctest=1';
  if ((AddType == '') || (AddType == null)) AddType = '';
  if ((TargetType == '') || (TargetType == null)) TargetType = 'Text';
  if ((MyAreaName == '') || (MyAreaName == null)) MyAreaName = 'tajaxLoadArea';
  if (OriginForm == null) OriginForm = '';

  //alert(MyAreaName);
  //alert(Interface);
  if (parseInt(Callback) != 1) {
    if (OriginForm != '') {
      Query = '';
      do {
        if ((OriginForm.elements[ElementsCounter].type != 'button') && (OriginForm.elements[ElementsCounter].type != 'submit')) {
          if (Query == '') {
            if (OriginForm.elements[ElementsCounter].type == 'checkbox') {
              if (OriginForm.elements[ElementsCounter].checked == true) {
                tempQuery = OriginForm.elements[ElementsCounter].name + '=' + escape(OriginForm.elements[ElementsCounter].value);
                tempQuery = tempQuery.replace(/\+/g, "%2B");
                Query = tempQuery;
              }
              else {
                tempQuery = OriginForm.elements[ElementsCounter].name + '=';
                tempQuery = tempQuery.replace(/\+/g, "%2B");
                Query = tempQuery;
              }
            }
            else {
              tempQuery = OriginForm.elements[ElementsCounter].name + '=' + escape(OriginForm.elements[ElementsCounter].value);
              tempQuery = tempQuery.replace(/\+/g, "%2B");
              Query = tempQuery;
            }
          }
          else {
            if (OriginForm.elements[ElementsCounter].type == 'checkbox') {
              if (OriginForm.elements[ElementsCounter].checked == true) {
                tempQuery = OriginForm.elements[ElementsCounter].name + '=' + escape(OriginForm.elements[ElementsCounter].value);
                tempQuery = tempQuery.replace(/\+/g, "%2B");
                Query = Query + '&' + tempQuery;
              }
              else {
                tempQuery = OriginForm.elements[ElementsCounter].name + '=';
                tempQuery = tempQuery.replace(/\+/g, "%2B");
                Query = Query + '&' + tempQuery;
              }
            }
            else {
              tempQuery = OriginForm.elements[ElementsCounter].name + '=' + escape(OriginForm.elements[ElementsCounter].value);
              tempQuery = tempQuery.replace(/\+/g, "%2B");
              Query = Query + '&' + tempQuery;
            }
          }
        }
        ElementsCounter += 1
      } while ( OriginForm . elements [ ElementsCounter ] != null);
      //alert(Query);

      if (navigator.appName != 'Netscape') RequestResponse = tajax_request(Interface, Query, 'POST', ASync, TargetObject, AddType, TargetType, MyAreaName);
      else RequestResponse = tajax_request(Interface, Query, 'get', ASync, TargetObject, AddType, TargetType, MyAreaName);
    }
    else {
      //alert(Query);
      //if (PreloadObject !='' && PreloadObject!=null)
      //{
      //   DiVOnOff(PreloadObject, 'visible')		    
      //   SetDiVAtMousePos(PreloadObject);
      //document.getElementById(PreloadObject).style.visibility = 'visible';
      //   document.getElementById(PreloadObject).innerHTML = '<b>ICH LADEEEEEEEEEEE</b>';
      //}
      Query = Query.replace(/\+/g, "%2B");
      //alert(Interface);
      //alert(Query);
      RequestResponse = tajax_request(Interface, Query, 'get', ASync, TargetObject, AddType, TargetType, MyAreaName);
    }
  }

  //if (PreloadObject !='' && PreloadObject!=null)
  //{
  //alert(RequestResponse);
  //   if (RequestResponse.lastIndexOf('<div style="position:absolute;visibility:hidden">0</div>') >= 0)
  //   {
  //       document.getElementById(PreloadObject).innerHTML = '<b>ERROR Artikel nicht mehr verfuegbar</b>';
  //   }
  //DiVOnOff(PreloadObject, 'hidden')
  //}

  if ((parseInt(ASync) != 1) || (parseInt(Callback) == 1)) {
    if (parseInt(Callback) == 1) {
      RequestResponse = CallbackResponse;
    }
    if (TargetType == 'HTML') {
      if (RequestResponse != null) {
        //alert(RequestResponse);
        switch (AddType) {
        case "after":
          Target.innerHTML = Target.innerHTML + RequestResponse;
          break;
        case "before":
          Target.innerHTML = RequestResponse + Target.innerHTML;
          break;
        case "":

          Target.innerHTML = RequestResponse;
          break;
        }
      }
      else {
        Target.innerHTML = 'tajax_error!';
      }
    }
    if (TargetType == 'Text') {
      if (RequestResponse != null) {
        if (navigator.appName != 'Netscape') {
          switch (AddType) {
          case "after":
            Target.innerText = Target.innerText + RequestResponse;
            break;
          case "before":
            Target.innerText = RequestResponse + Target.innerText;
            break;
          case "":
            Target.innerText = RequestResponse;
            break;
          }
        }
        else {
          switch (AddType) {
          case "after":
            Target.textContent = Target.textContent + RequestResponse;
            break;
          case "before":
            Target.textContent = RequestResponse + Target.textContent;
            break;
          case "":
            //alert(RequestResponse);
            Target.textContent = RequestResponse;
            break;
          }
        }
      }
      else {
        if (navigator.appName != 'Netscape') Target.innerText = 'tajax_error!';
        else Target.textContent = 'tajax_error!';
      }
    }
    if (TargetType == 'Value') {
      if (RequestResponse != null) {
        switch (AddType) {
        case "after":
          Target.value = Target.value + RequestResponse;
          break;
        case "before":
          Target.value = RequestResponse + Target.value;
          break;
        case "":
          //alert(RequestResponse);
          Target.value = RequestResponse;
          break;
        }
      }
      else {
        Target.value = 'tajax_error!';
      }
    }
    if (TargetType == 'DirectReturn') {
      if (RequestResponse != null) {
        Target.innerHTML = RequestResponse;
        return (RequestResponse);
      }
      else {
        return ('tajax_error!');
      }
    }
  }
}

/*
	#########################################################################################
	#########################################################################################
	
	### Hilsfunktion, um das Abschicken eines Formulares zu verhindern, ###
	### falls tAJAX eingesetzt werden soll ###
	!! HINWEIS: Aufruf mit RETURN!
	Beispiel: <form name="testform" onsubmit="javascript:return nosubmit();">
*/

function nosubmit() {
  //event.returnValue = false;
  return false;
}

/*
	#########################################################################################
	#########################################################################################
	
	### Anzeige des tAJAX-Ladebereichs ###
	### Zeigt dem User, dass Daten nachgeladen werden ###
*/

function ShowtajaxLoadArea(state, code, MyAreaName) {
  var LoadArea;
  var LoadAreaBody;
  var LoadAreaBar;

  var WindowHeight;
  var WindowWidth;

  if (typeof(window.innerWidth) == 'number') {
    //Non-IE
    WindowWidth = window.innerWidth;
    WindowHeight = window.innerHeight;
  }
  else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
    //IE 6+ in 'standards compliant mode'
    WindowWidth = document.documentElement.clientWidth;
    WindowHeight = document.documentElement.clientHeight;
  }
  else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
    //IE 4 compatible
    WindowWidth = document.body.clientWidth;
    WindowHeight = document.body.clientHeight;
  }
  //alert(WindowHeight + '-' + WindowWidth);
  if ((MyAreaName == '') || (MyAreaName == null)) MyAreaName = 'tajaxLoadArea';

  //alert('showit');
  try {
    LoadArea = document.getElementById(MyAreaName);
    LoadAreaBody = document.getElementById(MyAreaName + 'Body');
    LoadAreaBar = document.getElementById(MyAreaName + 'Bar');
  }
  catch(Error) {}
  if (LoadAreaBody != null) {
    //alert('showit');
    //LoadAreaBody.style.top = (WindowHeight / 2) - 30;
    //LoadAreaBody.style.left  = (WindowWidth / 2) - 120;
    if (state == 5) {
      //ErrorCase
      LoadAreaBody.style.visibility = 'visible';
      LoadAreaBar.style.visibility = 'hidden';
      LoadArea.innerHTML = 'Es ist ein Fehler aufgetreten.<br>(' + code + ')';
      LoadAreaBody.className = MyAreaName + 'Error';
    }
    else {
      LoadAreaBody.style.visibility = 'visible';
      LoadAreaBar.style.visibility = 'visible';
      LoadAreaBody.className = MyAreaName + 'Body';
      LoadArea.innerHTML = 'Daten werden geladen';
    }
  }
}

/*
	#########################################################################################
	#########################################################################################
	
	### Anzeige des tAJAX-Ladebereichs ###
	### Versteckt den Ladebereich ###
*/

function HidetajaxLoadArea(MyAreaName) {
  var LoadAreaBody;
  var LoadAreaBar;

  if ((MyAreaName == '') || (MyAreaName == null)) MyAreaName = 'tajaxLoadArea';

  try {
    LoadAreaBody = document.getElementById(MyAreaName + 'Body');
    LoadAreaBar = document.getElementById(MyAreaName + 'Bar');
    //LoadArea = document.getElementById('tajaxLoadArea');
  }
  catch(Error) {}
  if (LoadAreaBody != null) {
    LoadAreaBody.style.visibility = 'hidden';
    LoadAreaBar.style.visibility = 'hidden';
  }
}

/*
	#########################################################################################
	#########################################################################################

	### tAJAX-Überflutungsschutz ###
	### Verhindert, das tAJAX sehr oft hintereinander ausgeführt wird. ###	
*/

function tajax_Floodprotect(timeout, Unlock) {
  if (parseInt(timeout) > 0) {
    tajax_FloodLock = true;
    setTimeout("tajax_Floodprotect('',1)", (timeout * 1000));
  }
  if (parseInt(Unlock) == 1) {
    tajax_FloodLock = false;
  }
}

function GetCategorys(MyCatPath) {

  dummy = tajax(MyCatPath, '', 'MyCategorys', '', 'HTML', '', 1);
  //alert('asda');
  // DivPositionieren
  //SetDiVAtMousePos('MyFolders');
  //DiVOnOff('rsp', 'visible')
}

function GetAddBasket(basketpid, mquantity, SessID, UserID, VID) {

  //alert('art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID);
  dummy = tajax('', 'art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID + '&vid=' + VID, 'mybasketcontent', '', 'HTML', '', 1);
  // DivPositionieren
  //alert(dummy);
  //alert(mquantity);    
  SetDiVAtMousePos('mybasketcontent');
  DiVOnOff('mybasketcontent', 'visible')
}

function ReCallProduct(MPAGE, PID, VID, SessID, UserID) {
  document.location.href = MPAGE + '?art=viewproduct&suid=' + UserID + '&zid=' + SessID + '&productid=' + PID + '&varid=' + VID;
}

function GetLogIn() {

  dummy = tajax('', 'art=GetLogIn', 'logoncheck', '', 'HTML', '', 1);
  //alert('asda');
  // DivPositionieren
  SetDiVAtMousePos('logoncheck');
  DiVOnOff('logoncheck', 'visible')
}

function GetCatalogs(CatId, RootID) {

  //dummy = tajax('', 'art=GetWholeThing&scgpid=' + CatId + '&rootid=' + RootID, 'MyCatalogs', '', 'HTML', '', 1);
  //alert('asda');
  // DivPositionieren
  //SetDiVAtMousePos('MyFolders');
  //DiVOnOff('rsp', 'visible')
}
//function GetTree(CatId, DID)
//  { 
//  	dummy = tajax('', 'art=GetTree&scgpid=' + CatId + '&rootid=' + DID, 'clink_' + DID, '', 'HTML', '', 1);
//alert('asda');
// DivPositionieren
//SetDiVAtMousePos('MyFolders');
//DiVOnOff('rsp', 'visible')
//} 

function ReCallProductAsync(PID, VID, ZID, SUID) {
    var ScaledTable;
    ScaledTable = '';

  //alert('Bin dabei : ' + 'art=RefreshVarData&nopublicinc=1&pid=' + PID + '&zid=' + ZID + '&suid=' + SUID + '&vid=' + VID)
  dummy = tajax('', 'art=RefreshVarData&nopublicinc=1&pid=' + PID + '&zid=' + ZID + '&suid=' + SUID + '&vid=' + VID, '', '', 'DirectReturn');
  //alert(dummy);
  if (dummy != '') {
    // Das geparse hier
    try //Internet Explorer
    {
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async = false;
      xmlDoc.loadXML(dummy);
      
    }
    catch(e) {
      try //Firefox, Mozilla, Opera, etc.
      {
        //xmlDoc=document.implementation.createDocument("","",null);
        //xmlDoc.async=false;
        //xmlDoc.load(dummy);
        var parser = new DOMParser();
        var xmlDoc = parser.parseFromString(dummy, "text/xml");

      }
      catch(e) {
        //alert(e.message);
      }
    }

    //alert(dummy);

    //alert(xmlDoc.getElementsByTagName("SellPrice"));
    //alert(xmlDoc.getElementsByTagName("Weight")[0].childNodes[0].nodeValue);	
    //### 2008-11-25 ascheiwe: sellingPriceFormatted !!!
    document.getElementById("SPrice").innerHTML = xmlDoc.getElementsByTagName("SellPriceFormatted")[0].childNodes[0].nodeValue + ' &euro;*';
    document.getElementById("SAnr").innerHTML = xmlDoc.getElementsByTagName("Anr")[0].childNodes[0].nodeValue;

    //Beim refresh der alten Vari Schtaffelpreise updaten
    //document.getElementById("SScP").innerHTML = xmlDoc.getElementsByTagName("ScaledPrices")[0].childNodes[0].nodeValue;


    //Erweiterung fuer die Anzeige der Verfuegbarkeit
    //alert(VID);
    if (document.getElementById("SAvail") != undefined) 
    {
        document.getElementById("SAvail").innerHTML = '<img src="https://www.afterbuy.de/afterbuy/BestandStatusShop20.aspx?pid=' + VID + '"/>';
    }

    try
    {    
	    if (xmlDoc.getElementsByTagName("Ean")[0].childNodes[0].nodeValue != '#ID#256')
	    {  
	       DiVOnOff('SEanTr', 'visible');
	       document.getElementById("SEan").innerHTML = xmlDoc.getElementsByTagName("Ean")[0].childNodes[0].nodeValue;
	    }
	    else
	    {
	       DiVOnOff('SEanTr', 'hidden');
	    }
    }
    catch(err)
    {
        document.getElementById("SEan").innerHTML = '-';
    }    
    
    try
    {

	    if (eval(xmlDoc.getElementsByTagName("Weight")[0].childNodes[0].nodeValue) != 0)
	    {
	       DiVOnOff('SWeightTr', 'visible');
	       document.getElementById("SWeight").innerHTML = xmlDoc.getElementsByTagName("Weight")[0].childNodes[0].nodeValue;
	    }
	    else
	    {
	       DiVOnOff('SWeightTr', 'hidden');
	    }    
    }
    catch(err)
    {
        document.getElementById("SWeight").innerHTML = '-';
    }


    try 
    {
        //xmlList = xmlDoc.getElementsByTagName("ScaledContent");

        if (xmlDoc.getElementsByTagName("ScaledContent")[0].childNodes[0].nodeValue != '') 
        {

            document.getElementById("scaleddiscs").innerHTML = xmlDoc.getElementsByTagName("ScaledContent")[0].childNodes[0].nodeValue;
            //alert('ref');
        }
        else 
        {
            document.getElementById("scaleddiscs").innerHTML = '';
            //alert('bd1');
        }

    }
    catch (eros) 
    {
        document.getElementById("scaleddiscs").innerHTML = '';
        //alert('bd2');
    }

    

















    //alert(xmlDoc.getElementsByTagName("SellPrice")[0].childNodes[0].nodeValue);
  }
  else {
    alert('ERROR');
  }

}


function CheckConstellation(PID, SUID, ZID, bCount) 
{
    //collect selected boxes
    //dummy = tajax('', 'art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID + '&vid=' + VID, 'mybasketcontent', '', 'HTML', '', 1);
    var PCheckSum;
    var bValueID;
    var bVarID;
    var BoxID;
    var PIDs;
    var AllBoxes;
    var i;
    var iTillEnd;
    var SelectedID;
    var SelectedBoxesIDs;
    PIDs = '';
    AllBoxes = 0;
    bValueID = 0;
    PCheckSum = '';
    SelectedID = 0;
    SelectedBoxesIDs = '';
    iTillEnd = 0;
    AllBoxes = document.getElementById('tb').value;

    document.getElementById(PID).disabled = true;

    //request current selection
    //bVarID = document.getElementById('advvars' + bCount).intid;
    for (i = 0; i < bCount; i++) 
    {
        iTillEnd = (i + 1);
        if (eval(document.getElementById('advvars' + (i + 1)).value) < 0) {

            
            //alert('AllBoxes:' + AllBoxes + ' iTillEnd:' + iTillEnd);
            if (AllBoxes == iTillEnd) {
                //alert('Letzte Box auf bitte waehlen');
                //alert('Nix machen, break');
                SelectedBoxesIDs = '';
            }
            else {
                document.getElementById('VariatorSelector' + (i + 2)).innerHTML = '';
                SelectedBoxesIDs = '';
            }
            
            //alert('Break, die ids werden als preselect benutzt:' + SelectedBoxesIDs);
            break;
        }
        else
        { 
            if (SelectedBoxesIDs == '')
            {
                 SelectedBoxesIDs = document.getElementById('advvars' + (i + 1)).value;
            }
            else {
                //alert('advvars' + (i + 1) + ' - ' + document.getElementById('advvars' + (i + 1)).intid);
                SelectedBoxesIDs = SelectedBoxesIDs + ',' + document.getElementById('advvars' + (i + 1)).value;
            }
        }
     }

     if (SelectedBoxesIDs != '') {

         //lert('SelectedBoxesIDs: ' + SelectedBoxesIDs);
         //SelectedBoxesIDs

         bValueID = document.getElementById('advvars' + bCount).value;
         bVarID = document.getElementById('advvars' + bCount).intid;
         //alert('SelectedBoxesIDs: ' + document.getElementById('advvars' + bCount).value);
         PIDs = document.getElementById('ap').value;
         
         //bValue = document.getElementById('advvars' + bCount).options[document.getElementById('advvars' + bCount).options.selectedIndex].id;

         //alert('REQ: art=RefreshVars&nopublicinc=1&&varid=' + bVarID + 'valid=' + bValueID + '&pid=' + PID + '&zid=' + ZID + '&suid=' + SUID + '&box=' + bCount + '&ap=' + PIDs);
         //alert('Box: ' + bCount);
         //alert('AllBoxes: ' + AllBoxes);
         if (bCount == AllBoxes) {
             //alert('Product select');
             /*for (i = 0; i < AllBoxes; i++) {
             PCheckSum = PCheckSum + document.getElementById('advvars' + (i + 1)).value;
             }*/

             //MSKUProduct

             //alert('PCheckSum: ' + PCheckSum);
             //SelectedID = CheckCheckSum(PCheckSum);
             SelectedID = document.getElementById('MSKUProduct').value;
             //alert('SelectedID: ' + SelectedID);
             document.getElementById('varselector').value = SelectedID;

             if (SelectedID > 0) {
                 RefreshVariationAsync(PID, SelectedID)
                 document.getElementById(PID).disabled = false;
             }
             

             //alert('varselector: ' + document.getElementById('varselector').value);
         }
         else {
             //alert('Next Box, UR:' + 'art=RefreshVars&nopublicinc=1&pid=' + PID + '&suid=' + SUID + '&box=' + bCount + '&ap=' + PIDs + '&svalids=' + SelectedBoxesIDs + '&tp=' + AllBoxes);
             dummy = tajax('', 'art=RefreshVars&nopublicinc=1&pid=' + PID + '&suid=' + SUID + '&box=' + bCount + '&ap=' + PIDs + '&svalids=' + SelectedBoxesIDs + '&tb=' + AllBoxes, 'VariatorSelector' + (bCount + 1), '', 'HTML', '', 1);
             //dummy = tajax('', 'art=RefreshVars&nopublicinc=1&valid=' + bValueID + '&varid=' + bVarID + '&pid=' + PID + '&zid=' + ZID + '&suid=' + SUID + '&box=' + bCount + '&ap=' + PIDs + '&svalids=' + SelectedBoxesIDs, 'VariatorSelector' + (bCount + 1), '', 'HTML', '', 1);

         }
     }
     else {
         //alert('SelectedBoxesIDs is leer nix unternehmen');
     }
}



function loadxml(sImportXML) {
  if (window.ActiveXObject && /Win/.test(navigator.userAgent)) {
    oLoadedXML = new ActiveXObject("Msxml.DOMDocument");
    oLoadedXML.async = false;
    oLoadedXML.onreadystatechange = function() {
      if (oLoadedXML.readyState == 4) {
        parseXML();
      }
    }
    oLoadedXML.load(sImportXML);
  }
  else if (document.implementation && document.implementation.createDocument) {
    oLoadedXML = document.implementation.createDocument("", "", null);
    oLoadedXML.async = false;
    var loaded = oLoadedXML.load(sImportXML);
    if (loaded) {
      //parseXML(); 
    }
  }
  else {
    alert("Your browser can\'t handle this script");
    return;
  }
}

// syncroner aufruf weiterleitung zum korb
function AddToBasket(basketpid, mquantity, SessID, UserID, VID, RATR, CATR) {
  //

  var MyRequestableAttributes;
  var MyRequiredAttributes;
  var i;
  var MyAttrTransferString;
  var MyTmpValue;
  var MyRequiredAttrError;
  MyRequiredAttrError = 0
  MyAttrTransferString = '';
  // Attributeprüfung und StringBau für die Attribute
  //alert('Attributeprüfung und StringBau für die Attribute');
  //alert('art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID);

  if (RATR != '' || CATR != '') {
    MyRequestableAttributes = CATR.split("|");
    MyRequiredAttributes = RATR.split("|");

    //alert('Old Attributes Request: ' + RATR);
    //alert('Old Attributes Required: ' + CATR);      
    //alert('Old Attributes Request: ' + MyRequestableAttributes.length);
    //alert('Old Attributes Required: ' + MyRequiredAttributes.length);

    for (i = 0; i < MyRequestableAttributes.length; i++) {

      if (document.getElementById(MyRequestableAttributes[i]).type == 'select-one') {
        //alert('Requestable : ' + document.getElementById(MyRequestableAttributes[i])[document.getElementById(MyRequestableAttributes[i]).selectedIndex].text);
        MyTmpValue = document.getElementById(MyRequestableAttributes[i])[document.getElementById(MyRequestableAttributes[i]).selectedIndex].text;
      }
      else if (document.getElementById(MyRequestableAttributes[i]).type == 'text') {
        //alert('Requestable : ' + document.getElementById(MyRequestableAttributes[i]).value);
        MyTmpValue = document.getElementById(MyRequestableAttributes[i]).value
      }

      if (MyAttrTransferString == '') {
        MyAttrTransferString = MyRequestableAttributes[i] + '_:_' + MyTmpValue;
      }
      else {
        MyAttrTransferString = MyAttrTransferString + '#' + MyRequestableAttributes[i] + '_:_' + MyTmpValue;
    }
      

    }

    //alert('TransferString : ' + MyAttrTransferString);
    for (i = 0; i < MyRequiredAttributes.length; i++) {
      if (document.getElementById(MyRequiredAttributes[i]).type == 'select-one') {
        MyTmpValue = document.getElementById(MyRequiredAttributes[i])[document.getElementById(MyRequiredAttributes[i]).selectedIndex].text;
      }
      else if (document.getElementById(MyRequiredAttributes[i]).type == 'text') {
        MyTmpValue = document.getElementById(MyRequiredAttributes[i]).value;
      }
      if (MyTmpValue == '') {
        MyRequiredAttrError = 1;
        alert('Bei diesem Produkt gibt es Pflichtattribute. Bitte treffen Sie die erforderliche Auswahl.')
        break;
      }
    }
  }

  if (MyRequiredAttrError == 0) {

      //Attributstring decoden damit alles mitkommt
      //%3a = :
      //%23 = #
      if (MyAttrTransferString != '') {
          MyAttrTransferString = MyAttrTransferString.replace(/\#/g, '%23')
          MyAttrTransferString = MyAttrTransferString.replace(/\:/g, '%3a')
      }
  
    document.location.href = '/public/basket_xmlxslcontent.aspx?suid=' + UserID + '&zid=' + SessID + '&vid=' + VID + '&pid=' + basketpid + '&qty=' + mquantity + '&attrstr=' + MyAttrTransferString + '&add=1'
    //basket_xmlxslcontent.aspx?suid=60&zid=3f4bfdc9-e658-4ba4-8cf9-80414464b0df
  }
}

function GetAddBasket(basketpid, mquantity, SessID, UserID, VID, RATR, CATR, LoadAreaDesign, MyMethod) {
  var MyRequestableAttributes;
  var MyRequiredAttributes;
  var i;
  var MyAttrTransferString;
  var MyTmpValue;
  var MyRequiredAttrError;
  var AvailableCount;
  MyRequiredAttrError = 0
  MyAttrTransferString = '';
  
  
  //alert('SSS');
  
  // Attributeprüfung und StringBau für die Attribute
  //alert('Attributeprüfung und StringBau für die Attribute');
  //alert('art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID);
  if (MyMethod == '' || MyMethod == null) {
    MyMethod = 0;
  }

  //alert(RATR + ' - ' + CATR)

  //alert(RATR);
  //alert(CATR);  

  if (RATR != '' || CATR != '') {
    MyRequestableAttributes = CATR.split("|");
    MyRequiredAttributes = RATR.split("|");

    //alert('Old Attributes Request: ' + RATR);
    //alert('Old Attributes Required: ' + CATR);      
    //alert('AfterSplit: ' + MyRequestableAttributes.length);
    //alert('AfterSplit: ' + MyRequiredAttributes.length);
    
    if (MyRequestableAttributes[0]) {
      for (i = 0; i < MyRequestableAttributes.length; i++) {
          //alert(MyRequestableAttributes[i]);   
        if (document.getElementById(MyRequestableAttributes[i]).type == 'select-one') {
          //alert('Requestable : ' + document.getElementById(MyRequestableAttributes[i])[document.getElementById(MyRequestableAttributes[i]).selectedIndex].text);
          MyTmpValue = document.getElementById(MyRequestableAttributes[i])[document.getElementById(MyRequestableAttributes[i]).selectedIndex].value;
        }
        else if (document.getElementById(MyRequestableAttributes[i]).type == 'text') {
          //alert('Requestable : ' + document.getElementById(MyRequestableAttributes[i]).value);
          MyTmpValue = document.getElementById(MyRequestableAttributes[i]).value
        }

        if (MyAttrTransferString == '') {
          MyAttrTransferString = MyRequestableAttributes[i] + '_:_' + MyTmpValue;
        }
        else {
          //MyAttrTransferString = MyAttrTransferString + '#' + MyRequestableAttributes[i] + '_:_' + MyTmpValue;
          MyAttrTransferString = MyAttrTransferString + '%23' + MyRequestableAttributes[i] + '_:_' + MyTmpValue;
        }
      }
      //alert(MyAttrTransferString);
    }

    //alert('TransferString : ' + MyAttrTransferString);
    if (MyRequiredAttributes[0]) {
      for (i = 0; i < MyRequiredAttributes.length; i++) {
        if (document.getElementById(MyRequiredAttributes[i]).type == 'select-one') {
          MyTmpValue = document.getElementById(MyRequiredAttributes[i])[document.getElementById(MyRequiredAttributes[i]).selectedIndex].value;
        }
        else if (document.getElementById(MyRequiredAttributes[i]).type == 'text') {
          MyTmpValue = document.getElementById(MyRequiredAttributes[i]).value;
        }
        if (MyTmpValue == '') {
          MyRequiredAttrError = 1;
          alert('Bei diesem Produkt gibt es Pflichtattribute. Bitte treffen Sie die erforderliche Auswahl.');
          break;
        }
      }
    }
  }

  if (MyRequiredAttrError == 0) {
    if (LoadAreaDesign != '') {

      //alert(MyAttrTransferString);
      if (MyMethod != 2)
      {
          SetDiVAtMousePos('BasketProgressbar');
          insertLoadArea('BasketProgressbar', 'Produkt wird in den Warenkorb gelegt...', LoadAreaDesign);
      }


      DiVOnOff('BasketProgressbar', 'visible');
      //alert(MyMethod);
      if (MyMethod == 0 || MyMethod == 2) {
        dummy = tajax_Basket('', 'art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID + '&vid=' + VID + '&attrstring=' + MyAttrTransferString, 'mybasketcontent', '', 'DirectReturn', '');

        
       
        if (dummy.lastIndexOf('<div style="position:absolute;visibility:hidden">0</div>') >= 0) 
        {
          AvailableCount = GetCValue(dummy, 'Verf');
          insertLoadArea('BasketProgressbar', 'Produkt ist leider nicht mehr in der angeforderten Menge vorhanden. Noch vorhandene Menge: <font color="red"><b>' + AvailableCount + '</b></font>', LoadAreaDesign);
          setTimeout("killdiv()", 4000);
        }
        else 
        {
          //wenn es ein Direktkaufwar anschlisend direkt zum Bestellen springen
          //Alles ok keine probleme kaufen!
          setTimeout("LoadDone('" + LoadAreaDesign + "')", 1000);

          if (MyMethod == 2)
          {
             //alert('/public/get_orderxmlxsl.aspx?suid=' + UserID + '&zid=' + SessID + 'art=orderconfirm&oco=5');
             document.location.href = '/public/get_orderxmlxsl.aspx?suid=' + UserID + '&zid=' + SessID + '&art=orderconfirm&oco=5';
          }
          
        }

      }
      else {
        
            dummy = tajax('', 'art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID + '&vid=' + VID + '&attrstring=' + MyAttrTransferString, 'mybasketcontent', '', 'HTML', '', 1, 1);
            setTimeout("LoadDone('" + LoadAreaDesign + "')", 1000);
      }

      //dummy = tajax_Basket('', 'art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID + '&vid=' + VID, 'mybasketcontent', 'BasketProgressbar')
    }
    else {
      dummy = tajax('', 'art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID + '&vid=' + VID + '&attrstring=' + MyAttrTransferString, 'mybasketcontent', '', 'HTML', '', 1, 1);
    }
  }
  // DivPositionieren
  //alert(dummy);
  //alert(mquantity);    
  //SetDiVAtMousePos('mybasketcontent');
  //DiVOnOff('mybasketcontent', 'visible') 	
}

function GetCValue(SearchString, ValueName) 
{
  var Ausdruck = /<!--#:#(.*)#:#-->/;
  var FullResult;
  
  Ausdruck.exec(SearchString);
  FullResult = RegExp.$1;
  var MyArra = FullResult.split(':');
  return MyArra[1];
}


function GetAddBasketTest(basketpid, mquantity, SessID, UserID, VID, ReqStr, ChkStr, LoadAreaDesign) {

  // Attributeprüfung und StringBau für die Attribute
  alert(ReqStr);
  alert(ChkStr);

  insertLoadArea('BasketProgressbar', 'Produkt wird in den Warenkorb gelegt...', LoadAreaDesign);
  SetDiVAtMousePos('BasketProgressbar');
  //alert(document.getElementById(''))
  DiVOnOff('BasketProgressbar', 'visible')
  //alert('art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID);
  dummy = tajax('', 'art=AddItemToBasket&nopublicinc=1&basketpid=' + basketpid + '&basketquantity=' + mquantity + '&zid=' + SessID + '&suid=' + UserID + '&vid=' + VID, 'mybasketcontent', '', 'HTML', '', 1);

  setTimeout("LoadDone('" + LoadAreaDesign + "')", 2000);
  // DivPositionieren
  //alert(dummy);
  //alert(mquantity);    

}

function CountStars(MyPoint, MyDir)
{  
   if (MyDir == 'up')
   {
	   if (eval(MyPoint) < 0)
	   {
	       MyPoint = 0
	   }
	   else
	   {
          MyPoint = eval(MyPoint) + 0.5	   
	   }
   }
   if (MyDir == 'down')
   {
      MyPoint = eval(MyPoint) - 0.5
   }
   if (MyDir == 'set')
   {
      MyPoint = eval(MyPoint)
   }   
   if (eval(MyPoint) < 0)
   {
       MyPoint = -1
   }
   if (eval(MyPoint) > 5)
   {
       MyPoint = (5)
   }
   
   return MyPoint
   
}

function LeaveFeedback(MyPoint) 
{
  //alert('Fill DIV for : ' + MyPoint);
  dummy = tajax('', 'art=LeaveFeedbackDiv&nopublicinc=1&fpo=' + MyPoint, 'FeedbackStars', '', 'HTML', '', 1);
}


function LoadDone(LAreaDesign) {
  //DiVOnOff('BasketProgressbar', 'hidden');
  //alert('LAreaDesign - ' + LAreaDesign);
  tajax('/includes/DummyInterface.aspx', 'art=BasketProgressbar&nopublicinc=1&MyMsg=Produkt ist nun im Warenkorb.&MyFormat=' + LAreaDesign, 'BasketProgressbar', '', 'HTML', '', 1, 0, 'leer');
  setTimeout("killdiv()", 1000);
}
function killdiv() {
  //alert('DA');
  DiVOnOff('BasketProgressbar', 'hidden')
  tajax('/includes/DummyInterface.aspx', 'art=removeBasketProgressbar&nopublicinc=1', 'BasketProgressbar', '', 'HTML', '', 1, 0, 'leer');
}

function ReCallProduct(MPAGE, PID, VID, SessID, UserID) {
  document.location.href = MPAGE + '?art=viewproduct&suid=' + UserID + '&zid=' + SessID + '&productid=' + PID + '&varid=' + VID;
}

function insertLoadArea(elementID, MyMsg, LAFormat) {
  //alert('art=BasketProgressbar&MyFormat=' + LAFormat + '&MyMsg=' + MyMsg);
  tajax('/includes/DummyInterface.aspx', 'art=BasketProgressbar&MyMsg=' + MyMsg + '&MyFormat=' + LAFormat, elementID, '', 'HTML', '', 0, 0, 'leer');
}