	function createHTTPHandler(){
    httphandler = false;
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
    try {
      httphandler = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
       httphandler = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
          httphandler = false;
      }
    }
    @end @*/
    if (!httphandler && typeof XMLHttpRequest!='undefined') {
        httphandler = new XMLHttpRequest();
    }
    return httphandler;
	}
	
	function checkemail(str){
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
		if (filter.test(str)){return true;}
		else{return false;}
	}
	
	Array.prototype.find = function (s)
	{
		for(var i=0;i<this.length;i++)
		if(this[i] == s) return true; 
		return false;
	};
	
	// init object
 
	function js_in_array(the_needle, the_haystack){
		var the_hay = the_haystack.toString();
		if(the_hay == ''){
		    return false;
		}
		var the_pattern = new RegExp(the_needle, 'g');
		var matched = the_pattern.test(the_haystack);
		return matched;
  	}
	
	function isInt (str){
		var i = parseInt (str);
	
		if (isNaN (i))
			return false;
	
		i = i . toString ();
		if (i != str)
			return false;
	
		return true;
	}
	
	function addToCart(product_id, name, count, price, filename) {
		
	
		getal = (isInt(count));
		if (getal == false || count < 0 || count > 99999){
			alert('Voor een geldig getal in.');
		}else{
			XMLHTTPObject = createHTTPHandler(); 
			XMLHTTPObject.open('GET', websiteUrl+'shoppingcart.ajax.php?action=add&product_id=' + product_id +'&name=' + name+ '&count=' +count +'&price=' + price+'&filename='+filename, true);
			XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
			XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
			XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			XMLHTTPObject.setRequestHeader('Connection', 'close');
			XMLHTTPObject.send(null);
			XMLHTTPObject.onreadystatechange=function() {
				if (XMLHTTPObject.readyState==4) {		
					response = XMLHTTPObject.responseText;				
					updateShoppingcart();
					alert('Het artikel is toegevoegd aan uw winkelwagen.');
				}
			}
		}
	}
	
	function removeFromCart(product_id) {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'shoppingcart.ajax.php?action=remove&product_id=' + product_id, true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {		
				response = XMLHTTPObject.responseText;		
				updateShoppingcart();
			}
		}
	}
	
	function updateShoppingcart() {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'shoppingcart.ajax.php?action=update', true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {		
				var response;	
				response = XMLHTTPObject.responseText.split("||");	
				document.getElementById('shoppingcart_count').innerHTML = response[0];
				document.getElementById('shoppingcart_price').innerHTML = response[1];
			}
		}
	}
	
	function calculatePrices() {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'shoppingcart.ajax.php?action=calcprices', true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {
				var shoppingcart ;
				shoppingcart = XMLHTTPObject.responseText.split("||");	
								
				document.getElementById('shoppingcart_count').innerHTML = shoppingcart[0];
				document.getElementById('shoppingcart_price').innerHTML = shoppingcart[1];
				document.getElementById('shoppingcart_subtotal').innerHTML = shoppingcart[1];
				document.getElementById('shoppingcart_btw1').innerHTML = shoppingcart[2];
				document.getElementById('shoppingcart_btw2').innerHTML = shoppingcart[3];
				document.getElementById('shoppingcart_shipping').innerHTML = shoppingcart[4];
				document.getElementById('shoppingcart_total').innerHTML = shoppingcart[5];
			}
		}
	}
	
	function setCount(product_id,count) {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'shoppingcart.ajax.php?action=setcount&product_id='+product_id+'&count='+count , true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {			
				var article_total_price ;
				article_total_price = XMLHTTPObject.responseText;	
				document.getElementById('article_total_'+product_id).innerHTML = article_total_price;
				calculatePrices();
			}
		}
	}
	
	function removeItem(product_id) {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'shoppingcart.ajax.php?action=removeitem&product_id='+product_id , true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {			
				document.location.reload();
			}
		}
	}
	
	function clearCart() {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'shoppingcart.ajax.php?action=clearcart' , true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {
				document.location.reload();
			}
		}
	}
	
	function clearCartHome() {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'shoppingcart.ajax.php?action=clearcart' , true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {
			/*document.location.reload();*/	
			}
		}
	}
	
	//--------- orderprocess functions ---------//
	function checkStep(step) {
		var frm = document.forms['form_orderprocess_' + step];
		var errorarray = new Array();
		var kind = '';
		
		// check if everthing is filled
		if (frm.lastname.value == "") {errorarray.push("naam contactpersoon");}
		if (frm.firstname.value == "") {errorarray.push("voornaam concactpersoon");}
		if (frm.phone.value == "") {errorarray.push("telefoonnummers");}
		if (!checkemail(frm.email.value)) {errorarray.push("e-mailadres");}
		if (frm.company.value == "") {errorarray.push("bedrijfsnaam");}
		if (frm.street.value == "") {errorarray.push("adres");}
		if (frm.housenumber.value == "") {errorarray.push("huisnummer");}
		if (frm.zipcode.value == "") {errorarray.push("postcode");}
		if (frm.city.value == "") {errorarray.push("plaats");}
		if (frm.country.value == "") {errorarray.push("land");}
		
		if (step==2) {
			if (frm.bedrijf.value == "") {errorarray.push("Bedrijf soort");}
			if (frm.kvk_number.value == "" && frm.bedrijf.value == "commercieel_bedrijf") {errorarray.push("KvK nummer");}
		}
		
		if (step==3) {
			betaal_method = false;
			betaalmethode = "";
			if (document.getElementById('betaalmethode') != null){
				for (i=0; i < frm.betaalmethode.length; i++) {
					if (frm.betaalmethode[i].checked) {
						betaalmethode = frm.betaalmethode[i].value;
						betaal_method = true;
					}
				}
				if (betaal_method != true) {errorarray.push("betaalmethode");}
			}
		}
		
		
		
		if (errorarray.length >0) {
			var i=0;
			var showerror = "De volgende velden dienen correct te worden ingevuld:<BR>";
			for (i=0; i < errorarray.length; i++){
				showerror += errorarray[i] + "<br>";
			}
			document.getElementById("error").innerHTML = showerror;
			return false;
		}
		else {document.getElementById("error").innerHTML="";}
	
		// send form to customer handling page
		XMLHTTPObject = createHTTPHandler(); 
		if (step==2) {
			for( i = 0; i < frm.gender.length; i++ ){
				if(frm.gender[i].checked == true )				
					gender = frm.gender[i].value;
			}
			
			// set shipping address
			XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=setAddress&kind=shipping&lastname='+frm.lastname.value+'&firstname='+frm.firstname.value+'&phone='+frm.phone.value+'&email='+frm.email.value+'&company='+frm.company.value+'&street='+frm.street.value+'&housenumber='+frm.housenumber.value+'&housenumber_addon='+frm.housenumber_addon.value+'&zipcode='+frm.zipcode.value+'&city='+frm.city.value+'&country='+frm.country.value+'&kvk_number='+frm.kvk_number.value+'&company_type='+frm.bedrijf.value+'&deliverydate='+frm.delivery_day.value+'-'+frm.delivery_month.value+'-'+frm.delivery_year.value+'&gender='+gender , true);
		}
		if (step==3) {
			
			if (frm.same_adres.checked == true) {
				// if exists delete billing address
				XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=deleteAddress&kind=billing&betaalmethode=' + betaalmethode, true);
			} else {
				// set billing address
				XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=setAddress&kind=billing&lastname='+frm.lastname.value+'&firstname='+frm.firstname.value+'&phone='+frm.phone.value+'&email='+frm.email.value+'&company='+frm.company.value+'&street='+frm.street.value+'&housenumber='+frm.housenumber.value+'&housenumber_addon='+frm.housenumber_addon.value+'&zipcode='+frm.zipcode.value+'&city='+frm.city.value+'&country='+frm.country.value + '&betaalmethode=' + betaalmethode , true);
			}
		}
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {
				document.location='orderprocess.php?step='+(step+1);
			}
		}
	}
	
		//--------- orderprocess functions ---------//
	function checkStepKerstpakkett(step) {
		var frm = document.forms['form_orderprocess_' + step];
		var errorarray = new Array();
		var kind = '';
		
		// check if everthing is filled
		if (frm.lastname.value == "") {errorarray.push("naam contactpersoon");}
		if (frm.firstname.value == "") {errorarray.push("voornaam concactpersoon");}
		if (frm.phone.value == "") {errorarray.push("telefoonnummers");}
		if (!checkemail(frm.email.value)) {errorarray.push("e-mailadres");}
		if (frm.company.value == "") {errorarray.push("bedrijfsnaam");}
		if (frm.street.value == "") {errorarray.push("adres");}
		if (frm.housenumber.value == "") {errorarray.push("huisnummer");}
		if (frm.zipcode.value == "") {errorarray.push("postcode");}
		if (frm.city.value == "") {errorarray.push("plaats");}
		if (frm.country.value == "") {errorarray.push("land");}
		
		if (step==2) {
			if (frm.bedrijf.value == "") {errorarray.push("Bedrijf soort");}
			if (frm.kvk_number.value == "" && frm.bedrijf.value == "commercieel_bedrijf") {errorarray.push("KvK nummer");}
		}
		
		if (step==3) {
			betaal_method = false;
			betaalmethode = "";
			if (document.getElementById('betaalmethode') != null){
				
				for (i=0; i < frm.betaalmethode.length; i++) {
					if (frm.betaalmethode[i].checked) {
						betaalmethode = frm.betaalmethode[i].value;
						betaal_method = true;
					}
				}
				if (betaal_method != true) {errorarray.push("betaalmethode");}
			}
		}
		
		
		
		if (errorarray.length >0) {
			var i=0;
			var showerror = "De volgende velden dienen correct te worden ingevuld:<BR>";
			for (i=0; i < errorarray.length; i++){
				showerror += errorarray[i] + "<br>";
			}
			document.getElementById("error").innerHTML = showerror;
			return false;
		}
		else {document.getElementById("error").innerHTML="";}
	
		// send form to customer handling page
		XMLHTTPObject = createHTTPHandler(); 
		if (step==2) {
			
			for( i = 0; i < frm.gender.length; i++ ){
				if(frm.gender[i].checked == true )				
					gender = frm.gender[i].value;
			}
	
			// set shipping address
			XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=setAddress&kind=shipping&lastname='+frm.lastname.value+'&firstname='+frm.firstname.value+'&phone='+frm.phone.value+'&email='+frm.email.value+'&company='+frm.company.value+'&street='+frm.street.value+'&housenumber='+frm.housenumber.value+'&housenumber_addon='+frm.housenumber_addon.value+'&zipcode='+frm.zipcode.value+'&city='+frm.city.value+'&country='+frm.country.value+'&kvk_number='+frm.kvk_number.value+'&company_type='+frm.bedrijf.value+'&deliverydate='+frm.delivery_day.value+'-'+frm.delivery_month.value+'-'+frm.delivery_year.value +'&gender='+gender, true);
		}
		if (step==3) {
			
			if (frm.same_adres.checked == true) {
				// if exists delete billing address
				XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=deleteAddress&kind=billing&betaalmethode=' + betaalmethode, true);
			} else {
				// set billing address
				XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=setAddress&kind=billing&lastname='+frm.lastname.value+'&firstname='+frm.firstname.value+'&phone='+frm.phone.value+'&email='+frm.email.value+'&company='+frm.company.value+'&street='+frm.street.value+'&housenumber='+frm.housenumber.value+'&housenumber_addon='+frm.housenumber_addon.value+'&zipcode='+frm.zipcode.value+'&city='+frm.city.value+'&country='+frm.country.value + '&betaalmethode=' + betaalmethode , true);
			}
		}
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {
				document.location='?step='+(step+1);
			}
		}
	}
	
	function getAddressForm(step,kind) {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=getAddressForm&kind='+kind, true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {
				var address;
				address = XMLHTTPObject.responseText.split("||");	
				var frm = document.forms['form_orderprocess_' + step];
				frm.lastname.value = address[0];
				frm.firstname.value = address[1];
				frm.phone.value = address[2];
				frm.email.value = address[3];
				frm.company.value = address[4];
				frm.street.value = address[5];
				frm.housenumber.value = address[6];
				frm.housenumber_addon.value = address[7];
				frm.zipcode.value = address[8];
				frm.city.value = address[9];
				frm.country.value = address[10];
				if (step == 2) {
					var d = new Date();
					var curr_year = d.getFullYear();
					var date = address[11].split("-");
					frm.delivery_day.selectedIndex =date[0]-1;
					frm.delivery_month.selectedIndex =date[1]-1;
					frm.delivery_year.selectedIndex =date[2]-curr_year;
					frm.kvk_number.value = address[12];

					if(address[13] == 'commercieel_bedrijf'){
						frm.bedrijf.selectedIndex = 1;
						
						var browserName=navigator.appName; 
						if (browserName=="Netscape"){ 
							document.getElementById('kvk_number').style.display = 'table-row';
						}else{ 
							document.getElementById('kvk_number').style.display = 'block';
						}
						
					}else if (address[13] == 'overheids_instelling'){
						frm.bedrijf.selectedIndex = 2;
					}else if(address[13] == 'particulier'){
						frm.bedrijf.selectedIndex = 3;
					}else if(address[13] == 'maatschap'){
						frm.bedrijf.selectedIndex = 4;
					}else{
						frm.bedrijf.selectedIndex = 0;
					}	
					
					for( i = 0; i < frm.gender.length; i++ ){
						if(frm.gender[i].value == address[15] ){
							frm.gender[i].checked = true;
						}else{
							frm.gender[i].checked = false;
						}
					}				
				}
				if (step == 3) {	
					/*if (document.getElementById('betaalmethode') != null){
						for (i=0; i < frm.betaalmethode.length; i++) {
							if (frm.betaalmethode[i].value == address[14]) {
								frm.betaalmethode[i].checked = true;
							}
						}
					}*/
				}
			}
		}
	}
	
	function getAddressTable() {
		XMLHTTPObject = createHTTPHandler(); 
		XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=getAddressTable', true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {
				var HTML;
				HTML = XMLHTTPObject.responseText;
				document.getElementById("verzend_form").innerHTML = HTML;
			}
		}
	}
	
	function placeOrder(home_id) {
		tmpDateTest = document.getElementById('remarks').value;
		XMLHTTPObject = createHTTPHandler(); 	
		XMLHTTPObject.open('GET', websiteUrl+'customer.ajax.php?action=placeOrder&remarks='+tmpDateTest, true);
		XMLHTTPObject.setRequestHeader("Cache-Control", "no-cache");
		XMLHTTPObject.setRequestHeader("X_USERAGENT", "AJAX_shopmodule");
	  	XMLHTTPObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  		XMLHTTPObject.setRequestHeader('Connection', 'close');
		XMLHTTPObject.send(null);
		XMLHTTPObject.onreadystatechange=function() {
			if (XMLHTTPObject.readyState==4) {
				alert(XMLHTTPObject.responseText);
				if(home_id == 1){
					document.location= baseUrl+'bedankt/';
				}else{
					document.location='view.php?page_id=' + home_id + "&success=y";
				}
			}
		}
	}