
// 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;
var req_fld = form["required"];

if (req_fld) flds_arr=lib_array_split( req_fld.value );

for (tel=0;tel<form.length;tel++) {
	objfield = form.elements[tel];
	blnCheckField = false;
	if (objfield.name) {
		strfieldname=objfield.name;
		if (strfieldname.substring(0,8).toLowerCase()=='required') {
			blnCheckField = true;
		} else {
			if (flds_arr) blnCheckField = ( lib_array_find(flds_arr, strfieldname) != -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, "");
			}
			sNiceField = sNiceField.substring(0,1).toUpperCase() + sNiceField.substring(1);
			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() {
}

function check_required_radio_checkbox( frm, rad_name ) {
	var bRet=false;

	for (var t=0;t<frm.length;t++) {
		if (frm[t].name) {
		    if (frm[t].name.toLowerCase()==rad_name.toLowerCase()) {
			    if (frm[t].checked) bRet=true;
			}
		}
	}
	return bRet; 
}

