var verplicht = 'Dit is een verplicht veld';

function checkEmail(value) {
	return value.match(/^[a-z0-9\-_-]+([\.%!][_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/);
}


function checkPostCode(value, zipformat) {
	if (!zipformat)
		zipformat = "/^[0-9]{4} *[a-zA-Z]{2}$/";
	var a;
		eval("a = value.match("+zipformat+");");

	return a;
}

function checkPhone(value) {
	return value.match(/^[0-9]{10}$/);
}
function checkKvk(value) {
	return value.match(/^[0-9]{12}$/);
}

//////////////////////////////////////////
///////// Account login form /////////////
//////////////////////////////////////////
function validateLoginForm(form) {
    reset_msg('login-error');
    //reset_msg('password-error');
    var error = false;
    var txt = '';
    if (!form.userName.value || !checkEmail(form.userName.value)) {
	txt = 'Dit is een ongeldig emailadres';
        //show_msg('email-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    if (!form.password.value) {
        if (txt) txt = txt + '<br />';
        txt = txt + 'Het wachtwoord veld is leeg';
        //show_msg('password-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
        error = true;
    }
    /*if (!form.password.value || form.password.value.length < 8) {
        if (txt) txt = txt + '<br />';
        txt = txt + 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters';
        //show_msg('password-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
        error = true;
    }*/

    if (!error) {
        //form.action = '/account/register/step/2/';
        form.submit();
    }
    else
    {
        show_msg('login-error', txt);
    }
}


function validateSubscribeForm(form) {
    reset_msg('first-name-error');
    //reset_msg('last-name-error');
    //reset_msg('gender-error');
    reset_msg('mail-error');
    reset_msg('postcode-error');

    error = false;
    if (!form.first_name.value) {
        show_msg('first-name-error', verplicht);
        error = true;
    }
    /*if (!form.last_name.value) {
        show_msg('last-name-error', verplicht);
        error = true;
    }
    if (!form.gender[0].checked && !form.gender[1].checked) {
        show_msg('gender-error', verplicht);
        error = true;
    }*/

    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    if (!form.postcode.value) {
        show_msg('postcode-error', verplicht);
        error = true;
    }


	webshop.showWaitBox();
    var requestUrl = webshop.buildRequestUrl('checkSubscriber');
	webshop.callback = function(response){if(response) {error= true;show_msg('mail-error', response);}};
	jQuery.ajaxSetup({async: false});
	jQuery.getJSON(requestUrl, {email:form.email.value}, webshop.checkError);
	jQuery.ajaxSetup({async: true});

    return !error;
}

function validateGelukscodeForm(form) {
    reset_msg('gelukscode-error');
    reset_msg('first-name-error');
    reset_msg('last-name-error');
    reset_msg('gender-error');
    reset_msg('mail-error');
    reset_msg('postcode-error');
    reset_msg('house-number-error');
    //reset_msg('keepinformed-error');

    error = false;
    if (!form.gelukscode.value) {
        show_msg('gelukscode-error', verplicht);
        error = true;
    }

    if (!form.first_name.value) {
        show_msg('first-name-error', verplicht);
        error = true;
    }
    if (!form.last_name.value) {
        show_msg('last-name-error', verplicht);
        error = true;
    }
    if (!form.gender[0].checked && !form.gender[1].checked) {
        show_msg('gender-error', verplicht);
        error = true;
    }

    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    if (!form.postcode.value) {
        show_msg('postcode-error', verplicht);
        error = true;
    }

    if (!form.number.value) {
        show_msg('house-number-error', verplicht);
        error = true;
    }

    /*if (!form.keep_informed.checked) {
        show_msg('keepinformed-error', verplicht);
        error = true;
    }*/

    if (form.gelukscode.value)
    {
	webshop.showWaitBox();
    var requestUrl = webshop.buildRequestUrl('checkGelukscode');
	webshop.callback = function(response){if(response) {error= true;show_msg('gelukscode-error', response);}};
	jQuery.ajaxSetup({async: false});
	jQuery.getJSON(requestUrl, {gelukscode:form.gelukscode.value}, webshop.checkError);
	jQuery.ajaxSetup({async: true});
    }

    return !error;
}

function validateBouwbeursGelukscodeForm(form) {
    reset_msg('gelukscode-error');
    reset_msg('first-name-error');
    reset_msg('last-name-error');
    reset_msg('gender-error');
    reset_msg('mail-error');
    reset_msg('postcode-error');
    reset_msg('house-number-error');
    reset_msg('user-type-error');
    reset_msg('user-function-error');
    reset_msg('user-buy-error');
    //reset_msg('keepinformed-error');

    error = false;
    if (!form.gelukscode.value) {
        show_msg('gelukscode-error', verplicht);
        error = true;
    }

    if (!form.first_name.value) {
        show_msg('first-name-error', verplicht);
        error = true;
    }
    if (!form.last_name.value) {
        show_msg('last-name-error', verplicht);
        error = true;
    }
    if (!form.gender[0].checked && !form.gender[1].checked) {
        show_msg('gender-error', verplicht);
        error = true;
    }

    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    if (!form.postcode.value) {
        show_msg('postcode-error', verplicht);
        error = true;
    }

    if (!form.number.value) {
        show_msg('house-number-error', verplicht);
        error = true;
    }

    if (!form.user_type.value) {
        show_msg('user-type-error', verplicht);
        error = true;
    }

    if (form.user_type.value == 'Zakelijk' && !form.user_function.value) {
        show_msg('user-function-error', verplicht);
        error = true;
    }

    if (form.user_type.value == 'Zakelijk' && !form.user_buy[0].checked && !form.user_buy[1].checked) {
        show_msg('user-buy-error', verplicht);
        error = true;
    }

    /*if (!form.keep_informed.checked) {
        show_msg('keepinformed-error', verplicht);
        error = true;
    }*/

    if (form.gelukscode.value)
    {
	webshop.showWaitBox();
    var requestUrl = webshop.buildRequestUrl('checkBouwbeursGelukscode');
	webshop.callback = function(response){if(response) {error= true;show_msg('gelukscode-error', response);}};
	jQuery.ajaxSetup({async: false});
	jQuery.getJSON(requestUrl, {gelukscode:form.gelukscode.value}, webshop.checkError);
	jQuery.ajaxSetup({async: true});
    }

    return !error;
}

function validateBouwrelatiedagenForm(form) {
    reset_msg('company-error');
    reset_msg('name-error');
    reset_msg('adres-error');
    reset_msg('postcode-error');
    reset_msg('city-error');
    reset_msg('mail-error');

    error = false;
    if (!form.company_name.value) {
        show_msg('company-error', verplicht);
        error = true;
    }

    if (!form.name.value) {
        show_msg('name-error', verplicht);
        error = true;
    }
    if (!form.adres.value) {
        show_msg('adres-error', verplicht);
        error = true;
    }
    
    if (!form.postcode.value) {
        show_msg('postcode-error', verplicht);
        error = true;
    }

    if (!form.city.value) {
        show_msg('city-error', verplicht);
        error = true;
    }

    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    return !error;
}

///////////////////////////////////////////
/////// Registration Validation ///////////
///////////////////////////////////////////
function validateStep1Form(form, pass_not_required) {
    reset_msg('mail-error');
    reset_msg('password-error');
    reset_msg('password2-error');
    error = false;
    if(pass_not_required=='undefined')
    	pass_not_required = 1;

    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    if(!pass_not_required)
    if (!form.password.value || form.password.value.length < 8) {
        show_msg('password-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
        error = true;
    }

    if(!pass_not_required)
    if (!(form.password.value.match(/^\w+$/) && form.password.value.match(/\d/) && form.password.value.match(/\D/))) {
        show_msg('password-error', 'Uw wachtwoord moet een combinatie zijn van cijfers en letters');
        error = true;
    }
    /*
    \d any number; same as [0-9]
	\D any NOT number; same as [^0-9]
	\w any alphanumeric character; same as [a-zA-Z-0-9_]
	\W any NON-alphanumeric character; same as [^a-zA-Z0-9_]
	\s any whitespace (tab, space, newline, etc...)
	\S any NON-whitespace
	\n newline
	\t tab
	*/
    if(!pass_not_required)
    if (form.password.value != form.password2.value) {
        show_msg('password2-error', 'Wachtwoorden komen niet overeen');
        error = true;
    }

	webshop.showWaitBox();
    var requestUrl = webshop.buildRequestUrl('checkEmail');
	webshop.callback = function(response){if(response) {error= true;show_msg('mail-error', response);}};
	jQuery.ajaxSetup({async: false});
	jQuery.getJSON(requestUrl, {email:form.email.value}, webshop.checkError);
	jQuery.ajaxSetup({async: true});

    return !error;
}

function validateStep2Form(form) {
	reset_msg('company-name-error');
	reset_msg('first-name-error');
    reset_msg('last-name-error');
    reset_msg('gender-error');
	reset_msg('phone-error');
	reset_msg('fax-error');
	reset_msg('mobile-error');

    //reset_msg('street-error');
    //reset_msg('house-number-error');
    //reset_msg('postcode-error');
    //reset_msg('city-error');
    //reset_msg('country-error');
    error = false;
	if (!form.company_name.value) {
        show_msg('company-name-error', verplicht);
        error = true;
    }
    if (!form.first_name.value) {
        show_msg('first-name-error', verplicht);
        error = true;
    }
    if (!form.last_name.value) {
        show_msg('last-name-error', verplicht);
        error = true;
    }
    if (!form.gender[0].checked && !form.gender[1].checked) {
        show_msg('gender-error', verplicht);
        error = true;
    }

    if (!form.phone.value || (form.phone.value && !checkPhone(form.phone.value))) {
        show_msg('phone-error', 'Onjuiste notatie voor telefoonnummer gebruik 0101234567');
        error = true;
    }
    if (form.fax.value && !checkPhone(form.fax.value)) {
        show_msg('fax-error', 'Onjuiste notatie voor faxnummer gebruik 0101234567');
        error = true;
    }
    if (form.mobile.value && !checkPhone(form.mobile.value)) {
        show_msg('mobile-error', 'Onjuiste notatie voor mobiele telefoonnummer gebruik 0612345678');
        error = true;
    }
    /*if (!form.street.value) {
        show_msg('street-error', verplicht);
        error = true;
    }
    if (!form.house_number.value) {
        show_msg('house-number-error', verplicht);
        error = true;
    }
    if (!form.postcode.value) {
        show_msg('postcode-error', verplicht);
        error = true;
    }
    if (!form.city.value) {
        show_msg('city-error', verplicht);
        error = true;
    }
    if (!form.country.value) {
        show_msg('country-error', verplicht);
        error = true;
    }*/


    return !error;
}

function validateStep3Form(form,kvk) {
    reset_msg('street-error');
    reset_msg('house-number-error');
    reset_msg('postcode-error');
    reset_msg('city-error');

    reset_msg('factur_street-error');
    reset_msg('factur_house-number-error');
    reset_msg('factur_postcode-error');
    reset_msg('factur_city-error');



    //reset_msg('country-error');
	reset_msg('kvk-error');

	reset_msg('company_type-error');
	reset_msg('company_activity-error');
	reset_msg('employees_number-error');


	reset_msg('account-number-error');
	reset_msg('account-holder-error');
	reset_msg('confirm-bank-error');
	reset_msg('account-city-error');
	reset_msg('acount-bank-type-error');
	
	
	error = false;
	if(is_in_registerorder || form.is_debiteur[1].checked){
		if (!form.street.value) {
			show_msg('street-error', verplicht);
			error = true;
		}

		if (!form.number.value) {
			show_msg('house-number-error', verplicht);
			error = true;
		}

		if (!checkPostCode(form.postcode.value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
			show_msg('postcode-error', verplicht);
			error = true;
		}
		if (!form.city.value) {
			show_msg('city-error', verplicht);
			error = true;
		}
	}


	if(form.is_debiteur[1].checked){
		/* factur */
		if(!form.facturaddress_is_same.checked){
			if (!form.factur_street.value) {
				show_msg('factur_street-error', verplicht);
				error = true;
			}

			if (!form.factur_number.value) {
				show_msg('factur_house-number-error', verplicht);
				error = true;
			}

			if (!checkPostCode(form.factur_postcode.value, form.factur_country.item(form.factur_country.selectedIndex).getAttribute('zipformat'))) {
				show_msg('factur_postcode-error', verplicht);
				error = true;
			}
			if (!form.factur_city.value) {
				show_msg('factur_city-error', verplicht);
				error = true;
			}
		}
		/* //factur */

		/*if (kvk && !form.kvk_number.value ) {  //!checkKvk(form.kvk_number.value)
			show_msg('kvk-error', verplicht);
			error = true;
		}*/

		if(form.company_type.selectedIndex == ""){
			show_msg('company_type-error', verplicht);
			error = true;
		}
		if(form.company_activity.value == ""){
			show_msg('company_activity-error', verplicht);
			error = true;
		}
		if(form.employees_number.value == ""){
			show_msg('employees_number-error', verplicht);
			error = true;
		}
		/*
		if (!form.country.value) {
			show_msg('country-error', verplicht);
			error = true;
		}
		*/
	}
	if(form.is_debiteur[0].checked){
		// validate Ja here
		if (!form.debiteur_number.value)
			form.debiteur_number.value = '-';
		if (form.payment_term_debiteur[0].checked == false ) {
			if (!form.bank_account_number.value) {
				show_msg('account-number-error', verplicht);
				error = true;
			}
			if (!form.bank_account_holder.value) {
				show_msg('account-holder-error', verplicht);
				error = true;
			}
			if (!form.bank_account_city.value) {
				show_msg('account-city-error', verplicht);
				error = true;
			}
			if (!form.bank_account_type[0].checked && !form.bank_account_type[1].checked) {
				show_msg('acount-bank-type-error', verplicht);
				error = true;
			}
			//validate bank num - hash
			if(form.bank_account_type[0].checked) {
				sum = 0;
				rest = -1;
				if(form.bank_account_number.value.length==9) {
					for(i=1;i<=form.bank_account_number.value.length;i++) {
						sum += form.bank_account_number.value.charAt(i-1) * (10-i);
					}
					rest = sum % 11;
				}
				if(rest) {
					show_msg('account-number-error', 'Het ingevulde bankrekeningnummer is geen bestaand nummer');
					error = true;
				}
			}


			//if recurrent payment
			//if(form.payment_method[1].checked) {
				if (!form.confirm_bank_data.checked) {
					show_msg('confirm-bank-error', verplicht);
					error = true;
				}
			//}
		}

	}
    return !error;
}

function validateStep4Form(form) {
    reset_msg('account-number-error');
    reset_msg('account-holder-error');
    reset_msg('confirm-bank-error');
	reset_msg('account-city-error');
	reset_msg('acount-bank-type-error');

    error = false;
	if(form.invoice[0].checked)
	{
		//before it was #2
//		if(!form.payment_method[1].checked && !form.payment_term_debiteur[0].checked) {
		if(!form.payment_method[1].checked) {
			if (!form.bank_account_number.value) {
				show_msg('account-number-error', verplicht);
				error = true;
			}
			if (!form.bank_account_holder.value) {
				show_msg('account-holder-error', verplicht);
				error = true;
			}
			if (!form.bank_account_city.value) {
				show_msg('account-city-error', verplicht);
				error = true;
			}
			if (!form.bank_account_type[0].checked && !form.bank_account_type[1].checked) {
				show_msg('acount-bank-type-error', verplicht);
				error = true;
			}
			//validate bank num - hash
			if(form.bank_account_type[0].checked) {
				sum = 0;
				rest = -1;
				if(form.bank_account_number.value.length==9) {
					for(i=1;i<=form.bank_account_number.value.length;i++) {
						sum += form.bank_account_number.value.charAt(i-1) * (10-i);
					}
					rest = sum % 11;
				}
				if(rest) {
					show_msg('account-number-error', 'Het ingevulde bankrekeningnummer is geen bestaand nummer');
					error = true;
				}
			}


			//if recurrent payment
			//if(form.payment_method[1].checked) {
				if (!form.confirm_bank_data.checked) {
					show_msg('confirm-bank-error', verplicht);
					error = true;
				}
			//}
		}
	}
	else if(form.invoice[1].checked)
	{
            	reset_msg('default-payment-error');
            	error=true;

            	len=form.default_payment_method.length;
            	//check if delivery method is selected
            	if(len == undefined) {
            		if(form.default_payment_method.checked)
            			error=false;
            	} else {
            		for(i=0;i<len;i++) {
            			if(form.default_payment_method[i].checked)
				{
            				error=false;
					break;
				}
            		}
            		//if(form.selecting_payment[0].checked)
            		//	error = false;
            	}

                if (error) {
                	show_msg('default-payment-error', 'Kies betaalmethode');
                }
	}

	return !error;
}

function validateStep5Form(form) {

    return true;
}

function showSubBlock(obj) {
    if (obj.value == '1') document.getElementById('invoice-options-block').style.display = 'block';
    if (obj.value == '0') document.getElementById('invoice-options-block').style.display = 'none';

    if (obj.value == '1') document.getElementById('on_account_no_message').style.display = 'none';
    if (obj.value == '0') document.getElementById('on_account_no_message').style.display = 'block';

	//submit button
	if (obj.value == '1') {
		$('submit_button').disabled='disabled';
		$('submit_button').getParent().getParent().addClass('disable');
	} else {
		$('submit_button').disabled='';
		$('submit_button').getParent().getParent().removeClass('disable');
	}
}

function showDebiteurBlock(value) {
	if (value == '1')
	{
		if(document.getElementById('companyAddressBlock').innerHTML != '' && is_in_registerorder){
			document.getElementById('debAddressBlock').innerHTML = document.getElementById('companyAddressBlock').innerHTML;
			document.getElementById('companyAddressBlock').innerHTML = '';
		}


		document.getElementById('debiteur').style.display = 'block';
		document.getElementById('regular').style.display = 'none';
	//    	document.getElementById('right-block').innerHTML = '';
		val = document.forms['adress_form'].payment_term_debiteur[0].checked ? 0 : 1;
		updateBankPayment(val);
		//document.getElementById('right-block-debiteur').innerHTML = document.getElementById('incasso-block').innerHTML;
	}
	if (value == '0')
	{
		if(document.getElementById('debAddressBlock').innerHTML != '' && is_in_registerorder){
			document.getElementById('companyAddressBlock').innerHTML = document.getElementById('debAddressBlock').innerHTML;
			document.getElementById('debAddressBlock').innerHTML = '';
		}

		document.getElementById('debiteur').style.display = 'none';
		document.getElementById('regular').style.display = 'block';
	//    	document.getElementById('right-block').innerHTML = document.getElementById('incasso-block').innerHTML;
	//	document.getElementById('right-block-debiteur').innerHTML = '';
			document.getElementById('submit_button').disabled='';
			document.getElementById('submit_button').getParent().getParent().removeClass('disable');
	}
}

function updateBankPayment(value) {
	if (value > 0)
	{
		document.getElementById('right-block-debiteur').innerHTML = document.getElementById('incasso-block').innerHTML;
		document.getElementById('submit_button').disabled='disabled';
		document.getElementById('submit_button').getParent().getParent().addClass('disable');
	}
	else
	{
		document.getElementById('right-block-debiteur').innerHTML = '';
		document.getElementById('submit_button').disabled='';
		document.getElementById('submit_button').getParent().getParent().removeClass('disable');
	}
}

function updatePercent(value) {
	return ;

    if (value == '8') {
		 document.getElementById('discount-info').style.display = 'inline';
	}
	else {
		 document.getElementById('discount-info').style.display = 'none';
	}

}

function updateDays(value) {
    if (value == '3') {
		jQuery('#betalingstermijn_block').addClass('darkgreytxt');
	}
	else {
		jQuery('#betalingstermijn_block').removeClass('darkgreytxt');
	}

}


function updateInvoiceBlock(num) {
	switch(num) {
		/*
		case "1":
				$('repeated-payment').style.display='none';
				$('right-block').style.display='inline';
				$('info1').style.display='inline';
				$('info2').style.display='none';
				$('info3').style.display='none';
			break;
		*/
		case "0":
		case "1":
		case "2":
				$('repeated-payment').style.display='inline';
				$('right-block').style.display='inline';
				$('info1').style.display='none';
				$('info2').style.display='inline';
				$('info3').style.display='none';
				$('submit_button').disabled='disabled';
				$('submit_button').getParent().getParent().addClass('disable');
			break;
		case "3":
				$('repeated-payment').style.display='none';
				$('right-block').style.display='none';
				$('info1').style.display='none';
				$('info2').style.display='none';
				$('info3').style.display='inline';
				$('submit_button').disabled='';
				$('submit_button').getParent().getParent().removeClass('disable');
			break;

	}
}

function registerSavePDF(pdf_link) {
	$('submit_button').disabled='';
	$('submit_button').getParent().getParent().removeClass('disable');
	$('act').value='pdf';
	$('account_step4').action=pdf_link;//'/' + controller + '/step4Pdf/';
	$('account_step4').target='';
	$('account_step4').submit();
	tb_remove();
}

function registerPrintPDF(pdf_link, form) {
	$('submit_button').disabled='';
	$('submit_button').getParent().getParent().removeClass('disable');
	$('act').value='print';
	form.action=pdf_link;//'/' + controller + '/step4Pdf/';
	form.target='_blank';
	form.submit();
	tb_remove();
}

/*
function returnToStep(num) {
   var url = '/registreren/step/' + num + '/';
   window.location = url;
}
*/

///////////////////////////////////////////
///// New Address account Validation //////
///////////////////////////////////////////
function validateAddressAccountForm(form) {
    reset_msg('street-error');
    //reset_msg('house-number-error');
    reset_msg('postcode-error');
    reset_msg('postbus-postcode-error');
    reset_msg('city-error');
    //reset_msg('country-error');
    error = false;
    if (!form.street.value) {
        show_msg('street-error', verplicht);
        error = true;
    }
	/*
    if (!form.number.value) {
        show_msg('house-number-error', verplicht);
        error = true;
    }
	*/
    if (!checkPostCode(form.postcode.value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
        show_msg('postcode-error', verplicht);
        error = true;
    }
    if (!form.city.value) {
        show_msg('city-error', verplicht);
        error = true;
    }
    if (form.postbus_postcode.value && !checkPostCode(form.postbus_postcode.value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
        show_msg('postbus-postcode-error', verplicht);
        error = true;
    }
	/*
    if (!form.country.value) {
        show_msg('country-error', verplicht);
        error = true;
    }
	*/
    if (!error) {
        form.action = '/account/addressupdate/';
        form.submit();
        tb_remove();
    }
}

function validateAddressRequestForm(form) {
    reset_msg('street-error');
    //reset_msg('house-number-error');
    reset_msg('postcode-error');
    reset_msg('postbus-postcode-error');
    reset_msg('city-error');
    //reset_msg('country-error');
    error = false;
    if (!form.street.value) {
        show_msg('street-error', verplicht);
        error = true;
    }
	/*
    if (!form.number.value) {
        show_msg('house-number-error', verplicht);
        error = true;
    }
	*/
    if (!checkPostCode(form.postcode.value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
        show_msg('postcode-error', verplicht);
        error = true;
    }
    if (!form.city.value) {
        show_msg('city-error', verplicht);
        error = true;
    }
    if (form.postbus_postcode.value && !checkPostCode(form.postbus_postcode.value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
        show_msg('postbus-postcode-error', verplicht);
        error = true;
    }
	/*
    if (!form.country.value) {
        show_msg('country-error', verplicht);
        error = true;
    }
	*/
    if (!error) {
        form.action = '/account/addressrequest/';
        form.submit();
        tb_remove();
    }
}


function validateProjectAccountForm(form) {
    reset_msg('project-error');

    error = false;
    if (!form.project_name.value) {
        show_msg('project-error', verplicht);
        error = true;
    }

    if (!error) {
        form.action = '/account/projectupdate/';
        form.submit();
        tb_remove();
    }
}


function validateExpressForm(form) {
    reset_msg('first-name-error');
    reset_msg('last-name-error');
    reset_msg('gender-error');
    reset_msg('phone-error');
    reset_msg('number-error');
    reset_msg('mail-error');
    reset_msg('checkbox-error');
    reset_msg('password-error');
    reset_msg('password2-error');

    error = false;
    
    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }
	
    //validate email and pass - if not submit - then error
	/*
    if(!validateStep1Form(form, !form.company_info.checked)) {
    	error = true;
    }
	*/

    if (!form.first_name.value) {
        show_msg('first-name-error', verplicht);
        error = true;
    }
    if (!form.last_name.value) {
        show_msg('last-name-error', verplicht);
        error = true;
    }
    if (!form.gender[0].checked && !form.gender[1].checked) {
        show_msg('gender-error', verplicht);
        error = true;
    }

    if (form.phone.value && !checkPhone(form.phone.value)) {
        show_msg('phone-error', 'Onjuiste notatie voor telefoonnummer gebruik 0101234567');
        error = true;
    }

    if (!form.unique_number.value) {
        show_msg('number-error', verplicht);
        error = true;
    }
	
	if(!form.weekly_email.checked) {
		show_msg('checkbox-error', 'Om kans te maken op de fantastische prijzen dient u zich aan te melden voor de nieuwsbrief');
		error = true;
	}

    pass_not_required = 0;
    if(!form.company_info.checked)
    	pass_not_required = 1;

    if(!pass_not_required)
        if (!form.password.value || form.password.value.length < 8) {
            show_msg('password-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
            error = true;
        }

    if(!pass_not_required)
        if (!(form.password.value.match(/^\w+$/) && form.password.value.match(/\d/) && form.password.value.match(/\D/))) {
            show_msg('password-error', 'Uw wachtwoord moet een combinatie zijn van cijfers en letters');
            error = true;
        }
    /*
    \d any number; same as [0-9]
	\D any NOT number; same as [^0-9]
	\w any alphanumeric character; same as [a-zA-Z-0-9_]
	\W any NON-alphanumeric character; same as [^a-zA-Z0-9_]
	\s any whitespace (tab, space, newline, etc...)
	\S any NON-whitespace
	\n newline
	\t tab
	*/
    if(!pass_not_required)
        if (form.password.value != form.password2.value) {
            show_msg('password2-error', 'Wachtwoorden komen niet overeen');
            error = true;
        }

    if (form.unique_number.value) {
	webshop.showWaitBox();
	var requestUrl = webshop.buildRequestUrl('checkUniqueNumber');
	webshop.callback = function(response){if(response) {error= true;show_msg('number-error', response);}};
	jQuery.ajaxSetup({async: false});
	jQuery.getJSON(requestUrl, {unique_number:form.unique_number.value}, webshop.checkError);
	jQuery.ajaxSetup({async: true});
    }

	return !error;
}


function show_msg(id, text){
  var msg = document.getElementById(id);
  msg.innerHTML = text;
  msg.style.visibility = 'visible';
}

function reset_msg(id){
  var msg = document.getElementById(id);
  msg.innerHTML = '';
  msg.style.visibility = 'hidden';
}

/////////////////////////////////////
///////// Order Validation //////////
/////////////////////////////////////

/*
function returnOrderToStep(num) {
	if(num=='0')
		var url = '/order/';
	else
		var url = '/order/step/' + num + '/';
	window.location = url;
}
*/

function validateSetPasswordFormForOrderStep1(form) {
    reset_msg('password-error');
    reset_msg('password2-error');
    error = false;

    if (!form.password.value || form.password.value.length < 8) {
        show_msg('password-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
        error = true;
    }

    if (!(form.password.value.match(/^\w+$/) && form.password.value.match(/\d/) && form.password.value.match(/\D/))) {
        show_msg('password-error', 'Uw wachtwoord moet een combinatie zijn van cijfers en letters');
        error = true;
    }

    if (form.password.value != form.password2.value) {
        show_msg('password2-error', 'Wachtwoorden komen niet overeen');
        error = true;
    }

    if (!error) {
        jQuery.ajax({
            type: "POST",
            url: webshop.buildRequestUrl("setCustomerPasswordByUserName"),
            dataType: 'json',
            data: ({email : form.userName.value, password : form.password.value}),
            async: false,
            success: function(response){ // 1 - ok, 2 - // registered, 3 - // unregistered
                return true;
                },
	    error: function(){
                error = true;
                }
            });
    }

    return !error;
}

function validateOrderStep1Form(form) {
    reset_msg('first-name-error');
    reset_msg('last-name-error');
    reset_msg('gender-error');
    reset_msg('street-error');
    //reset_msg('house-number-error');
    reset_msg('postcode-error');
    reset_msg('city-error');
    reset_msg('phone-error');
    //reset_msg('country-error');
    reset_msg('mail-error');

    reset_msg('dstreet-error');
    //reset_msg('dhouse-number-error');
    reset_msg('dpostcode-error');
    reset_msg('dcity-error');
    reset_msg('dphone-error');
    jQuery('#registered-customer-block').hide();
    jQuery('#unregistered-customer-block').hide();
    error = false;

    if (!form.first_name.value) {
        show_msg('first-name-error', verplicht);
        error = true;
    }
    if (!form.last_name.value) {
        show_msg('last-name-error', verplicht);
        error = true;
    }
    if (!form.gender[0].checked && !form.gender[1].checked) {
        show_msg('gender-error', verplicht);
        error = true;
    }
    if (!form.street.value) {
        show_msg('street-error', verplicht);
        error = true;
    }
	/*
    if (!form.house_number.value) {
        show_msg('house-number-error', verplicht);
        error = true;
    }
	*/
    if (!checkPostCode(form.postcode.value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
        show_msg('postcode-error', verplicht);
        error = true;
    }
    if (!form.city.value) {
        show_msg('city-error', verplicht);
        error = true;
    }
    if (!form.phone.value) {
        show_msg('phone-error', verplicht);
        error = true;
    }
	/*
    if (!form.country.value) {
        show_msg('country-error', verplicht);
        error = true;
    }
	*/
    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    if (form.email.value) {
        jQuery.ajax({
            type: "POST",
            url: webshop.buildRequestUrl("checkCustomerTypeByEmail"),
            dataType: 'json',
            data: ({email : form.email.value}),
            async: false,
            success: function(response){ // 1 - ok, 2 - // registered, 3 - // unregistered
                type = response.responseData.customer_type;
                if (type == '2') {
                    jQuery('#unregistered-customer-block').show();
                    jQuery('#userName').val(form.email.value);
                    var target_offset = jQuery("#unregistered-customer-block").offset();
                    var target_top = target_offset.top - 10;
                    jQuery('html, body').animate({scrollTop:target_top}, 500);
                    error = true;
                }
                if (type == '3' || type == '4' || type == '5') {
                    jQuery('#registered-customer-block').show();
                    var target_offset = jQuery("#registered-customer-block").offset();
                    var target_top = target_offset.top - 10;
                    jQuery('html, body').animate({scrollTop:target_top}, 500);
                    error = true;
                }
                }
            });
    }

    if(form.delivery[1].checked) {
	    if (!form.dstreet.value) {
	        show_msg('dstreet-error', verplicht);
	        error = true;
	    }
		/*
	    if (!form.dhouse_number.value) {
	        show_msg('dhouse-number-error', verplicht);
	        error = true;
	    }
		*/
	    if (!checkPostCode(form.dpostcode.value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
	        show_msg('dpostcode-error', verplicht);
	        error = true;
	    }
	    if (!form.dcity.value) {
	        show_msg('dcity-error', verplicht);
	        error = true;
	    }
            if (!form.dphone.value) {
                show_msg('dphone-error', verplicht);
                error = true;
            }
    }
	if (error)
		show_msg('form-error', 'formulier niet volledig/correct ingevuld');
	else
		reset_msg('form-error');

	return !error;
}

function updateOrderStep1Form(form) {
	//update delivery part - enable or disable
	form.recipient.disabled = form.delivery[0].checked;
	form.dstreet.disabled = form.delivery[0].checked;
	//form.dhouse_number.disabled = form.delivery[0].checked;
	//form.dhouse_number_add.disabled = form.delivery[0].checked;
	form.dpostcode.disabled = form.delivery[0].checked;
	form.dcity.disabled = form.delivery[0].checked;
	form.dcountry.disabled = form.delivery[0].checked;
	form.dphone.disabled = form.delivery[0].checked;
	//form.dinfo.disabled = form.delivery[0].checked;
	//form.notify_email.disabled = form.delivery[0].checked;
	//form.notify_sms.disabled = form.delivery[0].checked;
	//form.notify_post.disabled = form.delivery[0].checked;
}

function validateOrderStep2Form(form) {
	reset_msg('payment-error');
	error=true;

	len=form.payment_method.length;
	//check if delivery method is selected
	if(len == undefined) {
		if(form.payment_method.checked)
			error=false;
	} else {
		for(i=0;i<len;i++) {
			if(form.payment_method[i].checked)
				error=false;
		}
		//if(form.selecting_payment[0].checked)
		//	error = false;
	}

    if (error) {
    	show_msg('payment-error', 'Kies betaalmethode');
    }

	return !error;
}

function validateOrderStep3Form(form,project) {
	error=false;
 	reset_msg('agreement-error');
	reset_msg('shoppickup-error');
	reset_msg('project-error');
	reset_msg('date-error');

	if(form.retreive[1].checked && (form.shoppickup.value=='0')) {
		show_msg('shoppickup-error', verplicht);
		error = true;
	}

	//validate date
	if(form.delivery_date[1].checked) {
		nowd = new Date();
		newd = new Date(Date.UTC(form.delivery_year.value,form.delivery_month.value-1,form.delivery_day.value,nowd.getHours(),nowd.getMinutes(),nowd.getSeconds()));
		if(newd.getTime()<nowd.getTime()) {
			show_msg('date-error', 'De door u gekozen datum is niet mogelijk');
			error = true;
		}

		if((newd.toUTCString().substr(0,3)=='Sat') || (newd.toUTCString().substr(0,3)=='Sun')) {
			show_msg('date-error', 'Alleen werkdagen mogelijk');
			error = true;
		}
		if (newd.getDate() != form.delivery_day.value) {
			show_msg('date-error', 'De door u gekozen datum is niet mogelijk');
			error = true;
		}
	}

	//if(form.work_code_drop.value=='Other')
		project_name = form.work_code.value;
	//else
	//	project_name = form.work_code_drop.value;
    if (project && !project_name) {
        show_msg('project-error', verplicht);
        error = true;
    }

	if(!jQuery('#agreement').attr('checked')) {
		show_msg('agreement-error', 'Dit is een verplicht veld');
		error = true;
	}

	fixHideMe();
	return !error;
}


//enable/disable date of delivery
function updateOrderStep3Form(form) {
	form.shoppickup.disabled = form.retreive[0].checked;
	form.delivery_day.disabled = form.delivery_date[0].checked;
	form.delivery_month.disabled = form.delivery_date[0].checked;
	form.delivery_year.disabled = form.delivery_date[0].checked;
}

//update order delivery name from thickbox
function updateOrderStep3Name(form) {
	//update delivery name
	var newname=$('newname').value+' '+$('newmiddle').value+' '+$('newsurname').value;
	$('delivery_name_div').innerHTML=newname;
	$('delivery_name').value=newname;
	tb_remove();
}

//update hidden form and viewable address on rowclick in thickbox
function setOrderStep3Address(num) {
	type=$('tmp_method').value;
	$(type+'_i_company').innerHTML=$('addr_company_'+num).innerHTML;
	$(type+'_i_street').innerHTML=$('addr_street_'+num).innerHTML;
	//$(type+'_i_number').innerHTML=$('addr_number_'+num).innerHTML;
	//$(type+'_i_number_add').innerHTML=$('addr_number_add_'+num).innerHTML;
	$(type+'_i_postcode').innerHTML=$('addr_postcode_'+num).innerHTML;
	$(type+'_i_city').innerHTML=$('addr_city_'+num).innerHTML;
	$(type+'_i_country').innerHTML=$('addr_country_'+num).innerHTML;

	$(type+'_company').value=$('addr_company_'+num).innerHTML;
	$(type+'_street').value=$('addr_street_'+num).innerHTML;
	//$(type+'_number').value=$('addr_number_'+num).innerHTML;
	//$(type+'_number_add').value=$('addr_number_add_'+num).innerHTML;
	$(type+'_postcode').value=$('addr_postcode_'+num).innerHTML;
	$(type+'_phone').value=$('addr_phone_'+num).innerHTML;
	$(type+'_city').value=$('addr_city_'+num).innerHTML;
	$(type+'_country').value=$('addr_country_'+num).innerHTML;
	$(type+'_id').value=$('addr_id_'+num).innerHTML;
	$(type+'_is_infotrade').value=$('addr_is_infotrade_'+num).innerHTML;

	if($('addr_opm_'+num))
		$('adriverinfo').value = $('addr_opm_'+num).alt;
	$('driverinfo').value = $('adriverinfo').value;
	tb_remove();
}

//put data from hidden form to editable form in thickbox
function updateOrderStep3AddressForm() {
	type=$('tmp_method').value;

	$('company').value=$(type+'_company').value;
	$('street').value=$(type+'_street').value;
	//$('house_number').value=$(type+'_number').value;
	//$('house_number_add').value=$(type+'_number_add').value;
	$('postcode').value=$(type+'_postcode').value;
	$('phone').value=$(type+'_phone').value;
	$('city').value=$(type+'_city').value;
	$('country').value=$(type+'_country').value;
	$('address_id').value=$(type+'_id').value;

	$('name').value = $(type+'_name').value;
	$('adriverinfo').value = $('driverinfo').value;
	$('is_infotrade').value=$(type+'_is_infotrade').value;

}

//put data from editable form in thickbox to hidden form and viewable address
function updateOrderStep3Address(form) {
	type=$('tmp_method').value;

    reset_msg('street-error');
    //reset_msg('number-error');
    reset_msg('city-error');
    reset_msg('postcode-error');
    reset_msg('postbus-postcode-error');
    error = false;

    if (!$('street').value) {
        show_msg('street-error', verplicht);
        error = true;
    }
	/*
    if (!$('house_number').value) {
        show_msg('number-error', verplicht);
        error = true;
    }
	*/
    if (!$('city').value) {
        show_msg('city-error', verplicht);
        error = true;
    }
    if (!checkPostCode($('postcode').value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
        show_msg('postcode-error', verplicht);
        error = true;
    }

    if ($('postbus_postcode').value && !checkPostCode($('postbus_postcode').value, form.country.item(form.country.selectedIndex).getAttribute('zipformat'))) {
        show_msg('postbus-postcode-error', verplicht);
        error = true;
    }
	if(error) return false;

	$(type+'_company').value=$('company').value;
	$(type+'_street').value=$('street').value;
	//$(type+'_number').value=$('house_number').value;
	//$(type+'_number_add').value=$('house_number_add').value;
	$(type+'_postcode').value=$('postcode').value;
	$(type+'_phone').value=$('phone').value;
	$(type+'_city').value=$('city').value;
	$(type+'_country').value=$('country').options[$('country').selectedIndex].text;
	$(type+'_id').value=$('address_id').value;


	$(type+'_i_company').innerHTML=$('company').value;
	$(type+'_i_street').innerHTML=$('street').value;
	//$(type+'_i_number').innerHTML=$('house_number').value;
	//$(type+'_i_number_add').innerHTML=$('house_number_add').value;
	$(type+'_i_postcode').innerHTML=$('postcode').value;
	$(type+'_i_city').innerHTML=$('city').value;
	$(type+'_i_country').innerHTML=$('country').options[$('country').selectedIndex].text;

	$(type+'_name').value = $('name').value;
	$(type+'_is_infotrade').value = $('is_infotrade').value;
	$('driverinfo').value = $('adriverinfo').value;

   var address_data = new Array();
   address_data['company'] = form.company.value;
   address_data['street'] = form.street.value;
   address_data['postcode'] = form.postcode.value;
   address_data['phone'] = form.phone.value;
   address_data['city'] = form.city.value;
   address_data['note'] = form.adriverinfo.value;
   address_data['country'] = form.country.value;
   address_data['name'] = form.name.value;
   if (form.is_default.checked)
       address_data['is_default'] = 1;
   else
       address_data['is_default'] = 0;

   webshop.callback = saveAddressCallBack;
   webshop.saveAddress(address_data);

}



function validateOrderStep4Form(form) {
    reset_msg('account-number-error');
    reset_msg('account-holder-error');
    reset_msg('confirm-bank-error');

    error = false;
	if (!form.account_number.value) {
		show_msg('account-number-error', verplicht);
		error = true;
	}
	if (!form.account_name.value) {
		show_msg('account-holder-error', verplicht);
		error = true;
	}
	if (!form.account_city.value) {
		show_msg('account-city-error', verplicht);
		error = true;
	}
	//if recurrent payment
	if (!form.agreement2.checked) {
		show_msg('confirm-bank-error', verplicht);
		error = true;
	}


    return !error;
}



/////////////////////////////////////
//////// Account Validation /////////
/////////////////////////////////////


function validatePaymentMethodAccountForm(form) {
	reset_msg('payment-error');
	error=true;

	len=form.payment_method.length;
	//check if delivery method is selected
	if(len == undefined) {
		if(form.payment_method.checked)
			error=false;
	} else {
		for(i=0;i<len;i++) {
			if(form.payment_method[i].checked)
				error=false;
		}
	}

    if (!error) {
        form.action = '/account/paymentupdate/';
        form.submit();
    } else {
    	show_msg('payment-error', 'Kies betaalmethode');
    }
}

function validateCustomerAccountForm(form) {
    reset_msg('mail-error');
    reset_msg('first-name-error');
    reset_msg('last-name-error');
    reset_msg('gender-error');
    reset_msg('password-error');
    reset_msg('password2-error');

    error = false;
    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }
    if (!form.first_name.value) {
        show_msg('first-name-error', verplicht);
        error = true;
    }
    if (!form.last_name.value) {
        show_msg('last-name-error', verplicht);
        error = true;
    }
    if (!form.gender[0].checked && !form.gender[1].checked) {
        show_msg('gender-error', verplicht);
        error = true;
    }

    if (form.password.value.length > 0 && (!form.password.value || form.password.value.length < 8)) {
        show_msg('password-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
        error = true;
    }
    if (form.password.value.length > 0 && !(form.password.value.match(/^\w+$/) && form.password.value.match(/\d/) && form.password.value.match(/\D/))) {
        show_msg('password-error', 'Uw wachtwoord moet combinatie zijn van cijfers en letters');
        error = true;
    }
    if (form.password.value.length > 0 && form.password.value != form.password2.value) {
        show_msg('password2-error', 'Wachtwoorden komen niet overeen');
        error = true;
    }

    if (error)
        return false;
    else
        return true;
}



function validatePasswordChange(form) {
    reset_msg('oldpass-error');
	reset_msg('password-error');
    reset_msg('password2-error');
    error = false;

    if (!form.oldpass.value || form.oldpass.value.length < 8) {
        show_msg('oldpass-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
        error = true;
    }
    if (!(form.oldpass.value.match(/^\w+$/) && form.oldpass.value.match(/\d/) && form.oldpass.value.match(/\D/))) {
        show_msg('oldpass-error', 'Uw wachtwoord moet combinatie zijn van cijfers en letters');
    }

    if (!form.password.value || form.password.value.length < 8) {
        show_msg('password-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
        error = true;
    }
    if (!(form.password.value.match(/^\w+$/) && form.password.value.match(/\d/) && form.password.value.match(/\D/))) {
        show_msg('password-error', 'Uw wachtwoord moet combinatie zijn van cijfers en letters');
    }
    if (form.password.value != form.password2.value) {
        show_msg('password2-error', 'Wachtwoorden komen niet overeen');
        error = true;
    }

    return !error;
}

function validateSetPasswordForm(form) {
    reset_msg('password-error');
    reset_msg('password2-error');
    error = false;

    if (!form.password.value || form.password.value.length < 8) {
        show_msg('password-error', 'Uw wachtwoord moet minimaal 8 tekens bevatten en een combinatie zijn van cijfers en letters');
        error = true;
    }
    if (!(form.password.value.match(/^\w+$/) && form.password.value.match(/\d/) && form.password.value.match(/\D/))) {
        show_msg('password-error', 'Uw wachtwoord moet combinatie zijn van cijfers en letters');
    }
    if (form.password.value != form.password2.value) {
        show_msg('password2-error', 'Wachtwoorden komen niet overeen');
        error = true;
    }

    if (!error) {
        form.action = '/account/savepassword/';
        form.submit();
    }
}

function validateResetPasswordForm(form) {
    reset_msg('mail-error');
    error = false;
    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('mail-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    if (!error) {
        form.action = '/account/wachtwoordvergeten/';
        form.submit();
    }
}

/////////////////////////////////////
////////// Werk Validation //////////
/////////////////////////////////////

function validateWerkForm(form) {
	reset_msg('achternaam-error');
	reset_msg('voornaam-error');
	reset_msg('adres-error');
	reset_msg('postcode-error');
	reset_msg('woonplaats-error');
	reset_msg('telefoonnummer-error');
	reset_msg('geboortedatum-error');
	reset_msg('werken-error');
	reset_msg('email-error');
	error = false;

	if (!form.email.value || !checkEmail(form.email.value)) {
		show_msg('email-error', 'Dit is een ongeldig emailadres');
		error = true;
	}
	if (!form.achternaam.value) {
		show_msg('achternaam-error', 'Verplicht');
		error = true;
	}
	if (!form.voornaam.value) {
		show_msg('voornaam-error', 'Verplicht');
		error = true;
	}
	if (!form.adres.value) {
		show_msg('adres-error', 'Verplicht');
		error = true;
	}
	if (!checkPostCode(form.postcode.value)) {
		show_msg('postcode-error', 'Verplicht');
		error = true;
	}
	if (!form.woonplaats.value) {
		show_msg('woonplaats-error', 'Verplicht');
		error = true;
	}
	if (!form.telefoonnummer.value) {
		show_msg('telefoonnummer-error', 'Verplicht');
		error = true;
	}
	if (!form.werken.value) {
		show_msg('werken-error', 'Verplicht');
		error = true;
	}
	if (!form.number_day.value || !form.number_month.value || !form.number_year.value) {
		show_msg('geboortedatum-error', 'Verplicht');
		error = true;
	}

	if (error)
		return false;
	else
		return true;
}

function validateInschrijfWerkForm(form) {
	reset_msg('achternaam-error');
	reset_msg('voornaam-error');
	reset_msg('adres-error');
	reset_msg('postcode-error');
	reset_msg('woonplaats-error');
	reset_msg('telefoonnummer-error');
	reset_msg('periode-van-error');
	reset_msg('periode-tot-error');
	reset_msg('werken-error');
	reset_msg('email-error');
	error = false;

	if (!form.email.value || !checkEmail(form.email.value)) {
		show_msg('email-error', 'Dit is een ongeldig emailadres');
		error = true;
	}
	if (!form.achternaam.value) {
		show_msg('achternaam-error', 'Verplicht');
		error = true;
	}
	if (!form.voornaam.value) {
		show_msg('voornaam-error', 'Verplicht');
		error = true;
	}
	if (!form.adres.value) {
		show_msg('adres-error', 'Verplicht');
		error = true;
	}
	if (!checkPostCode(form.postcode.value)) {
		show_msg('postcode-error', 'Verplicht');
		error = true;
	}
	if (!form.woonplaats.value) {
		show_msg('woonplaats-error', 'Verplicht');
		error = true;
	}
	if (!form.telefoonnummer.value) {
		show_msg('telefoonnummer-error', 'Verplicht');
		error = true;
	}
	if (!form.werken.value) {
		show_msg('werken-error', 'Verplicht');
		error = true;
	}
	if (!form.van_day.value || !form.van_month.value || !form.van_year.value) {
		show_msg('periode-van-error', 'Verplicht');
		error = true;
	}
	if (!form.tot_day.value || !form.tot_month.value || !form.tot_year.value) {
		show_msg('periode-tot-error', 'Verplicht');
		error = true;
	}

	if (error)
		return false;
	else
		return true;
}


/////////////////////////////////////
////////// Forum Validation /////////
/////////////////////////////////////

function validateForumPostForm(form) {
    reset_msg('post_body-error');
	error = false;

    if (!form.post_body.value) {
        show_msg('post_body-error', verplicht);
        error = true;
    }

    if (error)
        return false;
    else
        return true;
}

function validateForumTopicForm(form) {
    reset_msg('post_body-error');
	reset_msg('post_title-error');
	error = false;

    if (!form.post_body.value) {
        show_msg('post_body-error', verplicht);
        error = true;
    }
    if (!form.post_title.value) {
        show_msg('post_title-error', verplicht);
        error = true;
    }

    if (error)
        return false;
    else
        return true;
}

function validateComplainForm(form) {
    reset_msg('name-error');
	reset_msg('email-error');
	reset_msg('complain_text-error');
	error = false;

    if (!form.name.value) {
        show_msg('name-error', verplicht);
        error = true;
    }
    if (!form.email.value || !checkEmail(form.email.value)) {
        show_msg('email-error', 'Dit is een ongeldig emailadres');
        error = true;
    }

    if (!form.complain_text.value) {
        show_msg('complain_text-error', verplicht);
        error = true;
    }

	return !error;
}
