jQuery.copyAfleveradres = function( form ){
	form["afleveradres_straat"].disabled =  form["afleveradres_alt"][0].checked;
	form["afleveradres_huisnummer"].disabled = form["afleveradres_alt"][0].checked;
	form["afleveradres_huisnummer_tv"].disabled = form["afleveradres_alt"][0].checked;
	form["afleveradres_postcode"].disabled = form["afleveradres_alt"][0].checked;
	form["afleveradres_plaats"].disabled = form["afleveradres_alt"][0].checked;
	form["afleveradres_land"].disabled = form["afleveradres_alt"][0].checked;
	
	if( form["afleveradres_alt"][0].checked ){
		form["afleveradres_straat"].value  = form["factuuradres_straat"].value;
		form["afleveradres_huisnummer"].value  = form["factuuradres_huisnummer"].value;
		form["afleveradres_huisnummer_tv"].value  = form["factuuradres_huisnummer_tv"].value;
		form["afleveradres_postcode"].value  = form["factuuradres_postcode"].value;
		form["afleveradres_plaats"].value  = form["factuuradres_plaats"].value;
		form["afleveradres_land"].value  = form["factuuradres_land"].value;
	}
}

$(function() {
	$('div.klantgegevens form input').click(function() {
		$.copyAfleveradres( this.form );
	});
	$('div.klantgegevens form input').keyup(function() {
		$.copyAfleveradres( this.form );
	}); 
	$('div.klantgegevens form select').change(function() {
		$.copyAfleveradres( this.form );
	});
	$('div.klantgegevens form').each(function(){
		$.copyAfleveradres( this );
	});
	$('div.klantgegevens form').submit(function(){
		this["afleveradres_straat"].disabled = false;
		this["afleveradres_huisnummer"].disabled = false;
		this["afleveradres_huisnummer_tv"].disabled = false;
		this["afleveradres_postcode"].disabled = false;
		this["afleveradres_plaats"].disabled = false;
		this["afleveradres_land"].disabled = false;
	});
	
	// bestel-klantgegevens: formulier-elementen
	$('div.klantgegevens form input.numeric').keypress(function(e) {		
		if (e.which == 32 || (65 <= e.which && e.which <= 65 + 25) || (97 <= e.which && e.which <= 97 + 25)) {
			return /^([0-9]+)?$/.test(this.value + String.fromCharCode(e.which));
		} else {
			return true;
		}
	});
	
	$('#klantgegevens_form_naw').submit( function() {
		$(this).attr('valid','true');
		$('div.klantgegevens form div.required input,div.klantgegevens form input.numeric,div.klantgegevens form input.email').each(klantgegevens_form_validation);
		if ($(this).attr('valid') != 'true') {
			alert('Vult u alle velden gemarkeerd met een (*) in!');
			return false;			
		} else {
			return true;
		}
	});
	
	$('#mijnrieten_wijzigklantgegevens_form').submit( function() {
		$(this).attr('valid','true');
		$('div.klantgegevens form div.required input,div.klantgegevens form input.numeric,div.klantgegevens form input.email').each(klantgegevens_form_validation);
		if ($(this).attr('valid') != 'true') {
			alert('Vult u alle velden gemarkeerd met een (*) in!');
			return false;			
		} else {
			if($('#wachtwoord1').val() != '' || $('#wachtwoord2').val() != '' ) {
				if($('#wachtwoord1').val().length < 6) {
					alert('Het wachtwoord moet minimaal uit 6 karakters bestaan!');
					return false;	
				} else if ($('#wachtwoord1').val() != $('#wachtwoord2').val()) {
					alert('De wachtwoorden komen niet overeen!');
					return false;	
				}
			}
			
			return true;
		}
	});		
});

function klantgegevens_form_validation() {
	var valid = true;
	var node = this.parentNode;
	while (node.tagName!='DIV') {
		node = node.parentNode;
	}
	if ($(node).hasClass('required') && !this.disabled) {
		if (this.type=='text' && this.value.length==0) {
			valid = false;
		} else if (this.type=='radio') {
			if (this.form.elements[this.name].length) {
				checked = false;
				for (i=0; i<this.form.elements[this.name].length; i++) {
					if (this.form.elements[this.name][i].checked) {
						checked = true;
					}
				}
				if (!checked) {
					valid = false;					
				}
			} else {
				// enkele radio
				if (!this.checked) {
					valid = false;
				}
			}
		}		
	}
	if (($(this).hasClass('numeric' && this.value != '')) && !/^[0-9]+$/.test(this.value) && !this.disabled) {
		valid = false;
	}
	if ($(this).hasClass('email') && !/^[a-zA-Z0-9\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'\+\-\=\_\?][a-zA-Z0-9\!\#\$\%\*\/\?\|\^\{\}\`\~\&\'\+\-\=\_\?\.]*@([a-zA-Z0-9][a-zA-Z0-9\-\.]*[a-zA-Z0-9]\.[a-zA-Z]{2,6}|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(\:([0-9]+))?$/.test(this.value) && !this.disabled) {
		valid = false;
		
	}
	if (!valid)  {
		$(this.form).attr('valid','false');
	}
}