//<script language="JavaScript">
// Leave this SCRIPTtag here! It enables colorcoding for
// external .JS files in InterDev

var		oXMLhttp;
var		sCurrentlyViewed = '';
var		sAllOn	= true;
var		oWindow	= false;
var		objTimeOut;
var     bFormDirty = false;

function fnFormCheckAndSubmit(oFrm,arrRequired,arrTitles)
{

	//var arrRequired = new Array('Naam','Voornaam','Achternaam','eMail','Username','Password');
	//var arrTitles	= new Array('Bedrijfsnaam','Voornaam','Achternaam','Emailadres','Gebruikersnaam','Wachtwoord');

	var bHasValue;
	
	for (var iCnt=0;iCnt<arrRequired.length;iCnt++)
	{

		bHasValue = false;

		switch ( oFrm[arrRequired[iCnt]].type )
		{
			case 'hidden':
				if (oFrm[arrRequired[iCnt]].value != '')
					bHasValue = true;
				break;
			case 'text':
				if (oFrm[arrRequired[iCnt]].value != '')
					bHasValue = true;
				break;
			case 'password':
				if (oFrm[arrRequired[iCnt]].value != '')
					bHasValue = true;
				break;
			case 'checkbox':
				if ( oFrm[arrRequired[iCnt]].checked )
					bHasValue = true;
				break;
		}

		if (!bHasValue)
		{
			alert('Het veld ' + arrTitles[iCnt] + ' is verplicht');
			if (oFrm[arrRequired[iCnt]].type != 'hidden')
				oFrm[arrRequired[iCnt]].focus();
			return false;
		}
	}
	
		
	oFrm.submit();
}

//===========================================================

function fnOrderCheckAndSubmit(oFrm, selectdate)
{
	
	oFrm['DeliveryDate'].value = selectdate;
	
	
	switch ( oFrm['payMethod'].value )
	{
		case 'oprekening_user':
			//var arrRequired = new Array('adres_Rg','Email','order_orderedby','akkoordverkoopvw');
			//var arrTitles	= new Array('Factuuradres','E-mail','Naam Besteller','Gaat u akkoord met de verkoopvoorwaarden');
			var arrRequired = new Array('adres_Rg','order_orderedby','akkoordverkoopvw');
			var arrTitles	= new Array('Factuuradres','Naam Besteller','Gaat u akkoord met de verkoopvoorwaarden');

			break;
			
		case 'ideal':
			var arrRequired = new Array('Adres','Postcode','Plaats','Telefoon','Email','akkoordideal');
			var arrTitles	= new Array('Adres','Postcode','Plaats','Telefoon','E-Mail','Gaat u akkoord met de verkoopvoorwaarden');
			break;	
			
		case 'CreditCard':
			var arrRequired = new Array('Adres','Postcode','Plaats','Telefoon','Email','akkoordcard');
			var arrTitles	= new Array('Adres','Postcode','Plaats','Telefoon','E-Mail','Gaat u akkoord met de verkoopvoorwaarden');
			break;	

		case 'oprekening':
			var arrRequired = new Array('Naam','Adres','Postcode','Plaats','Kvk','Telefoon','Email','order_orderedby','akkoordverkoopvw');
			var arrTitles	= new Array('Bedrijfsnaam','Adres','Postcode','Plaats','KvK Nummer','Telefoon','E-mail','Naam Besteller','Gaat u akkoord met de verkoopvoorwaarden');
			break;

		case 'incasso':
			var arrRequired = new Array('bestelnaam','besteltelefoon','Adres','Postcode','Plaats','Email','incassobank','incassonummer','incassohouder','akkoordverkoopvw','akkoordincasso');
			var arrTitles	= new Array('Uw naam','Uw telefoonnummer','Adres','Postcode','Plaats','E-mail','Naam van de bank','Het rekeningnummer','Naam rekeninghouder','Gaat u akkoord met de verkoopvoorwaarden','Gaat u akkoord met een eenmalige incasso');

			break;

		case 'vooruit':
			var arrRequired = new Array('Adres','Postcode','Plaats','Telefoon','Email','akkoordverkoopvw');
			var arrTitles	= new Array('Adres','Postcode','Plaats','Telefoon','E-Mail','Gaat u akkoord met de verkoopvoorwaarden');

			break;
	}

	for (var iCnt=0;iCnt<arrRequired.length;iCnt++)
	{
		bHasValue = false;
		switch ( oFrm[arrRequired[iCnt]].type )
		{
			case 'checkbox':
				if ( oFrm[arrRequired[iCnt]].checked )
					bHasValue = true;
				break;

			default:
				if (oFrm[arrRequired[iCnt]].value != '')
					bHasValue = true;
				break;
		}

		if (!bHasValue)
		{
			alert('Het veld ' + arrTitles[iCnt] + ' is verplicht');
			return false;
		}
	}
	oFrm.submit();
}

//===========================================================

function fnCheckAllAddressCheckbox(sTmpAllOn,sOrderLineRg)
{
	// Some variables
	var oFrm			= document.forms['selectAddress'];
	var bUpdated		= false;
	
	if(document.getElementById('12').checked) {
		sTmpAllOn = true;
	}
	else {
		sTmpAllOn = false;
	}
	
	
	// Loop through all input boxes
	for (var iCnt=0,iLen=oFrm.length;iCnt<iLen;iCnt++)
	{
		var oFrmItem = oFrm.elements[iCnt];
		// Only interested in the checkbox ones
		switch (oFrmItem.type)
		{
		case 'checkbox':
			if (oFrmItem.checked != sTmpAllOn && oFrmItem.id != '12')
			{
				oFrmItem.checked = (sTmpAllOn == true) ? true : false ;
				fnCheckAddressCheckbox(oFrmItem.id, sOrderLineRg, oFrmItem.value, '', false);
				bUpdated = true;
			}
			break;
		}
	}

}

//===========================================================

// Function that adds an address to the orderline
// using javascript calling an file that handles the request
function fnCheckAddressCheckbox(frmItem, sOrderlineRg, sSavedAddressRg, sNoneSavedAddressRg,bAantalChange)
{
	var oXMLhttp	= fnXMLObject();
	var tmpDate		= new Date();

	if (frmItem != '')
	{
		var iAantal		= document.getElementById('aantal'+ frmItem).value;

		if (!bAantalChange)
		{
			if (!document.getElementById(frmItem).checked)
			{
				iAantal = 0;
				document.getElementById('aantal'+ frmItem).value = '';
			}
			else
			{
				iAantal = 1;
				document.getElementById('aantal'+ frmItem).value = iAantal;
			}
		}
		else
		{
			if (!iAantal > 0)
			{
				iAantal = 0;
				document.getElementById('aantal'+ frmItem).value = '';
			}
		}
		// build the the be requested URL. Including a timestamp avoiding caching(somehow it did some caching before)
		sURL = '/shop/xmlget.asp?a=setOrderAddress&sOrder='+sOrderlineRg +'&sSavedA='+sSavedAddressRg+'&sA='+sNoneSavedAddressRg+'&iAantal='+iAantal+'&timeStamp='+tmpDate.getHours()+'_'+tmpDate.getMinutes()+'_'+tmpDate.getSeconds();

	}
	else
	{
		var iAantal = 0
		sURL = '/shop/xmlget.asp?a=&sOrder='+sOrderlineRg +'&sSavedA='+sSavedAddressRg+'&sA='+sNoneSavedAddressRg+'&iAantal='+iAantal+'&timeStamp='+tmpDate.getHours()+'_'+tmpDate.getMinutes()+'_'+tmpDate.getSeconds();
	}



	// Check if XML component is available
	if (oXMLhttp)
	{
		// Request URL
		oXMLhttp.open("GET",sURL,true);
		oXMLhttp.onreadystatechange=function() {
			// Action is fired when state is changed
			// state 4 = request complete
			if (oXMLhttp.readyState==4)
				eval(oXMLhttp.responseText);
		}
		oXMLhttp.setRequestHeader('Accept','message/x-formresult');
		oXMLhttp.send(null);
	}
	return false;
}

//===========================================================
// Function for removing an address directly from the
// page viewing the cart. Remove address returns document.reload
// so webpage is also updated
function fnRemoveAddressFromOrderline(sOrderlineRg, sSavedAddressRg, sNoneSavedAddressRg)
{
	var oXMLhttp	= fnXMLObject();
	var tmpDate		= new Date();

	// build the the be requested URL. Including a timestamp avoiding caching(somehow it did some caching before)
	sURL = '/shop/xmlget.asp?a=removeaddress&sOrder='+sOrderlineRg +'&sSavedA='+sSavedAddressRg+'&sA='+sNoneSavedAddressRg+'&timeStamp='+tmpDate.getHours()+'_'+tmpDate.getMinutes()+'_'+tmpDate.getSeconds();

	// Check if XML component is available
	if (oXMLhttp)
	{
		// Request URL
		oXMLhttp.open("GET",sURL,true);
		oXMLhttp.onreadystatechange=function() {
			// Action is fired when state is changed
			// state 4 = request complete
			if (oXMLhttp.readyState==4)
				eval(oXMLhttp.responseText);
		}
		oXMLhttp.setRequestHeader('Accept','message/x-formresult');
		oXMLhttp.send(null);
	}
	return false;
}

//===========================================================
// Function for removing an address directly from the
// page viewing the cart. Remove address returns document.reload
// so webpage is also updated
function fnRemoveAddressFromOrderline(sOrderlineRg, sSavedAddressRg, sNoneSavedAddressRg)
{
	var oXMLhttp	= fnXMLObject();
	var tmpDate		= new Date();

	// build the the be requested URL. Including a timestamp avoiding caching(somehow it did some caching before)
	sURL = '/shop/xmlget.asp?a=removeaddress&sOrder='+sOrderlineRg +'&sSavedA='+sSavedAddressRg+'&sA='+sNoneSavedAddressRg+'&timeStamp='+tmpDate.getHours()+'_'+tmpDate.getMinutes()+'_'+tmpDate.getSeconds();

	// Check if XML component is available
	if (oXMLhttp)
	{
		// Request URL
		oXMLhttp.open("GET",sURL,true);
		oXMLhttp.onreadystatechange=function() {
			// Action is fired when state is changed
			// state 4 = request complete
			if (oXMLhttp.readyState==4)
				eval(oXMLhttp.responseText);
		}
		oXMLhttp.setRequestHeader('Accept','message/x-formresult');
		oXMLhttp.send(null);
	}
	return false;
}

function setValues(sValue)
{
	AjaxCall('/shop/ajax_taarten.asp?GetType=test&key=' + sValue, 1, '');
}

//===========================================================
/*function fnArticleDetailOrderDiv
	functie aangepast naar nieuwe functionaliteit. Ook kijken wanneer sDiv leeg is. Dan namelijk niets doen wat betreft het tonen. Er hoeft niets getoond te worden.
	Wanneer je nog een keer een switch maakte, werd sCurrentlyViewed niet meer ingevuld, omdat deze onderaan stond. Daar kwam de functie dan niet meer langs.
*/
//===========================================================
function fnArticleDetailOrderDiv(sDiv)
{
	document.getElementById('divPrijzen').innerHTML = document.getElementById('PrijsDiv_' + sDiv).innerHTML
	
	if(sDiv !== ''){
		objDiv = document.getElementById(sDiv + '_div');
		objTekst = document.getElementById(sDiv + '_bestelDIV');
		dTekst = false;
		if (objTekst != null)
			dTekst = true;
		// Lets check if the selected object is allready viewed
		if (objDiv.style.display == 'block')
		{	// Hide object
			objDiv.style.display = 'none';
			if (dTekst)
				objTekst.style.display = 'inline';
		}
		else
		{	// Show object
			objDiv.style.display = 'block';
			if (dTekst)
				objTekst.style.display = 'none';
		}
	}
	var sCurrViewPart;
	sCurrViewPart = sCurrentlyViewed;
	
	// Assign new to var for reminding
	sCurrentlyViewed = sDiv;
		
	// If currently viewed object exists AND is different
	// then the new object than hide currently viewed object

	if (sCurrViewPart != '')
	{		
					
		if (typeof(document.getElementById(sCurrViewPart + '_div')) != 'undefined' && sCurrViewPart != sDiv)
		{			
			document.getElementById(sCurrViewPart + '_div').style.display = 'none';

			try
			{
				//alert('test besteldiv = ' + typeof(document.getElementById(sCurrViewPart + '_bestelDIV')) )
				document.getElementById(sCurrViewPart + '_bestelDIV').style.display = 'block';
							
			}
			catch(ev)
			{
				return true;
			}
		}
	}

	
	
}


//===========================================================
// Function for caculating a price from an pricingtable
// returning only the price
function fnGetLowest(objAantal,sFrm,arrStaffel)
{
	if (arrStaffel.length > 0)
	{
		objAantal.value = arrStaffel[0];
	}
	else
	{
		objAantal.value = '1';
	}

	eval("document.getElementById('" + sFrm + "_subarticles').value=fnFormatCurrency(fnCalculateFromPriceTable('"+sFrm+"',objAantal,objAantal.value,arrLst_"+sFrm+",arrPrs_"+sFrm+",true))");
	eval("document.getElementById('" + sFrm + "_subarticles_base').value=fnFormatCurrency(fnCalculateFromPriceTable('"+sFrm+"',objAantal,objAantal.value,arrLst_"+sFrm+",arrPrs_"+sFrm+",true))");
	fnUpdatePrices(sFrm);
}

//===========================================================
// Function for caculating a price from an pricingtable
// returning only the price
function fnCalculateFromPriceTable(objForm,objAantal,flToBeOrdered, arrStaffel, arrStaffelPijzen, bArticle)
{
	sPrijs							= 0;
	flToBeOrdered				= parseFloat( (flToBeOrdered) );
	iCountFrom					= 1;
	iArrLength					= arrStaffel.length;
	iToBeOrdered				= parseFloat(flToBeOrdered);
	blnDone							= false;
	iPrijseenheid				= 1;
	iBestelEenheid			= 1;


	iBestelEenheid			= parseInt( eval("document." + objForm + ".besteleenheid.value") );
	iPrijseenheid				= parseInt( eval("document." + objForm + ".prijseenheid.value") );

	if (iArrLength > 0 && arrStaffel.length == arrStaffelPijzen.length)
	{
		for (var iCount=iArrLength-1; iCount >= 0; iCount--)
		{
			iCountFrom	= arrStaffel[iCount];
			//alert( iToBeOrdered + ">=" + iCountFrom + " && (" + flToBeOrdered * iPrijseenheid + ")%" + iBestelEenheid + "==0) : " + flToBeOrdered + "*" + iPrijseenheid + " = " + (flToBeOrdered*iPrijseenheid)%iPrijseenheid );
			if (iToBeOrdered >= iCountFrom && (flToBeOrdered*iPrijseenheid)%iBestelEenheid==0)
			{
				if (arrStaffelPijzen[iCount] != '')
					sPrijs = iToBeOrdered * arrStaffelPijzen[iCount];
				else
					sPrijs = '';

				//alert( sPrijs + ' = ' + iToBeOrdered + ' * ' + arrStaffelPijzen[iCount] );
				blnDone = true;
				break;
			}
		}
	}

	//alert(sPrijs);
	if (sPrijs != '' && sPrijs < 0)
		sPrijs = 0;

	//alert(sPrijs);
	if (bArticle)
	{
		if (!blnDone)
		{
			try
			{
				document.getElementById(objForm+'_errorTD1').innerHTML		= '!';
				document.getElementById(objForm+'_errorTD1').style.display	= 'block';

				//document.getElementById(objForm+'_errorTD2').innerHTML		= 'U kunt dit artikel bestellen per '+iPrijseenheid+' en heeft een minimumaantal van ' + iCountFrom*iPrijseenheid + ' stuks.';
				document.getElementById(objForm+'_errorTD2').innerHTML		= 'U kunt dit artikel bestellen per '+iBestelEenheid+' en heeft een minimumaantal van ' + iCountFrom*iPrijseenheid + ' stuks.';
				document.getElementById(objForm+'_errorTD2').style.display	= 'block';
			}
			catch(ev)
			{
				return sPrijs;
			}
		}
		else
		{
			try
			{
				document.getElementById(objForm+'_errorTD1').innerHTML		= '';
				document.getElementById(objForm+'_errorTD1').style.display	= 'none';

				document.getElementById(objForm+'_errorTD2').innerHTML		= '';
				document.getElementById(objForm+'_errorTD2').style.display	= 'none';
			}
			catch(ev)
			{
				return sPrijs;
			}
		}
	}
	return sPrijs;

}

//===========================================================
var sCurrentMethod = '';
function fnSwitchPayMethod(sNewMethod, selectdate)
{
	var locationOld 
	var locationNew
	var selectedDate
	var selectedTime
	
	if (sCurrentMethod != sNewMethod)
	{
		if (sCurrentMethod != '')
			document.getElementById(sCurrentMethod).style.display = 'none';

		document.getElementById(sNewMethod).style.display = 'block';
	}

	//document.location.href	= '#' + sNewMethod;
	//document.location.href = '&betaalmethode=' + sNewMethod 
	sCurrentMethod			= sNewMethod;

//alert('hoi')
//alert(document.getElementById('tmpDeliveryDate').value)

	selectedDate = selectdate;
//	selectedTime = document.getElementById('tmpDeliveryTime').value.replace(":","~");
	
	locationOld = location.href;
	/*Hier de oude string met betaalmethode weer weghalen en vervolgens de nieuwe er achterplakken.
	anders komen ze allemaal achter elkaar en gaat het fout.*/
		
	//Eerst controleren of &betaalmethode in de string aanwezig is.
	if (locationOld.indexOf('&betaalmethode=')== -1){
		//Niet aanwezig dan er achter plaatsen.
		document.location = locationOld + '&betaalmethode=' + sNewMethod + '&leverdatum=' + selectedDate + '&tijd=' + selectedTime + '#' + sNewMethod;
	}else{
		//Reeds aanwezig, dan verwijderen en opnieuw plaatsen.
		var plaats
		plaats = locationOld.indexOf('&betaalmethode=');
		locationNew = locationOld.substr(0, plaats);		
		document.location = locationNew + '&betaalmethode=' + sNewMethod + '&leverdatum=' + selectedDate + '&tijd=' + selectedTime + '#' + sNewMethod;
	}
	
	document.location.reload;	
	return true;
}

//===========================================================
// Open a URL, if window.closed then
// the opener is reloaded to get latest data
function fnOpenUrlInWindow(sURL,sAction)
{
	var sOptions;
	var reload = false;

	switch (sAction)
	{
		case 'addaddress', 'listafleveraddresses':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=690,height=630,resizeable=1,scrollbars=yes';
			break;
		case 'listaddresses':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=690,height=630,resizeable=1,scrollbars=yes';
			reload		= true;
			break;
		case 'listafleveraddresses':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=690,height=630,resizeable=1,scrollbars=yes';
			reload		= true;
			break;
		case 'viewUploadImage':
			//sOptions	= 'dialogWidth:310px;dialogHeight:240px;resizeable:1';
			sOptions	= 'status=1,toolbar=0,navigation=0,width=310,height=240,resizeable=1,scrollbars=auto';
			break;
		case 'viewUploadDoc':
			//sOptions	= 'dialogWidth:310px;dialogHeight:240px;resizeable:1';
			sOptions	= 'status=1,toolbar=0,navigation=0,width=310,height=240,resizeable=1,scrollbars=auto';
			break;
		case 'viewUploadAddressImport':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=310,height=200,resizeable=1,scrollbars=auto';
			break;
		case 'listusers':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=690,height=630,resizeable=1,scrollbars=yes';
			break;
		case 'VerkoopVW':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=550,height=630,resizeable=1,scrollbars=yes';
			break;
		case 'aanvraagformulier':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=410,height=600,resizeable=1,scrollbars=yes';
			break;
		case 'grotefoto':
			sOptions	= 'status=0,toolbar=0,navigation=0,width=300,height=350,resizeable=1,scrollbars=no';
			break;
		case 'listsimpleaddresses':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=432,height=630,resizeable=1,scrollbars=yes';
			break;
		case 'orderlist':
			sOptions	= 'status=1,toolbar=0,navigation=0,width=690,height=630,resizeable=1,scrollbars=yes';
			break;
		default:
			sOptions = '';
			break;
	}
		

	//if (sAction = 'viewUploadImage')
	//	oWindow = window.showModelessDialog(sURL, sAction, sOptions);
	//else
		oWindow = window.open(sURL,sAction,sOptions);
	//if (oWindow && sAction == 'grotefoto')
	//{
	//	alert( oWindow.images.length );
		//oWindow.resizeTo( oWindow.images[0].width.value ,oWindow.document.images[0].height.value );

	//}

	if ( !oWindow )
		alert('Uw computer(browser) blokkeerd popups, houd de CTRL toets ingedrukt en klik opnieuw op de link om de pagina te openen.');
	else if (reload)
		fnCheckWindow();
}

//===========================================================
// function that checks if the opened window still exists
// if NOT then the opener of the window is reloaded
function fnCheckWindow()
{
	//alert( oWindow.closed );
	if ( !oWindow.closed )
		setTimeout("fnCheckWindow();",500);
	else
		document.location.reload();
}

//===========================================================
// Format a nice price!
function fnFormatCurrency(dValue)
{
	dValue = dValue.toString().replace(/\$|\,/g,'');

	if (isNaN(dValue))
		dValue = "0";

	sign	= (dValue == (dValue = Math.abs(dValue)));
	dValue	= Math.floor(dValue*100+0.50000000001);
	cents	= dValue%100;
	dValue	= Math.floor(dValue/100).toString();

	if (cents<10)
		cents = "0" + cents;

	//alert(dValue);
	return ( ((sign)?'':'-') + dValue+ '.' + cents );
}

//===========================================================
function NEWfnUpdatePrices(frm)
{
	
}

function fnUpdatePrices(frm)
{
	
	sTmpTotal = 0;
	sTmpVal = 0;

	objFrm = document.forms[frm];

	// Loop het gehele formulier door
	for (i=0;i < objFrm.length; i++)
	{
		// De checkboxes bepalen de geselecteerde opties, dus alleen die bekijken
		// de naam van het item mag niet eindigen op "_waarde"
		if (objFrm[i].type == 'checkbox' && String(objFrm[i].name).substring(String(objFrm[i].name).length, String(objFrm[i].name).length - 7) != '_waarde')
		{

				// Als het subtotaal van het artikel 0 is of de
				// checbox unchecked dan is het subtotaal van deze optie 0
				if (!objFrm[i].checked || !parseFloat(document.getElementById(frm + '_subarticles').value) > 0)
					sTmpVal = 0;
				else // anders gaat hij op basis van het array(met staffels) bij deze optie de juiste prijs selecteren
					sTmpVal = fnCalculateFromPriceTable(frm,document.getElementById(frm + '_user_aantal'), document.getElementById(frm + '_user_aantal').value, eval('arrLst_'+ objFrm[i].name) , eval('arrPrs_'+ objFrm[i].name), false );

				// als checkbox aan, en TmpVal = 0 dan is het een gratis op
				// LET OP! Als sTmpVal leeg is dan is de optie NIET gratis maar op nacalculatie
				if (sTmpVal.toString() != '' && sTmpVal == 0 && objFrm[i].checked)
					document.forms[frm].elements[objFrm[i].name+'_subtotaal'].value = 'gratis';
				else
				{
					// Prijs van de optie weergeven als TmpVal > 0 (en niet leeg)
					// tevens het totaal ophogen met TmpVal
					if (sTmpVal.toString() != '' && sTmpVal > 0)
					{
						document.forms[frm].elements[objFrm[i].name+'_subtotaal'].value = fnFormatCurrency(sTmpVal);
						sTmpTotal = parseFloat(sTmpTotal) + sTmpVal;
					}
					else // Anders niets weergeven achter de optie (waar normaal de prijs staat)
						document.forms[frm].elements[objFrm[i].name+'_subtotaal'].value = '';
			}
		}
	}

	// De totaalprijs weergeven in het formulier
	document.getElementById(frm + '_total').value = fnFormatCurrency(parseFloat(document.getElementById(frm + '_subarticles').value) + sTmpTotal);
}

//===========================================================
/*
function fnSubmitAddToCart
*/
//===========================================================
function fnSubmitAddToCart(frm,frmNext_value)
{
	// Variable for yes/no submitting of form
	blnAantal					= false;
	blnAantal2				= false;
	blnOptionSelectedButEmpty	= false;
	sMessage					= '';
	sOptieRg					= '';
	blnChecked					= false;
	
	//Als het gaat om het selecteren van een datum, dan extra check op het datum veld.
	
	for (iTmp=0,iTo=frm.length; iTmp<iTo; iTmp++)
	{
		// Only check the fields named "optie_UNIQUEIDENTIFIER"
		if (( frm[iTmp].name.substring(0,6) == 'optie_' ) && ( frm[iTmp].name.length == 38 ))
		{
			if ( sOptieRg != frm[iTmp].name.substring(6,frm[iTmp].name.length) )
			{
				sOptieRg = frm[iTmp].name.substring(6,frm[iTmp].name.length);
				// alert('checked' + frm['optie_' + sOptieRg].checked + ' en optie_' + sOptieRg + '_waarde = ' + frm['optie_' + sOptieRg + '_waarde'] );
				
				if (frm['optie_' + sOptieRg].checked) {
					blnChecked = true;
				}
				
				if ( frm['optie_' + sOptieRg].checked && frm['optie_' + sOptieRg + '_waarde'].value == '' )
				{
					blnOptionSelectedButEmpty = true;

					// Give an error depending on the type of the requested input
					switch(frm['optie_' + sOptieRg + '_waarde'].type)
					{
					case 'file':
						sMessage = sMessage + '- De optie \''+frm['optie_' + sOptieRg + '_titel'].value +'\' is aangevinkt, selecteer een foto\n';
						break;
					case 'text':
						sMessage = sMessage + '- De optie \''+frm['optie_' + sOptieRg + '_titel'].value +'\' is aangevinkt, voer een tekst in\n';
						break;
					case 'textarea':
						sMessage = sMessage + '- De optie \''+frm['optie_' + sOptieRg + '_titel'].value +'\' is aangevinkt, voer een tekst in\n';
						break;
					default:
						sMessage = sMessage + '- De optie \''+frm['optie_' + sOptieRg + '_titel'].value +'\' is aangevinkt, voer een waarde in\n';
						break;
					}
				}
			}
		}
	}
	
	// Form checks
	if (frm[frm.name + '_aantal'].value > 0)
		blnAantal	 = true;
	else
		sMessage = '- Voer een aantal in van minimaal 1\n' + sMessage

	iPrijseenheid	= parseInt( frm.prijseenheid.value );
	iBestelEenheid= parseInt( frm.besteleenheid.value );

	if (frm[frm.name + '_user_aantal'].value%iBestelEenheid==0)
		blnAantal2 = true
	else
		sMessage = '- U kunt dit artikel alleen bestellen per ' + iBestelEenheid + sMessage
		
	

	// Assign value to variable for the next step
	frm.next.value=frmNext_value;

	if (blnAantal && blnAantal2 && !blnOptionSelectedButEmpty)
		if (!blnChecked) {
			if(window.confirm('Weet u zeker dat u geen tekst bij de taart wilt?')) {
				return true;
			}
			else {
				return false;
			}
		}
		else {
			return true;
		}
	else
	{
		alert('Dit artikel kan niet in het winkelwagentje geplaatst worden met de volgende reden(en):\n\n' + sMessage + '\nPas uw bestelformulier aan en kies opnieuw voor bestel.');
		return false;
	}
}

//===========================================================
// This functions creates a new XML object
// it makes it possible sending requests to the server without completly
// refreshing the page
function fnXMLObject()
{
	var oTmp = false;
	try
    {
        oTmp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
        try
        {
            oTmp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(oc)
        {
            oTmp = false;
        }
    }

	if (!oTmp && typeof XMLHttpRequest != 'undefined')
	{
		try {
			oTmp = new XMLHttpRequest();
		}
		catch (ev) {
			oTmp = false;
		}
	}
	return oTmp;
}

//===========================================================
function fnGrayZoek(toggle) {
	if(toggle) {
			if(document.activeElement.id!='INPUTZOEKID') document.getElementById('IMGZOEKID').style.filter = 'gray()'
		} else {
			document.getElementById('IMGZOEKID').style.filter = ''
		}
}

//===========================================================
//Functie om de radiobutton leverdatum2 aan te zetten.
function checkRadioButton(){	
	var y 
	y = document.getElementById('leverdatum2');
	y.checked = true;
}

//===========================================================
// function AutoFill_Time
// deze functie vult automatisch de tijdinvoer aan
// als 1 getal => 0 ervoor en :00 erachter
// als 2 getallen => :00 erachter
// als 3 getallen en eerste geen 1 => 0 ervoor, : in het midden
// als 3 getallen en eerste wel 1 => 0 erachter, : in het midden
// als 4 getallen => : in het midden
function AutoFill_Time(varobj) {
	var sTimeVal;
	var sTimeSep;
	
	sTimeVal = varobj.value;
	sTimeSep = ':';
	//alert ('sTimeVal=' + sTimeVal);
	//strip alle niet nummers
   sTimeVal = sTimeVal.replace(/[\D]/g,'')
	
	if (sTimeVal.length > 0 ) {
		if (sTimeVal.length == 4) {
			sTimeVal = sTimeVal.substr(0,2) + sTimeSep + sTimeVal.substr(2,2);
		} else if (sTimeVal.length == 3) {
			if ((sTimeVal.substr(0,1) == '1') || (sTimeVal.substr(0,1) == '0')) {
				 sTimeVal = sTimeVal.substr(0,2) + sTimeSep + sTimeVal.substr(2,1) + '0';
			} else {
				 sTimeVal = '0' + sTimeVal.substr(0,1) + sTimeSep + sTimeVal.substr(1,2);
			}
		} else if (sTimeVal.length == 2) {
			if ((sTimeVal.substr(0,1) == '1') || (sTimeVal.substr(0,1) == '0')) {
				sTimeVal = sTimeVal.substr(0,2) + sTimeSep + '00';
			} else {
				sTimeVal = '0' + sTimeVal.substr(0,1) + sTimeSep + sTimeVal.substr(1,1) + '0';
			}
		} else if (sTimeVal.length == 1) {
			sTimeVal = '0' + sTimeVal + sTimeSep + '00';
		}
		varobj.value = sTimeVal;
	} 
}

// End tag to enable InterDev ColorCoding
//</script>

//===========================================================
// function loadIdeal
// Deze functie dient een aparte pagina te openen in een nieuw scherm.
// Hierbij dienen wel enkele gegevens te worden doorgegeven. Het gaat om het ordernummer en het totaalbedrag.

function loadIdeal(ordernummer, totaalbedrag, sha_one ) {			
	window.open('OgonePayment.asp?ordernr=' + ordernummer + '&TotaalBedrag=' + totaalbedrag + '&sha_one=' + sha_one, '_self', 'Betaling middels iDEAL',
	 'width=200,height=100,resizable=yes,scrollbars=yes,toolbar=yes,location=yes'); 

}

//===========================================================
//Function redirectHome 
//Deze functie leidt de klant terug naar de homepage.
function redirectHome(hoofdstukRg, paginaRg){

	var userRg = requestParameter("user_rg");
	var sessionRg = requestParameter("session_rg");	
	var hostDir = location.host
			
//	location = response.redirect "/?l=home&pagina_rg=" & rs("pagina_rg") & "&hoofdstuk_rg=" & rs("hoofdstuk_rg")

location = "/?l=home&pagina_rg=" + paginaRg + "&hoofdstuk_rg=" + hoofdstukRg + "&session_rg=" + sessionRg + "&user_rg=" + userRg;

}

//===========================================================
//Function requestParameter()
function requestParameter(sParam)
{
	var d=document.location.search;
	
	sParam = sParam.toLowerCase();
	
	if(sParam.length==0)
	return null;
	
	if(d.length>=0)
	oParams = d.substring(1).toLowerCase().split("&");
	
	for(var i = 0; i < oParams.length; i++)
	if(oParams[i].indexOf(sParam) == 0)
	return unescape(oParams[i].substring(sParam.length+1));
	
	return "";
}

//===========================================================
//Functie voor het openen van een printbare versie van een bestellingsoverzicht
function loadPrint(ordernr, cartNr, totaalbedrag, taxFree) {	
	var sURL
	var sAction
	var sOptions
	
	sURL = 'shop/orderPrint.asp?nummer=' + ordernr + '&cartNr=' + cartNr + '&totaal=' + totaalbedrag + '&tax=' + taxFree
	sOptions = 'status=1,toolbar=0,navigation=0,width=690,height=630,resizeable=1,scrollbars=yes';
			
	//window.open('shop/orderPrint.asp?nummer=' + ordernr + '&cartNr=' + cartNr + '&totaal=' + totaalbedrag + '&tax=' + taxFree, '_blank', 'Overzicht bestelling', 'menubar=yes,width=200,height=100,resizable=yes,scrollbars=yes,toolbar=yes,location=yes'); 

	window.open(sURL,'overzicht',sOptions);
}

//===========================================================
/*
addDateToOrder
Voert de geselecteerde datum door in een leesbaar veld en bepaald de volgende actie. Wanneer geen datum is geselecteerd, wordt een melding gegeven.
*/
function addDateToOrder(actie)

{	

	// Assign value to variable for the next step
	document.getElementById('next').value = actie;
//	document.getElementById('selectedDate_fld').value = document.getElementById('selectedDate').innerHTML;
	if (document.getElementById('selectedDate_fld').value == '') {
		alert('U dient eerst de afleverdatum te selecteren.');
		return false;
	}else{
		return true
	}

}


// --------------------------------------------
// validateTelnr
// Validate telephone number
// Returns true if so (and also if could not be executed because of old browser)
// Permits spaces, hyphens, brackets and leading +
// --------------------------------------------
function validateTelnr  (valfield,   // element to be validated
                         infofield,  // id of element to receive info/error msg
                         required)   // true if required
{
  var tfld = trim(valfield.value);  // value of field with whitespace trimmed off
  var telnr = /^\+?[0-9 ()-]+[0-9]$/  ;
  if (!telnr.test(tfld)) {
    msg (infofield, "error", "ERROR: geen geldig nummer. U kunt invullen: cijfers, spatie ()- en +");    
    return false;
  }

  var numdigits = 0;
  for (var j=0; j<tfld.length; j++)
    if (tfld.charAt(j)>='0' && tfld.charAt(j)<='9') numdigits++;

  if (numdigits<7) {
    msg (infofield, "error", "ERROR: " + numdigits + " cijfers - te weinig");    
    return false;
  }

  if (numdigits>14)
    msg (infofield, "warn", numdigits + " cijfers - controleer aub");
  else { 
    if (numdigits<10)
      msg (infofield, "warn", "" + numdigits + " cijfers - controleer aub");
    else
      msg (infofield, "warn", "");
  }
  return true;
}


// --------------------------------------------
// msg
// Display warn/error message in HTML element.
// commonCheck routine must have previously been called
// --------------------------------------------

function msg(fld,     // id of element to display message in
             msgtype, // class to give element ("warn" or "error")
             message) // string to display
{	
	document.getElementById(fld).innerHTML = message;
	document.getElementById(fld).className = msgtype;
}

// --------------------------------------------
// trim
// Trim leading/trailing whitespace off string
// --------------------------------------------
function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '');
}

// --------------------------------------------
// fn_ShowBedrijf
// Functie om er voor te zorgen dat extra invoervelden worden getoond.
// --------------------------------------------
function fn_ShowBedrijf(Show) {
	
	if(Show == false) {
		document.getElementById('bedr').style.display = 'none';
		document.getElementById('bedr_postbus').style.display = 'none';
		document.getElementById('bedr_postcode').style.display = 'none';
		document.getElementById('bedr_plaats').style.display = 'none';
		document.getElementById('bedr_fax').style.display = 'none';
		document.getElementById('bedr_site').style.display = 'none';
		document.getElementById('bedr_kvk').style.display = 'none';		

		document.getElementById('trvoornaam').className = 'even';
		document.getElementById('trachternaam').className = 'oneven';
		document.getElementById('trtav').className = 'even';
		document.getElementById('tradres').className = 'oneven';
		document.getElementById('trpostcode').className = 'even';
		document.getElementById('trplaats').className = 'oneven';
		document.getElementById('bedr_postbus').className = 'even';
		document.getElementById('bedr_postcode').className = 'oneven';
		document.getElementById('bedr_plaats').className = 'even';
		document.getElementById('tremail').className = 'oneven';
		document.getElementById('bedr_site').className = 'even';
		document.getElementById('bedr_kvk').className = 'oneven';
		document.getElementById('trgebruikersnaam').className = 'even';
		document.getElementById('trwachtwoord').className = 'oneven';
		document.getElementById('trwachtwoordverificatie').className = 'even';
	} else
	{
		document.getElementById('bedr').style.display = 'block';
		document.getElementById('bedr_postbus').style.display = 'block';
		document.getElementById('bedr_postcode').style.display = 'block';
		document.getElementById('bedr_plaats').style.display = 'block';
		document.getElementById('bedr_fax').style.display = 'block';
		document.getElementById('bedr_site').style.display = 'block';
		document.getElementById('bedr_kvk').style.display = 'block';		

		document.getElementById('trvoornaam').className = 'oneven';
		document.getElementById('trachternaam').className = 'even';
		document.getElementById('trtav').className = 'oneven';
		document.getElementById('tradres').className = 'even';
		document.getElementById('trpostcode').className = 'oneven';
		document.getElementById('trplaats').className = 'even';
		document.getElementById('bedr_postbus').className = 'oneven';
		document.getElementById('bedr_postcode').className = 'even';
		document.getElementById('bedr_plaats').className = 'oneven';
		document.getElementById('tremail').className = 'even';
		document.getElementById('bedr_site').className = 'oneven';
		document.getElementById('bedr_kvk').className = 'even';
		document.getElementById('trgebruikersnaam').className = 'oneven';
		document.getElementById('trwachtwoord').className = 'even';
		document.getElementById('trwachtwoordverificatie').className = 'oneven';
	}
}

function fn_ShowBedrijfUser(Show) {
	
	if(Show == false) {
		document.getElementById('bedr').style.display = 'none';
		document.getElementById('bedr_postbus').style.display = 'none';
		document.getElementById('bedr_postcode').style.display = 'none';
		document.getElementById('bedr_plaats').style.display = 'none';
		document.getElementById('bedr_fax').style.display = 'none';
		document.getElementById('bedr_site').style.display = 'none';
		document.getElementById('bedr_kvk').style.display = 'none';		
	} else
	{
		document.getElementById('bedr').style.display = 'block';
		document.getElementById('bedr_postbus').style.display = 'block';
		document.getElementById('bedr_postcode').style.display = 'block';
		document.getElementById('bedr_plaats').style.display = 'block';
		document.getElementById('bedr_fax').style.display = 'block';
		document.getElementById('bedr_site').style.display = 'block';
		document.getElementById('bedr_kvk').style.display = 'block';		
	}
}



/*showKlantgegevens
Om een en ander zichtbaar te maken en de button te verbergen.
*/
function showKlantgegevens() {
	document.getElementById('aanmeldformulier').style.display = 'block';
	document.getElementById('regButton').style.display = 'none';
}

/* 	fucntion validatePassword
Functie voert een controle uit op de twee ingevoerde wachtwoorden. 
Wachtwoorden horen gelijk te zijn.
*/
function validatePassword(infofield)
{	
	if( document.getElementById('password').value != document.getElementById('password_ver').value)
	{
		document.getElementById(infofield).innerHTML = 'Ingegeven wachtwoorden zijn niet gelijk<br>Voer nogmaals de wachtwoorden in.';
		document.getElementById(infofield).className = 'error';
		return false;
	}	
}

/* function validateAanmelding()
Voor het valideren van de aanmelding op verplichte velden en op juiste invoer van wachtwoorden.
*/
function validateAanmelding(){
	//Eerst wachtwoorden check uitvoeren want in fnFormCheckAndSubmit zit namelijk een submit van het form als alle velden goed zijn.
	if( document.getElementById('password').value != document.getElementById('password_ver').value)
	{
		alert('De ingegeven wachtwoorden zijn niet gelijk.');
		return false;
	}
	
	//volgende stap bepalen.
	
	//Overige velden controleren	
	if(document.getElementById('type_2').checked == 'true')
	{
		fnFormCheckAndSubmit( document.frmAanmelden , new Array('naam','voornaam','achternaam','adres','postcode','plaats','telefoon','email','password','password_ver') , new Array('(Bedrijfsnaam', 'Voornaam', 'Achternaam','Adres','Postcode','Plaats','Telefoon','Emailadres','Wachtwoord','Wachtwoord verificatie') );
	}else{
		fnFormCheckAndSubmit( document.frmAanmelden , new Array('voornaam','achternaam','adres','postcode','plaats','telefoon','email','password','password_ver') , new Array('Voornaam','Achternaam','Adres','Postcode','Plaats','Telefoon','Emailadres','Wachtwoord','Wachtwoord verificatie') );
	}
}

/* function validateEditCurrentUser()
Voor het valideren van de aanmelding op verplichte velden en op juiste invoer van wachtwoorden.
*/
function validateEditCurrentUser(){
	//Overige velden controleren	
	if(document.getElementById('type_2').checked == 'true')
	{
		fnFormCheckAndSubmit( document.nieuweklant , new Array('naam','voornaam','achternaam','adres','postcode','plaats','telefoon','email','password') , new Array('(Bedrijfsnaam', 'Voornaam', 'Achternaam','Adres','Postcode','Plaats','Telefoon','Emailadres','Wachtwoord') );
	}else{
		fnFormCheckAndSubmit( document.nieuweklant , new Array('voornaam','achternaam','adres','postcode','plaats','telefoon','email','password') , new Array('Voornaam','Achternaam','Adres','Postcode','Plaats','Telefoon','Emailadres','Wachtwoord') );
	}
}
