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


function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, prec = decimals;
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
    if (s.indexOf(dec) === -1 && prec > 1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}

function checkCoupon(val){
	if(val == ""){
		document.getElementById('coupon').style.border = "1px solid #A5ACB2";
	}else{
		createXMLHttpRequest();
		var url = "/includes/js2php.php?timeStamp=" + new Date().getTime();
		var queryString = "eml="+val+"&opt=checkCoupon";
		xmlHttp.open("POST", url, true);
		xmlHttp.onreadystatechange = returnCoupon;
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
		xmlHttp.send(queryString);
	}
}

function returnCoupon() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
//			parseResults();
			var res = xmlHttp.responseText.split("|");
			if(res[0] == "valid"){
//				document.getElementById('countr').style.display = "";
//				document.getElementById('countr2').style.display = "";
//				document.getElementById('couponcode').innerHTML = res[1];
//				document.getElementById('discounamount').innerHTML = number_format(res[2],2,',','.');
//				document.getElementById('coupon').readOnly = "readOnly";
//				
//				var subtot = document.getElementById('totalamount').value;
//				var newtot = (subtot-res[2]);
//				document.getElementById('totalamountdisc').value = newtot;
//				document.getElementById('disc').value = res[2];
//				document.getElementById('totaalnacoup').innerHTML = number_format(newtot,2,',','.');/

//				document.getElementById('couponresponse').style.border = "1px solid green";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De kortingscode is geaccepeerd.";
				window.location="/Webwinkel/winkelwagen/";
			}
			if(res[0] == "codeaged"){
//				document.getElementById('countr').style.display = "none";
//				document.getElementById('countr2').style.display = "none";
//				document.getElementById('couponresponse').style.border = "2px solid red";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De ingevulde kortingscode is vervallen.";
				document.getElementById('coupon').style.border = "2px solid red";
				alert("De ingevulde kortingscode is vervallen.");
			}
			if(res[0] == "codenotyetactive"){
//				document.getElementById('countr').style.display = "none";
//				document.getElementById('countr2').style.display = "none";
//				document.getElementById('couponresponse').style.border = "2px solid red";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De ingevulde kortingscode is not niet geldig.";
				document.getElementById('coupon').style.border = "2px solid red";
				alert("De ingevulde kortingscode is not niet geldig.");
			}
			if(res[0] == "invalidproduct"){
//				document.getElementById('countr').style.display = "none";
//				document.getElementById('countr2').style.display = "none";
//				document.getElementById('couponresponse').style.border = "2px solid red";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De ingevulde kortingscode is alleen geldig met een bepaald product, dit product zit momenteel niet in uw bestelling.";
				document.getElementById('coupon').style.border = "2px solid red";
				alert("De ingevulde kortingscode is alleen geldig met een bepaald product, dit product zit momenteel niet in uw bestelling.");
			}
			if(res[0] == "invalidcoupon"){
//				document.getElementById('countr').style.display = "none";
//				document.getElementById('countr2').style.display = "none";
//				document.getElementById('couponresponse').style.border = "2px solid red";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De ingevulde kortingscode bestaat niet.";
				document.getElementById('coupon').style.border = "2px solid red";
				alert("De ingevulde kortingscode bestaat niet.");
			}
			if(res[0] == "notenough"){
//				document.getElementById('countr').style.display = "none";
//				document.getElementById('countr2').style.display = "none";
//				document.getElementById('couponresponse').style.border = "2px solid red";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De ingevulde kortingscode is alleen geldig boven een bepaald bedrag.";
				document.getElementById('coupon').style.border = "2px solid red";
				alert("De ingevulde kortingscode is alleen geldig boven een bepaald bedrag.");
			}
			if(res[0] == "tomuch"){
//				document.getElementById('countr').style.display = "none";
//				document.getElementById('countr2').style.display = "none";
//				document.getElementById('couponresponse').style.border = "2px solid red";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De ingevulde kortingscode is alleen geldig onder een bepaald bedrag.";
				document.getElementById('coupon').style.border = "2px solid red";
				alert("De ingevulde kortingscode is alleen geldig onder een bepaald bedrag.");
			}
			if(res[0] == "invalidCat"){
//				document.getElementById('countr').style.display = "none";
//				document.getElementById('countr2').style.display = "none";
//				document.getElementById('couponresponse').style.border = "2px solid red";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De ingevulde kortingscode is alleen geldig onder een bepaald bedrag.";
				document.getElementById('coupon').style.border = "2px solid red";
				alert("De code is alleen geldig voor artikelen uit een bepaalde categorie.");
			}
			if(res[0] == "notinrange"){
//				document.getElementById('countr').style.display = "none";
//				document.getElementById('countr2').style.display = "none";
//				document.getElementById('couponresponse').style.border = "2px solid red";
//				document.getElementById('couponresponse').style.padding = "3px 5px";
//				document.getElementById('couponresponse').style.backgroundColor = "#FFFFCC";
//				document.getElementById('couponresponse').innerHTML = "<br />De ingevulde kortingscode is alleen geldig tussen een bepaald bedrag.";
				document.getElementById('coupon').style.border = "2px solid red";
				alert("De ingevulde kortingscode is alleen geldig tussen een bepaald bedrag.");
			}
        }
    }
}


function checkdupeml(eml){
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(eml)){
		createXMLHttpRequest();
		var url = "/includes/js2php.php?timeStamp=" + new Date().getTime();
		var queryString = "eml="+eml+"&opt=checkDupEML";
		xmlHttp.open("POST", url, true);
		xmlHttp.onreadystatechange = finalizeEMLCheck;
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
		xmlHttp.send(queryString);
		
		document.getElementById('email').style.border = '1px solid #a5acb2';
	}else{
		document.getElementById('email').style.border = '2px solid #990000';
		document.getElementById('emlchk').value = "false";
	}
}

function finalizeEMLCheck() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
//			parseResults();
			var tmp = trim(xmlHttp.responseText);
			var response = tmp.split("|");
			if(response[0] == "checkDupEML"){
				if(trim(response[1]) == "dup"){
					alert("Het door u opgegeven e-mail adres is al ingebruik.");
					document.getElementById('email').style.border = '2px solid #990000';
					document.getElementById('emlchk').value = "duplicate";
				}else{
					document.getElementById('email').style.border = '1px solid #a5acb2';
					document.getElementById('emlchk').value = "good";
				}
			}
        }
    }
}


function startFormcheck(frmnm){
	var eml = document.getElementById('email').value;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(eml)){
		createXMLHttpRequest();
		var url = "/includes/js2php.php?timeStamp=" + new Date().getTime();
		var queryString = "eml="+eml+"&opt=checkDupEML";
		xmlHttp.open("POST", url, true);
		xmlHttp.onreadystatechange = finishEmailCheck;
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
		xmlHttp.send(queryString);
		
		document.getElementById('email').style.border = '1px solid #a5acb2';
	}else{
		document.getElementById('email').style.border = '2px solid #990000';
		document.getElementById('emlchk').value = "false";
	}
}

function finishEmailCheck(){
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
			var tmp = trim(xmlHttp.responseText);
			var response = tmp.split("|");
			if(response[0] == "checkDupEML"){
				if(trim(response[1]) == "dup"){
					alert("Het door u opgegeven e-mail adres is al ingebruik.");
					document.getElementById('email').style.border = '2px solid #990000';
					document.getElementById('emlchk').value = "duplicate";
				}else{
					document.getElementById('email').style.border = '1px solid #a5acb2';
					document.getElementById('emlchk').value = "good";
					checkCreateAccountform();
				}
			}
        }
    }
}

function checkCreateAccountform(){
	var errors = "";
	var errs = new Array();
	var noerrs = new Array();
	
	if(document.getElementById('address').value == ""){errs[3] = 'address'; errors = 'array';}else{noerrs[3] = 'address'; }
	if(document.getElementById('zip').value == ""){errs[4] = 'zip'; errors = 'array';}else{noerrs[4] = 'zip'; }
	if(document.getElementById('city').value == ""){errs[5] = 'city'; errors = 'array';}else{noerrs[5] = 'city'; }
	if(document.getElementById('firstname').value == ""){errs[6] = 'firstname'; errors = 'array';}else{noerrs[6] = 'firstname'; }
	if(document.getElementById('lastname').value == ""){errs[7] = 'lastname'; errors = 'array';}else{noerrs[7] = 'lastname'; }
	
	
	var str=document.getElementById('email').value;
	var emlchk=document.getElementById('emlchk').value;
	
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str) && emlchk == "good"){
		noerrs[8] = 'email';
		testresults=true;
	}else{
		errs[8] = 'email';
		errors = 'array';
		testresults=false;
	}
	if(document.getElementById('phone').value == ""){errs[9] = 'phone'; errors = 'array';}else{noerrs[9] = 'phone'; }
	
	var saveinfo = document.getElementById('saveinfo').checked;
	if(saveinfo == true || saveinfo == 'checked'){
		if(document.getElementById('passwd1').value != document.getElementById('passwd2').value){
			errs[10] = 'passwd1'; 
			errs[11] = 'passwd2'; 
			errors = 'array';
		}else{
			if(document.getElementById('passwd1').value == ""){
				errs[10] = 'passwd1'; 
				errs[11] = 'passwd2'; 
				errors = 'array';
			}else{
				noerrs[10] = 'passwd1';
				noerrs[11] = 'passwd2';
			}
		}
	}else{
		noerrs[10] = 'passwd1';
		noerrs[11] = 'passwd2';
	}
	
	if(document.getElementById('dhr').checked == true || document.getElementById('dhr').checked == 'checked' || document.getElementById('mevr').checked == true || document.getElementById('mevr').checked == 'checked' ){
		noerrs[12] = 'aanhbdr';
	}else{
		errs[12] = 'aanhbdr';
		errors = 'array';
	}
	

	
//	if(document.getElementById('acav').value == ""){errs[10] = 'acav'; errors = 'array';}else{noerrs[10] = 'acav'; }
	var t = document.getElementById('acav').getAttribute('checked');
	var savet = document.getElementById('acav').value;
	if(errors == 'array'){
		for(var i=0; i<=12; i++){
			if(errs[i]){
			if(errs[i] != ""){
					document.getElementById(errs[i]).style.border = '2px solid #990000';
				}else{
					document.getElementById(errs[i]).style.border = '1px solid #a5acb2';
				}
			}
			if(noerrs[i]){
				document.getElementById(noerrs[i]).style.border = '1px solid #a5acb2';
			}
		}
		alert('Niet alle velden zijn juist ingevult. Vul a.u.b. alle rode velden in.');
	}else{
		for(var i=0; i<=12; i++){
			if(errs[i]){
			if(errs[i] != ""){
					document.getElementById(errs[i]).style.border = '2px solid #990000';
				}else{
					document.getElementById(errs[i]).style.border = '1px solid #a5acb2';
				}
			}
			if(noerrs[i]){
				document.getElementById(noerrs[i]).style.border = '1px solid #a5acb2';
			}
		}
		if(t == true || t == 'checked' || savet == 'save'){
			document.createNewAccount.submit();		
			
		}else{
			alert('Om een account te maken dient u akkoord te gaan met onze algemene voorwaarden.');	
		}
	}
}
function activateav(){
	document.getElementById('setav').innerHTML = '<input type="checkbox" name="acav" id="acav" class="checkbox" checked=\"checked\" style=\"width:auto; float:left; clear:left;\" value=\"1\" /><label class="checkbox-label" for="news" style="width:350px; float:left;">Ik ga akkoord met de algemene voorwaarden</label><br />';	
}
function checkformav(){
//	var t = document.getElementById('acav').getAttribute('checked');
//		if(t == true || t == 'checked'){
			document.submitfinish.submit();			
//		}else{
//			alert('Om een bestelling te plaatsen dient u akkoord te gaan met onze algemene voorwaarden.');
//		}
}

function checksavepass(sbmtfrm){
	var cpass = document.getElementById('cpass').value;
	var npass1 = document.getElementById('npass1').value;
	var npass2 = document.getElementById('npass2').value;
	if(npass1 != npass2){
		alert('De nieuwe wachtwoorden komen niet overeen.');
	}else{
		sbmtfrm.submit();
	}
}
function isset(arguments){
    var a=arguments; 
	var l=a.length; 
	var i=0;
    if (l==0) { 
        throw new Error('Empty isset'); 
    }
    
    while (i!=l) {
        if (typeof(a[i])=='undefined' || a[i]===null) { 
            return false; 
        } else { 
            i++; 
        }
    }
    return true;
}

function numbersonly(e){
	var unicode=e.charCode? e.charCode : e.keyCode
	if (unicode!=8 && unicode!=9 && unicode!=13 && unicode!=37 && unicode!=39){ 	
	 	if (unicode<48||unicode>57) { 	
			return false 
		}	
	}
}
function recalculate(id,pps,cval,btw,am,type){
    createXMLHttpRequest();
    var url = "/includes/jstophp.php?timeStamp=" + new Date().getTime();
    var queryString = "id="+id+"&pps="+pps+"&cval="+cval+"&btw="+btw+"&am="+am+"&type="+type;
    xmlHttp.open("POST", url, true);
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
    xmlHttp.send(queryString);
}

function handleStateChange() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
//			parseResults();
			var response = xmlHttp.responseText.split("|");
//			alert(xmlHttp.responseText);
		//	alert(response[14]);
			document.getElementById('res'+trim(response[0])).innerHTML = response[2];
			document.getElementById('totaal').innerHTML = response[6];
			document.getElementById('vzk').innerHTML = response[11];
			document.getElementById('coupon_span').innerHTML = response[14];
			document.getElementById('btw'+trim(response[0])).innerHTML = response[1];
			document.getElementById('subtotaal').innerHTML = response[3];
			document.getElementById('vzk2').innerHTML = response[12];
			document.getElementById('btw6').innerHTML = response[4];
			document.getElementById('btw19').innerHTML = response[5];
        }
    }
}

function parseResults() {
	var responseDiv = document.getElementById("testdiv");
    if(responseDiv.hasChildNodes()) {
		responseDiv.removeChild(responseDiv.childNodes[0]);
	}
	document.getElementById('testdiv').innerHTML = xmlHttp.responseText;
}
function trim(value) {
	value = value.replace(/^\s+/,'');
	value = value.replace(/\s+$/,'');
	return value;
}

function checkdel(id,art,type){
	if(type == "cart"){
		var answer = confirm("Weet u zeker dat u dit artikel uit de winkelwagen wilt verwijderen?");
		if (answer){
			window.location = "?delfromcart="+id+"&del="+art;
		}
	}else{
		var answer = confirm("Weet u zeker dat u dit artikel uit de boodschappenlijst wilt verwijderen?");
		if (answer){
			window.location = "?delfromcart2="+id+"&del="+art;
		}
	}
}

function changeDeliv(t,subtotal,total,vzk,vzktot){
	if(t == "verzenden"){
		if(parseInt(subtotal) <= vzktot){
			var tot = parseInt(total) + vzk;
			document.getElementById('vzk').innerHTML = number_format(vzk,2,',','.');

			var tmp = total.split(".");
			if(tmp[1]){
				if(tmp[1].length==0){
					document.getElementById('totaal').innerHTML = number_format(total,2,',','.')+",00";
				}else if(tmp[1].length==1){
					document.getElementById('totaal').innerHTML = number_format(total,2,',','.')+"0";
				}
			}else{
				document.getElementById('totaal').innerHTML = number_format(total,2,',','.');
			}
	

		document.getElementById('totaal').innerHTML = number_format(total,2,',','.');


			document.getElementById('totalamount').value = total;
			document.getElementById('vzkinp').value = vzk;
		}else{
			var tot = parseInt(total) - vzk;
			document.getElementById('vzk').innerHTML = "0,00";
			document.getElementById('totaal').innerHTML = number_format(subtotal,2,',','.');
			document.getElementById('totalamount').value = subtotal;
			document.getElementById('vzkinp').value = "0";
		}
	}
	if(t == "afhalen"){
		var tot = parseInt(total) - vzk;
		document.getElementById('vzk').innerHTML = "0,00";
		document.getElementById('totaal').innerHTML = number_format(subtotal,2,',','.');
		var tmp = subtotal.split(".");
		if(tmp[1]){
			if(tmp[1].length==0){
				document.getElementById('totaal').innerHTML = number_format(subtotal,2,',','.')+",00";
			}else if(tmp[1].length==1){
				document.getElementById('totaal').innerHTML = number_format(subtotal,2,',','.')+"0";
			}
		}else{
			document.getElementById('totaal').innerHTML = number_format(subtotal,2,',','.');
		}
		document.getElementById('totalamount').value = subtotal;
		document.getElementById('vzkinp').value = "0"
	}
	if(t == "spoedbestelling"){
		if(subtotal < vzktot){
			var tot = parseInt(total) + 5.95
			document.getElementById('vzk').innerHTML = "5,95";
			document.getElementById('totaal').innerHTML = number_format(total,2,',','.');
			document.getElementById('totalamount').value = total;
			document.getElementById('vzkinp').value = "5.95";
		}
	}
}

function openPasswd(){
	var t = document.getElementById('saveinfo').checked;
	if(t == true || t == 'checked'){
		document.getElementById('passwdfield').style.display = "block";	
		document.getElementById('saveinfo2').value = "save";	
	}else{
		document.getElementById('passwdfield').style.display = "none";			
		document.getElementById('saveinfo2').value = "no";	
	}
}


function sendNews(frmnm){
	var eml = document.getElementById('newsemail').value;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(eml)){
		createXMLHttpRequest();
		var url = "/includes/js2php.php?timeStamp=" + new Date().getTime();
		var queryString = "eml="+eml+"&opt=sendNewsletter";
		xmlHttp.open("POST", url, true);
		xmlHttp.onreadystatechange = finishnews;
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
		xmlHttp.send(queryString);
		
		document.getElementById('newsemail').style.border = '1px solid #a5acb2';
	}else{
		document.getElementById('newsemail').style.border = '2px solid #990000';
		alert("Uw heeft een ongeldig e-mail adres ingevult.");
	}
}
function finishnews() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
			document.getElementById('newsletterTag').innerHTML = "<strong>Nieuwsbrief</strong><br />Uw aanmelding voor de nieuwsbrief is verzonden.";
        }
    }
}

