function Validator(a){if(this.formobj=document.forms[a]){if(this.formobj.onsubmit){this.formobj.old_onsubmit=this.formobj.onsubmit;this.formobj.onsubmit=null}else 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=false;document.error_disp_handler=new sfm_ErrorDisplayHandler;this.EnableOnPageErrorDisplay= validator_enable_OPED;this.EnableOnPageErrorDisplaySingleBox=validator_enable_OPED_SB;this.show_errors_together=true;this.EnableMsgsTogether=sfm_enable_show_msgs_together}else 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=true;this.formobj.show_errors_together=true} 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=true;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=false;if(!a&&!this.show_errors_together)break}if(!a){document.error_disp_handler.FinalShowMsg();return false}if(this.addnlvalidation){str=" var ret = "+this.addnlvalidation+"()";eval(str);if(!ret)return ret}return true} function add_validation(a,c,b){var d=null;if(arguments.length>3)d=arguments[3];if(this.formobj){var e=this.formobj[a];if(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(false)}function validator_enable_OPED_SB(){document.error_disp_handler.EnableOnPageDisplay(true)}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=true==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(a){} function alert_showmsg(a){for(var c="",b=null,d=0;d<a.length;d++){if(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){for(var c="<ul>\n",b=0;b<a.length;b++)c+="<li>"+a[b].msg+"</li>\n";c+="</ul>";a=form_error_div_name(a);show_div_msg(a,c)}function form_error_div_name(a){var c=null;for(var b in a)if(c=a[b].input_element)break;a="";if(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;for(var b in a){if(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 false;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 false} 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)if(!eval(this.condition))return true;if(!validateInput(this.desc,this.itemobj,this.error)){this.itemobj.validatorobj.disable_validations=true;this.itemobj.focus();return false}return true}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=true,c=0;c<this.vSet.length;c++){a=a&&this.vSet[c].validate();if(!a&&!this.msgs_together)break}return a} function validateEmail(a){a=a.match("^(.+)@(.+)$");if(a==null)return false;if(a[1]!=null)if(a[1].match(/^\"?[\w-_\.]*\"?$/)==null)return false;if(a[2]!=null){if(a[2].match(/^[\w-\.]*\.[A-Za-z]{2,4}$/)==null)if(a[2].match(/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/)==null)return false;return true}return false} function IsCheckSelected(a,c){var b=false,d=a.form.elements[a.name];if(d.length){a=-1;for(var e=0;e<d.length;e++)if(d[e].value==c){a=e;break}if(a>=0)if(d[a].checked=="1")b=true}else if(a.checked=="1")b=true;return b}function TestDontSelectChk(a,c,b){var d=true;d=IsCheckSelected(a,c)?false:true;if(d==false){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=true;d=IsCheckSelected(a,c)?true:false;if(d==false){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=true,d=a.value;d=d.replace(/^\s+|\s+$/g,"");if(eval(d.length)==0){if(!c||c.length==0)c=a.name+" : Required Field";sfm_show_error_msg(c,a);b=false}return b} function TestMaxLen(a,c,b){var d=true;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=false}return d}function TestMinLen(a,c,b){var d=true;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=false}return d}function TestInputType(a,c,b,d){var e=true;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=false}return e} function TestEmail(a,c){var b=true;if(a.value.length>0&&!validateEmail(a.value)){if(!c||c.length==0)c=a.name+": Enter a valid Email address ";sfm_show_error_msg(c,a);b=false}return b}function TestLessThan(a,c,b){var d=true;if(isNaN(a.value)){sfm_show_error_msg(a.name+": Should be a number ",a);d=false}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=false}return d} function TestGreaterThan(a,c,b){var d=true;if(isNaN(a.value)){sfm_show_error_msg(a.name+": Should be a number ",a);d=false}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=false}return d}function TestRegExp(a,c,b){var d=true;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=false}return d} function TestDontSelect(a,c,b){var d=true;if(a.selectedIndex==null){sfm_show_error_msg("ERROR: dontselect command for non-select Item");d=false}if(a.selectedIndex==eval(c)){if(!b||b.length==0)b=a.name+": Please Select one option ";sfm_show_error_msg(b,a);d=false}return d} function TestSelectOneRadio(a,c){for(var b=a.form.elements[a.name],d=false,e=0;e<b.length;e++)if(b[e].checked){d=true;break}if(false==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=true,e=a.search("="),g="",f="";if(e>=0){g=a.substring(0,e);f=a.substr(e+1)}else 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 "dec":case "decimal":d=TestInputType(c,"[^0-9.]",b,c.name+": Only numbers 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);break}return d} function VWZ_IsListItemSelected(a,c){for(var b=0;b<a.options.length;b++)if(a.options[b].selected==true&&a.options[b].value==c)return true;return false}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 true}else if(a.checked=="1")return true;return false};
