function check_required_radio_checkbox( frm, rad_name ) {
	var bRet=false;

	for (var t=0;t<frm.length;t++) {
	    if (frm[t].name.toLowerCase()==rad_name.toLowerCase()) {
		    if (frm[t].checked) bRet=true;
		}
	}
	return bRet; 
}

// Eenvoudige validatie, velden die met 'required-' beginnen zijn verplicht (of velden die in het veld Required staan, gescheiden door ; of ,)
// aanroep in form definitie => onsubmit="return form_valid(this)"
function form_valid(form) {
var tel,objfield,strfieldname,strerror='',blnFirst=true,strSubmitButton='Verstuur';
var blnCheckField;
var flds_arr;

// finds required field and make an array of the contents
for (tel=0;tel<form.length;tel++) {
	if (form[tel].name.toLowerCase()=="required") {
	    if (form[tel].value.indexOf(';')!=-1) {
    		flds_arr = form[tel].value.split(";");
    	} else {
    		flds_arr = form[tel].value.split(",");
    	}
	} 
}
for (tel=0;tel<form.length;tel++) {

	objfield=form[tel];
	strfieldname=objfield.name;
	blnCheckField = false;
	
	if (strfieldname.substring(0,8).toLowerCase()=='required') {
		 blnCheckField = true;
	}
	if (flds_arr) {
		var fld_num = 0;
		while (fld_num < flds_arr.length) {
		  if ( flds_arr[fld_num].toLowerCase()==strfieldname.toLowerCase() ) {
			 blnCheckField = true;			
		  }
		  fld_num+=1;
		}
	}
	
	if ( blnCheckField) {
		var sNiceField = '';
		var lbl_elt = form[strfieldname+'__label'];
		if (lbl_elt) {
			sNiceField = lbl_elt.value;
		} 
		if (sNiceField=='') {
			var sNiceField = strfieldname;
			if (strfieldname.substring(0,8).toLowerCase()=='required') {
				sNiceField = sNiceField.substring(8);
			}
			sNiceField=sNiceField.replace(/_/gi, " ");
			sNiceField=sNiceField.replace(/-/gi, "");
		} 
		
		switch (objfield.type) {
		    case 'checkbox':
			    if (!check_required_radio_checkbox(form,strfieldname)) {
				    strerror+=(' - "'+sNiceField+'" is niet aangevinkt.\n');
			    }
			    // skip all other instances of this checkbox
			    if (tel+1<form.length) {
	 		      while (form[tel].name.toLowerCase()==strfieldname.toLowerCase() && tel+1<form.length) tel++;
			    }
   		    break;
    		    
		    case 'radio':
			    if (!check_required_radio_checkbox(form,strfieldname)) { 
				    strerror+=(' - "'+sNiceField+'" is niet geselecteerd.\n')
			    }
			    // skip all other instances of this radiobutton
			    if (tel+1<form.length) {
	 			    while (form[tel].name.toLowerCase()==strfieldname.toLowerCase() && tel+1<form.length) tel++;
			    }
		        break;
		        
		    default:
		        if (objfield.type!='hidden') {
			        if (objfield.value=='') {
						if (blnFirst) {
							try { 
								objfield.focus();
								blnFirst=false;
							}
							catch(e){}
						}
				        strerror+=(' - "'+sNiceField+'" is niet ingevuld.\n');
			        }
		        }
		        break;
		}
	}	
}

if (strerror=='') {
	if (document.all){
		for (tel=0;tel<form.length;tel++) {
			objfield=form[tel];
			if (objfield.type=="submit"||objfield.type=="button")  
		   		objfield.disabled = true;
		} 
	}
	return true;
} else {
	strerror='Het formulier is niet correct of niet volledig ingevuld:\n\n'+strerror+'\nHerstel de fout(en) en druk opnieuw op '+strSubmitButton+'.';
	alert(strerror);
	return false;
}
}

//  Set's the required fields to another background color => <body onload="form_init()">, move the input focus to the first field
function form_init() {
}

