(function(A){A(document).bind("initTrule",function(){var B=A.fn.trule.validators,D=B.rules;A.fn.trule.validators=A.extend(A.fn.trule.validators,{cpf:function(E){E=E.replace(/[.-]/g,"");var G;var I=E.substr(0,9);var F=E.substr(9,2);var H=0;for(G=0;G<9;G++){H+=I.charAt(G)*(10-G)}if(H==0){return false}H=11-(H%11);if(H>9){H=0}if(F.charAt(0)!=H){return false}H*=2;for(G=0;G<9;G++){H+=I.charAt(G)*(11-G)}H=11-(H%11);if(H>9){H=0}if(F.charAt(1)!=H){return false}return true},cnpj:function(H){H+="";H=H.replace(/[.\/-]/g,"");H=(H.length>14?H.substr(1,H.length):H);var F;var I=H.substr(0,12);var E=H.substr(12,2);var G=0;for(F=0;F<12;F++){G+=I.charAt(11-F)*(2+(F%8))}if(G==0){return false}G=11-(G%11);if(G>9){G=0}if(E.charAt(0)!=G){return false}G*=2;for(F=0;F<12;F++){G+=I.charAt(11-F)*(2+((F+1)%8))}G=11-(G%11);if(G>9){G=0}if(E.charAt(1)!=G){return false}return true},creditcard:function(H){if(/[^0-9-]+/.test(H)){return false}var I=0,G=0,E=false;H=H.replace(/\D/g,"");for(n=H.length-1;n>=0;n--){var F=H.charAt(n);var G=parseInt(F,10);if(E){if((G*=2)>9){G-=9}}I+=G;E=!E}return(I%10)==0}});var C=A("input:not(:submit, :reset, :button, :image), select, textarea");D.validateRequired={name:"validateRequired",event:"submit",rule:function(E){if(B.required(A(this).val())){E.firesSuccess()}else{return E.firesError("required",{fieldname:E.showAs})}}};C.filter(".validateRequired").trule().addRule(D.validateRequired);D.validateNumeric={name:"validateNumeric",event:"submit",rule:function(E){if(B.numeric(A(this).val())){E.firesSuccess()}else{return E.firesError("numeric",{fieldname:E.showAs})}},preventChars:B.sets.alpha+B.sets.special,noCaps:true};C.filter(".validateNumeric").trule().addRule(D.validateNumeric);D.validateAlpha={name:"validateAlpha",event:"submit",rule:function(F){var E=this.getAttribute("special")||true;E=E!="false";if(E){if(B.alphaLatin(A(this).val())){F.firesSuccess()}else{return F.firesError("alpha",{fieldname:F.showAs})}}else{if(B.alpha(A(this).val())){F.firesSuccess()}else{return F.firesError("alpha",{fieldname:F.showAs})}}},preventChars:B.sets.numeric+B.sets.special,allowChars:" "};C.filter(".validateAlpha").trule().addRule(D.validateAlpha);D.validateAlphanumeric={name:"validateAlphanumeric",event:"submit",rule:function(F){var E=this.getAttribute("special")||true;E=E!="false";if(E){if(B.alphanumericLatin(A(this).val())){F.firesSuccess()}else{return F.firesError("alphanumeric",{fieldname:F.showAs})}}else{if(B.alphanumeric(A(this).val())){F.firesSuccess()}else{return F.firesError("alphanumeric",{fieldname:F.showAs})}}},preventChars:B.sets.special,allowChars:" "};C.filter(".validateAlphanumeric").trule().addRule(D.validateAlphanumeric);D.validateUpperCase={name:"validateUpperCase",event:"submit",rule:function(E){this.value=this.value.toUpperCase()},allCaps:true};C.filter(".validateUpperCase").trule().addRule(D.validateUpperCase);D.validateLowerCase={name:"validateLowerCase",event:"submit",rule:function(E){this.value=this.value.toLowerCase()},noCaps:true};C.filter(".validateLowerCase").trule().addRule(D.validateLowerCase);D.validateMaxlength={name:"validateMaxlength",event:"submit",rule:function(F){var G=A(this),E=G.attr("maxlength");if(!E){return F.firesSuccess()}if(B.maxlength(G.val(),E)){return F.firesSuccess()}else{return F.firesError("maxlength",{fieldname:F.showAs,maxlength:E})}}};C.filter(".validateMaxlength").trule().addRule(D.validateMaxlength);D.validateMinlength={name:"validateMinlength",event:"submit",rule:function(F){var G=A(this),E=G.attr("minlength");if(!E){return F.firesSuccess()}if(B.minlength(G.val(),E)){return F.firesSuccess()}else{return F.firesError("minlength",{fieldname:F.showAs,minlength:E})}}};C.filter(".validateMinlength").trule().addRule(D.validateMinlength);D.validateMax={name:"validateMax",event:"submit",rule:function(F){var H=A(this),G=H.val(),E=H.attr("max");if(G===""||typeof E==="undefined"||isNaN(E)||E==""){return F.firesSuccess()}if(parseFloat(G,10)<=parseFloat(E,10)){return F.firesSuccess()}else{return F.firesError("max",{fieldname:F.showAs,max:E})}}};C.filter(".validateMax").trule().addRule(D.validateMax);D.validateMin={name:"validateMin",event:"submit",rule:function(F){var H=A(this),G=H.val(),E=H.attr("min");if(G===""||typeof E==="undefined"||isNaN(E)||E==""){return F.firesSuccess()}if(parseFloat(G,10)>=parseFloat(E,10)){return F.firesSuccess()}else{return F.firesError("min",{fieldname:F.showAs,min:E})}}};C.filter(".validateMin").trule().addRule(D.validateMin);D.validateDateUS={name:"validateDateUS",event:"submit",rule:function(E){var P=A(this),N=P.attr("operator"),I=P.attr("target"),L,J,O;E.firesSuccess();if(P.val().replace(/[_\/]/g,"")!=""){if(B.date(P.val(),"%m/%d/%Y")){if(N&&I){L=A(I);J=L.val();if(L.size()>0){O=L.trule().getShowAs();if(A.trim(J)!=""&&B.date(J,"%m/%d/%Y")){var H=new Date(B.f.dateformat(P.val(),"%m/%d/%Y",true)).valueOf(),F=new Date(B.f.dateformat(J,"%m/%d/%Y",true)).valueOf();if(B.compare(H,N,F)){E.firesSuccess()}else{var G=A.fn.trule.globalOptions.simbolLib,K=(function(){for(k in G){if(G[k]==N){return k}}})(),M=E.getMessage(K)||N;return E.firesError("dateCompare",{fieldname:E.showAs,operator:M,fieldnameCompare:O})}}}else{return E.firesError("notExists",{fieldname:I})}}}else{return E.firesError("date",{fieldname:E.showAs,format:"mm/dd/aaaa"})}}},mask:"99/99/9999"};C.filter(".validateDateUS").trule().addRule(D.validateDateUS);D.validateHora={name:"validateHora",event:"submit",rule:function(E){var O=A(this);value=O.val(),op=O.attr("operator"),tg=O.attr("target"),hour=parseInt(value.split(":")[0],10),minute=value.split(":")[1];E.firesSuccess();if(hour<0||hour>23){return E.firesError("time",{fieldname:E.showAs})}else{if(parseInt(minute,10)<0||parseInt(minute,10)>59){return E.firesError("time",{fieldname:E.showAs})}}if(op&&tg){var I=A(tg);if(I.size()===0){return E.firesError("notExists",{fieldname:tg})}var P=A(tg).trule(),H=I.val(),N=P.getShowAs(),J=true,M=parseInt(value.toString().replace(":",""),10),G=parseInt(H.toString().replace(":",""),10);hour=parseInt(H.split(":")[0],10);minute=parseInt(H.split(":")[1],10);if(hour<0||hour>23){J=false}else{if(parseInt(minute,10)<0||parseInt(minute,10)>59){J=false}}if(J===true){if(B.compare(M,op,G)){E.firesSuccess()}else{var F=A.fn.trule.globalOptions.simbolLib,K=(function(){for(k in F){if(F[k]==op){return k}}})(),L=E.getMessage(K)||op;return E.firesError("timeCompare",{fieldname:E.showAs,operator:L,fieldnameCompare:N})}}else{return E.firesError("time",{fieldname:N})}}},mask:"99:99"};C.filter(".validateHora").trule().addRule(D.validateHora);D.validatePassword={name:"validatePassword",event:"submit",rule:function(G){var J=A(this),I=J.attr("target"),F,H,E;if(B.minlength(J.val())){G.firesSuccess()}else{return G.firesError("minlength",{fieldname:G.showAs,minlength:6})}if(I){F=A(I);if(F.size()>0){E=F.trule().getShowAs();if(J.val()==F.val()){G.firesSuccess()}else{var K=G.getMessage("equal");return G.firesError("valueCompare",{fieldname:G.showAs,operator:K,fieldnameCompare:E})}}else{return G.firesError("notExists",{fieldname:I})}}}};C.filter(".validatePassword").trule().addRule(D.validatePassword);D.validateTelefone={name:"validateTelefone",event:"submit",rule:function(E){var F=A(this).val().replace(/[.\/_-]/g,"");if(B.numeric(F)){E.firesSuccess()}else{return E.firesError("numeric",{fieldname:E.showAs})}if(B.minlength(F,8)&&B.maxlength(F,8)){E.firesSuccess()}else{return E.firesError("length",{fieldname:E.showAs,length:8})}},mask:"9999-9999"};C.filter(".validateTelefone").trule().addRule(D.validateTelefone);D.validatePhone={name:"validatePhone",event:"submit",rule:function(E){var F=A(this).val().replace(/[(-)\s]/g,"");if(B.numeric(F)){E.firesSuccess()}else{return E.firesError("numeric",{fieldname:E.showAs})}if(B.minlength(F,5)&&B.maxlength(F,5)){E.firesSuccess()}else{return E.firesError("length",{fieldname:E.showAs,length:5})}},preventChars:B.sets.alpha,allowChars:"() -"};C.filter(".validatePhone").trule().addRule(D.validatePhone);D.validateCreditcard={name:"validateCreditcard",event:"submit",rule:function(E){var F=A(this).val().replace(/[.\/_-]/g,"");if(B.numeric(F)){E.firesSuccess()}else{return E.firesError("numeric",{fieldname:E.showAs})}if(B.creditcard(F)){E.firesSuccess()}else{return E.firesError("creditcard",{fieldname:E.showAs})}},mask:"9999-9999-9999-9999"};C.filter(".validateCreditcard").trule().addRule(D.validateCreditcard);D.validateFileExtension={name:"validateFileExtension",event:"submit",rule:function(F){var E=A(this).attr("acceptExtensions");if(!E){return F.firesSuccess()}if(B.fileExtension(A(this).val(),E)){F.firesSuccess()}else{return F.firesError("fileExtension",{fieldname:F.showAs})}}};C.filter(".validateFileExtension").trule().addRule(D.validateFileExtension);D.validateEmail={name:"validateEmail",event:"submit",rule:function(E){if(B.email(A(this).val())){E.firesSuccess()}else{return E.firesError("email",{fieldname:E.showAs})}}};C.filter(".validateEmail").trule().addRule(D.validateEmail);D.validateCompare={name:"validateCompare",event:"submit",rule:function(E){var N=A(this),L=N.attr("operator"),G=N.attr("target"),J,H,M;if(L&&G){J=A(G);H=J.val();if(J.size()>0){M=J.trule().getShowAs();if(B.compare(N.val(),L,H)){E.firesSuccess()}else{var F=A.fn.trule.globalOptions.simbolLib,I=(function(){for(k in F){if(F[k]==L){return k}}})(),K=E.getMessage(I)||L;return E.firesError("valueCompare",{fieldname:E.showAs,operator:K,fieldnameCompare:M})}}else{return E.firesError("notExists",{fieldname:G})}}}};C.filter(".validateCompare").trule().addRule(D.validateCompare);D.validateDependency={name:"validateDependency",event:"submit",rule:function(I){var J=A(this),E=false,G=J.attr("target"),F=(typeof G==="string"?A(G):null),H=true;if(J.is(":radio")||J.is(":checkbox")){if(J.attr("checked")){E=true}}else{if(B.required(J.val())){E=true}}if(F!==null&&F.size()>0){F.each(function(){var L=A(this).trule(),M=D.validateRequired;M.temporarilyRuled=true;if(E){if(L.getRule("validateRequired")===null){L.addRule(M)}if(L.validate(false,"validateRequired")===false&&H!==false){H=false}}else{var K=L.getRule("validateRequired");if(K&&K.temporarilyRuled===true){L.delRule("validateRequired")}}})}return H}};C.filter(".validateDependency").trule().addRule(D.validateDependency);D.validateDDD={name:"validateDDD",event:"submit",rule:function(G){var I=A(this),H=I.val().replace(/[.\/_-]/g,""),E=I.attr("linkedTo"),F=A(E);if(E&&F.size()>0&&F.trule().validate()){if(A.trim(F.val())!=""){if(B.required(H)){G.firesSuccess()}else{return G.firesError("required",{fieldname:G.showAs})}}else{G.firesSuccess()}if(B.minlength(H,2)&&B.maxlength(H,2)){G.firesSuccess()}else{return G.firesError("length",{fieldname:G.showAs,length:2})}if(B.numeric(H)){G.firesSuccess()}else{return G.firesError("numeric",{fieldname:G.showAs})}}else{G.firesSuccess()}},mask:"99"};C.filter(".validateDDD").trule().addRule(D.validateDDD);D.validateDateBR={name:"validateDateBR",event:"submit",rule:function(E){var P=A(this),N=P.attr("operator"),I=P.attr("target"),L,J,O;E.firesSuccess();if(P.val().replace(/[_\/]/g,"")!=""){if(B.date(P.val(),"%d/%m/%Y")){if(N&&I){L=A(I);J=L.val();if(L.size()>0){O=L.trule().getShowAs();if(A.trim(J)!=""&&B.date(J,"%d/%m/%Y")){var H=new Date(B.f.dateformat(P.val(),"%d/%m/%Y",true)).valueOf(),F=new Date(B.f.dateformat(J,"%d/%m/%Y",true)).valueOf();if(B.compare(H,N,F)){E.firesSuccess()}else{var G=A.fn.trule.globalOptions.simbolLib,K=(function(){for(k in G){if(G[k]==N){return k}}})(),M=E.getMessage(K)||N;return E.firesError("dateCompare",{fieldname:E.showAs,operator:M,fieldnameCompare:O})}}}else{return E.firesError("notExists",{fieldname:I})}}}else{return E.firesError("date",{fieldname:E.showAs,format:"dd/mm/aaaa"})}}},mask:"99/99/9999"};C.filter(".validateDateBR").trule().addRule(D.validateDateBR);D.validateDateMonth1={name:"validateDateMonth1",event:"submit",rule:function(E){var P=A(this),N=P.attr("operator"),I=P.attr("target"),L,J,O;E.firesSuccess();if(P.val().replace(/[_\/]/g,"")!=""){if(B.date(P.val(),"%m/%y")){if(N&&I){L=A(I);J=L.val();if(L.size()>0){O=L.trule().getShowAs();if(A.trim(J)!=""&&B.date(J,"%m/%y")){var H=new Date(B.f.dateformat(P.val(),"%m/%y",true)).valueOf(),F=new Date(B.f.dateformat(J,"%m/%y",true)).valueOf();if(B.compare(H,N,F)){E.firesSuccess()}else{var G=A.fn.trule.globalOptions.simbolLib,K=(function(){for(k in G){if(G[k]==N){return k}}})(),M=E.getMessage(K)||N;return E.firesError("dateCompare",{fieldname:E.showAs,operator:M,fieldnameCompare:O})}}}else{return E.firesError("notExists",{fieldname:I})}}}else{return E.firesError("date",{fieldname:E.showAs,format:"mm/aa"})}}},mask:"99/99"};C.filter(".validateDateMonth1").trule().addRule(D.validateDateMonth1);D.validateDateMonth2={name:"validateDateMonth2",event:"submit",rule:function(E){var P=A(this),N=P.attr("operator"),I=P.attr("target"),L,J,O;E.firesSuccess();if(P.val().replace(/[_\/]/g,"")!=""){if(B.date(P.val(),"%m/%Y")){if(N&&I){L=A(I);J=L.val();if(L.size()>0){O=L.trule().getShowAs();if(A.trim(J)!=""&&B.date(J,"%m/%Y")){var H=new Date(B.f.dateformat(P.val(),"%m/%Y",true)).valueOf(),F=new Date(B.f.dateformat(J,"%m/%Y",true)).valueOf();if(B.compare(H,N,F)){E.firesSuccess()}else{var G=A.fn.trule.globalOptions.simbolLib,K=(function(){for(k in G){if(G[k]==N){return k}}})(),M=E.getMessage(K)||N;return E.firesError("dateCompare",{fieldname:E.showAs,operator:M,fieldnameCompare:O})}}}else{return E.firesError("notExists",{fieldname:I})}}}else{return E.firesError("date",{fieldname:E.showAs,format:"mm/aaaa"})}}},mask:"99/9999"};C.filter(".validateDateMonth2").trule().addRule(D.validateDateMonth2);D.validateCPF={name:"validateCPF",event:"submit",rule:function(E){var F=A(this).val().replace(/[.\/_-]/g,"");if(B.numeric(F)){E.firesSuccess();if(F!=""&&!B.cpf(F)){return E.firesError("cpf",{fieldname:E.showAs})}}else{return E.firesError("numeric",{fieldname:E.showAs})}},mask:"999.999.999-99"};C.filter(".validateCPF").trule().addRule(D.validateCPF);D.validateCNPJ={name:"validateCNPJ",event:"submit",rule:function(E){var F=A(this).val().replace(/[.\/_-]/g,"");if(B.numeric(F)){E.firesSuccess();if(F!=""&&!B.cnpj(F)){return E.firesError("cnpj",{fieldname:E.showAs})}}else{return E.firesError("numeric",{fieldname:E.showAs})}},mask:"999.999.999/9999-99"};C.filter(".validateCNPJ").trule().addRule(D.validateCNPJ);D.validateCEP={name:"validateCEP",event:"submit",rule:function(E){var F=A(this).val().replace(/[\._-]/g,"");E.firesSuccess();if(B.numeric(F)){if(F!=""){if(!B.minlength(F,8)||!B.maxlength(F,8)){return E.firesError("length",{fieldname:E.showAs,length:8})}}}else{return E.firesError("numeric",{fieldname:E.showAs})}},mask:"99.999-999"};C.filter(".validateCEP").trule().addRule(D.validateCEP)})})(jQuery);function addTruleClass(scope,name){scope=(scope.each?scope:jQuery(scope));var formControls=scope.find("input:not(:submit, :reset, :button, :image), select, textarea"),ruleObject=eval("jQuery.fn.trule.validators.rules."+name);formControls.filter("."+name).trule().addRule(ruleObject)};