function validatePostPaymentForm()
{
	$('#postalcode').onkeyup = function(e){ goToOtherField(e,$('#postalcode'),4,$('#postalcode_letters'),null) };	
	if($('#birthday'))('birthDay').onkeyup = function(e){ goToOtherField(e,$('#birthDay'),2,$('#birthMonth'),null) };
	if($('#birthmonth'))$('#birthMonth').onkeyup = function(e){ goToOtherField(e,$('#birthMonth'),2,$('#birthYear'),null) };
	
	if($('#email')){
		validateEmail();
		$('#email').bind('keyup', function(e){
			validateEmail();
		});
		
		$('#email').bind('change', function(e){
			validateEmail();
		});
	}
	
	if($('#password')){
		validatePassword();
		$('#password').bind('keyup', function(e){
			validatePassword();
		});
	}
	
	if($('#isOwner-1')) {
		validateIsOwner();
		$('#isOwner-1').bind('change', function(e) {validateIsOwner()});
		$('#isOwner-0').bind('change', function(e) {validateIsOwner()});
	}
	
	
	if($('#firstname')) {
		validateFirstname();
		$('#firstname').bind('keyup', function(e) {validateFirstname()});
	}
	
	if($('#lastname')) {
		validateLastname();
		$('#lastname').bind('keyup', function(e) {validateLastname()});
	}
	
	if($('#gender-m')) {
		validateGender();
		$('#gender-m').bind('change', function(e) {validateGender()});
		$('#gender-f').bind('change', function(e) {validateGender()});
	}
	
	if($('#doubleoptintext')) {
		validateTerms();
		$('#doubleoptintext').bind('click', function(e) {validateTerms()});
	}
	
	if($('#termsvrij')) {
		validateTermsVrij();
		$('#termsvrij').bind('click', function(e) {validateTermsVrij()});
	}
	
	if(	$('#birthdate_day') && $('#birthdate_month') && $('#birthdate_year')){
		validateBirthDate();
		
		$('#birthdate_day').bind('change', function(e){
			validateBirthDate();
		});
		
		$('#birthdate_month').bind('change', function(e){
			validateBirthDate();
		});
		
		$('#birthdate_year').bind('change', function(e){
			validateBirthDate();
		});
	}
	
	if($('#postalcode')) {
		$('#postalcode').bind('keyup', function(e){
			if(this.value.length >= 4) {
				$('#postalcode_letters').focus();
			}
		});
		$('#postalcode').bind('blur', function(e){validatePostalcode()});
		
		$('#postalcode_letters').bind('keyup', function(e){
			if(this.value.length >= 2) {
				validatePostalcode()
			}
		});
		$('#postalcode_letters').bind('blur', function(e){validatePostalcode()});
	}
		
	if($('#mileageKmYear')) {
		validateMileageKmYear();
		$('#mileageKmYear').bind('change', function(e){
			validateMileageKmYear();
		});
	}
		
	if($('#homenumber')) {
		validateHomenumber();
		$('#homenumber').bind('keyup', function(e){
			validateHomenumber();
		});
	}
}

function createValidImg()
{
	var img = document.createElement('img');
	img.src = '/images/icons/tick.png';
	img.alt = 'Valide';
	return img;
}


function validateEmail()
{
	var reg = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
	var email = $('#email').val();

	var isValid = reg.test(email);
	
	if (isValid && $('#email').css('display')!="none"){
		accountExists(email);
	} else {
		$('#passwordItem').css({display:'none'});
		$('#passwordExists').val('false');
	}
	
	setValidationImage($('#emailAddressStatus'),isValid);			
}

function accountExists(email){
		var url = '/user/accountexists/';
		
		// Get map data
		$.ajax({
			type: 'POST',
			url: url,
			dataType: 'json',
			data: 'email='+email,
			success: function(data) {
				if(data.exists){
					$('#registered').css({display:'block'});
				} else {
					$('#registered').css({display:'none'});
				}
			}
		});
}

function validateIsOwner()
{
	if($('#isOwner-1:checked').val() || $('#isOwner-0:checked').val()){
		setValidationImage($('#isOwnerStatus'),true);
	} else {
		setValidationImage($('#isOwnerStatus'),false);
	}
}

function validateGender()
{
	if($('#gender-m:checked').val() || $('#gender-f:checked').val()){
		setValidationImage($('#genderStatus'),true);
	} else {
		setValidationImage($('#genderStatus'),false);
	}
}

function validateTerms()
{
	if($('#doubleoptintext').attr('checked')){
		setValidationImage($('#termsStatus'),true);
	} else {
		setValidationImage($('#termsStatus'),false);
	}
}

function validateTermsVrij()
{
	if($('#termsvrij').attr('checked')){
		setValidationImage($('#termsVrijStatus'),true);
	} else {
		setValidationImage($('#termsVrijStatus'),false);
	}
}

function validatePostalcode()
{
	var reg_a = /^[0-9]{4}$/;
	var reg_b = /^[a-zA-Z]{2}$/;
	
	var isValidPc = (reg_a.test($('#postalcode').val()),reg_b.test($('#postalcode_letters').val())) ? true : false;
	
	setValidationImage($('#postalcodeStatus'),isValidPc);
}

function validateMileageKm()
{
	var reg = /^[0-9]{1,6}$/;
	setValidationImage($('#mileageKmStatus'),reg.test($('#mileageKm').val()));
}
function validateHomenumber()
{
	var reg = /^[0-9]{1,6}$/;
	setValidationImage($('#homenumberStatus'),reg.test($('#homenumber').val()));
}

function validateMileageKmYear()
{
	var reg = /^[0-9]{1,6}$/;
	setValidationImage($('#mileageKmYearStatus'),(reg.test($('#mileageKmYear').val()) && $('#mileageKmYear').val() != '0'));
}

function validateBirthDate()
{
	var reg = /^[0-9]{1,2}\-[0-9]{1,2}\-[0-9]{4}$/;
	var date = $('#birthdate_day').val() + '-' + $('#birthdate_month').val() + '-' +  $('#birthdate_year').val();		
	var validDate = reg.test(date) ? true : false;

	setValidationImage($('#birthDateStatus'),validDate);
}

function setValidationImage(element,isValid)
{
	if(isValid){
		element.html(createValidImg());
	}
	else {
		element.html('');
	}
}

function hasValidImage(spanElement)
{
	var imgs = spanElement;
	return (imgs.length > 0) ? 1 : 0;
}

function validatePassword()
{
	var reg = /^[a-zA-Z0-9]{6,}$/;
	setValidationImage($('#passwordStatus'),reg.test($('#password').val()))
}

function validateFirstname()
{
	var reg = /^[a-zA-Z0-9]{2,}$/;
	setValidationImage($('#firstnameStatus'),reg.test($('#firstname').val()))
}

function validateLastname()
{
	var reg = /^[a-zA-Z0-9]{2,}$/;
	setValidationImage($('#lastnameStatus'),reg.test($('#lastname').val()))
}

function goToOtherField(event,currentField,valueMaxLength,formField,previousField){
	
	if(previousField != null && event.keyCode == 8 && currentField.val().length == 0) {
		previousField.focus();
	}
	
	if(currentField.val().length >= valueMaxLength && formField != null)
	{
		formField.focus();
	}
}

