var idPaginacao = null;

// Cria a div de busca
function createFormXMLSearchDiv(nmCampos, nmColunas, strParametro, nmDependencia, nmFieldSearch)
{
	// Verifica se existe dependencia de outro campo para esta listagem
	if(nmDependencia != "")
	{	// Se existir, verifica de o campo de referencia está preenchido
		if($F(nmDependencia) == "")
		{
			alert("Selecione primeiro o campo \"" + nmDependencia.substring(2, nmDependencia.length) + "\"");
			return false;
		}
	}

	var body = document.getElementsByTagName("body")[0];

	// Desabilita os selects da tela
	visibilitySelectsFormXML("hidden");

	// Cria a div que desabilita a tela
	var div = document.createElement("div");
	div.id = "divDesabilitaTelaFormXML";
	div.className = "DIVDESABILITATELA";

	// Dimensiona a div escura que desabilita a tela com o tamanho da resolução utilizada
	div.style.width = screen.width;
	div.style.height = screen.height;

	body.appendChild(div);

	// Cria a div auxiliar
	var widthDiv = "580";
	var heigthDiv = "360";

	var div = document.createElement("div");
	div.id = "formXMLSearchDiv";
	div.style.width = widthDiv;
	div.style.height = heigthDiv;
	div.className = "DIVAUXILIAR";

	body.appendChild(div);

	// Centraliza a div auxiliar na tela
	var posicaoScroll = body.scrollTop;

	$("formXMLSearchDiv").style.left = (body.clientWidth / 2) - (widthDiv / 2);
	$("formXMLSearchDiv").style.top = posicaoScroll + ((body.clientHeight / 2) - (heigthDiv / 2));

	// Desabilita as barras de rolagem
	document.getElementsByTagName("body")[0].style.overflow = "hidden";

	// Relaçaõ AJAX para carregar a div com os dados
	var url = pathWeb + "/framework/formxml/ajax/geracaoDivCodDescFormXML.php";
	var pars = "flag=1&nmcampos=" + nmCampos + "&nmcolunas=" + nmColunas + "&strparametro=" + strParametro;

	// Testa a dependencia
	if(nmDependencia != "")
		pars += "&nmdependencia=" + nmDependencia + "&vldependencia=" + $F(nmDependencia);

	// Testa o parametro search
	if(nmFieldSearch != "")
		pars += "&nmfieldsearch=" + nmFieldSearch;

	var myAjax = new Ajax.Updater({success: "formXMLSearchDiv"}, url, {parameters: pars, method: "get", evalScripts: true});
}

// Fecha a div de listagem do FormXML
function disableFormXMLSearchDiv()
{
	Element.remove($("formXMLSearchDiv"));
	Element.remove($("divDesabilitaTelaFormXML"));

	// Exibe os Selects
	visibilitySelectsFormXML("visible");

	// Habilita as barras de rolagem
	document.getElementsByTagName("body")[0].style.overflow = "auto";
}

// Desabilita / Abilita os selects da tela
function visibilitySelectsFormXML(visibility)
{
	var selects = document.getElementsByTagName("select");
	for(i=0; i<selects.length; i++)
	{
		selects[i].style.visibility = visibility;
	}
}

// Mostra a paginação da div de listagem
function mostraPaginacaoFormXML(cdAba)
{
	// VERIFICA SE JÁ EXISTE ABA SELECIONADA
	if(idPaginacao != null && idPaginacao != cdAba)
	{	// VERIFICA SE EXISTE
		if($("divDataFormXML" + idPaginacao))
		{	// ESCONDE A PÁGINA
			$("divDataFormXML" + idPaginacao).className = "DIVHIDE";
			$("divPaginacaoFormXML" + idPaginacao).style.fontWeight = "normal";
		}
	}

	// MOSTRA A ABA CLICADA SE ELA EXISTE
	if($("divDataFormXML" + cdAba))
	{
		$("divDataFormXML" + cdAba).className = "DIVSHOW";
		$("divPaginacaoFormXML" + cdAba).style.fontWeight = "bold";
	}
	// ATRIBUI A ÚLTIMA ABA VISITADA
	idPaginacao = cdAba;
}

// Exibe na listagem da div os resultados da busca
function formXMLSearchResults()
{
	$("divConteudoFormXMLSearchDiv").innerHTML = "";

	var url = pathWeb + "/framework/formxml/ajax/geracaoDivCodDescFormXML.php";
	var pars  = "flag=2";
		pars += "&nmcolunas=" + $F("nmcolunas");
		pars += "&strparametro=" + $F("strparametro");
		pars += "&nmcampos=" + $F("nmcampos");
		pars += "&nmdependencia=" + $F("nmdependencia");
		pars += "&vldependencia=" + $F("vldependencia");

		if($F("nmfieldsearch") != "")
		{
			pars += "&nmfieldsearch=" + $F("nmfieldsearch");
			pars += "&vlfieldsearch=" + $F("vlfieldsearch");
		}

	var myAjax = new Ajax.Updater({success: "divConteudoFormXMLSearchDiv"}, url, {parameters: pars, method: "get", evalScripts: true});
}

// Função que é executada ao ser clicado em ENTER no campo de busca
function doEnterFormXML(form, e)
{
	var keycode;
	if (window.event)
		keycode = window.event.keyCode;
	else if (e)
		keycode = e.which;

	else return true;
	if (keycode == 13)
		formXMLSearchResults();
}

// Retorna para os campos "cod" e "desc" os valores selecionados na listagem
function formXMLReturnValue(nmField, vlCodField, vlDescField, extraScript)
{
	$("cd" + nmField).value = vlCodField;
	$("nm" + nmField).value = vlDescField;

	disableFormXMLSearchDiv();

	if(extraScript != "")
		eval(extraScript);
}

// Retorna automaticamente atravez do envento onBlur o "desc" do campo atravez do seu "cod" digitado
function formXMLAutoReturnDesc(vlCodField, nmField, nmCampos, nmColunas, strParametro, nmDependencia)
{
	if(vlCodField == "")
	{
		$("nm" + nmField).value = "";
		return false;
	}

	// Verifica se existe dependencia de outro campo para esta listagem
	if(nmDependencia != "")
	{	// Se existir, verifica de o campo de referencia está preenchido
		if($F(nmDependencia) == "")
		{
			alert("Selecione primeiro o campo \"" + nmDependencia.substring(2, nmDependencia.length) + "\"");
			$("cd" + nmField).value = "";
			return false;
		}
	}

	// Limpa o campo "desc"
	$("nm" + nmField).value = "";

	var url = pathWeb + "/framework/formxml/ajax/geracaoDivCodDescFormXML.php";
	var pars = "flag=3&vlcodfield=" + vlCodField + "&nmcampos=" + nmCampos + "&nmcolunas=" + nmColunas + "&strparametro=" + strParametro;

	//Testa A Dependencia
	if(nmDependencia != "")
		pars += "&nmdependencia=" + nmDependencia + "&vldependencia=" + $F(nmDependencia);

	var myAjax = new Ajax.Request(url, {parameters: pars, method: "get", showDivQ: true});
}