/**
* 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 acaoNews= "NEW";

/**
* 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 (document.getElementById('conteudoPagina') && parent.document.getElementById('iConteudo'))
	    parent.document.getElementById('iConteudo').height = document.getElementById('conteudoPagina').scrollHeight;
	    
	if (msg)
		alert(msg);
}



/**
* Pede confirmacao para excluir
*/
function confirmarExclusao(form, msgConfirmacaoIndividual, msgConfirmacaoVarios)
{
	var ids = form["ids[]"];
	var cont = 0;
	//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 == acaoNews)
	{
		var msgConfirmacaoIndividual = arguments[3];
		var msgConfirmacaoVarios = arguments[4];
	}

	if ((acao == acaoNews) && !confirmarExclusao(form, msgConfirmacaoIndividual, msgConfirmacaoVarios))
		return false;

	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");
}

// JavaScript Document
var HTMLCarregando    = '<span> <img src="../../imagens/carregando.gif" width="16" height="16"> </span>';

function MostrarPesquisa(valor, campos, campoFiltro,  div, tabela, divResult) {
	document.getElementById(div).style.display = '';
	document.getElementById(div).innerHTML = HTMLCarregando;

	xajax_MostrarPesquisa(valor, campos, campoFiltro,  div,tabela,divResult);
}

function SelecionaIdPesq(id, tabela, div, divAnt)
{
	//document.getElementById(div).style.display = '';	
//	document.getElementById(div).innerHTML = HTMLCarregando;
	xajax_SelecionarIdPesq(id, tabela, div, divAnt); 
}

function strstr (haystack, needle, bool) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: strstr('Kevin van Zonneveld', 'van');
    // *     returns 1: 'van Zonneveld'
    // *     example 2: strstr('Kevin van Zonneveld', 'van', true);
    // *     returns 2: 'Kevin '
    // *     example 3: strstr('name@example.com', '@');
    // *     returns 3: '@example.com'
    // *     example 4: strstr('name@example.com', '@', true);
    // *     returns 4: 'name'
 
    var pos = 0;
    
    haystack += '';
    pos = haystack.indexOf( needle );
    if (pos == -1) {
        return false;
    } else{
        if (bool){
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}
