/*
Funções:

Mascara(formato, ekeypress, objeto, browser)
uso: OnKeyPress="Mascara('data', event, this, 'IE')"

formatar(campo, mascara)
uso: OnKeyPress="formatar(this, '##/##/####')"

function fmtDado(campo, evento, mascara)
uso: OnKeyPress="fmtDado(this, event, '(##)####-####')"

fmtValor(campo, evento)
uso: OnKeyPress="return(fmtValor(this,event))"

*/
function Mascara(formato, ekeypress, objeto, browser)
{
campo = eval(objeto);

if (browser == "Firefox")
  keypress = ekeypress.charCode
else
  keypress = ekeypress.keyCode;
  
// Mascara para data dd/mm/aaaa
if (formato=='data')
	{
	caracteres = '1234567890';
    separacoes = 2
	separacao1 = '/';
	separacao2 = '/';
	conjunto1 = 2;
	conjunto2 = 2;
	conjunto3 = 4;

	if (((keypress >= 48) && (keypress <= 57)) && campo.value.length < (conjunto1 + conjunto2 + conjunto3 + separacoes))
		{
	    if (campo.value.length > 8)
	       {
		   //colocar aqui o campo seguinte que será focado após digitar a data, ou comentá-lo
	       //document.frm.nome.focus();
           }
		if (campo.value.length == conjunto1)
		   campo.value = campo.value + separacao1;
		if (campo.value.length == conjunto1 + conjunto2 + 1)
		   campo.value = campo.value + separacao2;
		}
	else event.returnValue=false;
	}

// Mascara para hora hh:mm
if (formato=='hora')
	{
	caracteres = '1234567890';
    separacoes = 1
	separacao1 = ':';
	conjunto1 = 2;
	conjunto2 = 2;
	
	if (((keypress >= 48) && (keypress <= 57)) && campo.value.length < (conjunto1 + conjunto2 + separacoes))
		{
	    if (campo.value.length > 4)
	       {
		   //colocar aqui o campo seguinte que será focado após digitar a hora, ou comentá-lo
	       //document.frm.nome.focus();
           }
		if (campo.value.length == conjunto1)
		   campo.value = campo.value + separacao1;
		}
	else event.returnValue=false;
	}
}

function formatar(src, mask)
{
	var i = src.value.length;
	var saida = '#';
	var texto = mask.substring(i)
	if (texto.substring(0,1) != saida)
	{
		src.value += texto.substring(0,1);
	}
}

function fmtCampo(src, evento, mask)
{
	var isMS = navigator.appName.substring(0,9) == "Microsoft";
	if (isMS) { keypress = evento.keyCode; } else { keypress = evento.charCode; }

	if ( ((keypress >= 48) && (keypress <= 57)) || ((keypress >= 65) && (keypress <= 90)) || ((keypress >= 97) && (keypress <= 122)) || (! isMS) )
	{
		var i = src.value.length;
		var saida = '#';
		var texto = mask.substring(i);
		if (texto.substring(0,1) != saida)
		{
			src.value += texto.substring(0,1);
		}
	}
	else
		evento.keyCode = 0;
}

function fmtDado(src, evento, mask)
{
	var isMS = navigator.appName.substring(0,9) == "Microsoft";
	if (isMS) { keypress = evento.keyCode; } else { keypress = evento.charCode; }

	if ( ((keypress >= 48) && (keypress <= 57)) || (! isMS) )
	{
		var i = src.value.length;
		var saida = '#';
		var texto = mask.substring(i);
		if (texto.substring(0,1) != saida)
		{
			src.value += texto.substring(0,1);
		}
	}
	else
		evento.keyCode = 0;
}

function fmtValor(fld, e) 
{
	var milSep = '.';
	var decSep = ',';
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';

//	if (navigator.appName.substring(0,9) != "Microsoft") return true;
	
	var whichCode = (window.Event) ? e.which : e.keyCode;
//alert(whichCode);
	if ((whichCode == 13) || (whichCode == 8) || (whichCode == 0)) return true; // Entra
	
	key = String.fromCharCode(whichCode); // Comece o valor chave do código chave
	if (strCheck.indexOf(key) == -1) return false; // Chave inválida

	len = fld.value.length;
	for(i = 0; i < len; i++)
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
	aux = '';
	for(; i < len; i++)
		if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
	aux += key;
	len = aux.length;
	if (len == 0) fld.value = '';
	if (len == 1) fld.value = '0'+ decSep + '0' + aux;
	if (len == 2) fld.value = '0'+ decSep + aux;
	if (len > 2) 
	{
		aux2 = '';
		for (j = 0, i = len - 3; i >= 0; i--) 
		{
			if (j == 3) 
			{
				aux2 += milSep;
				j = 0;
			}
			aux2 += aux.charAt(i);
			j++;
		}
		fld.value = '';
		len2 = aux2.length;
		for (i = len2 - 1; i >= 0; i--)
			fld.value += aux2.charAt(i);
		fld.value += decSep + aux.substr(len - 2, len);
	}
	return false;
}