/**
 * AÇÕES DA FERRAMENTA DE BUSCA
 * 
 * @author Gibran (gibran@gadbrivia.com.br)
 */

function Busca()
{
	if ($("#frmPesquisa").length > 0)
	{
		$("#frmPesquisa").submit(function()
		{
			var termo = $.trim($("#txtPalavraChave", this).val());
			
			if (termo.length > 0)
			{
				return true;
			}
			else
			{
				$("#txtPalavraChave", this).focus();
				
				return false;
			}
		});
	}
	
	Busca.termo = $("#hdnBuscaTermo").val();
	
	Busca.pesquisar(1);
}

Busca.paginacao = { };
Busca.termo = "";
Busca.virgem = true;

Busca.atualizar = function()
{
	// BOTÃO "ANTERIORES"
	
	if (Busca.paginacao.pagina > 1)
	{
		$("a.bt-paginacao-pesquisa-anterior", "#frmBuscaPaginacao").css({
			cursor: "pointer",
			opacity: 1
		}).unbind().click(function()
		{
			Busca.paginacao.pagina -= 1;
			
			$("div#principal > ul", "body#pesquisa").replaceWith("<ul><li>Carregando...</li></ul>");
			
			Busca.pesquisar(Busca.paginacao.pagina);
		});
	}
	else
	{
		$("a.bt-paginacao-pesquisa-anterior", "#frmBuscaPaginacao").css({
			cursor: "default",
			opacity: 0.4
		}).unbind();
	}
	
	// OPÇÕES DE PÁGINAS
	
	if (Busca.paginacao.paginas > 1)
	{
		$("#selPagina", "#frmBuscaPaginacao").attr({
			disabled: false
		}).css({
			opacity: 1
		}).val(Busca.paginacao.pagina).unbind().change(function()
		{
			Busca.paginacao.pagina = Number($(this).val());
			
			$("div#principal > ul", "body#pesquisa").replaceWith("<ul><li>Carregando...</li></ul>");
			
			Busca.pesquisar(Busca.paginacao.pagina);
		});
	}
	else
	{
		$("#selPagina", "#frmBuscaPaginacao").attr({
			disabled: true
		}).css({
			opacity: 0.4
		}).unbind();
	}
	
	// BOTÃO "PRÓXIMOS"
	
	if (Busca.paginacao.pagina < Busca.paginacao.paginas)
	{
		$("a.bt-paginacao-pesquisa-proxima", "#frmBuscaPaginacao").css({
			cursor: "pointer",
			opacity: 1
		}).unbind().click(function()
		{
			Busca.paginacao.pagina += 1;
			
			$("div#principal > ul", "body#pesquisa").replaceWith("<ul><li>Carregando...</li></ul>");
			
			Busca.pesquisar(Busca.paginacao.pagina);
		});
	}
	else
	{
		$("a.bt-paginacao-pesquisa-proxima", "#frmBuscaPaginacao").css({
			cursor: "default",
			opacity: 0.4
		}).unbind();
	}
}

Busca.pesquisar = function(pagina)
{
	$.ajax({
		cache: false,
		data: {
			pagina: pagina,
			termo: Busca.termo
		},
		dataType: "json",
		success: function(dados)
		{
			var paginacao = "";
			
			if (Busca.virgem)
			{
				Busca.virgem = false;
				
				Busca.paginacao = dados.paginacao;
				
				// TRATA O TIPO DOS DADOS
				
				Busca.paginacao.limite = Number(Busca.paginacao.limite);
				Busca.paginacao.pagina = Number(Busca.paginacao.pagina);
				Busca.paginacao.paginas = Number(Busca.paginacao.paginas);
				Busca.paginacao.registros = Number(Busca.paginacao.registros);
				
				// COLOCA O CABEÇALHO
				
				$("div#principal", "body#pesquisa").html("<h2>Sua busca retornou " + Busca.paginacao.registros + " resultado" + (Busca.paginacao.registros == 1 ? "" : "s") + "</h2>");
				
				// COLOCA O CONTEÚDO
				
				$("div#principal > h2", "body#pesquisa").after(unescape(dados.conteudo));
				
				// COLOCA O CONTROLE DE PAGINAÇÃO
				
				
				paginacao = "<div class=\"paginacao\">";
				paginacao += "<form id=\"frmBuscaPaginacao\" action=\"produto.php\" method=\"post\">";
				paginacao += "<fieldset>";
				paginacao += "<a href=\"javascript:void(0)\" rel=\"prev\" title=\"Anteriores\" class=\"replace bt-paginacao-pesquisa-anterior\">Anteriores</a>";
				paginacao += "<span>Página</span>";
				paginacao += "<select id=\"selPagina\" name=\"selPagina\">";
				
				for (contador = 1; contador <= Busca.paginacao.paginas; contador += 1)
				{
					paginacao += "<option value=\"" + contador + "\">";
					paginacao += contador;
					paginacao += "</option>";
				}
				
				paginacao += "</select>";
				paginacao += "<a href=\"javascript:void(0)\" rel=\"next\" title=\"Próximos\" class=\"replace bt-paginacao-pesquisa-proxima\">Próximos</a>";
				paginacao += "</fieldset>";
				paginacao += "</form>";
				paginacao += "</div>";
				
				$("div#principal > ul", "body#pesquisa").after(paginacao);
				
			}
			else
			{
				// ATUALIZA O CONTEÚDO
				
				$("div#principal > ul", "body#pesquisa").replaceWith(unescape(dados.conteudo));
			}
			
			
			Busca.atualizar();
			 
		},
		type: "post",
		url: "acao/Busca.php"
	});
}