﻿// Validação de CPF e CNPJ

function valida_CPFCNPJ(oSrc,args){

if (args.Value.length == 11 && args.Value != "00000000000" && args.Value != "11111111111" && args.Value != "22222222222" && args.Value != "33333333333" && args.Value  != "44444444444" && args.Value  != "55555555555" && args.Value  != "66666666666" && args.Value  != "77777777777" && args.Value  != "88888888888" && args.Value  != "99999999999"){

valida_CPF(oSrc,args);

}else if(args.Value.length == 14 && args.Value != "00000000000000" && args.Value != "11111111111111" && args.Value != "22222222222222" && args.Value != "33333333333333" && args.Value  != "44444444444444" && args.Value  != "55555555555555" && args.Value  != "66666666666666" && args.Value  != "77777777777777" && args.Value  != "88888888888888" && args.Value  != "99999999999999"){

valida_CNPJ(oSrc, args);

}else{

return args.IsValid = false;

}

}

//Validação de CPF

function valida_CPF(oSrc,args){

s = args.Value;

//args.isValid = (s >= 3);

//document.write(oSrc.Value + ',' + args.Value);

if (isNaN(s)) {

return args.IsValid = false;

}

var i;

var c = s.substr(0,9);

var dv = s.substr(9,2);

var d1 = 0;

for (i = 0; i < 9; i++) {

d1 += c.charAt(i)*(10-i);

}

if (d1 == 0){

return args.IsValid = false;

}

d1 = 11 - (d1 % 11);

if (d1 > 9) d1 = 0;

if (dv.charAt(0) != d1) {

return args.IsValid = false;

}

d1 *= 2;

for (i = 0; i < 9; i++) {

d1 += c.charAt(i)*(11-i);

}

d1 = 11 - (d1 % 11);

if (d1 > 9) d1 = 0;

if (dv.charAt(1) != d1) {

return args.IsValid = false;

}

return args.IsValid = true;

}

//Validação de CNPJ

function valida_CNPJ(oSrc, args){

s = args.Value;

if (isNaN(s)) {

return args.IsValid = false;

}

var i;

var c = s.substr(0,12);

var dv = s.substr(12,2);

var d1 = 0;

for (i = 0; i <12; i++){

d1 += c.charAt(11-i)*(2+(i % 8));

}

if (d1 == 0)

return args.IsValid = false;

d1 = 11 - (d1 % 11);

if (d1 > 9) d1 = 0;

if (dv.charAt(0) != d1){

return args.IsValid = false;

}

d1 *= 2;

for (i = 0; i < 12; i++){

d1 += c.charAt(11-i)*(2+((i+1) % 8));

}

d1 = 11 - (d1 % 11);

if (d1 > 9)

d1 = 0;

if (dv.charAt(1) != d1){

return args.IsValid = false;

}

return args.IsValid = true;

}
