/* Title: Busca de dados nos atributos de um tema O tema alvo é o definido na variável i3GEO.temaAtivo Veja: Arquivo: i3geo/ferramentas/busca/index.js.php About: Licença i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes. Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ if(typeof(i3GEOF) === 'undefined'){ var i3GEOF = {}; } /* Class: i3GEOF.busca */ i3GEOF.busca = { /* Variavel: nbuscas Número de buscas já feitas. Utilizado para posicionar as janelas de resultados. */ nbuscas: 0, /* Variavel: aguarde Objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ aguarde: "", /* Variavel: tema Código do tema utilizado na busca */ tema: i3GEO.temaAtivo, /** * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php */ MUSTACHE : "", /** * Susbtitutos para o template */ mustacheHash : function() { var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.busca.dicionario); return dicionario; }, /* Function: inicia Inicia a ferramenta. É chamado por criaJanelaFlutuante Parametro: iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ inicia: function(iddiv){ if(i3GEOF.busca.MUSTACHE == ""){ $.get(i3GEO.configura.locaplic + "/ferramentas/busca/template_mst.html", function(template) { i3GEOF.busca.MUSTACHE = template; i3GEOF.busca.inicia(iddiv); }); return; } if(i3GEO.temaAtivo === ""){ return; } try{ $i(iddiv).innerHTML = i3GEOF.busca.html(); var onButtonClick = function(evt){ var botao = evt.target; if (botao) { if (botao.value != "") { i3GEO.mapa.ativaTema(botao.value); i3GEOF.busca.tema = botao.value; $i(iddiv).innerHTML = ""; i3GEOF.busca.inicia(iddiv); } else { //$i(iddiv).innerHTML = ""; } } }; if (!$i("i3GEOFbuscaComboCabecaSel")) { i3GEO.janela.comboCabecalhoTemasBs("i3GEOFbuscaComboCabeca","i3GEOFbuscaComboCabecaSel","busca","ligadosComTabela",onButtonClick); } i3GEO.php.listaItensTema(i3GEOF.busca.montaListaItens,i3GEOF.busca.tema); } catch(erro){alert(erro);} }, /* Function: html Gera o código html para apresentação das opções da ferramenta Retorno: String com o código html */ html:function() { var ins = Mustache.render(i3GEOF.busca.MUSTACHE, i3GEOF.busca.mustacheHash()); return ins; }, /* Function: iniciaJanelaFlutuante Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante: function(){ var minimiza,cabecalho,janela,divid,temp,titulo; if($i("i3GEOF.busca")){ i3GEOF.busca.inicia("i3GEOF.busca_corpo"); return; } //funcao que sera executada ao ser clicado no cabeçalho da janela cabecalho = function(){ i3GEOF.busca.ativaFoco(); }; minimiza = function(){ i3GEO.janela.minimiza("i3GEOF.busca"); }; //cria a janela flutuante titulo = ""+$trad("t23")+""; janela = i3GEO.janela.cria( "320px", "330px", "", "", "", titulo, "i3GEOF.busca", false, "hd", cabecalho, minimiza, "", true, "", "", "", "", "35" ); divid = janela[2].id; i3GEOF.busca.aguarde = $i("i3GEOF.busca_imagemCabecalho").style; //i3GEOF.analisaGeometrias.aguarde.visibility = "visible"; i3GEOF.busca.inicia(divid); }, /* Function: ativaFoco Refaz a interface da ferramenta quando a janela flutuante tem seu foco ativado */ ativaFoco: function(){ }, /* Function: montaListaItens Monta a lista de itens que poderão ser escolhidos. A lista é inserida no elemento html com id "i3GEObuscalistai" */ montaListaItens: function(retorno){ var ins = "", i, n; n = retorno.data.valores.length; for (i=0;i' + ' ' + retorno.data.valores[i].item + ''; } $i("i3GEObuscalistai").innerHTML = ins; }, /* Function: procurar Executa a operação de busca Veja: */ procurar: function(){ if(i3GEOF.busca.aguarde.visibility === "visible") {return;} if(i3GEO.arvoreDeCamadas.pegaTema(i3GEOF.busca.tema) === "") {alert($trad('erroTema2',i3GEOF.busca.dicionario));return;} var inputs = $i("i3GEObuscalistai").getElementsByTagName("input"), n = inputs.length, listai = [], i, tipo = "exata", onde = "mapa", palavra = $i("i3GEObuscapalavra").value, p, cp; for (i=0;i", ins = [], linhas, nlinhas, linha, nlinha, valores, x, y, i, er, tr, tema, posicaoleft = parseInt($i("i3GEOF.busca_c").style.left,10)+(i3GEOF.busca.nbuscas*10), posicaotop = parseInt($i("i3GEOF.busca_c").style.top,10)+(i3GEOF.busca.nbuscas*10); i3GEOF.busca.nbuscas++; i3GEO.janela.cria( "300px", "350px", "", posicaoleft+290,posicaotop, "
" + palavra + "
", idJanela ); if (retorno.data !== undefined) { nlinhas = retorno.data.length; for (tema=0;temagps_fixed"); ins.push(""); for (i=0;i"+palavra+""); ins.push("
"+ linhas[linha].valores[i].item + " : " + tr + "
"); ins.push("
"); naoEncontrado = ""; } } } $i(idJanela+"_corpo").innerHTML ="
"+naoEncontrado+ins.join("")+"
"; } else{ $i(idJanela+"_corpo").innerHTML = "
"+$trad('erro',i3GEOF.busca.dicionario)+"
"; } } };