var IE = document.all?true:false;
setCookie('hasjavascript', 'true');
var objAjax3 = getXMLHTTPRequest();
var objAjax = getXMLHTTPRequest();
var MyAjax = getXMLHTTPRequest();

function Mod(X, Y) {
    return X - Math.floor(X / Y) * Y;
}

window.onload = function() {
  //Attach enter key event to searchfield:
  addEventListenToObj(document.getElementById('keyword'), 'keyup', HandleSearch);

  // Kleur menu item oranje als het huidige categorie is.
  menulink = window.location.href;
  if (window.location.href.indexOf("premiums-gifts") > -1) {
    // Gaat om een product, krijg 2de link van kruimel.
    menulink = $("#crumbbar h1.crumb:eq(1) a").attr("href");
    //console.log(menulink);
  }

  $("#verticalMenu ul a").each(function() {
    if (menulink.indexOf(this.href) > -1) {
      $(this).css("font-weight", "bold");
    }
  });

  //Write the stats:
  writeStats();

  try {
    onloadglobal();
  }
  catch (err) {
    //gewoon niks uitvoeren
  }

  try {
    UpdateCrumbCounter();
  }
  catch (err) {
    //gewoon niks uitvoeren
  }
}

window.onunload = function ()
{
    try 
    {
      onunloadglobal();
    } catch(err) {
      //Do nothing
    }
}

function addToMail()
{
    document.location = '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/mailing.aspx?name=' + document.getElementById('mailingName').value + '&email=' + document.getElementById('mailingEmail').value;
}

function addEventListenToObj(oObj, sEvent, sFunction)
{
    if(oObj)
    {
      if(IE)
      {
        oObj.attachEvent('on' + sEvent, sFunction);
      } else {
        oObj.addEventListener(sEvent, sFunction, false);
      }
    }
}

function HandleSearch(oEvent)
{
  switch(oEvent.keyCode)
  {
    case 13:
      handlesearch();
    break;
  }
}

function handlesearch()
{
  sSearchWord = document.getElementById('keyword').value
  sSearchWord = sSearchWord.replace('"', '');
  sSearchWord = escape(document.getElementById('keyword').value);
  
  if (document.getElementById('urlroot').value == ''){
    window.location = '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/search/search/' + sSearchWord + '.aspx';
  }else{
    window.location = document.getElementById('urlroot').value + '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/search/search/' + sSearchWord + '.aspx?forsecure=false';
  }
}

function zoek404()
{
  sSearchWord = document.getElementById('404keyword').value
  sSearchWord = sSearchWord.replace('"', '');
  sSearchWord = escape(document.getElementById('404keyword').value);
  
  if (document.getElementById('urlroot').value == ''){
    window.location = '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/search/search/' + sSearchWord + '.aspx';
  }else{
    window.location = document.getElementById('urlroot').value + '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/search/search/' + sSearchWord + '.aspx?forsecure=false';
  }
}

function ChangeAmount(oTxtBox, sMode)
{
  oTxtBox = document.getElementById(oTxtBox);
  
  if(IsNumeric(trim(oTxtBox.value))==false){oTxtBox.value=0;}
  
  if(sMode=='-')
  {
    if(oTxtBox.value > 1){oTxtBox.value--;}
  } else {
    if(oTxtBox.value < 999){oTxtBox.value++;}
  }
}
            
function emptySearch()
{
  document.getElementById('keyword').value = '';
}

function formatCurrency(strValue)
{
	strValue = strValue.toString().replace(/\$|\,/g,'.');
	dblValue = parseFloat(strValue);
  
	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+'.'+
		dblValue.substring(dblValue.length-(4*i+3));
	return (((blnSign)?'':'-') + dblValue + ',' + strCents);
}

function getXMLParser(sXmlInput)
{
  var xmlobject = (new DOMParser()).parseFromString(xmlstring, "text/xml");
  return xmlobject;
}

function getXMLDocument(sXmlString)
{  
  if (window.ActiveXObject){
    var doc=new ActiveXObject('Microsoft.XMLDOM');
    doc.async='false';
    doc.loadXML(sXmlString);
  } else {
    var parser=new DOMParser();
    var doc=parser.parseFromString(sXmlString,'text/xml');
  }
  
  return doc;
}

function getXMLHTTPRequest()
{
	var objXML = false;
	try
	{
		//Object voor firefox compitabele browsers:
		objXML = new XMLHttpRequest(); 
	}
	catch(err1)
	{
		//Object voor sommige versies van IE
		try {objXML = new ActiveXObject("Msxml2.XMLHTTP");}
		catch(err2)
		{
			//Object voor sommige versies van IE
			try {objXML = new ActiveXObject("Microsoft.XMLHTTP");}
			catch(err3)
			{
				objXML = false;
			}
		}
	}
			  
	return objXML;
}

function removeFromTender(iProductNo, sMode)
{
  var sRequestUrl = '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/tender/removefromtender/' + iProductNo;
  sRequestUrl += '/.aspx?forajax=true&forxml=true&mode=' + sMode;
  
  objAjax.open('GET', sRequestUrl, true);
  objAjax.onreadystatechange = FinishTenderRemove;
  objAjax.send(null);
}

function FinishTenderRemove()
{
  /*When request complete, ajax will call this function*/
  if(objAjax.readyState==4)
	{
		if(objAjax.status==200)
		{
		  //Remove tr:
		  var sMode = (objAjax.responseXML.getElementsByTagName("type"))[0].firstChild.data;
		  var sProduct = (objAjax.responseXML.getElementsByTagName("product"))[0].firstChild.data;

      //Actually remove the row:
      oTable = document.getElementById('tbl' + sMode);
      oRow = document.getElementById(sMode + sProduct);
      
      if(oRow)
      {
        oRow = oRow.rowIndex;
        oTable.deleteRow(oRow);
      }

		}
	} 
}

function HandleTender(iProductNo, sMode)
{
  var sRequestUrl = '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/tender/addtotender/' + iProductNo;
  
  var oAmount;
  var iAmount = 1;
  
  if(sMode == 'koop'){sMode = 1;} else {sMode = 0;}
  
  oAmount = document.getElementById('txtAmount' + iProductNo);
  if(oAmount){iAmount = oAmount.value;}
  
  if((IsNumeric(iAmount) == true) && (iAmount > 0))
  {
    sRequestUrl += '/' + iAmount + '.aspx?forajax=true&forxml=true&mode=' + sMode;
    objAjax.open('GET', sRequestUrl, true);
    objAjax.onreadystatechange = UpdateTender;
    objAjax.send(null);
  } else if (IsNumeric(oAmount.value) == false) {
    alert(document.getElementById('notnumericmsg').value);  
  } else if (oAmount.value <= 0) {
    alert(document.getElementById('invalidnumber').value);
  }
}

function UpdateTender()
{
  /*When request complete, ajax will call this function*/
  if(objAjax.readyState==4)
	{
		if(objAjax.status==200)
		{
		  PopUpMsg(objAjax.responseXML);
		  //getAantalProducts();
		}
	} 
}

function calcPrijs(iProductNo, sProperties) {
  var aProp = sProperties.split("-");
  var propLangId, propValueId;
  
  var propLang, propValue, propValueObj;
  var iPrijs = parseFloat(document.getElementById('prijs' + iProductNo).innerHTML.replace(',','.'));
  
  for (var x=0;x<aProp.length;x++){
    propLangId = aProp[x] + "-" + iProductNo + "-lang";
    propValId = aProp[x] + "-" + iProductNo;
    
    if (document.getElementById(propLangId)) propLang = document.getElementById(propLangId).value;
    
    if (document.getElementById(propValId)) {        
      propValueObj = document.getElementById(propValId);
      iPrijs = iPrijs + parseFloat(propValueObj.options[propValueObj.selectedIndex].value.replace(',','.'));
    }    
    
  }      
  document.getElementById('prijstotaal' + iProductNo).innerHTML = formatCurrency(iPrijs.toString());
}

function HandleCart(iProductNo, iMode) {
  HandleCartInternal(iProductNo, iMode, '');
}

function HandleCartCustom(iProductNo, iMode, sProperties){
  HandleCartInternal(iProductNo, iMode, sProperties);
}

function HandleCartInternal(iProductNo, iMode, sOrderline){
  var imgCartImage = null;
  var sRequest = document.getElementById('urlroot').value + '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/winkelwagen/'; 
  var oAmount;
  var iAmount = 1;
  
  /*Now check wich mode we would like to use: 0=rent,1=purchase*/
  if(iMode == 1)
  {
    sRequest += 'addkoopproduct.aspx';
  } else {
    sRequest += 'addhuurproduct.aspx';
  }
  
  /*Function sends request to server to update shopcart*/
  if (iMode == 1)
  {
    oAmount = document.getElementById('txtPurchaseAmount' + iProductNo);
  } else {
    oAmount = document.getElementById('txtRentalAmount' + iProductNo);
  }
  
  if(oAmount){iAmount = oAmount.value;}
    
  if((IsNumeric(iAmount) == true) && (iAmount > 0))
  {    
    sRequest += '?productnr=' + iProductNo + '&aantal=' + iAmount + '&forajax=true&forxml=true&forshowproducts=true';
    
    if (sOrderline != ''){
      sRequest += '&orderline=' + sOrderline;
    }

    objAjax.open('GET', sRequest, true);
    objAjax.onreadystatechange = UpdateCart;
    objAjax.send(null);
    
    imgCartImage = document.getElementById('shoppingCartImage');    
    if (imgCartImage != null) imgCartImage.setAttribute('src', '/images/' + document.getElementById('domain').value + '/winkelwagen-full.gif');    
    
  } else if (IsNumeric(oAmount.value) == false) {
    alert(document.getElementById('notnumericmsg').value);  
  } else if (oAmount.value <= 0) {
    alert(document.getElementById('invalidnumber').value);
  }  
}


function UpdateCart()
{
  /*When request complete, ajax will call this function*/
  if(objAjax.readyState==4)
	{
		if(objAjax.status==200)
		{
		  PopUpMsg(objAjax.responseXML);
		  getAantalProducts();
		}
	} 
}

function writeStats()
{
  //als beide cookies bestaan, is het geen bot en is js enabled
  if ((document.cookie.indexOf("directshopbot") != -1) && (document.cookie.indexOf("jsenabled") != -1)){
      var language = document.getElementById("language").value;
      var domain = document.getElementById("domain").value;
      var referer = '';
      var sQueryString = window.location.search.substring(1);
      var sUrlSrc = String(window.location);
      
      height = screen.height;
      width = screen.width;
      color = screen.colorDepth;
      sQueryString =  sQueryString.replace('&', '_' );
      
      if(document.getElementById("referer")){referer = document.getElementById("referer").value;}
      
      //zorgen dat alleen het balangrijke deel uit de url word gejast
      sUrlSrc = sUrlSrc.replace('http://', '');
      sUrlSrc = sUrlSrc.substr(sUrlSrc.indexOf('/'), sUrlSrc.length)

      sRequestUrl = document.getElementById('urlroot').value + '/' + domain + '/' + language + '/stats.aspx?color=' + color + '&height=' + height + '&width=' + width + '&querystring=' + sQueryString + '&url=' + sUrlSrc + '&referer=' + referer + '&forajax=true';                      
      
      MyAjax.open('GET', sRequestUrl, true);
      MyAjax.onreadystatechange = handlestatresponse;
      MyAjax.send(null);
  }
  if (getCookie("jsenabled")){
      setCookie("jsenabled", "js");
  } 
}

function handlestatresponse()
{
  if(MyAjax.readyState==4)
	{
    if(MyAjax.status==200)
		{
      //Request succes!
		}
  }
}

function confirm(){
  if(objAjax3.readyState==4)
	{
		if(objAjax3.status==200)
		{
      alert('gelukt');
		}
  }

}


function trim(sInput)
{
  return sInput.replace(' ', '');
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}

function makeNumeric(obj) {
  var ValidChars = "0123456789";
  var sNew = "";
  var Char;
  var sText = obj.value;

  for (i = 0; i < sText.length; i++) {
  Char = sText.charAt(i);
    if (ValidChars.indexOf(Char) != -1) {
      sNew += sText.charAt(i);
    }
  }
  obj.value = sNew;
}

function getAantalProducts(){
	var sUrl
  var sDomainLanguage


  sUrl = "" + window.location;
  sUrl = sUrl.substr(7, sUrl.length - 7);
  sUrl = sUrl.substr(sUrl.indexOf("/"), (sUrl.length - sUrl.indexOf("/")));
           
  sDomainLanguage = sUrl.substr(0, 7);
 
                 
  sRequestUrl = sDomainLanguage + 'winkelwagen/getaantalproducts.aspx' + '?forajax=true';
               
  objAjax.open('GET', sRequestUrl.replace('%26', '&'), true);
  objAjax.onreadystatechange = writeAantalProducts;
  objAjax.send(null);
                
}

function DoWriteAantalProducts(iAantal)
{
   var orgineel;
	 var links;
   var rechts;
	 var nieuw;
	 var midden;

	 orgineel = document.getElementById('shopcartaantal');
	 
	 if (orgineel != null){
  	 nieuw = orgineel.innerHTML;
     links = nieuw.substr(0, nieuw.indexOf("(") + 1);
  	 rechts = nieuw.substr(nieuw.indexOf("Item"), nieuw.length);
  
     if (IsNumeric(iAantal) == true) {
       midden = iAantal
     }else{
       midden = '0'
     }
   }
             
   orgineel.innerHTML = links + midden + ' ' + rechts;
}

function writeAantalProducts(){
  if(objAjax.readyState==4)
	{
		if(objAjax.status==200)
		{
			 DoWriteAantalProducts(objAjax.responseText);
        }
                  
    }  
      
}

formElements = function(formId, type){
  var formObject = document.getElementById(formId);    
  if (!formObject) return;
  
  var ele = formObject.getElementsByTagName(type);    
  if (ele) return ele;    
}

function MergeArray(aArray1, iStart1, aArray2, iStart2)
{
  var aResult = new Array();
  
  for(var i=iStart1;i<aArray1.length;i++)
  {
    aResult.push(aArray1[i]);
  }
  
  for(var i=iStart2;i<aArray2.length;i++)
  {
    aResult.push(aArray2[i]);
  }
  
  return aResult;
}


function ShowShopCart(sTargetTr)
{
  document.location = document.getElementById('urlroot').value + '/' + document.getElementById('domain').value + '/' + document.getElementById('language').value + '/' + sTargetTr + '.aspx';
}

function UpdateCrumbCounter()
{
  if(document.getElementById('crumbcounter')){document.getElementById('crumbcounter').innerHTML = '(' + document.getElementById('productcount').value + ')'};
}

document.getElementsByClassName = function (needle)
{
    var s, i, r = [], l = 0, e;
    var re = new RegExp('(^|\\s)' + needle + '(\\s|$)');


      if (navigator.userAgent.indexOf('Opera') > -1)
      {
          s = [document.documentElement || document.body], i = 0;

          do
          {
              e = s[i];

              while (e)
              {
                  if (e.nodeType == 1)
                  {
                      if (e.className && re.test(e.className)) r[l++] = e;

                      s[i++] = e.firstChild;
                  }
                  e = e.nextSibling;
              }
          }
          while (i--);
      }
      else
      {
          s = document.getElementsByTagName('*'), i = s.length;

          while (i--)
          {
	          try{
              e = s[i];
              if (e.className && re.test(e.className)) r[l++] = e;
	          }catch(e){
	          }
          }
       }

    return r;
}

function openWindow(url, title, prop){
  window.open(url, title, prop);
}
