//Função para formatação genérica de campos
function Mask(fsValor, foForm, foNome, fsFormato,evento) { 

	var piLoop; 
	var psPalavra		= '';
	var psResposta	= ''; 
	var piTamanho		= 0; 
	var pParte_i		= '';
	var pParte_f		= '';
	var intDecimais = 2;
	
	intDecimais = 2;
if (evento.keyCode != 9 && evento.keyCode != 16 && evento.keyCode != 8 &&  evento.keyCode != 37 && evento.keyCode != 39 && evento.keyCode != 46){
  if(fsFormato == 'codigocobprovisoria')
  {
    fsValorSplit = "";
    for(i = 0; i < fsValor.length; i++)
    {
      if(fsValor.substring(i,i + 1) != '.')
      {
        fsValorSplit += fsValor.substring(i,i + 1) + "_";
      }
    }
    
    fsValorSplit = fsValorSplit.split('_');
    
    if(fsValor.length == 1)
    {
      psResposta = '000.000.00' + fsValor.charAt(fsValor.length - 1);
      document.forms[foForm].elements[foNome].value = psResposta;
    }
    else
    {
      if(fsValor.length > 11)
      {
        for(i = 0; i < fsValorSplit.length; i++)
        {
          if(fsValorSplit[i] != 0 && i == 0)
          {
            for(k=0;k < fsValorSplit.length -2 ;k++)
            {
              if(k == 3)
              {
                psResposta += '.';
              }
              if(k == 6)
              {
                psResposta += '.';
              }
              psResposta += fsValorSplit[k]; 
            }
            break;
          }
          else
          {
            if(fsValorSplit[i] != 0)
            {
              for(j=i;j< fsValorSplit.length; j++)
              {
                fsValorSplit[j -1] = fsValorSplit[j];
              }
              for(k=0;k < fsValorSplit.length ;k++)
              {
                if(k == 3)
                {
                  psResposta += '.';
                }
                if(k == 6)
                {
                  psResposta += '.';
                }
                psResposta += fsValorSplit[k]; 
              }
              i = fsValorSplit.length;
            }
          }
        }   
        document.forms[foForm].elements[foNome].value = psResposta;
      }
    }
  }
}
	
if(fsFormato != 'codigocobprovisoria')
{
if (evento.keyCode != 9 && evento.keyCode != 16){
	if (fsFormato == "cgc") fsFormato = "cnpj";
		if (evento.keyCode != 8 &&  evento.keyCode != 37 && evento.keyCode != 39 && evento.keyCode != 46) { 
			for(piLoop = 0; piLoop <= (fsValor.length-1); piLoop++) {
				switch (fsFormato) {
					case 'data': 
						if (fsValor.charAt(piLoop) != '/' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
							psPalavra = psPalavra + fsValor.charAt(piLoop); 
						break; 
          case 'hora': 
            if (fsValor.charAt(piLoop) != ':'  && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9') 
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'telefone': 
            if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
							psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'moeda': 
            if (fsValor.charAt(piLoop) != ',' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
	          break; 
          case 'cpf': 
            if (fsValor.charAt(piLoop) != '.' && fsValor.charAt(piLoop) != '-' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'cnpj': 
            if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'cnpj_filial': 
            if (fsValor.charAt(piLoop) != '-' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break;   
          case 'maiusculo': 
              psPalavra = psPalavra + fsValor.charAt(piLoop).toUpperCase(); 
            break;              

          case 'placa': 
						if ((piLoop < 3) && (isNaN(fsValor.charAt(piLoop))) ){
							psPalavra = psPalavra + fsValor.charAt(piLoop).toUpperCase(); 
						}
						else{
					    if ((piLoop >= 3) &&(fsValor.charAt(piLoop) >= '0') && (fsValor.charAt(piLoop) <= '9')){
					      psPalavra = psPalavra + fsValor.charAt(piLoop);   						
					    }
						}
            break; 
          case 'cep': 
            if (fsValor.charAt(piLoop) != '-' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'numero': 
            if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9'){
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            }
            if (fsValor.charAt(piLoop) == '-' && psPalavra == ''){
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            }
            break; 
          case 'cnh': 
            if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9'){
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            }
            if (fsValor.charAt(piLoop) == '-' && psPalavra == ''){
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            }
            break; 
          default :
          return;
          break;
        } 
      } 
      

      for(piLoop=0; piLoop < psPalavra.length; piLoop++) {
				switch (fsFormato) {
					case 'data': 
						if (piLoop == 2) psResposta = psResposta + '/' + psPalavra.charAt(piLoop); 
						if (piLoop == 4) psResposta = psResposta + '/' + psPalavra.charAt(piLoop); 
						if (piLoop != 2 && piLoop != 4) psResposta = psResposta + psPalavra.charAt(piLoop); 
						piTamanho = 10; 
		        break; 
					case 'hora': 
						if (piLoop == 2) 
							psResposta = psResposta + ':' + psPalavra.charAt(piLoop) 
						else 
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 5; 
						break; 
          case 'telefone': 
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 9; 
							break; 
          case 'moeda': 
						if (psPalavra.length < 14){
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 14; 
						}else{
							psResposta = psPalavra;
						}
						break; 
					case 'cpf': 
						if (psPalavra.length < 14){
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 14; 
						}else{
							psResposta = psPalavra;
						}
						break; 
          case 'cnpj': 
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 19; 
							break; 
          case 'cnpj_filial':
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 7; 
							break; 
          case 'cep': 
            if (piLoop == 5) psResposta = psResposta + '-' + psPalavra.charAt(piLoop); 
            if (piLoop != 5) psResposta = psResposta + psPalavra.charAt(piLoop); 
            piTamanho = 9;
            break; 
          case 'numero': 
            psResposta = psResposta + psPalavra.charAt(piLoop); 
            piTamanho = 50;
            break; 
          case 'cnh': 
            psResposta = psResposta + psPalavra.charAt(piLoop); 
            piTamanho = 9;
            break; 
          case 'maiusculo': 
            psResposta = psResposta + psPalavra.charAt(piLoop).toUpperCase(); 
						piTamanho = 10000; 
            break;             
          case 'placa': 
            if (fsValor.toUpperCase() == 'AAVI' )
            {
              psResposta = 'AAVISAR';
              piTamanho = 7; 
            }
            else
            {
						  if (piLoop == 3) psResposta += psPalavra.charAt(piLoop); 
						  if (piLoop < 3) psResposta = psResposta + psPalavra.charAt(piLoop); 
						  if (piLoop > 3 && piLoop < 8) 
						  {
						    if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9') 
						    psResposta = psResposta + psPalavra.charAt(piLoop);  
						  }            
						  piTamanho = 8; 
            }
						
            break;  
        } 
      }
        
	//--- Formata Moeda
	if (fsFormato == 'moeda' && psResposta.length > intDecimais){
		for(piLoop=intDecimais; piLoop < (psResposta.length); piLoop++){
			pParte_i = psResposta.substring(0, psResposta.length- piLoop );
			pParte_f = psResposta.substring(psResposta.length-piLoop, psResposta.length);
			if (piLoop == intDecimais)
			{
				psResposta = pParte_i + ',' + pParte_f ;
			}
			else
			{
				psResposta = pParte_i + '.' + pParte_f ;
			}
			piLoop = piLoop + 3;
		}
	}
	//--- Fim Formata Moeda
			
	//--- Formata CNPJ
	if (fsFormato == 'cnpj' && psResposta.length > 6){
		//psResposta = psResposta.substring(0, 19);
		pParte_i = psResposta.substring(0, psResposta.length - 2 );
		pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
		psResposta = pParte_i + '-' + pParte_f ;
		pParte_i = psResposta.substring(0, psResposta.length - 7 );
		pParte_f = psResposta.substring(psResposta.length - 7, psResposta.length);
		psResposta = pParte_i + '/' + pParte_f ;
		for(piLoop=11; piLoop < (psResposta.length); piLoop++){
			pParte_i = psResposta.substring(0, psResposta.length- piLoop );
			pParte_f = psResposta.substring(psResposta.length-piLoop, psResposta.length);
			psResposta = pParte_i + '.' + pParte_f ;
			piLoop = piLoop + 3;
		}
	}
	//--- Fim Formata CNPJ
			
	//--- Formata CNPJ_FILIAL
	if (fsFormato == 'cnpj_filial' && psResposta.length > 4){
		psResposta = psResposta.substring(0, 7);
		pParte_i = psResposta.substring(0, psResposta.length - 2 );
		pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
		psResposta = pParte_i + '-' + pParte_f ;
	}
	//--- Fim Formata CNPJ_FILIAL
         
	//--- Formata Telefone
	if (fsFormato == 'telefone' && psResposta.length > 4){
		psResposta = psResposta.substring(0, 8);
		pParte_i = psResposta.substring(0, psResposta.length - 4 );
		pParte_f = psResposta.substring(psResposta.length - 4, psResposta.length);
		psResposta = pParte_i + '-' + pParte_f ;
	}
	//--- Fim Formata Telefone
		
	//--- Formata CPF
	if (fsFormato == 'cpf' && psResposta.length > 2){
		psResposta = psResposta.substring(0, 11);
		pParte_i = psResposta.substring(0, psResposta.length - 2 );
		pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
		psResposta = pParte_i + '-' + pParte_f ;
			
		for(piLoop=6; piLoop < (psResposta.length); piLoop++){
			pParte_i = psResposta.substring(0, psResposta.length- piLoop );
			pParte_f = psResposta.substring(psResposta.length-piLoop, psResposta.length);
			psResposta = pParte_i + '.' + pParte_f ;
			piLoop = piLoop + 3;
		}
	}
	//--- Fim Formata CPF
	if (fsFormato == 'moeda'){
		document.forms[foForm].elements[foNome].value = psResposta.substring(0, psResposta.length);
	}else
	{
    document.forms[foForm].elements[foNome].value = psResposta.substring(0, piTamanho);	    
	}
} 
}
} 
}

function FormatCEP(Valor)
{
	var qtde;
	var result;
	var tamanho = 8;
	
	
	if(tamanho >= Valor.length)
	{
		qtde = (tamanho - Valor.length);
		
		for(i = 0; i < qtde; i++)
		{
			Valor = "0" + Valor;
		}
	}
	
	result = Valor.substr(0, 5) + "-" + Valor.substr(5, 3);
	
	return result;

}

function Replicate(expression, character, number)
{

	var i = 0;
	var ret = "";
	
	for (i = 0; i < (number - expression.length); i++)
	{
		ret += character;
	}
	
	return ret + expression; 

}


function TrataBackspace(dado)
{
   NumDig = dado.value;
   TamDig = NumDig.length;
   TamDig--;
   Contador = 0;
   if ((TamDig >= 0) && (event.keyCode == 8))
    { numer = "";
      for (i = TamDig; (i >= 0); i--){
          if ((parseInt(NumDig.substr(i,1))>=0) && (parseInt(NumDig.substr(i, 1))<=9))
            {
             Contador++;
             if ((Contador == 4) && ((TamDig -i) < 5))
              {numer = ","+numer;
               Contador = 0;
               }
             else if ((Contador == 3) && ((numer.length) > 4))  
              {numer = "."+numer;
               Contador = 0;
              }
			  
             numer = NumDig.substr(i, 1)+numer;
			
            }
			}
			if (numer == "001") 
			    numer="";		
			if ((numer.length) == 3 )
			    numer= "0," + numer;

		dado.value = numer;
      };
}

function FormatValor(form_campo, tam)
{
	var tecla;
	
	if (!tam) {
		tam = 13;
	} else {
		if (tam < 6) {
			tam = tam + 1;
		} else {
			if (tam < 9) {
				tam = tam + 2;
			} else {
				if (tam < 11) {
					tam = tam + 3
				} else {
					tam = tam + 3
				}
			}
		}
	}
	
	if (document.all) {		tecla = event.keyCode;	} else {
		if (document.layers) tecla = form_campo.which;	}
	
	if ((((tecla) > 47) && ((tecla) < 58)) || (tecla = 8)) //teclas numericas
	{
		//valor do form_campo
		numdig = form_campo.value;
		//tamanho (caracteres) do valor do form_campo
		tamdig = numdig.length;
		//inicia variavel contador
		contador = 0;
		if (tamdig > -1 && tamdig < tam) { //limita 13 caracteres (99.999.999,99)
			//inicia variavel numer		
			numer = "";
			for (i = tamdig; (i >= 0); i--){ //looping de acordo com a variavel tamdig
				if ((parseInt(numdig.substr(i,1))>=0) && (parseInt(numdig.substr(i, 1))<=9)) { //
					//incrementa a variavel contador
					contador++;
					if (contador == 2) {
						//adiciona a "," (vírgula)
						numer = ","+numer;
					}
					if ((contador == 5) || (contador == 8) || (contador == 11)) { //de 3 em 3
						//adiciona o "." (ponto)
						numer = "."+numer;
					}
					//soma o resto do valor com o ponto
					numer = numdig.substr(i, 1)+numer;
				}
			}
			//seta o valor do form_campo
			form_campo.value = numer;
			//retorno da funcao
			return true;
		} else {
			//retorno da funcao
			return false;
		}
	} else {
		//retorno da funcao
		return(false)
	}
}

