function mascara(campoDesejado, funcaoMascara){
  		campo = campoDesejado;
  		funcao = funcaoMascara;
  		setTimeout("execmascara()",1);
}

function execmascara(){
  		campo.value = funcao(campo.value);
}

//Máscara para campo somente de caracteres
function mascaraCaracter(campo){
	campo = campo.replace(/[^a-z\sÀ-úü']/ig,"");  //Remove o que não for letra nem vogal acentuada nem espaço
	
	return campo;
}

//Máscara para campo somente numérico
function mascaraNumero(campo){
	campo = campo.replace(/[\D]/ig,"");  //Remove o que não for número
	
	return campo;
}

//Máscara para campo somente decimal
function mascaraDecimal(campo){
	campo = campo.replace(/[^\d,\.]/ig,"");  //Remove o que não for número nem virgula nem ponto
	campo = campo.replace(/[\,]/,"."); 	 //Substitui virgula por ponto
	
	return campo;
}		

//Máscara para campo data
function mascaraData(campo){
	campo = campo.replace(/[^\d]/ig,"");  			//Remove o que não for número
	campo = campo.replace(/^(\d\d)(\d)/,"$1/$2");	//Coloca barra entre o segundo e o terceiro dígito
	campo = campo.replace(/(\d\d)(\d)/,"$1/$2");	//Coloca barra entre o quarto e o quinto dígito
	
	return campo;
}				

//Máscara para campo data mês ano
function mascaraDataMesAno(campo){
	campo = campo.replace(/[^\d]/ig,"");  			//Remove o que não for número
	campo = campo.replace(/^(\d\d)(\d)/,"$1/$2");	//Coloca barra entre o segundo e o terceiro dígito
	
	return campo;
}				

//Máscara para campo telefone		
function mascaraTelefone(campo){
	campo = campo.replace(/\D/g,"");                 	//Remove tudo o que não é dígito
	campo = campo.replace(/^(\d\d)(\d)/g,"($1) $2"); 	//Coloca parênteses em volta dos dois primeiros dígitos
	campo = campo.replace(/(\d{4})(\d)/,"$1-$2");    	//Coloca hífen entre o quarto e o quinto dígitos
	
	return campo;
}		

//Máscara para campo cpf
function mascaraCPF(campo){
	campo = campo.replace(/\D/g,"");                    //Remove tudo o que não é dígito
	campo = campo.replace(/(\d{3})(\d)/,"$1.$2");       //Coloca um ponto entre o terceiro e o quarto dígitos
	campo = campo.replace(/(\d{3})(\d)/,"$1.$2");       //Coloca um ponto entre o terceiro e o quarto dígitos
													    //de novo (para o segundo bloco de números)
	campo = campo.replace(/(\d{3})(\d{1,2})$/,"$1-$2");	//Coloca um hífen entre o terceiro e o quarto dígitos

	return campo;
}

//Máscara para campo CEP
function mascaraCEP(campo){
	campo = campo.replace(/\D/gi,"");                //Remove tudo o que não é dígito
	campo = campo.replace(/^(\d{5})(\d)/,"$1-$2"); 	//Esse é tão fácil que não merece explicações

	return campo;
}

//Máscara para campo PLACA
function mascaraPLACA(campo){
	//campo = campo.replace(/^(\d{3})(\d)/,"$1-$2"); 	//Esse é tão fácil que não merece explicações
	campo = campo.replace(/^(\d{3})(\d)/,"[A-Z]{4}-[0-9]{7}"); 	//Esse é tão fácil que não merece explicações

	return campo;
}

//Máscara para compo CNPJ
function mascaraCNPJ(campo){
	campo = campo.replace(/\D/gi,"");                           //Remove tudo o que não é dígito
	campo = campo.replace(/^(\d{2})(\d)/,"$1.$2");             //Coloca ponto entre o segundo e o terceiro dígitos
	campo = campo.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3"); //Coloca ponto entre o quinto e o sexto dígitos
	campo = campo.replace(/\.(\d{3})(\d)/,".$1/$2");           //Coloca uma barra entre o oitavo e o nono dígitos
	campo = campo.replace(/(\d{4})(\d)/,"$1-$2");              //Coloca um hífen depois do bloco de quatro dígitos

	return campo;
}	

//Máscara para campo ANTT
function mascaraANTT(campo){
    campo = campo.replace(/[^\d]/ig,"");              //Remove o que não for número
    campo = campo.replace(/^(\d\d)(\d)/,"$1-$2");    //Coloca - entre o segundo e o terceiro dígito 
    campo = campo.replace(/(\d\d)(\d)/,"$1-$2");    //Coloca - entre o quarto e o quinto dígito
    campo = campo.replace(/(\d\d)(\d)/,"$1/$2");    //Coloca / entre o quarto e o sétimo e o oitavo dígito     
    
    return campo;
}    


//Função que verifica se uma data é válida
function validaData(data) {
    var dia = Number(data.substring(0,2));
   	var mes = Number(data.substring(3,5));
   	var ano = Number(data.substring(6));
   	var ultDiaMes = 0;

    if (ano < 1900)	{
        return false;
	}

    if (mes == 2) {
        if (ano % 4 == 0) {
            ultDiaMes = 29;
		} else {
            ultDiaMes = 28;
		}
    } else if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12) {
        ultDiaMes = 31;
	} else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
        ultDiaMes = 30;
	} else {
        return false;
    }

    if (dia < 1 || dia > ultDiaMes) {
        return false;
    }

	return true;
}

//Função que verifica se uma data no formato mm/yyyy é válida
function validaMesAno(data) {
    var mes = Number(data.substring(0,2));
   	var ano = Number(data.substring(3));

    if (ano < 1900)	{
        return false;
	}

    if (mes < 1 || mes > 12) {
        return false;
    }
    
	return true;
}


/***********************************************************************\
* Funcao formatarValorNumerico(valor, maxlength, teclapres)
*
* Descricao: 	Formata o campo para que fique um numero real valido
* 
\***********************************************************************/
function formatarValorNumerico(valor, maxlength, teclapres) {
	var tecla = teclapres.keyCode;

	if ((tecla != 08)&&(tecla != 09)&&(tecla != 46)&&(tecla < 48 || tecla > 57)&&(tecla < 96 || tecla > 105)){return false;}    
	if (tecla == 09) {return true;}
	
	valorSemFormato = valor.value;
	for (var i=0; i < 3; i++){
		valorSemFormato = valorSemFormato.replace( ",", "" );
		valorSemFormato = valorSemFormato.replace( ".", "" );
		if ((valorSemFormato.indexOf(".",0) < 1)&&(valorSemFormato.indexOf(",",0) < 1)){
			break;
		}
	}
	valortmp = "";
	tamanho = valorSemFormato.length;

	for (i = 0; i < tamanho; i++)
	{
	    Digito = valorSemFormato.substr(i, 1);
	    if (Digito != "0") {
			valortmp = valortmp + valorSemFormato.substr(i, tamanho - i);
			i = tamanho;
	    }
	}	
	valorSemFormato = valortmp;
	if (tecla == 46){valorSemFormato = valorSemFormato.substr(0,valorSemFormato.length - 1)}

    tamanho = valorSemFormato.length + 1;
	if (tecla == 8){tamanho = tamanho - 2;}
	if (tecla == 46){tamanho = tamanho - 1;}

	if (tamanho < 1){
		//valor.value = '0.000';
		//if (tecla==46){valor.value = '0.00';}
	}else if (tamanho == 1){
		//valor.value = '0.0' + valorSemFormato.substr(0, 2);
	}else if (tamanho == 2){
		valor.value = '0.' + valorSemFormato.substr(0, 3);
	 		 
	}else if ((tamanho > 2)&&(tamanho <= maxlength)) {
		valor.value = valorSemFormato.substr(0, tamanho - 2) + '.' +
		              valorSemFormato.substr(tamanho - 2, tamanho);
	}
}

function fnFim(campo){
	var aaa = campo.value;
	campo.value = "";
	campo.value = aaa;
}


function txtBoxFormat(objField, sMask, evtKeyPress) {
     var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
     nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;
     sValue = objField.value;
     // Limpa todos os caracteres de formatação que
     // já estiverem no campo.
     expressao = /[\.\/\-\(\)\,\;\: ]/gi;
     sValue = sValue.toString().replace(expressao, '');
     fldLen = sValue.length;
     mskLen = sMask.length;

     i = 0;
     nCount = 0;
     sCod = "";
     mskLen = fldLen;

     while (i <= mskLen) {
       bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ",") || (sMask.charAt(i) == ";") || (sMask.charAt(i) == ":"))
       bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

       if (bolMask) {
         sCod += sMask.charAt(i);
         mskLen++; }
       else {
         sCod += sValue.charAt(nCount);
         nCount++;
       }

       i++;
     }

     objField.value = sCod;

     if (nTecla != 8 && nTecla != 13)
      { // backspace enter
       if (sMask.charAt(i-1) == "9")
       { // apenas números...
         return ((nTecla > 47) && (nTecla < 58));
       } // números de 0 a 9
       else
       {
            if (sMask.charAt(i-1) == "x")
           { // apenas letras... Sem espaco
             return ((nTecla > 64) && (nTecla < 123));
           } // maiusculas e minusculas de A a z sem acentos
           else
           { // qualquer caracter...
            return true;
          }
       }
      }
     else
     {
       return true;
     }
   }


