(function($){ 
	$(function(){
		inicializarTabs();
		bindLinkstrocaDePagina();
		bindCheckBoxTipoDeDecisao();
		bindAcoesBotoesOperadores();
		bindMensagemAjudaBotoesOperadores();
		bindMensagemAjudaNosCampos();
		bindMensagemAjudaEmTermosRelacionados();
		bindTermosRelacionados();
		bindFiltrosLaterais();
		bindBotaoLimpar();
		bindMostrarSinonimos();
		bindImagemMostrarOcultarEmenta();
		bindLinkDownloadDocumento($('div.divDadosResultado'));
		focusNaPesquisaLivre();
	});
	
	//bind em todos os links de troca de pagina
	var bindLinkstrocaDePagina = function(){
		$('div.trocaDePagina a').bind('click', function(){trocarDePagina(this.name)}); 
	};
	
	var inicializarTabs = function(){
		var div = $('div#tabs');
		var ul = $('>ul',div);
		ul.addClass("spwTabs-nav");
		var selecionado = false;
		var indiceTabPraExibir = 0;
		$('a', ul).each(function(i) {
			var valor = $('input[type=hidden]',this).val();
			if(!selecionado && valor>0){
				selecionado = true;
				indiceTabPraExibir = i;
				this.parentNode.className = "spwTabs-selected";
			}
			//Se não é aba selecionada, então quando for selecionar pela primeira vez carregar 
			//a primeira pagina da aba com dados do servidor. 
			else{ 
				$(this).one('click', function(){
					var tipo = $(this).parent().attr('tipo');
					carregarPrimeiraPaginaDaAba(tipo);
				});
			}
			$(this).click(function(){spwTab(this,i+1)});
		});
		
		$('>div',div).each(function(i) {
			if(i == indiceTabPraExibir){
				this.className = "spwTabs-panel";
			}else{
				this.className = "spwTabs-panel spwTabs-hide";
			}
		});

	};
	
	var carregarPrimeiraPaginaDaAba = function(abaTipo){
		var div = $('div#tabs-'+abaTipo);
		$('div.divDadosResultado', div).html('<table width="100%" height="100%"><tbody><tr><td valign="center" align="center"><img src="'+window.saj.env.root+'/imagens/saj/processando.gif"></td></tr></tbody></table>');
		$.get(window.saj.env.root+"/trocaDePagina.do", { tipoDeDecisao: abaTipo, pagina: 1}, function(data){atualizarPagina(data, abaTipo)} );
	};
	
	var bindCheckBoxTipoDeDecisao = function(){
		var checkboxs = $('input[name=tipoDecisaoSelecionados]');
		checkboxs.bind('change', function(event){
			var atLeastOne = false;
			checkboxs.each(function(i){  
				atLeastOne = atLeastOne || this.checked;  
			}); 
			if(!atLeastOne){
				this.checked = true;
				window.alert("Pelo menos um tipo de decisão deve ser selecionado.")
			}
		});
	};
		
	var bindAcoesBotoesOperadores = function(){
		var div = $('div.botoesOperadores');
		var botoes = $('>input[type=button]',div);
		$('>input[name=E],>input[name=OU],>input[name=NAO]',div).click(function(){adicionarNaPesquisaLivre(' '+this.name+' ')});
		$('>input[name=AST]',div).click(function(){adicionarNaPesquisaLivre('*')});
		$('>input[name=INT]',div).click(function(){adicionarNaPesquisaLivre('?')});
		$('>input[name=ASP]',div).click(colocarEntreAspas);
	};
	
	var bindMensagemAjudaBotoesOperadores = function(){
		var botoes = $('div.botoesOperadores :button');
		botoes.addClass("conJurisOperador");
		$.saj.bindAjudaCampos(botoes, {posicaoTooltip: 'abaixo'});
	};
	
	var colocarEntreAspas = function(){
		var input = $('input[name=dados.buscaInteiroTeor]');
		input.val("\""+input.val()+"\" ");
		input[0].focus();
	};
	
	var adicionarNaPesquisaLivre = function(operador){
		var inputPesquisaLivre = $('input[name=dados.buscaInteiroTeor]');
		inputPesquisaLivre[0].value += operador;
		inputPesquisaLivre[0].focus();
	};
	
	var trocarDePagina = function(valor){
		var tipo = valor.charAt(0);
		var pagina = valor.slice(1);
		var div = $('div#tabs-'+tipo);
		$('div.divDadosResultado', div).fadeTo("slow", 0.33);
		$.get(window.saj.env.root+"/trocaDePagina.do", { tipoDeDecisao: tipo, pagina: pagina}, function(data){atualizarPagina(data, tipo);} );
	};
	
	var atualizarPagina = function(data, tipo){
		var tab = $('div#tabs-'+tipo); //consulta pela div que contem o resultado do tipo
		tab.html(data);
		var divResultado = $('div.divDadosResultado', tab);
		divResultado.hide();
		divResultado.fadeIn("slow");
		//bind nos link de troca de pagina desse resultado
		$('div.trocaDePagina a', tab).bind('click', function(){trocarDePagina(this.name);});
		bindLinkDownloadDocumento(tab);
		bindTermosRelacionados();
		bindImagemMostrarOcultarEmenta();
	};

	
	var bindMensagemAjudaNosCampos = function () {
		$.saj.bindAjudaCampos($('input[name=dados.buscaInteiroTeor]'), {offsetHorizontalExtra: 95});
		
		var camposEmentaNuRegistro = $('input[name=dados.buscaEmenta],input[name=dados.nuRegistro]');
		$.saj.bindAjudaCampos(camposEmentaNuRegistro);
		
		
		$.saj.bindAjudaCampos($('input[name=dados.nuProcOrigem]'),{
			cliente: window.saj.env.cliente
		});
		
		var camposInputSelect = $('table[input-select]');
		$.saj.bindAjudaCampos(camposInputSelect, {offsetHorizontalExtra: 46});
		
		var campoClasse = $('#classesId');
		$.saj.bindAjudaCampos(campoClasse, {offsetHorizontalExtra: 46});
		
		var checkBoxTipoDecisao = $('div#linhaTipoDecisao :checkbox');
		$.saj.bindAjudaCampos(checkBoxTipoDecisao, {offsetHorizontalExtra: 135, objReferenciaPosicaoTooltip: checkBoxTipoDecisao.filter(':last')});
		
		var radio = $('input[name=dados.ordenacao]');
		$.saj.bindAjudaCampos(radio, {offsetHorizontalExtra: 72, objReferenciaPosicaoTooltip: radio.filter(':last')});
		
		var dtJulgamento = $('input[name*=dtJulgamento]');
		$.saj.bindAjudaCampos(dtJulgamento, {offsetHorizontalExtra: 100, objReferenciaPosicaoTooltip: dtJulgamento.filter(':last')});
		
		var dtRegistro = $('input[name*=dtRegistro]');
		$.saj.bindAjudaCampos(dtRegistro, {offsetHorizontalExtra: 100, objReferenciaPosicaoTooltip: dtRegistro.filter(':last')});
	};
	
	var bindMensagemAjudaEmTermosRelacionados = function(){
		var span = $('#abaAdicionar');
		$.saj.bindAjudaCampos(span, {posicaoTooltip: 'esquerda', urlAjuda: '/jsp/help.jsp?ajuda=termosRelacionados'});
	};
	
	var bindTermosRelacionados = function(){
		$('#abaAdicionar img').bind('click', {conteudoParaAlterarVisibilidade: $('#adicionarPesquisa')}, alterarVisibilidadeQuadroFiltro);
		var div = $('div#adicionarPesquisa');
		var termos = $('input[type=checkbox]',div);
		var botao = $('input[type=button]', div);
		botao.click(function(){adicionarTermosAPesquisa(termos);});
		
		botao.bind('mouseover', function(){this.className = 'conJurisBotaoSec-o';});
		botao.bind('mouseout', function(){this.className = 'conJurisBotaoSec';});
	};
	
	var bindFiltrosLaterais = function() {
		$('#abaFiltrar img').bind('click', {conteudoParaAlterarVisibilidade: $('#filtrarResultado')}, alterarVisibilidadeQuadroFiltro);
		var div = $('div#filtrarResultado');
		var termos = $('input[type=checkbox]',div);
		var botao = $('input[type=button]', div);
		botao.click(function(){getResultados(termos);});
		
		botao.bind('mouseover', function(){this.className = 'conJurisBotaoSec-o';});
		botao.bind('mouseout', function(){this.className = 'conJurisBotaoSec';});
	};
	
	var alterarVisibilidadeQuadroFiltro = function(event) {
		var $div = event.data.conteudoParaAlterarVisibilidade;
		var iconeFiltro = 'imagens/saj/';
		if($div.is(':visible')) {
			$div.hide();
			iconeFiltro += 'abrirFiltro.gif';
		} else {
			$div.show();
			iconeFiltro += 'fecharFiltro.gif';
		}
		$(this).attr('src', iconeFiltro);
	};
	
	var bindBotaoLimpar = function(){
		var botaoLimpar = $('input[name=pbLimpar]');
		botaoLimpar.click(limparTodosOsCampos);
		botaoLimpar.addClass('spwBotao');
	};
		
	var limparTodosOsCampos = function(){
		if($('#vara').size() != 0){
			$.saj.limparInputSelect('vara');
		}
		if($('#comarca').size() != 0){
			$.saj.limparInputSelect('comarca');
		}
		if($('#agente').size() != 0){
			$.saj.limparInputSelect('agente');
		}
		$('form[name=consultaCompletaForm] input[type=text]').val('');
		$.saj.tree.limpaTreeSelect($('#classesId'));
		$('input[name=dados.buscaInteiroTeor]').focus();
	};
	
	//Valida as datas fornecidas
	var validaDatas = function(dtInicio, dtFim){
		if(dtInicio.value == '' || dtFim.value == ''){
			preencheOutraData(dtInicio, dtFim);
			return true;
		} 
		
		var dateInicio = simpleParseDate(dtInicio.value);
		var dateFim = simpleParseDate(dtFim.value);	
		if(((dateFim.getTime() - dateInicio.getTime()) / 1000 / 60 / 60 / 24) <= 366) {	
			return true;
		} else {
			alert('O período fornecido nos campos de datas deve ser de no máximo um ano.');
			return false;
		}
	};

	//adiciona a data de inicio ou fim, baseado na data fornecida, com diferença de um ano
	var preencheOutraData = function(dtInicio, dtFim){	
		if(dtInicio.value == ''){
			var ano = parseInt(dtFim.value.substr(6,4)) - 1;
			dtInicio.value = dtFim.value.substr(0,6) + ano;  
		} else {
			var ano = parseInt(dtInicio.value.substr(6,4)) + 1;
			var fim = dtInicio.value.substr(0,6) + ano;
			var dateNow = new Date();
			var dateFim = simpleParseDate(fim);
			if(dateNow.getTime() > dateFim.getTime()){
				dtFim.value = fim;
			} else {
				dtFim.value = simpleDateToStr(dateNow);
			}		
		}
	};
	
	var bindMostrarSinonimos = function(){
		var campoPesquisa = $('input[name=dados.buscaInteiroTeor]');
		$('a#mostrarSinonimos').click(function(){
			var options = {
				popupId: 'popupSinonimos',
				titulo: 'Sinônimos',
				//expectedHeight: null,
				processandoImgUrl: saj.env.imagens+'/saj/processando.gif',
				url: saj.env.root+'/mostrarSinonimos.do',
				params: {texto: campoPesquisa.val()},
				reload: true
			};
			$.saj.popup.show(options);
		});
	};
	
	var bindImagemMostrarOcultarEmenta = function(){
		var imgs = $('img.mostrarOcultarEmenta');
		imgs.click(function(){mostrarOcultarEmenta($(this).parent());});
	};
	
	var mostrarOcultarEmenta = function(obj){
		while(obj[0].nodeName != "DIV"){
			obj = obj.parent();
		}
		obj.css("display","none");
		obj.css("cursor","pointer;");
		var irmao = obj.siblings();
		irmao.css("display","");
		irmao.css("cursor","pointer;");
	};
	
	
	/* abrir popup download documento */
	var bindLinkDownloadDocumento = function(div){
		var as = $('a.downloadEmenta', div);
		as.click(function(){
			var nome = "Documento";
			var url = window.saj.env.root+"/getArquivo.do?cdAcordao="+this.name ;
			abrirJanelaPopUp(url, nome);
		});
	};
	
	/* abrir popup download documento */
	
	var focusNaPesquisaLivre = function(){
		var inputPesquisaLivre = $('input[name=dados.buscaInteiroTeor]');
		inputPesquisaLivre[0].focus();
	};
	
})(jQuery);

function adicionarTermosAPesquisa(termos) {
	var lista = "";
	termos.each(function (i) {
		if (this.checked) {
			lista += " \"" + this.value + "\" ";
			this.checked = false;
		}
	});
	var campo = jQuery('input[name=dados.buscaInteiroTeor]')[0];
	if (campo && (lista != "")) {
		campo.value += lista;
		document.forms[0].submit();
	}
};

function abrirJanelaPopUp(url, nome, params) {
	if (!nome) {
		nome = "";
	}
	if (!params) {
		params = "location=no, toolbar=no, resizable=yes, width=800, height=600";
	}
	window.open(url, nome, params);
	return false;
};

//get Resultado refinado pelo filtro

function getResultados() {
	var checks = $A($("divClasse").getElementsByTagName("input"));
	var params = "";
	params = buildParams(params, "classe", checks);
	checks = $A($("divRelator").getElementsByTagName("input"));
	params = buildParams(params, "relator", checks);
	checks = $A($("divComarca").getElementsByTagName("input"));
	params = buildParams(params, "comarca", checks);
	checks = $A($("divOrgaoJulgador").getElementsByTagName("input"));
	params = buildParams(params, "orgaoJulgador", checks);
	var url = "/cjsg/montaResultados.do";
	var myAjax = new Ajax.Request(url, {method:"post", 
		parameters:params,
		onComplete:mostraResultados});
	}

function buildParams(params, name, values) {
values.each(function (el) {
	if (el.checked) {
		if (params == "") {
			params = name + "=" + el.value;
		} else {
			params = params + "&" + name + "=" + el.value;
		}
	}
});
return params;
}

function mostraResultados(result) {
if (result.responseText.indexOf("#%#emptySession#%#") != -1) {
	repeteBusca();
} else {
	var resp = result.responseText.split("#%#quebra_resposta#%#");
	if (resp.length == 3) {
		Element.update($("divResultadosSuperior"), resp[0]);
		Element.update($("divResultadosInferior"), resp[1]);
		Element.update($("divTermos"), resp[2]);
	} else {
		Element.update($("divResultadosSuperior"), "");
		Element.update($("divResultadosInferior"), resp[0]);
	}
}
$("divResultadosInferior").style.cursor = 'auto';
}

