/**
 * Overloaded cart update function used to handle updates in the big cart div.
 * Changes in the shoppingcart will cause the big cart to be removed, updated
 * and displayed again if it was open before updating.
 */
function overloadedCart () {
	if (cart.req.readyState == 4 && cart.req.status == 200) {
		var reopen = false;
		var bestellijst = document.getElementById("bigcart");

		// Is bigcart div available?
		if (bestellijst) {
			// Should it be reopened?
			if (bestellijst.style.display == "block") reopen = true;
			// Remove old bigcart
			bestellijst.parentNode.removeChild(bestellijst);
		}
		
		// Write updated cart and bigcart
		document.getElementById ("shop_cart_placeholder").innerHTML = cart.req.responseText;

		var bigCart = document.getElementById("bigcart2");
		bigCart.id = 'bigcart';
		//bigCart.parentNode.removeChild (bigCart);
		document.body.appendChild(bigCart);
		
		// Reopen is needed
		if (reopen) openPopup ("bigcart");
	}
}


/**
 * Show or hide a div.
 */
function enablAltAddress (divId, isVisible) {
	if (isVisible)
		document.getElementById (divId).style.display = "block";
	else {
		var inputs = document.getElementById (divId).getElementsByTagName ("input");
		
		for (var i = 0; i < inputs.length; i ++) {
			inputs[i].value = "";
		}
		
		document.getElementById (divId).style.display = "none";
	}
}

function showHideBlock(elmCondit, elmShowHide) {
	if (document.getElementById(elmCondit).checked == true) {
		document.getElementById(elmShowHide).style.display = "block";
	} else {
		document.getElementById(elmShowHide).style.display = "none";
	}
}


/**
 * Submit the form with the given id to altUrl
 */
function checkoutPrevious () {
	if (document.getElementById ("statusid")) {
		document.getElementById ("statusid").value = "0";
	} else {
		var element = document.createElement ("input");
		element.id = "statusid";
		element.name = "staid";
		element.value = "0";
		element.type = "hidden";
		document.getElementById ("checkout").appendChild (element);
	}
	if (document.getElementById ("callback")) {
		document.getElementById ("callback").value = "";
	}
	if (document.getElementById ("checkout").cartaction)
		document.getElementById ("checkout").cartaction.value = "";
	document.getElementById ("checkout").checkoutstep.value = document.getElementById ("previousstep").value;
	document.getElementById ("checkout").submit ();
}

/**
 * Change shop_search form action and post to search page.
 */
function submitSearch () {
	if(document.getElementById ("searchquery").value=="zoek op trefwoord"){document.getElementById ("searchquery").value="";}
	document.getElementById ("searchquery").value = document.getElementById ("searchquery").value.replace (/[^a-zA-Z0-9\s]/g, "");
	
	var terms = document.getElementById ("searchquery").value
	
	document.getElementById ("searchform").action = "/" + terms + ".16.zoeken.html";
	document.getElementById ("searchform").submit ();
}


/**
 * Switch product variation divs.
 *
 * Input: select - The select element which selects a variation.
 */
function switchVariation (select) {
	var options = select.getElementsByTagName ("option");

	for (var i = 0; i < options.length; i++) {
		if (select.selectedIndex == i) {
			document.getElementById ("description_"   + options[i].value).className = "tonen";
			document.getElementById ("specification_" + options[i].value).className = "tonen";
			document.getElementById ("price_"         + options[i].value).className = "tonen prijsdiv";
			document.getElementById ("btnorder_"      + options[i].value).className = "tonen btndiv";
		} else {
			document.getElementById ("description_"   + options[i].value).className = "verbergen";
			document.getElementById ("specification_" + options[i].value).className = "verbergen";
			document.getElementById ("price_"         + options[i].value).className = "verbergen prijsdiv";
			document.getElementById ("btnorder_"      + options[i].value).className = "verbergen btndiv";
		}
	}
}


/**
 * Toon een popup (div met id <element>). De popup wordt geventreerd op de pagina,
 * achter de popup wordt een div met id hiderdiv geplaatst die voorkomt dat de
 * achterliggende pagina kan worden gebruikt zolang de popup open staat.
 */
function openPopup (element) {
	document.getElementById ("hiderdiv").style.height  = document.documentElement.scrollHeight + "px";
	document.getElementById ("hiderdiv").style.display = "block";
	document.getElementById (element).style.display    = "block";
	
	// ScrollY positie ophalen
	var scrollY = 0;
	if (typeof (window.pageYOffset) == 'number')
	    scrollY = window.pageYOffset;
	else if (document.body && document.body.scrollTop)
	    scrollY = document.body.scrollTop;
	else if (document.documentElement && document.documentElement.scrollTop)
	    scrollY = document.documentElement.scrollTop;
	
	// Hoogte van zichtbaar deel van pagina ophalen
	var winHeight = 0;
	if (typeof (window.innerWidth) == 'number')
	    winHeight = window.innerHeight;
	else if (document.documentElement && document.documentElement.clientHeight)
	    winHeight = document.documentElement.clientHeight;
	
	// De popup centreren
	var x = document.body.clientWidth / 2 - document.getElementById (element).clientWidth / 2;
	var y = scrollY + winHeight / 2 - document.getElementById (element).clientHeight / 2;
	
	document.getElementById (element).style.left = x + "px";
	document.getElementById (element).style.top  = y + "px";
	document.getElementById (element).style.zIndex = "9999";
}


/**
 * De geopende popup (div met id <element>) sluiten.
 */
function closePopup (element) {
	document.getElementById (element).style.display = "none";
	document.getElementById ("hiderdiv").style.display = "none";
}


/**
 * Show one the div belonging to a tab from the tabPanel div.
 */
function showTab (panelId, tabId, deze) {
	//alle tabs donkere background image geven.
	var tabs = document.getElementById('tabs_table').getElementsByTagName('td')
	for(var i=0; i<tabs.length; i++){
		if (tabs[i].className=='tabs_omschrijving') {
			newImage = "url(/sites/_sitetemplate/6/images/middentab_omschr.png)";
			tabs[i].style.backgroundImage=newImage;
		}
		else if (tabs[i].className=='tabs_specificaties') {
			newImage = "url(/sites/_sitetemplate/6/images/middentab_omschr.png)";
			tabs[i].style.backgroundImage=newImage;
		}
		else if (tabs[i].className=='tabs_reviews') {
			newImage = "url(/sites/_sitetemplate/6/images/middentab_review.png)";
			tabs[i].style.backgroundImage=newImage;
		}
		else if (tabs[i].className=='tabs_tellafriend') {
			newImage = "url(/sites/_sitetemplate/6/images/middentab_omschr.png)";
			tabs[i].style.backgroundImage=newImage;
		}
		tabs[i].style.color='#ffffff';
	}
	if (document.getElementById('tabs_table_r')) {
		var tabrechts = document.getElementById('tabs_table_r').getElementsByTagName('td')[0];
		newImage = "url(/sites/_sitetemplate/6/images/middentab_bijpassend.png)";
		tabrechts.style.backgroundImage=newImage;
		tabrechts.style.color='#ffffff';
	}
	
	//deze tab lichtere background image geven.
	if (deze.className=='tabs_omschrijving') {
		newImage = "url(/sites/_sitetemplate/6/images/middentab_omschr_aan.png)";
	}
	else if (deze.className=='tabs_specificaties') {
		newImage = "url(/sites/_sitetemplate/6/images/middentab_omschr_aan.png)";
	}
	else if (deze.className=='tabs_reviews') {
		newImage = "url(/sites/_sitetemplate/6/images/middentab_review_aan.png)";
	}
	else if (deze.className=='tabs_tellafriend') {
		newImage = "url(/sites/_sitetemplate/6/images/middentab_omschr_aan.png)";
	}
	else if (deze.className=='tabs_bijpassend') {
		newImage = "url(/sites/_sitetemplate/6/images/middentab_bijpassend_aan.png)";
	}
	deze.style.backgroundImage=newImage;
	deze.style.color='#000000';
	
	var panel = document.getElementById (panelId);
	
	for (var i = 0; i < panel.childNodes.length; i ++) {
		var tag = panel.childNodes[i].nodeName;
		
		if (tag.toUpperCase () == "DIV") {
			if (panel.childNodes[i].id == tabId) {
				panel.childNodes[i].style.display = "block";
			} else {
				panel.childNodes[i].style.display = "none";
			}
		}
	}
}


/*****************************************************************************
 * Menu functies
 ****************************************************************************/

var menu_props  = new Array ();
var menu_scroll = new Array ();

/**
 * Menu status initialiseren bij het inladen van de pagina.
 */
function initMenu () {
	/*
	var menu = document.getElementById ("shop_menu2");
	var subMenus = menu.getElementsByTagName ("div");
	
	var cookies = document.cookie.split (";");
	var cookieValue = "";

	// Het juiste cookie zoeken
	for (var i = 0; i < cookies.length; i ++) {
		if (cookies[i].indexOf ("ParadeShopMenus=") == 1) {
			cookieValue = cookies[i].split("=")[1];
			break;
		}
	}
	
	if (cookieValue != "") {
		// Indien het cookie bestaat, splitsen op menu
		var menus = cookieValue.split (".");
		for (var i = 0; i < menus.length - 1; i ++) {
			// Voor elk menu de status ophalen
			var menuId = menus[i].split (":")[0];
			var menuUp = menus[i].split (":")[1];
			document.getElementById (menuId).style.display="block";
			if (menuUp == 0) {
				// Menu dicht klappen
				menu_props[menuId] = document.getElementById (menuId).offsetHeight; //+ 32
				document.getElementById (menuId).style.height   = "0px";
				document.getElementById (menuId).style.overflow = "hidden";
				document.getElementById (menuId + "_control").src = "/sites/_sitetemplate/6/images/bullet_down.gif";
				document.getElementById (menuId + "_control").alt = "Menu tonen";
			}
		}
	}
	else{
		for(var i=0; i<subMenus.length; i++){
			subMenus[i].style.display = "block";
			menu_props[subMenus[i].id] = subMenus[i].offsetHeight;
			subMenus[i].style.overflow = "hidden";
			document.getElementById (subMenus[i].id + "_control").src = "/sites/_sitetemplate/6/images/bullet_down.gif";
			document.getElementById (subMenus[i].id + "_control").alt = "Menu tonen";
		}
	}
	*/
}


/**
 * Een submenu met id <element> open of dichtklappen.
 */
function openCloseMenu (element) {
	var menu = document.getElementById (element);
	
	// Niet sliden als er al geslide wordt
	if (menu_scroll[element]) return;
	
	// Indien huidige grootte van menu niet bekend deze ophalen
	if (!menu_props[element]) {
		menu_props[element] = menu.offsetHeight;
		menu.style.height   = menu_props[element] + "px";
		menu.style.overflow = "hidden";
	}
	// Sliden locken
	menu_scroll[element] = true;
	
	// Menu open of dicht klappen
	if (menu.offsetHeight > 0)
		slideElement (element, 0, true);
	else
		slideElement (element, menu_props[element], false);
}


/**
 * Deze functie zorgt voor het dadwerkelijk werken van de openCloseMenu methode.
 */
function slideElement (element, to, up) {
	var size = document.getElementById (element).offsetHeight;
	
	if (up) {
		// Menu dichtklappen
		if (size > menu_props[element] * .25) {
			size -= 5;
		} else if (size > menu_props[element] * .1) {
			size -= 2;
		} else {
			size --;
		}
	} else {
		// Menu open klappen
		if (size < menu_props[element] * .75) {
			size += 5;
		} else if (size < menu_props[element] * .9) {
			size += 2;
		} else {
			size ++;
		}
	}
	
	// Nieuwe grootte instellen
	document.getElementById (element).style.height = size + "px";
	
	if ((up && size > to) || (!up && size < to)) { 
		// Doorgaan met sliden tot maximum berijkt is
		setTimeout ("slideElement ('" + element + "', " + to + ", " + up + ")", 50);
	} else {
		// Controls wijzigen en sliden vrij geven
		if (up) {
			document.getElementById (element + "_control").src = "/sites/_sitetemplate/6/images/bullet_down.gif";
			document.getElementById (element + "_control").alt = "Menu tonen";
			document.getElementById (element).style.height = "0px";
		} else {
			document.getElementById (element + "_control").src = "/sites/_sitetemplate/6/images/bullet_up.gif";
			document.getElementById (element + "_control").alt = "Menu verbergen";
			document.getElementById (element).style.height = menu_props[element] + "px";
		}
		
		menu_scroll[element] = false;
		updateMenuCookie ();
	}
}


/**
 * Cookie opslaan waarin de menu status wordt opgeslagen zodat deze blijft 
 * gelden over meerdere pagina's.
 */
function updateMenuCookie () {
	var menu = document.getElementById ("shop_menu2");
	var subMenus = menu.getElementsByTagName ("div");
	var value = "";
	
	for (var i = 0; i < subMenus.length; i ++) {
		var menuId = subMenus[i].id;
		
		value += menuId + ":";
		if (document.getElementById (menuId).offsetHeight == 0) {
			// Menu is ingeklapt
			value += "0.";
		} else {
			// Menu is uitgeklapt
			value += "1.";
		}
	}
	document.cookie = "ParadeShopMenus=" + value + ";;";
}


function generateOrderId () {
	var orderID = "1";
	var mydate = new Date();
	var tv = mydate.getYear() % 10;
	orderID = orderID + tv;
	tv = (mydate.getMonth() * 31) + mydate.getDate();
	orderID = orderID + ((tv < 10) ? '0' : '') + ((tv < 100) ? '0' : '') + tv;
	tv = (mydate.getHours() * 3600) + (mydate.getMinutes() * 60) + mydate.getSeconds();
	orderID = orderID + ((tv < 10) ? '0' : '') + ((tv < 100) ? '0' : '') + ((tv < 1000) ? '0' : '') + ((tv < 10000) ? '0' : '') + tv;
	tvplus = Math.round(Math.random() * 9);
	orderID += ((tvplus + 1) % 10)

	document.getElementById ("orderID").value = orderID;
	return true;
}


function idealRecover () {
	var url = window.location.toString ();
	                                                                                         
	document.getElementById ("totalprice").value = url.split("totalprice=")[1].split("&")[0];
}


function kassa1Check () {
	var err = "";
	
	if (document.getElementById ("custfirstname").value == "") {
		err += "* Geen voornaam ingevuld\n";
	}
	if (document.getElementById ("custlastname").value == "") {
		err += "* Geen achternaam ingevuld\n";
	}
	if (document.getElementById ("custstreet").value == "") {
		err += "* Geen straatnaam ingevuld\n";
	}
	if (document.getElementById ("custnumber").value == "") {
		err += "* Geen huisnummer ingevuld\n";
	}
	if (document.getElementById ("custpostcode").value == "") {
		err += "* Geen postcode ingevuld\n";
	} /*else if (!/^\d{4}[0-9a-zA-z\s]{2,3}$/.test (document.getElementById ("custpostcode").value)) {
		err += "* Ongeldige postcode ingevuld\n";
	}*/
	if (document.getElementById ("custcity").value == "") {
		err += "* Geen plaatsnaam ingevuld\n";
	}
	/*if (document.getElementById ("custemail").value == "") {
		err += "* Geen e-mail adres ingevuld\n";
	} else if (!/^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/.test (document.getElementById ("custemail").value)) {
		err += "* Ongeldig e-mail adres ingevuld.\n";
	}*/
	
	if (err == "") {
		return true;
	} else {
		alert ("U kunt niet verder gaan met bestellen vanwegen de volgende fout(en):\n\n" + err);
		return false;
	}	
}


function kassa2Check () {
	var err = "";
	var selected = false;
	var methods = document.getElementsByName ("shiid");
	
	for (var i = 0; i < methods.length; i ++) {
		if (methods[i].checked) {
			selected = true;
			break;
		}
	}
	
	if (!selected) {
		err += "* Geen verzendmethode gekozen\n";
	}
	
	if (document.getElementById ("altadres").checked) {
		if (document.getElementById ("sendfirstname").value == "") {
			err += "* Geen voornaam ingevuld\n";
		}
		if (document.getElementById ("sendlastname").value == "") {
			err += "* Geen achternaam ingevuld\n";
		}
		if (document.getElementById ("sendstreet").value == "") {
			err += "* Geen straatnaam ingevuld\n";
		}
		if (document.getElementById ("sendnumber").value == "") {
			err += "* Geen huisnummer ingevuld\n";
		}
		if (document.getElementById ("sendpostcode").value == "") {
			err += "* Geen postcode ingevuld\n";
		} /*else if (!/^\d{4}[0-9a-zA-z\s]{2,3}$/.test (document.getElementById ("sendpostcode").value)) {
			err += "* Ongeldige postcode ingevuld\n";
		}*/
		if (document.getElementById ("sendcity").value == "") {
			err += "* Geen plaatsnaam ingevuld\n";
		}
	}
	
	if (err == "") {
		return true;
	} else {
		alert ("U kunt niet verder gaan met bestellen vanwegen de volgend fout(en):\n\n" + err);
		return false;
	}
}


function kassa3Check () {
	var err = "";
	var selected = false;
	var methods = document.getElementsByName ("payid");
	
	for (var i = 0; i < methods.length; i ++) {
		if (methods[i].checked) {
			selected = true;
			break;
		}
	}
	
	if (!selected) {
		err += "* Geen betaalmethode gekozen\n";
	}
	
	if (err == "") {
		return true;
	} else {
		alert ("U kunt niet verder gaan met bestellen vanwegen de volgend fout(en):\n\n" + err);
		return false;
	}
}

/**
* Show the user input fields the payment or shipment method with the given id.
* User fields of all other methods will be hidden if they exist.
*/
function showUserFields(enableId) {
	var radios = document.getElementsByName("ordpayid");
	if (radios.length == 0) {
		radios = document.getElementsByName("ordshiid");
	}

	for (var i = 0; i < radios.length; i++) {
		var id = Number(radios[i].id.split("_")[1]);

		if (document.getElementById("userdata_" + id) != null) {
			if (enableId == id) {
				document.getElementById("userdata_" + id).className = "tonen";
			} else {
				document.getElementById("userdata_" + id).className = "verbergen";
			}
		}
	}
} 


function setNavigationCookie () {
	var pees = document.getElementsByTagName ("p");
	var value = "";
	
	for (var i = 0; i < pees.length; i ++) {
		if (pees[i].className == "breadcrumb") {
			var aas = pees[i].getElementsByTagName ("a");

			for (var j = 0; j < aas.length; j ++) {
				value += aas[j].href + "^" + aas[j].innerHTML + "^";
			}
			document.cookie = "ParadeShopNavigation=" + value + ";;";
			break;
		}
	}
}


function getNavigationCookie () {
	var cookies = document.cookie.split (";");
	var cookieValue = "";

	// Het juiste cookie zoeken
	for (var i = 0; i < cookies.length; i ++) {
		if (cookies[i].indexOf ("ParadeShopNavigation=") == 1) {
			cookieValue = cookies[i].split("=")[1];
			break;
		}
	}
	
	var pees = document.getElementsByTagName ("p");
	
	for (var i = 0; i < pees.length; i ++) {
		if (pees[i].className == "breadcrumb") {
			var cData = cookieValue.split ("^");
			var oldShit = pees[i].innerHTML;
			pees[i].innerHTML = "U bent hier: ";
			for (var j = 0; j < cData.length - 1; j += 2) {
				pees[i].innerHTML += "<a href=\"" + cData[j] + "\"/>" + cData[j + 1] + "</a>&#160;&#187;&#160;";
			}
			pees[i].innerHTML += oldShit;
		}
	}
}


function toggleShipmentInputs (active) {
	var candidates = document.getElementsByTagName ("div");
	
	for (var i = 0; i < candidates.length; i ++) {
		if (candidates[i].id.indexOf ("shipmentData_") != -1) {
			if (candidates[i].id.split ("_")[1] == active) {
				candidates[i].className = "tonen";
			} else {
				candidates[i].className = "verbergen";
			}
		}
	}
}


function togglePaymentInputs (active) {
	var candidates = document.getElementsByTagName ("div");
	
	for (var i = 0; i < candidates.length; i ++) {
		if (candidates[i].id.indexOf ("userdata_") != -1) {
			if (candidates[i].id.split ("_")[1] == active) {
				candidates[i].className = "tonen";
			} else {
				candidates[i].className = "verbergen";
			}
		}
	}
}


function autoCheckPaymentForm () {
	var selected = -1;
	var methods = document.getElementsByName ("payid");
	var err = "";
	var hasEnabledElements = false;
	
	for (var i = 0; i < methods.length; i ++) {
		if (!methods[i].disabled) hasEnabledElements = true;
		if (methods[i].checked) selected = methods[i].value;
	}
	
	if (!hasEnabledElements) return true;
	
	if (selected == -1) {
		alert ("U kunt niet verder gaan met bestellen vanwegen de volgend fout(en):\n\n* U hebt geen betaalmethode geselecteerd.");
		return false;
	}
	
	var formElements = document.getElementById ("paymentData_" + selected).getElementsByTagName ("input");
	
	for (var i = 0; i < formElements.length; i ++) {
		if (formElements[i].name) {
			var controls = formElements[i].name.split (":");
			if (controls[1] == "user") {
				if (controls[3] == "must" && formElements[i].value == "") {
					err += "* U dient het veld " + controls[0] + " in te vullen.\n";
				}
				if (formElements[i].value != "") {
					if (controls[2] == "text") {
						
					} else if (controls[2] == "bankaccount" && !isElfProef (formElements[i])) {
						err += "* Het bankrekening nummer wat u hebt ingevuld is ongeldig.";
					}
				}
			}
		}
	}
	
	if (err != "") {
		alert ("U kunt niet verder gaan met bestellen vanwegen de volgend fout(en):\n\n" + err);
		return false;
	} else {
		return true;
	}
}


function isElfProef (element) {
    var value = element.value;
	var totaal = 0;

	value = value.replace (/\./g, "");
	value = value.replace (/\s/g, "");
	element.value = value;

	if (value.length == 7 || value.length == 6) return true; // Giro nummer
	if (value.length < 9) return false;

	for (var i = 0; i < value.length; i ++)
		totaal += value.charAt (i) * (value.length - i);

	if (totaal % 11 != 0)
		return false;
	else
		return true;
}


/**
 * Automatische controle van formulieren in het checkout proces.
 */ 
function validateForm (step) {
  var err = "";

  switch (step) {
    case "":
      // NAW gegevens stap 1 controleren.
      if (document.getElementById ("ordufirstname").value == "") err += "* Geen voornaam ingevuld\n";
	    if (document.getElementById ("ordulastname").value == "") err += "* Geen achternaam ingevuld\n";
	    if (document.getElementById ("ordustreet").value == "") err += "* Geen straatnaam ingevuld\n";
	    if (document.getElementById ("ordunumber").value == "") err += "* Geen huisnummer ingevuld\n";
	    if (document.getElementById ("ordupostcode").value == "") {
        	err += "* Geen postcode ingevuld\n";
	    } else {
	        if (document.getElementById ("orducountry").selectedIndex == 0) {
	        	if (!/^[1-9]{1}[0-9]{3} ?[A-Za-z]{2}$/.test(document.getElementById("ordupostcode").value)) {
				    err += "* Ongeldige postcode ingevuld\n";
				}
			} else if (document.getElementById("orducountry").selectedIndex == 1) {
			    if (!/^[1-9]{1}[0-9]{3}$/.test (document.getElementById ("ordupostcode").value)) {
			        err += "* Ongeldige postcode ingevuld\n";
				}
			}else {
  				if (!/^([A-Za-z]{1}(\s|\-)?[1-9]{1}[0-9]{3})|([1-9]{1}[0-9]{3})$/.test(document.getElementById("ordupostcode").value)) {
			        err += "* Ongeldige postcode ingevuld\n";
				}
			}
		}
	    if (document.getElementById ("orducity").value == "") err += "* Geen plaatsnaam ingevuld\n";
      /*if (document.getElementById ("orduemail").value == "")
		    err += "* Geen e-mail adres ingevuld\n";
	    else if (!/^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/.test (document.getElementById ("orduemail").value))
		    err += "* Ongeldig e-mail adres ingevuld.\n";*/
      
      break;
    case "shipment":
      // Verzendmethode controleren.
      var selected = false;
	    var methods = document.getElementsByName ("ordshiid");
	    var methodID;
	
	    // Is er een verzendmethode geselecteerd?
	    for (var i = 0; i < methods.length; i ++) {
		    if (methods[i].checked) {
          selected = true;
          methodID = methods[i].value;
			    break;
		    }
	    }
	
	    if (!selected) err += "* Geen verzendmethode gekozen\n";
    
      // Zijn alle verplichte user data ingevuld?
      if (document.getElementById ("userdata_" + methodID)) {
        var userFields = document.getElementById ("userdata_" + methodID).getElementsByTagName ("input");
        
        for (var i = 0; i < userFields.length; i ++) {
          if (userFields[i].title = "must" && userFields[i].value == "") err += "* Het veld " + userFields[i].name + " is niet ingevuld.\n";
        }
      }
      
      // Is het eventuele aflever adres ingevuld?
      if (document.getElementById ("altadres").checked == true) {
        if (document.getElementById ("orddfirstname").value == "") err += "* Geen voornaam ingevuld\n";
  	    if (document.getElementById ("orddlastname").value == "") err += "* Geen achternaam ingevuld\n";
  	    if (document.getElementById ("orddstreet").value == "") err += "* Geen straatnaam ingevuld\n";
  	    if (document.getElementById ("orddnumber").value == "") err += "* Geen huisnummer ingevuld\n";
  	    if (document.getElementById ("orddpostcode").value == "") {
          err += "* Geen postcode ingevuld\n";
		} else {
			if (document.getElementById("orducountry").selectedIndex == 0) {
				if (!/^[1-9]{1}[0-9]{3} ?[A-Za-z]{2}$/.test(document.getElementById("ordupostcode").value)) {
					err += "* Ongeldige postcode ingevuld\n";
				}
			} else if (document.getElementById("orducountry").selectedIndex == 1) {
				if (!/^[1-9]{1}[0-9]{3}$/.test(document.getElementById("ordupostcode").value)) {
					err += "* Ongeldige postcode ingevuld\n";
				}
			} else {
				if (!/^([A-Za-z]{1}(\s|\-)?[1-9]{1}[0-9]{3})|([1-9]{1}[0-9]{3})$/.test(document.getElementById("ordupostcode").value)) {
					err += "* Ongeldige postcode ingevuld\n";
				}
			}
		}
  	    if (document.getElementById ("orddcity").value == "") err += "* Geen plaatsnaam ingevuld\n";
  	  } else {
  	    document.getElementById ("orddfirstname").value = "";
  	    document.getElementById ("orddlastname").value = "";
  	    document.getElementById ("orddstreet").value = "";
  	    document.getElementById ("orddnumber").value = "";
  	    document.getElementById ("orddpostcode").value = "";
  	    document.getElementById ("orddcity").value = "";
      }
    
      if (err == "") {
        document.getElementById ("ordshisid").value = document.getElementById ("shisid_" + methodID).value;
      }

      break;
    case "payment":
      // Betaalmethode controleren.
      var selected = false;
	    var methods = document.getElementsByName ("ordpayid");
	    var methodID;
	
	    // Is er een betaalmethode geselecteerd?
	    for (var i = 0; i < methods.length; i ++) {
		    if (methods[i].checked) {
          selected = true;
          methodID = methods[i].value;
			    break;
		    }
	    }
	
	    if (!selected) err += "* Geen verzendmethode gekozen\n";
    
      // Zijn alle verplichte user data ingevuld?
      if (document.getElementById ("userdata_" + methodID)) {
        var userFields = document.getElementById ("userdata_" + methodID).getElementsByTagName ("input");
        
        for (var i = 0; i < userFields.length; i ++) {
          if (userFields[i].title = "must" && userFields[i].value == "") 
		  	err += "* Het veld " + userFields[i].name + " is niet ingevuld.\n";
			else if (userFields[i].name == "Rekening" && !isElfProef (userFields[i])) {
				err += "* Het bankrekening nummer wat u hebt ingevuld is ongeldig.";
			}
        }
      }
      
      if (err == "") {
        document.getElementById ("ordpaysid").value = document.getElementById ("paysid_" + methodID).value;
      }
      
      break;
  }  

  if (err == "") {
		return true;
	} else {
		alert ("U kunt niet verder gaan met bestellen vanwegen de volgende fout(en):\n\n" + err);
		return false;
	}	
}


/**
 * Order status wijzigen in de aangegeven status.
 */ 
function gotoStatus (status) {
  var newInput = document.createElement ("input");
  newInput.type = "hidden";
  newInput.name = "ordstaid";
  newInput.value = status;

  document.getElementById ("checkout").appendChild (newInput);
  document.getElementById ("checkout").submit ();
}


/**
 * Ga naar de vorige stap in het order proces.
 */ 
function checkoutPrev (step) {
  document.getElementById ("checkoutstep").value = step;
  document.getElementById ("checkout").submit ();
}

