//===================================================================================================
// SCRIPT COM MASCARAS PARA PREENCHIMENTO DE FORMULÁRIOS COM NÚMEROS ::::::::::::::::::::::::::::::::
//===================================================================================================

/***
Descrição: formata um campo do formulário somente com números e quando for entrado uma virgula ele 
permite que seja entrado apenas mais 2 caracteres numerais para formar o formato 0000,00 sistema BR

exemplo de uso: <input id="valor" type="text" onKeyDown="checaCampoValor('valor');">
***/
function checaCampoValor(objForm)
{
   objForm = document.all[objForm];

   var i,exceptions=[8,46,37,39,13,9];   // backspace, delete, arrowleft & right, enter, tab
   var isException=false;
   var isComa=(188==event.keyCode);       // virgula
   var k= String.fromCharCode(event.keyCode);
   // Ativação do keypad
   		if(event.keyCode==96){ k=0; }
		if(event.keyCode==97){ k=1; }
		if(event.keyCode==98){ k=2; }
		if(event.keyCode==99){ k=3; }
		if(event.keyCode==100){ k=4; }
		if(event.keyCode==101){ k=5; }
		if(event.keyCode==102){ k=6; }
		if(event.keyCode==103){ k=7; }
		if(event.keyCode==104){ k=8; }
		if(event.keyCode==105){ k=9; }

   for(i=0;i<exceptions.length;i++)
      if(exceptions[i]==event.keyCode)
	     isException=true;

   if(isNaN(k) && (!isException) && (!isComa))
      event.returnValue=false;
   else{
      var p=new String(objForm.value+k).indexOf(",");
      if((p<objForm.value.length-2 || isComa) && p>-1 && (!isException))
         event.returnValue=false;
      else if(objForm.value.length>=15 && (!isException))
         event.returnValue=false;
   }
}


// MASCARA PARA CAMPOS NUMERAIS COM PERMISSÃO DE CARACTERES ESPECIFICADOS
//=============================================================================================
/*** 
* Descrição.: formata um campo do formulário de 
* acordo com a máscara informada... 
* Parâmetros: - objForm (o Objeto Form) 
* - strField (string contendo o nome 
* do textbox) 
* - sMask (mascara que define o 
* formato que o dado será apresentado, 
* usando o algarismo "9" para 
* definir números e o símbolo "!" para 
* qualquer caracter... 
* - evtKeyPress (evento) 
*
* Exemplo: <input type="textbox" name="xxx" onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);"> 
*
* Observação: As máscaras podem ser representadas como os exemplos abaixo: 
* 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-! 
* E por aí vai... 
***/

function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
      var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

      var nTecla = evtKeyPress.keyCode ? evtKeyPress.keyCode : evtKeyPress.which ? evtKeyPress.which : 		   evtKeyPress.charCode;

      sValue = objForm[strField].value;

      // Limpa todos os caracteres de formatação que
      // já estiverem no campo.
      sValue = sValue.toString().replace( "-", "" );
      sValue = sValue.toString().replace( "-", "" );
      sValue = sValue.toString().replace( ".", "" );
      sValue = sValue.toString().replace( ".", "" );
      sValue = sValue.toString().replace( "/", "" );
      sValue = sValue.toString().replace( "/", "" );
      sValue = sValue.toString().replace( "(", "" );
      sValue = sValue.toString().replace( "(", "" );
      sValue = sValue.toString().replace( ")", "" );
      sValue = sValue.toString().replace( ")", "" );
      sValue = sValue.toString().replace( " ", "" );
      sValue = sValue.toString().replace( " ", "" );
      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) == "/"))
        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++;
      }

      objForm[strField].value = sCod;

      if (nTecla != 8) { // backspace
        if (sMask.charAt(i-1) == "9") { // apenas números...
          return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
        else { // qualquer caracter...
          return true;
        } }
      else {
        return true;
      }
    }
//Fim da Função Máscaras Gerais
