﻿var sBaseURL = '/inc/helper.asp?a=';
var sBackend = '/backend/info.asp';
var cOrderTotal = 0;

String.prototype.trim = function() {
  		// Use a regular expression to replace leading and trailing spaces with the empty string
  		return this.replace(/(^\s*)|(\s*$)/g, '');
}

function bustCache() {
	return parseInt(Math.random()*99999999);
}

function retrieveURL(sUrl) {
	var oReq;
	sUrl += '&bustcache=' + bustCache();
	if (window.XMLHttpRequest) { // Non-IE browsers
		oReq = new XMLHttpRequest();
		try {
			oReq.open("GET", sUrl, false);
		} catch (e) {
		}
		oReq.send(null);
		return oReq.responseText;
	} else if (window.ActiveXObject) { // IE
		oReq = new ActiveXObject("Microsoft.XMLHTTP");
		if (oReq) {
			oReq.open("GET", sUrl, false);
			oReq.send();
			return oReq.responseText;
		}
	}
	return null;
}

function AJAXTest() {
	var sAJAXTest = retrieveURL(sBaseURL + 'ajaxtest');
	var sBackendTest = retrieveURL(sBackend + '?act=ajaxtest');
	return ((sAJAXTest.length>0) ? sAJAXTest : 'AJAX functionality failure') + "; " + ((sBackendTest.length>0) ? sBackendTest : 'Backend connectivity failure');
}

function submitConfigurator() {
	var sURL = '';
	var sType = '';
	sURL += '/' + document.getElementById('hdConfLNID').value + '/' + document.getElementById('sag').value;
//	sURL += '/' + document.getElementById('hcat').value;
	sURL += addPath(document.getElementById('sbrand').value);
	sURL += addPath(document.getElementById('smodel').value);

	document.getElementById('sag').disabled=true;
	document.getElementById('sbrand').disabled=true;
	document.getElementById('smodel').disabled=true;
	var oSel,i;
	i=0;
	do {
		i++;
		oSel = document.getElementById('stype' + i);
		if (oSel) {
			sURL += addPath(oSel.value)
			oSel.disabled=true;
		}
	} while(oSel)
	window.location = sURL + '.html';
}

function addPath(sVal) {
	return ((sVal.length>0) ? '/' + sVal : '');
}

function submitSearch() {
	var oCmd = document.getElementById('cmdSearch');
	var oTxt = document.forms['frmSearch'].sq;
	var oLN = document.getElementById('sfln');
	if ((oTxt.value.toLowerCase().indexOf('trefwoord...')>=0) || (oTxt.value.toLowerCase().indexOf('keyword...')>=0)) {
		if(oLN.value=='nl') {
			alert('Voer één of meerdere trefwoorden in');
		} else {
			alert('Enter one or more keywords');
		}
		oTxt.value='';
		oTxt.focus();
		return false;
	}
	var oST = document.forms['frmSearch'].st;
	var bOK = false;
	for (var t=0;t<oST.length;t++) {
		bOK = bOK || oST[t].checked;
	}
	if (!bOK) {
		if(oLN.value=='nl') {
			alert('Kies een zoekoptie (partnummer/model/artikelnummer)');
		} else {
			alert('Choose an option (partnumber/model/articlenumber)');
		}
		return false;
	}
	oCmd.disabled=true;
	return true;
}

function submitForm(oBtn, strForm) {
	oBtn.disabled=true;
	window.setTimeout('document.forms[\'frm' + strForm + '\'].submit()',10);	//the setTimeOut is used as workaround for some ancient MSIE5.0 bug
	return false;
}

function lookupZip(sZip, sNr, sStreet, sCity, sPhone) {
	var oZip = document.getElementById(sZip);
	var oNr = document.getElementById(sNr);
	if ((oZip) && (oNr)) {
		if ((oZip.value.length>=6) && (oNr.value.length>0)) {
			try {
				sRes = retrieveURL(sBaseURL + 'lookupzip&z=' + oZip.value + '&n=' + oNr.value);
				var arrData = sRes.split('|');
				setText(sStreet,arrData[0]);
				setText(sCity,arrData[1]);
				if (document.getElementById(sPhone).value.length==0) setText(sPhone, (arrData[2].length>0) ? '(' + arrData[2] + ')' : '');
			} catch (e) {
				//something went wrong. No need to alert the user, just let them enter the text themselves
			}
		}
	}
	return true;
}

function checkVAT(sVatNr, sCnt) {
	return true;	//Temporarily disabled until http://ec.europa.eu/taxation_customs/vies/api/checkVatPort can guarantee a decent uptime...
	
	var oCnt = document.getElementById(sCnt);
	var oVat = document.getElementById(sVatNr);
	var oImg = document.getElementById('imVATCheck');
	var iRes = 0;
	
	if ((oCnt) && (oVat) && (oImg)) {
		try {
			iRes = parseInt(retrieveURL(sBaseURL + 'checkvat&v=' + oVat.value + '&c=' + oCnt.value));
		} catch (e) {
			//something went wrong. No need to alert the user, just let them enter the text themselves
		}
	}

	switch(iRes) {
	 case 0:
		oImg.src = '/img/vat/unknown.gif';
		break;
	 case 1:
		oImg.src = '/img/vat/ok.gif';
		break;
	 default:
		oImg.src = '/img/vat/err.gif';
	}
	return true;
}

function formatPhone(sPhone) {
	var oPhone = document.getElementById(sPhone);
	if (oPhone) {
		try {
			sRes = retrieveURL(sBaseURL + 'formatphone&p=' + oPhone.value);
			if(sRes.length>0) setText(sPhone,sRes);
		} catch (e) {
				//something went wrong. No need to alert the user, just let them enter the text themselves
		}
	}
}

function setText(sID, sVal) {
	if (sID.length>0) {
		var oTxt = document.getElementById(sID);
		if (oTxt) oTxt.value = sVal;
	}
}

function setInnerHTML(oObj, sHTML) {
	if (oObj) oObj.innerHTML = sHTML;
}

function expandRows(sID) {
	var t=0;
	var oTR = document.getElementById(sID + t)
	while (oTR) {
		oTR.style.display = (oTR.style.display=='none') ? '' : 'none';
		t++;
		oTR = document.getElementById(sID + t)
	}
}

function toggleRow(sID, bShow) {
	var oTR = document.getElementById(sID);
	if (oTR) oTR.style.display = (bShow) ? '' : 'none';
}

function alertCookies() {
	alert('Uw browser ondersteunt geen cookies of heeft het accepteren van cookies uitgeschakeld.\n\nOm verder te winkelen, vragen wij u om de acceptatie van cookies te activeren in uw browser.');
}

function startOrder(sLNID, sBase) {
	if (!cookiesEnabled()) {
		alertCookies();
	} else {
		var oFrm = document.getElementById('frmCart');
		oFrm.action = sBase + 'order/?step=1';
		oFrm.submit();
	}
	return false;
}

function getRadioValue(oElement, lDefault) {
	var lRet = lDefault;
	for (var index = 0; index < oElement.length; index++) { 
    	if (oElement[index].checked == true) { 
			lRet = oElement[index].value;
			break;
		}
	}
	return lRet;
}

function getOrderStatus(sOrdId, sCID) {
	var sText;
	
	oDV = document.getElementById('dvLiveOrderStatus');
	if (oDV) {
		try {
			var sRes = retrieveURL(sBackend + '?act=orderstatus&ordid=' + sOrdId + '&cid=' + sCID);
			setInnerHTML(oDV, sRes);
		} catch (e) {
			setInnerHTML(oDV, 'Fout bij ophalen orderstatus. Probeer het later nog eens...');
		}
	}
}

function retrieveDiscount(sCustID, sDealCode) {
	try {
		if ((sCustID.length>0) && (sDealCode.length>0)) {
			var iRes = parseInt(retrieveURL(sBackend + '?act=getResellerDiscount&rdCustID=' + sCustID + '&rdDealCode=' + sDealCode));
			return isNaN(iRes) ? -1 : iRes;
		} else return 0;
	} catch (e) {
		return -1;
	}
}

function getResellerDiscount(sCustID, sDealCode) {
	var oCustID = document.getElementById(sCustID);
	var oDealCode = document.getElementById(sDealCode);
	try {
		var iRes = retrieveDiscount(oCustID.value,oDealCode.value);
		setText('hddiscperc',0);
		var oTD = document.getElementById('tdDiscount');
		if (oTD) {
			if (iRes>0) {
				setInnerHTML(oTD, 'Uw reseller korting: ' + iRes + '%');
				setText('hddiscperc',iRes);
			} else if (iRes<0) {
				setInnerHTML(oTD, 'Reseller informatie momenteel<br>niet beschikbaar.');
			} else {
				setInnerHTML(oTD, '');
			}
		}
	} catch (e) {

	}
}

function cookiesEnabled() {
	var tmpcookie = new Date();
	chkcookie = (tmpcookie.getTime() + '');
	document.cookie = 'chkcookie=' + chkcookie + '; path=/';
	return (document.cookie.indexOf(chkcookie,0) >= 0);
}


//toFixed prototype for IE<5.5
if (typeof(Number)!='undefined'&&typeof(Number.prototype)!='undefined'){
	if (typeof(Number.prototype.toFixed)=='undefined'){
		function Number_toFixed(d) {
			var n = this;
			d = d || 2;
			var f = Math.pow(10, d);
			n = Math.round(n * f) / f;
			n += Math.pow(10, - (d + 1));
			n += '';
			return d == 0 ? n.substring(0, n.indexOf('.')) : n.substring(0, n.indexOf('.') + d + 1);
		}
			
		Number.prototype.toFixed = Number_toFixed;
	}
}

function calcDiscount(cAmount, cDisc) {
	return cAmount - ((cAmount/100)*cDisc);
}

function roundAmount(cAmount, cDisc) {
	var cPrice = calcDiscount(cAmount, cDisc);
	return cPrice.toFixed(2).replace('.',',');
}

function showShipCost(sCur, cCost) {
	var oShipCost = document.getElementById('PShipCost');
	setInnerHTML(oShipCost,sCur + ' ' + roundAmount(cCost, 0));
}

function printPrice(sCur, cSubTotal, cTotal, cVAT) {
	var oSubTotal = document.getElementById('PSubTotal');
	var oTotal = document.getElementById('PTotal');
	var oDisc = document.getElementById('PDisc');
	var cDisc = 0;
	if ((document.getElementById('rdCustID')) && (document.getElementById('txtRDDealCode'))) {
		cDisc = retrieveDiscount(sCustID, sDealCode);
		var oOrd = document.getElementById('hddiscperc');
		if (oOrd) setText('hddiscperc',cDisc);
	} else {
		var tDisc = document.getElementById('hddiscperc');
		if (tDisc) cDisc = parseInt(tDisc.value);
	}

	if (cDisc<0) cDisc = 0;
	toggleRow('trDisc',cDisc>0);
	setInnerHTML(oDisc,cDisc + '%');
	setInnerHTML(oSubTotal,sCur + ' ' + roundAmount(cSubTotal, 0));

	cOrderTotal = calcDiscount(cTotal, cDisc);
	if (cOrderTotal<0) cOrderTotal=0;
	setInnerHTML(oTotal, sCur + ' ' + roundAmount(cOrderTotal, 0));
	
	showOrderCost(sCur, cVAT);
}

function getPaymentCost(oRadio, sHid) {
	var iAmount = 0;
	var iSel = getRadioValue(oRadio,-1);
	if (iSel>=0) {
		var oHid = document.getElementById(sHid + iSel);
		if (oHid) iAmount = parseInt(oHid.value)/100;
	}
	return iAmount;
}

function showOrderCost(sCur, cVAT) {
	var cPC = getPaymentCost(document.getElementsByName('rdPMID'), 'hPCost');
	var cSC = getPaymentCost(document.getElementsByName('rdSMID'), 'hSCost');
	var cTC = cOrderTotal + cPC + cSC;

	var oPC = document.getElementById('PPaymCost');
	var oSC = document.getElementById('PShipCost');
	var oTC = document.getElementById('PTotal');
	var oTCe = document.getElementById('PTotal_ex');

	setInnerHTML(oPC,(cPC==0 ? 'Gratis' : sCur + ' ' + roundAmount(cPC,0)));
	setInnerHTML(oSC,(cSC==0 ? 'Gratis' : sCur + ' ' + roundAmount(cSC,0)));
	setInnerHTML(oTC,sCur + ' ' + roundAmount(cTC,0));
	setInnerHTML(oTCe,sCur + ' ' + roundAmount(cTC/(1 + (cVAT/100)),0));
}

function writePrice(sAmount) {
	document.write(sAmount);	//Use script to hide price for Google results
}

function disableCatFilter(lCat) {
	window.location.href = window.location.href.replace('&cat=' + lCat,'');
}

function printDetails(sPID, sLNID) {
	var oWin = window.open('/print.asp?ln=' + sLNID + '&prod=' + sPID,'','width=590,height=' + screen.availHeight + ',top=0,left=' + ((screen.availWidth-590)/2) + ',toolbar=1');
	if (oWin == null) {
		switch(sLNID) {
			case 'nl':
				alert('Het printvenster kan niet geopend worden. Waarschijnlijk wordt dit veroorzaakt door een pop-up blocker. Schakel de pop-up blocker (tijdelijk) uit en probeer het opnieuw.');
				break;
			default:
				alert('Could not open the print window. This is probably caused by a pop-up blocker. Disable the pop-up blocker (temporarily) and try again.');
				break;
		}
	}
	return false;
}

function showHideElement(sID, bShow) {
	var oDV = document.getElementById(sID);
	if (oDV) oDV.style.display = bShow ? 'block' : 'none';
}

function addToCart(sLang, sProd, iQuant, bQuick) {
	if (!cookiesEnabled()) {
		alertCookies();
	} else {
		window.location.href = '/' + sLang + '/action/addprod' + (bQuick ? 'q' : '') + '.html?artc=' + sProd + '&quant=' + iQuant + '&r=' + bustCache();
	}
	return false;
}

function submitOgone() {
	window.setTimeout('sendOgone()',500);
}

function sendOgone() {
	var oFrm = document.getElementById('frmOgone');
	if (oFrm) oFrm.submit();
	return false;
}

function submitAdyen() {
	window.setTimeout('sendAdyen()',500);
}

function sendAdyen() {
	var oFrm = document.getElementById('frmAdyen');
	if (oFrm) oFrm.submit();
	return false;
}

function showZoom(bShow) {
	var oDV = document.getElementById('dvZoom');
	if (oDV) {
		oDV.style.display = bShow ? 'block' : 'none';
	}
	return false;
}

function openWin(url) {
	var pu = window.open(url);
	pu.focus();
	return false;
}