/* Verifica e cria o ajax*/
function openAjax() {
    var ajax;
    try {
        /* Tenta Instanciar o Objeto */
        ajax = new XMLHttpRequest(); 
    } catch(ee) {
        try {
            /* Se Nao Conseguiu o Anterior Tenta esse*/
            ajax = new ActiveXObject("Msxm12.XMLHTTP"); 
        } catch(e) {
            try {
                /* E o memso se repete aqui*/
                ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
            } catch(E) {
                /* Se nao conseguiu em Nenhum retorna False pois o Navegador Usado nao Suporta Ajax*/
                ajax = false; 
            }
        }
    }
    return ajax; /* Retorna um Boleano*/
}

/*Recebe parâmetro o Link a Pagina Solicitada */
function carregarAjax(link, div) {
    var div = document.getElementById(div); /* Pega o Div pelo id*/
    /* Chama a Função que Instancia o AJAX */
    var ajax = openAjax(); 
    /* Abre uma Solicitação ao Navegador */
    /* GET = Método Usado */
    /* link = pagina que tratara o solicitado */
    /* true = Assicrono ou não = Dando o Refresh no Browser ou Nao*/
    ajax.open("GET", link, true);
    /* ajax.onreadystatechange = O que ele fara de acordo com o tempo de execuação*/
    ajax.onreadystatechange = function() {
        /* ajax.readystate = Estado que se encontra a Requisição
        Obs.: Na parte readyState ele tem 4 tempos:
        1. Sendo enviado;
        2. Processando;
        3. Armazenando;
        4. Pronto.
        */
        if (ajax.readyState < 4) {
            div.innerHTML = "Carregando...";
        }
        if (ajax.readyState == 4) {
            /* Estado de Carregamento*/
            if (ajax.status == 200) {
                /* ajax.responseText = Recebe o que foi enviado pelo arquivo de tratamento*/
                div.innerHTML = ajax.responseText;
            }
        }
    }
    /* Envia o Resultado para o Navegador */
    ajax.send(null);
}

//função que abre a impressão do boleto em uma janela
function abreJanelaBoleto (caminho) {
    window.open (caminho, '', 'boleto');
    location.href='?';
}

function proximoCampo(campo1, x, campo2) {
/*
    var aux = campo1.value.length;
    var evento = window.event;
    var tecla = (evento.which ? evento.which : evento.keyCode ? evento.keyCode : evento.charCode);
    if (aux >= x && tecla >= 49) {
        campo1.value = campo1.value.substring(0, x);
        campo2.focus();
    }
*/
    if (campo1.value.length >= x)  {
        campo1.value = campo1.value.substring(0, x);
        campo2.focus();
    }
}

function validarCurso(curso) {
    if (campoVazio(curso)) return false;
}

//função que valida o formulário de inscrição do candidato
function validarInscricao(form) {
    if (campoVazio(form.nome)) return erro(form.nome);
    if (campoVazio(form.sexo)) return false;
    if (campoVazio(form.estadoCivil)) return false;
    if (campoVazio(form.dtDia)) return erro(form.dtDia);
    if (campoVazio(form.dtMes)) return erro(form.dtMes);
    if (campoVazio(form.dtAno)) return erro(form.dtAno);
    if (campoVazio(form.rg)) return erro(form.rg);
    if (campoVazio(form.rgOrgaoExpedidor)) return erro(form.rgOrgaoExpedidor);
    if (campoVazio(form.er1)) return erro(form.er1);
    if (campoVazio(form.er2)) return erro(form.er2);
    if (campoVazio(form.er3)) return erro(form.er3);
    if (campoVazio(form.naturalidade)) return erro(form.naturalidade);
    if (campoVazio(form.uf_naturalidade)) return erro(form.uf_naturalidade);
    if (campoVazio(form.nacionalidade)) return erro(form.nacionalidade);
    if (campoVazio(form.tit_eleitor)) return erro(form.tit_eleitor);
    if (campoVazio(form.cep1)) return erro(form.cep1);
    if (campoVazio(form.cep2)) return erro(form.cep2);
    if (campoVazio(form.endereco)) return erro(form.endereco);
    if (campoVazio(form.num)) return erro(form.num);
    if (campoVazio(form.bairro)) return erro(form.bairro);
    if (campoVazio(form.cidade)) return erro(form.cidade);
    if (campoVazio(form.uf)) return erro(form.uf);
    if (campoVazio(form.fil_mae)) return erro(form.fil_mae);
    if (campoVazio(form.comoSoube)) return false;
    if (campoVazio(form.documento)) return false;
}

//função que verifica se o input está vazio
function campoVazio(input) {
    var aux = "";
    for (var i = 0; i < input.value.length; i++) aux = aux + input.value.substr(i, 1).replace(" ", "");
    if (aux.length == 0) {
        alert('Existem campos de preenchimento obrigatório que não foram preenchidos');
        return true;    
    }
    return false;
}

//função que seleciona o input e seta o foco
function erro(obj) {
    obj.focus();
    obj.select();
    return false;
}

function validarCpf(CPF) {
    // Verifica se o campo é nulo
    var validarCpf = "";
    for (var i = 0; i < CPF.length; i++) validarCpf = validarCpf + CPF.substr(i, 1).replace(" ", "");
    CPF = validarCpf;
    if (CPF.length == 0 || CPF == '00000000000' || CPF == '11111111111' || CPF == '22222222222' || CPF == '33333333333' || CPF == '44444444444' || CPF == '55555555555' || CPF == '66666666666' || CPF == '77777777777' || CPF == '88888888888' || CPF == '99999999999') {
        alert('O Campo CPF não está preenchido ou é inválido');
        return false;
    }
    // Aqui começa a checagem do CPF
    var POSICAO, I, SOMA, DV, DV_INFORMADO;
    var DIGITO = new Array(10);
    DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado
    // Desemembra o número do CPF na array DIGITO
    
    for (I=0; I<=8; I++) {
        DIGITO[I] = CPF.substr( I, 1);
    }
    
    // Calcula o valor do 10º dígito da verificação
    POSICAO = 10;
    SOMA = 0;
    for (I=0; I<=8; I++) {
        SOMA = SOMA + DIGITO[I] * POSICAO;
        POSICAO = POSICAO - 1;
    }
    DIGITO[9] = SOMA % 11;
    if (DIGITO[9] < 2) {
        DIGITO[9] = 0;
    } else{
        DIGITO[9] = 11 - DIGITO[9];
    }
    
    // Calcula o valor do 11º dígito da verificação
    POSICAO = 11;
    SOMA = 0;
    for (I=0; I<=9; I++) {
        SOMA = SOMA + DIGITO[I] * POSICAO;
        POSICAO = POSICAO - 1;
    }
    
    DIGITO[10] = SOMA % 11;
    if (DIGITO[10] < 2) {
        DIGITO[10] = 0;
    } else {
        DIGITO[10] = 11 - DIGITO[10];
    }
    
    // Verifica se os valores dos dígitos verificadores conferem
    
    DV = DIGITO[9] * 10 + DIGITO[10];
    if (DV != DV_INFORMADO) {
        alert('CPF inválido');
        //document.form_cad.cpf1.value = '';
        //document.form_cad.cpf2.value = '';
        //document.form_cad.cpf1.focus();
        return false;
    }
}

