function _FC(){var H=new n(),l=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31),x="",h=true;this.form=v;this.isDate=o;this.dateCompare=g;this.isEmail=D;this.fileType=f;this.isNumber=I;this.isMilitaryTime=m;this.isPasswordConfirmed=A;this.isNotXSS=E;this.isPopulated=L;this.isPopulatedDepending=s;this.isInRange=t;this.addErr=k;this.markField=p;this.unMarkField=B;this.initErrorObj=r;this.setThrowError=j;function v(O){if((arguments.length<2)||((arguments.length==2)&&(arguments[1]!="noInit"))){r()}x="";var P="",N=new Object(),M=0;for(M=0;M<O.elements.length;M++){if(N[O.elements[M].name]){continue}N[O.elements[M].name]=1;w(O.elements[M]);B(O.elements[M]);P=O.elements[M].getAttribute("validation");if((P!=null)&&(P.length>0)){q(O,O.elements[M],P)}}if(H.hasErrors){J();return false}return true}function o(P){h=(arguments.length==2)?arguments[1]:true;var Q=P.value.split("/");if((Q.length!=3)||(isNaN(Q[0])||isNaN(Q[1])||isNaN(Q[2]))||((Q[2].length!=2)&&(Q[2].length!=4)&&((Q[2]*1)>0))){k(P,"{} contains an invalid date format. Please use mm/dd/yy format.");return false}var O=(Q[0]*1),M=(Q[1]*1),N=G(Q[2]);if((O<1)||(O>12)||(M<1)||(M>e(O,N))){k(P,"{} contains an invalid date.");return false}return true}function g(N,O,M){h=(arguments.length==4)?arguments[3]:true;var P=y(N,M);if(P.success=false){return true}if(O.toUpperCase()=="DG"){if(P.date1<P.date2){k(N,"{} must be greater than or equal to "+F(M));return false}}else{if(P.date1>P.date2){k(N,"{} must be less than or equal to "+F(M));return false}}return true}function D(N){var P=N.value;h=(arguments.length==2)?arguments[1]:true;if((P.indexOf(" ")>-1)||(P.indexOf(",")>-1)||(P.indexOf("@")==-1)||(P.indexOf(".")==-1)){k(N,oMessages.invalidEmail);return false}var O=P.indexOf("@"),Q=P.split("@"),M=P.indexOf(".",O);if((O==0)||(Q.length>2)||((M==-1)||(M==P.length-1))||(O+1==M)||(P.charAt(P.length-1)==".")){k(N,oMessages.invalidEmail);return false}return true}function f(N,P){var O=N.value;h=(arguments.length==3)?arguments[2]:true;P=P.toLowerCase();var M=O.substring(O.length-3,O.length);M=M.toLowerCase();if(M!=P){k(N,oMessages.invalidFileType,P);return false}return true}function I(N,M){h=(arguments.length==3)?arguments[2]:true;if(isNaN(N.value)){k(N,oMessages.validNumber);return false}if(M.toUpperCase()=="I"){if((N.value.indexOf(".")>-1)||(N.value.indexOf(",")>-1)){k(N,oMessages.integerNumber);return false}}return true}function m(O){var P=C(O.value,4);h=(arguments.length==2)?arguments[1]:true;if(isNaN(P)||(P.length>4)){k(O,oMessages.invalidTime);return false}var M=(P.substring(0,2)*1),N=(P.substring(2,4)*1);if((M<0)||(M>23)||(N<0)||(N>59)){k(O,oMessages.invalidTime);return false}return true}function A(O,M){h=(arguments.length==2)?arguments[1]:true;var N=/^.*(?=.{6,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$/;if(!O.value.match(N)){k(O,oMessages.passwordRules);return false}if(O.value!=M.value){k(O,oMessages.passwordMismatch);return false}return true}function E(M){h=(arguments.length==2)?arguments[1]:true;var N=new RegExp("[^0-9a-zA-Z-,.' ]");if(M.value.match(N)){k(M,"{} cannot include special characters. Only A-Z, 0-9, dashes, periods, commas, single-quotes, and spaces.");return false}else{return true}}function L(P){var Q=0;h=(arguments.length==2)?arguments[1]:true;switch(P.type.split("-")[0]){case"file":case"hidden":case"password":case"text":case"textarea":if(a(P.value)==""){k(P,oMessages.requiredField);return false}else{return true}break;case"select":for(var M=0;M<P.options.length;M++){if(P.options[M].selected&&(P.options[M].value!="")){Q=1;break}}if(!Q){k(P,oMessages.requiredField);return false}else{return true}break;case"checkbox":case"radio":var N=document.getElementsByName(P.name);for(var O=0;O<N.length;O++){if(N[O].checked){Q=1;break}}if(!Q){k(P,oMessages.requiredField);return false}else{return true}}return true}function s(M,O){h=(arguments.length==3)?arguments[2]:true;var N=L(O,1),P=L(M,1);if((N)&&(!P)){k(M,oMessages.requiredField);return false}return true}function t(O,P,M,N){h=(arguments.length==5)?arguments[4]:true;P=P.toUpperCase();var Q=(P=="V")?O.value:O.value.length;if(((Q*1)<(M*1))||((Q*1)>(N*1))){if(P=="V"){k(O,oMessages.valueRange,M,N)}else{k(O,oMessages.lengthRange,M,N)}return false}return true}function r(){H=new n()}function k(O,M){if(!h){return}H.hasErrors=true;if(arguments.length==3){x=arguments[2]}if(O!=""){if(H.firstErrField==""){H.firstErrField=O}if(!H.fieldsToMark[x]){H.fieldsToMark[x]=O}}M=M.replace(/{}/,x);if(arguments.length>2){for(var N=2;N<arguments.length;N++){M=M.replace(/{}/,arguments[N])}}if(H.errors[x]){H.errors[x]+="* "+M+"\n"}else{H.errors[x]="* "+M+"\n"}}function p(M){d(M,"#FFDFDF")}function B(M){if((M.type!="button")&&(M.type!="submit")){d(M,"#FFFFFF")}}function q(R,O,S){var T=false,P=S.split(":"),N=a(P[1]).split("_"),U="",M=0;x=a(P[0]);for(M=0;M<N.length;M++){U=N[M].toUpperCase();if(((U!="R")&&(U!="RD"))&&(O.value=="")){continue}switch(N[M].toUpperCase()){case"D":o(O);break;case"DG":case"DL":g(O,N[M],N[++M]);break;case"E":D(O);break;case"FT":f(O,N[++M]);break;case"I":case"N":I(O,N[M]);break;case"L":case"V":var Q=b(N,M);if(Q.success==true){t(O,N[M],Q.minVal,Q.maxVal);M+=2}else{T=true}break;case"P":A(O,R[O.name+"1"]);break;case"R":L(O);break;case"RD":s(O,R[N[++M]]);break;case"T":m(O);break;case"X":E(O);break}if(T){break}}}function i(){this.minVal=0;this.maxVal=0;this.success=false}function b(M,P){var N=new i();if((M.length>=(P+3))&&(!isNaN(M[P+1])||!isNaN(M[P+2]))){N.minVal=M[P+1];N.maxVal=M[P+2];N.success=true}else{alert("Error: Field "+x+" contains a range checking tag error. Range checking requires a MIN and MAX value. Please notify the System Administrator.");N.success=false}return N}function F(M){return(M.toUpperCase()=="TODAY")?"todays date.":"the date in "+M}function c(){this.date1="";this.date2="";this.success=false}function y(O,M){var Q=new c(),N="",P=0;if((O.value!="")&&o(O)){N="";P=O.value.split("/");Q.date1=z(P[0],P[1],G(P[2]));if(M.toUpperCase()=="TODAY"){N=new Date();Q.date2=z((N.getMonth()+1),N.getDate(),N.getFullYear())}else{if(document.getElementsByName(M)){N=document.getElementsByName(M);if((N[0].value!="")&&o(N[0])){P=N[0].value.split("/");Q.date2=z(P[0],P[1],G(P[2]))}}}}if((Q.date1!="")&&(Q.date2!="")){Q.success=true}return Q}function u(){for(var M in H.fieldsToMark){d(H.fieldsToMark[M],"#FFDFDF")}}function d(O,M){try{O.style.backgroundColor=M}catch(N){}}function w(M){switch(M.type){case"password":case"text":case"textarea":M.value=a(M.value);break;default:}}function a(M){return M.replace(/^\s+/g,"").replace(/\s+$/g,"")}function J(){u();if(H.firstErrField!=""){try{H.firstErrField.focus()}catch(M){}}alert(oMessages.frmErrorMsg+"\n"+K())}function K(){var N=new Array(),Q=0,O=0,R=false,P=0,M=0;for(P in H.errors){M=H.errors[P].split("\n");for(Q=0;Q<M.length;Q++){if(M[Q].length==0){continue}R=false;for(O=0;O<N.length;O++){if(M[Q]==N[O]){R=true;break}}if((!R)&&(M[Q].length>0)){N[N.length]=M[Q]}}}return N.join("\n")}function C(O,M){O=""+O;for(var N=O.length;N<M;N++){O="0"+O}return O}function e(O,N){var M=l[O];if((O==2)&&(((N%4)==0)&&((N%100)==0)||((N%400)==0))){M++}return M}function z(O,M,N){return N+""+C(O,2)+""+C(M,2)}function G(O){var N=(O*1),M=C(O,2);if(M.length==2){N=(((N<35)?"20":"19")+""+M)*1}return N}function n(){this.hasErrors=false;this.firstErrField="";this.errors=new Object();this.fieldsToMark=new Object()}function j(M){h=M}}var oValidate=new _FC();