function onKeyPressInputMoney(event, target) {
	return onlyNumbers(event, target);
}

function onKeyUpInputMoney(event, target) {
	var keyCode;
	var keyChar;

	if (window.event) {
		keyCode = window.event.keyCode;
	}
	else if (event) {
		keyCode = event.which;
	}
	else {
		return;
	}

	keyChar = String.fromCharCode(keyCode);
	
	if ((keyCode == 8) || (keyCode == 46) || (keyCode >= 96 && keyCode <= 105) || (("0123456789").indexOf(keyChar) > -1)) {
		target.value = currencyFormatted(target.value);
	}
}

function onBlurInputMoney(event, target) {
	target.value = currencyFormatted(target.value);

}


function onlyNumbers(event, target) {
	var keyCode;
	var keyChar;

	if (window.event) 
	{   keyCode = window.event.keyCode;	}
	else if (event) 
	{	keyCode = event.which;	}
	else 
	{	return true;	}
	
	keyChar = String.fromCharCode(keyCode);
	
	// teclas de controle
	if ((keyCode == null) || (keyCode == 0) || (keyCode == 8) || (keyCode == 9) || (keyCode == 13) || (keyCode == 27)) 
	{	return true;	}
	else if ((("0123456789").indexOf(keyChar) > -1)) {
		return true;
	}
	else {
		return false;
	}
}

function clearString(value, validCharacters) {
	var result = '';
	var index = -1;
	var i = 0;

	for(i = 0; i < value.length; i++) {
		index = validCharacters.indexOf(value.charAt(i));

		if(index > -1) {
			result += validCharacters.charAt(index);
		}
	}

	return result;
}

function currencyFormatted(amount) {
	var formatedValue = amount;
	var real = '';
	var cents = '';
	var temp = [];
	var i = 0;
	var j = 0;
	var k = 0;

	formatedValue = clearString(formatedValue, "0123456789");

	if(formatedValue.length > 2) {
		/*real = formatedValue.substr(0, formatedValue.length - 2);
		cents = formatedValue.substr(formatedValue.length - 2, 2);*/
		
		real = formatedValue

		if(real.length > 3) {
			temp = [];
			for(i = real.length - 1, j = 1, k = 0; i > 0 ; i--, j++) {
				if((j % 3) == 0) {
					temp.push(real.substr(i, 3));
					k++;
				}
			}
			temp.reverse();
			real = real.substr(0, real.length - (3 * k))+'.'+temp.join('.');
		}

		formatedValue = real ;//+ ',' + cents;
	}

	return formatedValue;
}

function mascara(form, format)
{
	var input = form.value;
		
	if(input.length > 0) 
	{ //do not perform if empty input
		var numbers = ""; //store all the numbers here
 
		//Remover outros caracteres e espaços
		for(var i = 0; i < input.length; i++) 
		{
			var char = input.charAt(i);
			if(!(isNaN(char) || char == " ")) numbers += char;
		}
		var output = ""; //assign numbers here
 
		//Aplicar a máscara
 		var n = 0, i = 0;
		while(i < format.length && n < numbers.length) 
		{
			var char = format.charAt(i);
			if(char == "#") 
			{
				output += numbers.charAt(n++)
			} 
			else 
			{
				output += char;
			}
				i++;
		}
		form.value = output; //output to form
	}
}

/*
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:
* 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...

* onKeyPress="return txtBoxFormat(document.frmFormulario, 'txtTelRes', '(99) 9999-9999', event);

***/

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;
} else {
    nTecla = evtKeyPress.which;
    if (nTecla == 8) {
        return true;
    }
}

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) == ".") || (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