/****************************
 *
 * required 
 * required_radio
 * required_email 
 * 
 * validnumber   
 * validemail
 * 
 * 
 * Errorclasses voor display 
 * error_required
 * error_required_radio     
 *  
 **************************/ 
 
 var inputclass =  '.input'; // vergeet de . niet
 var focusclass = 'focus';

	function $RF(el, radioGroup) {
        var radioGroup = $(el).name;
        var el = $(el).form;
	    var checked = $(el).getInputs('radio', radioGroup).find(
	        function(re) {return re.checked;}
	    );
	    return (checked) ? $F(checked) : null;
	}
	
	function checkNumber(event){
		
		if(document.all)
			keycode = event.keyCode;
		else
			keycode = event.which;
		if((keycode >=48 && keycode <= 58) || (keycode >=96 && keycode <= 105) || keycode==8 || keycode==188 || keycode==9 || keycode==107 || keycode==109 || keycode == 189 || keycode == 37 || keycode == 39){
			return true;
        }
		else{
			Event.stop(event);
			return false;
        }
	}
	
	document.observe("dom:loaded", 
		function() {
	  		$$('.validnumber').each(
			  	function(e) {
					Event.observe(e, "keydown", checkNumber);  
      			}	  
	 		);
	 		$$(inputclass).each(
	 			function(e) {
					Event.observe(e, "focus", function(event){e.addClassName(focusclass) });
					Event.observe(e, "blur", function(event){e.removeClassName(focusclass) });
      			}	  
	 		);
		}
	);

	function checkForm(formulier){
		var failed = false;
		var required = $$('.required');
		for (var i = 0; i<required.length; i++){
			required[i].removeClassName('error_required');
			if(required[i].getValue() == '' || required[i].getValue() == '0.00'){
				required[i].addClassName('error_required');
				if (!failed) required[i].focus();
				failed = true;
			}
		}
		required = $$('.required_radio');
		for (var i = 0; i<required.length; i++){
			$(required[i].parentNode).removeClassName('error_required_radio');
			if($RF(required[i]) == null){
				$(required[i].parentNode).addClassName('error_required_radio');
				if (!failed) required[i].focus();
				failed = true;
			}
		}
		required = $$('.required_email');
		var mailre = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		for (var i = 0; i<required.length; i++){
			required[i].removeClassName('error_required');
			if(!required[i].value.match(mailre)) {
				required[i].addClassName('error_required');
				if (!failed) required[i].focus();
				failed = true;
			}
		}
		
		required = $$('.validemail');
		for (var i = 0; i<required.length; i++){
			required[i].removeClassName('error_required');
			if(required[i].value == '') continue; // niet verplicht
			if(!required[i].value.match(mailre)) {
				required[i].addClassName('error_required');
				if (!failed) required[i].focus();
				failed = true;
			}
		}
		if(failed == true){
			alert('Niet alle velden zijn volledig ingevuld. Controleer de gemarkeerde velden');
			return;
		}
		formulier.submit();
	}

