var objCurrentShownObject

// Show element
function Show(objElement)
{
	if(objElement)
	{
		objElement.style.display = 'block';
		objCurrentShownObject = objElement;
	}
}

// Hide element
function Hide(objElement, blnCloseCurrent)
{
	if(blnCloseCurrent)
	{
		objElement = objCurrentShownObject;
	}
	
	if(objElement)
	{
		objElement.style.display = 'none';
	}
}

function Invis(objElement)
{
	if(objElement)
	{
		objElement.style.visibility = 'hidden';
	}
}

function Vis(objElement)
{
	if(objElement)
	{
		objElement.style.visibility = 'visible';
	}
}

// Paginering
function goToPage(numPage, textType) {
	$('#intPage').val(numPage);
	
	if(textType != 'review' && !window.do_getProducts)
	{
		alert('Wacht tot de pagina geladen is.');
		return false;
	}

	if (textType == 'review') {
		return do_getReviews();
	} else {
		return do_getProducts();
	}

	return false;
}

// Ga naar merkpagina
function GotoMerk(strMerkURL)
{
	objFormMain.action 	= "/producten/" + strMerkURL + "/";
	//objFormMain.submit();
	window.location = "/producten/" + strMerkURL + "/";
}

// Aantal selects bijwerken
function updateAantalSelect(intAantal) {
	$("select[@id^='intAantalPerPagina'] option").each(function() {
		if (intAantal.toString() == $(this).val()) {
			$(this).attr('selected', 'selected');
		}
	});

	$('#intAantalPerPagina').val(intAantal);
	$('#intPage').val(1);
	return do_getProducts();
}


// String trim prototypes
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}




// Variables
var blnMeerFotosTonen = false;

var objFormMain 						= null;
var objAktie								= null;
var objCurrentMenu 					= null;
var intMenuTop							= 0;
var intAantalTeVergelijken 	= 0;
var blnWinkelwagenMini			= false;
var objWinkelwagenMini			= null;
var intWinkelwagenMiniTop		= 0;
var objQuickviewOverlay 		= null;
var objQuickviewProduct			= null;
var objProductImage					= null;
var objZoomImage						= null;
var objProductZoom					= null;
var objProductZoomWindow		= null;
var objMeerFotosAfbeelding  = null;

var ZoomWindowOffsetX;
var ZoomWindowOffsetY;
var ProductImageX;
var ProductImageY;

// Change search text on focus
function FocusTextInput(objInput)
{
	var strInitialValue = objInput.getAttribute("initialvalue");
	var strValue				= objInput.value;
	
	if(strInitialValue==strValue)
	{
			objInput.value = '';
	}
}

// Hide the loading overlays
function HideLoading()
{
	Invis(document.getElementById('loading'));
	Invis(document.getElementById('loading_content'));
	Invis(document.getElementById('loading_icon_container'));
}

// Show the loading overlays
function ShowLoading()
{
	var objLoadingIcon = document.getElementById('loading_icon')

	Vis(document.getElementById('loading'));
	Vis(document.getElementById('loading_content'));
	
	if(objLoadingIcon)
	{
		objLoadingIcon.style.top = 175 + document.documentElement.scrollTop + "px"
	}
	
	Vis(document.getElementById('loading_icon_container'));
}

// Submit form
function SubmitForm(strURL)
{
	ShowLoading();
	if(objFormMain)
	{
		if(strURL!='')
		{
			objFormMain.action = strURL;
		}
		objFormMain.submit();
	}
}

// Attach events
function AttachEvent(objTarget, strEvent, objEventHandler)
{
	if(window.addEventListener){ // Mozilla, Netscape, Firefox
		objTarget.addEventListener(strEvent, objEventHandler, false);
	} 
	else 
	{ // IE
		objTarget.attachEvent("on"+strEvent, objEventHandler);
	}
}

// Cancel bubble
function CancelBubble(objEvent)
{
	objEvent = objEvent?objEvent:window.event;
	if(objEvent)
	{
		objEvent.cancelBubble = true;
		if (objEvent.stopPropagation) objEvent.stopPropagation();
	}			
	return objEvent;
}

// Onfocus for links		
function FocusLink(objEvent)
{
	var objLink = objEvent.srcElement ? objEvent.srcElement : objEvent.target;
	
	if(objLink)
	{
		if(objLink.focus) objLink.blur();
	}
}

// Initialize links
function InitLinks()
{
	var arrLinks = document.getElementsByTagName("A");
	
	for(i=0;i<arrLinks.length;i++)
	{
		AttachEvent(arrLinks[i], "focus", FocusLink );
	}
}

// Init menu
function InitMenu()
{
	var arrMenuButtons
	var arrSubMenus

	arrMenuButtons = document.getElementsByTagName("TD")
	for(var i=0; i<arrMenuButtons.length; i++)
	{
		if(arrMenuButtons[i].className == "menuitem")
		{
			AttachEvent(arrMenuButtons[i], "mouseover", ShowMenu);
			AttachEvent(arrMenuButtons[i], "mouseout", HideMenu);
		}
	}
}

// Get x position
function getXPos(obj)
{
	var result=0;
	while(obj.offsetParent)
	{
		result = result + parseInt(obj.offsetLeft);
		obj = obj.offsetParent;
	}
	return result;
}

// Get Y position
function getYPos(obj)
{
	var result=0;
	while(obj.offsetParent)
	{
		result = result + parseInt(obj.offsetTop);
		obj = obj.offsetParent;
	}
	return result;
}

function InitProductZoom()
{
	objProductImage					= document.getElementById('product-main-afbeelding');
	objProductZoom					= document.getElementById('product-zoom-afbeelding');
	objProductZoomContainer	= document.getElementById('product-zoom-container');
	objProductZoomWindow		= document.getElementById('product-zoom-window');
	
	// Attach events to image			
	if(objProductImage)
	{
		if(document.all)
		{
			objProductImage	= objProductImage.childNodes[0];
			objZoomImage		= objProductZoom.childNodes[0];
		}
		else
		{
			objProductImage = objProductImage.childNodes[1];
			objZoomImage		= objProductZoom.childNodes[1];
		}

		AttachEvent(objProductImage, "mousemove", HoverProductAfbeelding)
		AttachEvent(objProductZoomWindow, "mousemove", HoverProductAfbeelding)
		AttachEvent(objProductImage, "mouseout", OutProductAfbeelding)
		AttachEvent(objProductZoomWindow, "mouseout", OutProductAfbeelding)
	}
	
	// Init window voor product hover
	if(objProductZoom && objProductImage)
	{				
		if(objProductImage && objZoomImage)
		{
			objProductZoomWindow.style.width = objProductImage.clientWidth * (objProductImage.clientWidth / objZoomImage.clientWidth) + 'px';
			objProductZoomWindow.style.height = objProductImage.clientHeight * (objProductImage.clientHeight / objZoomImage.clientHeight) + 'px';
			
			if(objProductZoomWindow.clientWidth > objProductImage.clientWidth) objProductZoomWindow.style.width = objProductImage.clientWidth + 'px';
			if(objProductZoomWindow.clientHeight > objProductImage.clientHeight) objProductZoomWindow.style.height = objProductImage.clientHeight + 'px';
		}
			
		//// calculate offset difference between zoomwindow and image 
		//ZoomWindowOffsetX = (objProductImage.offsetLeft - objProductZoomWindow.offsetLeft) + (objProductImage.clientLeft - objProductZoomWindow.clientLeft);
		//ZoomWindowOffsetY = (objProductImage.offsetTop - objProductZoomWindow.offsetTop) + (objProductImage.clientTop - objProductZoomWindow.clientTop);

		ZoomWindowOffsetX = 0;
		ZoomWindowOffsetY = 0;
		
		if(document.all)
		{
			// niet nodig in IE
			ProductImageX = 0;
			ProductImageY = 0;
		}
		else
		{
			ZoomWindowOffsetX = 0;
			ZoomWindowOffsetY = 0;
			
			ProductImageX = getXPos(objProductImage);
			ProductImageY = getYPos(objProductImage);
		}
	}			
}


// Toon meer details voor
function ToonMeerDetails(lngProductID)
{
}


// Show menu
function ShowMenu(objEvent)
{
	var objElement = objEvent.srcElement ? objEvent.srcElement : objEvent.target;
	if(objElement.tagName)
	{
		if(objElement.tagName=="A")
		{
			objElement = objElement.parentNode;
		}
	}
	var objMenu = document.getElementById(objElement.getAttribute("menu"));

	if(objMenu)
	{
		objMenu.style.top = intMenuTop + "px";
		objMenu.style.left = objElement.offsetLeft + "px";
		objMenu.style.width	= objElement.offsetWidth + "px";
		
		objCurrentMenu = objMenu;
		Show(objMenu);
	}
}

// Hide menu
function HideMenu(objEvent)
{
	var objSource = objEvent.srcElement ? objEvent.srcElement : objEvent.target;
	var objTarget = (objEvent.relatedTarget) ? objEvent.relatedTarget : objEvent.toElement;

	if(objCurrentMenu)
	{
		if(objTarget)
		{
			if(objTarget.className!="menulink" && objTarget.className!="menu" && objTarget.className!='iframe_underlay')
			{
				Hide(objCurrentMenu);
				objCurrentMenu = null;
			}
		}
	}
}

// Toevoegen aan favorieten
function toevoegen_aan_favorieten(bookmarkurl,bookmarktitel){
	if (document.all) {
		window.external.AddFavorite(bookmarkurl,bookmarktitel);
	}
	return false;
}

// Selecteer een variatie
function SelecteerVariatie(objSelect)
{
	window.location = objSelect.value
}

// Bestel een product
function Bestel()
{
	objFormMain.action  = "/winkelwagentje/";
	document.getElementById('intAantalBestellen').value = document.getElementById('intAantal').value;
	objAktie.value			= "voegtoe"
	objFormMain.submit();
}

// Bestel een product
function BestelProduct(lngProductID)
{
	objFormMain.action  = "/winkelwagentje/";
	var objAantal = document.getElementById('intAantal');
	var intAantal = 1;
	
	if(objAantal) {intAantal=objAantal.value;}
	document.getElementById('intAantalBestellen').value = intAantal; 
	document.getElementById('lngProductID').value = lngProductID; 
	objAktie.value			= "voegtoe"
	objFormMain.submit();
}

function bestelProductbundel(strBundel) {
	window.location = "/winkelwagentje/voegtoebundel/" + strBundel;
}

function bestelProductbundelID(strBundelID) {
	window.location = "/winkelwagentje/voegtoebundelid/" + strBundelID;
}


// Wijzig aantallen
function WijzigAantal()
{
	objFormMain.action 	= "/winkelwagentje/";
	objAktie.value			= "update"
	objFormMain.submit();
}


function VerderOrdertraject()
{
	objFormMain.action 	= "/ordertraject/verder/";
	objFormMain.submit();
}

function BestellenOrdertraject()
{
	objFormMain.action 	= "/ordertraject/bestellen/";
	objFormMain.submit();
}

function TerugOrdertraject()
{
	objFormMain.action 	= "/ordertraject/";
	objAktie.value			= "terug"
	objFormMain.submit();
}



// Submit kortingscode
function SubmitKortingcode()
{
	objFormMain.action 	= "/winkelwagentje/";
	objAktie.value			= "voegtoe-kortingcode"
	objFormMain.submit();
}


// Wijzig Ophalen
function WijzigOphalen()
{
	objFormMain.action 	= "/winkelwagentje/";
	objAktie.value			= "update"
	objFormMain.submit();
}

// Verwijder product
function Verwijder(lngProductID)
{
	objFormMain.action 	= "/winkelwagentje/";
	objAktie.value			= "verwijder"
	document.getElementById('lngProductID').value = lngProductID
	objFormMain.submit();
}

// Verwijder bundel
function VerwijderBundel(lngProductID)
{
	objFormMain.action	= "/winkelwagentje/";
	objAktie.value			= "verwijderbundel"
	document.getElementById('lngProductID').value = lngProductID
	objFormMain.submit();
}

// Verwijder product
function VerwijderKortingcode()
{
	objFormMain.action 	= "/winkelwagentje/";
	objAktie.value			= "verwijder-kortingcode"
	objFormMain.submit();
}


// Review opslaan
function reviewOpslaan(lngProductID)
{
	objFormMain.action 	= "/review/" + lngProductID + "/opslaan/";
	objAktie.value			= "opslaan";
	document.getElementById('lngProductID').value = lngProductID;
	objFormMain.submit();
}

// Mail Dit
function MailditProduct(lngProductID)
{
	objFormMain.action 	= "/mail-dit-product/" + lngProductID + "/";
	objAktie.value			= "mail";
	document.getElementById('lngProductID').value = lngProductID;
	objFormMain.submit();
}


// Invoeren kortingscode
function InvoerenKortingsCode()
{
	objFormMain.action 	= "/winkelwagentje/";
	objAktie.value			= "voegtoe-kortingcode"
	objFormMain.submit();
}

//Keydown event
function KeyDown(event, KeyToCheck, callBack)
{			
	var key = event.keyCode;
	if(key==KeyToCheck) 
	{
		eval(callBack());
	}
}

//Update aantal producten
function UpdateWinkelwagentjeLink(strTekst)
{
	document.getElementById('aantalproducten').innerHTML = strTekst
}

// Navigeer in het ordertraject
function NavigeerOrderTraject(strAktie)
{
	objFormMain.action 	= "/ordertraject/";
	objAktie.value			= strAktie
	objFormMain.submit();
}	

//Vergelijk producten
function Vergelijk_Producten()
{
	if(intAantalTeVergelijken<2)
	{
		alert('Selecteer minimaal twee producten om te vergelijken.');
	}
	else
	{
		objFormMain.action 	= "/producten/vergelijken/";
		objFormMain.submit();
	}
}

// Algemene navigatie functie met submit
function NavigeerNaar(strURL)
{
	ShowLoading();
	if(objFormMain)
	{
		objFormMain.action 	= strURL;
		objFormMain.submit();
	}
	else
	{
		alert('wacht tot de pagina geladen is.');
		HideLoading();
	}
}

//Check vergelijk
function Vergelijk(objCheck)
{
	if(objCheck.checked) 
	{
		intAantalTeVergelijken++;
	}
	else
	{
		intAantalTeVergelijken--;
	}
	
	if(intAantalTeVergelijken<0) intAantalTeVergelijken = 0;
}

//Verwijder compare
function VerwijderCompare(lngProductID)
{
	var objVergelijkProduct = document.getElementById(lngProductID)
	if(confirm('Weet u zeker dat u dit product wilt verwijderen uit de vergelijking?'))
	{
		if(objVergelijkProduct)
		{
			objVergelijkProduct.style.display = 'none';
		}
	}
}

// Show alternatieve productfoto
function ShowProductFoto(objFoto, blnZoom)
{
	if(objProductImage)
	{
		objProductImage.src = objFoto.childNodes[0].childNodes[0].src;  
		objZoomImage.src		= objFoto.childNodes[0].childNodes[0].src;
		objZoomImage.parentNode.style.backgroundImage = 'url(' + objFoto.childNodes[0].childNodes[0].src.replace('/normaal/','/groot/') + ')';
		
		//InitProductZoom(); 
	}
}


// Show alternatieve productfoto in meer fotos popup
function ShowMeerProductFoto(objFoto, blnZoom)
{
	var objImage = document.getElementById('meer-fotos-afbeelding-popup')

	if(objImage)
	{
		if(document.all)
		{
			objImage = objImage.childNodes[0];
			objImage.src = objFoto.childNodes[0].childNodes[0].src;  
		}
		else
		{
			objImage = objImage.childNodes[1];
			objImage.src = objFoto.childNodes[1].childNodes[1].src;  
		}
	}
}

// Toggle winkelmandje
function ShowWinkelmandje(objElement, event)
{
	if(objElement)
	{
		blnWinkelwagenMini = !blnWinkelwagenMini;
		
		if(blnWinkelwagenMini)
		{
			objWinkelmandjeMini.style.display = 'block';
		}
		else
		{
			objWinkelmandjeMini.style.display = 'none';
		}
	}
}

// Hide quickview
function CloseQuickview()
{
	Invis(objQuickviewProduct, false);
	Invis(objQuickviewOverlay, false);
}

// Hide meerfotos
function CloseMeerFotos()
{
	Invis(objMeerFotos, false);
	Invis(objQuickviewOverlay, false);
}

// Zet beoordelingen (sterren) voor reviews		
function setBeoordeling(numBeoordeling, blnPermanent) {
	var i = 1;

	$("img[@id^='ster_']").each(function() {
		
		if (i <= numBeoordeling)
			$(this).attr("src", "/img/algemeen/content-onderdelen/review-sterren-vol.gif");
		else
			$(this).attr("src", "/img/algemeen/content-onderdelen/review-sterren-leeg.gif");

		i++;
	});
	
	if(blnPermanent)
	{
		document.getElementById('REVIEW-BEOORDELING').value = numBeoordeling;
	}
}

// Reset beoordelingen (sterren) voor reviews
function resetBeoordeling()
{
	setBeoordeling($('#REVIEW-BEOORDELING').val(), true);
}

// Nieuwsbrief inschrijving starten
function StartAanmeldenMailing()
{
	var strEmailAdres = document.getElementById('mailingemailadres').value;
	
	if(strEmailAdres.trim()!='')
	{
		objFormMain.action 	= "/mailing/";
		objAktie.value			= "aanmelden_form"
		objFormMain.submit();
	}
	else
	{
		alert('Vul eerst je emailadres in.');
	}			
}

// Nieuwsbrief inschrijving aanmelden
function AanmeldenMailing()
{
	objFormMain.action 	= '/mailing/';
	objAktie.value			= 'aanmelden';
	objFormMain.submit();
}

// Nieuwsbrief inschrijving afmelden
function AfmeldenMailing()
{
	objFormMain.action 	= '/mailing/';
	objAktie.value			= 'afmelden';
	objFormMain.submit();
}

// Verstuur contactformulier
function ContactFormulierVerstuur()
{
	objFormMain.action 	= '/contactformulier/';
	objAktie.value			= 'verstuur';
	objFormMain.submit();
}

// Hover over productafbeelding
function HoverProductAfbeelding(objEvent)
{
	var evt = document.all?window.event:objEvent;
	var x = document.all?evt.offsetX:evt.clientX - ProductImageX;
	var y = document.all?evt.offsetY:evt.clientY - ProductImageY;	
	
	if(objProductZoom)
	{
		//calculate zoomwindow position;
		objProductZoomWindow.style.left = x - (objProductZoomWindow.clientWidth/2) + ZoomWindowOffsetX + 'px';
		
		
		if(document.all)
		{
			objProductZoomWindow.style.top	= y - (objProductZoomWindow.clientHeight/2) - ZoomWindowOffsetY + 'px';
		}
		else
		{
			objProductZoomWindow.style.top	= y - (objProductZoomWindow.clientHeight/2) - ZoomWindowOffsetY + document.documentElement.scrollTop + 'px';
			
		}
		
		//Check bounds
		window.status = objProductZoomWindow.clientLeft + "," + objProductZoomWindow.clientLeft;
		if(objProductZoomWindow.offsetLeft < ZoomWindowOffsetX) objProductZoomWindow.style.left = ZoomWindowOffsetX + 'px';
		if(objProductZoomWindow.offsetTop < ZoomWindowOffsetY) objProductZoomWindow.style.top  = ZoomWindowOffsetY + 'px';

		if(objProductZoomWindow.offsetLeft > ZoomWindowOffsetX + objProductImage.clientWidth - objProductZoomWindow.clientWidth - 2) objProductZoomWindow.style.left = ZoomWindowOffsetX + objProductImage.clientWidth - objProductZoomWindow.clientWidth -2 + 'px';
		if(objProductZoomWindow.offsetTop > ZoomWindowOffsetY + objProductImage.clientHeight - objProductZoomWindow.clientHeight -2) objProductZoomWindow.style.top = ZoomWindowOffsetY + objProductImage.clientHeight - objProductZoomWindow.clientHeight -2 + 'px';
	
		objProductZoomContainer.style.visibility = 'visible';
		objProductZoomWindow.style.visibility = 'visible';
		
		//Reposition zoom
		//var newX = parseInt((((objProductZoomWindow.offsetLeft-(ZoomWindowOffsetX))/(objProductImage.clientWidth+ZoomWindowOffsetX))*objZoomImage.clientWidth))
		//var newY = parseInt((((objProductZoomWindow.offsetTop-(ZoomWindowOffsetY))/(objProductImage.clientHeight+ZoomWindowOffsetY))*objZoomImage.clientHeight))
		
		var newX = parseInt((((objProductZoomWindow.offsetLeft+(ZoomWindowOffsetX))/(objProductImage.clientWidth))*410))
		var newY = parseInt((((objProductZoomWindow.offsetTop+(ZoomWindowOffsetY))/(objProductImage.clientHeight))*475))
		
		if(!(typeof newX == 'number' && isFinite(newX)) || newX<0) newX = 0;
		if(!(typeof newY == 'number' && isFinite(newY)) || newY<0) newY = 0;
		
		var pos = "-" + newX + "px -" + newY + "px"
		
		pos = pos.replace("--", "-");		
		//document.getElementById('debug').innerHTML = pos;
		
		objProductZoom.style.backgroundPosition = pos;
	}
}

// Mouseout productafbeelding
function OutProductAfbeelding()
{
	if(objProductZoomContainer)
	{
		objProductZoomContainer.style.visibility = 'hidden';
		objProductZoomWindow.style.visibility = 'hidden';
	}
}

//Meer tonen filter
function ToonMeer(lngEigenschapID)
{
	var objUitklap = document.getElementById('uitklap_'+lngEigenschapID)
	var objMeerTonen = document.getElementById('meertonen_'+lngEigenschapID)
	if(objUitklap)
	{
		if(objUitklap.style.display=='none' || objUitklap.style.display=='')
		{
			objUitklap.style.display='block';
			objMeerTonen.style.display = 'none';
		}
		else
		{
			objUitklap.style.display='none';
			objMeerTonen.style.display = 'block';
		}
	}
}				

// Show Foto
function ShowFoto(intProductID, strExtra)
{
	var afbeelding = document.getElementById('productafbeelding'+intProductID+'normaal');
	var zoomafbeelding = document.getElementById('product-zoom-afbeelding');
	var zoom = document.getElementById('extrafotowaarde');
	
	if(afbeelding&&zoom)
	{
		if(strExtra!='') strExtra='-'+strExtra;
		afbeelding.src = '/product-afbeelding/normaal'+strExtra+'/'+intProductID+'/product.jpg';
		zoomafbeelding.style.backgroundImage = 'url(/product-afbeelding/groot'+strExtra+'/'+intProductID+'/product.jpg)';
		zoom.value = strExtra
	}
	
	InitProductZoom();
}

// Show Foto
function ShowFoto(intProductID, intShowProductID, strExtra)
{
	var afbeelding = document.getElementById('productafbeelding'+intProductID+'normaal');
	var zoomafbeelding = document.getElementById('product-zoom-afbeelding');
	var zoom = document.getElementById('extrafotowaarde');
	
	if(afbeelding&&zoom)
	{
		if(strExtra!='') strExtra='-'+strExtra;
		afbeelding.src = '/product-afbeelding/normaal'+strExtra+'/'+intShowProductID+'/product.jpg';
		zoomafbeelding.style.backgroundImage = 'url(/product-afbeelding/groot'+strExtra+'/'+intShowProductID+'/product.jpg)';
		zoom.value = strExtra
	}
	
	InitProductZoom();
}

function ShowVariatie(objVariatieSelect)
{
	var lngProductID = objVariatieSelect.value;
	var strProductNaam = objVariatieSelect.options[objVariatieSelect.options.selectedIndex].getAttribute("url");
	NavigeerNaar('/product/' + strProductNaam + '/' + lngProductID + '/');
}

var ToonKortingCode = true;
function ToggleKortingCode(blnShow)
{
	if(ToonKortingCode!=blnShow)
	{
		if(blnShow)
		{
			$('#kortingscode-row-middle').show()
			$('#kortingscode-row-bottom').show()
			$('#kortingscode-row-top').addClass("noline");
		}
		else
		{
			$('#kortingscode-row-middle').hide()
			$('#kortingscode-row-bottom').hide()
			$('#kortingscode-row-top').removeClass("noline");
		}
		ToonKortingCode = blnShow;
	}
}

var ToonBedrijfsnaam = false;
function ToggleBedrijfsnaam(blnShow)
{
	if(ToonBedrijfsnaam!=blnShow)
	{
		if(blnShow)
		{
			$('#bedrijfsnaam-row').show()
			$('#bezorg-bedrijfsnaam-row').show()
		}
		else
		{
			$('#bedrijfsnaam-row').hide()
			$('#bezorg-bedrijfsnaam-row').hide()
		}
		ToonBedrijfsnaam = blnShow;
	}
}

function SubmitWinkelwagenNaarOrdertrajectMetURL(strURL)
{
	if(objFormMain)
	{
		//objForm.action = "/ordertraject/start/";
		objFormMain.action = strURL;
		objFormMain.submit();
	}
	else
	{
		alert('formulier niet gevonden');
	}
}

function SubmitWinkelwagenNaarOrdertraject()
{
	if(objFormMain)
	{
		objFormMain.action = "/ordertraject/start/";
		objFormMain.submit();
	}
	else
	{
		alert('formulier niet gevonden');
	}
}


function getWinkelwagentjeMini(strFrm){

	var oRequest = new AJAX.Request("/AJAX/winkelmandje-mini-handler.asp", 
			{
				method: "post"
				, parameters: FORM.toString(strFrm)
				, responseEl: "winkelmandje-mini-ajax"
				, preloaderText: "<br>bezig met bijwerken, een ogenblik geduld a.u.b."
			}
		);
		//HTML.writeToElement(FORM.toString(strFrm),"debug");
	return false;
}


/*===========================================================
Patterncheck
-----------------------------------------------------------*/

function checkForm(formobj)
{
  var fieldCorrect = true;
  var errors = false;
  var focusField = null;
	var NumElements = formobj.elements.length;
	
  //doorloop alle elementen
  for(i=0; i<NumElements; i++)
  {
  	if(!checkFormField(formobj[i]))
  	{
  		if(!errors) 
			{
				errors = true;
				if(focusField == null)
				{
					focusField = formobj[i];
				} 
			}
		}
  }//end for(i..)

  //return value
  if(errors) {
    alert('Het formulier is niet juist ingevuld. Herstel de rode velden.');
    focusField.focus();
	}
  return !errors;
}


function checkNode(oNode)
{
  var fieldCorrect = true;
  var errors = false;
	
	var arrElements = oNode.getElementsByTagName('INPUT');
  //doorloop alle elementen
  for(i=0; i<arrElements.length; i++)
  {
  	if(!checkFormField(arrElements[i]))
  	{
  		if(!errors) 
			{
				errors = true;
			}
		}
  }//end for(i..)

  //return value
  if(errors) {
    alert('Het formulier is niet juist ingevuld. Herstel de rode velden.');
	}
  return !errors;
}

function checkFormThroughArray(objArray)
{
  var fieldCorrect = true;
  var errors = false;
	var NumElements = objArray.length;
	
  //doorloop alle elementen
  for(i=0; i<NumElements; i++)
  {
  	if(!checkFormField(document.getElementById(objArray[i])))
  	{
  		if(!errors) 
			{
				errors = true;
			}
		}
  }//end for(i..)

  //return value
  if(errors) {
    alert('Het formulier is niet juist ingevuld. Herstel de rode velden.');
	}
  return !errors;
}


function checkFormField(obj)
{
	var fieldcorrect=true;
	if(obj)
	{
	  var pat = obj.getAttribute("pattern");           //get element pattern
	
	  //data veld? -> dan controle en evt.
	  //achtergrond aapassen
	  if(pat)
	  {
	    val = obj.value;             //get element value
	    
			// Is dit veld verplicht?
	    if (pat.search('VERPLICHT')>=0) {
	      //radio input?
	      if (obj.type=='radio')
	      {
	        //default false
	 				fieldcorrect=false;
	        //radio element
	        //doorloop alle elementen en kijk of er 
	        //een gelijknamig element
	        var x, y;
	        x = obj;
	        for(j=0; j<formobj.elements.length; j++)
	        {
	          y = formobj.elements(j);   //get form element
	          if (x.name == y.name)
	          {
	            //gelijknamig element; checked?
	            if(x.checked || y.checked)
	       				fieldcorrect=true;
	          }
	        }
	      }
	      else
	      {
	        //standaard element
	        if (val=='')
	  				fieldcorrect=false;
	      }
			}
	    
			// Controle op lengte van veld
			if (pat.search('MINLENGTE')>=0) {
	      /* zoek max lengte van veld uit pattern */
	      var naarRechts, patternLength
	      naarRechts = pat.substring(pat.search('MINLENGTE')+10, 1000)
	      patternLength = naarRechts.substring(0, naarRechts.search(']') )
	
	      if (val.length < patternLength) {
					fieldcorrect=false;
				}
			}
	
			// Is dit een datum veld?
			if ( (pat.search('DATUM')>=0) && (!checkDate(val)) ) {
				fieldcorrect=false;
			}
			
			// Is dit een man/vrouw veld?
	    if ( (pat.search('MV')>=0) && (val!='m') && (val!='v') && (val!='') && (val!=' ')  ) {
				fieldcorrect=false;
			}
	
			// Is dit een numeriek veld?
			if ( (pat.search('NUMERIEK')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isGeldigDecimaalGetal(val)) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is dit een "Kamer van Koophandel nummer" veld?
			if ( (pat.search('KVKNR')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidKvKnr(val)) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is dit een bankrekeningnummer veld?
			if ( (pat.search('BANKREKENING')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isGeldigBankrekeningNummer(val)) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is dit een kenteken veld voor Nederland?
			if ( (pat.search('KENTEKEN-NL')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidKenteken_NL(val)) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is dit een tijd veld?
			if ( (pat.search('TIJD-HHMM')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidTijdHHMM(val)) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is dit een BTW nummer veld voor Nederland?
			if ( (pat.search('BTWNUMMER-NL')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidBTWnummer_NL(val)) {
						fieldcorrect=false;
					}
				}
			}
		
			// Is dit veld een telefoonnummer?
			if ( (pat.search('TELEFOONNUMMER')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidTelefoonnummer(val)) {
						fieldcorrect=false;
					}
				}
			}
	
			// Is dit veld een Nederlandse postcode ?
			if ( (pat.search('POSTCODE-NL')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidPostcode_NL(val)) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is dit veld een geldig emailadres ?
			if ( (pat.search('EMAIL')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidEmail(val)) {
						fieldcorrect=false;
					}
				}
			}
	
			// Is dit veld een geldig emailadres ?
			if ( (pat.search('URL-WEBSITE')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidWebsiteURL(val)) {
						fieldcorrect=false;
					}
				}
			}
	
			// Is dit veld een geldig sofinummer ?
			if ( (pat.search('SOFINUMMER')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidSofinummer(val)) {
						fieldcorrect=false;
					}
				}
			}
	
			// Is dit veld een geldig geldbedrag ?
			if ( (pat.search('GELDBEDRAG')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!isValidGeldbedrag(val)) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is dit veld een geldig opmerkingen veld ?
			if ( (pat.search('TEXTAREA')>=0) ) {
	      if (pat.search('MAXLENGTH-250')>=0) {
					// Het veld mag niet meer dan 250 tekens bevatten...
					if (val.length >= 250) {
						fieldcorrect=false;
					}
				}
	      if (pat.search('MAXLENGTH-1000')>=0) {
					// Het veld mag niet meer dan 1000 tekens bevatten...
					if (val.length >= 1000) {
						fieldcorrect=false;
					}
				}
	      if (pat.search('MAXLENGTH-2000')>=0) {
					// Het veld mag niet meer dan 2000 tekens bevatten...
					if (val.length >= 2000) {
						fieldcorrect=false;
					}
				}
	      if (pat.search('MAXLENGTH-2500')>=0) {
					// Het veld mag niet meer dan 2500 tekens bevatten...
					if (val.length >= 2500) {
						fieldcorrect=false;
					}
				}
	      if (pat.search('MAXLENGTH-5000')>=0) {
					// Het veld mag niet meer dan 5000 tekens bevatten...
					if (val.length >= 5000) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is dit een jaar veld?
			if ( (pat.search('JAAR')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!(val>1900 && val<2030)) {
						fieldcorrect=false;
					}
				}
			}
		
			// Is dit een weeknummer veld?
			if ( (pat.search('WEEK-NR')>=0) ) {
	      if ((val!='')) {
					// Veld is NIET leeg --> waarde moet geldig zijn...
					if (!(val>0 && val<54)) {
						fieldcorrect=false;
					}
				}
			}
			
			// Is het veld correct ingevuld?
			if (fieldcorrect) {
				// JA
	      if ( (obj.type=='radio') || (obj.type=='checkbox') ) {
					//obj.style.backgroundColor='#8C2C52'; // Dit moet de achtergrondkleur van het formulier zijn!
					//obj.style.color='#000000';
				} else {
					//obj.style.backgroundColor='#FFFFFF';
					//obj.style.color='#000000';
				}
			} else {
				// NEE
				// Maak de achtergrondkleur rood...
				//obj.style.backgroundColor='#FF0000';
				//obj.style.color='#FFFFFF';
	    }
	  }//end if(pat)
	}
  return fieldcorrect;
}





function checkDate(d) {
	if (d=='') {
		// return ok als veld leeg is
		return true;
	} else {
		//zoek eerste '-'
		p1 = d.search('-');
		if (p1==-1) {
			return false
		} else {
			//zoek tweede '-'
			rest = d.substr(p1+1);
			p2 = rest.search('-');
			if (p2==-1) {
				return false;
			} else {
				
				//get day month year
				a = d.split('-');
				day = parseInt(a[0].replace('0',''));
				month = parseInt(a[1].replace('0',''));
				year = parseInt(a[2]);
				
				//check domain of day, month and year
				if (day>0 && day<32 && month>0 && month<13 && year>1900 && year<9999) {
					var no_of_days_in_month = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
					
					// afhandeling februari, i.v.m. schrikkeljaren.
					// Schrikkeljaar: 
					// Volgens de Gregoriaanse kalender is dit een jaar met 366 dagen.
					// Elk vierde jaar is een schrikkeljaar, behalve de eeuwjaren, die niet door 400 deelbaar zijn.
					if (month == 2) {
						if ( (year%4==0 && year%100 != 0) || year%400 == 0 ) {
							// Dit is een schrikkeljaar, dus 29 februari bestaat!
							no_of_days_in_month[month]=29;
						}
					}
					
					// Geldige dag ingevoerd?
					if (day >= 1 && day <= no_of_days_in_month[month]) {
						// JA!
						return true;
					} else {
						// NEE!
						return false;
					}
				} else {
					return false;
				}
			}
		}
	}
}       



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : prototypes voor string trim functies.
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
String.prototype.trim  = function () { return this.ltrim().rtrim() }
String.prototype.ltrim = function () { return this.replace(/^\s+/g, "") }
String.prototype.rtrim = function () { return this.replace(/\s+$/g, "") }



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer Kamer van Koophandel (KvK) nummer.
'#  Voorwaarden : - niet leeg
'#                - numeriek
'#                - lengte 8
'#  Arg         : strInput ::= String met KvKnr.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidKvKnr(strInput) {

	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// niet numeriek?
  if (isNaN(strInput)) {
		return false;
	}

	// lengte niet 8 ?
  if (strInput.length != 8) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer NEDERLANDS kenteken
'#  Voorwaarden : - niet leeg
'#                - format XX-XX-XX
'#  Arg         : strInput ::= String met kenteken.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidKenteken_NL(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// lengte niet 8 ?
  if (strInput.length != 8) {
		return false;
	}
	
	// Streepjes op de goede plaats?
	if ( (strInput.charAt(2) != '-') 
		|| (strInput.charAt(5) != '-') ) {
		return false;
	}
	
	// Rest van de tekens is een character?
	if (	(!isChar(strInput.charAt(0)))
		 ||	(!isChar(strInput.charAt(1)))
		 ||	(!isChar(strInput.charAt(3)))
		 ||	(!isChar(strInput.charAt(4)))
		 ||	(!isChar(strInput.charAt(6)))
		 ||	(!isChar(strInput.charAt(7))) ) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer BTW nummer
'#  Voorwaarden : - niet leeg
'#                - voorbeeld: NL8099.07.410.B01
'#  Arg         : strInput ::= String met BTW nummer.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidBTWnummer_NL(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// lengte niet goed ?
  if (strInput.length != 17) {
		return false;
	}
	
	// Alle tekens correct?
	if (	( (strInput.charAt(0) != 'N') && (strInput.charAt(0) != 'n') )
		 ||	( (strInput.charAt(1) != 'L') && (strInput.charAt(1) != 'l') )
		 ||	(isNaN(strInput.charAt(2)))
		 ||	(isNaN(strInput.charAt(3)))
		 ||	(isNaN(strInput.charAt(4)))
		 ||	(isNaN(strInput.charAt(5)))
		 ||	(strInput.charAt(6) != '.')
		 ||	(isNaN(strInput.charAt(7)))
		 ||	(isNaN(strInput.charAt(8)))
		 ||	(strInput.charAt(9) != '.')
		 ||	(isNaN(strInput.charAt(10)))
		 ||	(isNaN(strInput.charAt(11)))
		 ||	(isNaN(strInput.charAt(12)))
		 ||	(strInput.charAt(13) != '.')
		 ||	( (strInput.charAt(14) != 'B') && (strInput.charAt(14) != 'b') )
		 ||	(isNaN(strInput.charAt(15)))
		 ||	(isNaN(strInput.charAt(16))) ) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer sofinummer
'#  Voorwaarden : - niet leeg
'#                - voorbeeld: 1111.11.111
'#  Arg         : strInput ::= String met sofinummer.
'#  Returnvalue : boolean
'#  history     : jan 2003 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidSofinummer(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// lengte niet goed ?
  if (strInput.length != 11) {
		return false;
	}
	
	// Alle tekens correct?
	if (	(strInput.charAt(4) != '.')
		 ||	(strInput.charAt(7) != '.')
		 ||	(isNaN(strInput.charAt(0)))
		 ||	(isNaN(strInput.charAt(1)))
		 ||	(isNaN(strInput.charAt(2)))
		 ||	(isNaN(strInput.charAt(3)))
		 ||	(isNaN(strInput.charAt(5)))
		 ||	(isNaN(strInput.charAt(6)))
		 ||	(isNaN(strInput.charAt(8)))
		 ||	(isNaN(strInput.charAt(9)))
		 ||	(isNaN(strInput.charAt(10))) ) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : Is het argument een letter [a-z,A-Z]?
'#  Arg         : sChar ::= character dat moet worden gecontroleerd
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isLetter(sChar) {
	if ( (sChar>="a" && sChar<="z") || (sChar>="A" && sChar<="Z") ) {
		return true;
	} else {
		return false;
	}
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : Is het argument character [a-z,A-Z,0-9]?
'#  Arg         : sChar ::= character dat moet worden gecontroleerd
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isChar(sChar) {
	if ((sChar>="a" && sChar<="z") || (sChar>="A" && sChar<="Z") || (sChar>="0" && sChar <="9")) {
		return true;
	} else {
		return false;
	}
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer telefoonnummer
'#  Arg         : strInput ::= String met telefoonnummer.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidTelefoonnummer(strInput) {

	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	for( iCounter=0 ; iCounter<strInput.length ; iCounter++) {
		if ( (!isDecimaalGetal(strInput.charAt(iCounter)))
			&& (strInput.charAt(iCounter) != '+')
			&& (strInput.charAt(iCounter) != '-')
			&& (strInput.charAt(iCounter) != '(')
			&& (strInput.charAt(iCounter) != ')')
			&& (strInput.charAt(iCounter) != ' ') ) {
			return false;
		}
	}

	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer Nederlandse postcode
'#  Arg         : strInput ::= String met postcode.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidPostcode_NL(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// lengte niet goed ?
  if (strInput.length != 7 && strInput.length!=6) {
		return false;
	}
	
	// Eerst 4 cijfer?
	if (	(isNaN(strInput.charAt(0)))
		 ||	(isNaN(strInput.charAt(1)))
		 ||	(isNaN(strInput.charAt(2)))
		 ||	(isNaN(strInput.charAt(3))) ) {
		return false;
	}

	// Dan een spatie?
	if (strInput.charAt(4) != " ") {
		// Nee, twee letters dan?
		if (	(!isLetter(strInput.charAt(4)))
			||	(!isLetter(strInput.charAt(5))) ) 
			{
				return false;
			}
			// kan alleen als totale lengte 6 is
			return (strInput.length==6);
	}
	else
	{
		if (	(!isLetter(strInput.charAt(5)))
			||	(!isLetter(strInput.charAt(6))) ) 
			{
				return false;
			}
	}

	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer emailadres
'#  Arg         : strInput ::= String met emailadres.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidEmail(strInput)
{

	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// Maak reguliere expressie voor emailadres...
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	if (!filter.test(strInput)) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer URL voor website
'#  Arg         : strInput ::= String met URL
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidWebsiteURL(strInput)
{

	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();

	// Maak reguliere expressie voor emailadres...
	var filter  = /(http|https)(:\/{2}[\w]+)([\/|\.]?)([\S]*)/i;
	if (!filter.test(strInput)) {
		return false;
	}
	
	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer tijd in format HH:MM
'#  Arg         : strInput ::= String met emailadres.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isValidTijdHHMM(strInput) {

	// leeg?
	if (strInput == '') {
		return false;
	}
	
	// Niet leeg, dan trimmen...
	strInput = strInput.trim();
	
	// lengte niet goed ?
  if (strInput.length != 5) {
		return false;
	}
	
	if (strInput.charAt(2) != ':') {
		return false;
	}

	// split in uren en minuten
	arrTijd = strInput.split(':');
	intUren			=	arrTijd[0].replace('0','');
	intMinuten	=	arrTijd[1].replace('0','');
	
	if ( (isNaN(intMinuten)) || (isNaN(intUren)) ) {
		return false;
	}

	if (intUren<0 || intUren>23) {
		return false;
	}
	if (intMinuten<0 || intMinuten>59) {
		return false;
	}

	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : Is het argument een decimaal nummer [0-9]?
'#  Arg         : strGetal ::= character dat moet worden gecontroleerd
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'--------------------------------------------------------------------------------------------------
*/
function isDecimaalGetal(strGetal) {
	var allowed = '0123456789';
	for (var i=0; i< strGetal.length; i++) {
		if (allowed.indexOf(strGetal.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer tijd in format HH:MM
'#  Arg         : strInput ::= String met emailadres.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'#  Voorbeeld geldige waarden:
'#    1000000
'#    1000000,25
'#  Voorbeeld ONGELDIGE waarden:
'#  1.000.000,00
'#  1.000.000,25
'#  1.000.000,-
'#  1.000.000,--
'--------------------------------------------------------------------------------------------------
*/
function isValidGeldbedrag(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}

	// zoek een punt in het bedrag.
	if (strInput.indexOf('.') != -1) {
		// punt gevonden --> ongeldig
		return false;
	}
		
	// zoek een komma in het bedrag.
	intPositieKomma = strInput.indexOf(',');
	if (intPositieKomma == -1) {
		// geen komma gevonden.
		
		if (isNaN(strInput)) {
			// strInput is niet numeriek --> ongeldig.
			return false;
		} else {
			// strInput was al numeriek --> geldig.
			return true;
		}
	} else if (intPositieKomma == (strInput.length-1-2)) {
		// WEL een komma gevonden.
		// Is het EEN komma? (is de eerste komma ook de laatste?)
		if (strInput.indexOf(',') != strInput.lastIndexOf(',')) {
			// meer dan EEN komma gevonden...
			return false;
		} else {
			// split in getal voor de komma en getal na de komma.
			arrBedrag = strInput.split(',');
			strVoorKomma		=	arrBedrag[0];
			strAchterKomma	=	arrBedrag[1];
			
			// Voor en achter de komma een number?
			if (isNaN(strVoorKomma) || isNaN(strAchterKomma) ) {
				return false;
			}
			
			// Getal achter de komma niet negatief?
			if (strAchterKomma<0) {
				return false;
			}
			
		}
	} else {
		return false;
	}

	// alles OK...
	return true;
}



/*
'-Function Header----------------------------------------------------------------------------------
'#  Description : valideer tijd in format HH:MM
'#  Arg         : strInput ::= String met emailadres.
'#  Returnvalue : boolean
'#  history     : jul 2002 - created - Adriaan Hogenstijn
'#  Voorbeeld geldige waarden:
'#    1000000
'#    1000000,25
'#  Voorbeeld ONGELDIGE waarden:
'#  1.000.000,00
'#  1.000.000,25
'#  1.000.000,-
'#  1.000.000,--
'--------------------------------------------------------------------------------------------------
*/
function isGeldigDecimaalGetal(strInput) {
	// leeg?
	if (strInput == '') {
		return false;
	}

	// zoek een punt in het bedrag.
	if (strInput.indexOf('.') != -1) {
		// punt gevonden --> ongeldig
		return false;
	}
		
	// zoek een komma in het bedrag.
	intPositieKomma = strInput.indexOf(',');
	if (intPositieKomma == -1) {
		// geen komma gevonden.
		if (isNaN(strInput)) {
			// strInput is niet numeriek --> ongeldig.
			return false;
		} else {
			// strInput was al numeriek --> geldig.
			return true;
		}
	} else {
		// WEL een komma gevonden.
		// Is het EEN komma? (is de eerste komma ook de laatste?)
		if (strInput.indexOf(',') != strInput.lastIndexOf(',')) {
			// meer dan EEN komma gevonden...
			return false;
		} else {
			// split in getal voor de komma en getal na de komma.
			arrBedrag = strInput.split(',');
			strVoorKomma		=	arrBedrag[0];
			strAchterKomma	=	arrBedrag[1];
			
			// Voor en achter de komma een number?
			if (isNaN(strVoorKomma) || isNaN(strAchterKomma) ) {
				return false;
			}
			
			// Getal achter de komma niet negatief?
			if (strAchterKomma<0) {
				return false;
			}
			
		}
	}

	// alles OK...
	return true;
}



/*
Dit algoritme wordt gebruikt voor controle van een bankrekeningnummer en wordt ook wel de elfproef genoemd. 
Een bankrekeningnummer bestaat uit 9 cijfers 
(van links naar rechts) 
Vermenigvuldig het 1e cijfer met 9 
Vermenigvuldig het 2e cijfer met 8 
Vermenigvuldig het 3e cijfer met 7 
Vermenigvuldig het 4e cijfer met 6 
Vermenigvuldig het 5e cijfer met 5 
Vermenigvuldig het 6e cijfer met 4 
Vermenigvuldig het 7e cijfer met 3 
Vermenigvuldig het 8e cijfer met 2 
Vermenigvuldig het 9e cijfer met 1 
Tel de uitkomsten bij elkaar op en neem daar de modulo 11 van 
De uitkomst moet 0 zijn 

LET OP:
WERKT NIET BIJ POSTBANK REKENINGEN!!!
*/

function isGeldigBankrekeningNummer(intnumber){ 
	
	/* Maak sommige hoofd-variabelen */ 
	var intlength = intnumber.length;
	var inttotal = 0; 
	var intcount = 9; 
	
	
	/* Controleer of het nummer een andere lengte heeft dan 9 tekens. 
	   Als dit het geval is geef dan een error melding en stop het script. */ 
	if (intlength != 9){ 
		return false;
	} 
	
	/* Maak een loop om elk afzonderlijk cijfer uit het hele nummer te halen. 
	   En vermeenvuldig het met intcount (Deze begint bij 9 en loopt af.) */ 
	for(inti=0 ; inti<intlength ; inti++){ 
		
		var intnumber_temp = intnumber.charAt(inti); 
		
		
		inttotal = inttotal + intnumber_temp * intcount; 
		
		
		intcount--; 
	} 
	
	/* Kijk of de som (inttotal) van alle cijfers in het nummer deelbaar is door 11. 
	   Hier mag ook geen cijfer achter de komma uitkomen! */ 
	if (inttotal % 11 == 0){
		return true;
	} else {
		return false;
	}
} 

// Restrictions
function CheckRestrictions(objInput, e)
{
	function IsNumeriek(key, event)
	{
		if(event.shiftKey) return false;
		if(key>47 && key<58) return true;
		if(key>95 && key<106) return true;
		return false;
	}
	
	var pattern = objInput.getAttribute('pattern');
	var key;
		
	if(pattern)
	{
		pattern = pattern.toLowerCase();
		
		if(window.event) // IE
		{
			key = e.keyCode
		}
		else if(e.which) // Anders
		{
			key = e.which
		}
		window.status = key + ' (' + e.shiftKey + ')';
	
		// Standaard keycodes wel toelaten
		if(key==8 || key==9 || key==13 || (key>36 && key<41) || key==46) return true;
	
		
		if(pattern.search('geenspaties')>=0) 
		{
			if(key==32) return false;
		}

		if(pattern.search('telefoon')>=0) 
		{
			if(IsNumeriek(key,e)) return true;
			if(key==32) return true;
			if((key==187 || key==107) && !e.shiftKey) return true; // plus
			if((key==189 || key==109) && !e.shiftKey) return true; // streepje
			return false;
		}
		
		if(pattern.search('numeriek')>=0)
		{
			return IsNumeriek(key, e)		
		}
	}
	return true;
}

function CheckFormulier(objForm)
{
	for(var i=0; i<objForm.elements.length; i++)
	{
		CheckFormulierVeld(objForm[i], objForm[i].getAttribute('patternID'));
	}
}


function CheckKeyFormulierVeld(event, objField)
{
	var e = event?event:window.event;
	if(e.keyCode!=9 && e.keyCode!=16)
	{
		CheckFormulierVeld(objField)
	}
}

function CheckFormulierVeld(objField)
{
	var strPrefix= objField.getAttribute('patternID');
	var container = document.getElementById(strPrefix+'-status');
	
	if(container)
	{
		container.innerHTML='';
		var statusimg = document.createElement('IMG');
		
		statusimg.height = '12';
		
		if(checkFormField(objField))
		{
			statusimg.src='/img/algemeen/content-onderdelen/veld-akkoord-klein.gif';
		}
		else
		{
			statusimg.src='/img/algemeen/content-onderdelen/veld-opnieuw.gif';
		}
		container.appendChild(statusimg);
	}
}

// Mouseout productafbeelding
function ToggleMeerFotos()
{
	blnMeerFotosTonen = !blnMeerFotosTonen;
	
	if(blnMeerFotosTonen)
	{
		document.getElementById('meerfotosbutton').style.display='none';
		document.getElementById('meerfotos').style.display='block';
	}
	else
	{
		document.getElementById('meerfotosbutton').style.display='block';
		document.getElementById('meerfotos').style.display='none';
	}
}