/***********************************************************************
 * YAV - Yet Another Validator  v1.3.7                                 *
 * Copyright (C) 2005-2006-2007                                        *
 * Author: Federico Crivellaro <f.crivellaro@gmail.com>                *
 * WWW: http://yav.sourceforge.net                                     *
 *                                                                     *
 * This library is free software; you can redistribute it and/or       *
 * modify it under the terms of the GNU Lesser General Public          *
 * License as published by the Free Software Foundation; either        *
 * version 2.1 of the License, or (at your option) any later version.  *
 *                                                                     *
 * This library is distributed in the hope that it will be useful,     *
 * but WITHOUT ANY WARRANTY; without even the implied warranty of      *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   *
 * Lesser General Public License for more details.                     *
 *                                                                     *
 * You should have received a copy of the GNU Lesser General Public    *
 * License along with this library; if not, write to the Free Software *
 * Foundation, Inc.,59 Temple Place,Suite 330,Boston,MA 02111-1307 USA *
 *                                                                     *
 * last revision:  18 JUL 2007                                         *
 ***********************************************************************/
function addLoadEvent(a){var b=window.onload;if(typeof window.onload!="function"){window.onload=a}else{window.onload=function(){b();a()}}}function prepareInputsForHints(){var a=document.getElementsByTagName("input");for(var d=0;d<a.length;d++){if(a[d].parentNode.getElementsByTagName("span")[0]){a[d].onfocus=function(){this.parentNode.getElementsByTagName("span")[0].style.display="inline"};a[d].onblur=function(){this.parentNode.getElementsByTagName("span")[0].style.display="none"}}}var c=document.getElementsByTagName("select");for(var b=0;b<c.length;b++){if(c[b].parentNode.getElementsByTagName("span")[0]){c[b].onfocus=function(){this.parentNode.getElementsByTagName("span")[0].style.display="inline"};c[b].onblur=function(){this.parentNode.getElementsByTagName("span")[0].style.display="none"}}}}var undef;var internalRules;function performCheck(l,j,d){var k=makeRules(j);internalRules=makeRules(j);this.f=document.forms[l];if(!this.f){debug("DEBUG: could not find form object "+l);return null}var h=new Array();var c=0;if(k.length){for(var e=0;e<k.length;e++){var g=k[e];if(g!=null){highlightReset(getField(f,g.el),inputclassnormal)}}}else{if(k!=null){highlightReset(getField(f,k.el),inputclassnormal)}}if(k.length){for(var e=0;e<k.length;e++){var g=k[e];var b=null;if(g==null){}else{if(g.ruleType=="pre-condition"||g.ruleType=="post-condition"){}else{if(g.ruleName=="implies"){pre=g.el;post=g.comparisonValue;var a=getField(f,k[pre].el).className;if(checkRule(f,k[pre])==null&&checkRule(f,k[post])!=null){b=g.alertMsg}else{if(checkRule(f,k[pre])!=null){getField(f,k[pre].el).className=a}}}else{b=checkRule(f,g)}}}if(b!=null){h[c]=b;c++}}}else{var m=k;err=checkRule(f,m);if(err!=null){h[0]=err}}return displayAlert(h,d)}function checkKeyPress(e,h,a){var g=null;if(getBrowser()=="msie"){g=window.event.keyCode}else{if(getBrowser()=="netscape"||getBrowser()=="firefox"){g=e.which}}var j=makeRules(a);var b=true;if(j.length){for(var d=0;d<j.length;d++){var c=j[d];if(c.ruleName=="keypress"&&c.el==h.name){b=isKeyAllowed(g,c.comparisonValue);break}}}else{var c=j;if(c.ruleName=="keypress"&&c.el==h.name){b=isKeyAllowed(g,c.comparisonValue)}}if(!b){if(getBrowser()=="msie"){window.event.keyCode=0}else{if(getBrowser()=="netscape"||getBrowser()=="firefox"){e.preventDefault();e.stopPropagation();e.returnValue=false}}}return false}function displayAlert(c,b){var a=null;if(b=="classic"){a=displayClassic(c)}else{if(b=="innerHtml"){a=displayInnerHtml(c)}else{if(b=="jsVar"){a=displayJsVar(c)}else{debug("DEBUG: alert type "+b+" not supported")}}}return a}function displayClassic(b){var c="";if(b!=null&&b.length>0){if(strTrim(HEADER_MSG).length>0){c+=HEADER_MSG+"\n\n"}for(var a=0;a<b.length;a++){c+=" "+b[a]+"\n"}if(strTrim(FOOTER_MSG).length>0){c+="\n"+FOOTER_MSG}alert(c);return false}else{return true}}function displayInnerHtml(b){if(b!=null&&b.length>0){var c="";if(strTrim(HEADER_MSG).length>0){c+=HEADER_MSG}c+="<ul>";for(var a=0;a<b.length;a++){c+="<li>"+b[a]+"</li>"}c+="</ul>";if(strTrim(FOOTER_MSG).length>0){c+=FOOTER_MSG}c=SINGLE_MSG;document.getElementById(errorsdiv).innerHTML=c;document.getElementById(errorsdiv).className=innererror;document.getElementById(errorsdiv).style.display="block";return false}else{document.getElementById(errorsdiv).innerHTML="";document.getElementById(errorsdiv).className="";document.getElementById(errorsdiv).style.display="none";return true}}function displayJsVar(a){document.getElementById(errorsdiv).className="";document.getElementById(errorsdiv).style.display="none";if(a!=null&&a.length>0){var b="";b+="<script>var jsErrors;<\/script>";document.getElementById(errorsdiv).innerHTML=b;jsErrors=a;return false}else{document.getElementById(errorsdiv).innerHTML="<script>var jsErrors;<\/script>";return true}}function rule(b,d,c,a,e){if(!checkArguments(arguments)){return false}tmp=b.split(":");nameDisplayed="";if(tmp.length==2){nameDisplayed=tmp[1];b=tmp[0]}this.el=b;this.nameDisplayed=nameDisplayed;this.ruleName=d;this.comparisonValue=c;this.ruleType=e;if(a==undef||a==null){this.alertMsg=getDefaultMessage(b,nameDisplayed,d,c)}else{this.alertMsg=a}}function checkRule(f,myRule){retVal=null;if(myRule!=null){if(myRule.ruleName=="custom"){var customFunction=" retVal = "+myRule.el;eval(customFunction)}else{if(myRule.ruleName=="and"){var op_1=myRule.el;var op_next=myRule.comparisonValue;if(checkRule(f,internalRules[op_1])!=null){retVal=myRule.alertMsg;if(myRule.ruleType=="pre-condition"){highlightReset(getField(f,internalRules[op_1].el),inputclassnormal)}}else{var op_k=op_next.split("-");for(var k=0;k<op_k.length;k++){if(checkRule(f,internalRules[op_k[k]])!=null){retVal=myRule.alertMsg;if(myRule.ruleType=="pre-condition"){highlightReset(getField(f,internalRules[op_k[k]].el),inputclassnormal)}break}}}}else{if(myRule.ruleName=="or"){var op_1=myRule.el;var op_next=myRule.comparisonValue;var success=false;if(checkRule(f,internalRules[op_1])==null){success=true}else{if(myRule.ruleType=="pre-condition"){highlightReset(getField(f,internalRules[op_1].el),inputclassnormal)}var op_k=op_next.split("-");for(var k=0;k<op_k.length;k++){if(checkRule(f,internalRules[op_k[k]])==null){success=true;break}else{if(myRule.ruleType=="pre-condition"){highlightReset(getField(f,internalRules[op_k[k]].el),inputclassnormal)}}}}if(!success){retVal=myRule.alertMsg}}else{el=getField(f,myRule.el);if(el==null){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=checkText(el,myRule)}else{if(el.type=="checkbox"){err=checkCheckbox(el,myRule)}else{if(el.type=="select-one"){err=checkSelOne(el,myRule)}else{if(el.type=="select-multiple"){err=checkSelMul(el,myRule)}else{if(el.type=="radio"){err=checkRadio(el,myRule)}else{debug("DEBUG: type "+el.type+" not supported")}}}}}}else{err=checkRadio(el,myRule)}retVal=err}}}}return retVal}function checkArguments(a){if(a.length<4){debug("DEBUG: rule requires four arguments at least");return false}else{if(a[0]==null||a[1]==null){debug("DEBUG: el and ruleName are required");return false}}return true}function checkRadio(b,e){var c=null;if(e.ruleName=="required"){var g=b;var d=false;if(isNaN(g.length)&&g.checked){d=true}else{for(var a=0;a<g.length;a++){if(g[a].checked){d=true;break}}}if(!d){highlight(b,inputclasserror);c=e.alertMsg}}else{if(e.ruleName=="equal"){var g=b;var d=false;if(isNaN(g.length)&&g.checked){if(g.value==e.comparisonValue){d=true}}else{for(var a=0;a<g.length;a++){if(g[a].checked){if(g[a].value==e.comparisonValue){d=true;break}}}}if(!d){c=e.alertMsg}}else{if(e.ruleName=="notequal"){var g=b;var d=false;if(isNaN(g.length)&&g.checked){if(g.value!=e.comparisonValue){d=true}}else{for(var a=0;a<g.length;a++){if(g[a].checked){if(g[a].value!=e.comparisonValue){d=true;break}}}}if(!d){c=e.alertMsg}}else{debug("DEBUG: rule "+e.ruleName+" not supported for radio")}}}return c}function checkText(el,myRule){err=null;if(trimenabled){el.value=strTrim(el.value)}if(myRule.ruleName=="required"){if(el.value==null||el.value==""){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="equal"){err=checkEqual(el,myRule)}else{if(myRule.ruleName=="notequal"){err=checkNotEqual(el,myRule)}else{if(myRule.ruleName=="numeric"){reg=new RegExp("^[0-9]*$");if(!reg.test(el.value)){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="alphabetic"){reg=new RegExp("^[A-Za-z]*$");if(!reg.test(el.value)){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="alphanumeric"){reg=new RegExp("^[A-Za-z0-9]*$");if(!reg.test(el.value)){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="alnumhyphen"){reg=new RegExp("^[A-Za-z0-9-_]*$");if(!reg.test(el.value)){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="alnumhyphenat"){reg=new RegExp("^[A-Za-z0-9-_@]*$");if(!reg.test(el.value)){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="alphaspace"){reg=new RegExp("^[A-Za-z0-9-_ \n\r\t]*$");if(!reg.test(el.value)){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="email"){reg=new RegExp("^(([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}){0,1}$");if(!reg.test(el.value)){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="maxlength"){if(isNaN(myRule.comparisonValue)){debug("DEBUG: comparisonValue for rule "+myRule.ruleName+" not a number")}else{if(el.value.length>myRule.comparisonValue){highlight(el,inputclasserror);err=myRule.alertMsg}}}else{if(myRule.ruleName=="minlength"){if(isNaN(myRule.comparisonValue)){debug("DEBUG: comparisonValue for rule "+myRule.ruleName+" not a number")}else{if(el.value.length<myRule.comparisonValue){highlight(el,inputclasserror);err=myRule.alertMsg}}}else{if(myRule.ruleName=="numrange"){reg=new RegExp("^[-+]{0,1}[0-9]*[.]{0,1}[0-9]*$");if(!reg.test(unformatNumber(el.value))){highlight(el,inputclasserror);err=myRule.alertMsg}else{regRange=new RegExp("^[0-9]+-[0-9]+$");if(!regRange.test(myRule.comparisonValue)){debug("DEBUG: comparisonValue for rule "+myRule.ruleName+" not in format number1-number2")}else{rangeVal=myRule.comparisonValue.split("-");if(eval(unformatNumber(el.value))<eval(rangeVal[0])||eval(unformatNumber(el.value))>eval(rangeVal[1])){highlight(el,inputclasserror);err=myRule.alertMsg}}}}else{if(myRule.ruleName=="regexp"){reg=new RegExp(myRule.comparisonValue);if(!reg.test(el.value)){highlight(el,inputclasserror);err=myRule.alertMsg}}else{if(myRule.ruleName=="integer"){err=checkInteger(el,myRule)}else{if(myRule.ruleName=="double"){err=checkDouble(el,myRule)}else{if(myRule.ruleName=="date"){err=checkDate(el,myRule)}else{if(myRule.ruleName=="date_lt"){err=checkDateLessThan(el,myRule,false)}else{if(myRule.ruleName=="date_le"){err=checkDateLessThan(el,myRule,true)}else{if(myRule.ruleName=="keypress"){}else{if(myRule.ruleName=="empty"){if(el.value!=null&&el.value!=""){highlight(el,inputclasserror);err=myRule.alertMsg}}else{debug("DEBUG: rule "+myRule.ruleName+" not supported for "+el.type)}}}}}}}}}}}}}}}}}}}}}return err}function checkInteger(a,b){reg=new RegExp("^[-+]{0,1}[0-9]*$");if(!reg.test(a.value)){highlight(a,inputclasserror);return b.alertMsg}}function checkDouble(b,c){var a=DECIMAL_SEP;reg=new RegExp("^[-+]{0,1}[0-9]*["+a+"]{0,1}[0-9]*$");if(!reg.test(b.value)){highlight(b,inputclasserror);return c.alertMsg}}function checkDate(b,c){error=null;if(b.value!=""){var a=DATE_FORMAT;ddReg=new RegExp("dd");MMReg=new RegExp("MM");yyyyReg=new RegExp("yyyy");if(!ddReg.test(a)||!MMReg.test(a)||!yyyyReg.test(a)){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(b.value)){highlight(b,inputclasserror);error=c.alertMsg}else{dd=b.value.substring(ddStart,ddStart+2);MM=b.value.substring(MMStart,MMStart+2);yyyy=b.value.substring(yyyyStart,yyyyStart+4);if(!checkddMMyyyy(dd,MM,yyyy)){highlight(b,inputclasserror);error=c.alertMsg}}}return error}function checkDateLessThan(e,g,c){error=null;var b=checkDate(e,g)==null?true:false;if(b&&e.value!=""){var a=DATE_FORMAT;ddStart=a.indexOf("dd");MMStart=a.indexOf("MM");yyyyStart=a.indexOf("yyyy");dd=e.value.substring(ddStart,ddStart+2);MM=e.value.substring(MMStart,MMStart+2);yyyy=e.value.substring(yyyyStart,yyyyStart+4);myDate=""+yyyy+MM+dd;strReg=a.replace("dd","[0-9]{2}").replace("MM","[0-9]{2}").replace("yyyy","[0-9]{4}");reg=new RegExp("^"+strReg+"$");var h=g.comparisonValue.indexOf("$")==0?true:false;var d="";if(h){toSplit=g.comparisonValue.substr(1);tmp=toSplit.split(":");if(tmp.length==2){d=this.getField(f,tmp[0]).value}else{d=this.getField(f,g.comparisonValue.substr(1)).value}}else{d=g.comparisonValue}if(!reg.test(d)){highlight(e,inputclasserror);error=g.alertMsg}else{cdd=d.substring(ddStart,ddStart+2);cMM=d.substring(MMStart,MMStart+2);cyyyy=d.substring(yyyyStart,yyyyStart+4);cDate=""+cyyyy+cMM+cdd;if(c){if(!checkddMMyyyy(cdd,cMM,cyyyy)||myDate>cDate){highlight(e,inputclasserror);error=g.alertMsg}}else{if(!checkddMMyyyy(cdd,cMM,cyyyy)||myDate>=cDate){highlight(e,inputclasserror);error=g.alertMsg}}}}else{if(e.value!=""){highlight(e,inputclasserror);error=g.alertMsg}}return error}function checkEqual(b,c){error=null;var d=c.comparisonValue.indexOf("$")==0?true:false;var a="";if(d){toSplit=c.comparisonValue.substr(1);tmp=toSplit.split(":");if(tmp.length==2){a=this.getField(f,tmp[0]).value}else{a=this.getField(f,c.comparisonValue.substr(1)).value}}else{a=c.comparisonValue}if(b.value!=a){highlight(b,inputclasserror);error=c.alertMsg}return error}function checkNotEqual(b,c){error=null;var d=c.comparisonValue.indexOf("$")==0?true:false;var a="";if(d){toSplit=c.comparisonValue.substr(1);tmp=toSplit.split(":");if(tmp.length==2){a=this.getField(f,tmp[0]).value}else{a=this.getField(f,c.comparisonValue.substr(1)).value}}else{a=c.comparisonValue}if(b.value==a){highlight(b,inputclasserror);error=c.alertMsg}return error}function checkddMMyyyy(a,c,b){retVal=true;if((a>31)||(c>12)||(a==31&&(c==2||c==4||c==6||c==9||c==11))||(a>29&&c==2)||(a==29&&(c==2)&&((b%4>0)||(b%4==0&&b%100==0&&b%400>0)))){retVal=false}return retVal}function checkCheckbox(a,b){if(b.ruleName=="required"){if(!a.checked){highlight(a,inputclasserror);return b.alertMsg}}else{if(b.ruleName=="equal"){if(!a.checked||a.value!=b.comparisonValue){highlight(a,inputclasserror);return b.alertMsg}}else{if(b.ruleName=="notequal"){if(!a.checked||a.value==b.comparisonValue){highlight(a,inputclasserror);return b.alertMsg}}else{debug("DEBUG: rule "+b.ruleName+" not supported for "+a.type)}}}}function checkSelOne(a,c){if(c.ruleName=="required"){var b=false;var d=a.selectedIndex;if(d>=0&&a.options[d].value){b=true}if(!b){highlight(a,inputclasserror);return c.alertMsg}}else{if(c.ruleName=="equal"){var b=false;var d=a.selectedIndex;if(d>=0&&a.options[d].value==c.comparisonValue){b=true}if(!b){highlight(a,inputclasserror);return c.alertMsg}}else{if(c.ruleName=="notequal"){var b=false;var d=a.selectedIndex;if(d>=0&&a.options[d].value!=c.comparisonValue){b=true}if(!b){highlight(a,inputclasserror);return c.alertMsg}}else{debug("DEBUG: rule "+c.ruleName+" not supported for "+a.type)}}}}function checkSelMul(b,d){if(d.ruleName=="required"){var c=false;opts=b.options;for(var a=0;a<opts.length;a++){if(opts[a].selected&&opts[a].value){c=true;break}}if(!c){highlight(b,inputclasserror);return d.alertMsg}}else{if(d.ruleName=="equal"){var c=false;opts=b.options;for(var a=0;a<opts.length;a++){if(opts[a].selected&&opts[a].value==d.comparisonValue){c=true;break}}if(!c){highlight(b,inputclasserror);return d.alertMsg}}else{if(d.ruleName=="notequal"){var c=false;opts=b.options;for(var a=0;a<opts.length;a++){if(opts[a].selected&&opts[a].value!=d.comparisonValue){c=true;break}}if(!c){highlight(b,inputclasserror);return d.alertMsg}}else{debug("DEBUG: rule "+d.ruleName+" not supported for "+b.type)}}}}function debug(a){if(debugmode){alert(a)}}function strTrim(a){return a.replace(/^\s+/,"").replace(/\s+$/,"")}function makeRules(a){var c=new Array();if(a.length){for(var b=0;b<a.length;b++){c[b]=splitRule(a[b])}}else{c[0]=splitRule(a)}return c}function splitRule(b){var a=null;if(b!=undef){params=b.split("|");switch(params.length){case 2:a=new rule(params[0],params[1],null,null,null);break;case 3:if(threeParamRule(params[1])){a=new rule(params[0],params[1],params[2],null,null)}else{if(params[2]=="pre-condition"||params[2]=="post-condition"){a=new rule(params[0],params[1],null,"foo",params[2])}else{a=new rule(params[0],params[1],null,params[2],null)}}break;case 4:if(threeParamRule(params[1])&&(params[3]=="pre-condition"||params[3]=="post-condition")){a=new rule(params[0],params[1],params[2],"foo",params[3])}else{a=new rule(params[0],params[1],params[2],params[3],null)}break;default:debug("DEBUG: wrong definition of rule")}}return a}function threeParamRule(a){return(a=="equal"||a=="notequal"||a=="minlength"||a=="maxlength"||a=="date_lt"||a=="date_le"||a=="implies"||a=="regexp"||a=="numrange"||a=="keypress"||a=="and"||a=="or")?true:false}function highlight(b,a){if(b!=undef&&inputhighlight){b.className=a}document.getElementById(b.name+"Error").className="form_error_inline"}function highlightReset(b,a){if(b!=undef&&inputhighlight){b.className=a}document.getElementById(b.name+"Error").className="form_error_offline"}function getDefaultMessage(b,a,d,c){if(a.length==0){a=b}var e=DEFAULT_MSG;if(d=="required"){e=REQUIRED_MSG.replace("{1}",a)}else{if(d=="minlength"){e=MINLENGTH_MSG.replace("{1}",a).replace("{2}",c)}else{if(d=="maxlength"){e=MAXLENGTH_MSG.replace("{1}",a).replace("{2}",c)}else{if(d=="numrange"){e=NUMRANGE_MSG.replace("{1}",a).replace("{2}",c)}else{if(d=="date"){e=DATE_MSG.replace("{1}",a)}else{if(d=="numeric"){e=NUMERIC_MSG.replace("{1}",a)}else{if(d=="integer"){e=INTEGER_MSG.replace("{1}",a)}else{if(d=="double"){e=DOUBLE_MSG.replace("{1}",a)}else{if(d=="equal"){e=EQUAL_MSG.replace("{1}",a).replace("{2}",getComparisonDisplayed(c))}else{if(d=="notequal"){e=NOTEQUAL_MSG.replace("{1}",a).replace("{2}",getComparisonDisplayed(c))}else{if(d=="alphabetic"){e=ALPHABETIC_MSG.replace("{1}",a)}else{if(d=="alphanumeric"){e=ALPHANUMERIC_MSG.replace("{1}",a)}else{if(d=="alnumhyphen"){e=ALNUMHYPHEN_MSG.replace("{1}",a)}else{if(d=="alnumhyphenat"){e=ALNUMHYPHENAT_MSG.replace("{1}",a)}else{if(d=="alphaspace"){e=ALPHASPACE_MSG.replace("{1}",a)}else{if(d=="email"){e=EMAIL_MSG.replace("{1}",a)}else{if(d=="regexp"){e=REGEXP_MSG.replace("{1}",a).replace("{2}",c)}else{if(d=="date_lt"){e=DATE_LT_MSG.replace("{1}",a).replace("{2}",getComparisonDisplayed(c))}else{if(d=="date_le"){e=DATE_LE_MSG.replace("{1}",a).replace("{2}",getComparisonDisplayed(c))}else{if(d=="empty"){e=EMPTY_MSG.replace("{1}",a)}}}}}}}}}}}}}}}}}}}}return e}function getComparisonDisplayed(a){comparisonDisplayed=a;if(a.substring(0,1)=="$"){a=a.substring(1,a.length);tmp=a.split(":");if(tmp.length==2){comparisonDisplayed=tmp[1]}else{comparisonDisplayed=a}}return comparisonDisplayed}function getBrowser(){brs=navigator.userAgent.toLowerCase();var a;if(brs.search(/msie\s(\d+(\.?\d)*)/)!=-1){a="msie"}else{if(brs.search(/netscape[\/\s](\d+([\.-]\d)*)/)!=-1){a="netscape"}else{if(brs.search(/firefox[\/\s](\d+([\.-]\d)*)/)!=-1){a="firefox"}else{a="unknown"}}}return a}function isKeyAllowed(d,b){retval=false;var a;if(d==8){retval=true}else{for(var c=0;c<b.length;c++){a=b.charCodeAt(c);if(a==d){retval=true;break}}}return retval}function getField(b,c){var a=null;if(b.elements[c]){a=b.elements[c]}else{if(document.getElementById(c)){a=document.getElementById(c)}}return a}function unformatNumber(b){var a=b.replace(THOUSAND_SEP,"");a=a.replace(DECIMAL_SEP,".");return a}var inputhighlight=false;var inputclasserror="form_input input_error";var inputclassnormal="form_input";var innererror="form_error";var debugmode=false;var trimenabled=true;var DECIMAL_SEP=".";var THOUSAND_SEP=",";var DATE_FORMAT="MM-dd-yyyy";var HEADER_MSG="Data not valid:";var FOOTER_MSG="Please retry.";var DEFAULT_MSG="The data is invalid.";var REQUIRED_MSG="Enter {1}.";var ALPHABETIC_MSG="{1} is not valid. Characters allowed: A-Za-z";var ALPHANUMERIC_MSG="{1} is not valid. Characters allowed: A-Za-z0-9";var ALNUMHYPHEN_MSG="{1} is not valid. Characters allowed: A-Za-z0-9-_";var ALNUMHYPHENAT_MSG="{1} is not valid. Characters allowed: A-Za-z0-9-_@";var ALPHASPACE_MSG="{1} is not valid. Characters allowed: A-Za-z0-9-_space";var MINLENGTH_MSG="{1} must be at least {2} characters long.";var MAXLENGTH_MSG="{1} must be no more than {2} characters long.";var NUMRANGE_MSG="{1} must be a number in {2} range.";var DATE_MSG="{1} is not a valid date, using the format "+DATE_FORMAT+".";var NUMERIC_MSG="{1} must be a number.";var INTEGER_MSG="{1} must be an integer";var DOUBLE_MSG="{1} must be a decimal number.";var REGEXP_MSG="{1} is not valid. Format allowed: {2}.";var EQUAL_MSG="{1} must be equal to {2}.";var NOTEQUAL_MSG="{1} must be not equal to {2}.";var DATE_LT_MSG="{1} must be previous to {2}.";var DATE_LE_MSG="{1} must be previous or equal to {2}.";var EMAIL_MSG="{1} must be a valid e-mail.";var EMPTY_MSG="{1} must be empty.";
