function Validator(a){(this.formobj=document.forms[a])?(this.formobj.onsubmit?(this.formobj.old_onsubmit=this.formobj.onsubmit,this.formobj.onsubmit=null):this.formobj.old_onsubmit=null,this.formobj._sfm_form_name=a,this.formobj.onsubmit=form_submit_handler,this.addValidation=add_validation,this.setAddnlValidationFunction=set_addnl_vfunction,this.clearAllValidations=clear_all_validations,this.disable_validations=!1,document.error_disp_handler=new sfm_ErrorDisplayHandler,this.EnableOnPageErrorDisplay=
validator_enable_OPED,this.EnableOnPageErrorDisplaySingleBox=validator_enable_OPED_SB,this.show_errors_together=!0,this.EnableMsgsTogether=sfm_enable_show_msgs_together):alert("Error: couldnot get Form object "+a)}function set_addnl_vfunction(a){this.formobj.addnlvalidation=a}function sfm_enable_show_msgs_together(){this.show_errors_together=!0;this.formobj.show_errors_together=!0}
function clear_all_validations(){for(var a=0;a<this.formobj.elements.length;a++)this.formobj.elements[a].validationset=null}
function form_submit_handler(){var a=!0;document.error_disp_handler.clear_msgs();for(var c=0;c<this.elements.length;c++)if(this.elements[c].validationset&&!this.elements[c].validationset.validate()&&(a=!1),!a&&!this.show_errors_together)break;if(!a)return document.error_disp_handler.FinalShowMsg(),!1;return this.addnlvalidation&&(str=" var ret = "+this.addnlvalidation+"()",eval(str),!ret)?ret:!0}
function add_validation(a,c,b){var d=null;arguments.length>3&&(d=arguments[3]);if(this.formobj){var e=this.formobj[a];e.length&&isNaN(e.selectedIndex)&&(e=e[0]);if(e){if(!e.validationset)e.validationset=new ValidationSet(e,this.show_errors_together);e.validationset.add(c,b,d);e.validatorobj=this}else alert("Error: Couldnot get the input object named: "+a)}else alert("Error: The form object is not set properly")}function validator_enable_OPED(){document.error_disp_handler.EnableOnPageDisplay(!1)}
function validator_enable_OPED_SB(){document.error_disp_handler.EnableOnPageDisplay(!0)}function sfm_ErrorDisplayHandler(){this.msgdisplay=new AlertMsgDisplayer;this.EnableOnPageDisplay=edh_EnableOnPageDisplay;this.ShowMsg=edh_ShowMsg;this.FinalShowMsg=edh_FinalShowMsg;this.all_msgs=[];this.clear_msgs=edh_clear_msgs}function edh_clear_msgs(){this.msgdisplay.clearmsg(this.all_msgs);this.all_msgs=[]}function edh_FinalShowMsg(){this.msgdisplay.showmsg(this.all_msgs)}
function edh_EnableOnPageDisplay(a){this.msgdisplay=!0==a?new SingleBoxErrorDisplay:new DivMsgDisplayer}function edh_ShowMsg(a,c){var b=[];b.input_element=c;b.msg=a;this.all_msgs.push(b)}function AlertMsgDisplayer(){this.showmsg=alert_showmsg;this.clearmsg=alert_clearmsg}function alert_clearmsg(){}function alert_showmsg(a){var c="",b=null,d;for(d in a)null==b&&(b=a[d].input_element),c+=a[d].msg+"\n";alert(c);null!=b&&b.focus()}
function sfm_show_error_msg(a,c){document.error_disp_handler.ShowMsg(a,c)}function SingleBoxErrorDisplay(){this.showmsg=sb_div_showmsg;this.clearmsg=sb_div_clearmsg}function sb_div_clearmsg(a){a=form_error_div_name(a);show_div_msg(a,"")}function sb_div_showmsg(a){var c="",b;for(b in a)c+=a[b].msg+"<br>";c+="";a=form_error_div_name(a);show_div_msg(a,c)}function form_error_div_name(a){var c=null,b;for(b in a)if(c=a[b].input_element)break;a="";c&&(a=c.form._sfm_form_name+"_errorloc");return a}
function DivMsgDisplayer(){this.showmsg=div_showmsg;this.clearmsg=div_clearmsg}function div_clearmsg(a){for(var c in a){var b=element_div_name(a[c].input_element);show_div_msg(b,"")}}function element_div_name(a){a=a.form._sfm_form_name+"_"+a.name+"_errorloc";return a=a.replace(/[\[\]]/gi,"")}function div_showmsg(a){var c=null,b;for(b in a){null==c&&(c=a[b].input_element);var d=element_div_name(a[b].input_element);show_div_msg(d,a[b].msg)}null!=c&&c.focus()}
function show_div_msg(a,c){if(a.length<=0)return!1;if(document.layers){divlayer=document.layers[a];if(!divlayer)return;divlayer.document.open();divlayer.document.write(c);divlayer.document.close()}else if(document.all){divlayer=document.all[a];if(!divlayer)return;divlayer.innerHTML=c}else if(document.getElementById){divlayer=document.getElementById(a);if(!divlayer)return;divlayer.innerHTML=c}divlayer.style.visibility="visible";return!1}
function ValidationDesc(a,c,b,d){this.desc=c;this.error=b;this.itemobj=a;this.condition=d;this.validate=vdesc_validate}function vdesc_validate(){if(this.condition!=null&&!eval(this.condition))return!0;return!validateInput(this.desc,this.itemobj,this.error)?(this.itemobj.validatorobj.disable_validations=!0,this.itemobj.focus(),!1):!0}function ValidationSet(a,c){this.vSet=[];this.add=add_validationdesc;this.validate=vset_validate;this.itemobj=a;this.msgs_together=c}
function add_validationdesc(a,c,b){this.vSet[this.vSet.length]=new ValidationDesc(this.itemobj,a,c,b)}function vset_validate(){for(var a=!0,c=0;c<this.vSet.length;c++)if(a=a&&this.vSet[c].validate(),!a&&!this.msgs_together)break;return a}function validateEmail(a){a=a.match("^(.+)@(.+)$");return a==null?!1:a[1]!=null&&a[1].match(/^\"?[\w-_\.]*\"?$/)==null?!1:a[2]!=null?a[2].match(/^[\w-\.]*\.[A-Za-z]{2,4}$/)==null&&a[2].match(/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/)==null?!1:!0:!1}
function IsCheckSelected(a,c){var b=!1,d=a.form.elements[a.name];if(d.length){for(var e=-1,g=0;g<d.length;g++)if(d[g].value==c){e=g;break}e>=0&&d[e].checked=="1"&&(b=!0)}else a.checked=="1"&&(b=!0);return b}function TestDontSelectChk(a,c,b){var d=!0,d=IsCheckSelected(a,c)?!1:!0;if(d==!1){if(!b||b.length==0)b="Can't Proceed as you selected "+a.name;sfm_show_error_msg(b,a)}return d}
function TestShouldSelectChk(a,c,b){var d=!0,d=IsCheckSelected(a,c)?!0:!1;if(d==!1){if(!b||b.length==0)b="You should select"+a.name;sfm_show_error_msg(b,a)}return d}function TestRequiredInput(a,c){var b=!0;if(eval(a.value.length)==0){if(!c||c.length==0)c=a.name+" : Required Field";sfm_show_error_msg(c,a);b=!1}return b}function TestMaxLen(a,c,b){var d=!0;if(eval(a.value.length)>eval(c)){if(!b||b.length==0)b=a.name+" : "+c+" characters maximum ";sfm_show_error_msg(b,a);d=!1}return d}
function TestMinLen(a,c,b){var d=!0;if(eval(a.value.length)<eval(c)){if(!b||b.length==0)b=a.name+" : "+c+" characters minimum  ";sfm_show_error_msg(b,a);d=!1}return d}function TestInputType(a,c,b,d){var e=!0,c=a.value.search(c);if(a.value.length>0&&c>=0){if(!b||b.length==0)b=d;sfm_show_error_msg(b,a);e=!1}return e}function TestEmail(a,c){var b=!0;if(a.value.length>0&&!validateEmail(a.value)){if(!c||c.length==0)c=" Please enter a valid email address<br/>";sfm_show_error_msg(c,a);b=!1}return b}
function TestLessThan(a,c,b){var d=!0;if(isNaN(a.value))sfm_show_error_msg(a.name+": Should be a number ",a),d=!1;else if(eval(a.value)>=eval(c)){if(!b||b.length==0)b=a.name+" : value should be less than "+c;sfm_show_error_msg(b,a);d=!1}return d}function TestGreaterThan(a,c,b){var d=!0;if(isNaN(a.value))sfm_show_error_msg(a.name+": Should be a number ",a),d=!1;else if(eval(a.value)<=eval(c)){if(!b||b.length==0)b=a.name+" : value should be greater than "+c;sfm_show_error_msg(b,a);d=!1}return d}
function TestRegExp(a,c,b){var d=!0;if(a.value.length>0&&!a.value.match(c)){if(!b||b.length==0)b=a.name+": Invalid characters found ";sfm_show_error_msg(b,a);d=!1}return d}function TestDontSelect(a,c,b){var d=!0;if(a.value==null)sfm_show_error_msg("Error: dontselect command for non-select Item",a),d=!1;else if(a.value==c){if(!b||b.length==0)b=a.name+": Please Select one option ";sfm_show_error_msg(b,a);d=!1}return d}
function TestSelectOneRadio(a,c){for(var b=a.form.elements[a.name],d=!1,e=0;e<b.length;e++)if(b[e].checked=="1"){d=!0;break}if(!1==d){if(!c||c.length==0)c="Please select one option from "+a.name;sfm_show_error_msg(c,a)}return d}
function validateInput(a,c,b){var d=!0,e=a.search("="),g="",f="";e>=0?(g=a.substring(0,e),f=a.substr(e+1)):g=a;switch(g){case "req":case "required":d=TestRequiredInput(c,b);break;case "maxlength":case "maxlen":d=TestMaxLen(c,f,b);break;case "minlength":case "minlen":d=TestMinLen(c,f,b);break;case "alnum":case "alphanumeric":d=TestInputType(c,"[^A-Za-z0-9]",b,c.name+": only alpha-numeric characters allowed ");break;case "alnum_s":case "alphanumeric_space":d=TestInputType(c,"[^A-Za-z0-9\\s]",b,c.name+
": Only alpha-numeric characters and space allowed ");break;case "num":case "numeric":d=TestInputType(c,"[^0-9]",b,c.name+": Only digits allowed ");break;case "alphabetic":case "alpha":d=TestInputType(c,"[^A-Za-z]",b,c.name+": Only alphabetic characters allowed ");break;case "alphabetic_space":case "alpha_s":d=TestInputType(c,"[^A-Za-z\\s]",b,c.name+": Only alphabetic characters and space allowed ");break;case "email":d=TestEmail(c,b);break;case "lt":case "lessthan":d=TestLessThan(c,f,b);break;case "gt":case "greaterthan":d=
TestGreaterThan(c,f,b);break;case "regexp":d=TestRegExp(c,f,b);break;case "dontselect":d=TestDontSelect(c,f,b);break;case "dontselectchk":d=TestDontSelectChk(c,f,b);break;case "shouldselchk":d=TestShouldSelectChk(c,f,b);break;case "selone_radio":d=TestSelectOneRadio(c,b)}return d}function VWZ_IsListItemSelected(a,c){for(var b=0;b<a.options.length;b++)if(a.options[b].selected==!0&&a.options[b].value==c)return!0;return!1}
function VWZ_IsChecked(a,c){if(a.length)for(var b=0;b<a.length;b++){if(a[b].checked=="1"&&a[b].value==c)return!0}else if(a.checked=="1")return!0;return!1};

