//==========================================================================================
// Formata os campos de acordo com a mascara apropriada
// 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)
//
// Uso.......: <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:
// DATA -> 99/99/9999
// CEP -> 99999-999
// CPF -> 999.999.999-99
// CNPJ -> 99.999.999/9999-99
// C/C -> 999999-!
// Tel_DDD -> (99) 9999-9999
// Tel -> 9999-9999
//==========================================================================================
function txtBoxFormat(objForm, strField, sMask, evtKeyPress) 
{
      var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

      if(document.all) { // Internet Explorer
        nTecla = evtKeyPress.keyCode; }
      else if(document.layers) { // Nestcape
        nTecla = evtKeyPress.which;
      }

      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;
      }
}
//==========================================================================================





//==========================================================================================
//   formatar data ao digitar
//==========================================================================================

function data_onkeypress(evt) {
   evt = window.event;
   var source = evt.srcElement;
   var keyCode = evt.keyCode;
   
   var keyChar = String.fromCharCode(keyCode);

   if ( ("0123456789/").indexOf(keyChar)==-1) {
      evt.returnValue=false;
      return false;
   }

   switch (source.value.length) {
      case 0 :
         if (keyChar=="/") {
            evt.returnValue=false;
            return false;
         }

         break;

      case 1:
         if (keyChar=="/") {
            if (source.value=="0") {
               evt.returnValue=false;
               return false;
            }
            else {
               source.value="0"+source.value;
            }
         }
         else if (("456789").indexOf(source.value.charAt(0))!=-1 ||
                   (source.value.charAt(0)=="3" && keyChar!="0" && keyChar!="1")) {

            if (("01").indexOf(keyChar)!=-1)
               source.value="0"+source.value+"/";
            else
               source.value="0"+source.value+"/0";
         }

         var dd = parseInt(source.value+keyChar,10)

         // valida somente o dia
         if (dd > 31 || dd < 1) {
            evt.returnValue=false;
            return false;
         }


         break;

      case 2 :
         if (keyChar!="/") {
            source.value += "/";
         }

         if (("23456789").indexOf(keyChar)!=-1) {
            source.value=source.value.substr(0,3) + "0";

            // valida o mes e o dia
            var dd = parseInt(source.value.substr(0,2),10);
            var mm = parseInt(source.value.substr(3,1)+keyChar,10);

            if (mm==4 || mm==6 || mm==9 || mm==11) {
               if (dd==31) {
                  source.value = "30/"+source.value.substr(3,2);
               }
            }

         }


         break;

      case 3 :
         if (keyChar=="/") {
            evt.returnValue=false;
            return false;
         }

         if (("23456789").indexOf(keyChar)!=-1) {
            source.value=source.value.substr(0,3) + "0";

            // valida o mes e o dia
            var dd = parseInt(source.value.substr(0,2),10);
            var mm = parseInt(source.value.substr(3,1)+keyChar,10);

            if (mm==4 || mm==6 || mm==9 || mm==11) {
               if (dd==31) {
                  source.value = "30/"+source.value.substr(3,1);
               }
            }

         }

         break;

      case 4 :
         if (keyChar=="/") {
            if (source.value.charAt(source.value.length-1)=="0") {
               evt.returnValue=false;
               return false;
            }
            else {
               source.value=(source.value).substr(0,3) + "0" + source.value.substr(3,1) ;
            }
         }

         // valida o mes e o dia
         var dd = parseInt(source.value.substr(0,2),10);
         var mm = parseInt(source.value.substr(3)+keyChar,10);

         if (mm<1 || mm > 12) {
            evt.returnValue = false;
            return false;
         }

         if (mm==4 || mm==6 || mm==9 || mm==11) {
            if (dd==31) {
               source.value = "30/"+source.value.substr(3,1);
            }
         }

         break;

      case 5 :
         if (keyChar=="0") {
            evt.returnValue=false;
            return false;
         }

         if (keyChar!="/") {
            source.value += "/";
         }

         break;


      case 9 :
         if (keyChar=="/") {
            evt.returnValue=false;
         }

         var dd = parseInt(source.value.substr(0,2),10);
         var mm = parseInt(source.value.substr(3,2),10);

         if (mm==2) {
            var aa = parseInt(source.value.substr(6)+keyChar,10)

            if (dd>=29) {
               if (((aa/4)!=parseInt(aa/4,10))) {
                  source.value = "28/02/"+source.value.substr(6);
               }
               else {
                  source.value = "29/02/"+source.value.substr(6);
               }
            }

         }

         break;

      case 6:
         if (keyChar=="0") {
            evt.returnValue=false;
         }

      default :
         if (keyChar=="/") {
            evt.returnValue=false;
            return false;
         }
   }

}



//==========================================================================================
//funções para formatação de valor com ponto e vírgula na telaaaaa
//==========================================================================================


	function FormatValor(campo,tammax,teclapres) {
		var tecla = (teclapres.keyCode?teclapres.keyCode:null);	
		if (tecla!=9){
			vr = campo.value.replace(/\./g,'').replace(/\,/g,'');			
			if (vr.charAt(0)=="0"){vr=vr.substring(1,vr.length);}
			tam = vr.length;	
			if (tam < tammax && tecla != 8 ){ tam = vr.length + 1 ; }
			if (tecla == 8 ){	
				tam = tam - 1 ; 
				if (tam==2){vr="0,"+vr};
				if (tam==1){vr="0,0"+vr};
				if (tam==0){vr="0,00"};
			}	
			if(tecla==46){tam = tam - 1 ;}
			if ( (tecla == 8 || tecla == 46 || tecla==9 || (tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105)) && !window.event.shiftKey ){
			if ( tam <= 2 ){ campo.value = vr ; }
			if ( (tam > 2) && (tam <= 5) ){campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
			if ( (tam >= 6) && (tam <= 8) ){campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
			if ( (tam >= 9) && (tam <= 11) ){campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
			if ( (tam >= 12) && (tam <= 14) ){campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
			if ( (tam >= 15) && (tam <= 17) ){campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
			if ( (tam >= 18) && (tam <= 20) ){campo.value = vr.substr( 0, tam - 17 ) + '.' + vr.substr( tam - 17, 3 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
			if ( (tam >= 21) && (tam <= 23) ){campo.value = vr.substr( 0, tam - 20 ) + '.' + vr.substr( tam - 20, 3 ) + '.' + vr.substr( tam - 17, 3 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
			if ( (tam >= 24) && (tam <= 26) ){campo.value = vr.substr( 0, tam - 23 ) + '.' + vr.substr( tam - 23, 3 ) + '.' + vr.substr( tam - 20, 3 ) + '.' + vr.substr( tam - 17, 3 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
			}else{
				if(window.event)window.event.returnValue=false
				return;
			}		
		}
	}

	function ValorOnKeyUp(campo){
		var vr  = campo.value;
		var tam = vr.length ; 	
		if (tam<3){			
			if (tam==2){vr="0,"+vr};
			if (tam==1){vr="0,0"+vr};
			if (tam==0){vr="0,00"};
			campo.value = vr;
		}	
	}

	function AtualizaValor(campo){
		campo.value=campo.value;
	}


//==========================================================================================
//==========================================================================================