// JavaScript Document
/***
* 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:
* "9" para definir números
* "x" para definir somente letras maiusculas e minusculas SEM espaço
* "!" para qualquer caracter
*
* - onkeyup (evento)
* Uso...: <input type="textbox"
* name="xxx".....
* onkeyup="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);">
*
* Caracteres aceitos para mascara : -,;:./() espaço
*
* 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-!
* Hora -> 99:99:99
* Placa -> xxx - 9999
***/

function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
	nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;
	sValue = objForm[strField].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) {
		
		
		
		
		
		
		/*
		
	if (nTecla != 8 && nTecla != 13){ // backspace enter
		if (sMask.charAt(i-1) == "9"){ // apenas números...
			if((nTecla > 47) && (nTecla <= 58)){
				 
				
				
				alert('erro');
				//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;
	}

		
		*/
		
		
		
		
		
		
		
		
		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++;
	}
	
	if(nTecla == 8 || nTecla == 46){
		objForm[strField].value = '';
	}
	else{
		objForm[strField].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;
	}

	
  }
//Fim da Função Máscaras Gerais