/*------------------------------------------------------
		Data:			14/06/2007
		Funcionalidade:	Configurações de Design
------------------------------------------------------*/
/*function onFocus(aFrm, aCampo){
	document.forms[aFrm].elements[aCampo.name].style.background = "#F8F8F8";
	document.forms[aFrm].elements[aCampo.name].style.border = "1px solid #BCBCBC";
}

function onBlur(aFrm, aCampo){
	document.forms[aFrm].elements[aCampo.name].style.background = "#FFFFFF";
	document.forms[aFrm].elements[aCampo.name].style.border = "1px solid #DADADA";
}*/

function onMouseOver(Obj, cssClass){
	Obj.className = cssClass;
}

function onMouseOut(Obj, cssClass){
   Obj.className = cssClass;
}

function checkRow(Obj, cssClass){
	if(Obj.checked){
		Obj.parentNode.parentNode.style.background = "#DFEEFF";
	}else{
		Obj.parentNode.parentNode.style.background = "#EEEEEE";
	}
}

/*------------------------------------------------------
	Data:			26/03/2005
	Funcionalidade:	Selecionar todos os checkbox do formulário
------------------------------------------------------*/
function selecionarTodos(aFrm, aChkAll) {
	var actVar = aChkAll.checked;
	for(i = 0; i < document.forms[aFrm].length; i++) {
		if(document.forms[aFrm].elements[i].type == "checkbox") {
			document.forms[aFrm].elements[i].checked = actVar;
		}
	}
	if(actVar){
		for(i = 0; i < document.forms[aFrm].length; i++) {
			document.forms[aFrm].elements[i].parentNode.parentNode.style.background = "#DFEEFF";
		}
	}else{
		for(i = 0; i < document.forms[aFrm].length; i++) {
			document.forms[aFrm].elements[i].parentNode.parentNode.style.background = "#EEEEEE";
		}
	}
}

/*------------------------------------------------------
	Data:			25/03/2005
	Funcionalidade:	Oculta um bloco específico
------------------------------------------------------*/
function displaySetor(anObj) {
	if(document.getElementById(anObj).style.display == 'none') {
		document.getElementById(anObj).style.display = '';
	}else{
		document.getElementById(anObj).style.display = 'none';
	}
}

/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Verifica um formato de arquivo
------------------------------------------------------*/
function validarFormatoArquivo(aFrm, anElement, aTipo){
	nomeArquivo = document.forms[aFrm].elements[anElement].value;
	extArquivo  = nomeArquivo.split(".");

	switch(aTipo){
		case "JPG":
			if((extArquivo[extArquivo.length-1] != "jpg") && (extArquivo[extArquivo.length-1] != "JPG") && (extArquivo[extArquivo.length-1] != "jpeg") && (extArquivo[extArquivo.length-1] != "JPEG")){
				return true;
			}
		break;
		case "GIF":
			if((extArquivo[extArquivo.length-1] != "gif") && (extArquivo[extArquivo.length-1] != "GIF")){
				return true;
			}
		break;
		case "MP3":
			if((extArquivo[extArquivo.length-1] != "mp3") && (extArquivo[extArquivo.length-1] != "MP3")){
				return true;
			}
		break;
		case "WAV":
			if((extArquivo[extArquivo.length-1] != "wav") && (extArquivo[extArquivo.length-1] != "WAV")){
				return true;
			}
		break;
		default: return false;
	}
}

/*------------------------------------------------------
	Data:			02/05/2005
	Funcionalidade:	Checa se algum checkbox foi selecionado na LST
------------------------------------------------------*/
function checaSelecao(aFrm){
	var cont = 0;
	for(i = 0; i < document.forms[aFrm].length; i++) {
		if(document.forms[aFrm].elements[i].checked) {
			cont++;
			break;
		}
	}
	if(cont){
		if(confirmarAcao('Tem certeza que deseja excluir?')){
			document.forms[aFrm].submit();
		}
	}else{
		mensagem('Por favor, selecione pelo menos um registro.',"");
	}
}

/*------------------------------------------------------
	Data:			25/03/2005
	Funcionalidade:	Recebe uma mensagem de confirmação
------------------------------------------------------*/
function confirmarAcao(aMsg){
	if(confirm(aMsg)){		
		return true;
	}
}

function confirmarExclusao(aMsg, anUrlDestino){
	if(confirmarAcao(aMsg)){
		location.href = anUrlDestino;
	}
}

/*------------------------------------------------------
	Data:			02/05/2005
	Funcionalidade:	Não permite digitar caracters diferentes de 0123456789
------------------------------------------------------*/
function onlyNumber(anEvent){
	var charExp = /[0-9]/;
	var teclaCodigo;
	var teclaChar;

	if(anEvent.keyCode){
		teclaCodigo = anEvent.keyCode;
	}else{
		if(anEvent.which){
			teclaCodigo = anEvent.which;
		}
	}
	teclaChar = String.fromCharCode(teclaCodigo);
	if(teclaCodigo == 44 || teclaCodigo == 8 || teclaCodigo == 9 || (teclaCodigo == 35 && anEvent.shiftKey) || (teclaCodigo == 36 && anEvent.shiftKey) || (teclaCodigo == 37 && (anEvent.shiftKey || teclaChar != '%')) || (teclaCodigo == 39 && teclaChar != "'") || (teclaCodigo == 46 && teclaChar != '.')){
		return true;
	}else{
		if(!charExp.test(teclaChar)){
			return false;
		}else{
			return true;
		}
	}
}

/*------------------------------------------------------
	Data:			07/09/2005
	Funcionalidade:	Abre um Popup
------------------------------------------------------*/
function abrePopup(anUrl, aTituloPagina, anOpcao){
	window.open(anUrl, aTituloPagina, anOpcao); 
}

/*------------------------------------------------------
	Data:			26/03/2005
	Funcionalidade:	Verifica se um campo está vazio trabalhando com a função mensagem
------------------------------------------------------*/
function isVazio(aFrm, anElement, aMsg){
	if(document.forms[aFrm].elements[anElement].value == ""){
		if((aMsg != "") && (aMsg != null)){
			mensagem(aMsg, "");
			document.forms[aFrm].elements[anElement].focus();
		}		
		return true;
	}
	return false;
}

function mensagem(aMsg, anUrlDestino){
	if(aMsg != ""){
		alert(aMsg);
	}
	if(anUrlDestino != ""){
		switch (anUrlDestino){
			case "-1":
				history.go(-1);
				break;
			default:
				location.href = anUrlDestino;
		}
	}
}

/*------------------------------------------------------
	Data:			26/03/2005
	Funcionalidade:	Verifica se um e-mail é válido
------------------------------------------------------*/
function validaEmail(aFrm, anElement, aMsg){
	var strElement	= document.forms[aFrm].elements[anElement].value;
	var strInvalid	= /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
	var strValid	= /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
	if(!strInvalid.test(strElement) && strValid.test(strElement)) {
		return true;
	}else{
		alert(aMsg);
		document.forms[aFrm].elements[anElement].focus();
		return false;
	}
}

/*------------------------------------------------------
	Data:			14/06/2007
	Funcionalidade:	Coloca máscara em um campo
------------------------------------------------------*/
function mascaraCampo(aField, aMask){
	var i = aField.value.length;
	var saida = aMask.substring(0,1);
	var texto = aMask.substring(i);

	if(texto.substring(0,1) != saida){
		aField.value += texto.substring(0,1);
	}
}

/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Compara a data atual com uma data passada como parâmetro
	Retorno:		1 se aCampodata > data atual
					0 se aCampodata = data atual
					-1 se aCampodata < data atual
------------------------------------------------------*/
function comparaDataAtual(aFrm, aCampoData){
	var dataAtual, diaAtual, mesAtual, anoAtual, dia, mes, ano, operacao;

	dataAtual = new Date();
	diaAtual  = dataAtual.getDate();
	mesAtual  = dataAtual.getMonth()+1;
	anoAtual  = dataAtual.getFullYear();

	fieldData = document.forms[aFrm].elements[aCampoData].value;
	data	  = fieldData.split("/");
	dia = data[0];
	mes = data[1];
	ano = data[2];

	if(ano > anoAtual){
		result = 1;
	}else{
		if(ano < anoAtual){
			result = -1;
		}else{
			if(mes > mesAtual){
				result = 1;
			}else{
				if(mes < mesAtual){
					result = -1;
				}else{
					if(dia > diaAtual){
						result = 1;
					}else{
						if(dia < diaAtual){
							result = -1;
						}else{
							result = 0;
						}
					}
				}
			}
		}
	}
	return (result);
}

/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Compara duas datas passadas como parâmetro
	Retorno:		1 se aCampodata1 > aCampodata2
					0 se aCampodata1 = aCampodata2
				   -1 se aCampodata1 < aCampodata2
------------------------------------------------------*/
function comparaDatas(aFrm, aCampoData1, aCampoData2){
	var dia1, mes1, ano1, dia2, mes2, ano2, operacao;

	data = aCampoData1.split("/");
	dia1 = data[0];
	mes1 = data[1];
	ano1 = data[2];

	data = aCampoData2.split("/");
	dia2 = data[0];
	mes2 = data[1];
	ano2 = data[2];

	if(ano1 > ano2){
		result = 1;
	}else{
		if(ano1 < ano2){
			result = -1;
		}else{
			if(mes1 > mes2){
				result = 1;
			}else{
				if(mes1 < mes2){
					result = -1;
				}else{
					if(dia1 > dia2){
						result = 1;
					}else{
						if(dia1 < dia2){
							result = -1;
						}else{
							result = 0;
						}
					}
				}
			}
		}
	}

	return (result);
}

/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Valida se a data passada como parâmetro é válida
------------------------------------------------------*/
function validaData(aFrm, aCampoDia, aCampoMes, aCampoAno){
	if(aCampoDia.length < 2){
		alert("Por favor, preencha a data corretamente.");
		return false;
	}

	if(aCampoMes.length < 2){
		alert("Por favor, preencha a data corretamente.");
		return false;
	}

	if(aCampoAno.length < 4){
		alert("Por favor, preencha a data corretamente.");
		return false;
	}

	if(aCampoAno == 0){
		alert("Por favor, preencha a data corretamente.");
		return false;
	}

	if((aCampoMes > 12) || (aCampoMes == 0)){
		alert("Por favor, preencha a data corretamente.");
		return false;
	}

	if(aCampoMes == 2){
		if(((aCampoAno%4 != 0) || (aCampoAno%100 == 0 && aCampoAno%400 != 0)) && aCampoDia > 28 || aCampoDia > 29 ){
			alert("Por favor, preencha a data corretamente.");
			return false;
		}
	}else{
		if(aCampoDia > 31){
			alert("Por favor, preencha a data corretamente.");
			return false;
		}else{
			if((aCampoDia == 31) && ((aCampoMes == 4) || (aCampoMes == 6) || (aCampoMes == 9) || (aCampoMes == 11))){
				alert("Por favor, preencha a data corretamente.");
				return false;
			}
		}
	}
	return true;
}

/*------------------------------------------------------
	Data:			06/07/2005
	Funcionalidade:	Verifica se a data em um combo é válida
------------------------------------------------------*/
function validaDataCombo(aFrm, aCampoDia, aCampoMes, aCampoAno){
	if(aCampoMes == 2){
		if(((aCampoAno%4 != 0) || (aCampoAno%100 == 0 && aCampoAno%400 != 0)) && aCampoDia > 28 || aCampoDia > 29 ){
			return false;
		}
	}else{
		if((aCampoDia == 31) && ((aCampoMes == 4) || (aCampoMes == 6) || (aCampoMes == 9) || (aCampoMes == 11))){
			document.forms[aFrm].elements[aCampoDia].value = "";
			return false;
		}		
	}
	return true;
}

/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Dá o focus no próximo elemento do formulário
------------------------------------------------------*/
function goNextField(aFrm, aCampoAtual, aCampoAtualMaxLenght, aProximoCampo){
	if(document.forms[aFrm].elements[aCampoAtual.name].value.length == aCampoAtualMaxLenght){
		document.forms[aFrm].elements[aProximoCampo].focus();
		document.forms[aFrm].elements[aProximoCampo].select();
	}
}

// Funções especiais para um elemento Textarea
/*------------------------------------------------------
	Data:			20/05/2006
	Funcionalidade:	Move registros entre dois listbox
------------------------------------------------------*/
function move(aListBoxOrigem, aListBoxDestino){
	var i;
	for(i = 0; i < aListBoxOrigem.length; i++){
		if(aListBoxOrigem[i].selected == true){
			var obj = new Option(aListBoxOrigem[i].text, aListBoxOrigem[i].value, false, false);
			aListBoxDestino.options[aListBoxDestino.length] = obj;
		}
	}
	for(i = aListBoxOrigem.length-1; i >= 0; i--){
		if(aListBoxOrigem[i].selected == true){
			aListBoxOrigem[i] = null;
		}
	}   
}

function selecionaTodos(anObj){
	var i;
	for(i = 0; i < anObj.length; i++){
		anObj[i].selected = true;
	}
}

function moveTodos(aListBoxOrigem, aListBoxDestino){
	selecionaTodos(aListBoxOrigem);
	move(aListBoxOrigem, aListBoxDestino);
}

function ordenaListBox(aFrm, anElement, aDirecao) {
	var dlbSelecionado = document.forms[aFrm].elements[anElement];

	if(!dlbSelecionado){
		return;
	}

	if(aDirecao == 'cima' || aDirecao == 'baixo') {
		var itemSelect = dlbSelecionado.selectedIndex;
		var comparacao = aDirecao == 'cima' ? itemSelect - 1 : itemSelect;
		var arrValues  = new Array();
		var arrTexts   = new Array();
		var dlbLength  = dlbSelecionado.options.length;
		if(itemSelect == -1){
			return;
		}
		if(aDirecao == 'cima' && itemSelect == 0){
			return;
		}
		if(aDirecao == 'baixo' && itemSelect == dlbLength - 1){
			return;
		}
		itemSelect = aDirecao == 'cima' ? itemSelect - 1 : itemSelect + 1;
		for(i = 0; i < dlbSelecionado.options.length; i++){
			if(i == comparacao){
				arrValues.push(dlbSelecionado.options[i+1].value);
				arrTexts.push(dlbSelecionado.options[i+1].text);
				dlbSelecionado.options[i + 1] = null;
			}
			arrValues.push(dlbSelecionado.options[i].value);
			arrTexts.push(dlbSelecionado.options[i].text);
		}
		for(i = 0; i < dlbLength; i++){
			dlbSelecionado.options[i] = new Option(arrTexts[i], arrValues[i]);
		}
		dlbSelecionado.selectedIndex = itemSelect;
	}
}

/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Concatena valores selecionados em um listbox
------------------------------------------------------*/
function multSelect(aFrm, aNomeSelect, aNomeHidden){
	var prim = 0;
	var opcoes = "";

	for(i = 0 ; i < document.forms[aFrm].elements[aNomeSelect].length; i++){
		if(prim == 0){
			prim = 1;
			opcoes += (document.forms[aFrm].elements[aNomeSelect].options[i].value);
		}else{
			opcoes += (","+document.forms[aFrm].elements[aNomeSelect].options[i].value);
		}
	}

   document.forms[aFrm].elements[aNomeHidden].value = opcoes;
}

// Funções especiais para a tela PermissaoLst
/*------------------------------------------------------
	Data:			02/05/2005
	Funcionalidade:	Checa se algum checkbox foi selecionado
------------------------------------------------------*/
function selecionarItem(aCheckbox) { 
	var indice = elementPosition(aCheckbox.form, aCheckbox);
	var actVar = aCheckbox.checked;
	var form   = aCheckbox.form;

	if(form.elements[aCheckbox.name].name.indexOf("chkCadastrar") != -1) {
		if(!form.elements[indice-1].checked && !form.elements[indice+1].checked && !form.elements[indice+2].checked && !form.elements[indice+3].checked && !form.elements[indice+4].checked){
			form.elements[indice-1].checked = actVar;
		}
	}
	if(form.elements[aCheckbox.name].name.indexOf("chkConsultar") != -1) {
		if(!form.elements[indice-2].checked && !form.elements[indice-1].checked && !form.elements[indice+1].checked && !form.elements[indice+2].checked && !form.elements[indice+3].checked){
			form.elements[indice-2].checked = actVar;
		}
	}
	if(form.elements[aCheckbox.name].name.indexOf("chkEditar") != -1) {
		if(!form.elements[indice-3].checked && !form.elements[indice-1].checked && !form.elements[indice-2].checked && !form.elements[indice+1].checked && !form.elements[indice+2].checked){
			form.elements[indice-3].checked = actVar;
		}
	}
	if(form.elements[aCheckbox.name].name.indexOf("chkExcluir") != -1) {
		if(!form.elements[indice-4].checked && !form.elements[indice-1].checked && !form.elements[indice-2].checked && !form.elements[indice-3].checked && !form.elements[indice+1].checked){
			form.elements[indice-4].checked = actVar;
		}
	}
	if(form.elements[aCheckbox.name].name.indexOf("chkImprimir") != -1) {
		if(!form.elements[indice-5].checked && !form.elements[indice-4].checked && !form.elements[indice-3].checked && !form.elements[indice-2].checked && !form.elements[indice-1].checked){
			form.elements[indice-5].checked = actVar;
		}
	}
}

/*------------------------------------------------------
	Data:			02/05/2005
	Funcionalidade:	Seleciona os cinco checkbox de uma linha
------------------------------------------------------*/
function selecionarLinha(aCheckbox) { 
	var indice = elementPosition(aCheckbox.form, aCheckbox);
	var actVar = aCheckbox.checked ;
	var form   = aCheckbox.form;
	if (indice != -1) {
		form.elements[indice+1].checked = actVar;
		form.elements[indice+2].checked = actVar;
		form.elements[indice+3].checked = actVar;
		form.elements[indice+4].checked = actVar;
		form.elements[indice+5].checked = actVar;
	}
}

/*------------------------------------------------------
	Data:			02/05/2005
	Funcionalidade:	Retorna a posição do checkbox no formulário com o nome passado como parâmetro
------------------------------------------------------*/
function elementPosition(aForm, anObj){
	for(var i=0; i < aForm.length; i++){
		if(aForm.elements[i].name == anObj.name){
			return i;
		}
	}
	return (-1);
}

// Funções especiais para um elemento Textarea
/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Mostra o número de caracteres restantes
------------------------------------------------------*/
function mostrarContador(aFrm, aCampo, aTamanho){
	document.forms[aFrm].lengthChar.value = aTamanho - (aCampo.value.length);
	divContador.style.visibility = 'visible';
}

/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Esconde o número de caracteres restantes
------------------------------------------------------*/
function esconderContador(){
	divContador.style.visibility = 'hidden';
	return;
}

/*------------------------------------------------------
	Data:			20/09/2005
	Funcionalidade:	Calcula o limite de caracteres de um Textarea
------------------------------------------------------*/
function maxLengthTextarea(aFrm, aCampo, aTamanho, anEvento){
	if((anEvento.which == 0) || (anEvento.which == 8)){
		return true;
	}
 
    strLength = aCampo.value.length;
 
	if(strLength >= aTamanho){
		contadorTextarea(aFrm, aCampo, aTamanho);
	} 
}
 
function contadorTextarea(aFrm, aCampo, aTamanho){
	var charQtd = 0;
	charQtd = aTamanho - (aCampo.value.length);
	if(charQtd < 0){
		aCampo.value = aCampo.value.substring(0, aCampo.value.length + charQtd);
		charQtd = 0;
	}
}  

/*------------------------------------------------------
	Data:			14/06/2007
	Funcionalidade:	Funções das abas
------------------------------------------------------*/
function setAba(aMenu, aConteudo){
	this.aMenu	   = aMenu;
	this.aConteudo = aConteudo;
}

function alternarAbas(aMenu, aConteudo, anArray){
	for(i = 0; i < anArray.length; i++){
		menu 		   			= document.getElementById(anArray[i].aMenu);
		menu.className 			= '';
		conteudo 			    = document.getElementById(anArray[i].aConteudo)
		conteudo.style.display  = 'none';
	}
	menu 		   			= document.getElementById(aMenu);
	menu.className 			= 'selecionada';
	conteudo 			    = document.getElementById(aConteudo);
	conteudo.style.display  = '';
}

function selecionarAba(anAba, aClass){
	document.getElementById(anAba).className = aClass;
}

/*function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true;
    teclaPress = String.fromCharCode(whichCode); // Valor para o código da Chave
	len = objTextBox.value.length;
	if(len == 0){
		objTextBox.value = '0'+ SeparadorDecimal + '0' + teclaPress;
		return true;
	}
	if(len > 4){
		arrayNum = objTextBox.value.split(SeparadorDecimal);
		parte1 = '';
		for(i = 0; i < arrayNum[0].length; i++){
			if(arrayNum[0][i] != SeparadorMilesimo){
				parte1 += arrayNum[0][i];
			}
		}
		parte1 += arrayNum[1][0];

		j = 0;
		parte1Final = '';
		for(i = parte1.length - 1; i >= 0; i--){
			if(j == 3){
				parte1Final = SeparadorMilesimo + parte1Final;
				j = 0;
			}
			parte1Final = parte1.charAt(i) + parte1Final;
			j++;
		}
		parte2Final = '';
		parte2Final = arrayNum[1][1] + teclaPress;
		objTextBox.value = parte1Final + SeparadorDecimal + parte2Final;
	}
}*/
