﻿// JScript File

// Função de validação de um controle CustomValidator para verificar
// se o valor do campo possui caracteres idênticos e sequenciais
function TemSequencia(source, arguments) {

    palavra = arguments.Value;

    caractereAtual = "";

    temSequencia = false;

    for (i = palavra.length - 1; i >= 0; i--) {
        if (caractereAtual == palavra.substring(i, i + 1)) {
            temSequencia = true;
            break;
        }
        
        caractereAtual = palavra.substring(i, i + 1);
    }

    arguments.IsValid = (!temSequencia);
}

// Função de validação de um controle CustomValidator
// para verificar se o CPF é válido
function EhCPF(source, arguments) {

    CPF = arguments.Value;

    CPF = CPF.replace("-", "");
    CPF = CPF.replace(".", "");
    CPF = CPF.replace(".", "");

    lngSoma = 0;
    lnNumero = 0;
    intMais = 0;
    ingInteiro = 0;
    i = 0;
    intResto = 0;
    intDig1 = 0;
    intDig2 = 0;
    strcampo = CPF.substring(0, 9);
    strDigVer1 = CPF.substring(9, 10);
    strDigVer2 = CPF.substring(10, 11);
    
    for (i = 0; i <= 8; i++) {
        strCaracter = strcampo.substring(8 - i, 9 - i);
        intNumero = strCaracter.substring(0, 1);
        intMais = parseInt(intNumero) * (i + 2);
        lngSoma += intMais;
    }
    
    dblDivisao = (lngSoma / 11);
    
    if (Math.round(dblDivisao) > dblDivisao) {
        dblDivisao = Math.round(dblDivisao) - 1;
    } else {
        dblDivisao = Math.round(dblDivisao);
    }
    
    lngInteiro = dblDivisao * 11;
    intResto = lngSoma - lngInteiro;
    
    if (intResto == 0 || intResto == 1) {
        intDig1 = 0;
    } else {
        intDig1 = 11 - intResto;
    }

    strcampo = strcampo + intDig1;

    lngSoma = 0;
    intNumero = 0;
    intMais = 0;
    
    for (i = 0; i <= 9; i++) {
        strCaracter = strcampo.substring(9 - i, 10 - i);
        intNumero = strCaracter.substring(0, 1);
        intMais = parseInt(intNumero) * (i + 2);
        lngSoma += intMais;
    }
    
    dblDivisao = (lngSoma / 11);
    
    if (Math.round(dblDivisao) > dblDivisao) {
        dblDivisao = Math.round(dblDivisao) - 1;
    } else {
        dblDivisao = Math.round(dblDivisao);
    }
    
    lngInteiro = dblDivisao * 11;
    intResto = lngSoma - lngInteiro;

    if (intResto == 0 || intResto == 1) {
        intDig2 = 0;
    } else {
        intDig2 = 11 - intResto;
    }

    arguments.IsValid = (strDigVer1 == intDig1 && strDigVer2 == intDig2);
}

// Função de validação de um controle CustomValidator
// para verificar se o CNPJ é válido
function EhCNPJ(source, arguments) {

    CNPJ = arguments.Value;

    CNPJ = CNPJ.replace(".", "");
    CNPJ = CNPJ.replace(".", "");
    CNPJ = CNPJ.replace(".", "");
    CNPJ = CNPJ.replace("-", "");
    CNPJ = CNPJ.replace("/", "");

    
    intSoma = 0;
    intSoma1 = 0;
    intSoma2 = 0;
    intInteiro = 0;
    intMais = 0;
    intNumero = 0;
    i = 0;
    intResto = 0;

    strDigVer1 = CNPJ.substring(12, 13);
    strDigVer2 = CNPJ.substring(13, 14);
    strcampo = CNPJ.substring(0, 8);
    strCNPJ = CNPJ.substring(8, 14);
    strCNPJ = strCNPJ.substring(0, 4);
    strcampo = strcampo.substring(4, 8) + strCNPJ;

    for (i = 0; i <= 7; i++) {
        strCaracter = strcampo.substring(7 - i, 8 - i);
        intNumero = strCaracter.substring(0, 1);
        intMais = parseInt(intNumero) * (i + 2);
        intSoma1 += intMais;
    }
    
    strcampo = CNPJ.substring(0, 4);
    
    for (i = 0;i <= 3; i++) {
        strCaracter = strcampo.substring(3 - i, 4 - i);
        intNumero = strCaracter.substring(0, 1);
        intMais = parseInt(intNumero) * (i + 2);
        intSoma2 += intMais;
    }
    
    intSoma = intSoma1 + intSoma2;
    dblDivisao = (intSoma / 11);
    
    if (Math.round(dblDivisao) > dblDivisao) {
        dblDivisao = Math.round(dblDivisao) - 1;
    } else {
        dblDivisao = Math.round(dblDivisao);
    }

    intInteiro = dblDivisao * 11;
    intResto = intSoma - intInteiro;
    
    if (intResto == 0 || intResto == 1) {
        intDig1 = 0;
    } else {
        intDig1 = 11 - intResto;
    }

    intSoma = 0;
    intSoma1 = 0;
    intSoma2 = 0;
    intNumero = 0;
    intMais = 0;

    strcampo = CNPJ.substring(0, 8);
    strCNPJ = CNPJ.substring(8, 14);
    strCNPJ = strCNPJ.substring(0, 4);
    strcampo = strcampo.substring(strcampo.length-3, 14) + strCNPJ + intDig1;

    for (i = 0; i <= 7; i++) {
        strCaracter = strcampo.substring(7 - i, 8 - i);
        intNumero = strCaracter.substr(0, 1);
        intMais = parseInt(intNumero) * (i + 2);
        intSoma1 += intMais;
    }
    
    strcampo = CNPJ.substring(0, 5);

    for (i = 0; i <= 4; i++) {
        strCaracter = strcampo.substring(4 - i, 5 - i);
        intNumero = strCaracter.substring(0, 1);
        intMais = parseInt(intNumero) * (i + 2);
        intSoma2 += intMais;
    }
    
    intSoma = intSoma1 + intSoma2;
    dblDivisao = (intSoma / 11);

    if (Math.round(dblDivisao) > dblDivisao) {
        dblDivisao = Math.round(dblDivisao) - 1;
    } else {
        dblDivisao = Math.round(dblDivisao);
    }
    
    intInteiro = dblDivisao * 11;
    intResto = intSoma - intInteiro;
    
    if (intResto == 0 || intResto == 1) {
        intDig2 = 0;
    } else {
        intDig2 = 11 - intResto;
    }

    arguments.IsValid = (strDigVer1 == intDig1 && strDigVer2 == intDig2);
}