//============================================================================
//---> Valida CEP no cadastro de usuario
function validarCEP() {
var CEP;
CEP = limpa_string(document.formulario.txtCep.value);
	if (CEP.length < 8) {
		alert("O CEP informado não é válido!");
		return false; }
	else  {
		initAd(); //Necessario ad.js, css e DIV para funcionar
		doPost('formulario', 'cep');
		disableAll();}
}

//============================================================================
//---> Função deixar apenas numeros em uma string - utilizado no validarCEP
function limpa_string(S){
	// Deixa so os digitos numericos
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";

	for (var i=0; i<S.length; i++)	{
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0)	{
			temp=temp+digito	}
	} //for

	return temp
}


//============================================================================
//---> Mascara para digitar CEP
function MascaraCEP(campo, teclaPress) {
  if (window.event){
    var tecla = teclaPress.keyCode;
  } else {
    tecla = teclaPress.which;
  }
  var s = new String(campo.value);
  s = s.replace(/(\.|\(|\)|\/|\-| )+/g,'');
  tam = s.length + 1;
  if (tam > 5 && tam < 7)
    campo.value = s.substr(0,5) + '-' + s.substr(5, tam);
}


//============================================================================
//---> Função para permitir a digitação apenas de numeros
function digitos(event){
    event = (event) ? event : window.event
    var charCode = (event.which) ? event.which : event.keyCode
    if((charCode==46||charCode==8||charCode==45||charCode==47) ||(charCode >= 48 && charCode <= 57) ){
	    status = "";
	    return true;
    }
	else {
        alert("Este campo aceita apenas valores numéricos!");
        return false;
	}
}

//============================================================================
// Grupo de funções para validar CPF e CNPJ
function cpfcnpj(){
    if(document.formulario.txtCPFCNPJ.value.length == 3){
        document.formulario.txtCPFCNPJ.value = document.formulario.txtCPFCNPJ.value + '.';
        return false;
    }
    if(document.formulario.txtCPFCNPJ.value.length == 7){
        document.formulario.txtCPFCNPJ.value = document.formulario.txtCPFCNPJ.value + '.';
        return false;
    }
    if(document.formulario.txtCPFCNPJ.value.length == 11){
        document.formulario.txtCPFCNPJ.value = document.formulario.txtCPFCNPJ.value + '-';
        return false;
    }
    if(document.formulario.txtCPFCNPJ.value.length == 15){
        p0=document.formulario.txtCPFCNPJ.value.charAt(0);
        p1=document.formulario.txtCPFCNPJ.value.charAt(1);
        p2=document.formulario.txtCPFCNPJ.value.charAt(2);
        p3=document.formulario.txtCPFCNPJ.value.charAt(4);
        p4=document.formulario.txtCPFCNPJ.value.charAt(5);
        p5=document.formulario.txtCPFCNPJ.value.charAt(6);
        p6=document.formulario.txtCPFCNPJ.value.charAt(8);
        p7=document.formulario.txtCPFCNPJ.value.charAt(9);
        p8=document.formulario.txtCPFCNPJ.value.charAt(10);
        p9=document.formulario.txtCPFCNPJ.value.charAt(12);
        p10=document.formulario.txtCPFCNPJ.value.charAt(13);
        p11=document.formulario.txtCPFCNPJ.value.charAt(14);
        document.formulario.txtCPFCNPJ.value = '';
        document.formulario.txtCPFCNPJ.value = p0 + p1 + '.' + p2 + p3 + p4 + '.' + p5 + p6 + p7 + '/' + p8 + p9 + p10 + p11 + '-';
        p0='';
        p1='';
        p2='';
        p3='';
        p4='';
        p5='';
        p6='';
        p7='';
        p8='';
        p9='';
        p10='';
        p11='';
        return false;
    }
}

// a função principal de validação
function validar(obj) { // recebe um objeto
    var s = (obj.value).replace(/\D/g,'');
    var tam=(s).length; // removendo os caracteres não numéricos
    if (!(tam==11 || tam==14)){ // validando o tamanho
        alert("O CPF ou um CNPJ informado não é válido!" ); // tamanho inválido
        return false;
    }

// se for CPF
    if (tam==11 ){
        if (!validaCPF(s)){ // chama a função que valida o CPF
            alert("O CPF informado não é válido!" ); // se quiser mostrar o erro
            obj.select();  // se quiser selecionar o campo em questão
            return false;
        }
        //alert("'"+s+"' É um CPF válido!" ); // se quiser mostrar que validou
        obj.value=maskCPF(s);    // se validou o CPF mascaramos corretamente
        return true;
    }

// se for CNPJ
    if (tam==14){
        if(!validaCNPJ(s)){ // chama a função que valida o CNPJ
            alert("O CNPJ informado não é válido!" ); // se quiser mostrar o erro
            obj.select();    // se quiser selecionar o campo enviado
            return false;
        }
        //alert("'"+s+"' É um CNPJ válido!" ); // se quiser mostrar que validou
        obj.value=maskCNPJ(s);    // se validou o CNPJ mascaramos corretamente
        return true;
    }
}
// fim da funcao validar()

// função que valida CPF
function validaCPF(s) {
    var c = s.substr(0,9);
    var dv = s.substr(9,2);
    var d1 = 0;
    for (var i=0; i<9; i++) {
        d1 += c.charAt(i)*(10-i);
     }
    if (d1 == 0) return false;
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1){
        return false;
    }
    d1 *= 2;
    for (var 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 false;
    }
    return true;
}

// Função que valida CNPJ
function validaCNPJ(CNPJ) {
    var a = new Array();
    var b = new Number;
    var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
    for (i=0; i<12; i++){
        a[i] = CNPJ.charAt(i);
        b += a[i] * c[i+1];
    }
    if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
    b = 0;
    for (y=0; y<13; y++) {
        b += (a[y] * c[y]);
    }
    if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
    if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
        return false;
    }
    return true;
}


    // Função que permite apenas teclas numéricas
function soNums(e)
{
    if (document.all){var evt=event.keyCode;}
    else{var evt = e.charCode;}
    if (evt <20 || (evt >47 && evt<58)){return true;}
    return false;
}

//    função que mascara o CPF
function maskCPF(CPF){
    return CPF.substring(0,3)+"."+CPF.substring(3,6)+"."+CPF.substring(6,9)+"-"+CPF.substring(9,11);
}

//    função que mascara o CNPJ
function maskCNPJ(CNPJ){
    return CNPJ.substring(0,2)+"."+CNPJ.substring(2,5)+"."+CNPJ.substring(5,8)+"/"+CNPJ.substring(8,12)+"-"+CNPJ.substring(12,14);
}

//============================================================================
// Funções para validar CPF e CNPJ FIM




