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);
    
    //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 InitSifr()
{
  if(typeof sIFR == "function"){
      sIFR();
  };
}

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 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)
{
  if (window.DOMParser) {
    // Mozilla ondersteunt het DOMParser object
    var parser = new DOMParser(); 
    xmlobject = parser.parseFromString(sXmlInput, "text/xml");
     
  } else if (window.ActiveXObject){ 

    // Maar IE weer niet, daarvoor hebben we een ActiveXObject
    xmlobject = new ActiveXObject("Microsoft.XMLDOM"); 
    xmlobject.async = false; 

    xmlobject.loadXML(sXmlInput);
  } 	 
  
  return xmlobject;
}

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 HandleCart(iProductNo, iMode)
{
  var imgCartImage = null;
  var sRequest = '/' + 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';
    objAjax.open('GET', sRequest, true);
    objAjax.onreadystatechange = UpdateCart;
    objAjax.send(null);    
    
    imgCartImage = document.getElementById('shoppingCartImage');    
    if (imgCartImage != null) imgCartImage.setAttribute('src', '/images/kt-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()
{
  var language = document.getElementById("language").value;
  var domain = document.getElementById("domain").value;
  var sQueryString = window.location.search.substring(1);
  var sUrlSrc = String(window.location);
  
  height = screen.height;
  width = screen.width;
  color = screen.colorDepth;
  sQueryString =  sQueryString.replace('&', '_' );

  //zorgen dat alleen het balangrijke deel uit de url word gejast
  sUrlSrc = sUrlSrc.replace('http://', '');
  sUrlSrc = sUrlSrc.substr(sUrlSrc.indexOf('/'), sUrlSrc.length)

  sRequestUrl = '/' + domain + '/' + language + '/stats.aspx?color=' + color + '&height=' + height + '&width=' + width + '&querystring=' + sQueryString + '&url=' + sUrlSrc + '&forajax=true';                      
  
  //alert(sRequestUrl);
  
  MyAjax.open('GET', sRequestUrl, true);
  MyAjax.onreadystatechange = handlestatresponse;
  MyAjax.send(null);
}

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 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 PopUpMsg(sXML)
{
  var sImage = "";

  oMsg = document.getElementById('msgdiv');
  oFocus = document.getElementById('focusdiv');
  oMsg.style.display = 'inline';
  oFocus.style.display = 'block';
  oFocus.style.height = document.getElementById('page').offsetHeight + 'px';
  
  /*Popup text:*/
  try {
    document.getElementById('popupmaintitle').innerHTML = sXML.getElementsByTagName("popuptitle")[0].firstChild.data;
    document.getElementById('popupproducttitle').innerHTML = sXML.getElementsByTagName("brand")[0].firstChild.data;
    document.getElementById('popupshortdesc').innerHTML = sXML.getElementsByTagName("shortdesc")[0].firstChild.data;
    document.getElementById('popupamount').innerHTML = sXML.getElementsByTagName("number")[0].firstChild.data + sXML.getElementsByTagName("amount")[0].firstChild.data;
    document.getElementById('popupproductimg').src = 'http://www.computerverhuur.nl/nl/pictures/' + sXML.getElementsByTagName("ImgPartner")[0].firstChild.data + '/90x90/' + sXML.getElementsByTagName("newimage")[0].firstChild.data;  

    /*Determine image:*/
    if(sXML.getElementsByTagName("tender")[0].firstChild.data == 1)
    {
      sImgName = 'naarofferte';
    } else {
      sImgName = 'naarwinkelwagen';
    }
    
    /*Popup links:*/
    document.getElementById('popupshopcart').innerHTML = '<a href="javascript:ShowShopCart(\'' + sXML.getElementsByTagName("target")[0].firstChild.data + '\')">' + '<img src="/Images/Design/' + sImgName + '.gif" border="0" />' + '</a>';
    document.getElementById('popupcontinue').innerHTML = '<a href="javascript:HidePopUpMsg()">' + '<img src="/Images/Design/verderwinkelen.gif" border="0" />' + '</a>';    
  } catch (ex) {
    //Nothing
  }
}

function HidePopUpMsg()
{
  oMsg = document.getElementById('msgdiv');
  document.getElementById('focusdiv').style.display = 'none';
  oMsg.style.display = 'none';
}

function ShowShopCart(sTargetTr)
{
  document.location = '/' + 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);
}
