﻿//--------------------------- Aceita Números e Vírgula ------------------------------------
function SomenteNumero(virgula)
{
    if ((virgula == true && event.keyCode == 44) || (event.keyCode >= 48 && event.keyCode <= 57))
    {
        //return true;
    }
    else
    {
        return false;
    }
}
//--------------------------- Validar Campo Vazio ------------------------------------
function VerificaVazio(item, tipo, mensagem) 
{
    if (tipo == 'txt')
    {
        if (item.value == "")
        {
            alert(mensagem);
            item.focus();
            return false;
        }
    }
    else if (tipo == 'ddl')
    {
        if (item.value == "0")
        {
            alert(mensagem);
            item.focus();
            return false;
        }
    }
}
//--------------------------- Visível através do Style ------------------------------------
function Visivel(item, valor) 
{   
    if (valor == "Visible")
    {
        item.style.visibility = 'Hidden';
    }
    else if (valor == "Hidden")
    {
        item.style.visibility = 'Visible';
    }
}
//--------------------------- Formatar Moeda ------------------------------------
function ArrumaMoeda(campo, decimais) 
    {
    //Pode ocasionar de não converter valor e gerar erro NaN
    if (isNaN(parseFloat(campo.value.replace(',','.'))) == false)
    {
        campo.value = parseFloat(campo.value.replace(',','.')).toFixed(decimais).toString().replace('.',',');
    }
    else
    {
        campo.value = '0,';
        for (i = 0; i < decimais; i++)
        {
            campo.value += '0';
        }
    }
}
//---------------------------Coloca maxlength Observação
function MaxLength_Obs(item, valor) 
{   
    if (item.value.length < valor)
    {
        return true;
    }
    else
    {
        return false;
    }
}
//---------------------------Coloca maxlength Observação
function Validar_Vogais(campo) 
{   
    if (campo.value.toUpperCase().indexOf('A') == -1 && campo.value.toUpperCase().indexOf('E') == -1 && campo.value.toUpperCase().indexOf('I') == -1 && 
        campo.value.toUpperCase().indexOf('O') == -1 && campo.value.toUpperCase().indexOf('U') == -1)
    {
        return true;
    }
    else
    {
        especiais = 0;
    
        for (i = 0; i < campo.value.length; i++)
        {
            if (campo.value.substr(i, 1).indexOf('-') != -1 || campo.value.substr(i, 1).indexOf('.') != -1 || campo.value.substr(i, 1).indexOf('_') != -1)
            {
                especiais++;
            }
        }
        //Se houver mais caracteres especiais do que letras
        if (especiais > (campo.value.length - especiais))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
//--------------------------Desabilita o Enter
function Desabilita_Enter()
{ 
    if (event.keyCode == 13) 
    {  
        return false; 
    }
}
//--------------------------- Aceita Apenas Letras------------------------------------
function SomenteLetra(item, valor)
{
    if ((event.keyCode >= 65 && event.keyCode <= 90) || (event.keyCode >= 97 && event.keyCode <= 122))
    {
        if (valor != 0) //Maxlength
        {
            if (item.value.length < valor)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return true; 
        }  
    }
    else
    {
        return false;
    }
}
//--------------------------- Validação de CPF ------------------------------------
function valida_cpf(cpf)
{
    var valor = cpf.value.replace(/\D+/g, '');
    if (valor == '00000000000' || valor.length == 0) { }
    else
    {
        var igual = 1;
        var numeros = new Array(11);
        var soma = 0;

        if (valor.length != 11)
        {
            alert("O CPF informado é inválido!");
            cpf.focus();
            return false;
        }
        for (i = 1; i < 11 && igual == 1; i++)
        {
            if (valor.charAt(i) != valor.charAt(0))
            {
                igual = 0;
            }
        }
        if (igual == 1 || valor == "12345678909")
        {
            alert("O CPF informado é inválido!");
            cpf.focus();
            return false;
        }
        for (i = 0; i < 11; i++)
        {
            numeros[i] = valor.charAt(i);
        }
        for (i = 0; i < 9; i++)
        {
            soma += (10 - i) * numeros[i];
        }

        var resultado = soma % 11;

        if (resultado == 1 || resultado == 0)
        {
            if (numeros[9] != 0)
            {
                alert("O CPF informado é inválido!");
                cpf.focus();
                return false;
            }
        }
        else if (numeros[9] != 11 - resultado)
        {
            alert("O CPF informado é inválido!");
            cpf.focus();
            return false;
        }

        soma = 0;

        for (i = 0; i < 10; i++)
        {
            soma += (11 - i) * numeros[i];
        }

        resultado = soma % 11;

        if (resultado == 1 || resultado == 0)
        {
            if (numeros[10] != 0)
            {
                alert("O CPF informado é inválido!");
                cpf.focus();
                return false;
            }
        }
        else
        {
            if (numeros[10] != 11 - resultado)
            {
                alert("O CPF informado é inválido!");
                cpf.focus();
                return false;
            }
        }
    }
}
//--------------------------- Validação de CNPJ ------------------------------------
function valida_cnpj(cnpj)
{
    var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais = 1, valor = cnpj.value.replace(/\D+/g, '');
    if (valor == '00000000000000' || valor.length == 0){ }
    else
    {
        if (valor.length != 14) 
        {
            alert('O CNPJ informado é inválido!');
            cnpj.focus();
            return false;
        }
        for (i = 0; i < valor.length - 1; i++)
                if (valor.charAt(i) != valor.charAt(i + 1))
                {
                    digitos_iguais = 0;
                    break;
                }
        if (!digitos_iguais)
        {
            tamanho = valor.length - 2
            numeros = valor.substr(0,tamanho);
            digitos = valor.substr(tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
            {
                soma += numeros.charAt(tamanho - i) * pos--;
                if (pos < 2)
                {
                    pos = 9;
                }
            }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
            {
                alert('O CNPJ informado é inválido!');
                cnpj.focus();
                return false;
            }
            tamanho = tamanho + 1;
            numeros = valor.substr(0,tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
            {
                soma += numeros.charAt(tamanho - i) * pos--;
                if (pos < 2)
                {
                    pos = 9;
                }
            }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
            {
                alert('O CNPJ informado é inválido!');
                cnpj.focus();
                return false;
            }
        }
        else
        {
            alert('O CNPJ informado é inválido!');
            cnpj.focus();
            return false;
        }
    }
}
//--------------------------- Validação de E-Mail ------------------------------------
function ValidarEmail(campo)
{
    if (campo.value != "")
    {
 	    prim = campo.value.indexOf("@")
	    if (prim < 2)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("@",prim + 1) != -1)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf(".") < 1)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf(" ") != -1)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("gmeil.com") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("hotmeil.com") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf(".@") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("@.") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf(".com.br.") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("/") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("[") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("]") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("(") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf(")") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	    else if (campo.value.indexOf("..") > 0)
	    {
		    alert("O E-mail informado é inválido!");
		    campo.focus();
		    return false;
	    }
	}
}
//--------------------------- Validação do Auto-Complete ------------------------------------
function valida_auto_complete(txt, hf)
{
    if ((hf.value != 0 && (event.keyCode == 8 || event.keyCode > 45)) || (txt.value == ''))
    {
        txt.value = '';
        if (hf.name.indexOf('hf') == -1)
        {//textbox
            hf.value = '';
        }
        else
        {//hiddenfield
            hf.value = 0;
        }
    }
}
//--------------------------- Validação de Tamanho ------------------------------------
function ValidarTamanho(campo, nome, tamanho)
{
    //O nome é definido antes, pois pode ser fone, fax, cep
    var valor = campo.value.replace(/\D+/g, '');

    if (valor.length > 0 && valor.length < tamanho)
    {
	    alert("O " + nome + " informado é inválido!");
	    campo.focus();
	    return false;
	}
}
//--------------------------- Validação da Data ------------------------------------
function ValidarData(campo)
{
    if (campo.value.replace(/\D+/g, '') != '')
    {
        var date = campo.value;
        var array_data = new Array;
        var ExpReg = new RegExp('(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}');
        
        //Vetor que contem o dia o mes e o ano
        array_data = date.split('/');
        erro = false;
        
        //Validar se a data esta no formato dd/mm/yyyy e se o dia tem 2 digitos e esta entre 01 e 31
        //Se o mes tem d2 digitos e esta entre 01 e 12 e o ano se tem 4 digitos e esta entre 1000 e 2999
        if (date.search(ExpReg) == -1)
        {
            erro = true;
        }
        //Validar os meses que nao tem 31 dias com execao de fevereiro
        else if (((array_data[1] == 4) || (array_data[1] == 6) || (array_data[1] == 9) || (array_data[1] == 11)) && (array_data[0] > 30))
        {
            erro = true;
        }
        //Validar o mes de fevereiro
        else if (array_data[1] == 2)
        {
            //Validar ano que nao é bissexto
            if ((array_data[0] > 28) && ((array_data[2] % 4) != 0))
            {
                erro = true;
            }
            //Validar ano bissexto
            if ((array_data[0] > 29) && ((array_data[2] % 4) == 0 ))
            {
                erro = true;
            }
        }
        if (erro)
        {
            alert('A Data informada é inválida!');
            campo.focus();
            return false;
        }
    }
}
//--------------------------- Validação da Hora ------------------------------------
function ValidarHora(campo)
{
    if (campo.value.replace(/\D+/g, '') != '')
    {
        var hour = campo.value;
        var array_hora = new Array;
        var ExpReg = new RegExp('([01][0-9]|2[0-3]):([0-5][0-9])');
        
        //Vetor que contem a hora e o minuto
        array_hora = hour.split(':');
        erro = false;
        
        //Validar se a hora esta no formato hh:mm e se a hora tem 2 digitos e esta entre 00 e 23
        //Se o minuto tem 2 digitos e esta entre 00 e 59
        if (hour.search(ExpReg) == -1)
        {
            erro = true;
        }
        if (erro)
        {
            alert('A Hora informada é inválida!');
            campo.focus();
            return false;
        }
    }
}
