/***************************************************************************************/
/***********************************     MÁSCARAS    ***********************************/
/***************************************************************************************/


/* =====================================================================================
   FUNÇÃO:    mascara_Case (objeto, tipo, evento )

   DESCRIÇÃO: formata um campo com maiusculas, minusculas ou Iniciais Maiusculas.

   PARAMETERS = objeto (this ou o nome do input)
                          = event (event handler - é so passar "event")
                          = tipo ( = MA - PARA PASSAR TODOS OS CARACTERES PARA MAIUSCULO
                                   = MI - para passar todos os caracteres para minusculo
                                   = IN - Para Passar Todos As Iniciais De Cada Palavra Para Maiusculo)

   USO:                  <input class="campoForm" type="textbox" name="x" ...
                             ... onKeyUp="mascara_CASE ( this, 'MA', evento )">

        EXEMPLOS:
                        * MA - TESTE
                        * MI - teste
                        * IN - Teste
=======================================================================================*/
function mascara_Case (objeto, tipo, evento) { // Maiusculo Minusculo

var  i, inicial, palavraAtual, restoPalavra, palavraFormatada;
var codigo = util_CodigoASCII(evento);

        if (tipo == "maiusculo" || tipo == "maiuscula" || tipo == "MA" || tipo == "ma") {
                        objeto.value = objeto.value.toUpperCase();

                } else if (tipo == "minusculo" || tipo == "minuscula" || tipo == "MI" || tipo == "mi") {
                        objeto.value = objeto.value.toLowerCase();

                } else if (tipo == "initcap" || tipo == "IN" || tipo == "in") {

                                var index, tmpStr, tmpChar, preString, postString, strlen;
                                tmpStr = objeto.value.toLowerCase();
                                strLen = tmpStr.length;
                                if (strLen > 0)  {
                                        for (index = 0; index < strLen; index++)  {
                                                if (index == 0)  {
                                                tmpChar = tmpStr.substring(0,1).toUpperCase();
                                                postString = tmpStr.substring(1,strLen);
                                                tmpStr = tmpChar + postString;
                                        } else {
                                        tmpChar = tmpStr.substring(index, index+1);
                                        if (tmpChar == " " && index < (strLen-1))  {
                                                tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
                                                preString = tmpStr.substring(0, index+1);
                                                postString = tmpStr.substring(index+2,strLen);
                                                tmpStr = preString + tmpChar + postString;
                                        } // fecha if
                                  }// fecha for
                           }// fecha
                        } // fecha else
                objeto.value = tmpStr;

        } // fecha o if

}

/* =====================================================================================
   FUNÇÃO:    mascara_Data (objeto, event)

   DESCRIÇÃO: formata um campo para receber data formatada.

   PARAMETERS = objeto (this ou o nome do input)
                          = event (event handler - é so passar "event")

   USO:                  <input class="campoForm" type="textbox" name="data" onKeyUp="mascara_DATA (this, event);">

        EXEMPLOS:
                        * completa os meses com 0 antes dos numveros de 1 a 9 -> 1/2/04 -> 01/02/20004 // válido
                        *
                        *
=======================================================================================*/
function mascara_Data (objeto, evento) {

        var data = objeto.value;
    var ultimoCaracter = data.substring(data.length-1,data.length);
    var codigo;
    var resposta;

        codigo = util_CodigoASCII(evento);

    if(util_IsControle(codigo) == false){
        data = data.replace("/","").replace("/","");
        if(util_IsNumeric(codigo) == false) {
            for(i = 0; i < data.length; i++){
                if(util_IsNumeric(parseInt((data.charAt(i)))) == false){
                    data = data.substring(0,i)+data.substring(i+1,data.length);
                    i = 0;
                }
            }
            if(util_IsNumeric(parseInt((data.charAt(0)))) == false){
                data = data.substring(1,data.length);
            }
        }

        if(util_IsNumeric(codigo) == true || (data.length == 1 && ultimoCaracter == "/") || (data.length == 3 && ultimoCaracter == "/")) {

            if(data.length == 1 && ultimoCaracter == "/"){
                data = "0" + data.substring(0,1);
            }else if(data.length == 3 && ultimoCaracter == "/"){
                var temp = data.substring(0,2) + "0" + data.substring(2,3);
                data = temp;
            }else if(data.length == 1 && parseInt(ultimoCaracter) > 3){
                data = "0" + ultimoCaracter;
            }else if(data.length == 3 && parseInt(ultimoCaracter) > 1){
                data = data.substring(0,2) + "0" + ultimoCaracter;
            }
        }
        if(data.length >= 2){
            temp = data.substring(0,2)+"/"+data.substring(2,data.length);
            data = temp;
            if(data.length >= 5){
                temp = data.substring(0,5)+"/"+data.substring(5,data.length);
                data = temp;
            }
        }
    }
    if(data.length > 10){
        data = data.substring(0,10);
    }
    objeto.value = data;
}

/* =====================================================================================
   FUNÇÃO:    mascara_Geral(campo, formato, evento)

   DESCRIÇÃO: formata um campo do formulário de acordo com a máscara informada.

   PARAMETERS = campo (this ou o nome do input)
                           = formato (define o formato que o dado será apresentado, usando o
                                algarismo "9" para definir números e o símbolo "!" para AlphaNumericos...
                          = evento (event handler - é so passar "event")

   USO:                  <input class="campoForm" type="textbox" name="CEP" MAXLENGTH="9" ...
                             ... onKeyPress="return mascara_Geral(this, '99999-999', event);">

                             Este exemplo retorna o campo formatado com CEP. PODE-SE usar no evento
                          onKeyUp também.

        IMPORTANTE: O MAXLENGTH DO INPUT DEVE SER SETADO COM O MESMO NÚMERO DE CARACTERES
                        DA MASCARA (parâmetro formato), PARA QUE ESTA FUNÇÃO FUNCIONE PERFEITAMENTE.

        EXEMPLOS:
                        * CEP -> 99.999-999
                        * CPF -> 999.999.999-99
                        * CNPJ -> 99.999.999/9999-99
                        * Data -> 99/99/9999
                        * Tel Resid -> (99) 999-9999
                        * Tel Cel -> (99) 9999-9999
                        * Processo -> 99.999999999/999-99
                        * C/C -> 999999-!
=======================================================================================*/
function mascara_Geral(campo, formato, evento) {

var i, contador, valor, tamCampo, tamFormato, bolFormato, sCod, codigo;

        codigo = util_CodigoASCII(evento); // retorna o codigo do caracter passando o evento
        valor = campo.value;

        // Caracteres especiais.
        if (codigo <= 31) {
                return true;
        }

        // Verifica se o tamanho é maior que a máscara.
        tamCampo = valor.length;
		if(tamCampo==13)
		{
			formato='999.999.999-99';
		}
        tamFormato = formato.length;
		
        if (tamCampo > tamFormato-1) {
                return false;
        }

        // Limpa todos os caracteres de formatação que
        // já estiverem no campo.
        valor = valor.toString().replace( "-", "" );
        valor = valor.toString().replace( "-", "" );
        valor = valor.toString().replace( ".", "" );
        valor = valor.toString().replace( ".", "" );
        valor = valor.toString().replace( "/", "" );
        valor = valor.toString().replace( "/", "" );
        valor = valor.toString().replace( "(", "" );
        valor = valor.toString().replace( "(", "" );
        valor = valor.toString().replace( ")", "" );
        valor = valor.toString().replace( ")", "" );
        valor = valor.toString().replace( " ", "" );
        valor = valor.toString().replace( " ", "" );
        valor = valor.toString().replace( ":", "" );
        valor = valor.toString().replace( ":", "" );
        tamCampo = valor.length;
        tamFormato = formato.length;

        i = 0;
        j = 0;
        contador = 0;
        sCod = "";
        tamFormato = tamCampo;


        while (i <= tamFormato) {
                bolFormato = ((formato.charAt(i) == "-") || (formato.charAt(i) == ".") || (formato.charAt(i) == "/"))
                bolFormato = bolFormato || ((formato.charAt(i) == "(") || (formato.charAt(i) == ")") || (formato.charAt(i) == " "))
                bolFormato = bolFormato || (formato.charAt(i) == ":")

                if (bolFormato && codigo != 8) {
                        sCod += formato.charAt(i);
                        tamFormato++; }
                else {
                        sCod += valor.charAt(contador);
                        contador++;
                        }
                i++;
        }

        campo.value = sCod;

        if (codigo != 8) {  // backspace
                if (formato.charAt(i-1) == "9") { // apenas números...
                        return (util_IsNumeric(util_CodigoASCII(evento))); // números de 0 a 9
                } else { // quaiquer caracteres AlphaNuméricos
                        if (formato.charAt(i-1) == "!") {
                                return (util_IsAlphaNumeric(util_CodigoASCII(evento)));
                                 //return true
                        } else {
                                return false;
                        }
                }
                } else {
                return true;
        }
}



/* =====================================================================================
   FUNÇÃO:    mascara_Login (objeto)

   DESCRIÇÃO: formata um campo para não receber caracteres especiais.

   PARAMETERS = objeto (this ou o nome do input)

   USO:                  <input class="campoForm" type="textbox" name="login" onKeyUp="mascara_Login (this);">

=======================================================================================*/
function mascara_Login (objeto){
        var valor = objeto.value;

    for(i = 0; i < valor.length; i++){
        if(valor.charAt(i) == '!' || valor.charAt(i) == '@' || valor.charAt(i) == '#' || valor.charAt(i) == '$' || valor.charAt(i) == '%' || valor.charAt(i) == '&' || valor.charAt(i) == '*' || valor.charAt(i) == '(' || valor.charAt(i) == ')' || valor.charAt(i) == '/' || valor.charAt(i) == '%' ){
            valor = valor.substring(0,i)+valor.substring(i+1,valor.length);
            i = 0;
        }
    }
    if(valor.charAt(0) == '!' || valor.charAt(0) == '@' || valor.charAt(0) == '#' || valor.charAt(0) == '$' || valor.charAt(0) == '%' || valor.charAt(0) == '&' || valor.charAt(0) == '*' || valor.charAt(0) == '(' || valor.charAt(0) == ')' || valor.charAt(i) == '/' || valor.charAt(i) == '%'){
        valor = valor.substring(1,valor.length);
    }

    objeto.value = valor;

    return true;
}



/***************************************************************************************/
/***********************************     VALIDACOES   **********************************/
/***************************************************************************************/



/* =====================================================================================
           FUNÇÃO:    valida_Alpha(campo)

           DESCRIÇÃO: verifica se todos os carateres do campo são letras (Maiúsculas ou Minúsculas).

           PARAMETERS: campo (this ou o nome do input)

           USO: o valor deve conter apenas letras A-Z ou a-z, espaços e caracteres acentuados.

        EXEMPLO: <input class="campoForm" type="textbox" name="NOME" MAXLENGTH="40" onChange="return valida_Alpha(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do campo.

=======================================================================================*/
function valida_Alpha (campo) {
        var valor = campo.value;
        for(i = 0; i < valor.length; i++){
        if (!((valor.charCodeAt(i) >= 65 && valor.charCodeAt(i) <= 90) ||
                  (valor.charCodeAt(i) >= 97 && valor.charCodeAt(i) <= 122) ||
                          (valor.charCodeAt(i) >= 192 && valor.charCodeAt(i) <= 255) ||
                          (valor.charCodeAt(i) == 32))) {
                        alert("Por favor, o campo deve conter apenas letras.");
                        campo.focus();
                        util_Seleciona(campo);
                return false;
        }
    }
    return true;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_CampoObrigatorio(formulario, lista)

           DESCRIÇÃO: verifica se os campos especificados como parâmetro foram informados.

           PARAMETERS: formulario (nome do formulario onde estão os campos)
                                   lista (string que contém o id dos campos separados por ','
                                   e títulos dos campos separados por ':')

           USO: o nome do formulário (propriedade NAME da tag FORM) deve ser informado sem ser precedido por 'document'.
                    a função pode ser usada no evento onClick de um botão ou no evento onSubmit do formulário.

        EXEMPLO:
                <form id="form1" name="form1" method="POST" action="" onSubmit="return valida_CampoObrigatorio(this,'txt_nome:Nome,txt_cpf:CPF,txt_tel:Telefone');">
                        Nome <input class="campoForm" id="txt_nome" type="text" onchange="valida_Aplha(this);" >
                        CPF <input class="campoForm" id="txt_cpf" type="text" onchange="valida_CPF(this);" >
                        Telefone <input class="campoForm" id="txt_tel" type="text" onchange="valida_Telefone(this);" >
                        <input class="campoForm" type="submit" value="OK">
                </form>
=======================================================================================*/
function valida_CampoObrigatorio (formulario, lista)
{
        formulario = String(formulario.id);
        lista = String(lista);
        var checks = lista.split(",");
        for (var i = 0; i < checks.length; i++) {
                if (checks[i].length > 0) {
                        var nome = checks[i].split(":");
                        var objCheck = eval('document.' + formulario + '.' + nome[0]);
                    if (objCheck.value == '') {
                            if (typeof(nome[1]) == "undefined") {
                                    nome[1] = "";
                            }
                            alert("Por favor, o valor do campo " + nome[1].toUpperCase() + " deve ser informado !");
                                objCheck.focus();
                            return false;
                    }
            }
    }
        return true;
}
//=====================================================================================


/* =====================================================================================
           FUNÇÃO:    valida_CEP(campo)

           DESCRIÇÃO: verifica se o campo contém um valor de CEP válido.

           PARAMETERS: campo (this ou o nome do input)

           USO: o valor do CEP deve estar no formato 99.999-999

        EXEMPLO: <input class="campoForm" type="textbox" name="CEP" MAXLENGTH="10" onChange="return valida_CEP(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do CEP.

=======================================================================================*/
function valida_CEP(campo) {
        var valor = campo.value;

        if (valor.length > 0) {
                if (valor.length == 10) {
                        digito1 = parseInt(valor.substring(0,1));
                    digito2 = parseInt(valor.substring(1,2));
                    digito3 = valor.substring(2,3);
                    digito4 = parseInt(valor.substring(3,4));
                    digito5 = parseInt(valor.substring(4,5));
                    digito6 = parseInt(valor.substring(5,6));
                    digito7 = valor.substring(6,7);
                    digito8 = parseInt(valor.substring(7,8));
                    digito9 = parseInt(valor.substring(8,9));
                    digito10 = parseInt(valor.substring(9,10));

                    if (util_IsDigit(digito1) && util_IsDigit(digito2) && digito3 == "." && util_IsDigit(digito4) &&
                            util_IsDigit(digito5) && util_IsDigit(digito6) && digito7 == "-" && util_IsDigit(digito8) &&
                                util_IsDigit(digito1) && util_IsDigit(digito2)) {
                                return true;
                        }
                        else {
                                alert("Por favor, verifique o formato do CEP !");
                                campo.focus();
                        util_Seleciona(campo);
                                return false;
                        }
                }
                else {
                        alert("Por favor, verifique o formato do CEP !");
                        campo.focus();
                util_Seleciona(campo);
                        return false;
                }
        }
        return true;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_CheckObrigatorio(formulario, lista)

           DESCRIÇÃO: verifica se pelo menos um campo do tipo CHECKBOX de um grupo foi selecionado.

           PARAMETERS: formulario (nome do formulario onde estão os checkbox's)
                                   lista (string que contém o id dos checkbox's separados por ',')

           USO: o nome do formulário (propriedade NAME da tag FORM) deve ser informado sem ser precedido por 'document'.
                    a função pode ser usada no evento onClick de um botão ou no evento onSubmit do formulário.

        EXEMPLO:
                        <input class="campoForm" name="ingles" id="ingles" type="checkbox" value="I"> Ingles
                        <input class="campoForm" name="frances" id="frances" type="checkbox" value="F"> Frances
                        <input class="campoForm" name="espanhol" id="espanhol" type="checkbox" value="E"> Espanhol
                        <input class="campoForm" type="button" name="cmd_ok" value="OK" onClick="valida_CheckObrigatorio(form1,'ingles,frances,espanhol');">

=======================================================================================*/
function valida_CheckObrigatorio (formulario, lista, grupo)
{
        formulario = String(formulario.id);
        lista = String(lista);
        var checks = lista.split(",");
        for (var i = 0; i < checks.length; i++) {
                var objCheck = eval('document.' + formulario + '.' + checks[i]);
            if (objCheck.checked == true) {
                    return true;
            }
    }
    if (String(grupo).length > 0) {
                alert("Por favor, pelo menos uma das opções de " + grupo + " deve ser selecionada !");
        }
        else {
                alert("Por favor, pelo menos uma das opções deve ser selecionada !");
        }
        var primeiro = eval('document.' + formulario + '.' + checks[0]);
        primeiro.focus();
        return false;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_CNPJ(campo)

           DESCRIÇÃO: verifica se o campo contém um número de CNPJ válido.

           PARAMETERS: campo (this ou o nome do input)

           USO: o número do CNPJ deve estar no formato 99.999.999/9999-99

        EXEMPLO: <input class="campoForm" type="textbox" name="NUM_CNPJ" MAXLENGTH="18" onChange="return valida_CNPJ(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado com o numero de caracteres do CNPJ (18).

=======================================================================================*/
function valida_CNPJ(campo) {
        var numCIC = String(campo.value);

        // Verifica o formato do CNPJ.
        if (numCIC.length > 0) {
                if (numCIC.substring(2,3) == "." && numCIC.substring(6,7) == "." && numCIC.substring(10,11) == "/" && numCIC.substring(15,16) == "-") {
                        // Retira os caracteres de formatação.
                        numCIC = numCIC.replace( "-", "" );
                        numCIC = numCIC.replace( ".", "" );
                        numCIC = numCIC.replace( ".", "" );
                        numCIC = numCIC.replace( "/", "" );
                } else {
                        alert("Por favor, verifique o formato do CNPJ!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
                for (var i=0; i < numCIC.length; i++){
                        if (!(util_IsDigit(numCIC.charAt(i)))) {
                                alert("Por favor, verifique a validação do CNPJ!");
                                campo.focus();
                                util_Seleciona(campo);
                            return false;
                          }
                   }
        } else {
                return true;
        }


        var numDois = numCIC.substring(numCIC.length-2, numCIC.length);
        var novoCIC = numCIC.substring(0, numCIC.length-2);

        switch (numCIC.length){
                case 11 :
                         numLim = 11;
                         break;
                case 14 :
                        numLim = 9;
                        break;
                default :
                    alert("Por favor, verifique o formato do CNPJ!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
        }

        var numSoma = 0;
        var Fator = 1;
        for (var i=novoCIC.length-1; i>=0 ; i--) {
                Fator = Fator + 1;

                if (Fator > numLim) {
                 Fator = 2;
                }
                numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
        }

        numSoma = numSoma/11;
        var numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
         if (numResto > 1) {
                numResto = 11 - numResto;
         }
         else {
                numResto = 0;
         }
         //-- Primeiro dígito calculado. Fará parte do novo cálculo.
         var numDigito = String(numResto);
         novoCIC = novoCIC.concat(numResto);

         numSoma = 0;
        Fator = 1;
        for (var i=novoCIC.length-1; i>=0 ; i--) {
                Fator = Fator + 1;
                if (Fator > numLim) {
                         Fator = 2;
                }
                numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
        }
        numSoma = numSoma/11;
        numResto = numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
         if (numResto > 1) {
                numResto = 11 - numResto;
         }
         else {
                numResto = 0;
         }
        //-- Segundo dígito calculado.
        numDigito = numDigito.concat(numResto);
        if (numDigito == numDois) {
                return true;
        }
        else {
            alert("Por favor, verifique o valor do CNPJ!");
                campo.focus();
                util_Seleciona(campo);
                return false;
        }
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_CPF(campo)

           DESCRIÇÃO: verifica se o campo contém um número de CPF válido.

           PARAMETERS: campo (this ou o nome do input)

           USO: o número do CPF deve estar no formato 999.999.999-99

        EXEMPLO: <input class="campoForm" type="textbox" name="NUM_CPF" MAXLENGTH="14" onChange="return valida_CPF(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado com o numero de caracteres do CPF (14).

=======================================================================================*/
function valida_CPF(campo) {
        var numCIC = String(campo.value);
	
		if(numCIC=='000.000.000-00')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}


		 if(numCIC=='111.111.111-11')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}

		if(numCIC=='222.222.222-22')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}
		if(numCIC=='333.333.333-33')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}


		 if(numCIC=='444.444.444-44')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}

		if(numCIC=='555.555.555-55')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}
		
		if(numCIC=='666.666.666-66')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}


		 if(numCIC=='777.777.777-77')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}

		 if(numCIC=='888.888.888-88')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}
		
		 if(numCIC=='999.999.999-99')
		{
			     alert("Por favor, verifique o  CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
		}		
		
        // Verifica o formato do CPF.
        if (numCIC.length > 0) {
                if (numCIC.substring(3,4) == "." && numCIC.substring(7,8) == "." && numCIC.substring(11,12) == "-") {
                        // Retira os caracteres de formatação.
                        numCIC = numCIC.replace( "-", "" );
                        numCIC = numCIC.replace( ".", "" );
                        numCIC = numCIC.replace( ".", "" );
                } else {
                        alert("Por favor, verifique o formato do CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
                for (var i=0; i < numCIC.length; i++){
                        if (!(util_IsDigit(numCIC.charAt(i)))) {
                                alert("Por favor, verifique o formato do CPF!");
                                campo.focus();
                                util_Seleciona(campo);
                            return false;
                          }
                   }
        } else {
                return true;
        }

        var numDois = numCIC.substring(numCIC.length-2, numCIC.length);
        var novoCIC = numCIC.substring(0, numCIC.length-2);

        switch (numCIC.length){
                case 11 :
                         numLim = 11;
                         break;
                case 14 :
                        numLim = 9;
                        break;
                default :
                    alert("Por favor, verifique o formato do CPF!");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
        }

        var numSoma = 0;
        var Fator = 1;
        for (var i=novoCIC.length-1; i>=0 ; i--) {
                Fator = Fator + 1;

                if (Fator > numLim) {
                 Fator = 2;
                }
                numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
        }

        numSoma = numSoma/11;
        var numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
         if (numResto > 1) {
                numResto = 11 - numResto;
         }
         else {
                numResto = 0;
         }
         //-- Primeiro dígito calculado. Fará parte do novo cálculo.
         var numDigito = String(numResto);
         novoCIC = novoCIC.concat(numResto);

         numSoma = 0;
        Fator = 1;
        for (var i=novoCIC.length-1; i>=0 ; i--) {
                Fator = Fator + 1;
                if (Fator > numLim) {
                         Fator = 2;
                }
                numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
        }
        numSoma = numSoma/11;
        numResto = numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
         if (numResto > 1) {
                numResto = 11 - numResto;
         }
         else {
                numResto = 0;
         }
        //-- Segundo dígito calculado.
        numDigito = numDigito.concat(numResto);
        if (numDigito == numDois) {
                return true;
        }
        else {
			alert("Por favor, verifique o valor do CPF!");
            campo.focus();
            util_Seleciona(campo);
            return false;
        }
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_Data (campo)

           DESCRIÇÃO: verifica se o campo contém o valor de uma data válida.

           PARAMETERS: campo (this ou o nome do input)

           USO: o valor da data deve estar no formato 99/99/9999

        EXEMPLO: <input class="campoForm" type="textbox" name="NUM_DATA" MAXLENGTH="10" onChange="return valida_Data(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado com o numero de caracteres da data (10).

=======================================================================================*/
function valida_Data (campo) {


         if(campo.value!="") {
        digito1 = parseInt(campo.value.substring(0,1));
        digito2 = parseInt(campo.value.substring(1,2));
        digito3 = campo.value.substring(2,3);
        digito4 = parseInt(campo.value.substring(3,4));
        digito5 = parseInt(campo.value.substring(4,5));
        digito6 = campo.value.substring(5,6);
        digito7 = parseInt(campo.value.substring(6,7));
        digito8 = parseInt(campo.value.substring(7,8));
        digito9 = parseInt(campo.value.substring(8,9));
        digito10 = parseInt(campo.value.substring(9,10));

        if(!(util_IsDigit(digito1) && util_IsDigit(digito2) && digito3=="/" && util_IsDigit(digito4) && util_IsDigit(digito5) && digito6=="/" && util_IsDigit(digito7) && util_IsDigit(digito8) && util_IsDigit(digito9) && util_IsDigit(digito10) )) {
            alert("Por favor, o formato desta data esta incorreta!");
            campo.focus();
            util_Seleciona(campo);
            return false;
        }
    }
        else {
                return true;
        }

        // Guarda o valor do dia.
    if(campo.value.substring(0,1) == '0'){
        dia = parseInt(campo.value.substring(1,2));
    }else{
        dia = parseInt(campo.value.substring(0,2));
    }
    // Guarda o valor do mês.
    if(campo.value.substring(3,4) == '0'){
        mes = parseInt(campo.value.substring(4,5));
    }else{
        mes = parseInt(campo.value.substring(3,5));
    }
        // Guarda o valor do ano.
    ano = parseInt(campo.value.substring(6,campo.value.length));
        // Formata o valor do ano.
    if(ano > 0 && ano <= 80){
        ano += 2000;
        data.value = campo.value.substring(0,6) + ano;
    }else if(ano > 80 && ano < 100){
        ano += 1900;
        data.value = campo.value.substring(0,6) + ano;
    }

    if( ((mes=="1" || mes=="3" || mes=="5" || mes=="7" || mes=="8" || mes=="10" || mes=="12") && dia>"31")
        || ((mes=="4" || mes=="6" || mes=="9" || mes=="11") && dia > "30")
        || (dia>"29" && mes=="2" && util_isBissexto(ano) )
        || (dia>"28" && mes=="2" && !util_isBissexto(ano) ) ){
        alert("Por favor, verifique o dia da data!");
        campo.focus();
        util_Seleciona(campo);
        return false;
    }else if (mes > "12"){
        alert("Por favor, verifique o mês da data!");
        campo.focus();
        util_Seleciona(campo);
        return false;
    }else if (ano < "1000" || ano > "10000"){
        alert("Por favor, verifique o ano da data!");
        campo.focus();
        util_Seleciona(campo);
        return false;
    }
    return true;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_Decimal(valor, nCasas)

           DESCRIÇÃO: verifica se o campo contém um valor numérico decimal válido.

           PARAMETERS: valor (valor numérico)
                                   nCasas (número de casas decimais)

           USO: o valor do número deve estar no formato 999.999.999,9999

                    * Esta função é utilizada pelas funções valida_Nume

=======================================================================================*/
function valida_Decimal(valor, nCasas)
{
        var decimal;
        var inteiro;

        if (isNaN(valor)) {
                alert("Por favor, o valor do campo deve ser numérico!");
        return false;
        }

        // Guarda o valor decimal.
        if (valor.indexOf(".") >= 0) {
                decimal = valor.substring(valor.indexOf(".")+1,valor.length);
        }
        else {
                decimal = 0;
        }
        // Guarda o valor inteiro.
        if (valor.indexOf(".") >= 0) {
                inteiro = valor.substring(0,valor.indexOf("."));
        }
        else {
                inteiro = valor;
        }

        if (decimal.length > nCasas) {
        alert("Por favor, o número deve ter no máximo " + nCasas + " casas decimais !");
        return false;
        }
        return true;
}
//=====================================================================================

/* =====================================================================================
           FUNÇÃO:    valida_Email(campo)

           DESCRIÇÃO: verifica se o campo contém um E-Mail válido.

           PARAMETERS: campo (this ou o nome do input)

           USO: o valor do E-Mail deve estar no formato aaaa@aaaa.aaa.aa

                    * O e-mail deve conter os caracteres '@' e '.' e não deve conter espaço, '/', ')','(',']','[' e '..'

        EXEMPLO: <input class="campoForm" type="textbox" name="EMAIL" MAXLENGTH="30" onChange="return valida_Email(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do e-mail.

=======================================================================================*/
function valida_Email(campo) {
        if (campo.value == "") {
                return true;
          }

          if (campo.value != "") {
            prim = campo.value.indexOf("@")
                if(prim < 2) {
                        //alert("Por favor,  e-mail  incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}
                if(campo.value.indexOf("@",prim + 1) != -1) {
                        //alert("Por favor,  e-mail  incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				} 
 /*if(campo.value.indexOf(".") < 1) {
                        alert("Por favor, o e-mail está incorreto.");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
                }*/
                if(campo.value.indexOf(" ") != -1) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf("zipmeil.com") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf("hotmeil.com") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf(".@") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmail").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf("@.") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf(".com.br.") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf("/") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf("[") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf("]") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf("(") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmail").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf(")") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
                if(campo.value.indexOf("..") > 0) {
                        //alert("Por favor, o e-mail está incorreto.");
                        document.getElementById("errorEmailing").innerHTML="<font color='#EA5200'&nbsp;><img src='../aplicativos/centros/reservas_online/img/unchecked.gif'>&nbsp;<b>Por favor,  e-mail  incorreto.</b><br /></font>";
						campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
				else
				{
					document.getElementById("errorEmailing").innerHTML="<img src='../aplicativos/centros/reservas_online/img/checked.gif'>";
				}				
          }
        return true;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_Hora(campo, fmt)

           DESCRIÇÃO: verifica se o campo contém o valor de uma hora válida.

           PARAMETERS: campo (this ou o nome do input)
                                   fmt (formato da data): 24 = 99:99 , 12 = 99:99 AM|PM

           USO: o valor da hora deve estar no formato 99:99

        EXEMPLO: <input class="campoForm" type="textbox" name="NUM_HORA" MAXLENGTH="5" onChange="return valida_Hora(this,24);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado com o numero de caracteres da hora (5).

=======================================================================================*/
function valida_Hora(campo, fmt) {
        var hora;
        var minuto;

        if (campo.value.length > 0) {
                // Verifica o formato da hora 24h.
                if(campo.value.length == 5 && fmt == '24') {
                digito1 = parseInt(campo.value.substring(0,1));
                digito2 = parseInt(campo.value.substring(1,2));
                digito3 = campo.value.substring(2,3);
                digito4 = parseInt(campo.value.substring(3,4));
                digito5 = parseInt(campo.value.substring(4,5));

                if (!(util_IsDigit(digito1) && util_IsDigit(digito2) && digito3 == ":" && util_IsDigit(digito4) && util_IsDigit(digito5))) {
                    alert("Por favor, o formato da hora esta incorreto!");
                    campo.focus();
                    util_Seleciona(campo);
                    return false;
                }
            }
            // Verifica o formato da hora 12h.
                else if(campo.value.length == 8 && fmt == '12') {
                digito1 = parseInt(campo.value.substring(0,1));
                digito2 = parseInt(campo.value.substring(1,2));
                digito3 = campo.value.substring(2,3);
                digito4 = parseInt(campo.value.substring(3,4));
                digito5 = parseInt(campo.value.substring(4,5));
                digito6 = campo.value.substring(5,6);
                digito7 = campo.value.substring(6,8);

                if (!(util_IsDigit(digito1) && util_IsDigit(digito2) && digito3 == ":" && util_IsDigit(digito4) && util_IsDigit(digito5) && digito6 == " " && (digito7 == "AM" || digito7 == "PM" || digito7 == "am" || digito7 == "pm"))) {
                    alert("Por favor, o formato desta hora esta incorreta!");
                    campo.focus();
                    util_Seleciona(campo);
                    return false;
                }
            } else if (fmt != '24' && fmt != '12') {
                    alert("Por favor, o formato da hora esta incorreto!");
                    campo.focus();
                    util_Seleciona(campo);
                    return false;
            }
            else {
                    alert("Por favor, o formato da hora esta incorreto!");
                    campo.focus();
                    util_Seleciona(campo);
                    return false;
            }

                // Guarda o valor da hora.
            if(campo.value.substring(0,1) == '0'){
                hora = parseInt(campo.value.substring(1,2));
            }else{
                    hora = parseInt(campo.value.substring(0,2));
                    if (fmt == '12') {
                        if ((digito7 == "P" || digito7 == "p") && hora > 12) {
                                    hora = hora + 12;
                                    if (hora == 24) {hora = 0;}
                            } else if (hora > 12) {
                                        alert("Por favor, verifique o valor das horas!");
                                        campo.focus();
                                        util_Seleciona(campo);
                                        return false;
                            }
                    }
            }
            // Guarda o valor dos minutos.
            if(campo.value.substring(3,4) == '0'){
                minuto = parseInt(campo.value.substring(4,campo.value.length));
            }else{
                minuto = parseInt(campo.value.substring(3,campo.value.length));
            }

            if (!((hora >= 0) && (hora <= 23))) {
                alert("Por favor, verifique o valor das horas!");
                campo.focus();
                util_Seleciona(campo);
                return false;
            }else if (!((minuto >= 0) && (minuto <= 59))) {
                alert("Por favor, verifique o valor dos minutos!");
                campo.focus();
                util_Seleciona(campo);
                return false;
            }
        }
    return true;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_LimiteNumero(campo, maximo, minimo)

           DESCRIÇÃO: verifica se o valor do número está entre os limites inferior e superios,
                                   que são passados como parâmetro.

           PARAMETERS: campo (this ou o nome do input)
                                   maximo (valor máximo do número: valor <= maximo)
                                   mínimo (valor mínimo do número: valor >= minimo)

           USO: o valor deve ser númérico, assim como os parâmetros maximo e minimo.

        EXEMPLO: <input class="campoForm" type="textbox" name="NUM" MAXLENGTH="10" onChange="return valida_LimiteNumero(this,1500,350);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do número.

=======================================================================================*/
function valida_LimiteNumero (campo, maximo, minimo) {
        var valor = campo.value;

        if (valor.length > 0) {
                if (util_IsNumber(valor)) {
                        if (valor < minimo) {
                                alert("Por favor, o valor do campo deve ser maior ou igual a " + minimo + " !");
                                campo.focus();
                                util_Seleciona(campo);
                                return false;
                        }
                        /*if (valor > maximo) {
                                alert("Por favor, o valor do campo deve ser menor ou igual a " + maximo + " !");
                                campo.focus();
                                util_Seleciona(campo);
                                return false;
                        }*/
                }
                else {
                        alert("Por favor, o valor do campo deve ser numérico !");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
                return true;
        }
        return true;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_Login(campo)

           DESCRIÇÃO: verifica se o campo contém caracteres especiais ou inválidos.
                              pode ser usado para validar o login do usuário.

           PARAMETERS: campo (this ou o nome do input)

           USO: o valor do campo não deve conter os seguintes caracteres:

                           - " ' ! @ # $ % & * ( ) /

        EXEMPLO: <input class="campoForm" type="textbox" name="LOGIN" MAXLENGTH="10" onChange="return valida_Login(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do campo.

=======================================================================================*/
function valida_Login(campo) {
    var valor = campo.value;

    for(i = 0; i < valor.length; i++){
        if(valor.charAt(i) == '-' || valor.charAt(i) == '"' || valor.charAt(i) == "'" || valor.charAt(i) == '!' || valor.charAt(i) == '@' || valor.charAt(i) == '#' || valor.charAt(i) == '$' || valor.charAt(i) == '%' || valor.charAt(i) == '&' || valor.charAt(i) == '*' || valor.charAt(i) == '(' || valor.charAt(i) == ')' || valor.charAt(i) == '/' ){
                        alert("Por favor, verifique o formato do campo !");
                        campo.focus();
                        util_Seleciona(campo);
            return false;
        }
    }
    return true;
}

//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_Telefone(campo)

           DESCRIÇÃO: verifica se o campo contém um número de telefone válido.

           PARAMETERS: campo (this ou o nome do input)

           USO: o número do telefone deve estar nos formatos:
                                                                                                                    999-9999
                                                                                                                    (99)999-9999
                                                                                                                      9999-9999
                                                                                                                    (99)9999-9999

        EXEMPLO: <input class="campoForm" type="textbox" name="NUM_TEL" MAXLENGTH="13" onChange="return valida_Telefone(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado com o numero de caracteres do telefone (13).

=======================================================================================*/
function valida_Telefone(objeto) {
        var valor;
    valor=objeto.value;

    switch (valor.length){
            case 0 :
                    return true;

                // Número sem DDD com prefixo igual a 3 casas
                case 8 :
                        digito1 = parseInt(valor.substring(0,1));
                digito2 = parseInt(valor.substring(1,2));
                digito3 = parseInt(valor.substring(2,3));
                digito4 = valor.substring(3,4);
                digito5 = parseInt(valor.substring(4,5));
                digito6 = parseInt(valor.substring(5,6));
                digito7 = parseInt(valor.substring(6,7));
                digito8 = parseInt(valor.substring(7,8));


                if(util_IsDigit(digito1) && util_IsDigit(digito2) && util_IsDigit(digito3) && digito4=='-' &&
                 util_IsDigit(digito5) && util_IsDigit(digito6) && util_IsDigit(digito7) && util_IsDigit(digito8)) {
                    return true;
                }else{
                            alert("Por favor, verifique o formato do telefone!");
                        objeto.focus();
                        util_Seleciona(objeto);
                    return false;
                }
                         break;

            // Número sem DDD com prefixo de 4 casas
                case 9 :
                        digito1 = parseInt(valor.substring(0,1));
                digito2 = parseInt(valor.substring(1,2));
                digito3 = parseInt(valor.substring(2,3));
                digito4 = parseInt(valor.substring(3,4));
                digito5 = valor.substring(4,5);
                digito6 = parseInt(valor.substring(5,6));
                digito7 = parseInt(valor.substring(6,7));
                digito8 = parseInt(valor.substring(7,8));
                digito9 = parseInt(valor.substring(8,9));

                if(util_IsDigit(digito1) && util_IsDigit(digito2) && util_IsDigit(digito3) && util_IsDigit(digito4) && digito5=='-' &&
                 util_IsDigit(digito6) && util_IsDigit(digito7) && util_IsDigit(digito8) && util_IsDigit(digito9)){
                    return true;
                }else{
                            alert("Por favor, verifique o formato do telefone!");
                        objeto.focus();
                        util_Seleciona(objeto);
                    return false;
                }
                         break;

                // Número com DDD com prefixo de 3 digitos
                case 13 :
                        digito1 = valor.substring(0,1);
                digito2 = parseInt(valor.substring(1,2));
                digito3 = parseInt(valor.substring(2,3));
                digito4 = valor.substring(3,5);
                digito5 = parseInt(valor.substring(5,6));
                digito6 = parseInt(valor.substring(6,7));
                digito7 = parseInt(valor.substring(7,8));
                digito8 = valor.substring(8,9);
                digito9 = parseInt(valor.substring(9,10));
                digito10 = parseInt(valor.substring(10,11));
                digito11 = parseInt(valor.substring(11,12));
                digito12 = parseInt(valor.substring(12,13));

                if(digito1=="(" && util_IsDigit(digito2) && util_IsDigit(digito3) && digito4==") " && util_IsDigit(digito5) &&
                 util_IsDigit(digito6) && util_IsDigit(digito7) && digito8=="-" && util_IsDigit(digito9) &&
                         util_IsDigit(digito10) && util_IsDigit(digito11) && util_IsDigit(digito12)){
                    return true;
                }else{
                               alert("Por favor, verifique o formato do telefone!");
                        objeto.focus();
                        util_Seleciona(objeto);
                    return false;
                }
                        break;

                 // Número com DDD com prefixo de 4 digitos
                case 14 :
                        digito1 = valor.substring(0,1);
                digito2 = parseInt(valor.substring(1,2));
                digito3 = parseInt(valor.substring(2,3));
                digito4 = valor.substring(3,5);
                digito5 = parseInt(valor.substring(5,6));
                digito6 = parseInt(valor.substring(6,7));
                digito7 = parseInt(valor.substring(7,8));
                digito8 = parseInt(valor.substring(8,9));
                digito9 = valor.substring(9,10);
                digito10 = parseInt(valor.substring(10,11));
                digito11 = parseInt(valor.substring(11,12));
                digito12 = parseInt(valor.substring(12,13));
                digito13 = parseInt(valor.substring(13,14));

                if(digito1=="(" && util_IsDigit(digito2) && util_IsDigit(digito3) && digito4==") " && util_IsDigit(digito5) &&
                 util_IsDigit(digito6) && util_IsDigit(digito7) && util_IsDigit(digito8) && digito9=="-" && util_IsDigit(digito10) &&
                         util_IsDigit(digito11) && util_IsDigit(digito12) && util_IsDigit(digito13)){
                    return true;
                }else{
                               alert("Por favor, verifique o formato do telefone!");
                        objeto.focus();
                        util_Seleciona(objeto);
                    return false;
                }
                        break;

                default :
                        alert("Por favor, verifique o formato do telefone!");
                    objeto.focus();
                    util_Seleciona(objeto);
                        return false;
        }
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_Numero(campo, nCasas)

           DESCRIÇÃO: verifica se o campo contém um valor numérico válido.

           PARAMETERS: campo (this ou o nome do input)
                                   nCasas (número de casas decimais)

           USO: o valor do número deve estar no formato 999.999.999,9999

        EXEMPLO: <input class="campoForm" type="textbox" name="NUM" MAXLENGTH="17" onChange="return valida_Numero(this,4);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do número.

=======================================================================================*/
function valida_Numero(campo, nCasas)
{
        var valor = campo.value;

        while(valor.indexOf(".") >= 0){
        valor = valor.replace(".","");
    }
        valor = valor.replace(',','.');

        if (valida_Decimal(valor,nCasas)) {
                return true;
        }
        else {
                campo.focus();
        util_Seleciona(campo);
                return false;
        }
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_Percentual(campo)

           DESCRIÇÃO: verifica se o campo contém um valor percentual válido.

           PARAMETERS: campo (this ou o nome do input)

           USO: o valor do percentual deve estar no formato 9999,99%

        EXEMPLO: <input class="campoForm" type="textbox" name="NUM_PERC" MAXLENGTH="7" onChange="return valida_Percentual(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do valor percentual.

=======================================================================================*/
function valida_Percentual (campo) {
        var valor = campo.value;

        if (valor != "") {

                if (valor.indexOf("%") >= 0) {
                        valor = valor.replace("%","");
                }
                else {
                        alert("Por favor, o formato do campo está incorreto (%) !");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
                }

                valor = valor.replace(",",".");
                if (valida_Decimal(valor,2)) {
                        return true;
                }
                else {
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
        }
        else {
                return true;
        }
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_RadioObrigatorio(grupo)

           DESCRIÇÃO: verifica se pelo menos um Radio Button de um grupo foi selecionado.

           PARAMETERS: grupo (nome do grupo de radio buttons)

           USO: o nome do grupo (propriedade NAME) deve o mesmo para todos INPUTs do tipo RADIO.
                    a função pode ser usada no evento onClick de um botão ou no evento onSubmit do formulário.

        EXEMPLO:
                        <input class="campoForm" name="SEXO" id="masculino" type="radio" value="M"> Masculino
                        <input class="campoForm" name="SEXO" id="feminino" type="radio" value="F"> Feminino
                        <input class="campoForm" type="button" name="cmd_ok" value="OK" onClick="valida_RadioObrigatorio(SEXO);">
=======================================================================================*/
function valida_RadioObrigatorio (grupo)
{
        for (var i = 0; i < grupo.length; i++) {
            if (grupo[i].checked == true) {
                    return true;
            }
    }
        alert("Por favor, pelo menos uma das opções deve ser selecionada !");
        grupo[0].focus();
        return false;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_StringSemAspas(campo)

           DESCRIÇÃO: verifica se o campo contém caracteres especiais ou inválidos.
                              pode ser usado para validar o login do usuário.

           PARAMETERS: campo (this ou o nome do input)

           USO: o valor do campo não deve conter os seguintes caracteres:

                            " '

        EXEMPLO: <input class="campoForm" type="textbox" name="LOGIN" MAXLENGTH="10" onChange="return valida_StringSemAspas(this);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do campo.

=======================================================================================*/
function valida_StringSemAspas(campo) {
    var valor = campo.value;

    for(i = 0; i < valor.length; i++){
        if(valor.charAt(i) == '"' || valor.charAt(i) == "'"){
                        alert("Por favor, verifique se o campo possui caracteres inválidos !");
                        campo.focus();
                        util_Seleciona(campo);
            return false;
        }
    }
    return true;
}
//=====================================================================================



/* =====================================================================================
           FUNÇÃO:    valida_TamanhoCampo(campo, nCaracteres)

           DESCRIÇÃO: verifica se o número de carateres do campo está correto.

           PARAMETERS: campo (this ou o nome do input)
                                   nCaracteres (número de caracteres do campo)

           USO: o valor deve conter o número de carateres especificado como parâmetro.

        EXEMPLO: <input class="campoForm" type="textbox" name="UF" MAXLENGTH="2" onChange="return valida_TamanhoCampo(this,2);">

        IMPORTANTE: o MAXLENGTH do input deve ser setado de acordo com o numero de caracteres do campo.

=======================================================================================*/
function valida_TamanhoCampo (campo, nCaracteres) {
        if (campo.value.length > 0) {
                if (campo.value.length > nCaracteres) {
                        alert("Por favor, o tamanho do campo está incorreto. Ele deve conter " + nCaracteres + " caracteres.");
                        campo.focus();
                        util_Seleciona(campo);
                        return false;
                }
                return true;
        }
        return true;
}
//=====================================================================================



/***************************************************************************************/
/*************************************     UTILS   *************************************/
/***************************************************************************************/

// funções utilizadas pelas funções de validação e máscara.



/* =====================================================================================
           FUNÇÃO:    util_CodigoASCII(evento)

           DESCRIÇÃO: retorna o código do caracter digitado em um campo.

           PARAMETROS: evento (objeto do evento disparado).

           RETORNO: código ASCII do caracter digitado.

           EXEMPLOS:
                                if (util_CodigoASCII(event) == 32) {
                                        alert('Espaço');
                                }
=======================================================================================*/
function util_CodigoASCII(evento) {
        browser = util_DetectaBrowser();
    if(browser == "msie") {
        return  evento.keyCode;
    } else {
        return evento.which;
    }
}



/* =====================================================================================
           FUNÇÃO:    util_Compara(objeto1, objeto2)

           DESCRIÇÃO: compara dois valores de alfanuméricos.

           PARAMETROS: objeto1 (primeiro valor a ser comparado)
                                   objeto2 (segundo valor a ser comparado)

           RETORNO: 1 - se o primeiro valor é maior que o do segundo.
                            2 - se o segundo valor é maior que o do primeiro.
                            3 - se os dois valores são iguais.

           EXEMPLOS:
                                if (util_Compara(campo1.value ,campo2.value) == 3) {
                                        alert('Valores iguais');
                                }
=======================================================================================*/
function util_Compara(objeto1, objeto2) {
        if (objeto1 > objeto2) {
                return 1;
        } else if (objeto1 < objeto2) {
                return 2;
        } else if (objeto1 == objeto2) {
                return 3;
        }
}



/* =====================================================================================
           FUNÇÃO:    util_Confirma (mens)

           DESCRIÇÃO: envia uma mensagem de confirmação e retorna a resposta do usuário.

           PARAMETROS: mens (mensagem de confirmação).

           RETORNO: true - se o botão OK foi pressionado.
                            false - se o botão CANCELAR foi pressionado.

           EXEMPLOS:
                                if (util_Confirma('Comfirma exclusão do registro ?')) {
                                        alert('Registro excluído.');
                                }
=======================================================================================*/
function util_Confirma (mens) {
        return confirm(mens);
}



/* =====================================================================================
           FUNÇÃO:    util_DetectaBrowser ()

           DESCRIÇÃO: detecta o browser utilizado pelo usuário.

           PARAMETROS:

           RETORNO:        'ns' - Netscape Comunicator
                                    'msie' - Internet Explorer
                                    'op' - Opera
                                    'n/a' - Outros

        EXEMPLOS:
                                if (detecta_Browser() == 'msie') {
                                        alert('Microsoft Internet Explorer');
                                }
=======================================================================================*/
function util_DetectaBrowser () {
        var Browser;

          // detecta browser
          if (navigator.appName.indexOf("Netscape") != -1) {
                  Browser = "ns";
        } else if (navigator.appName.indexOf("Microsoft Internet Explorer") != -1) {
                  Browser = "msie";
        } else if (navigator.userAgent.indexOf("Opera") != -1) {
                  Browser = "op";
        } else {
                Browser = "n/a";
        }
        return Browser;
}



/* =====================================================================================
           FUNÇÃO:    util_DetectaPlataforma ()

           DESCRIÇÃO: detecta a plataforma do Sistema Operacional.

           PARAMETROS:

           RETORNO:        'WIN32' - Microsoft Windows
                                  'MacPPC' - Macintosh Power PC
        EXEMPLOS:
                                if (detecta_Plataforma() == 'WIN32') {
                                        alert('Microsoft Windows');
                                }
=======================================================================================*/
function util_DetectaPlataforma () {
          return navigator.platform;
}



/* =====================================================================================
           FUNÇÃO:    util_DetectaSO ()

           DESCRIÇÃO: detecta o Sistema Operacional do cliente.

           PARAMETROS:

           RETORNO:        'Windows 98','Windows 95', 'Windows NT 4.0'...

        EXEMPLOS:
                                if (detecta_SO() == 'Windows 98') {
                                        alert('Microsoft Windows 98');
                                }
=======================================================================================*/
function util_DetectaSO () {
        var SO;

          // detecta platforma
          if (navigator.userAgent.indexOf("Win") > -1) {
                  SO = "win";
          } else if (navigator.userAgent.indexOf("Mac") > -1) {
                  SO = "mac";
        } else {
                SO = "other";
        }
        return SO;
}



/* =====================================================================================
           FUNÇÃO:    util_DetectaVersao (Browser)

           DESCRIÇÃO: detecta a versão do browser do cliente.

           PARAMETROS: Browser - versão do browser do usuário identificada pela função util_DetectaBrowser.

           RETORNO:        número da versão do browser do tipo FLOAT.

        EXEMPLOS:
                                if (detecta_Versao() == 5.5) {
                                        alert('Internet Explorer 5.5');
                                }
=======================================================================================*/
function util_DetectaVersao (Browser) {
        var Versao;

          // detecta versão
          if(Browser == "ns") {
            Versao = parseFloat(navigator.appVersion);
    } else if(Browser == "msie") {
            n = navigator.userAgent;
            Versao = n.substr(n.indexOf("MSIE ")+("MSIE ").length, 4);
            Versao = parseFloat(Versao);
            if(Browser == "op") {
                    Versao = n.substr(n.indexOf("Opera ")+("Opera ").length, 4);
                    Versao = parseFloat(Versao);
        }
    }
        return Versao;
}



/* =====================================================================================
           FUNÇÃO:    util_IsAlpha (codigo)

           DESCRIÇÃO: verifica se o codigo do caracter é de uma letra.

           PARAMETROS: codigo (código ASCII do caracter)

           RETORNO:        True/False

        EXEMPLOS:
                                if (util_IsAlpha(65)) {
                                        alert('É uma letra.');
                                }
=======================================================================================*/
function util_IsAlpha(codigo) {
        if( (codigo >= 65 && codigo <= 90) || (codigo >= 97 && codigo <= 122)) {
        return true;
    } else {
        return false;
    }
}



/* =====================================================================================
           FUNÇÃO:    util_IsAlphaNumeric (codigo)

           DESCRIÇÃO: verifica se o codigo do caracter é de uma letra ou número.

           PARAMETROS: codigo (código ASCII do caracter)

           RETORNO:        True/False

        EXEMPLOS:
                                if (util_IsAlphaNumeric(65)) {
                                        alert('É um alfanumérico.');
                                }
=======================================================================================*/
function util_IsAlphaNumeric(codigo) {
        if( (codigo >= 48 && codigo <= 57) || (codigo >= 65 && codigo <= 90) || (codigo >= 97 && codigo <= 122) ||
                (codigo = 32) ) {
        return true;
    } else {
        return false;
    }
}



/* =====================================================================================
           FUNÇÃO:    util_isBissexto(ano)

           DESCRIÇÃO: verifica se o ano passado como parâmetro é um ano bissexto..

           PARAMETROS: ano (valor do ano. Exemplo: 2004)

           RETORNO:        TRUE/FALSE

        EXEMPLOS:
                                if (util_isBissexto(2004)) {
                                        alert('O ano de 2004 é bissexto.');
                                }
=======================================================================================*/
function util_isBissexto(ano){
    return ((ano%4==0) && (ano%100!=0) || (ano%400==0));
}



/* =====================================================================================
           FUNÇÃO:    util_IsControle(codigo)

           DESCRIÇÃO: verifica se o código do caracter passado como parâmetro é de um caracter
                                    de controle.

           PARAMETROS: codigo (código ASCII do caracter)

           RETORNO:        True/False

        EXEMPLOS:
                                var code = event.keyCode;
                                if (util_IsControle(code)) {
                                        alert('É um caracter de controle.');
                                }
=======================================================================================*/
function util_IsControle(codigo) {
        if (codigo == 0 || codigo == 8 || codigo == 9 || codigo == 12 || codigo == 13 || codigo == 27 ||
       codigo == 144 || codigo == 145 || (codigo >= 16  && codigo <= 20) || (codigo >= 44 && codigo <= 46) ||
       (codigo >= 91  && codigo <= 93) || (codigo >= 33 && codigo <= 40) || (codigo >= 112 && codigo <= 123) ) {
               return true;
        } else {
            return false;
           }
}



/* =====================================================================================
           FUNÇÃO:    isDigit(digito)

           DESCRIÇÃO: verifica se o caractere passado como parâmetro é numérico (0-9).

           PARAMETROS: digito (caractere que será examinado)

           RETORNO:        TRUE/FALSE

        EXEMPLOS:
                                var numero = '12345';
                                if (isDigit(numero.charAt(0))) {
                                        alert('Não é um dígito.');
                                }
=======================================================================================*/
function util_IsDigit(digito){
    if(digito==0 || digito==1 || digito==2 || digito==3 || digito==4 || digito==5 || digito==6 || digito==7 || digito==8 || digito==9){
        return true;
    }else{
        return false;
    }
}



/* =====================================================================================
           FUNÇÃO:    util_IsNumber(numero)

           DESCRIÇÃO: verifica se o valor passado como parâmetro é numérico.

           PARAMETROS: numero (valor numérico a ser examinado)

           RETORNO:        TRUE/FALSE

        EXEMPLOS:
                                var numero = '12ABC345';
                                if (isNumber(numero)) {
                                        alert('Não é um número válido.');
                                }
=======================================================================================*/
function util_IsNumber(numero){
   var CaractereInvalido = false;

   numero = String(numero);
   for (i=0; i < numero.length; i++){
      var Caractere = numero.charAt(i);
      if(Caractere != "." && Caractere != "," && Caractere != "-"){
         if (isNaN(parseInt(Caractere))) CaractereInvalido = true;
      }
   }
   return !CaractereInvalido;
}



/* =====================================================================================
           FUNÇÃO:    util_IsNumeric(numero)

           DESCRIÇÃO: verifica se o valor passado como parâmetro é numérico.

           PARAMETROS: numero (valor numérico a ser examinado)

           RETORNO:        TRUE/FALSE

        EXEMPLOS:
                                if (util_IsNumeric(65)) {
                                        alert('Não é um número válido.');
                                }
=======================================================================================*/
function util_IsNumeric(codigo) {
        if ((codigo >= 48) && (codigo <= 57)) {
        return true;
           } else {
        return false;
    }
}



/* =====================================================================================
           FUNÇÃO:    util_IsPonto (codigo)

           DESCRIÇÃO: verifica se o código do caracter passado como parâmetro é de um ponto.

           PARAMETROS: codigo (código ASCII do caracter)

           RETORNO:        TRUE/FALSE

        EXEMPLOS:
                                var numero = '13.000';
                                if (util_IsPonto(numero.charAt(2))) {
                                        alert(''O caracter é um ponto.');
                                }
=======================================================================================*/
function util_IsPonto (codigo) {
    if( codigo == 46) {
        return true;
    }else{
        return false;
    }
}



/* =====================================================================================
           FUNÇÃO:    util_IsVirgula (codigo)

           DESCRIÇÃO: verifica se o código do caracter passado como parâmetro é de uma vírgula.

           PARAMETROS: codigo (código ASCII do caracter)

           RETORNO:        TRUE/FALSE

        EXEMPLOS:
                                var numero = '1300,00';
                                if (util_IsPonto(numero.charAt(5))) {
                                        alert(''O caracter é uma vírgula.');
                                }
=======================================================================================*/
function util_IsVirgula (codigo) {
        if(codigo == 44) {
        return true;
    }else{
        return false;
    }
}



/* =====================================================================================
           FUNÇÃO:    util_JavaEnabled ()

           DESCRIÇÃO: verifica se o browser está configurado para executar código Java.

           PARAMETROS:

           RETORNO:        TRUE/FALSE

        EXEMPLOS:
                                if (util_JavaEnabled()) {
                                        alert('Java habilitado!');
                                }
=======================================================================================*/
function util_JavaEnabled ( ) {
        if (navigator.javaEnabled()) {
                return true;
        }
        else {
                return false;
        }
}



/* =====================================================================================
           FUNÇÃO:    util_Seleciona(campo)

           DESCRIÇÃO: seleciona o conteúdo de um campo do formulário.
                              O comando utilizado depende do browser do cliente.

           PARAMETROS: campo (campo do formulário que terá seu conteúdo selecionado)

        EXEMPLOS:
                                <input class="campoForm" id="cgc" name="cgc" type="text">
                                <SCRIPT LANGUAGE="JavaScript">
                                        Seleciona(cgc);
                                </SCRIPT>
=======================================================================================*/
function util_Seleciona(campo)
{
        if (util_DetectaBrowser() == 'msie') {
                campo.select();
        }
        return true;
}



/* =====================================================================================
           FUNÇÃO:        util_HabilitaCampos

           DESCRIÇÃO: habilita ou desabilita os campos do tipo TEXT do formulário.

           PARAMETROS: formulario (objeto do formulario onde os campos estão inseridos)
                                   opcao (valor do tipo boolean [true/false] que determina se os
                                                   campos serão habilitados ou desabilitados)

           RETORNO: nenhum

        EXEMPLOS:
                                <script>
                                        util_HabilitaCampos(form1,true);
                                </script>
=======================================================================================*/
function util_HabilitaCampos(formulario, opcao) {
        //var frm = eval('document.' + formulario.toString());
        //for (i = 0; i < formulario.elements.length; i++ ) {
        for (i = 0; i < 2; i++ ) {
                if (formulario.elements[i].type == "text") {
                        formulario.elements[i].readOnly = opcao
                        } else {
                        formulario.elements[i].disable = opcao
                }
        }
}
/* =====================================================================================
           FUNÇÃO:        formataDataExibicao

           DESCRIÇÃO: muda a exibição de uma data no formato yyyy-mm-dd para dd/mm/yyyy

           PARAMETROS: data no formato yyyy-mm-dd

           RETORNO: data no formato dd/mm/yyyy

        EXEMPLOS:
                                <script>
                                        formataDataExibicao("2004-09-01");
                                </script>
=======================================================================================*/
function formataDataExibicao(entrada) {
        if (entrada.length != 10){ return ""; }
        else { return         entrada.substring(8,10)+'/'+
                                        entrada.substring(5,7)+'/'+
                                        entrada.substring(0,4); }
}
/* =====================================================================================
           FUNÇÃO:        formataDataBanco

           DESCRIÇÃO: muda a exibição de uma data no formato dd/mm/yyyy para yyyy-mm-dd

           PARAMETROS: data no formato dd/mm/yyyy

           RETORNO: data no formato yyyy-mm-dd

        EXEMPLOS:
                                <script>
                                        formataDataBanco("01/09/2004");
                                </script>
=======================================================================================*/
function formataDataBanco(entrada) {
        if (entrada.length != 10){ return ""; }
        else { return         entrada.substring(6,10)+'-'+
                                        entrada.substring(3,5)+'-'+
                                        entrada.substring(0,2); }
}


/*=======================================================================================
Função: Somente numeros;

exemplo: <input name="ncarteira" onkeypress='return SomenteNumero(event)' />

=======================================================================================*/
function SomenteNumero(e){
    var tecla=(window.event)?event.keyCode:e.which;
    if((tecla > 47 && tecla < 58)) return true;
    else{
    if (tecla != 8) return false;
    else return true;
    }
}
/*$(document).ready(
	function()
	{
		$("#txtTelefone").mask("(99)9999-9999");
	}
);*/
