if(wFORMS){wFORMS.preventSubmissionOnEnter=false;wFORMS.showAlertOnError=true;wFORMS.className_required="required";wFORMS.className_validationError_msg="errMsg";wFORMS.className_validationError_fld="errFld";wFORMS.classNamePrefix_validation="validate";wFORMS.idSuffix_fieldError="-E";wFORMS.behaviors.validation={errMsg_required:"This field is required. ",errMsg_alpha:"The text must use alphabetic characters only (a-z, A-Z). Numbers are not allowed.",errMsg_email:"This does not appear to be a valid email address.",errMsg_integer:"Please enter an integer.",errMsg_float:"Please enter a number (ex. 1.9).",errMsg_password:"Unsafe password. Your password should be between 4 and 12 characters long and use a combinaison of upper-case and lower-case letters.",errMsg_alphanum:"Please use alpha-numeric characters only [a-z 0-9].",errMsg_date:"This does not appear to be a valid date.",errMsg_notification:"%% error(s) detected. Your form has not been submitted yet.\nPlease check the information you provided.",errMsg_custom:"Please enter a valid value.",className_allRequired:"allrequired",jumpToErrorOnPage:null,currentPageIndex:-1,evaluate:function(node){if(node.tagName.toUpperCase()=="FORM"){if(wFORMS.functionName_formValidation.toString()==wFORMS.functionName_formValidation){wFORMS.functionName_formValidation=eval(wFORMS.functionName_formValidation)}wFORMS.helpers.addEvent(node,"submit",wFORMS.functionName_formValidation)}},init:function(){},run:function(h){var d=wFORMS.helpers.getSourceElement(h);if(!d){d=document.getElementById(h)}var g=arguments[1]?arguments[1]:(wFORMS.hasBehavior("paging")&&wFORMS.behaviors.paging.behaviorInUse);wFORMS.behaviors.validation.jumpToErrorOnPage=null;if(wFORMS.preventSubmissionOnEnter){if(d.type&&d.type.toLowerCase()=="text"){return wFORMS.preventEvent(h)}}while(d&&d.tagName.toUpperCase()!="FORM"){d=d.parentNode}var a=0;var k=["input","div","select","TEXTAREA"];for(var c=0;c<k.length;c++){var f=$("form "+k[c]);for(var b=0;b<f.length;b++){a+=wFORMS.behaviors.validation.validateElement(f[b],g,true)}}wFORMS.behaviors.validation.errorCount=a;if(a>0){if(wFORMS.behaviors.validation.jumpToErrorOnPage){wFORMS.behaviors.paging.gotoPage(wFORMS.behaviors.validation.jumpToErrorOnPage)}if(wFORMS.showAlertOnError){wFORMS.behaviors.validation.showAlert(a)}return wFORMS.helpers.preventEvent(h)}return true},remove:function(){},validateElement:function(element){var deep=arguments[2]?arguments[2]:true;var currentPageOnly=arguments[1]?arguments[1]:false;var wBehavior=wFORMS.behaviors.validation;if(wFORMS.hasBehavior("switch")&&wFORMS.helpers.hasClassPrefix(element,wFORMS.classNamePrefix_offState)){return 0}if(wFORMS.hasBehavior("paging")&&wFORMS.helpers.hasClass(element,wFORMS.className_paging)){if(!wFORMS.helpers.hasClass(element,wFORMS.className_pagingCurrent)&&currentPageOnly){return 0}wBehavior.currentPageIndex=wFORMS.behaviors.paging.getPageIndex(element)}var nbErrors=0;if(!wBehavior.checkRequired(element)){wBehavior.showError(element,wBehavior.errMsg_required);nbErrors++}else{if(wFORMS.helpers.hasClassPrefix(element,wFORMS.classNamePrefix_validation)){var arrClasses=element.className.split(" ");for(j=0;j<arrClasses.length;j++){switch(arrClasses[j]){case"validate-alpha":if(!wBehavior.isAlpha(element.value)){wBehavior.showError(element,wBehavior.errMsg_alpha);nbErrors++}break;case"validate-alphanum":if(!wBehavior.isAlphaNum(element.value)){wBehavior.showError(element,wBehavior.errMsg_alphanum);nbErrors++}break;case"validate-date":if(!wBehavior.isDate(element.value)){wBehavior.showError(element,wBehavior.errMsg_date);nbErrors++}break;case"validate-time":break;case"validate-email":if(!wBehavior.isEmail(element.value)){wBehavior.showError(element,wBehavior.errMsg_email);nbErrors++}break;case"validate-integer":if(!wBehavior.isInteger(element.value)){wBehavior.showError(element,wBehavior.errMsg_integer);nbErrors++}break;case"validate-float":if(!wBehavior.isFloat(element.value)){wBehavior.showError(element,wBehavior.errMsg_float);nbErrors++}break;case"validate-strongpassword":if(!wBehavior.isPassword(element.value)){wBehavior.showError(element,wBehavior.errMsg_password);nbErrors++}break;case"validate-custom":var pattern=new RegExp("/([^/]*)/([gi]*)");var matches=element.className.match(pattern);if(matches[0]){var validationPattern=new RegExp(matches[1],matches[2]);if(!element.value.match(validationPattern)){wBehavior.showError(element,wBehavior.errMsg_custom);nbErrors++}}break;case"validate-ext":var aux=eval(arrClasses[j+1]+"(element)");if(!aux[0]){wBehavior.showError(element,aux[1]);nbErrors++}break}}}}if(nbErrors==0){wBehavior.removeErrorMessage(element)}else{if(wBehavior.currentPageIndex>0&&!wBehavior.jumpToErrorOnPage){wBehavior.jumpToErrorOnPage=wBehavior.currentPageIndex}}if(deep){for(var i=0;i<element.childNodes.length;i++){if(element.childNodes[i].nodeType==1){nbErrors+=wBehavior.validateElement(element.childNodes[i],currentPageOnly,deep)}}}return nbErrors},checkRequired:function(b){var a=wFORMS.behaviors.validation;if(wFORMS.helpers.hasClass(b,wFORMS.className_required)){switch(b.tagName.toUpperCase()){case"INPUT":var c=b.getAttribute("type");if(!c){c="text"}switch(c.toLowerCase()){case"checkbox":return b.checked;break;case"radio":return b.checked;break;default:return !a.isEmpty(b.value)}break;case"SELECT-ONE":case"SELECT":return !a.isEmpty(b.options[b.selectedIndex].value);break;case"TEXTAREA":return !a.isEmpty(b.value);break;default:return a.checkOneRequired(b);break}}else{if(wFORMS.helpers.hasClass(b,a.className_allRequired)){return a.checkAllRequired(b)}}return true},checkOneRequired:function(d){if(d.nodeType!=1){return false}var c=d.tagName.toUpperCase();var a=wFORMS.behaviors.validation;if(c=="INPUT"||c=="SELECT"||c=="TEXTAREA"){var e=a.getFieldValue(d);if(!a.isEmpty(e)){return true}}for(var b=0;b<d.childNodes.length;b++){if(a.checkOneRequired(d.childNodes[b])){return true}}return false},checkAllRequired:function(d){if(d.nodeType!=1){return true}var c=d.tagName.toUpperCase();var a=wFORMS.behaviors.validation;if(c=="INPUT"||c=="SELECT"||c=="TEXTAREA"){var e=a.getFieldValue(d);if(a.isEmpty(e)){return false}}for(var b=0;b<d.childNodes.length;b++){if(!a.checkAllRequired(d.childNodes[b])){return false}}return true},getFieldValue:function(c){var e=null;if(c&&c.tagName){if(c.tagName.toUpperCase()=="INPUT"){var d=c.getAttribute("type");if(!d){d="text"}switch(d.toLowerCase()){case"checkbox":e=c.checked?c.value:null;break;case"radio":var a=c.form[c.name];for(var b=0;b<a.length;b++){if(a[b].checked){e=a[b].value}}break;default:e=c.value}}else{if(c.tagName.toUpperCase()=="SELECT"){e=c.options[c.selectedIndex].value}else{if(c.tagName.toUpperCase()=="TEXTAREA"){e=c.value}}}}return e},isEmpty:function(a){var b=/^\s+$/;return((a==null)||(a.length==0)||b.test(a))},isAlpha:function(a){var b=/^[a-zA-Z\s]+$/;return wFORMS.behaviors.validation.isEmpty(a)||b.test(a)},isAlphaNum:function(b){var a=/^[\w\s]+$/;return wFORMS.behaviors.validation.isEmpty(b)||a.test(b)},isDate:function(b){var a=new Date(b);return wFORMS.behaviors.validation.isEmpty(b)||!isNaN(a)},isEmail:function(a){var b=/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/;return wFORMS.behaviors.validation.isEmpty(a)||b.test(a)},isInteger:function(a){var b=/^[+]?\d+$/;return wFORMS.behaviors.validation.isEmpty(a)||b.test(a)},isFloat:function(a){return wFORMS.behaviors.validation.isEmpty(a)||!isNaN(parseFloat(a))},isPassword:function(a){return wFORMS.behaviors.validation.isEmpty(a)},showError:function(c,d){if(wFORMS.helpers.hasClass(c,wFORMS.className_validationError_fld)){wFORMS.behaviors.validation.removeErrorMessage(c)}if(!c.id){c.id=wFORMS.helpers.randomId()}c.className+=" "+wFORMS.className_validationError_fld;var a=document.createTextNode(" "+d);var b=document.getElementById(c.id+wFORMS.idSuffix_fieldError);if(!b){b=document.createElement("div");b.setAttribute("id",c.id+wFORMS.idSuffix_fieldError);var e=document.getElementById(c.id+wFORMS.idSuffix_fieldLabel);if(e){e.parentNode.insertBefore(b,e.nextSibling)}else{c.parentNode.insertBefore(b,c.nextSibling)}}b.appendChild(a);b.className+=" "+wFORMS.className_validationError_msg},showAlert:function(a){alert(wFORMS.behaviors.validation.errMsg_notification.replace("%%",a))},removeErrorMessage:function(b){var c=new RegExp(wFORMS.className_validationError_fld,"gi");b.className=b.className.replace(c,"");var a=document.getElementById(b.id+wFORMS.idSuffix_fieldError);if(a){a.innerHTML=""}}};wFORMS.functionName_formValidation=wFORMS.behaviors.validation.run;wFORMS.formValidation=wFORMS.behaviors.validation.run;wFORMS.arrErrorMsg=new Array();wFORMS.arrErrorMsg[0]=wFORMS.behaviors.validation.errMsg_required;wFORMS.arrErrorMsg[1]=wFORMS.behaviors.validation.errMsg_alpha;wFORMS.arrErrorMsg[2]=wFORMS.behaviors.validation.errMsg_email;wFORMS.arrErrorMsg[3]=wFORMS.behaviors.validation.errMsg_integer;wFORMS.arrErrorMsg[4]=wFORMS.behaviors.validation.errMsg_float;wFORMS.arrErrorMsg[5]=wFORMS.behaviors.validation.errMsg_password;wFORMS.arrErrorMsg[6]=wFORMS.behaviors.validation.errMsg_alphanum;wFORMS.arrErrorMsg[7]=wFORMS.behaviors.validation.errMsg_date;wFORMS.arrErrorMsg[8]=wFORMS.behaviors.validation.errMsg_notification};