var yav={undef:undefined,isFocusSet:undefined,internalRules:undefined,f:undefined,formEvt:undefined,fieldsEvt:new Array(),rulesEvt:new Array(),helpEvt:new Array(),mask:new Array(),onOKEvt:new Array(),onErrorEvt:new Array(),preValidationEvt:new Array(),filterByName:null,performCheck:function(formName,strRules,alertType,filterErrorsByName){yav.filterByName=(filterErrorsByName)?filterErrorsByName:null;for(var j=0;j<yav.preValidationEvt.length;j++)if(yav.filterByName==yav.preValidationEvt[j].name){var preValidationResult=eval(yav.preValidationEvt[j].fn);yav.preValidationEvt[j].executedWithSuccess=preValidationResult;if(!preValidationResult)return preValidationResult;break}yav.isFocusSet=false;var rules=yav.makeRules(strRules);yav.internalRules=yav.makeRules(strRules);yav.f=document.forms[formName];if(!yav.f){yav.debug("DEBUG: could not find form object "+formName);return null}var errors=new Array(),ix=0;if(rules.length){for(var i=0;i<rules.length;i++){var aRule=rules[i];if(aRule!=null)yav.highlight(yav.getField(yav.f,aRule.el),yav_config.inputclassnormal)}}else if(rules!=null)yav.highlight(yav.getField(yav.f,rules.el),yav_config.inputclassnormal);if(rules.length){for(i=0;i<rules.length;i++){var aRule=rules[i],anErr=null;if(aRule==null);else if(aRule.ruleType=="pre-condition"||aRule.ruleType=="post-condition"||aRule.ruleType=="andor-operator");else if(aRule.ruleName=="implies"){pre=aRule.el;post=aRule.comparisonValue;var oldClassName=yav.getField(yav.f,rules[pre].el).className;if(yav.filterByName!=null)if(rules[pre].el==yav.filterByName||rules[post].el==yav.filterByName)yav.clearInlineSpans(rules[pre].el,rules[post].el);if(yav.checkRule(yav.f,rules[pre])==null&&yav.checkRule(yav.f,rules[post])!=null)anErr=yav.deleteInline(aRule.alertMsg)+"__inline__"+rules[post].el;else if(yav.checkRule(yav.f,rules[pre])!=null)yav.getField(yav.f,rules[pre].el).className=oldClassName}else if(aRule.ruleName=="date_lt"||aRule.ruleName=="date_le"){if(yav.filterByName!=null)if(aRule.comparisonValue&&aRule.comparisonValue.indexOf("$"+yav.filterByName)==0)yav.clearInlineSpans(aRule.el,yav.filterByName);anErr=yav.checkRule(yav.f,aRule)}else anErr=yav.checkRule(yav.f,aRule);if(anErr!=null)if(yav.filterByName&&yav.filterByName!=null){if(aRule.ruleName=="implies"){if(rules[pre].el==yav.filterByName||rules[post].el==yav.filterByName)yav.clearInlineSpans(rules[pre].el,rules[post].el);aRule=rules[aRule.comparisonValue]}if(aRule.ruleName=="or"){var tmp=aRule.comparisonValue.split("-");for(var t=0;t<tmp.length;t++)yav.clearInlineSpans(rules[tmp[t]].el);if(rules[aRule.el].el==yav.filterByName)yav.clearInlineSpans(rules[aRule.el].el);aRule=rules[aRule.el]}if(aRule.el==yav.filterByName||(aRule.comparisonValue&&aRule.comparisonValue.indexOf("$"+yav.filterByName)==0)){for(var z=0;z<rules.length;z++)if(rules[z].ruleName=="implies"&&rules[rules[z].el].el==aRule.el)yav.clearInlineSpans(rules[rules[z].comparisonValue].el);errors[ix]=anErr;ix++;break}}else{errors[ix]=anErr;ix++}}}else{var myRule=rules;err=yav.checkRule(yav.f,myRule);if(err!=null)if(yav.filterByName&&yav.filterByName!=null){if(myRule.el==yav.filterByName)errors[0]=err}else errors[0]=err}var retval=yav.displayAlert(errors,alertType);yav.filterByName=null;return retval},checkKeyPress:function(_,C,B){var $=null;$=(typeof(_.which))!="undefined"?_.which:window.event.keyCode;var E=yav.makeRules(B),D=true;if(E.length){for(var F=0;F<E.length;F++){var A=E[F];if(A.ruleName=="keypress"&&A.el==C.name){D=yav.isKeyAllowed($,A.comparisonValue);break}}}else{A=E;if(A.ruleName=="keypress"&&A.el==C.name)D=yav.isKeyAllowed($,A.comparisonValue)}if(!D)if(typeof(_.which)=="undefined")window.event.keyCode=0;else{_.preventDefault();_.stopPropagation();_.returnValue=false}return D},init:function(B,D){yav.addMask("alphabetic",null,null,yav_config.alphabetic_regex);yav.addMask("alphanumeric",null,null,yav_config.alphanumeric_regex);yav.addMask("alnumhyphen",null,null,yav_config.alnumhyphen_regex);yav.addMask("alnumhyphenat",null,null,yav_config.alnumhyphenat_regex);yav.addMask("alphaspace",null,null,yav_config.alphaspace_regex);yav.formEvt=B;yav.rulesEvt=D;if(D.length){for(var F=0;F<D.length;F++){var C=yav.splitRule(D[F]),_=yav.getField(document.forms[B],C.el);if(_&&C.ruleName=="mask")yav.addEvent(_,"keypress",yav.maskEvt.bindAsEventListener(_));else if(_&&!yav.inArray(yav.fieldsEvt,C.el)){var $=false;for(var E=0;E<yav.onOKEvt.length;E++)if(_.name==yav.onOKEvt[E].name){yav.addEvent(_,yav.onOKEvt[E].evType,function(){if(yav.performEvt(this.name))yav.performOnOKEvt(this.name);else{for(var $=0;$<yav.preValidationEvt.length;$++)if(this.name==yav.preValidationEvt[$].name){if(yav.preValidationEvt[$].executedWithSuccess==false){yav.preValidationEvt[$].executedWithSuccess=null;return}yav.preValidationEvt[$].executedWithSuccess=null;break}yav.performOnErrorEvt(this.name)}});$=true;break}if(!$)for(E=0;E<yav.onErrorEvt.length;E++)if(_.name==yav.onErrorEvt[E].name){yav.addEvent(_,yav.onErrorEvt[E].evType,function(){if(!yav.performEvt(this.name)){for(var $=0;$<yav.preValidationEvt.length;$++)if(this.name==yav.preValidationEvt[$].name){if(yav.preValidationEvt[$].executedWithSuccess==false){yav.preValidationEvt[$].executedWithSuccess=null;return}yav.preValidationEvt[$].executedWithSuccess=null;break}yav.performOnErrorEvt(this.name)}});$=true;break}yav.fieldsEvt.push(C.el);if(!$)yav.addEvent(_,"blur",function(){yav.performEvt(this.name)})}}}else{var A=yav.splitRule(D),_=yav.getField(document.forms[B],A.el);if(_&&A.ruleName=="mask")yav.addEvent(_,"keypress",yav.maskEvt.bindAsEventListener(_));else if(_){$=false;for(E=0;F<yav.onOKEvt.length;E++)if(_.name==yav.onOKEvt[F].name){yav.addEvent(_,yav.onOKEvt[E].evType,function(){if(yav.performEvt(this.name))yav.performOnOKEvt(this.name)});$=true;break}for(E=0;E<yav.onErrorEvt.length;E++)if(_.name==yav.onErrorEvt[E].name){yav.addEvent(_,yav.onErrorEvt[E].evType,function(){if(!yav.performEvt(this.name)){for(var $=0;$<yav.preValidationEvt.length;$++)if(this.name==yav.preValidationEvt[$].name){if(yav.preValidationEvt[$].executedWithSuccess==false){yav.preValidationEvt[$].executedWithSuccess=null;return}yav.preValidationEvt[$].executedWithSuccess=null;break}yav.performOnErrorEvt(this.name)}});$=true;break}if(!$)yav.addEvent(_,"blur",function(){yav.performEvt(this.name)})}}if(yav.helpEvt.length>0)for(F=0;F<yav.helpEvt.length;F++){_=yav.getField(document.forms[B],yav.helpEvt[F].name);if(_){if(_.focus)yav.addEvent(_,"focus",function(){yav.showHelpEvt(this.name)});else yav.addEvent(_,"click",function(){yav.showHelpEvt(this.name)});if(!yav.inArray(yav.fieldsEvt,yav.helpEvt[F].name))yav.addEvent(_,"blur",function(){yav.cleanInline(this.name)})}}},displayMsg:function(_,B,A){var $=yav.get(yav_config.errorsdiv+"_"+_);if($){$.innerHTML=B;$.className=A;$.style.display=""}else{$=yav.get(yav_config.errorsdiv);if($){$.innerHTML=B;$.className=A;$.style.display=""}else alert(B)}},cleanInline:function($){yav.get(yav_config.errorsdiv+"_"+$).innerHTML="";yav.get(yav_config.errorsdiv+"_"+$).className="";yav.get(yav_config.errorsdiv+"_"+$).style.display="none"},addHelp:function(_,A){var $=new Object();$.name=_;$.help=A;yav.helpEvt.push($)},addMask:function(B,C,_,A){var $=new Object();$.name=B;$.format=C;$.charsAllowed=_;$.regex=A?A:null;yav.mask.push($)},postValidation_OnOK:function(_,B,A){var $=new Object();$.name=_;$.evType=B;$.fn=A;yav.onOKEvt.push($)},postValidation_OnError:function(_,B,A){var $=new Object();$.name=_;$.evType=B;$.fn=A;yav.onErrorEvt.push($)},preValidation:function(A,_){var $=new Object();$.name=(_&&_!=null)?_:null;$.fn=A;$.executedWithSuccess=null;yav.preValidationEvt.push($)},inArray:function($,_){var B=false;for(var A=0;A<$.length;A++)if($[A]==_){B=true;break}return B},performEvt:function(_){var $=yav.get(yav_config.errorsdiv);if($){$.innerHTML="";$.className="";$.style.display="none"}return yav.performCheck(yav.formEvt,yav.rulesEvt,"inline",_)},performOnOKEvt:function(name){for(var j=0;j<yav.onOKEvt.length;j++)if(name==yav.onOKEvt[j].name){eval(yav.onOKEvt[j].fn);break}},performOnErrorEvt:function(name){for(var j=0;j<yav.onErrorEvt.length;j++)if(name==yav.onErrorEvt[j].name){eval(yav.onErrorEvt[j].fn);break}},showHelpEvt:function($){for(var _=0;_<yav.helpEvt.length;_++)if(yav.helpEvt[_].name==$){yav.get(yav_config.errorsdiv+"_"+$).innerHTML=yav.helpEvt[_].help;yav.get(yav_config.errorsdiv+"_"+$).className=yav_config.innerhelp;yav.get(yav_config.errorsdiv+"_"+$).style.display="";break}},maskEvt:function($){var B=null,G=null;for(var D=0;D<yav.rulesEvt.length;D++){var A=yav.splitRule(yav.rulesEvt[D]),_=yav.getField(document.forms[yav.formEvt],A.el);if(_&&A.ruleName=="mask"&&_.name==this.name){for(var C=0;C<yav.mask.length;C++)if(yav.mask[C].name==A.comparisonValue){B=yav.mask[C];break}G=A;break}}var J=(typeof($.which))!="undefined"?$.which:window.event.keyCode,H=String.fromCharCode(J),F=this.value+H,E=F.length;if(J==8||J==0)return true;var I=false;if(B==null){if(yav.isKeyAllowed(J,G.comparisonValue))I=true;else if(typeof($.which)=="undefined")window.event.keyCode=0;else{$.preventDefault();$.stopPropagation();$.returnValue=false}return I}else if(B.format==null){reg=new RegExp(B.regex);if(reg.test(H))I=true;else if(typeof($.which)=="undefined")window.event.keyCode=0;else{$.preventDefault();$.stopPropagation();$.returnValue=false}return I}else if(yav.isKeyAllowed(J,B.charsAllowed)&&E<=B.format.length){if(B.format.charAt(E-1)!=" ")F=this.value+B.format.charAt(E-1)+H;this.value=F;I=true}if(typeof($.which)=="undefined")window.event.keyCode=0;else{$.preventDefault();$.stopPropagation();$.returnValue=false}return I},displayAlert:function(A,_){var $=null;yav.clearAllInlineSpans();if(_=="classic")$=yav.displayClassic(A);else if(_=="innerHtml")$=yav.displayInnerHtml(A);else if(_=="inline")$=yav.displayInline(A);else if(_=="jsVar")$=yav.displayJsVar(A);else yav.debug("DEBUG: alert type "+_+" not supported");return $},displayClassic:function(_){var $="";if(_!=null&&_.length>0){if(yav.strTrim(yav_config.HEADER_MSG).length>0)$+=yav_config.HEADER_MSG+"\n\n";for(var A=0;A<_.length;A++)$+=" "+yav.deleteInline(_[A])+"\n";if(yav.strTrim(yav_config.FOOTER_MSG).length>0)$+="\n"+yav_config.FOOTER_MSG;alert($);return false}else return true},displayInnerHtml:function(_){if(_!=null&&_.length>0){var $="";if(yav.strTrim(yav_config.HEADER_MSG).length>0)$+=yav_config.HEADER_MSG;$+="<ul>";for(var A=0;A<_.length;A++)$+="<li>"+yav.deleteInline(_[A])+"</li>";$+="</ul>";if(yav.strTrim(yav_config.FOOTER_MSG).length>0)$+=yav_config.FOOTER_MSG;yav.get(yav_config.errorsdiv).innerHTML=$;yav.get(yav_config.errorsdiv).className=yav_config.innererror;yav.get(yav_config.errorsdiv).style.display="block";return false}else{yav.get(yav_config.errorsdiv).innerHTML="";yav.get(yav_config.errorsdiv).className="";yav.get(yav_config.errorsdiv).style.display="none";return true}},displayInline:function(B){if(B!=null&&B.length>0){var $=new Array(),A=0;for(var C=0;C<B.length;C++){var _=B[C].substring(B[C].indexOf("__inline__")+10);if(yav.get(yav_config.errorsdiv+"_"+_)){yav.get(yav_config.errorsdiv+"_"+_).innerHTML=yav.deleteInline(B[C]);yav.get(yav_config.errorsdiv+"_"+_).className=yav_config.innererror;yav.get(yav_config.errorsdiv+"_"+_).style.display=""}else{$[A]=B[C];A++}}if(A>0)yav.displayInnerHtml($);return false}else return true},clearAllInlineSpans:function(){var $=document.getElementsByTagName("span");for(var A=0;A<$.length;A++){var _=$[A].id;if(_.indexOf(yav_config.errorsdiv+"_")==0)if(yav.filterByName!=null){if(_==yav_config.errorsdiv+"_"+yav.filterByName){yav.get(_).innerHTML="";yav.get(_).className="";yav.get(_).style.display="none"}}else{yav.get(_).innerHTML="";yav.get(_).className="";yav.get(_).style.display="none"}}},clearInlineSpans:function(){var $=document.getElementsByTagName("span");for(var A=0;A<$.length;A++){var _=$[A].id;if(_.indexOf(yav_config.errorsdiv+"_")==0)for(var B=0;B<arguments.length;B++)if(_==yav_config.errorsdiv+"_"+arguments[B]){yav.get(_).innerHTML="";yav.get(_).className="";yav.get(_).style.display="none"}}},displayJsVar:function(_){yav.get(yav_config.errorsdiv).className="";yav.get(yav_config.errorsdiv).style.display="none";if(_!=null&&_.length>0){for(var A=0;A<_.length;A++)_[A]=yav.deleteInline(_[A]);var $="";$+="<script>var jsErrors;</script>";yav.get(yav_config.errorsdiv).innerHTML=$;jsErrors=_;return false}else{yav.get(yav_config.errorsdiv).innerHTML="<script>var jsErrors;</script>";return true}},rule:function(_,A,D,B,$){var C=arguments.length>=4&&arguments[0]!=null&&arguments[1]!=null;if(!C)return false;tmp=_.split(":");nameDisplayed="";if(tmp.length==2){nameDisplayed=tmp[1];_=tmp[0]}this.el=_;this.nameDisplayed=nameDisplayed;this.ruleName=A;this.comparisonValue=D;this.ruleType=$;if(B==yav.undef||B==null)this.alertMsg=yav.getDefaultMessage(_,nameDisplayed,A,D)+"__inline__"+this.el;else this.alertMsg=B+"__inline__"+this.el},checkRule:function(f,myRule){retVal=null;if(myRule!=null)if(myRule.ruleName=="custom"){var customFunction=null;if(myRule.comparisonValue!=null)customFunction=" retVal = "+myRule.comparisonValue;else customFunction=" retVal = "+myRule.el;retVal=eval(customFunction);if(myRule.comparisonValue!=null&&retVal!=this.undef&&retVal!=null)retVal+="__inline__"+myRule.el;if(retVal!=null&&myRule.comparisonValue!=null)yav.highlight(yav.getField(yav.f,myRule.el),yav_config.inputclasserror)}else if(myRule.ruleName=="and"){var op_1=myRule.el,op_next=myRule.comparisonValue;if(yav.checkRule(f,yav.internalRules[op_1])!=null){retVal=myRule.alertMsg;if(myRule.ruleType=="pre-condition"||myRule.ruleType=="andor-operator");}else{var op_k=op_next.split("-");for(var k=0;k<op_k.length;k++)if(yav.checkRule(f,yav.internalRules[op_k[k]])!=null){retVal=myRule.alertMsg;if(myRule.ruleType=="pre-condition"||myRule.ruleType=="andor-operator");break}}}else if(myRule.ruleName=="or"){var op_1=myRule.el,op_next=myRule.comparisonValue,success=false;if(yav.checkRule(f,yav.internalRules[op_1])==null)success=true;else{if(myRule.ruleType=="pre-condition"||myRule.ruleType=="andor-operator");op_k=op_next.split("-");for(k=0;k<op_k.length;k++)if(yav.checkRule(f,yav.internalRules[op_k[k]])==null){success=true;break}else if(myRule.ruleType=="pre-condition"||myRule.ruleType=="andor-operator");}if(success){yav.highlight(yav.getField(f,yav.internalRules[op_1].el),yav_config.inputclassnormal);op_k=op_next.split("-");for(k=0;k<op_k.length;k++)yav.highlight(yav.getField(f,yav.internalRules[op_k[k]].el),yav_config.inputclassnormal)}else retVal=myRule.alertMsg}else{el=yav.getField(f,myRule.el);if(el==null){yav.debug("DEBUG: could not find element "+myRule.el);return null}var err=null;if(el.type){if(el.type=="hidden"||el.type=="text"||el.type=="password"||el.type=="textarea")err=yav.checkText(el,myRule);else if(el.type=="checkbox")err=yav.checkCheckbox(el,myRule);else if(el.type=="select-one")err=yav.checkSelOne(el,myRule);else if(el.type=="select-multiple")err=yav.checkSelMul(el,myRule);else if(el.type=="radio")err=yav.checkRadio(el,myRule);else yav.debug("DEBUG: type "+el.type+" not supported")}else err=yav.checkRadio(el,myRule);retVal=err}return retVal},checkRadio:function($,A){var _=null;if(A.ruleName=="required"){var B=$,D=false;if(isNaN(B.length)&&B.checked)D=true;else for(var C=0;C<B.length;C++)if(B[C].checked){D=true;break}if(!D){yav.highlight($,yav_config.inputclasserror);_=A.alertMsg}}else if(A.ruleName=="equal"){B=$,D=false;if(isNaN(B.length)&&B.checked){if(B.value==A.comparisonValue)D=true}else for(C=0;C<B.length;C++)if(B[C].checked)if(B[C].value==A.comparisonValue){D=true;break}if(!D)_=A.alertMsg}else if(A.ruleName=="notequal"){B=$,D=false;if(isNaN(B.length)&&B.checked){if(B.value!=A.comparisonValue)D=true}else for(C=0;C<B.length;C++)if(B[C].checked)if(B[C].value!=A.comparisonValue){D=true;break}if(!D)_=A.alertMsg}else yav.debug("DEBUG: rule "+A.ruleName+" not supported for radio");return _},checkText:function(el,myRule){err=null;if(yav_config.trimenabled)el.value=yav.strTrim(el.value);if(myRule.ruleName=="required"){if(el.value==null||el.value==""){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="equal")err=yav.checkEqual(el,myRule);else if(myRule.ruleName=="notequal")err=yav.checkNotEqual(el,myRule);else if(myRule.ruleName=="numeric"){reg=new RegExp("^[0-9]*$");if(!reg.test(el.value)){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="alphabetic"){reg=new RegExp(yav_config.alphabetic_regex);if(!reg.test(el.value)){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="alphanumeric"){reg=new RegExp(yav_config.alphanumeric_regex);if(!reg.test(el.value)){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="alnumhyphen"){reg=new RegExp(yav_config.alnumhyphen_regex);if(!reg.test(el.value)){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="alnumhyphenat"){reg=new RegExp(yav_config.alnumhyphenat_regex);if(!reg.test(el.value)){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="alphaspace"){reg=new RegExp(yav_config.alphaspace_regex);if(!reg.test(el.value)){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="email"){reg=new RegExp(yav_config.email_regex);if(!reg.test(el.value)){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="maxlength"){if(isNaN(myRule.comparisonValue))yav.debug("DEBUG: comparisonValue for rule "+myRule.ruleName+" not a number");else if(el.value.length>myRule.comparisonValue){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="minlength"){if(isNaN(myRule.comparisonValue))yav.debug("DEBUG: comparisonValue for rule "+myRule.ruleName+" not a number");else if(el.value.length<myRule.comparisonValue){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="numrange"){reg=new RegExp("^[-+]{0,1}[0-9]*[.]{0,1}[0-9]*$");if(!reg.test(yav.unformatNumber(el.value))){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}else{regRange=new RegExp("^[0-9]+-[0-9]+$");if(!regRange.test(myRule.comparisonValue))yav.debug("DEBUG: comparisonValue for rule "+myRule.ruleName+" not in format number1-number2");else{rangeVal=myRule.comparisonValue.split("-");if(eval(yav.unformatNumber(el.value))<eval(rangeVal[0])||eval(yav.unformatNumber(el.value))>eval(rangeVal[1])){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}}}else if(myRule.ruleName=="regexp"){reg=new RegExp(myRule.comparisonValue);if(!reg.test(el.value)){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else if(myRule.ruleName=="integer")err=yav.checkInteger(el,myRule);else if(myRule.ruleName=="double")err=yav.checkDouble(el,myRule);else if(myRule.ruleName=="date")err=yav.checkDate(el,myRule);else if(myRule.ruleName=="date_lt")err=yav.checkDateLessThan(el,myRule,false);else if(myRule.ruleName=="date_le")err=yav.checkDateLessThan(el,myRule,true);else if(myRule.ruleName=="keypress");else if(myRule.ruleName=="empty"){if(el.value!=null&&el.value!=""){yav.highlight(el,yav_config.inputclasserror);err=myRule.alertMsg}}else yav.debug("DEBUG: rule "+myRule.ruleName+" not supported for "+el.type);return err},checkInteger:function($,_){reg=new RegExp("^[-+]{0,1}[0-9]*$");if(!reg.test($.value)){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}},checkDouble:function($,_){var A=yav_config.DECIMAL_SEP;reg=new RegExp("^[-+]{0,1}[0-9]*["+A+"]{0,1}[0-9]*$");if(!reg.test($.value)){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}},checkDate:function($,_){error=null;if($.value!=""){var A=yav_config.DATE_FORMAT;ddReg=new RegExp("dd");MMReg=new RegExp("MM");yyyyReg=new RegExp("yyyy");if(!ddReg.test(A)||!MMReg.test(A)||!yyyyReg.test(A))yav.debug("DEBUG: locale format "+A+" not supported");else{ddStart=A.indexOf("dd");MMStart=A.indexOf("MM");yyyyStart=A.indexOf("yyyy")}strReg=A.replace("dd","[0-9]{2}").replace("MM","[0-9]{2}").replace("yyyy","[0-9]{4}");reg=new RegExp("^"+strReg+"$");if(!reg.test($.value)){yav.highlight($,yav_config.inputclasserror);error=_.alertMsg}else{dd=$.value.substring(ddStart,ddStart+2);MM=$.value.substring(MMStart,MMStart+2);yyyy=$.value.substring(yyyyStart,yyyyStart+4);if(!yav.checkddMMyyyy(dd,MM,yyyy)){yav.highlight($,yav_config.inputclasserror);error=_.alertMsg}}}return error},checkDateLessThan:function($,B,A){error=null;var E=yav.checkDate($,B)==null?true:false;if(E&&$.value!=""){var D=yav_config.DATE_FORMAT;ddStart=D.indexOf("dd");MMStart=D.indexOf("MM");yyyyStart=D.indexOf("yyyy");dd=$.value.substring(ddStart,ddStart+2);MM=$.value.substring(MMStart,MMStart+2);yyyy=$.value.substring(yyyyStart,yyyyStart+4);myDate=""+yyyy+MM+dd;strReg=D.replace("dd","[0-9]{2}").replace("MM","[0-9]{2}").replace("yyyy","[0-9]{4}");reg=new RegExp("^"+strReg+"$");var _=B.comparisonValue.indexOf("$")==0?true:false,C="";if(_){toSplit=B.comparisonValue.substr(1);tmp=toSplit.split(":");if(tmp.length==2)C=yav.getField(yav.f,tmp[0]).value;else C=yav.getField(yav.f,B.comparisonValue.substr(1)).value}else C=B.comparisonValue;if(!reg.test(C)){yav.highlight($,yav_config.inputclasserror);error=B.alertMsg}else{cdd=C.substring(ddStart,ddStart+2);cMM=C.substring(MMStart,MMStart+2);cyyyy=C.substring(yyyyStart,yyyyStart+4);cDate=""+cyyyy+cMM+cdd;if(A){if(!yav.checkddMMyyyy(cdd,cMM,cyyyy)||cDate>myDate){yav.highlight($,yav_config.inputclasserror);error=B.alertMsg}}else if(!yav.checkddMMyyyy(cdd,cMM,cyyyy)||cDate>=myDate){yav.highlight($,yav_config.inputclasserror);error=B.alertMsg}}}else if($.value!=""){yav.highlight($,yav_config.inputclasserror);error=B.alertMsg}return error},checkEqual:function(_,B){error=null;var A=B.comparisonValue.indexOf("$")==0?true:false,$="";if(A){toSplit=B.comparisonValue.substr(1);tmp=toSplit.split(":");if(tmp.length==2)$=yav.getField(yav.f,tmp[0]).value;else $=yav.getField(yav.f,B.comparisonValue.substr(1)).value}else $=B.comparisonValue;if(_.value!=$){yav.highlight(_,yav_config.inputclasserror);error=B.alertMsg}return error},checkNotEqual:function(_,B){error=null;var A=B.comparisonValue.indexOf("$")==0?true:false,$="";if(A){toSplit=B.comparisonValue.substr(1);tmp=toSplit.split(":");if(tmp.length==2)$=yav.getField(yav.f,tmp[0]).value;else $=yav.getField(yav.f,B.comparisonValue.substr(1)).value}else $=B.comparisonValue;if(_.value==$){yav.highlight(_,yav_config.inputclasserror);error=B.alertMsg}return error},checkddMMyyyy:function($,A,_){retVal=true;if(($<1)||($>31)||(A<1)||(A>12)||($==31&&(A==2||A==4||A==6||A==9||A==11))||($>29&&A==2)||($==29&&(A==2)&&((_%4>0)||(_%4==0&&_%100==0&&_%400>0))))retVal=false;return retVal},checkCheckbox:function($,_){if(_.ruleName=="required"){if(!$.checked){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else if(_.ruleName=="equal"){if(!$.checked||$.value!=_.comparisonValue){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else if(_.ruleName=="notequal"){if($.checked&&$.value==_.comparisonValue){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else yav.debug("DEBUG: rule "+_.ruleName+" not supported for "+$.type)},checkSelOne:function($,_){if(_.ruleName=="required"){var B=false,A=$.selectedIndex;if(A>=0&&$.options[A].value)B=true;if(!B){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else if(_.ruleName=="equal"){B=false,A=$.selectedIndex;if(A>=0&&$.options[A].value==_.comparisonValue)B=true;if(!B){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else if(_.ruleName=="notequal"){B=false,A=$.selectedIndex;if(A>=0&&$.options[A].value!=_.comparisonValue)B=true;if(!B){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else yav.debug("DEBUG: rule "+_.ruleName+" not supported for "+$.type)},checkSelMul:function($,_){if(_.ruleName=="required"){var B=false;opts=$.options;for(var A=0;A<opts.length;A++)if(opts[A].selected&&opts[A].value){B=true;break}if(!B){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else if(_.ruleName=="equal"){B=false;opts=$.options;for(A=0;A<opts.length;A++)if(opts[A].selected&&opts[A].value==_.comparisonValue){B=true;break}if(!B){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else if(_.ruleName=="notequal"){B=false;opts=$.options;for(A=0;A<opts.length;A++)if(opts[A].selected&&opts[A].value!=_.comparisonValue){B=true;break}if(!B){yav.highlight($,yav_config.inputclasserror);return _.alertMsg}}else yav.debug("DEBUG: rule "+_.ruleName+" not supported for "+$.type)},debug:function($){if(yav_config.debugmode)alert($)},strTrim:function($){return $.replace(/^\s+/,"").replace(/\s+$/,"")},makeRules:function($){var _=new Array();if($.length){for(var A=0;A<$.length;A++)_[A]=yav.splitRule($[A])}else _[0]=yav.splitRule($);return _},splitRule:function(_){var $=null;if(_!=yav.undef){params=_.split(yav_config.RULE_SEP);switch(params.length){case 2:$=new yav.rule(params[0],params[1],null,null,null);break;case 3:if(yav.threeParamRule(params[1]))$=new yav.rule(params[0],params[1],params[2],null,null);else if(params[2]=="pre-condition"||params[2]=="post-condition"||params[2]=="andor-operator")$=new yav.rule(params[0],params[1],null,"foo",params[2]);else $=new yav.rule(params[0],params[1],null,params[2],null);break;case 4:if(yav.threeParamRule(params[1])&&(params[3]=="pre-condition"||params[3]=="post-condition"||params[3]=="andor-operator"))$=new yav.rule(params[0],params[1],params[2],"foo",params[3]);else $=new yav.rule(params[0],params[1],params[2],params[3],null);break;default:yav.debug("DEBUG: wrong definition of rule")}}return $},threeParamRule:function($){return($=="equal"||$=="notequal"||$=="minlength"||$=="maxlength"||$=="date_lt"||$=="date_le"||$=="implies"||$=="regexp"||$=="numrange"||$=="keypress"||$=="and"||$=="or"||$=="custom"||$=="mask")?true:false},highlight:function($,_){if(yav.rulesEvt.length>0&&_==yav_config.inputclasserror)return;if(!yav.isFocusSet&&_==yav_config.inputclasserror){if((!$.type)&&($.length>0)&&($.item(0).type=="radio"))$.item(0).focus();else $.focus();yav.isFocusSet=true}if($!=yav.undef&&yav_config.inputhighlight)if(yav_config.multipleclassname)yav.highlightMultipleClassName($,_);else $.className=_},highlightMultipleClassName:function($,_){re=new RegExp("(^|\\s)("+yav_config.inputclassnormal+"|"+yav_config.inputclasserror+")($|\\s)");$.className=yav.strTrim(((typeof $.className!="undefined")?$.className.replace(re,""):"")+" "+_)},getDefaultMessage:function($,C,_,B){if(C.length==0)C=$;var A=yav_config.DEFAULT_MSG;if(_=="required")A=yav_config.REQUIRED_MSG.replace("{1}",C);else if(_=="minlength")A=yav_config.MINLENGTH_MSG.replace("{1}",C).replace("{2}",B);else if(_=="maxlength")A=yav_config.MAXLENGTH_MSG.replace("{1}",C).replace("{2}",B);else if(_=="numrange")A=yav_config.NUMRANGE_MSG.replace("{1}",C).replace("{2}",B);else if(_=="date")A=yav_config.DATE_MSG.replace("{1}",C);else if(_=="numeric")A=yav_config.NUMERIC_MSG.replace("{1}",C);else if(_=="integer")A=yav_config.INTEGER_MSG.replace("{1}",C);else if(_=="double")A=yav_config.DOUBLE_MSG.replace("{1}",C);else if(_=="equal")A=yav_config.EQUAL_MSG.replace("{1}",C).replace("{2}",yav.getComparisonDisplayed(B));else if(_=="notequal")A=yav_config.NOTEQUAL_MSG.replace("{1}",C).replace("{2}",yav.getComparisonDisplayed(B));else if(_=="alphabetic")A=yav_config.ALPHABETIC_MSG.replace("{1}",C);else if(_=="alphanumeric")A=yav_config.ALPHANUMERIC_MSG.replace("{1}",C);else if(_=="alnumhyphen")A=yav_config.ALNUMHYPHEN_MSG.replace("{1}",C);else if(_=="alnumhyphenat")A=yav_config.ALNUMHYPHENAT_MSG.replace("{1}",C);else if(_=="alphaspace")A=yav_config.ALPHASPACE_MSG.replace("{1}",C);else if(_=="email")A=yav_config.EMAIL_MSG.replace("{1}",C);else if(_=="regexp")A=yav_config.REGEXP_MSG.replace("{1}",C).replace("{2}",B);else if(_=="date_lt")A=yav_config.DATE_LT_MSG.replace("{1}",C).replace("{2}",yav.getComparisonDisplayed(B));else if(_=="date_le")A=yav_config.DATE_LE_MSG.replace("{1}",C).replace("{2}",yav.getComparisonDisplayed(B));else if(_=="empty")A=yav_config.EMPTY_MSG.replace("{1}",C);return A},getComparisonDisplayed:function($){comparisonDisplayed=$;if($.substring(0,1)=="$"){$=$.substring(1,$.length);tmp=$.split(":");if(tmp.length==2)comparisonDisplayed=tmp[1];else comparisonDisplayed=$}return comparisonDisplayed},isKeyAllowed:function(_,A){retval=false;var $;if(_==8||_==0)retval=true;else for(var B=0;B<A.length;B++){$=A.charCodeAt(B);if($==_){retval=true;break}}return retval},getField:function(A,_){var $=null;if(A.elements[_])$=A.elements[_];else if(yav.get(_))$=yav.get(_);return $},get:function($){return document.getElementById($)},unformatNumber:function($){var _=$.replace(yav_config.THOUSAND_SEP,"");_=_.replace(yav_config.DECIMAL_SEP,".");return _},deleteInline:function($){if($.indexOf("__inline__")==-1)return $;else return $.substring(0,$.indexOf("__inline__"))},addEvent:function($,A,_){if($.addEventListener){$.addEventListener(A,_,false);return true}else if($.attachEvent)$["on"+A]=_;else $["on"+A]=_},call:function($,B,A){var _=document.forms[yav.formEvt].elements[$];addEvent(_,B,A)}};Function.prototype.bindAsEventListener=function(_){var $=this;return function(A){return $.call(_,A||window.event)}}