
// 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) lib_array_split( req_fld.value );

for (tel=0;tel<form.length;tel++) {
	objfield=form[tel];
	strfieldname=objfield.name;
	blnCheckField = false;
	
	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, "");
		} 
		
		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.toLowerCase()==rad_name.toLowerCase()) {
		    if (frm[t].checked) bRet=true;
		}
	}
	return bRet; 
}
