var alleproducten = $(".product,.productkaartje.interactive");
alleproducten.live("mouseover mouseout", function(event) {
	if ( event.type == "mouseover" ) {
		$(this).find('.meerdetails').show();
	}else{
		$(this).find('.meerdetails').hide();
	}
});

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();
	}
}

// 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)
{
	//alert("attach event");
	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;
}

// 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(){

	throw "deprecated function, use LTN_init_product_detail instead";

	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';
		}

		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();
}

function bestelKlein()
{
	objFormMain.action = "/winkelwagentje/";
	document.getElementById('intAantalBestellen').value = 1;
	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;
}

function bestelBundelActie(strBundelID, lngProductID) {
	//document.getElementById('intAantalBestellen').value = 1; 
	//document.getElementById('lngProductID').value = lngProductID;
	//objFormMain.action  = "/winkelwagentje/voegtoebundelid/" + strBundelID;
	//objFormMain.submit(); 
	//window.location = "/winkelwagentje/voegtoebundelactie/" + strBundelID + "/" + lngProductID + "/";
	objFormMain.action  = "/winkelwagentje/voegtoebundelactie/" + strBundelID + "/" + lngProductID + "/";
	objFormMain.submit();
}

function verwijderBundelActie(strKey)
{
	/*objFormMain.action	= "/winkelwagentje/";
	objAktie.value			= "verwijderbundel"
	document.getElementById('lngProductID').value = lngProductID
	objFormMain.submit();*/
	window.location = "/winkelwagentje/verwijderbundelactie/" + strKey;
}


// 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();
}

// Submit kortingscode
function SubmitGiftcardCode()
{
	objFormMain.action 	= "/winkelwagentje/";
	objAktie.value			= "voegtoe-giftcard";
	objFormMain.submit();
}

// Submit kaartnummer Smart Concepts
function SubmitKaartnummer()
{
	objFormMain.action 	= "/winkelwagentje/";
	objAktie.value			= "update"
	objFormMain.submit();
}

// Check op geldigheid lidnummer vereniging eigen huis
function checkLidnummerVEH() {
	var ledennrVeh = $('#strLedennummerVEH');
	if (ledennrVeh.val() != "") {
		
		var lidnummerLookup = $('#lidnummer-lookup');
		lidnummerLookup.show('fast').html('Bezig met controleren, een ogenblik geduld a.u.b...');
		
		$.get('/AJAX/checklidnummer.aspx',{
			lidnummer: ledennrVeh.val()
		}, function(response){
			if (response == "NOTOK") {
				alert("Ongeldige lidnummer");
				lidnummerLookup.hide('fast')
			} else if (response == "102") {
					alert('Webservice aangeroepen vanaf ongeldig IP-nummer.');
			} else if (response == "201") {
					alert('Lidnummer niet herkend of foutief ingevuld.');
					$('#strStatusLedennummerVEH').val("NOTOK");
					$('#strAktie').val('update');
					$('#frmMain').attr('action', '/winkelwagentje/');
					$('#frmMain').submit();
			} else if (response == "0") {
					$('#strStatusLedennummerVEH').val("OK");
					$('#strAktie').val('update');
					$('#frmMain').attr('action', '/winkelwagentje/');
					$('#frmMain').submit();
			} else {
				alert('Ongeldige lidnummer.');
			}
			
			lidnummerLookup.hide('fast');
			
		});
	} else {
		alert('Geen lidnummer ingevuld!');
	}
	return false;
}

/* Korting verwijderen */
function verwijderVEHKorting() {
	$('#strStatusLedennummerVEH').val("NOTOK");
	$('#strAktie').val('update');
	$('#frmMain').attr('action', '/winkelwagentje/');
	$('#frmMain').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 marketingactie
function VerwijderMarketingActie(lngMarketingActieID)
{
	objFormMain.action	= "/winkelwagentje/";
	objAktie.value			= "verwijdermarketingactie"
	document.getElementById('lngProductID').value = lngMarketingActieID
	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();
}

// Vraag product
function VraagProduct(lngProductID, strEncodedKorteNaam)
{
	objFormMain.action	= "/vraag/" + strEncodedKorteNaam + "/" + 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());
	}
}

// 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();
	}
}

// Javacript link functie
function JavascriptLink(strURL)
{
	ShowLoading();
	window.location = strURL;
}

function JavascriptLinkNewWindow(strURL)
{window.open(strURL);}


//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;  
		}
	}
}

// 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(numItemID)
{
	//var strEmailAdres = document.getElementById('mailingemailadres').value;
	var strEmailAdres = $("#mailingemailadres_" + numItemID).val();
	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)';
		afbeelding.src = 'http://static.fonq.nl/data/producten/' + intProductID + '-normaal'+strExtra+'.jpg';
		zoomafbeelding.style.backgroundImage = 'url(http://static.fonq.nl/data/producten/' + intProductID + '-groot'+strExtra+'.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)';
		afbeelding.src = 'http://static.fonq.nl/data/producten/' + intShowProductID + '-normaal'+strExtra+'.jpg';
		zoomafbeelding.style.backgroundImage = 'url(http://static.fonq.nl/data/producten/' + intShowProductID + '-groot'+strExtra+'.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;
}


function getWinkelwagentjeMinimetURL(strURL, strFrm){

	var oRequest = new AJAX.Request(strURL, 
			{
				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==true) {
				// 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);
	}
}


function CheckFormulierPostcodeVeld()
{
	// Check geen NL
	if($('select[name=LANDID]').val() != '148') {
		$("#pc-status").html("<img height='12' src='/img/algemeen/content-onderdelen/veld-akkoord-klein.gif' />");
	} else {
		CheckFormulierVeld(document.getElementById('idPOSTCODE'));
	}
}

// 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';
	}
}

// Checks verenigingeigenhuis & Kortingscode
function CheckKortingCode(objKortingcode)
{
	var VEH = document.getElementById('strLedennummerVEH');
	if(VEH!=null)
	{
		if(objKortingcode.value!='')
		{
			VEH.value = '';
			VEH.disabled = true;
		}
		else
		{
			VEH.disabled = false;
		}
	}
}

function CheckVEH(objVEH)
{
	var kortingcode = document.getElementById('strKortingcode');
	if(kortingcode!=null)
	{
		if(objVEH.value!='')
		{
			kortingcode.value = '';
			kortingcode.disabled = true;
		}
		else
		{
			kortingcode.disabled = false;
		}
	}
}

// Betaalmethode rembours
function SelectBetaalMethode(objRadio)
{
	var rembours = objRadio.value=='rembours'?'true':'false';
	getWinkelwagentjeMinimetURL('/AJAX/winkelmandje-mini-handler.asp?rembours=' + rembours, 'frmMain');
}

function VerwijderGiftcard(strGiftcardNummer)
{
	window.location="/winkelwagentje/verwijdergiftcard/" + strGiftcardNummer + "/";
}

function TestRightNow() {
	var strRightNowProductNr = 'FONQ123';
	$('#contentcontainer').html('');
	$("<iframe />").attr({'id':'testiframe','frameborder':'0','width':'100%','src':'http://www.nu.nl'}).appendTo("#contentcontainer");
	//alert($('#testiframe', top.body.contents()).height());
	//alert(document.getElementById('testiframe').contentWindow.document.body.scrollHeight);

}

function GoMenuItem(objMenuItem, strID)
{
	var menu = $(objMenuItem);
	if(menu!=null)
	{
		menu.addClass('selected');
	  $('#lngSelectedMenuItem').val(strID);
	  
	  if(menu.attr('target')=='_blank')
	  {
	    window.open(menu.attr('href'));
	    return false;
	  }
	  else
	  {
		 	SubmitForm(menu.attr('href'));
		  return false;
		}
	}
	return false;
}

function DebugToggle()
{
	$('#DebugTimer').css('overflow', 'hidden');
	$('#DebugTimer').animate(
		{ width:'toggle'},
		100,
		function () {
			$('#DebugClose').toggle();
			$('#DebugLabel').toggle();
		}
	);
}

function showQweerySearch()
{
	$('#divtyperesult').css('display','block');
}

// Show Filter info
function showFilterInfo(objFilterLink, event)
{
	event = event?event:window.event;
	
	var strID = objFilterLink.getAttribute("filterid");
	var objFilterInfo = document.getElementById('filterinfo_' + strID);
	
	if(objFilterInfo)
	{
		//window.status = objFilterLink.offsetX;
	
		var posx=0; 
		var posy=0;
		
		if (event.pageX || event.pageY)
		{
			posx = event.pageX;
			posy = event.pageY;
		}
		else if (event.clientX || event.clientY)
		{
			posx = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
			posy = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		}

		objFilterInfo.style.top = posy - 2 +  'px';
		objFilterInfo.style.left = posx + 16 + 'px';

		$(objFilterInfo).show();
	}
}

// Hide Filter info
function hideFilterInfo(strID)
{
	$(document.getElementById('filterinfo_' + strID)).hide()
}

// dit is dubbel, gebruik NavigeerNaar of deze
function GoToUrl(url)
{
	window.location.href = url;
}

/*
	THE JS REWRITE PART
*/

/*
Cross browser js logging
*/
function log(msg) {
  if (typeof (console) !== 'undefined' && console != null) {
    var errorobj = new Array();
    for (var i = 0; i < arguments.length; i++) {
      errorobj.push(arguments[i]);
    }
    console.log(errorobj);
  }
}

/*
zorgt voor een verschuiving van de fonqheader
bij schermen die breed genoeg zijn
*/
function LTN_init_header() {

	var body = $("body");
	var $window = $(window);
	var fonqleft = null;
	var fonqmenu = null;
	
	if(body.hasClass("fonqshop")){
	
		fonqleft = $('#fonqleft');
		fonqmenu = $('#fonqmenu');
	
		$window.bind('resize', function(){
			if ($window.width() > 1620) {
				fonqleft.css('left', '-321px');
				fonqmenu.css('left', '141px');
			} else {
				fonqleft.css('left', '0px');
				fonqmenu.css('left', '460px');
			}
		});
		$window.trigger('resize');
		
	}
}



// Init menu
function LTN_init_menu()
{
	$("td.menuitem").each(function(index, item){
		var self = $(item);
		self.mouseover(ShowMenu);
		self.mouseout(HideMenu);
	});
}

// Check dead image links
// en laad product detail zoom (anders gaat die errors opleveren)
function LTN_check_dead_links(){

	$(".afbeelding img, .laatstbekekenthumb img").bind('error', function(e) {
		set_productimage_none(this);
	});
	
	LTN_init_product_detail_zoom();
}

function set_productimage_none(img){

	var staticcontentpath = $("#staticcontentpath").val();
	var src = img.src;

	var regexp = new RegExp(/^.*\\?\w+-(\w+)\.(\w{1,4})/gi);
	var matches = regexp.exec(src);
	var strFormaat = "mini", strExtension = "jpg"

	if(matches!=null)
	{
		if(matches.length==3)
		{
		  strFormaat = matches[1];
		  strExtension = matches[2];
			if (strExtension == 'jpg' || strExtension == 'png' || strExtension == 'gif') {
				switch(strFormaat) {
					case "mini":
						img.src = staticcontentpath+'/data/producten/none-mini.gif';
						break;
					case "klein":
						img.src = staticcontentpath+'/data/producten/none-klein.gif';
						break;
					case "groot":
						img.src = staticcontentpath+'/data/producten/none-groot.gif';
						break;
					case "normaal":
						img.src = staticcontentpath+'/data/producten/none-normaal.gif';
						break;
					default:
						break;
				}
			}
		}
 	}
	return false;
}

function LTN_check_dead_links_IE(){
	var images = $(".afbeelding img, .laatstbekekenthumb img");
	if ($.browser.msie) {
		images.each(function(index, item) {
			set_productimage_none_IE(item);
		});
	}
}

function set_productimage_none_IE(item){
	if (!item.complete) {
		set_productimage_none(item);
	}
	/*
	if (!item.complete) {
		return false;
	}

	if (typeof self.naturalWidth != "undefined" && item.naturalWidth == 0) {
		set_productimage_none(item);
	}   */
	/*if (!item.complete || (!$.browser.msie && (typeof item.naturalWidth == "undefined" || item.naturalWidth == 0)))
	{
		set_productimage_none(item);
	} */
};


/*
Winkelwagentje dropdownie
*/
function LTN_init_winkelwagentje(){

	// uitklap mandje
	var minimandje = $("#winkelwagen-mini");
	$("#winkelwagentje a.uitklap-anchor").bind("click", function(e){
		e.stopPropagation();
		
		minimandje.toggle();
		
		return false;
	});
	
	// mandje sluiten als er ergens anders geklikt wordt
	$(document).bind("mouseup", function(e){
		if(e.target.id != "aantalproducten")
			minimandje.hide();
	});
	
	$('#giftcards-button').live("click", function(event) {
	  $('.giftcards').toggle();
	  return false;
	});
}

/*
Product detail zoom ding
wordt aangeroepen in LTN_check_dead_links 
om errors te voorkomen
*/
function LTN_init_product_detail_zoom(){
	
	var zoomcontainer = $("#product-main-afbeelding");
	if(!zoomcontainer.length)
		return; // we zijn niet op een productdetailpagina

	// plugin hoeft niet geladen te worden als image niet bestaat
	var productImg = zoomcontainer.find(".zoom-anchor img");
	if(productImg.attr("src").indexOf("/none-normaal.gif") != -1)
		return false;
		
	// plugin laden
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.src = "/includes/js/jquery.jqzoom-core-pack.js";
	
	// deze functie wordt uitgevoerd wanneer de plugin geladen is
	function load_zoom(){
		
		// als de plugin toch geladen werd, maar de image bestaat toch niet moeten we ook stoppen
		if(productImg.attr("src").indexOf("/none-normaal.gif") != -1)
			return false;  
		
		// we kunnen verder dus gaan we de zoom initialiseren
		try{
		
			var target = zoomcontainer.find(".zoom-anchor");
			target.jqzoom({  
				zoomType: 'reverse',
				lens:true,
				zoomWidth: 365,
				zoomHeight: 271,
				xOffset:12,
				yOffset: 0,
				position:'right'
			}); 
		
		}catch(errore){}
	}
	
	// in ie werkt onload niet
	if( !(/MSIE/.test(navigator.userAgent)) ){
		script.onload = load_zoom;
	}
	else {
		script.onreadystatechange = function(){
			var readyState = this.readyState;
			if (readyState === 'loaded' || readyState === 'complete') {
				this.onreadystatechange = null;
				// als het geladen is -> uitvoeren
				load_zoom();
			}
		}
	}
	
	// daadwerkelijk laden van de plugin
	var head = document.getElementsByTagName("head")[0];
	head.appendChild(script);
	
}


/*
CUSTOM DROPDOWNS 
replaced een normale select
nog redelijk specifiek voor winkelwagentje -> roept WijzigAantal() aan
*/
function LTN_replace_dropdowns(){
	
	//# replace dropdown voor een `mooiere` versie
	// unobtrusive: geen js = normale dropdown
	var selects = $("select.custom-dropdown");

	return;
	
	// als er geen select is, niet vervangen
	if(!selects.length)
		return;
		
	$.each(selects, function(index, item){
	
		var select = $(item);
		var options = select.find("option");
		var current = null;
		var selectedli = null;
		
		// select opbouwen
		var newselect = $("<div />", {
			'class': 'custom-dropdown'
		});
		
		newselect.attr("class", select.attr("class"));
		
		var list = $("<ul />", {
			'class': 'dropdown'
		}).appendTo(newselect);
		
		// we moeten de value nu in een hidden field opslaan
		var hiddenfield = $("<input />", {
			name: select.attr("name"),
			type: 'hidden',
			value: select.val()
		}).appendTo(newselect);
		
		// options toevoegen + selectie werkend maken
		$.each(options, function(index, item){
			
			// nieuw item maken
			var li = $("<li />", {
				'html': item.innerHTML,
				'data-val': item.value,
				'class': item.selected ? "selected" : "",
				click: function(){
					
					var self = $(this);
					if(!self.hasClass("disabled")){
						
						// waarde zetten
						var value = self.attr("data-val");
						hiddenfield.val(value);
						
						// text+waarde omwisselen
						var oldval = current.attr("data-val");
						var oldhtml = current.html();
						var newhtml = self.html();
						var newval = value;
						
						self.addClass("selected");
						selectedli.removeClass("selected");
						
						current.attr("data-val", newval);
						current.html(newhtml);
						
						selectedli = self;
						
						// eventueel actie doen
						var action = select.attr("onchange");
						if(typeof(action) === 'function'){
							action.call();
						}
						
						newselect.removeClass("active-dropdown");
						
					}
					
				}
			}).appendTo(list);
			
			// inactieve items zetten
			if($(item).hasClass("disabled"))
				li.addClass("disabled");
			
		});
		
		// selected bovenaan zetten..
		selectedli = list.find("li.selected");
		current = $("<span />", {
			html: selectedli.html(),
			'data-val': selectedli.attr("data-val"),
			'class': 'current',
			click: function(){
				// actief togglen
				
				$(".active-dropdown").not(newselect).removeClass("active-dropdown");
				newselect.toggleClass("active-dropdown");
				
			}
		}).prependTo(newselect);
		
		// en uiteindelijk vervangen voor de select..
		select.replaceWith(newselect);
	
	});
	
}

function LTN_init_scrollable_bestsellers(){

	// als er wel een bestseller scrollable is, maar nog niet ingeladen -> laden
	var container = $("#bestsellers-container-wrapper");
	if(container.length && !container.find(".bestsellers-container").length) {
	
		// bestsellers ophalen
		var lngStramienID = $("#bestsellers-container-wrapper > span").text();
		$.post("/AJAX/stramien-handler.asp", {
			strAktie: "showbesteller",
			lngStramienID: lngStramienID
		}, function(response) {
			$("#bestsellers-container-wrapper").html(response);
			LTN_init_scrollable_bestsellers();
		});
		
		// nu niet verder..
		return;
	}
	
	var scroller = $(".bestsellers-container");
	if(!scroller)
		return;

	// alleen initialiseren als er items zijn..
	if(scroller.find(".items").length > 0){

		// next/prev uitzetten
		scroller.find("a.next, a.prev").bind('click', function(){ return false; });

		// load js
		var script = document.createElement("script");
		script.type = "text/javascript";
		script.src = "/includes/js/jquery.tools.custom.js";
		
		function load_bestsellers(){
			scroller.scrollable({ items: '.items', circular: true });
		}

		if( !(/MSIE/.test(navigator.userAgent)) ){
			script.onload = load_bestsellers;
		}
		else {
			script.onreadystatechange = function(){
				var readyState = this.readyState;
				if (readyState === 'loaded' || readyState === 'complete') {
					this.onreadystatechange = null;
					load_bestsellers();
				}
			}
		}

    scroller.find("img").error(function()
    {
   		set_productimage_none(this);
    });

		var head = document.getElementsByTagName("head")[0];
		head.appendChild(script);
	}
}

function LTN_init_bundelacties() {
	var container = $(".bundelactie-container-wrapper");
	if(container.length) {
		// bundelactie kan vaker voorkomen
		$(container).each(function () {
			// bundelactie ophalen
			var lngStramienID = $(this).attr('sid');
			$.getJSON("/AJAX/stramien-handler.asp", {
				strAktie: "showbundelactie",
				lngStramienID: lngStramienID
			}, function(response) {
				if (response != null) {
					$(".bundelactie-container-wrapper[sid=" + response[0].sid + "]").html(unescape(response[0].bundelactietekst));
				}
			});
		});
	}
}

function LTN_init_timeticker() {
	if($(".time-ticker").length) {
    $(".time-ticker").each(function() {
			var self = $(this);
			$.post("/AJAX/stramien-handler.asp", {
				strAktie: "showtimeticker",
				lngID: self.attr('id')
			}, function(response) {
				self.html(response);
			});
		});
	}
}

function LTN_init_maxlength() {
	var textFields = $(".hasMaxLength")
	if (textFields.length) {
		// plugin laden
		$.getScript("/includes/js/jquery.maxlength.js", 
			function() {
				$('.hasMaxLength').maxlength();
			});
	}
}

function LTN_init_giftfinder() {
	if($(".giftfinder-wrapper").length) {
		/* Aantal fieldsets */
		var giftfinder_fieldsetCount = $('#formElem').children().length;

		var giftfinder_price = '';
		var giftfinder_gender = '';
		var giftfinder_age = '';
		var giftfinder_categorie = '';

		// begin positie
		var giftfinder_current		= 1;

		/* Optellen fieldset breedtes */
		var stepsWidth	= 0;
		var widths		= new Array();
		$('#steps .step').each(function(i){
			var $step			= $(this);
			widths[i]			= stepsWidth;
			stepsWidth		+= this.offsetWidth;
		});

		$('#steps').width(stepsWidth);

		$('#navigation a').bind('click',function(e) {
			var navIndex = $(this).parent().index() + 1;

			giftfinder_current = navIndex;

			//Zoeken
			if(navIndex == 4) {
				//Alleen werkend als er een keuze is gemaakt
				if ((giftfinder_price != '') || (giftfinder_gender != '') || (giftfinder_categorie != '')) {
					redirectLastGiftfinderStep();
				}
			} else {
				goToCurrentGiftfinderStep();
			}
		});

		$('.geslachtselectie').click(function(e) {
			var strGeslacht = $(this).attr('gender');

			giftfinder_gender = strGeslacht;
			giftfinder_current = 2;

			e.preventDefault();

			goToCurrentGiftfinderStep();
		});

		$('.prijsselectie').click(function(e) {
			var strPrijs = $(this).attr('prijs');

			giftfinder_price = strPrijs;
			giftfinder_current = 3;

			e.preventDefault();

			goToCurrentGiftfinderStep();
		});

		$('.categorieselectie').click(function(e) {
			var strCategorie = $(this).attr('cat');

			giftfinder_categorie = strCategorie;

			redirectLastGiftfinderStep();

			goToCurrentGiftfinderStep();
		});

		function goToCurrentGiftfinderStep() {
			$('#steps').stop().animate({
					marginLeft: '-' + widths[giftfinder_current-1] + 'px'
				}, 500, function() {
			});
		} 

		function redirectLastGiftfinderStep() {
			var strURL = '';
			strURL += "/producten/voorraad-ja/metacategorie-x/";

			if (giftfinder_price != '') {
				strURL += "prijs-" + giftfinder_price + "/";
			}

			if (giftfinder_gender != '') {
				strURL += "giftfinder_geslacht-" + giftfinder_gender + "/";
			}

			if (giftfinder_categorie != '') {
				strURL += "giftfinder_categorie-" + giftfinder_categorie + "/";
			}

			window.location = strURL;
		}
	}
}


//show korting code input field dynamicly
$(".giftcards.winkelwagenproducten .selecttype").bind("click", function () {
	var self = $(this);
	// andere radio buttons moeten uit, en het detail gedeelte verborgen, eigen radio value moet aan (blijven) en detail gedeelte moet getoond worden
	$(".giftcards.winkelwagenproducten .selecttype").each(function () {
		if (self[0] != this) {
			this.checked = false;
		}
	});

	KortingDetailVisibility();
});

function KortingDetailVisibility() {
	$(".giftcards.winkelwagenproducten .selecttype").each(function () {
		var detail = $(this).parent().parent().parent().find(".korting-detail");
		if (this.checked) {
			detail.show();
		} else {
			detail.hide();
		}
	});
}

$(function() {
	LTN_init_timeticker();
	LTN_init_header();
	LTN_init_scrollable_bestsellers();
	LTN_init_bundelacties();
	LTN_replace_dropdowns();
	LTN_init_winkelwagentje();
	LTN_init_maxlength();
	LTN_init_giftfinder();
	LTN_check_dead_links();

	KortingDetailVisibility();
});

$(window).load(function() {
	if ($.browser.msie) {
		LTN_check_dead_links_IE();
	}
});
