blob: c1c439c1658c9f403f1680183d765acd7f7a9d8a [file] [log] [blame]
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if(!dojo._hasResource["dojox.validate.br"]){
dojo._hasResource["dojox.validate.br"]=true;
dojo.provide("dojox.validate.br");
dojo.require("dojox.validate._base");
dojox.validate.br.isValidCnpj=function(_1){
if(!dojo.isString(_1)){
if(!_1){
return false;
}
_1=_1+"";
while(_1.length<14){
_1="0"+_1;
}
}
var _2={format:["##.###.###/####-##","########/####-##","############-##","##############"]};
if(dojox.validate.isNumberFormat(_1,_2)){
_1=_1.replace("/","").replace(/\./g,"").replace("-","");
var _3=[];
var dv=[];
var i,j,_4;
for(i=0;i<10;i++){
_4="";
for(j=0;j<_1.length;j++){
_4+=""+i;
}
if(_1===_4){
return false;
}
}
for(i=0;i<12;i++){
_3.push(parseInt(_1.charAt(i),10));
}
for(i=12;i<14;i++){
dv.push(parseInt(_1.charAt(i),10));
}
var _5=[9,8,7,6,5,4,3,2,9,8,7,6].reverse();
var _6=0;
for(i=0;i<_3.length;i++){
_6+=_3[i]*_5[i];
}
var _7=_6%11;
if(_7==dv[0]){
_6=0;
_5=[9,8,7,6,5,4,3,2,9,8,7,6,5].reverse();
_3.push(_7);
for(i=0;i<_3.length;i++){
_6+=_3[i]*_5[i];
}
var _8=_6%11;
if(_8===dv[1]){
return true;
}
}
}
return false;
};
dojox.validate.br.computeCnpjDv=function(_9){
if(!dojo.isString(_9)){
if(!_9){
return "";
}
_9=_9+"";
while(_9.length<12){
_9="0"+_9;
}
}
var _a={format:["##.###.###/####","########/####","############"]};
if(dojox.validate.isNumberFormat(_9,_a)){
_9=_9.replace("/","").replace(/\./g,"");
var _b=[];
var i,j,_c;
for(i=0;i<10;i++){
_c="";
for(j=0;j<_9.length;j++){
_c+=""+i;
}
if(_9===_c){
return "";
}
}
for(i=0;i<_9.length;i++){
_b.push(parseInt(_9.charAt(i),10));
}
var _d=[9,8,7,6,5,4,3,2,9,8,7,6].reverse();
var _e=0;
for(i=0;i<_b.length;i++){
_e+=_b[i]*_d[i];
}
var _f=_e%11;
_e=0;
_d=[9,8,7,6,5,4,3,2,9,8,7,6,5].reverse();
_b.push(_f);
for(i=0;i<_b.length;i++){
_e+=_b[i]*_d[i];
}
var dv1=_e%11;
return (""+_f)+dv1;
}
return "";
};
dojox.validate.br.isValidCpf=function(_10){
if(!dojo.isString(_10)){
if(!_10){
return false;
}
_10=_10+"";
while(_10.length<11){
_10="0"+_10;
}
}
var _11={format:["###.###.###-##","#########-##","###########"]};
if(dojox.validate.isNumberFormat(_10,_11)){
_10=_10.replace("-","").replace(/\./g,"");
var cpf=[];
var dv=[];
var i,j,tmp;
for(i=0;i<10;i++){
tmp="";
for(j=0;j<_10.length;j++){
tmp+=""+i;
}
if(_10===tmp){
return false;
}
}
for(i=0;i<9;i++){
cpf.push(parseInt(_10.charAt(i),10));
}
for(i=9;i<12;i++){
dv.push(parseInt(_10.charAt(i),10));
}
var _12=[9,8,7,6,5,4,3,2,1].reverse();
var sum=0;
for(i=0;i<cpf.length;i++){
sum+=cpf[i]*_12[i];
}
var dv0=sum%11;
if(dv0==dv[0]){
sum=0;
_12=[9,8,7,6,5,4,3,2,1,0].reverse();
cpf.push(dv0);
for(i=0;i<cpf.length;i++){
sum+=cpf[i]*_12[i];
}
var dv1=sum%11;
if(dv1===dv[1]){
return true;
}
}
}
return false;
};
dojox.validate.br.computeCpfDv=function(_13){
if(!dojo.isString(_13)){
if(!_13){
return "";
}
_13=_13+"";
while(_13.length<9){
_13="0"+_13;
}
}
var _14={format:["###.###.###","#########"]};
if(dojox.validate.isNumberFormat(_13,_14)){
_13=_13.replace(/\./g,"");
var cpf=[];
for(i=0;i<10;i++){
tmp="";
for(j=0;j<_13.length;j++){
tmp+=""+i;
}
if(_13===tmp){
return "";
}
}
for(i=0;i<_13.length;i++){
cpf.push(parseInt(_13.charAt(i),10));
}
var _15=[9,8,7,6,5,4,3,2,1].reverse();
var sum=0;
for(i=0;i<cpf.length;i++){
sum+=cpf[i]*_15[i];
}
var dv0=sum%11;
sum=0;
_15=[9,8,7,6,5,4,3,2,1,0].reverse();
cpf.push(dv0);
for(i=0;i<cpf.length;i++){
sum+=cpf[i]*_15[i];
}
var dv1=sum%11;
return (""+dv0)+dv1;
}
return "";
};
}