
var ELEMENT_NODE=1;var TEXT_NODE=3;var COMMENT_NODE=8;self.debuggerOn=false;function jValidate(f,bAllowMultipleSubmission){if(document.layers){return true;}
else{if(window.bSubmitted)return false;if(self.jvalOverridden)return true;var els=f.elements;var bFlag;for(var x=0;x<els.length;x++){if(els[x].tagName.toLowerCase()=="fieldset"||els[x].disabled)continue;var el=new El(els[x]);var bIsValid=false;if(!el.dataType)continue;for(self.DTX=0;self.DTX<el.dataType.length;self.DTX++){switch(el.dataType[self.DTX]){case"alpha":bFlag=_text(el);break;case"integer":bFlag=_numeric(el);break;case"decimal":bFlag=_numeric(el);break;case"email":bFlag=_email(el);break;case"phone":bFlag=_phone(el);break;case"date":bFlag=_date(el);break;case"checkbox":bFlag=_checkbox(el);break;case"file":bFlag=_text(el);break;case"hidden":bFlag=_text(el);break;case"password":bFlag=_text(el);break;case"radio":bFlag=_radio(el);break;case"select":bFlag=_select(el);break;case"text":bFlag=_text(el);break;case"textarea":bFlag=_text(el);break;default:bFlag=true;}
var bConstraintOk=el.testConstraint();if(bFlag&&bConstraintOk)bIsValid=true;}
if(!bIsValid){resetOriginalRequired();if(!bFlag){return el.throwError();}
else if(!bConstraintOk){return el.throwError(true);}}
if(/rgb\(255,\s?255,\s?0\)/.test(el.formElement.style.backgroundColor)){el.formElement.style.backgroundColor="";}}
if(!bAllowMultipleSubmission)window.bSubmitted=true;return true;}}
function El(el){this.form=el.form;this.formElement=el;this.type=this.type?this.type:null;this.name=el.name?el.name:null;this.value=el.value;this.title=el.title?el.title:null;this.size=el.size?el.size:null;var ruleNode=getRuleNode(el);if(ruleNode){ruleText=ruleNode.nodeValue;this.dataType=getRule(ruleNode,"dataType").length?getRule(ruleNode,"dataType").replace(/\s/g,"").split(","):[el.type.split("-")[0].toString().toLowerCase()];this.required=getRule(ruleNode,"required");this.condition=getRule(ruleNode,"condition");this.constraint=getRule(ruleNode,"constraint");this.min=getRule(ruleNode,"min");this.max=getRule(ruleNode,"max");this.regex=getRule(ruleNode,"regex");this.regexIgnoreCase=/true/i.test(getRule(ruleNode,"regexIgnoreCase"));this.errorMsg=getRule(ruleNode,"errorMsg").length?getRule(ruleNode,"errorMsg").replace(/[\n\r]\s+/g," ").replace(/\\n/g,"\n"):"Please enter a valid value.";this.constraintErrorMsg=getRule(ruleNode,"constraintErrorMsg").length?getRule(ruleNode,"constraintErrorMsg").replace(/\\n/g,"\n"):this.errorMsg;this.lowerElement=getRule(ruleNode,"lowerElement").length?el.form[getRule(ruleNode,"lowerElement")]:null;this.upperElement=getRule(ruleNode,"upperElement").length?el.form[getRule(ruleNode,"upperElement")]:null;this.equalOk=/true/i.test(getRule(ruleNode,"equalOk"));this.firstOk=/true/i.test(getRule(ruleNode,"firstOk"));}
return this;}
function getRuleNode(el){var nextNode=nextCommentNode(el);if(nextNode&&nextNode.nodeType==COMMENT_NODE&&getRule(nextNode,"for")==el.getAttribute("name")){return nextNode;}
var previousNode=previousCommentNode(el);if(previousNode&&previousNode.nodeType==COMMENT_NODE&&getRule(previousNode,"for")==el.getAttribute("name")){return previousNode;}
return null;}
function previousCommentNode(el){if(!el.previousSibling){return null;}
else{if(el.previousSibling.nodeType==COMMENT_NODE){return el.previousSibling;}
else return previousCommentNode(el.previousSibling);}}
function nextCommentNode(el){if(!el.nextSibling){return null;}
else{if(el.nextSibling.nodeType==COMMENT_NODE){return el.nextSibling;}
else return nextCommentNode(el.nextSibling);}}
function getRule(node,sRule){var sText=node.nodeValue;if(sText.indexOf(sRule)==-1)return"";sText=sText.replace(/\\\"/g,escape("\"")).replace(/\\\\/g,escape("\\"));var re=new RegExp("\\b"+sRule+"\\s*=\\s*\"([^\"]*)\"","i");var arr=re.exec(sText);if(arr==null||arr.length<1){return"";}
else{return unescape(arr[1]);}}
function setRule(node,key,val){var sText=node.nodeValue;var keyStart,valStart,valEnd,result,sKeyAndVal;var re=new RegExp("\\b"+key+"(\\s)*=(\\s)*","i");if((result=re.exec(sText))!=null){keyStart=result.index;valStart=sText.indexOf('"',keyStart)+1;if(/regex|errormsg/i.test(key)){for(var x=valStart;x<sText.length;x++){if((sText.charAt(x)=='"'&&sText.charAt(x-1)=="\\"&&sText.charAt(x-2)=="\\")||(sText.charAt(x)=='"'&&sText.charAt(x-1)!="\\")){valEnd=x+1;break;}}}
else{valEnd=sText.indexOf('"',valStart)+1;}
sKeyAndVal=sText.substring(keyStart,valEnd).replace(/\\/g,"\\\\");re=new RegExp("\\b"+sKeyAndVal,"i");sText=sText.replace(re,key+"=\""+val+"\"");var newNode=document.createComment(sText);node.parentNode.replaceChild(newNode,node);}}
El.prototype.throwError=function _throwError(bConstraintError){this.highlight();window.bSubmitted=false;try{this.formElement.focus();this.formElement.select();}
catch(e){}
if(bConstraintError)alert(this.constraintErrorMsg);else if(this.errorMsg)alert(this.errorMsg);return false;}
El.prototype.getEqualOk=function _getEqualOk(){return this.equalOk?this.equalOk==true:this.upperElement&&this.upperElement.equalOk?this.upperElement.equalOk==true:this.lowerElement&&this.lowerElement.equalOk?this.lowerElement.equalOk==true:false;}
El.prototype.highlight=function _highlight(){var els=[];if(window.rangeError){els[0]=this.formElement;els[1]=this.lowerElement?this.lowerElement:this.upperElement;window.rangeError=false;this.errorMsg="The Lower date must be less than"+
(this.getEqualOk()?" or equal to":"")+" the Upper Date.";}
else els=document.getElementsByName(this.name);for(var x=0;x<els.length;x++){els[x].style.backgroundColor="rgb(225,0,0)";els[x].style.borderStyle="solid";els[x].style.borderColor="rgb(255,0,0)";var attrType=els[x].attributes.getNamedItem("type");var type=null;if(attrType!=null){type=attrType.value;}
if(type!=null&&(type.toLowerCase()=="radio"||type.toLowerCase()=="checkbox")){els[x].style.borderWidth="2px";}
var id=els[x].id;if(id!=null&&id.length>0){var labels=document.getElementsByTagName("label");labelLoop:for(var y=0;y<labels.length;y++){var labelFor=labels[y].attributes.getNamedItem("for").value;if(labelFor!=null&&labelFor==id){labels[y].style.borderWidth="1px";labels[y].className="jvalx-invalid-label";break labelLoop;}}}}
return true;}
El.prototype.checkGroupRequired=function _checkGroupRequired(){var els=document.getElementsByName(this.name);if(els.length==1)return true;else{var bValue=false;for(var sgr=0;sgr<els.length;sgr++){if(this.isRequired()||els[sgr].value)bValue=true;}
if(!this.isRequired()){for(var sgr=0;sgr<els.length;sgr++){var ruleNode=getRuleNode(els[sgr]);setRule(ruleNode,"required",bValue);}
var originalRequired=this.required;this.required=bValue;addResetOriginalRequired(this.name,originalRequired);}}}
El.prototype.isRequired=function(){if(this.required.toString()=="true")return true;else if(this.required=="conditional"){return eval(this.condition);}
else return false;}
El.prototype.testConstraint=function(){if(this.constraint&&this.constraint.length){return eval(this.constraint.replace(/this([\s\,\)])/g,"this.formElement$1"));}
else return true;}
window.rangeError=false;function _text(el){el.checkGroupRequired();if(el.isRequired()&&!el.value)return false;else if(el.value){if(el.dataType[self.DTX]=="alpha"){if(!isAlpha(el.value)){return false;}}
if(!testMinMax(el)){el.errorMsg+=((el.min)?"\nMinimum "+el.min+" characters.":"")+
((el.max)?"\nMaximum "+el.max+" characters.":"");return false;}
if(!testRegex(el)){return false;}}
return true;}
function _numeric(el){if(el.isRequired()&&!el.value)return false;else if(el.value){if(el.dataType[self.DTX]=="decimal")
if(isNaN(el.value))return false;if(el.dataType[self.DTX]=="integer")
if(!isInteger(el.value))return false;if(!testMinMax(el)){el.errorMsg+=((el.min)?"\nMinimum value "+el.min+".":"")+
((el.max)?"\nMaximum value "+el.max+".":"");return false;}
if(!testRegex(el))return false;}
return true;}
function _email(el){if(el.isRequired()&&!el.value)return false;else if(el.value){return isEmail(el.value);}
return true;}
function _select(el){if(el.isRequired()){return isSelected(el.formElement,el.firstOk);}
else return true;}
function _date(el){if((el.isRequired()||(el.upperElement&&el.upperElement.value))&&!el.value){return false;}
else if(el.value){if(!fixDate(el.formElement)){return false;}
else{el.value=fixDate(el.formElement);el.formElement.value=fixDate(el.formElement);}
if(el.upperElement)el.upperElement.required="true";if(el.lowerElement){if(!fixDate(el.lowerElement)){return false;}
else el.lowerElement.value=fixDate(el.lowerElement);if(el.getEqualOk()){if(new Date(el.value).getTime()<new Date(el.lowerElement.value).getTime()){window.rangeError=true;return false;}}else{if(new Date(el.value).getTime()<=new Date(el.lowerElement.value).getTime()){window.rangeError=true;return false;}}}}
return true;}
function _phone(el){if(el.isRequired()||el.value){return isPhone(el.value);}
else return true;}
function _checkbox(el){return _radio(el);}
function _radio(el){if(el.isRequired()){var els=document.getElementsByName(el.name);var bChecked=false;for(var x=0;x<els.length;x++)
if(els[x].checked)bChecked=true;return bChecked;}
else return true;}
function jvalOverride(){self.jvalOverridden=true;}
function jvalReset(){window.bSubmitted=false;}
function isAlpha(s){return/^[a-z\s-_]+$/i.test(s);}
function testRegex(el){if(el.regex!=null)
if(el.regex.length>0){sI=el.regexIgnoreCase?"i":"";re=new RegExp(el.regex,sI);return re.test(el.value);}
return true;}
function testMinMax(el){if(el.dataType[self.DTX]=="text"||el.dataType[self.DTX]=="alpha"||el.dataType[self.DTX]=="textarea"||el.dataType[self.DTX]=="hidden"||el.dataType[self.DTX]=="password"){if(el.min&&el.value.length<el.min)return false;if(el.max&&el.value.length>el.max)return false;}
else{if(el.min&&parseFloat(el.value.replace(/\,/g,""))<el.min)return false;if(el.max&&parseFloat(el.value.replace(/\,/g,""))>el.max)return false;}
return true;}
function addResetOriginalRequired(name,val){if(!self.jvalOriginalRequired)
self.jvalOriginalRequired=[];self.jvalOriginalRequired.push([name,val]);}
function resetOriginalRequired(){if(self.jvalOriginalRequired){var OR=jvalOriginalRequired;for(var x=0;x<OR.length;x++){var obj=OR.pop();var name=obj[0];var val=obj[1];var els=document.getElementsByName(name);for(var y=0;y<els.length;y++){var ruleNode=getRuleNode(els[x]);setRule(ruleNode,"required",val);}}}}
function noEnter(){if(event.keyCode==13)return false;else return true;}
function isDate(testDate){if(!(/^[\d\/\.\-]+$/.test(testDate))){return false;}
var testDate=new Date(testDate);if(isNaN(testDate.getTime())){return false;}
else{return true;}}
function isPhone(s){var re=/^((((\d\s)|\d)?[\(\-\.\s]\s?)?\d{3}\s?[\)\-\.\s]?\s?)?\d{3}\s?[\.\-\s]?\s?\d{4}$/;return re.test(s);}
function isEmail(sTest){var pattern=/^[\w\-]+(\.[\w\-]+)*@[\w\-]+\.([\w\-]+\.)*[a-z]{2,}$/i;return pattern.test(sTest);}
function isAlphaNumeric(sTest){var bFlag=false;var pattern1=/[a-zA-Z]+/;if(pattern1.test(sTest)){var pattern2=/^[\w\-\s]+\s*$/;bFlag=pattern2.test(sTest);}
return bFlag;}
function isInteger(s){return/^-?\d{1,3}(,?\d{3})*(\.00)?$/.test(s);}
function fixDate(oEl,bEmptyOK){if(bEmptyOK&&!oEl.value)return true;var sVal=oEl.value.replace(/[\\\-\.\s\,\:\;\*\+]/gi,"/");var sDate="";var bFlag=true;if(sVal.indexOf("/")!=sVal.lastIndexOf("/")){arTemp=sVal.split("/");for(x=0;x<3;x++)
arTemp[x]=(arTemp[x]<10)?"0"+parseInt(arTemp[x],10):arTemp[x];sVal=arTemp.join("/");}
if(sVal.length!=6&&sVal.length!=8&&sVal.length!=10||(sVal.indexOf("/")==1||sVal.indexOf("/")==3)){bFlag=false;}
else if(sVal.length<10){if(sVal.indexOf("/")<0){sDate=sVal.substring(0,2)+"/"+sVal.substring(2,4)+"/"+sVal.substring(4);}
else{sDate=sVal;}}
else{sDate=sVal;}
sY=sDate.substring(6);if(sY.length==2){sY=(parseInt(sY,10)>parseInt(new Date().getFullYear().toString().substring(2),10)+1)?"19"+sY:"20"+sY;}
sDate=sDate.substring(0,6)+sY;if(!isDate(sDate)){bFlag=false;}
if(!bFlag)return false;else{dDate=new Date(sDate);iM=dDate.getMonth()+1;iD=dDate.getDate();iY=dDate.getFullYear();return((iM>9)?iM:"0"+iM)+"/"+((iD>9)?iD:"0"+iD)+"/"+iY;}}
function isSelected(oSel,bFirstOk){var x=bFirstOk?-1:0;return(oSel.selectedIndex!=x);}
function getDebugWin(){if(!document.getElementById("jvalDebugger")){var div=document.createElement("div");div.setAttribute("style","clear:both;");var ta=document.createElement("textarea");ta.setAttribute("id","jvalDebugger");ta.style.width="100%";ta.style.height="35em";div.appendChild(ta);document.body.appendChild(div);}}
function debug(s){if(self.debuggerOn){getDebugWin();document.getElementById("jvalDebugger").value+=s+"\n";}}
