/*# CONTA CARACTER */
function contaCaracter(obj_campo,vc_contador,it_limite) {
	it_caracter		= eval('document.frm.' + vc_contador);
	
	if (obj_campo.value.length > it_limite) {
		obj_campo.value		= obj_campo.value.substring(0,it_limite);
	} else {
		it_caracter.value	= it_limite - obj_campo.value.length;
	}
}

/*# aceita só números digitados num campo */
function soNumero(evtKeyPress) {
	var nTecla;
	nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;
	
	// 	if((nTecla > 47 && nTecla < 58) || nTecla == 8 || nTecla == 9 || nTecla == 37 || nTecla == 39 || nTecla == 46)
	if((nTecla > 47 && nTecla < 58) || nTecla == 8 || nTecla == 9)
		return true;
	else
		return false;
}

/*# MASCARA */
function mascarar(vc_campo,vc_mascara) {
	var i		= vc_campo.value.length;
	var x		= vc_mascara.substring(0,1);
	var y		= vc_mascara.substring(i);
	
	if (y.substring(0,1) != x) {
		vc_campo.value += y.substring(0,1);
	}
}

/*# VERIFICA DATA #*/
function verificaData(vc_campo) { 
	if (vc_campo.value.length > 0) {  
		it_dia		= eval(vc_campo.value.substring(0,2)); 
		it_mes		= eval(vc_campo.value.substring(3,5)); 
		it_ano		= eval(vc_campo.value.substring(6,10)); 
		it_erro		= 0; 
		
		if (it_dia < 1 || it_dia > 31 || it_dia > 30 && (it_mes == 4 || it_mes == 6 || it_mes == 9 || it_mes == 11 )) { 
			it_erro	= 1; 
		} 

		if (it_mes < 1 || it_mes > 12 ) { 
			it_erro	= 1; 
		} 

		if (it_mes == 2 && (it_dia < 1 || it_dia > 29 || (it_dia > 28 && (parseInt(it_ano / 4) != it_ano / 4)))) { 
			it_erro	= 1; 
		} 

		if ((it_ano < 1900) || (it_ano>2078)){
			it_erro	= 1;
		}
		
		if (it_erro == 1) { 
			alert("Por favor, preencha uma data válida!"); 
			vc_campo.focus(); 
			vc_campo.value	= '';
		}
	} 
}

/*# Reseta forumlário ao recarregar a página */
function resetForms() {
   for (var i = 0; i < document.forms.length; i++) {
     document.forms[i].reset();
   }
}

/*# Abre popup centralizada na tela. Passar largura e altura */
function wopen(page,wdt,hgt)
{
	var _x				= wdt / 2;
	var _y				= hgt / 2;
	var pos_tela_width		= (screen.width / 2) - _x;
	var pos_tela_height		= (screen.height / 2) - _y;

	window.open(page,"pre","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,noresize,copyhistory=no,width="+wdt+",height="+hgt+",top="+pos_tela_height+",left="+pos_tela_width);
}

/*# EXIBIR / APAGAR LAYER*/
function sL(layerName){
	document.getElementById(layerName).style.display = "block";
}
        
function hL(layerName){
	document.getElementById(layerName).style.display = "none";
}

/*# TROCA LAYERS #*/
function tL(id_exibe, id_esconde){
	sL(id_exibe);
	hL(id_esconde);
}

/* FUNÇÃO PARA VALIDAR CPF */
function checkCPF(numero) {
	var CPF, pos, i, soma, dv, dv_informado;
	var digito = new Array(10);								// Cria array para armazenar os valores
	
	if (numero.length > 0) {
		CPF				= numero.replace(/[.-]/gi, "");		// Retira os '.' e '-' do número
		dv_informado	= CPF.substr(9, 2);					// Armazena os dois últimos dígito do CPF
		
		/* Desmembra o número do CPF na array digito */
		for (i=0; i<=8; i++) {
			digito[i] = CPF.substr( i, 1);					
		}
		
		/* Calcula o valor do 10° dígito da verificação */
		posicao		= 10;
		soma		= 0;
		for (i = 0; i <= 8; i++) {
			soma	+= digito[i] * posicao;
			posicao	 = posicao - 1;
		}
		digito[9] = soma % 11;
		if (digito[9] < 2) {
			digito[9] = 0;
		} else {
			digito[9] = 11 - digito[9];
		}
		
		/* Calcula o valor do 11° dígito da verificação */
		posicao	= 11;
		soma		= 0;
		for (i = 0; i <= 9; i++) {
			soma	+= digito[i] * posicao;
			posicao	 = posicao - 1;
		}
		digito[10] = soma % 11;
		if (digito[10] < 2) {
			digito[10] = 0;
		} else {
			digito[10] = 11 - digito[10];
		}
		
		/* Verifica se os dígitos verificadores conferem */
		dv = digito[9] * 10 + digito[10];
		
		if (dv != dv_informado) {
			//alert("CPF inválido");
			return false;
		} else {
			//alert("CPF válido");
			return true;
		}
	} else {
		//alert("CPF inválido");
		return false;
	}
}
