a_messages = [
	'Er is geen "form" toegevoegd aan de validator construction routine.',
	'Er is geen array van "%form%" form velden toegevoegd aan de validator construction routine',
	'Form "%form%" kan niet worden gevonden op deze pagina.',
	'Form veld omschrijving "%n%" is niet compleet. De "l" attribuut ontbreekt.',
	'Form veld "%n%" kan niet worden gevonden in de form "%form%"',
	'De label (id="%t%") kan niet worden gevonden',
	'Er kan geen match worden vastgesteld. Veld "%m%" is niet gevonden.',
	'"%l%" is een verplicht veld',
	'De waarde "%l%" moet %mn% of meer karakters bevatten',
	'De waarde "%l%" mag maximaal %mx% karakters bevatten',
	'"%v%" is geen geldige waarde voor "%l%"',
	'"%l%" moet gelijk zijn aan "%ml%"'
]
var re_dt=/^(\d{1,2})\-(\d{1,2})\-(\d{4})$/,re_tm=/^(\d{1,2})\:(\d{1,2})\:(\d{1,2})$/,a_formats={'alpha':/^[a-zA-Z\.\-]*$/,'alpha_s':/^[a-zA-Z\.\-\' ']*$/,'alphanum':/^\w+$/,'alphanum_s':/^[\w\' ']+$/,'filename':/^[\w-.\[\]]+$/,'path':/^[\w-.\/\[\]]+$/,'url':/^[\w-.:?&=\/#]+$/,'unsigned':/^\d+$/,'integer':/^[\+\-]?\d*$/,'real':/^[\+\-]?\d*\.?\d*$/,'email':/^[\w-\.]+\@[\w\.-]+\.[a-z]{2,4}$/,'phone':/^[\d\.\s\-]+$/,'date':function(s_date){if(!re_dt.test(s_date))
return false;if(RegExp.$1>31||RegExp.$2>12)
return false;var dt_test=new Date(RegExp.$3,Number(RegExp.$2-1),RegExp.$1);if(dt_test.getMonth()!=Number(RegExp.$2-1))
return false;return true;},'time':function(s_time){if(!re_tm.test(s_time))
return false;if(RegExp.$1>23||RegExp.$2>59||RegExp.$3>59)
return false;return true;}}
function validator(s_form,a_fields,o_cfg){this.f_error=validator_error;this.f_alert=o_cfg&&o_cfg.alert?function(s_msg){alert(s_msg);return false}:function(){return false};this.f_show_alert=o_cfg&&o_cfg.alert;if(!s_form)
return this.f_alert(this.f_error(0));this.s_form=s_form;if(!a_fields||typeof(a_fields)!='object')
return this.f_alert(this.f_error(1));this.a_fields=a_fields;this.a_2disable=o_cfg&&o_cfg['to_disable']&&typeof(o_cfg['to_disable'])=='object'?o_cfg['to_disable']:[];this.exec=validator_exec;}
function validator_exec(){var o_form=document.forms[this.s_form];if(!o_form)
return this.f_alert(this.f_error(2));b_dom=document.body&&document.body.innerHTML;for(var n_key in this.a_fields){this.a_fields[n_key]['n']=n_key;if(!this.a_fields[n_key]['l'])
return this.f_alert(this.f_error(3,this.a_fields[n_key]));o_input=o_form.elements[n_key];if(!o_input)
return this.f_alert(this.f_error(4,this.a_fields[n_key]));this.a_fields[n_key].o_input=o_input;}
if(b_dom)
for(var n_key in this.a_fields)
if(this.a_fields[n_key]['t']){var s_labeltag=this.a_fields[n_key]['t'],e_labeltag=get_element(s_labeltag);if(!e_labeltag)
return this.f_alert(this.f_error(5,this.a_fields[n_key]));this.a_fields[n_key].o_tag=e_labeltag;this.a_fields[n_key].o_input.className=this.a_fields[n_key].o_input.className.replace(" validator_element_highlight","");if(typeof e_labeltag.className!="undefined")
e_labeltag.className=e_labeltag.className.replace(" validator_label_highlight","");if(!document.all){this.a_fields[n_key].o_input.className=this.a_fields[n_key].o_input.className.replace("validator_element_highlight","");e_labeltag.className=e_labeltag.className.replace("validator_label_highlight","");}}
for(var n_key in this.a_fields){var s_value='';o_input=this.a_fields[n_key].o_input;if(o_input.type=='checkbox')
s_value=o_input.checked?o_input.value:'';else if(o_input.value)
s_value=o_input.value;else if(o_input.options)
s_value=o_input.selectedIndex>-1?o_input.options[o_input.selectedIndex].value:"";else if(o_input.length>0)
for(var n_index=0;n_index<o_input.length;n_index++)
if(o_input[n_index].checked){s_value=o_input[n_index].value;break;}
this.a_fields[n_key]['v']=s_value.replace(/(^\s+)|(\s+$)/g,'');}
var n_errors_count=0,n_another,o_format_check;for(var n_key in this.a_fields){o_format_check=this.a_fields[n_key]['f']&&a_formats[this.a_fields[n_key]['f']]?a_formats[this.a_fields[n_key]['f']]:null;this.a_fields[n_key].n_error=null;if(this.a_fields[n_key]['r']&&!this.a_fields[n_key]['v']){this.a_fields[n_key].n_error=1;n_errors_count++;}
else if(this.a_fields[n_key]['mn']&&this.a_fields[n_key]['v']!=''&&String(this.a_fields[n_key]['v']).length<this.a_fields[n_key]['mn']){this.a_fields[n_key].n_error=2;n_errors_count++;}
else if(this.a_fields[n_key]['mx']&&String(this.a_fields[n_key]['v']).length>this.a_fields[n_key]['mx']){this.a_fields[n_key].n_error=3;n_errors_count++;}
else if(this.a_fields[n_key]['v']&&this.a_fields[n_key]['f']&&((typeof(o_format_check)=='function'&&!o_format_check(this.a_fields[n_key]['v']))||(typeof(o_format_check)!='function'&&!o_format_check.test(this.a_fields[n_key]['v'])))){this.a_fields[n_key].n_error=4;n_errors_count++;}
else if(this.a_fields[n_key]['m']){for(var n_key2 in this.a_fields)
if(n_key2==this.a_fields[n_key]['m']){n_another=n_key2;break;}
if(n_another==null)
return this.f_alert(this.f_error(6,this.a_fields[n_key]));if(this.a_fields[n_another]['v']!=this.a_fields[n_key]['v']){this.a_fields[n_key]['ml']=this.a_fields[n_another]['l'];this.a_fields[n_key].n_error=5;n_errors_count++;}}}
var s_alert_message='',e_first_error;if(n_errors_count){for(var n_key in this.a_fields){var n_error_type=this.a_fields[n_key].n_error,s_message='';if(n_error_type)
s_message=this.f_error(n_error_type+6,this.a_fields[n_key]);if(s_message){if(!e_first_error)
e_first_error=o_form.elements[n_key];s_alert_message+=s_message+"\n";if(b_dom&&this.a_fields[n_key].o_tag)
this.a_fields[n_key].o_input.className+=" validator_element_highlight";this.a_fields[n_key].o_tag.className+=" validator_label_highlight";}}
if(this.f_show_alert)alert(s_alert_message);if(e_first_error.focus&&e_first_error.type!='hidden'&&!e_first_error.disabled)
eval("e_first_error.focus()");return false;}
for(n_key in this.a_2disable)
if(o_form.elements[this.a_2disable[n_key]])
o_form.elements[this.a_2disable[n_key]].disabled=true;return true;}
function validator_error(n_index){var s_=a_messages[n_index],n_i=1,s_key;for(;n_i<arguments.length;n_i++)
for(s_key in arguments[n_i])
s_=s_.replace('%'+s_key+'%',arguments[n_i][s_key]);s_=s_.replace('%form%',this.s_form);return s_}
function get_element(s_id){return(document.all?document.all[s_id]:(document.getElementById?document.getElementById(s_id):null));}