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\.\-]*$/,'alphanum':/^[a-zA-Z0-9]+$/,'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;}},a_messages=['No form name passed to validator construction routine','No array of "%form%" form fields passed to validator construction routine','Form "%form%" can not be found in this document','Incomplete "%n%" form field descriptor entry. "l" attribute is missing','Can not find form field "%n%" in the form "%form%"','Can not find label tag (id="%t%")','Can not verify match. Field "%m%" was not found','Lütfen "%l%" alanını boş bırakmayınız.','"%l%" alanında en az %mn% karakter olmalıdır.','"%l%" alanının değeri %mx% karakterden fazla olamaz.','"%l%" alanının değeri "%v%" olamaz.','"%l%" ile  "%ml%" aynı olmalıdır.']
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};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;e_labeltag.className='tfvNormal';}
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:null;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_tag.className='tfvHighlight';}}
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));}