/* CO specific load image */
var sLoadImgSrc = "/pub/images/load_2sec.gif";
if (window.location.pathname.indexOf("/nl/nl/")!=-1) {
	sLoadImgSrc = "/pub/images/nl/nl/load_2sec_nl.gif";
	}

/* Legt einen Standardartikel mit Angabe der Artikelnummer in den Warenkorb */
function addOneItemToCart(materialNumber) {
  var qtyElement = getElement("name", "q" + materialNumber, 0)
  var qty = 1;
  if(qtyElement != null) {
    qty = qtyElement.value;
  }
     if (document.getElementById("img_wait")!= null && document.getElementById("infoPage")!= null) {
     document.getElementById("img_wait").src=sLoadImgSrc;
     document.getElementById("infoPage").style.visibility = 'visible';
     }
  var url = "shoppingCartAdd.do?prodIdList=" + materialNumber + "&q" + materialNumber + "=" + qty;
  var win = window.open(url, "addToCartWindow", "width=450,height=120,menubar=no,locationbar=no,scrolling=auto,resizable=yes");
  win.focus();
}

/* Legt einen Standardartikel mit Angabe der Artikelnummer in den Warenkorb  und setzt den Context der aufrufenden Seite*/
function addOneItemToCart(materialNumber, addedFromContext) {
  var qtyElement = getElement("name", "q" + materialNumber, 0)
  var qty = 1;
  if(qtyElement != null) {
    qty = qtyElement.value;
  }
     if (document.getElementById("img_wait")!= null && document.getElementById("infoPage")!= null) {
     document.getElementById("img_wait").src=sLoadImgSrc;
     document.getElementById("infoPage").style.visibility = 'visible';
     }
  var url = "shoppingCartAdd.do?prodIdList=" + materialNumber + "&q" + materialNumber + "=" + qty + "&context=" + addedFromContext;
  var win = window.open(url, "addToCartWindow", "width=450,height=120,menubar=no,locationbar=no,scrolling=auto,resizable=yes");
  win.focus();
}

/* Legt einen Kontraktartikel mit Angabe der ContractItemNumber in den Warenkorb */
function addOneContractItemToCart(contractItemNumber, contractDocumentNumber) {
  var qtyElement = getElement("name", "q" + contractItemNumber, 0)
  var qty = 1;
  if(qtyElement != null) {
    qty = qtyElement.value;
  }
  var url = "shoppingCartAdd.do?prodIdList=" + contractItemNumber + "&q" + contractItemNumber + "=" + qty + "&type" + contractItemNumber + "=CO&contractDocumentNumber=" + contractDocumentNumber;
  var win = window.open(url, "addToCartWindow", "width=450,height=120,menubar=no,locationbar=no,scrolling=auto,resizable=yes");
  win.focus();
}

/* Legt einen Kontraktartikel mit Angabe der ContractItemNumber in den Warenkorb */
function addOneContractItemToCart(contractItemNumber, contractDocumentNumber, addedFromContext) {
  var qtyElement = getElement("name", "q" + contractItemNumber, 0)
  var qty = 1;
  if(qtyElement != null) {
    qty = qtyElement.value;
  }
  var url = "shoppingCartAdd.do?prodIdList=" + contractItemNumber + "&q" + contractItemNumber + "=" + qty + "&type" + contractItemNumber + "=CO&contractDocumentNumber=" + contractDocumentNumber +"&context="+addedFromContext;
  var win = window.open(url, "addToCartWindow", "width=450,height=120,menubar=no,locationbar=no,scrolling=auto,resizable=yes");
  win.focus();
}

/* Parameter: Formname
   diese Form enthält Elemente mit Namen "prodIdList". Der Wert des Elements ist die Artikelnummer.
*/
function addSelectedItemsToCart(formName) {
if (document.getElementById("img_wait")!= null && document.getElementById("infoPage")!= null) {
  document.getElementById("img_wait").src=sLoadImgSrc;
  document.getElementById("infoPage").style.visibility = 'visible';
}  
  submitFormInPopup(formName, "shoppingCartAdd.do");
}

/* Parameter: Formname
   diese Form enthält Elemente mit Namen "prodIdList". Der Wert des Elements ist die Artikelnummer.
*/
function addSelectedItemsToCart(formName, context) {
if (document.getElementById("img_wait")!= null && document.getElementById("infoPage")!= null) {
  document.getElementById("img_wait").src=sLoadImgSrc;
  document.getElementById("infoPage").style.visibility = 'visible';
}  
  submitFormInPopup(formName, "shoppingCartAdd.do?context=" + context);
}

/* Parameter: Formname, auszuführende Action
*/
function submitFormInPopup(formName, formAction) {
  var formElement = $("form[name='" + formName + "']");

  var win = window.open("", "popupWindow", "width=450,height=150,menubar=no,locationbar=no,scrolling=auto,resizable=yes");

  var oldAction = formElement.attr('action');
  var oldTarget = formElement.attr('target');

  formElement.attr('action', formAction);
  formElement.attr('target', "popupWindow");
  formElement.submit();
  win.focus();

  //Setze wieder die alten Werte
  formElement.attr('action', oldAction);
  formElement.attr('target', oldTarget);
}

function openWindow(url, windowName, attributes){
    var win = window.open(url, windowName , attributes);
    win.focus();
}

function openAvailabilityLegendWindow() {
    openWindow("availability_legend.jsp", "availabilityLegendWindow", "width=450,height=340,menubar=no,locationbar=no,scrolling=no,resizable=no");
}

/*
  öffnet eine Dialogbox für den Wechsel zwischen Standard und Lizenzwarenkorb
*/
var DialogBox=null;

var xMousePos=0;
var yMousePos=0;
var browser = 0;

if(document.all || document.getElementById) {
    document.onmousemove=captureMousePosition;
}

function showActionPopup(refObj, shoppingCartTypes, shoppingCartIds, currency, labelPositions, isShoppingCartPage, closeIcon) {
    var i;
    var shoppingCartType;
    var cartId;
    var content='<table border="0" cellpadding="0" cellspacing="0">'+'<tr><td align="center" valign="middle"><table>';

    for(i=0;i<shoppingCartTypes.length;i++) {
        shoppingCartType = shoppingCartTypes[i];
        cartId = shoppingCartIds[i];
        content+='<tr><td class="dialogboxItem"';
        if(i>0) {
            content+=' colspan="2">';
        }
        else {
            content+='>';
        }
        content+='<a href="javascript:switchShoppingCart(\'' + cartId + '\',\''+ currency + '\',\''+ labelPositions + '\',' + isShoppingCartPage + ');hideDialogBox()">' + shoppingCartNames[shoppingCartType] + '</a>';
        content+='</td>';

        if(i==0) {
            content+='<td><img src="' + closeIcon + '" align="absmiddle" border="0" onclick="hideDialogBox()"/></td>';
        }
        content+='</tr>';
    }
    content+='</table></td></tr></table>';

    showDialogBox(refObj,content);
}

function showDialogBox(refObj, content) {
    if(DialogBox==null){
        if(document.all){
            DialogBox=document.all("DialogBoxWrapper");
        }
        else if(document.getElementById){
            DialogBox=document.getElementById("DialogBoxWrapper");
        }
    }
    if(document.all) {
        var left=event.clientX+document.body.scrollLeft+10;
        var top=event.clientY+document.body.scrollTop-10;
    }
    else if(document.getElementById) {
        var left=refObj.offsetLeft+refObj.offsetWidth;
        var top=refObj.offsetTop;
        while(refObj.offsetParent){
            refObj=refObj.offsetParent;
            left+=refObj.offsetLeft;
            top+=refObj.offsetTop;
        }
    }

    DialogBox.innerHTML=content;
    DialogBox.style.left=left-150;
    DialogBox.style.top=top;
    DialogBox.style.display="block";
    timeoutDialogBox();
}

function hideDialogBox() {
    if(DialogBox)
        DialogBox.style.display="none";
}

function timeoutDialogBox() {
    var boxX=parseFloat(DialogBox.offsetLeft);
    var boxY=parseFloat(DialogBox.offsetTop);
    var boxW=parseFloat(DialogBox.offsetWidth);
    var boxH=parseFloat(DialogBox.offsetHeight);

    if(xMousePos > boxX
            && xMousePos < (boxX+boxW)
            && yMousePos > boxY
            && yMousePos < (boxY+boxH)) {
        setTimeout("timeoutDialogBox(DialogBox)",1000);
    }
    else{
        hideDialogBox();
    }
}

function captureMousePosition(e){
    if(document.layers){
        xMousePos=e.pageX;
        yMousePos=e.pageY;
        //xMousePosMax=window.innerWidth+window.pageXOffset;
        //yMousePosMax=window.innerHeight+window.pageYOffset;
    }
    else if(document.all){
        xMousePos=window.event.x+document.body.scrollLeft;
        yMousePos=window.event.y+document.body.scrollTop;
        //xMousePosMax=document.body.clientWidth+document.body.scrollLeft;
        //yMousePosMax=document.body.clientHeight+document.body.scrollTop;
    }
    else if(document.getElementById){
        xMousePos=e.pageX;
        yMousePos=e.pageY;
        //xMousePosMax=window.innerWidth+window.pageXOffset;
        //yMousePosMax=window.innerHeight+window.pageYOffset;
    }
}
/* END Dialogbox*/

/*
 * Setzt den Warenkorb mit der ID <toCartId> als aktuellen Warenkorb
 * Wenn es sich um eine Warenkorbseite handelt (isShoppingCartPage=true) wird direkt shoppingCartEdit aufgerufen
 * ansonsten wird auf jeder Seite mit Ajax das Fenster oben rechts aktualisiert
 */
function switchShoppingCart(toCartId, currency, labelPositions, isShoppingCartPage) {
      
    if(isShoppingCartPage) {
        document.location.href='shoppingCartSwitch.do?toCart=' + toCartId + '&isShoppingCartPage=true';
    }
    else {
        //switch to Cart
        var actionURL = "shoppingCartSwitch.do";
        var timeout = 1000;

        if (window.XMLHttpRequest) {
          httpRequest = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
          httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }

        httpRequest.onreadystatechange = function () {
            if (httpRequest.readyState == 4) {
              if (httpRequest.status == 200) {
                //update the HTML DOM based on whether or not message is valid

                var xmlDoc = httpRequest.responseXML;

                if (xmlDoc && xmlDoc.documentElement && xmlDoc.documentElement.childNodes && xmlDoc.documentElement.childNodes.length > 0) 
                {
                  //Warenkorbbezeichnung CartType
                  var cartType = xmlDoc.getElementsByTagName("cartType")[0].childNodes[0].nodeValue;

                  //ItemsIncart;
                  var itemsInCart = xmlDoc.getElementsByTagName("itemsInCart")[0].childNodes[0].nodeValue + '&nbsp;' + labelPositions;
                  //TotalNetPrice
                  var totalNetPrice = xmlDoc.getElementsByTagName("totalNetPrice")[0].childNodes[0].nodeValue + "&nbsp;" + currency;

                  //LinkToCart
                  var linkToCart = "";
                  if(Number(xmlDoc.getElementsByTagName("itemsInCart")[0].childNodes[0].nodeValue) > 0) {
                    linkToCart = "<a href='shoppingCartEdit.do' target='_self' class='null'><img src='/pub/images/ic_16x11_basket.gif' width='16' height='11' border='0'/></a>";
                  }
                  else {
                    linkToCart = "&nbsp;";
                  }
                  if(document.all) {
                      document.all("cartType").innerHTML = shoppingCartNames[cartType];
                      document.all("itemsInCart").innerHTML = itemsInCart;
                      document.all("totalNetPrice").innerHTML = totalNetPrice;
                      document.all("linkToCart").innerHTML = linkToCart;
                  }
                  else if(document.getElementById) {
                      document.getElementById("cartType").innerHTML = shoppingCartNames[cartType];
                      document.getElementById("itemsInCart").innerHTML = itemsInCart;
                      document.getElementById("totalNetPrice").innerHTML = totalNetPrice;
                      document.getElementById("linkToCart").innerHTML = linkToCart;
                  }
                }
              }
            }
        }

        var vars = 'toCart=' + toCartId;
        httpRequest.open( "POST", actionURL, true );
        httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        httpRequest.setRequestHeader("Content-Length", vars.length);

        // send Request
        setTimeout("try { httpRequest.send('" + vars + "') } catch(e) {}", timeout);
    }
}

/*
 * Einblendung von Loadimage (load_2sec.gif), bei > 1 sek
 */
var layerflag = true;
		function initWait ()
			{
                               if (document.layers)
                               {
                                document.layers['infoPage'].visibility = 'hide';
                                document.layers['realPage'].visibility = 'show';
                               }
                               else if (document.all)
                               {
                                document.all['infoPage'].style.visibility = 'hidden';
                                document.all['realPage'].style.visibility = 'visible';
                               }
                               else if (document.getElementById)
                               {
                                document.getElementById('infoPage').style.visibility = 'hidden';
                                document.getElementById('realPage').style.visibility = 'visible';
                               }
                           }
                           
                function beforeUnloadWait ()
			{
			if (layerflag) {
                               if (document.layers)
                               {
                                document.layers['infoPage'].visibility = 'show';
                                document.layers['realPage'].addEventListener('click', 
                                function (event) { 
                                	event.target.addEventListener('click',
                                	function (event) {
                                		var tempobj = event.target;
						tempobj.disabled = true;
                                		if (tempobj.hasAttribute('href')) { 
                                			tempobj.removeAttribute('href');
                                		}
                                		return true
                                	}, true); 
                                }, false);
                                document.getElementById('img_wait').src=sLoadImgSrc;
                               }
                               else if (document.all)
                               {
                               	try {
                               	   if (searchpage) {
                               		setTimeout("hideProductSearch()",1000); 
                               	   } 
                               	} catch (e) {
                                   //nothing
                               	}   
                                document.all['infoPage'].style.visibility = 'visible';
                                if (document.all['realPage'].addEventListener) {
                                document.all['realPage'].addEventListener('click', 
                                function (event) { 
                                	event.target.addEventListener('click',
                                	function (event) {
                                		var tempobj = event.target;
						tempobj.disabled = true;
                                		if (tempobj.hasAttribute('href')) { 
                                			tempobj.removeAttribute('href');
                                		}
                                		return true
                                	}, true); 
                                }, false);
                                } else if (document.all['realPage'].attachEvent){
                                document.all['realPage'].attachEvent('onclick',
                                	function (event) {
                                		event.srcElement.attachEvent('onclick',
                                	function (event) {
                                		var tempobj = event.srcElement;
						tempobj.disabled = true;
                                		if (tempobj.getAttribute('href')) { 
                                			tempobj.removeAttribute('href');
                                		}
                                		return true
                                	}); 
                                	});
                                }
                                setTimeout('document.images["img_wait"].src = sLoadImgSrc', 200); 
                               }
                               else if (document.getElementById)
                               {
                                document.getElementById('infoPage').style.visibility = 'visible';
                                if (document.getElementById('realPage').addEventListener) {
                                document.getElementById('realPage').addEventListener('click', 
                                function (event) { 
                                	event.target.addEventListener('click',
                                	function (event) {
                                		var tempobj = event.target;
						tempobj.disabled = true;
                                		if (tempobj.hasAttribute('href')) { 
                                			tempobj.removeAttribute('href');
                                		}
                                		return true
                                	}, true); 
                                }, false);
                                } else if (document.getElementById('realPage').attachEvent){
                                document.getElementById('realPage').attachEvent('onclick',
                                	function (event) {
                                		event.srcElement.attachEvent('onclick',
                                	function (event) {
                                		var tempobj = event.srcElement;
						tempobj.disabled = true;
                                		if (tempobj.getAttribute('href')) { 
                                			tempobj.removeAttribute('href');
                                		}
                                		return true
                                	}); 
                                	});
                                }
                                document.getElementById('img_wait').src=sLoadImgSrc;
                               }
                             }   
                           }

function abort ()
{
	layerflag=false;
	
	if (document.layers)
	{
		document.layers['infoPage'].visibility = 'hide';
	}
	else if (document.all)
	{
		document.all['infoPage'].style.visibility = 'hidden';
	}
	else if (document.getElementById)
	{
		document.getElementById('infoPage').style.visibility = 'hidden';
	}
}

/**
 *  close overlay if window is unloaded
 */
function abortOverlayOnUnload() {
	try {
		window.onbeforeunload = abort();
	}
	catch(e) {
		// NOOP
	}
}


//Changes the Scroll-Position to an object
  function gotoObj(obj) {
  	var y = findPosY(obj);
  	var x = findPosX(obj);
  	gotoPos(x,y);
  }
  
//Changes the Scroll-Position to defined Coordinates
function gotoPos(x,y) {
	window.scrollTo(x, y);
}

//Gets the Vertical-Position of an object
 function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }

//Gets the Horizontal-Position of an object  
  function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }
  
  //Gets the vertical Offset of all Parents from an Object
  function getParentOffset(obj) {
  	var curtop = 0;
    if(obj.offsetParent) {
    	//1. AdultObject
    	obj = obj.offsetParent;
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          //Next AdultObject
          obj = obj.offsetParent;
        }
    }
    return curtop;
  }
  
function deleteWhiteSpaceForManufacturerMaterialNo(table_id, td_name) {
	var manNos = document.getElementsByName(td_name);
	
	if (manNos != null) {
		if (manNos.length > 0) {
			//Firefox als Browser
			for (var i = 0; i < manNos.length; i++) {
				manNos[i].innerHTML = changeManMatNoText(manNos[i].innerHTML, "FF");
			}
		}
		else {
			//IE als Browser oder im FF keine Treffer
			var table = document.getElementById(table_id);
			var tds = table.getElementsByTagName('TD');

			for (var i=0, td; td = tds[i]; i++) {
				if (td.name == td_name) {
					td.innerHTML = changeManMatNoText(td.innerHTML, "IE");
				}
			}
		}
	}	
}

function changeManMatNoText(input_txt, browser) {
	var org = input_txt
	var text = org;
	var bonusText = "";
	
	//Achtung: td kann BonusClub-Informationen enthalten!!
	//<div title="Details zur Bonusclub Aktion"  ...
	
	var begin = 0;
	
	if (browser == "FF") {
		begin = org.indexOf("<div");
	}
	else {
		begin = org.indexOf("<DIV");
	}
	
	if (begin > 0) {
		//text enthält die ManMatNo
		text = org.substring(0,begin);
		//bonusText enthält das DIV mit dem Bonusclub
		bonusText = org.substring(begin, org.length);
	}
	
	//alert("text: *" + text + "* Bonusclub: '" + bonusText + "'");

	//ManufacturerMaterialNo trimmen und Leerzeichen ersetzen
	if (text != null) {
		text = text.replace(/^\s*/,"");      //vorne Trimmen
		text = text.replace(/\s*$/,"");      //hinten Trimmen
		text = text.replace(/\s/g, "<wbr>"); //alle Leerzeichen durch ein <wbr> ersetzen

		//Beide Teile wieder zusammenführen
		text = text + " " + bonusText;

		return text;
	}	
}

function addSelectedItemsToNotepad() {
	
	var params = "";
	
	//Alle Checkboxen, die angehakt sind
	$("[name='prodIdList']:checked").each(function(){
			var matNo = $(this).val();
			
			//Suchen des Hiddenfields, das die CartItemId enthält
			var hiddenField = $(this).parents("tr").prevAll("[name='itemId']");
			
			if ($(hiddenField).length <= 0) {
				//Ein TBody muss noch überwunden werden (beim 1. Eintrag)
				hiddenField = $(this).parents("tr").parents("tbody").prevAll("[name='itemId']")	
			}
			
			//CartItemId bestimmen um Qty zu ermitteln
			var cartItemId = $(hiddenField).val();
			var qty = $("[name='qty" + cartItemId + "']").val();
			
			if (qty == "") {
				qty = "1";	
			}
			
			if (cartItemId != undefined) {
				params += "q" + matNo + "=" + qty + "&";
			}
			
			//Positionstext
			var posText = $("tr.printrow :input[name='custText" + cartItemId + "']").val();
			params += "posText" + matNo + "=" + posText + "&";
	});
	
	params = params.substring(0,params.length-1);
	
	document.shoppingCartEditForm.action='notepadAdd.do?' + params;document.shoppingCartEditForm.submit();

}
function addSelectedItemsToNotepadWithAction(actionCall, form) {
	
	var params = "";
	
	//Alle Checkboxen, die angehakt sind
	$("[name='prodIdList']:checked").each(function(){
			var matNo = $(this).val();
			
			//Suchen des Hiddenfields, das die CartItemId enthält
			var hiddenField = $(this).parents("tr").prevAll("[name='itemId']");
			
			if ($(hiddenField).length <= 0) {
				//Ein TBody muss noch überwunden werden (beim 1. Eintrag)
				hiddenField = $(this).parents("tr").parents("tbody").prevAll("[name='itemId']")	
			}
			
			//CartItemId bestimmen um Qty zu ermitteln
			var cartItemId = $(hiddenField).val();
			var qty = $("[name='qty" + cartItemId + "']").val();
			
			if (qty == "") {
				qty = "1";	
			}
			
			if (cartItemId != undefined) {
				params += "q" + matNo + "=" + qty + "&";
			}
			
			//Positionstext
			var posText = $("tr.printrow :input[name='custText" + cartItemId + "']").val();
			params += "posText" + matNo + "=" + posText + "&";
	});
	
	params = params.substring(0,params.length-1);
	
	form.action=actionCall + '?' + params;form.submit();

}


/**
 * loads bonusopints of current logged in customer
 * into a box with given id
 * @requires jquery > 1.3.2
 * @param id [string] parent elements id
 * @param 1...n order of returned data. attributes name.
 *
 * Example: loadBonusPointsAjax('bcPunkte', 'pointsForGermany', 'totalPoints') 
 */
  
function loadBonusPointsAjax() {

	var id = arguments[0];
	var properties = Array();

	for (var i = 1; i < arguments.length; ++i) {
		properties[i - 1] = arguments[i];
	}
	
	
	$.ajaxSetup({cache: false });

	// called if ajax is success 			
	$.getJSON("/ec/getBonusClubAccountBalance.do", function(data) {

		for (var i = 0; i < properties.length; ++i) {			
			var jq = $('#' + id + ' span.points:eq(' + i + ')');

			if (jq.length > 0) { // if it exist
				var val = eval('data.' + properties[i]);

				$('#' + id + ' span.points:eq(' + i + ')').text(val); 
			}
		}

	});
}
