function validateForm(formId)
{	
	var i;
	var melding = '';
	var oldTemp;
	var temp;
	var displaytemp;
	var doCheck;
	var mailingListChecked='0';
	var htmlMailChecked='0';
	var htmlMailAlreadyChecked='0';
	var htmlMailRequired='0';
	var telephoneChecked='0';
	var telephoneAlreadyChecked='0';
	var mobileChecked='0';
	var telephoneRequired='0';
	required = '';
	firstDield = '';
	
	if(document.forms[formId]['required'])required = document.forms[formId]['required'].value.split (/\s*,\s*/);
	
	for(i = 0; i < document.forms[formId].elements.length;i++){
		
		if(document.forms[formId].elements[i]){
			temp = document.forms[formId].elements[i].name;
			if (typeof(temp) == 'undefined' || temp.length == 0) { continue; }
			doCheck='0';	
		
			
			if (temp=='htmlmail')
			{
				if (checkIfRequired(temp)) {htmlMailRequired='1';}
								
				mailingListChecked=document.forms[formId]['mailinglist'].checked;
				
				if (document.forms[formId]['htmlmailbutton1'].checked || document.forms[formId]['htmlmailbutton2'].checked)
				{
					htmlMailChecked='1';
				}				
				
				//only required if 
				if (mailingListChecked && htmlMailChecked=='0')
				{
				if (htmlMailAlreadyChecked=='0')
					{
						doCheck='1';
						htmlMailAlreadyChecked='1';
					}
				}				
			}
			
			if (temp=='telephone')
			{
				if (checkIfRequired(temp)) {telephoneRequired='1';}
								
				telephoneChecked=document.forms[formId]['telephone'].value;
				
				//only required if 
				if (telephoneChecked > '')
				{
				if (telephoneAlreadyChecked=='0')
					{
						doCheck='1';
						telephoneAlreadyChecked='1';
					}
				}	
				//temp='mobilenr'
				//if (checkIfRequired(temp)) {telephoneRequired='1';}
								
				//mobileChecked=document.forms[formId]['mobilenr'].value;
				
				//only required if 
				//if (mobileChecked > '')
				//{
				//if (telephoneAlreadyChecked=='0')
				//	{
				//		doCheck='1';
				//		telephoneAlreadyChecked='1';
				//	}
				//}		
				//temp='telephone'	
			}	
			
			/*if (temp=='mobilenr')
			{	
				if (checkIfRequired(temp)) {telephoneRequired='1';}
								
				mobileChecked=document.forms[formId]['mobilenr'].value;
				
				//only required if 
				if (mobileChecked > '')
				{
				if (telephoneAlreadyChecked=='0')
					{
						//doCheck='1';
						telephoneAlreadyChecked='1';
					}
				}		
			}		*/
			
			
			
			if (checkIfRequired(temp) && (document.forms[formId].elements[i].value == '' || doCheck=='1'))				
			{
				/* set error class */
				document.getElementById(temp).className += ' validationBorder';
											
				if (melding == '') {firstField = i;}
				//postcode uitzondering
				if (temp == 'postcode_letter' || temp == 'postcode_cijfer') temp = 'postcode';
				if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = 'error';
							
				if(oldTemp != temp) {
					if (melding == '')
					{	
						if (temp=='telephone')
						{
							if (telephoneChecked == '')
							{
								melding = 'U heeft de volgende velden nog niet ingevuld: \n\n';
							}
						}
						else
						{
							melding = 'U heeft de volgende velden nog niet ingevuld: \n\n';
						}
					}
					displaytemp='';
					if(document.getElementById)
					{
						if (document.getElementById('rX' + temp))
							{
								displaytemp=document.getElementById('rX' + temp).value;
								if (displaytemp!='') {displaytemp=displaytemp.replace('*','').replace(':','');}
							}
					}
					
					if (displaytemp!='') 
					{
						if (temp=='telephone')
						{
							if (telephoneAlreadyChecked=='0' )
							{
								melding += '- ' +displaytemp +'\n';
							}
						}
						else
						{
							melding += '- ' +displaytemp +'\n';
						}
					}
					else
					{			
						if (temp=='telephone')
						{
							if (telephoneAlreadyChecked=='0' )
							{
								melding += '- ' +temp +'\n';
							}
						}
						else
						{
							melding += '- ' +temp +'\n';
						}							
					}
				}
				oldTemp = temp;
			}
			else
			{	
				if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
				if(document.getElementById)
				{
					if(document.getElementById(temp))
					{
						var el = document.getElementById(temp);
						if (el.type == 'text' || el.type == 'password')
						{
							el.className = 'shoppingBasketText';
						}
					}
				}
			}
		}
	}
	
	if (htmlMailRequired=='1')	
	{
		if (mailingListChecked && htmlMailChecked=='0')
		{	
			temp='htmlmail1';
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = 'error';
			temp='htmlmail2';
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = 'error';
		}
		else	
		{	
			temp='htmlmail1';
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
			temp='htmlmail2';
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
		}
	}
	
	if (telephoneRequired=='1')
	{
		if (telephoneChecked=='')
		{
			temp='telephone';
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = 'error';
			//temp='mobilenr';
			//if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = 'error';
		}
		else
		{
			temp='telephone';
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
			//temp='mobilenr';
			//if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
		}
	}


	if (melding != '') 
	{
		alert(melding);
		if(firstField !=''){document.forms[formId].elements[firstField].focus();}
		return false;
	}
	
	return true;

}
function checkIfRequired(fieldname){
	var i;
	if(required.length > 0) {
		for (i=0; i<required.length; i++){
			if (required[i] == fieldname) return true;
		}
	}
	return false;
}


function validate(id, formId){

	temp = id.name;
	
	if(document.forms[formId][temp].value != ''){
		//postcode uitzondering
		if (temp == 'postcode_letter' && document.forms[formId]['postcode_cijfer'].value == '' )return;
		if (temp == 'postcode_cijfer' && document.forms[formId]['postcode_letter'].value == '' )return;
		if (temp == 'postcode_letter' || temp == 'postcode_cijfer') temp = 'postcode'		
		if(document.getElementById){
			if(document.getElementById(temp))document.getElementById(temp).className = document.getElementById(temp).className.replace(/\s+validationBorder/g, '');
			if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
		}
	}
	else{
		//postcode uitzondering
		if (temp == 'postcode_letter' || temp == 'postcode_cijfer') temp = 'postcode';
		if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = 'error';
	}
}


function resetForm(formId)
{
	document.forms[formId].reset();
	for(i = 0; i <document.forms[formId].elements.length;i++)
	{
		if(document.forms[formId].elements[i])
		{
			temp = document.forms[formId].elements[i].name;
			//postcode uitzondering
			if (temp == 'postcode_letter' || temp == 'postcode_cijfer') temp = 'postcode';
			if(document.getElementById)if(document.getElementById(temp + 'Title'))document.getElementById(temp + 'Title').className = '';
		}
	}
}					


function opennewwin(url,title,wd,hg, scrl) {
	var NewWin = null;
	NewWin = window.open(url,title,'toolbar=No,location=No,directories=No,status=No, menubar=No,scrollbars='+scrl+',width='+wd+',height='+hg+',resizable=No');
}			
			
			function setlocation(name, street, nr, postcode, city){
				document.getElementById('winkelinfo').innerHTML = name + '<br>' + street + '&nbsp;' + nr + '<br>' + postcode + '<br>' + city;
				document.getElementById('errordiv').innerText = '';
				document.getElementById('winkelinfoheader').style.display = 'block';
			}
			
			function checksubmit(){
				if ((document.getElementById('shopstreet').value == '') || (document.getElementById('shophousenr').value == '') || (document.getElementById('shoppostcode').value == '') || (document.getElementById('shopcity').value == '') || (document.getElementById('filiaalnr').value == '')){
					document.getElementById('errordiv').innerText = 'U heeft geen winkel gekozen.';	
					return false;
				}
			}

function CollierThuisbezorgen() {

	document.getElementById('shopstreet').value='';
	document.getElementById('shophousenr').value='';
	document.getElementById('shoppostcode').value='';
	document.getElementById('shopcity').value='';
	document.getElementById('locationname').value='';
	document.getElementById('filiaalnr').value='';
	document.getElementById('winkelinfo').innerHTML = '';
	document.getElementById('winkelinfoheader').style.display = 'none';

	if(validateForm('customerform')) {
		document.customerform.submit();	
	}
}

function CollierAfhalen() {

	if ((document.getElementById('shopstreet').value!='')&&
		(document.getElementById('shophousenr').value!='')&&
		(document.getElementById('shopcity').value!='')&&
		(document.getElementById('filiaalnr').value!='')&&
		(document.getElementById('shoppostcode').value!='')) 
	{
		if(validateForm('customerform')) 
		{
			document.customerform.submit();	
		}			
	} 
	else 
	{
		alert("U dient een filiaal te selecteren.");
	}	

}  

function printCollierForm()
{	
	if (CheckIncasso())
	{		
		
		window.print();
	}
	else
	{
		alert('U dient de incasso velden in te vullen met correcte gegevens, controleer uw gegevens.');
	}
}


function CheckIncasso()
{	

	if (document.getElementById('AccountCity'))
	{
	
		var AccountCity = document.getElementById('AccountCity');
		var AccountHolder = document.getElementById('AccountHolder');
		var AccountNumber = document.getElementById('AccountNumber');
		
		var AccountKind = document.getElementsByName('AccountKind');
		var BankOption = AccountKind[0];
		var GiroOption = AccountKind[1];
		
		checkNotEmpty(AccountCity);
		checkNotEmpty(AccountHolder);
		checkNotEmpty(AccountNumber);

		if (AccountCity.value != '' && AccountHolder.value != '' && AccountNumber.value != '')
		{	
			if (IsValidNumeric(AccountNumber.value))
			{	
				if (BankOption.checked)
				{
					return IsAccountBankValid(AccountNumber.value);				
				}
				if (GiroOption.checked)
				{
					return IsAccountGiroValid(AccountNumber.value);				
				}
			}				 
		}
		else
		{
			return false;
		}
	}	
}

function checkNotEmpty(me)
{	
	theID=me.id;// + 'Label';
	if (me.value !='')
	{document.getElementById(theID).className = document.getElementById(theID).className.replace(/\s+validationBorder/g, '');
	}
	else
	{document.getElementById(theID).className += ' validationBorder';}
}
/* KVRD-36232, R. van Ittersum, 20-02-2009 */
function checkDiliveryFormCompletion(formID)
{
	var completed = true;
	var form = document.getElementById(formID);
	var btnterug = document.getElementById("DeliveryAddressControl_shoppingBasketStep1Link");
	var btnVerder = document.getElementById("DeliveryAddressControl_ProcessOrderDeliveryAddress");
	
	for(i=0; i<document.getElementById(formID).elements.length; i++)
	{
		switch (document.getElementById(formID).elements[i].name)
		{
			case "DeliveryAddressControl:Street":
				if(form.elements[i].value.length < 1){ completed = false; }
			break;
			case "DeliveryAddressControl:HouseNumber":
				if(form.elements[i].value.length < 1){ completed = false; }
			break;
			case "DeliveryAddressControl:PostalCode":
				if(form.elements[i].value.length < 1){ completed = false; }
			break;
			case "DeliveryAddressControl:City":
				if(form.elements[i].value.length < 1){ completed = false; }
			break;
		}
	}
	if(completed == true){
	
		btnterug.setAttribute("className", "btnTerug");
		btnVerder.setAttribute("className", "btnVerderbetaalwijze");
		
		btnterug.setAttribute("class", "btnTerug");
		btnVerder.setAttribute("class", "btnVerderbetaalwijze");
		
		btnterug.removeAttribute("onclick");
		btnVerder.removeAttribute("onclick");
	}else{
		btnterug.setAttribute("className", "btnTerugGrijs");
		btnVerder.setAttribute("className", "btnVerderbetaalwijzeGrijs");
		
		btnterug.setAttribute("class", "btnTerugGrijs");
		btnVerder.setAttribute("class", "btnVerderbetaalwijzeGrijs");
		
		btnterug.setAttribute("onclick", "return false");
		btnVerder.setAttribute("onclick", "return false");
	}
}
/* END KVRD-36232 */
function IsValidNumeric(value)
{	
    value = "" + value;    
    
    var res = false;    
    var pattern = "^(-)?[0-9]+(\,[0-9]+)?$";
    var re = new RegExp(pattern);
    
    res = value.match(re);
    
    return res;
}

function IsValidString(value)
{	
    value = "" + value;    
    
    var res = false;    
    var pattern = "[!@#$%^&*()_+=,|?~:;<>]";
    var re = new RegExp(pattern);
    
    res = value.match(re);
    
    return !res;
}

function IsLength(value, minLength, maxLength)
{
    if ((value.length < minLength) || (value.length > maxLength))
    {
       return false;
    }
    else
    {
       return true;
    }
}

function IsAccountGiroValid(value)
{

	//value = document.getElementById('AccountNumber').value;		
	if (IsValidString(value) && IsLength(value,3,7))
	{ 
		return true; 
	}
	else
	{ 
		return false; 
	}
}

function IsAccountBankValid(value)
{
	//value = document.getElementById('AccountNumber').value;	
    var Temp = value.replace( ".", "");
    
    if (Temp.length == 9) {Temp = "0" + Temp;}
    //if the length is not 10 now, it must be invalid, so we add a Q upfront so it is not numeric anymore
    if (Temp.length != 10){Temp = "Q" + Temp;}
    //check if the string is non-negative numeric
    
    var i = Temp.indexOf("-");    
    if (i > 0) 
    {
		return false;
    }
    else
    {
		var TotalSum = 0
		//Loop Bankaccountnumber by Dave Mertens
		for (var i=1; i<=10;i++) 
		{
			CurrentPosition = 11 - i; //Here we go from 10 till 1			
			CurrentNumber = Temp.substring(i-1, i);			
			TotalSum = TotalSum + (CurrentPosition * CurrentNumber);
		}
		
		var i = Mod(TotalSum, 11)				
		 //Can the checksum be divided by 11 and is it > 0?
		if ((i != 0) || (TotalSum < 1))
		{				
			return false;
		}     
		else
		{
			return true;
		}   
    }	
}

function Mod(a, b) 
{ 
	return a-Math.floor(a/b)*b;
}

function ValidatePaymentIncasso(sender,args)
{
var anumber=document.getElementById('PaymentMethodControl_AccountNumber').value;
var atype=document.getElementById('PaymentMethodControl_AccountKind_0').checked;
var blnvalid=false;

if (atype)
	{blnvalid=IsAccountBankValid(anumber);}
else
	{blnvalid=IsAccountGiroValid(anumber);}
if (anumber == ''){blnvalid = true;}
if (blnvalid)
{
	args.IsValid = true; 
	return; 
}

args.IsValid = false; 
}


function ValidatePostalCode(sender, args)
{

	var value = document.getElementById('DeliveryAddressControl_PostalCode').value;

	if (CountryID) {
	
		if (CountryID == "497")
		{
			re = /^([Bb](\s*|-?)){0,1}\d{4,4}$/
			res = re.exec(value);
		}
		else if (CountryID == "635")
		{
			re = /^\d{4}\s[A-Z]{2}$/
			res = re.exec(value);
		}
		else
		{
			re = /^.{4,}$/
			res = re.exec(value);
		}
	}
	else
	{
		re = /^.{4,}$/
		res = re.exec(value);
	}
	
	args.IsValid = res;

}

function ValidateCheckBox(sender, args) 
{ 
	if (document.getElementById('Agree_TermsAndConditions').checked)
	{ 
		args.IsValid = true; 
		return; 
	} 
	args.IsValid = false; 
} 


var temptext;
function TextareaMaxLength(Textarea, Length) 
{
	if (Textarea.value.length >= Length) 
	{
		Textarea.value = temptext;	
	} 
	
	temptext = Textarea.value;	
	return;
}

function updateprijsfixedprice(id,innerHTMLid,startprice,price) {
	var theText=id.value;
	var theLength=0;
	if (theText!='') 
		{
		theText=xreplace(theText,' ','');
		theLength=theText.length
		}
	var thePrice= Round2Dec(Number(startprice) + Number((theLength * price)));
	
	
	//alert(startprice + " + " + (theLength * price) + "=" + (startprice + (theLength * price)) );
	var mResult=thePrice + '';
	mResult=mResult.replace('.',',')

	document.getElementById(innerHTMLid).innerHTML = mResult;
}


function updateprijs(id,innerHTMLid,idpricehidden,price) {
	var theText=id.value;
	var theLength=0;
	if (theText!='') 
		{
		theText=xreplace(theText,' ','');
		theLength=theText.length
		}
	var thePrice=Round2Dec(theLength * price);
	var mResult=thePrice + '';
	mResult=mResult.replace('.',',')

	document.getElementById(innerHTMLid).innerHTML = mResult;
}

function xreplace(checkMe,toberep,repwith){

var temp = checkMe;

var i = temp.indexOf(toberep);

while(i > -1)

{

temp = temp.replace(toberep, repwith);

i = temp.indexOf(toberep);

}

return temp;

}

function Round2Dec(amountvalue) {
// returns the amount in the .99 format 
    var amount 
    var result
    amount = (Math.round(amountvalue*100))/100;
    result=amount;
    if (amount == Math.floor(amount))
	    {
			 result=amount + '.00';
			
			}
		else
		{
		if (amount*10 == Math.floor(amount*10)) 
		{
			result=amount + '0';
		}
		}	
		//ObjForm.value=result;
		
		return result;
}
