/**
* ARQUIVO COM FUNCOES UTEIS PARA FORMULARIOS DE CADASTRO
*/

var acaoIncluir = "INC";
var acaoExcluir = "REM";
var acaoAlterar = "ALT";
var acaoNovo = "NOV";
var acaoListar = "LIS";
var acaoOutra= "OUT";
var acaoExcLan= "EXL";
var acaoAtualizarTelaCadastro = "ATC";
var acaoFechar = "FEC";
var acaoHTML = "HTM";

/**
* Configura metodo de exibicao de erro de javascript
*/
function tellerror(msg, url, linenumber){
	alert('Error message= '+msg+'\nURL= '+url+'\nLine Number= '+linenumber);
	return true;
}
window.onerror=tellerror;


/**
* funcao para imprimir a parte central do sistema
*/
function imprimir()
{
	if (window.frames.parent.centro)
	{
		window.frames.parent.centro.focus();
		//window.print();
		window.frames.parent.centro.print();
	}
}


/**
* Exibe uma mensagem, caso nao seja vazia, em um alerta na tela
*/
function mostrar(msg)
{
	if (msg)
		alert(msg);
}



/**
* Pede confirmacao para excluir
*/
function confirmarExclusao(form, msgConfirmacaoIndividual, msgConfirmacaoVarios)
{
	var ids = form["ids[]"];
	//var delData = form["delData"];

	if (!ids)
		return confirm(msgConfirmacaoIndividual);
	
	/*if (form.acao.value.toUpperCase() != acaoExcluir)
		return;*/
		
	var selecionado = 0;
	
	// verificar se a exclusao nao eh individual
	if (form.id.value.length == 0)
	{	
		// verificar se exite algum checkbox selecionado
		if (ids.length > 0)
		{
			for (var i = 0; i < ids.length; i++)
			{
				if (ids[i].checked)
				{
					selecionado = 2;
					break;
				}
			}
		}
		else
			selecionado = ids.checked ? 2 : 0;
	}
	else
	{
		selecionado = 1;
	}
	
	if (selecionado == 2)
	{
		return confirm(msgConfirmacaoVarios);
	}
	else if (selecionado == 1)
	{
		if (confirm(msgConfirmacaoIndividual))
		{
			return true;
		}
		else
		{
			form.id.value = "";
			return false;
		}
	}
	//delData alterado por Wedrey em 22/06/2006
	// por motivo do arquivo lae_adodb_logsql.inc.php
	
	/*else if (form.delData.value != 1)
	{
		alert("Selecione pelo menos um registro para excluir!");
		return false;
	}*/
}


/**
* submete o formulario
*/
function submeter(form, acao)
{
	acao = acao.toUpperCase();
	
	if ((acao == acaoAlterar || acao == acaoExcluir || acao == 'VER') && arguments[2])
		form.id.value = arguments[2];

	if ((acao == acaoExcluir) && arguments[3] && arguments[4])
	{
		var msgConfirmacaoIndividual = arguments[3];
		var msgConfirmacaoVarios = arguments[4];
	}else
	{
		var msgConfirmacaoIndividual = "Confirmar exclusão  desse registro?";
		var msgConfirmacaoVarios = "Confirmar exclusão do(s) registro(s) selecionado(s)?";
		
	}


	if ((acao == acaoExcluir) && !confirmarExclusao(form, msgConfirmacaoIndividual, msgConfirmacaoVarios))
		return false;

	// "Esse formulário foi alterado.\nSe prosseguir, as alterações serão perdidas.\nDeseja prosseguir?"
	if (((acao == acaoNovo) || (acao == acaoListar) || (acao == acaoFechar)) && verificarAlteracaoForm(form))
		if (!confirm("As alterações serão perdidas.\nDeseja prosseguir?"))
			return false;

	// fechar popup
	if (acao == acaoFechar)
	{
		if (window.onunload != undefined)
			window.onunload();
			
		window.close();
	}
		
	if ((acao != acaoListar) && (acao != acaoNovo) && form.onsubmit != undefined && form.onsubmit() === false)
		return false;
	
	// gravar posicao de deslocamento do formulario
	if (typeof(gravarPosicao) != "undefined")
		gravarPosicao(form);
	
	form.acao.value = acao;
	form.submit();
}


/**
* seleciona ou deseleciona os checkboxes de uma listagem
*/
function marcarCheckbox(checkbox, selecionar)
{
	if (checkbox.length > 0)
	{
		for (var i = 0; i < checkbox.length; i++)
		{
			checkbox[i].checked = selecionar;
		}
	}
	else
		checkbox.checked = selecionar;
}

/**
* muda o estado do checkbox "marca tudo" da listagem para
* ficar coerente com o estado dos demais checkboxes da listagem
*/
function correspCheckbox(form)
{
	var selecionado = true;
	var ids = form["ids[]"];
	
	if (ids.length > 0)
	{
		for (var i = 0; i < ids.length; i++)
		{
			if (!ids[i].checked)
			{
				selecionado = false;
				break;
			}
		}
	}
	else
		selecionado = ids.checked;
		
	form.checkbox.checked = selecionado;
}


/**
* atribui valor a um objeto de formulario
* ideal para comboboxes, pois ele testa se valor esta vazio antes de atribuir
*/
function setValor(obj, valor)
{
	if (!obj)
		return;
	
	if ((obj.type == "select-one" || obj.type == "select-multiple") && valor == "")
		return;
		
	obj.value = valor;
}



/**
* promove ordenacao da listagem
*/
function ordenar(campo)
{
	var form = document.formListagem;
	var ord = form.ordenacao;
	
	if (ord.value == campo)
		ord.value = campo + " DESC";
	else
		ord.value = campo;
	
	submeter(document.formListagem, '');
}



/**
* atualizar tela
*/
function atualizarTelaCadastro(form)
{
	if (!form)
		form = document.formCadastro;
		
	form.acao.value = acaoAtualizarTelaCadastro;
	
	if (typeof(registrarAlteracaoForm) != "undefined")
		registrarAlteracaoForm(form);
	
	if (typeof(gravarPosicao) != "undefined")
		gravarPosicao(form);
	
	form.submit();
}



/**
* pede confirmacao do usuario para deixar o sistema
*/
function confirmarLogout()
{
	return confirm('Confirma logout do sistema?');
}


/**
* seleciona um registro numa janela de localizar
*/
function selecionarRegistro(formRetorno, campoId, campoDescricao, valorId, valorDescricao, funcaoRetorno)
{
	var jan = window.opener;
	if (!jan)
		return;
		
	var form = jan.document[formRetorno];
	if (!form)
		return;
		
	var cmpId = form[campoId];
	if (cmpId)
		cmpId.value = valorId;
		
	var cmpDescricao = form[campoDescricao];
	if (cmpDescricao)
		cmpDescricao.value = valorDescricao;
		
	if (funcaoRetorno)
		eval ("jan." + funcaoRetorno + "()");
	
	window.close();
}


/**
* abrir janela de localizar
*/
function popupLocalizar(url)
{
	if (url.indexOf("?") == -1)
		url += "?loc=1";
	else
		url += "&loc=1";
		
	var larg = 820;
	var alt = 350;
	var topo = (window.screen.height - alt) / 2;
	var esq = (window.screen.width - larg) / 2;
		
	window.open(url, "", "width="+larg+",height="+alt+",top="+topo+",left="+esq+",scrollbars=no,resizable=no,titlebar=no,menubar=no,toolbar=no,location=no");
}