function dateMask(objEvent, objeto)
{
	keypress = getKeyPress(objEvent);
	
	campo = eval(objeto);	
 	caracteres = '01234567890';
 	separacoes = 2;
 	separacao1 = '/';
 	separacao2 = '/';
 	conjunto1 = 2;
 	conjunto2 = 2;
 	conjunto3 = 4;
 	if ((caracteres.search(String.fromCharCode(keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + conjunto3 + separacoes))
 	{
 		 if (campo.value.length == conjunto1)
		 	campo.value = campo.value + separacao1;
 
		 if (campo.value.length == conjunto1 + conjunto2 + 1)
			campo.value = campo.value + separacao2;
 	}
}

function timeMask(objEvent, objeto)
{
	keypress = getKeyPress(objEvent);
	
	campo = eval(objeto);	
 	caracteres = '01234567890';
 	separacoes = 1;
 	separacao1 = ':';
 	conjunto1 = 2;
 	conjunto2 = 4;
 	if ((caracteres.search(String.fromCharCode(keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + separacoes))
 	{
 		 if (campo.value.length == conjunto1)
		 	campo.value = campo.value + separacao1;
 	}
}

function cepMask(objEvent, objeto)
{
	keypress = getKeyPress(objEvent);
	
	campo = eval(objeto);	
 	caracteres = '01234567890';
 	separacoes = 1;
 	separacao1 = '-';
 	conjunto1 = 5;
 	conjunto2 = 8;
 	if ((caracteres.search(String.fromCharCode(keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + separacoes))
 	{
 		 if (campo.value.length == conjunto1)
		 	campo.value = campo.value + separacao1;
 	}
}

function phoneMask(objEvent, objeto)
{
	keypress = getKeyPress(objEvent);
	
	campo = eval(objeto);	
 	caracteres = '01234567890';
 	separacoes = 2;
 	separacao1 = ' ';
 	separacao2 = '-';
 	conjunto1 = 2;
 	conjunto2 = 4;
 	conjunto3 = 4;
 	if ((caracteres.search(String.fromCharCode(keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + conjunto3 + separacoes))
 	{
 		 if (campo.value.length == conjunto1)
		 	campo.value = campo.value + separacao1;
 
		 if (campo.value.length == conjunto1 + conjunto2 + 1)
			campo.value = campo.value + separacao2;
 	}
}

/*Criado por Lucas e Cassyus
*função para validação 
*de número, utilizada 
*na TAG NUMBER
*/
function validateNumber(eventoCampo){
	if (eventoCampo.ctrlKey)
		return true;

	var tecla = eventoCampo.keyCode || eventoCampo.charCode;
	var TCL_BKSP = 8;
	var TCL_TAB = 9;
	var TCL_ESQ = 37;
	var TCL_CIMA = 38;
	var TCL_DIR = 39;
	var TCL_BXO = 40;
	var TCL_VIRG = 44;
	var TCL_MEN = 45;
	var TCL_DEL = 46;
	var TCL_ENT = 13;
	var TCL_ESC = 27;
	switch (tecla) {
		case TCL_BKSP:
			return true;
		case TCL_TAB:
			return true;
		case TCL_ESQ:
			return true;
		case TCL_CIMA:
			return true;
		case TCL_DIR:
			return true;
		case TCL_BXO:
			return true;
		case TCL_MEN:
			return true;
		case TCL_ENT:
			return true;
		default:
			break;
		}
	
	//Não é permitido digitar '.' na entrada de dados
	if(String.fromCharCode(tecla) == ".")
		return false;

	//Não pode ter duas virgulas
	if(String.fromCharCode(tecla) == "," && Event.element(eventoCampo).value.indexOf(",") != -1)
		return false;
	
	return /^[0-9.,-]$/.test(String.fromCharCode(tecla));
}


/**
 * Utilizar no evento "onkeydown" do campo.
 * Exemplo: <input type="text" onkeydown="return validateOnlyNumber(event);" />
 */
function validateOnlyNumber(eventoCampo) {
	if (eventoCampo.ctrlKey)
		return true;

	var tecla = eventoCampo.keyCode || eventoCampo.charCode;
	var TCL_BKSP = 8;
	var TCL_TAB = 9;
	var TCL_ESQ = 37;
	var TCL_CIMA = 38;
	var TCL_DIR = 39;
	var TCL_BXO = 40;
	var TCL_DEL = 46;
	var TCL_ENT = 13;
	var TCL_ESC = 27;
	switch (tecla) {
	case TCL_BKSP:
		return true;
	case TCL_TAB:
		return true;
	case TCL_ESQ:
		return true;
	case TCL_CIMA:
		return true;
	case TCL_DIR:
		return true;
	case TCL_BXO:
		return true;
	case TCL_DEL:
		return true;
	case TCL_ENT:
		return true;
	case TCL_ESC:
		return true;
	}
	return ((tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105));
}

/**
*Funções abaixo são para formatar números decimais
*Devem ser utilizadas com o evento onkeydown no campo
*Lucas
*19/06/2008
*/

function decimalClear(valor, validos) {
// retira caracteres invalidos da string
	var result = "";
	var aux;
	for (var i=0; i < valor.length; i++) {
	aux = validos.indexOf(valor.substring(i, i+1));
	if (aux>=0) {
	result += aux;
	}
	}
	return result;
}
	
//Formata número com 2 casas decimais usando o evento onKeyDown
	
function decimalMask(campo,tammax,teclapres,decimal) {
	var tecla = teclapres.keyCode;
	vr = decimalClear(campo.value,"0123456789");
	tam = vr.length;
	dec=decimal
	
	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }
	
	if (tecla == 8 )
	{ tam = tam - 1 ; }
	
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
	{
	
	if ( tam <= dec )
	{ campo.value = vr ; }
	
	if ( (tam > dec) && (tam <= 5) ){
	campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ) ; }
	if ( (tam >= 6) && (tam <= 8) ){
	campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, 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 - dec, 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 - dec, 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 ) ;}
	} 

}
//valida o value do elemento passado para ter uma data.
//caso a data seja invalida, a mensagem de erro padrao do sistema é exibida.
//caso o campo esteja vazio, na aplica validacao
validateDate = function( o )
{
	clearMessage();
	if(o.value.empty() || o.value.blank()) {
		return;
	}
	if( !isDate(o.value) ) {		
		showErrorMessage("Data inválida: "+o.value);
		o.value="";
	}
}
//verifica se a data passada é valida.
isDate = function( value ) 
{
var v = maskDateValue(value);
	var arrData = v.split("/");
	if(arrData.length == 3) {
		if(arrData[1] == undefined || arrData[1] == "") {
		    return false;
		}
		if(arrData[2] == undefined || arrData[2] == "") {
		    return false;
		}
		var mes = parseInt(eval(arrData[1]));
		var ano = parseInt(eval(arrData[2]));
		var dia = parseInt(eval(arrData[0]));

		var arrDiasMes = daysArray();
		if(arrDiasMes[mes] == undefined) {
			return false;
		}
		
		if(mes == 2 && ano % 4 != 0) {
			arrDiasMes[mes] = 28;
		}
		
		if((''+ano).length != 4){
			return false;
		}
		if(dia > arrDiasMes[mes]) {
			return false;
		}
		return true;
	}
	return false;
}

isValidYear = function(o){
	var v = maskDateValue(o.value);
	var arrData = v.split("/");
	
	if(arrData.length == 3) {
		
		var ano = parseInt(eval(arrData[2]));
		
		if(ano > 2050 ) {
			showMessageYear(o);
		}
		if(ano < 1900 ) {
			showMessageYear(o);
		}
	}
	return true;
}

function showMessageYear(o){
	clearMessage();
	showErrorMessage("Data inválido: "+o.value);
	o.value="";
}

//cria array com o numero maximo de dias por mes
daysArray = function ()
{
	var n = 12;
	for (var i = 1; i <= n; i++) {
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {
				this[i] = 30;
		}
		if (i==2) {
			this[i] = 29;
		}
	}
	return this
}

//aplica mascara dd/MM/yyyy na string passada.
maskDateValue = function ( v )
{
	v = v.replace(/\D/g,""); 
	v = v.replace(/(\d{2})(\d)/,"$1/$2");
	v = v.replace(/(\d{2})(\d)/,"$1/$2");
	return v;
}

function  cnaeMask(objEvent, objeto)
{
	keypress = getKeyPress(objEvent);
	
	campo = eval(objeto);	
 	caracteres = '01234567890';
 	separacoes = 2;
 	separacao1 = '-';
 	separacao2 = '/';
 	conjunto1 = 4;
 	conjunto2 = 1;
 	conjunto3 = 2;
 	if ((caracteres.search(String.fromCharCode(keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + conjunto3 + separacoes))
 	{
 		 if (campo.value.length == conjunto1)
		 	campo.value = campo.value + separacao1;
 
		 if (campo.value.length == conjunto1 + conjunto2 + 1)
			campo.value = campo.value + separacao2;
 	}
}

