
// 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;
var objfield;
var strfieldname;
var strerror='';
var blnFirst=true;
var strSubmitButton='Verstuur';
var blnCheckField;
var flds_arr;
var req_fld = form["required"];

if (form){
	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='De volgende gegevens ontbreken of zijn niet correct\n\n'+strerror+'\nHerstel de fout(en) en druk opnieuw op '+strSubmitButton+'.';
		modal_alert(strerror);
		return false;
	}
}
}

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; 
}

