// ----------------------------------------------
// AJAX
// ----------------------------------------------

//Paginação
PaginarResultado = onnavigate("PaginarResultado", function PaginarResultado(data) {
	MostrarCarregando("Aguarde, carregando...");

	try {
		window.document.Form1.PaginaCorrenteAjax.value = data;
	} catch (e) {
	}
	Pesquisa.PaginarResultado(data, PaginarResultado_CallBack);
	return;
});

function PaginarResultado_CallBack(response)
{
	OcultarCarregando();
	if (response.value.indexOf("System.") == 0) // Ocorreu um erro!
	{
		window.location.reload();
	}
	else
	{
		document.getElementById("divProdutos").innerHTML = response.value;
	}
}
function PaginarResultadoSugestao(codigo)
{
	MostrarCarregando_Imagem("Aguarde, carregando...", "Imagem/");
	Modelo.PaginarResultadoSugestao(codigo, PaginarResultadoSugestao_CallBack);
	return;	
}
function PaginarResultadoSugestao_CallBack(response)
{
	OcultarCarregando();
	document.getElementById("divProdutos").innerHTML = response.value;
}
//------------------------------------------------

//Exibição do Filtro MinhaBusca/Diretorio
function RetornarRefinarMinhaBuscaDiretorio()
{
	var codigo = document.getElementById('FiltroMinhaBusca1_hdnSetorCodigo').value;	
	RefinarMinhaBusca.RetornarDiretorio(codigo, RetornarRefinarMinhaBuscaDiretorio_CallBack);
	return;
}

function RetornarRefinarMinhaBuscaDiretorio_CallBack(response)
{
	document.getElementById("divDetalheRefinamento_noDiretorio").innerHTML = response.value;
}
//-------------------------------------------------

//Exibição do Filtro MinhaBusca/PalavraChave
function RetornarRefinarMinhaBuscaPalavra(pagina)
{
	var codigo = document.getElementById('FiltroMinhaBusca1_hdnSetorCodigo').value;
	var codigoDiretorio = document.getElementById('FiltroMinhaBusca1_hdnDiretorio').value;
	RefinarMinhaBusca.RetornarPalavraChave(codigoDiretorio, codigo, pagina, RetornarRefinarMinhaBuscaPalavra_CallBack);
	return;
}

function RetornarRefinarMinhaBuscaPalavra_CallBack(response)
{
	document.getElementById("divDetalheRefinamento_palavraChave").innerHTML = response.value;
}
// ----------------------------------------------

// ----------------------------------------------
// AJAX PARA O REFINAMENTO DA BUSCA
// ---------------------------------------------- 
var ocultarCarregamento = false;

//Retorna o Bloco "Refinar Minha Busca"
function RetornarFiltroMinhaBusca()
{
	//document.getElementById("divMinhaBusca").style.display = "none";
	RefinarMinhaBusca.RetornarFiltroMinhaBusca(RetornarFiltroMinhaBusca_CallBack);
}

function RetornarFiltroMinhaBusca_CallBack(response)
{
	document.getElementById("divMinhaBusca").innerHTML = response.value[0];
	document.getElementById("divRefinamento").innerHTML = "";
	
	//Elimina as DIVs criadas anteriormente para permitir a atualização dos refinamentos
	//noEntidade
	var divRefinamento = document.getElementById("divBusca_noEntidade");
	if (divRefinamento!=null) {
		divRefinamento.parentNode.removeChild(divRefinamento);
	}
	
	//noSetor
	divRefinamento = document.getElementById("divBusca_noSetor");
	if (divRefinamento!=null) {
		divRefinamento.parentNode.removeChild(divRefinamento);
	}
	
	//noDiretorio	
	divRefinamento = document.getElementById("divBusca_noDiretorio");
	if (divRefinamento!=null) {
		divRefinamento.parentNode.removeChild(divRefinamento);
	}	
	
	//palavra
	divRefinamento = document.getElementById("divBusca_palavra");
	if (divRefinamento!=null) {
		divRefinamento.parentNode.removeChild(divRefinamento);
	}
	
	document.getElementById("divRefinamento").innerHTML = response.value[1];
		
	var idTimeout = setTimeout("OcultarCarregando();", 1000);
}

//Carregamento das Entidades
function RetornarEntidade()
{
	RefinarMinhaBusca.RetornarEntidade(RetornarEntidade_CallBack);
}
function RetornarEntidade_CallBack(response)
{
	if (response.value==null) {
		window.document.location.href = "../Home.aspx";
	} else {
		document.getElementById("pnlEntidade").innerHTML = response.value + "<BR>";
	}
}

//Carregamento dos Setores
function RetornarSetor()
{
	RefinarMinhaBusca.RetornarSetor(RetornarSetor_CallBack);
}
function RetornarSetor_CallBack(response)
{
	if (response.value==null) {
		window.document.location.href = "../Home.aspx";
	} else {
		document.getElementById("pnlSetor").innerHTML = response.value + "<BR>";
	}
}

//Carregamento dos Diretórios
function RetornarDiretorio()
{
	RefinarMinhaBusca.RetornarDiretorioAjax(RetornarDiretorioAjax_CallBack);
}
function RetornarDiretorioAjax_CallBack(response)
{
	document.getElementById("pnlDiretorio").innerHTML = response.value + "<BR>";
}

//Carregamento das Palavras-Chave
function RetornarPalavraChave()
{
	RefinarMinhaBusca.RetornarPalavraChaveMenuAjax(RetornarPalavraChave_CallBack);
}
function RetornarPalavraChave_CallBack(response)
{
	if (response.value==null) {
		window.document.location.href = "../Home.aspx";
	} else {
		document.getElementById("pnlPalavra").innerHTML = response.value + "<BR>";
	}
}

//Carregamento dos Produtos e Serviços
function RetornarProdutoServico()
{
	RefinarMinhaBusca.RetornarProduto(RetornarProdutoServico_CallBack);
}
function RetornarProdutoServico_CallBack(response)
{
	if (response.value==null) {
		window.document.location.href = "../Home.aspx";
	} else {
		document.getElementById("divProduto").innerHTML = response.value;
		var idTimeout = setTimeout("OcultarCarregando();", 1000);
	}
}

/////
//// parametrosSelecionados[0] = Corresponde ao Setor
//// parametrosSelecionados[1] = Corresponde ao Diretorio
//// parametrosSelecionados[2] = Corresponde a Palavra-Chave
//// parametrosSelecionados[3] = Corresponde a Entidade
//// parametrosSelecionados[4] = Corresponde ao Produto
/////

/*//Criação e instância da matriz
var parametrosSelecionados = new Array();

//Atribuição do vetor 0
parametrosSelecionados[0] = new Array();
parametrosSelecionados[0][0] = "0";
parametrosSelecionados[0][1] = "0";
parametrosSelecionados[0][2] = "0";
parametrosSelecionados[0][3] = "0";
parametrosSelecionados[0][4] = "0";

//Atribuição do vetor 1
parametrosSelecionados[1] = new Array();
parametrosSelecionados[1][0] = "0";
parametrosSelecionados[1][1] = "0";
parametrosSelecionados[1][2] = "0";
parametrosSelecionados[1][3] = "0";
parametrosSelecionados[1][4] = "0";

//Atribuição do vetor 2
parametrosSelecionados[2] = new Array();
parametrosSelecionados[2][0] = "0";
parametrosSelecionados[2][1] = "0";
parametrosSelecionados[2][2] = "0";
parametrosSelecionados[2][3] = "0";
parametrosSelecionados[2][4] = "0";

//Atribuição do vetor 3
parametrosSelecionados[3] = new Array();
parametrosSelecionados[3][0] = "0";
parametrosSelecionados[3][1] = "0";
parametrosSelecionados[3][2] = "0";
parametrosSelecionados[3][3] = "0";
parametrosSelecionados[3][4] = "0";

var nivelAtual = 0;
var nivelAnterior = 0;

function AtribuirValorNivel(nivel, indice, valor)
{
	parametrosSelecionados[nivel][indice] = valor;
}
function RetornarValorNivel(nivel, indice)
{
	return parametrosSelecionados[nivel][indice];
}

function CompararNiveis()
{
	var retorno = true;
	for (var i=0; i<5; i++) {
		if (RetornarValorNivel(nivelAtual, i) != RetornarValorNivel(nivelAnterior, i)) {
			retorno = false;
			break;
		}
	}
	return retorno;
}

function AvancarNivel()
{
	nivelAtual = nivelAtual + 1;
	AjustarValorNivel();
}
function RecuarNivel()
{
	nivelAtual = nivelAtual - 1;
	AjustarValorNivel();
}

function AjustarValorNivel()
{
	nivelAnterior = nivelAtual - 1;				
	if (nivelAtual<0) nivelAtual = 0;
	if (nivelAnterior<0) nivelAnterior = 0;
	if (nivelAtual>3) nivelAtual = 3;	
}

function AlterarNivel()
{
	if (window.document.Form1.PrimeiroAcessoAjax.value=="0") {
		if (!CompararNiveis() && (parametrosSelecionados[nivelAtual][6].toString() != '16' && parametrosSelecionados[nivelAtual][6].toString() != '17')) {
			RecuarNivel();
		}
	}
}

function CopiarParametrosSelecionados()
{
	try {
		AvancarNivel();
			
		//Copia os valores dos níveis
		parametrosSelecionados[nivelAtual][0] = parametrosSelecionados[nivelAnterior][0];
		parametrosSelecionados[nivelAtual][1] = parametrosSelecionados[nivelAnterior][1];
		parametrosSelecionados[nivelAtual][2] = parametrosSelecionados[nivelAnterior][2];
		parametrosSelecionados[nivelAtual][3] = parametrosSelecionados[nivelAnterior][3];
		parametrosSelecionados[nivelAtual][4] = parametrosSelecionados[nivelAnterior][4];
	
		window.document.Form1.PrimeiroAcessoAjax.value = "0";
		window.document.Form1.PaginaCorrenteAjax.value = "1";
	} catch (e) {
		window.alert(e.Message);
	}
}*/

function HabilitarDesabilitarPainel(painel, habilitar)
{
	var objDiv = window.document.getElementById(painel);
	if (objDiv!=null) {
		objDiv.style.display = (habilitar ? "block" : "none");
		return true;
	} else {
		return false;
	}
}

/*function MostrarSituacaoParametros()
{
	var objSpan = window.document.getElementById("situacaoParametros");
	var params;
	var retorno = "";	
	for (var i=0; i<4; i++) {
		params = parametrosSelecionados[i];
		retorno += "Nivel " + i + "<br>";
		for (var j=0; j<5; j++) {
			retorno += "Parametro" + j + "=" + parametrosSelecionados[i][j] + ", ";
		}
		retorno += "<br><br>";
	}
	retorno += "Nivel Anterior = " + nivelAnterior;
	retorno += "Nivel Atual = " + nivelAtual;
	objSpan.innerHTML = retorno;
}*/

function RetornarProdutoValorSeparado(data)
{
	var retorno;
	if (data.indexOf("_")>-1)
		retorno = data.split("_");
	else {
		retorno = new Array() 
		retorno[0] = data;
		retorno[1] = "";
	}
	return retorno;
}

/*
function AtualizarMenuAjax(tipo, codigo)
{
	MostrarCarregando("Aguarde, carregando...");

	//Atribuição e separação do código pesquisado
	var retorno = RetornarProdutoValorSeparado(codigo);
	codigo = parseInt(retorno[0]);
	var produto = retorno[1];
	if (produto!="") {
		produto = parseInt(produto);
	} else {
		produto = 0;
	}

	switch (tipo) {
		case "SetorBuscaOriginal":
			AlterarNivel();
			AtribuirValorNivel(nivelAtual, 0, codigo);
			AtribuirValorNivel(nivelAtual, 1, "0");
			AtribuirValorNivel(nivelAtual, 2, "0");
			HabilitarDesabilitarPainel("pnlDiretorio", true);
			HabilitarDesabilitarPainel("pnlPalavra", false);			
			break;
	
		case "Diretorio":
			AlterarNivel();
			AtribuirValorNivel(nivelAtual, 1, codigo);
			retorno = HabilitarDesabilitarPainel("pnlDiretorio", false);
			retorno = HabilitarDesabilitarPainel("pnlPalavra", true);
			break;
			
		case "PalavraChave":
			AlterarNivel();
			AtribuirValorNivel(nivelAtual, 2, codigo);
			retorno = HabilitarDesabilitarPainel("pnlPalavra", false);
			break;
					
		case "Entidade":
			AlterarNivel();
			retorno = HabilitarDesabilitarPainel("pnlEntidade", false);
			AtribuirValorNivel(nivelAtual, 3, codigo);
			break;
			
		case "Produto":
			AlterarNivel();
			AtribuirValorNivel(nivelAtual, 4, codigo);
			break;
			
		default:
			AlterarNivel();
			AtribuirValorNivel(nivelAtual, 0, "0");
			AtribuirValorNivel(nivelAtual, 1, "0");
			AtribuirValorNivel(nivelAtual, 2, "0");
			AtribuirValorNivel(nivelAtual, 3, "0");						
			retorno = HabilitarDesabilitarPainel("pnlEntidade", true);
			retorno = HabilitarDesabilitarPainel("pnlSetor", true);
			break;
	}
	//MostrarSituacaoParametros();
	
	if (produto>0) {
		AtribuirValorNivel(nivelAtual, 4, produto);
	}
	
	//Atribui todos os parâmetros selecionados
	RefinarMinhaBusca.AtribuirParametroBusca("Setor", RetornarValorNivel(nivelAtual, 0));
	RefinarMinhaBusca.AtribuirParametroBusca("Diretorio", RetornarValorNivel(nivelAtual, 1));
	RefinarMinhaBusca.AtribuirParametroBusca("PalavraChave", RetornarValorNivel(nivelAtual, 2));
	RefinarMinhaBusca.AtribuirParametroBusca("Entidade", RetornarValorNivel(nivelAtual, 3));
	RefinarMinhaBusca.AtribuirParametroBusca("NivelAtual", nivelAtual);
	RefinarMinhaBusca.AtribuirParametroBusca("NivelAnterior", nivelAnterior);
	RefinarMinhaBusca.AtribuirParametroBusca("Produto", RetornarValorNivel(nivelAtual, 4));
		
	//Aplica os parâmetros atribuidos
	RefinarMinhaBusca.AplicarRefinamento();
	RetornarListaProduto(window.document.Form1.PaginaCorrenteAjax.value);	

	//Caso algum parametro esteja selecionado
	//o painel de filtragem deve ser carregado e habilitado
	if (RetornarValorNivel(nivelAtual,0)!="0" ||
		RetornarValorNivel(nivelAtual,1)!="0" ||
		RetornarValorNivel(nivelAtual,2)!="0" ||
		RetornarValorNivel(nivelAtual,3)!="0")
	{
		RetornarFiltroMinhaBusca();
		HabilitarDesabilitarPainel("divMinhaBusca", true);
	} else {
		HabilitarDesabilitarPainel("divMinhaBusca", false);
	}

	//Caso nenhuma entidade esteja selecioanda
	//o painel das entidades deve ser carregado e habilitado
	if (RetornarValorNivel(nivelAtual, 3)=="0" && (parseInt(RetornarValorNivel(nivelAtual, 4))==16 || parseInt(RetornarValorNivel(nivelAtual, 4))==17))
	{
		RetornarEntidade();
		HabilitarDesabilitarPainel("pnlEntidade", true);
	} else {
		HabilitarDesabilitarPainel("pnlEntidade", false);
	}	
	
	//Atualiza o painel de acordo o nivel
	if (RetornarValorNivel(nivelAtual, 0)=="0") {
		RetornarSetor();
	} else if (RetornarValorNivel(nivelAtual, 1)=="0") {
		RetornarDiretorio();
	} else if (RetornarValorNivel(nivelAtual, 2)=="0") {
		RetornarPalavraChave();
	}
	RetornarProdutoServico();	
	window.document.Form1.PesquisaRefinada.value = "1";
}

function AtribuirHistorico(setorCodigo) {
	//window.setTimeout("AtribuirBuscaOriginal('" + setorCodigo + "');",1000);
	AtribuirBuscaOriginal(setorCodigo);
}

AtribuirBuscaOriginal = onnavigate("AtribuirBuscaOriginal", function(data) {
	var objDiv = document.getElementById("divMinhaBusca");
	if (objDiv!=null) {
		objDiv.style.display = "none";
	}
	window.document.Form1.EntidadeSelecionada.value = "0";

	if (parseInt(RetornarProdutoValorSeparado(data)[0])==0) {
		RetornarParametrosSelecionados("", data);
	} else {
		RetornarParametrosSelecionados("SetorBuscaOriginal", data);
	}	
});

AtribuirBuscaEntidade = onnavigate("AtribuirBuscaEntidade", function(data) {
	RetornarParametrosSelecionados("Entidade", data);
});

AtribuirBuscaDiretorio = onnavigate("AtribuirBuscaDiretorio", function(data) {
	RetornarParametrosSelecionados("Diretorio", data);
});

AtribuirBuscaPalavra = onnavigate("AtribuirBuscaPalavra", function(data) {
	RetornarParametrosSelecionados("PalavraChave", data);
});

AtribuirBuscaProduto = onnavigate("AtribuirBuscaProduto", function(data) {
	RetornarParametrosSelecionados("Produto", data);
});*/


CarregarDetalhesProdutoAjax = onnavigate("CarregarDetalhesProdutoAjax", function(data) {
	MostrarCarregando("Aguarde, carregando...");	
	var retorno = RetornarProdutoValorSeparado(data);
	var tipoProduto = parseInt(retorno[0]);
	var codigoProduto = parseInt(retorno[1]);
	var pagina = parseInt(retorno[2]);
	Modelo.CarregarDetalheProdutoAjax(tipoProduto, codigoProduto, pagina, CarregarDetalhesProdutoAjax_CallBack);
});

function CarregarDetalhesProdutoAjax_CallBack(response)
{
	if (response.value != null)
		window.document.getElementById("divProdutos").innerHTML = response.value;
	
	OcultarCarregando();
}


//

function RetornarParametrosSelecionados(parametro, valor)
{
	RefinarMinhaBusca.RetornarParametrosSelecionados(parametro, valor, RetornarParametrosSelecionados_CallBack);
}
function RetornarParametrosSelecionados_CallBack(response)
{
	parametrosSelecionados[nivelAtual] = response.value;
	AtualizarMenuAjax(parametrosSelecionados[nivelAtual][5], parametrosSelecionados[nivelAtual][6]);	
}

//
function RetornarParametroSelecionadosSemAtualizacao()
{
	RefinarMinhaBusca.RetornarParametrosSelecionados("", "", RetornarParametroSelecionadosSemAtualizacao_CallBack);
}
function RetornarParametroSelecionadosSemAtualizacao_CallBack(response)
{
	//parametrosSelecionados[nivelAtual] = response.value;
}

/////

function RetornarListaProduto(pagina)
{
	RefinarMinhaBusca.RetornarListaProduto(pagina, RetornarListaProduto_CallBack);
}
function RetornarListaProduto_CallBack(response)
{
	if (response.value==null) {
		window.document.location.href = "../Home.aspx";
	}
	document.getElementById("divProdutos").innerHTML = response.value;
}

function AtualizarPosicaoRefinamento()
{
	try
	{
		var divFiltro = document.getElementById('divBusca_noEntidade');
		if (divFiltro!=null)
		{
			divFiltro.style.left = (document.body.clientWidth/2)-(346/2) + "px";
			divFiltro.style.top = (document.body.clientHeight/2)-(180/2) + "px";
		}
		
		divFiltro = document.getElementById('divBusca_noSetor');
		if (divFiltro!=null)
		{
			divFiltro.style.left = (document.body.clientWidth/2)-(346/2) + "px";
			divFiltro.style.top = (document.body.clientHeight/2)-(180/2) + "px";
		}
		
		divFiltro = document.getElementById('divBusca_noDiretorio');
		if (divFiltro!=null)
		{
			divFiltro.style.left = (document.body.clientWidth/2)-(346/2) + "px";
			divFiltro.style.top = (document.body.clientHeight/2)-(180/2) + "px";
		}
		
		divFiltro = document.getElementById('divBusca_palavraChave');
		if (divFiltro!=null)
		{
			divFiltro.style.left = (document.body.clientWidth/2)-(346/2) + "px";
			divFiltro.style.top = (document.body.clientHeight/2)-(180/2) + "px";
		}
	}
	catch (ex)
	{
		alert(ex.message);
	}
}

//Alterações
/* Controle de Navegação
Edimar Lima em 29/01/2009
Target Engenharia e COnsultoria ®
*/
//

function Init(){
	MostrarCarregando("Aguarde, recriando filtro da pesquisa...");
	RefinarMinhaBusca.RecarregarParametros(RecarregarParametros_Callback);
}

function RecarregarParametros_Callback(response){
	//var navs = document.navigators;
	//var theId = "#[AplicarFiltro]";
	//var startData = "";
	
	try{
		parametros = response.value;
	} catch (e){
		alert("Erro ao carregar parâmetros!");
	}
	
	//Registra no histórico a situação inicial da pesquisa
	/*if ( navs != null ){
		if ( parent.location.hash == "" )
		{
			startData = theId + parametros.toString();
			navs.history.push( startData );
			navs.data_buffer = startData;
			parent.location.href += startData;
			parent.location.reload();
		}
	}*/
	
	OcultarCarregando();
}

function SelecionarProduto(codigo){
	parametros[0] = codigo;
	parametros[4] = 0;
	FiltrarPesquisa(parametros);
}

/*****************************************
// O setor é carregado de modo especial //
*****************************************/

function SelecionarDiretorio(codigo){
	parametros[2] = codigo;
	parametros[3] = 0;
	//parametros[4] = 0;
	FiltrarPesquisa(parametros);
}

function SelecionarPalavraChave(codigo){
	parametros[3] = codigo;
	//parametros[4] = 0;
	FiltrarPesquisa(parametros);
}

function SelecionarEntidade(codigo){
	parametros[4] = codigo;
	FiltrarPesquisa(parametros);
}
//Array que armazena os parametros selecionados
var parametros = [0, 0, 0, 0, 0];
//Principal método de filtragem
FiltrarPesquisa = onnavigate("FiltrarPesquisa", function(data){	
	MostrarCarregando("Aguarde, carregando...");
	RefinarMinhaBusca.FiltrarPesquisa(data, FiltrarPesquisa_CallBack);
});

function FiltrarPesquisa_CallBack(response){
	//string[] response:
	///		response[0] // Filtro Entidade
	///		response[1] // Filtro Produto
	///		response[2] // Filtro Setor
	///		response[3] // Filtro Diretorio
	///		response[4] // Filtro PalavraChave
	///		response[5] // Filtro MinhaBusca
	var filtros = response.value;
	try {
		if ( filtros.length == 7 )
		{
			if (document.getElementById("pnlEntidade") != null){
				document.getElementById("pnlEntidade").innerHTML = filtros[0] + "<br />";
				HabilitarDesabilitarPainel("pnlEntidade", true);
			}
				
			if (document.getElementById("pnlProdutoServico") != null){
				document.getElementById("pnlProdutoServico").innerHTML = filtros[1] + "<br />";
				HabilitarDesabilitarPainel("pnlProdutoServico", true);
			}
			
			if (document.getElementById("pnlSetor") != null){
				document.getElementById("pnlSetor").innerHTML = filtros[2];
				HabilitarDesabilitarPainel("pnlSetor", true);
			}
			
			if (document.getElementById("pnlDiretorio") != null){
				document.getElementById("pnlDiretorio").innerHTML = filtros[3];
				HabilitarDesabilitarPainel("pnlDiretorio", true);
			}
			
			if (document.getElementById("pnlPalavra") != null){
				document.getElementById("pnlPalavra").innerHTML = filtros[4];
				HabilitarDesabilitarPainel("pnlPalavra", true);
			}
			
			if (document.getElementById("pnlFiltroMinhaBusca") != null){
				document.getElementById("pnlFiltroMinhaBusca").innerHTML = filtros[5] + "<br />";
				HabilitarDesabilitarPainel("pnlSetor", true);
			}
			
			if (document.getElementById("divProdutos") != null){
				document.getElementById("divProdutos").innerHTML = filtros[6] + "<br />";
				HabilitarDesabilitarPainel("divProdutos", true);
			}
		}
	} catch (e){
		document.getElementById("divFiltroMinhaBuscaFiltro").innerHTML = e.description;
	}
	OcultarCarregando();
}
