/* Title: Gráfico interativo 1 Representação gráfica de dados. O gráfico é construído tendo como base os atributos de um tema e é modificado conforme o usuário navega pelo mapa. A renderização do gráfico é feito pelo navegador por meio do aplicativo openflashchart. Os dados que serão utilizados no gráfico são baseados em um elemento TABLE. Esse elemento pode ser montado com base na tabela de atributos e editada pelo usuário. Os dados podem também ser inseridos como parāmetros na inicialização da ferramenta, permitindo que o gráfico seja utilizado por outras ferramentas. Veja: Arquivo: i3geo/ferramentas/graficointerativo1/index.js.php Licenca: GPL2 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 = {}; } /* * Classe: i3GEOF.graficointerativo1 * */ i3GEOF.graficointerativo1 = { /* * Variavel: aguarde * * Estilo do objeto DOM com a imagem de aguarde existente no * cabeçalho da janela. */ aguarde : "", /* * Propriedade: dados * * Dados que serao utilizados. Pode ser passado como parametro. * * Default: {false} */ dados : false, /* * Propriedade: titulo * * Título do gráfico. Se for vazio, será obtido do nome * do tema selecionado */ titulo : "", /* * Propriedade: tipo * * Tipo de gráfico escolhido pelo usuário. */ tipo : "", /* * Propriedade: acumula * * Acumula os valores ao gerar o gráfico * * Type: {boolean} * * Default: {false} */ acumula : false, /* * Propriedade: relativa * * Utiliza valores relativos ao criar o gráfico * * Type: {boolean} * * Default: {false} */ relativa : false, /* * Propriedade: dadospuros * * Não faz nenhum tipo de processamento nos dados antes de gerar o * gráfico * * Type: {boolean} * * Default: {false} */ dadospuros : false, /* * Propriedade: navegacao * * Ativa ou não a navegação dināmica do mapa * * Type: {boolean} * * Default: {false} */ navegacao : false, /* * Para efeitos de compatibilidade antes da versão 4.7 que não * tinha dicionário */ criaJanelaFlutuante : function(dados) { if (dados) { i3GEOF.graficointerativo1.dados = dados; } i3GEOF.graficointerativo1.iniciaDicionario(); }, /* * Function: iniciaDicionario * * Carrega o dicionário e chama a função que inicia a * ferramenta * * O Javascript é carregado com o id * i3GEOF.nomedaferramenta.dicionario_script */ iniciaDicionario : function(dados) { if (dados) { i3GEOF.graficointerativo1.dados = dados; } if (typeof (i3GEOF.graficointerativo1.dicionario) === 'undefined') { i3GEO.util.scriptTag(i3GEO.configura.locaplic + "/ferramentas/graficointerativo1/dependencias.php", "i3GEOF.graficointerativo1.iniciaJanelaFlutuante()", "i3GEOF.graficointerativo1.dicionario_script"); } else { i3GEOF.graficointerativo1.iniciaJanelaFlutuante(dados); } }, /* * Function: inicia * * Inicia a ferramenta. É chamado por criaJanelaFlutuante * * Parametros: * * iddiv {String} - id do div que receberá o conteudo HTML da * ferramenta * * dados {JSON} - dados para o gráfico (opcional) exemplo * ["n;x","'Argentina';33796870","'Paraguay';4773464","'Brazil';151525400","'Chile';13772710"] */ inicia : function(iddiv) { // try{ $i(iddiv).innerHTML += i3GEOF.graficointerativo1.html(); $i("i3GEOgraficointerativo1Acumula").checked = i3GEOF.graficointerativo1.acumula; $i("i3GEOgraficointerativo1Relativa").checked = i3GEOF.graficointerativo1.relativa; $i("i3GEOgraficointerativo1DadosPuros").checked = i3GEOF.graficointerativo1.dadospuros; if (i3GEOF.graficointerativo1.navegacao === true) { i3GEOF.graficointerativo1.ativaNavegacao(true); } // eventos das guias //tipos de graficos $i("i3GEOgraficointerativo1guia1").onclick = function() { i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficointerativo1guia1", "i3GEOgraficointerativo1guia"); $i("i3GEOgraficointerativo1Grafico").style.display = "none"; }; //dados para o grafico $i("i3GEOgraficointerativo1guia2").onclick = function() { if(i3GEOF.graficointerativo1.tipo === ""){ alert($trad(4, i3GEOF.graficointerativo1.dicionario)); return; } i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficointerativo1guia2","i3GEOgraficointerativo1guia"); i3GEOF.graficointerativo1.configuraDados(); $i("i3GEOgraficointerativo1Grafico").style.display = "none"; }; //propriedades adicionais $i("i3GEOgraficointerativo1guia3").onclick = function() { i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficointerativo1guia3", "i3GEOgraficointerativo1guia"); $i("i3GEOgraficointerativo1Grafico").style.display = "none"; }; //mostra o grafico $i("i3GEOgraficointerativo1guia4").onclick = function() { if(i3GEOF.graficointerativo1.tipo === ""){ alert($trad(4, i3GEOF.graficointerativo1.dicionario)); return; } if($i("i3GEOgraficointerativo1Dados").innerHTML === ""){ return; } i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficointerativo1guia4","i3GEOgraficointerativo1guia"); var t = $i("i3GEOgraficointerativo1Grafico"); t.style.display = "block"; t.style.position = "relative"; t.style.top = "-5px"; t.visibility = "visible"; i3GEOF.graficointerativo1.tabela2dados(); }; $i("i3GEOgraficointerativo1guia5").onclick = function() { if(i3GEOF.graficointerativo1.tipo === ""){ alert($trad(4, i3GEOF.graficointerativo1.dicionario)); return; } if($i("i3GEOgraficointerativo1Dados").innerHTML === ""){ return; } i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficointerativo1guia5","i3GEOgraficointerativo1guia"); $i("i3GEOgraficointerativo1Grafico").style.display = "none"; $i("i3GEOgraficointerativo1guia5obj").innerHTML = ""; }; $i("i3GEOgraficointerativo1guia6").onclick = function() { if(i3GEOF.graficointerativo1.tipo === ""){ alert($trad(4, i3GEOF.graficointerativo1.dicionario)); return; } if($i("i3GEOgraficointerativo1Dados").innerHTML === ""){ return; } var w,h,form = $i("i3GEOgraficointerativo1PNG"), isvg = form.getElementsByTagName("input")[0], svg = $i("i3GEOgraficointerativo1guia4objCanvas").firstChild; h = svg.getAttributeNS(null, 'height'); w = svg.getAttributeNS(null, 'width'); if (typeof XMLSerializer != "undefined"){ svg = (new XMLSerializer()).serializeToString(svg); } else { svg = svg.html(); } isvg.value = svg; form.action = form.action+"?"+"w="+w+"&h="+h; form.submit(); }; i3GEOF.graficointerativo1.ativaFoco(); i3GEOF.graficointerativo1.comboTemas(); new YAHOO.widget.Button("i3GEOgraficointerativo1botao1", { onclick : { fn : i3GEOF.graficointerativo1.obterDados } }); if (i3GEOF.graficointerativo1.dados && i3GEOF.graficointerativo1.dados != "undefined") { i3GEOF.graficointerativo1.montaTabelaDados(i3GEOF.graficointerativo1.dados); $i("i3GEOgraficointerativo1guia4").onclick.call(); } else{ i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficointerativo1guia1","i3GEOgraficointerativo1guia"); } }, /* * 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 locaplic = i3GEO.configura.locaplic, ins = '' + '
' + ' ' + '

' //tipos de grafico + ' ' //obtencao dos dados e parametros + '' //propriedades adicionais + '' //aqui vai o grafico + '' //csv + '' //png + '' + ''; return ins; }, /* * Function: iniciaJanelaFlutuante * * Cria a janela flutuante para controle da ferramenta. * * Parametro * * dados {JSON} - dados para o gráfico */ iniciaJanelaFlutuante : function(dados) { if (dados) { i3GEOF.graficointerativo1.dados = dados; } var minimiza, cabecalho, janela, divid, temp, titulo; // cria a janela flutuante cabecalho = function() { i3GEOF.graficointerativo1.ativaFoco(); }; minimiza = function() { i3GEO.janela.minimiza("i3GEOF.graficointerativo1"); }; mudaTamanhoGrafico = function(){ var t = $i("i3GEOgraficointerativo1Grafico"); if(t.style.display === "block"){ i3GEOF.graficointerativo1.tabela2dados(); } }; titulo = "   " + $trad("t37b") + "    "; janela = i3GEO.janela.cria("480px", "450px", "", "", "", titulo, "i3GEOF.graficointerativo1", false, "hd", cabecalho, minimiza, mudaTamanhoGrafico); divid = janela[2].id; i3GEOF.graficointerativo1.aguarde = $i("i3GEOF.graficointerativo1_imagemCabecalho").style; $i("i3GEOF.graficointerativo1_corpo").style.backgroundColor = "white"; $i("i3GEOF.graficointerativo1_corpo").style.overflow = "auto"; i3GEOF.graficointerativo1.inicia(divid); if (i3GEO.Interface) { temp = function() { if (i3GEO.Interface.ATUAL !== "googlemaps" && i3GEO.Interface.ATUAL !== "googleearth") { i3GEO.eventos.NAVEGAMAPA .remove("i3GEOF.graficointerativo1.obterDados()"); } if (i3GEO.Interface.ATUAL == "googlemaps") { google.maps.event.removeListener(graficointerativo1Dragend); google.maps.event.removeListener(graficointerativo1Zoomend); } if (i3GEO.Interface.ATUAL === "googleearth") { google.earth.removeEventListener(graficointerativo1Dragend); } if (i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search( "i3GEOF.graficointerativo1.comboTemas()") > 0) { i3GEO.eventos.ATUALIZAARVORECAMADAS .remove("i3GEOF.graficointerativo1.comboTemas()"); } }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); if (i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search( "i3GEOF.graficointerativo1.comboTemas()") < 0) { i3GEO.eventos.ATUALIZAARVORECAMADAS .push("i3GEOF.graficointerativo1.comboTemas()"); } } }, /* * Function: ativaFoco * * Refaz a interface da ferramenta quando a janela flutuante tem seu foco * ativado */ ativaFoco : function() { if (i3GEO.Interface) { i3GEO.barraDeBotoes.ativaIcone("graficointerativo1"); } var i = $i("i3GEOF.graficointerativo1_c").style; i3GEO.janela.ULTIMOZINDEX++; i.zIndex = i3GEO.janela.ULTIMOZINDEX; }, novaJanela : function() { var janela = "", divid, g = $i("i3GEOgraficointerativo1guia4objCanvas"), v = g .cloneNode(true), cabecalho = function() { }, id = YAHOO.util.Dom.generateId(), minimiza = function() { i3GEO.janela.minimiza(id); }, titulo = "   " + i3GEOF.graficointerativo1.titulo; janela = i3GEO.janela.cria("380px", "280px", "", "", "", titulo, id, false, "hd", cabecalho, minimiza); divid = janela[2].id; $i(divid).style.marginTop = "0px"; v.id = id + "ngrafico"; v.style.marginTop = "0px"; $i(divid).appendChild(v); }, /* * Function: comboTemas * * Monta o combo para escolha do tema que será utilizado no * gráfico */ comboTemas : function() { if (!i3GEO.Interface) { return; } i3GEO.util .comboTemas( "i3GEOgraficointerativo1ComboTemasId", function(retorno) { $i("i3GEOgraficointerativo1ComboTemas").innerHTML = retorno.dados; $i("i3GEOgraficointerativo1ComboTemas").style.display = "block"; if ($i("i3GEOgraficointerativo1ComboTemasId")) { $i("i3GEOgraficointerativo1ComboTemasId").onchange = function() { i3GEO.mapa .ativaTema($i("i3GEOgraficointerativo1ComboTemasId").value); i3GEOF.graficointerativo1.comboItensSel(); }; } if (i3GEO.temaAtivo !== "") { $i("i3GEOgraficointerativo1ComboTemasId").value = i3GEO.temaAtivo; $i("i3GEOgraficointerativo1ComboTemasId").onchange .call(); } }, "i3GEOgraficointerativo1ComboTemas", "", false, "ligados", "font-size:12px;width:350px"); }, /* * Function: ativaTipo * * Define a variável com o tipo de gráfico e mostra a guia 2 */ ativaTipo : function(obj) { if(obj){ i3GEOF.graficointerativo1.tipo = obj.value; } if(i3GEOF.graficointerativo1.tipo == "ponto_1"){ $i("i3GEOgraficointerativo1DadosPuros").checked = true; } else{ $i("i3GEOgraficointerativo1DadosPuros").checked = false; } if (!$i("i3GEOgraficointerativo1tabeladados") || $i("i3GEOgraficointerativo1tabeladados").innerHTML == "") { $i("i3GEOgraficointerativo1guia2").onclick.call(); } else { $i("i3GEOgraficointerativo1guia4").onclick.call(); } }, alteraFatorPixel: function(tipo){ var delta = 20, temp = $i("i3GEOgraficointerativo1FatorTamanho"), v = parseInt(temp.value,10); if(temp.value >= 0){ if(tipo === "mais"){ temp.value = v + delta; } else{ temp.value = v - delta; } } if(parseInt(temp.value,10) < 0){ temp.value = 0; } $i("i3GEOgraficointerativo1guia4").onclick.call(); }, /* * Function: configuraDados * * Configura o formulário para obtenção dos dados para * cada tipo de gráfico */ configuraDados : function() { var ativa = function(comboxlinha, comboylinha, ajudapizza) { try { $i("i3GEOgraficointerativo1ComboXlinha").style.display = comboxlinha; $i("i3GEOgraficointerativo1ComboYlinha").style.display = comboylinha; $i("i3GEOgraficointerativo1AjudaPizza").style.display = ajudapizza; } catch (e) {} }; if (i3GEOF.graficointerativo1.tipo === "") { i3GEO.janela.tempoMsg($trad(31, i3GEOF.graficointerativo1.dicionario)); i3GEO.guias.mostraGuiaFerramenta("i3GEOgraficointerativo1guia1", "i3GEOgraficointerativo1guia"); return; } if (i3GEOF.graficointerativo1.tipo === "pizza2d") { ativa.call("block", "block", "block"); } }, /* * Function: comboItensSel * * Cria um combo para selecionar os itens do tema escolhido * * Veja: * * */ comboItensSel : function() { var adicionaFilho = function(){}, tema = $i("i3GEOgraficointerativo1ComboTemasId").value; i3GEO.util .comboItens( "i3GEOgraficointerativo1ComboXid", tema, function(retorno) { if (retorno.tipo === "erro") { $i("i3GEOgraficointerativo1ComboX").innerHTML = "

" + $trad( 32, i3GEOF.graficointerativo1.dicionario) + "

"; $i("i3GEOgraficointerativo1ComboY").innerHTML = "

" + $trad( 32, i3GEOF.graficointerativo1.dicionario) + "

"; } else { $i("i3GEOgraficointerativo1ComboY").innerHTML = "
" + retorno.dados + " " + " " + "aquarela.gif
"; $i("i3GEOgraficointerativo1ComboXid").id = "i3GEOgraficointerativo1ComboYid"; $i("i3GEOgraficointerativo1ComboX").innerHTML = "
" + retorno.dados + " 
"; $i("i3GEOgraficointerativo1ComboXid").style.width = "160px"; $i("i3GEOgraficointerativo1ComboYid").style.width = "160px"; adicionaFilho = function() { var no = document.createElement("div"), id = "CorG"+parseInt(Math.random()*100000,10), novoselect; no.innerHTML = retorno.dados + " " + " " + "aquarela.gif
"; novoselect = no.getElementsByTagName("select")[0]; novoselect.id = ""; novoselect.onchange = adicionaFilho; novoselect.style.width = "160px"; $i("i3GEOgraficointerativo1ComboY").appendChild(no); }; $i("i3GEOgraficointerativo1ComboYid").onchange = adicionaFilho; } }, "i3GEOgraficointerativo1ComboX", ""); }, /* * Function: obterDados * * Obtém os dados que serão utilizados no gráfico * * Veja: * * */ obterDados : function() { if (!i3GEO.Interface) { return; } if (i3GEOF.graficointerativo1.aguarde.visibility === "visible") { return; } var tema = $i("i3GEOgraficointerativo1ComboTemasId").value, excluir = $i("i3GEOgraficointerativo1excluir").value, cp = new cpaint(), tipo = $i("i3GEOgraficointerativo1TipoAgregacao").value, ordenax = "sim", monta, p, x, y, i, n, temp; // pega os itens temp = $i("i3GEOgraficointerativo1ComboX"); x = temp.getElementsByTagName("select")[0].value; temp = $i("i3GEOgraficointerativo1ComboY"); temp = temp.getElementsByTagName("select"); n = temp.length; if (n === 1) { y = temp[0].value; } else { y = []; for (i = 0; i < n; i++) { if (temp[i].value != "") { y.push(temp[i].value); } } y = y.join(","); } p = i3GEO.configura.locaplic + "/ferramentas/graficointerativo1/exec.php?g_sid=" + i3GEO.configura.sid + "&funcao=graficoSelecao&tema=" + tema + "&itemclasses=" + x + "&itemvalores=" + y + "&exclui=" + excluir + "&ext=" + i3GEO.util.extOSM2Geo(i3GEO.parametros.mapexten); if ($i("i3GEOgraficointerativo1DadosPuros").checked) { tipo = "nenhum"; } else { if (x === y) { tipo = "conta"; } } if (!$i("i3GEOgraficointerativo1OrdenaX").checked) { ordenax = "nao"; } if (tema === "") { i3GEO.janela.tempoMsg($trad(34, i3GEOF.graficointerativo1.dicionario)); return; } if (x === "") { i3GEO.janela.tempoMsg($trad(35, i3GEOF.graficointerativo1.dicionario)); return; } if (y === "") { i3GEO.janela.tempoMsg($trad(36, i3GEOF.graficointerativo1.dicionario)); return; } monta = function(retorno) { i3GEOF.graficointerativo1.aguarde.visibility = "hidden"; i3GEOF.graficointerativo1.montaTabelaDados(retorno); $i("i3GEOgraficointerativo1guia4").onclick.call(); // verifica para nao ficar mostrando a janela toda vez que redesenha // o mapa if ($i("i3GEOFgraficointerativo1ativaNavegacao").checked == false) { i3GEO.janela.tempoMsg($trad(37, i3GEOF.graficointerativo1.dicionario)); } }; i3GEOF.graficointerativo1.aguarde.visibility = "visible"; cp.set_response_type("JSON"); cp.call(p + "&tipo=" + tipo + "&ordenax=" + ordenax, "graficoSelecao", monta); }, /* * Pega os nomes das colunas */ nomesColunas: function(){ //pega os nomes das clunas var i,n,p, temp = $i("i3GEOgraficointerativo1ComboX"), colunas = [], cores = [], alias = []; if(temp.getElementsByTagName("select")[0]){ colunas.push(temp.getElementsByTagName("select")[0].value); alias.push(temp.getElementsByTagName("input")[0].value); } else{ //caso os dados tenham sido definidos como parametros colunas = ["-","-"]; alias = colunas; cores = ["#29C152","#29C152"]; } temp = $i("i3GEOgraficointerativo1ComboY"); temp = temp.getElementsByTagName("select"); n = temp.length; for(i=0;i" + $trad(38, i3GEOF.graficointerativo1.dicionario) + "

"); //pega os nomes das clunas colunas = i3GEOF.graficointerativo1.nomesColunas()[0]; ncolunas = colunas.length; for(i=0;i  " + colunas[i] + ""); } ins.push(""); n = dados.length; for (i = 1; i < n; i++) { v = dados[i].split(";"); // ins += v[0]+" "+v[1]; id = "i3GEOgraficointerativo1Dados" + i; // layer+indice da classe ins.push(""); ins.push(""); for(j=0;j"); ins.push($inputText("", "", id + colunas[j], $trad(43, i3GEOF.graficointerativo1.dicionario), 20, v[j], colunas[j])); ins.push(""); } ins.push(""); } ins.push("
" + $trad(41, i3GEOF.graficointerativo1.dicionario) + "
"); ins.push(""); if ($i("i3GEOgraficointerativo1CoresA").checked) { cor = i3GEO.util.rgb2hex(i3GEO.util.randomRGB()); } // verifica se no objeto com os dados existe um terceiro valor com // as cores if (v[ncolunas + 1]) { cor = i3GEO.util.rgb2hex(v[ncolunas + 1]); } ins.push($inputText("", "", id + "_cor", "", 12, cor, $trad(41, i3GEOF.graficointerativo1.dicionario))); ins.push(""); ins.push("aquarela.gif"); ins.push("

"); $i("i3GEOgraficointerativo1Dados").innerHTML = ins.join(""); }, /* * Function: tabela2csv * * Obtém os dados da tabela em CSV */ tabela2csv : function() { var colunas = i3GEOF.graficointerativo1.nomesColunas(), ncolunas = colunas[0].length, inputs = $i("i3GEOgraficointerativo1Dados").getElementsByTagName("input"), ninputs = inputs.length, i,j, temp, csv = []; csv.push(colunas[0].join(";")); for (i = 0; i < ninputs; i = (i + 1 + ncolunas)){ temp = []; for(j=0;j 0){ menor = inputs[1].value * 1; } if ($i("i3GEOgraficointerativo1ComboTemasId")) { titulo = $i("i3GEOgraficointerativo1ComboTemasId").options[$i("i3GEOgraficointerativo1ComboTemasId").options.selectedIndex].text; } if (i3GEOF.graficointerativo1.titulo != "") { titulo = i3GEOF.graficointerativo1.titulo; } if ($i("i3GEOgraficointerativo1ComboXid")) { legendaX = $i("i3GEOgraficointerativo1ComboXidTitulo").value; } if ($i("i3GEOgraficointerativo1ComboYid")) { legendaY = $i("i3GEOgraficointerativo1ComboYidTitulo").value; } if(ncolunas === 2){ for (i = 0; i < ninputs; i = i + 3) { temp = inputs[i + 1].value * 1; total += temp; cores.push(inputs[i + 2].value); } for (i = 0; i < ninputs; i = (i + 1 + ncolunas)) { temp = inputs[i + 1].value * 1; acum = ultimo + temp; acumulado.push(acum); ultimo = ultimo + temp; if (temp > maior) { maior = temp; } if (temp < menor) { menor = temp; } temp = inputs[i + 1].value * 1; if ($i("i3GEOgraficointerativo1Acumula").checked) { temp = acum; } if ($i("i3GEOgraficointerativo1Relativa").checked) { temp = (temp * 100) / total; } par.push([ inputs[i].value + " ", temp ]); } if ($i("i3GEOgraficointerativo1Acumula").checked) { maior = 0; } } else{ total = 0; for (i = 0; i < ninputs; i = (i + 1 + ncolunas)){ temp = []; for(j=0;j 0); p.parentNode.removeChild(p); }, /* * Function: corj * * Abre a janela para o usuário selecionar uma cor interativamente */ corj : function(obj) { i3GEO.util.abreCor("", obj, "hex"); }, /* * Function: ordenaColuna * * Ordena uma coluna da tabela */ ordenaColuna : function(coluna, cid) { var tabela = $i("i3GEOgraficointerativo1Dados").getElementsByTagName( "table")[0], trs, ntrs = 0, psort = [], t = 0, ins = "", p = 0, e, temp, chaves = [], numero = false; trs = tabela.getElementsByTagName("tr"); ntrs = trs.length; function sortNumber(a, b) { return a - b; } for (t = 1; t < ntrs; t++) { temp = trs[t].childNodes[cid]; if (temp) { psort.push(temp.childNodes[0].value); chaves[temp.childNodes[0].value] = t; if (temp.childNodes[0].value * 1) { numero = true; } } } // recosntroi a tabela if (numero === true) { psort = psort.sort(sortNumber); } else { psort = psort.sort(); } ins = "" + trs[0].innerHTML + ""; for (p = 0; p < psort; p++) { e = chaves[psort[p]]; if (trs[e] !== undefined) { ins += "" + trs[e].innerHTML + ""; } } tabela.innerHTML = ins; }, /* * Function: ativaNavegacao * * Ativa ou desativa a atualização automática ao * navegar no mapa */ ativaNavegacao : function(obj) { if (!i3GEO.Interface) { return; } if (obj === true) { if (i3GEO.Interface.ATUAL !== "googlemaps" && i3GEO.Interface.ATUAL !== "googleearth") { i3GEO.eventos.NAVEGAMAPA .push("i3GEOF.graficointerativo1.obterDados()"); } if (i3GEO.Interface.ATUAL === "googlemaps") { graficointerativo1Dragend = GEvent.addListener(i3GeoMap, "dragend", function() { i3GEOF.graficointerativo1.obterDados(); }); graficointerativo1Zoomend = GEvent.addListener(i3GeoMap, "zoomend", function() { i3GEOF.graficointerativo1.obterDados(); }); } if (i3GEO.Interface.ATUAL === "googleearth") { graficointerativo1Dragend = google.earth.addEventListener( i3GeoMap.getView(), "viewchangeend", function() { i3GEOF.graficointerativo1.obterDados(); }); } } else { if (i3GEO.Interface.ATUAL !== "googlemaps" && i3GEO.Interface.ATUAL !== "googleearth") { i3GEO.eventos.NAVEGAMAPA .remove("i3GEOF.graficointerativo1.obterDados()"); } if (i3GEO.Interface.ATUAL === "googlemaps") { GEvent.removeListener(graficointerativo1Dragend); GEvent.removeListener(graficointerativo1Zoomend); } if (i3GEO.Interface.ATUAL === "googleearth") { google.earth.removeEventListener(graficointerativo1Dragend); } } }, configDefault : function(dados, maior, cores, legendaY, legendaX) { var temp,config = { canvas : "i3GEOgraficointerativo1guia4objCanvas", height : parseInt($i("i3GEOF.graficointerativo1_corpo").style.height, 10) - 80, orthoAxisTitle : legendaY, valuesFont : 'normal 9px sans-serif ', baseAxisTitle : legendaX, baseAxisTitleAlign : 'center', tooltipEnabled : true, tooltipArrowVisible : true, tooltipFade : false, tooltipFollowMouse : false, tooltipFormat : function(scene) { var cat = this.scene.datum.atoms['category'].value, val = this.scene.datum.atoms['value'].value; return "" + cat + "
" + format("#.###,", val); }, baseAxisTitleFont : '9px sans-serif', yAxisTickFormatter : function(valor) { valor = valor + ""; valor = format("#.###,", valor); return valor; }, valueFormat : function(valor) { valor = valor + ""; valor = format("#.###,", valor); return valor; }, valuesAnchor : 'top', valuesVisible : false, orthoAxisOriginIsZero : false, titleAlign : 'center', titleFont: 'bold 14px sans-serif', baseAxisTitleFont : '12px sans-serif', orthoAxisTitleFont : '12px sans-serif', titlePosition: "top", orientation : 'vertical', baseAxisTicks : true, stacked : false, animate : true, hoverable : false, axisGrid : true, contentMargins : 5, axisOffset : 0.02, panelSizeRatio : 0.8, orthoAxisLabelSpacingMin : 2, selectable : false, extensionPoints : { continuousAxisTicks_strokeStyle : 'gray', axisGrid_strokeStyle : 'lightgray', xAxisLabel_textStyle : 'black', label_textBaseline : "bottom", xAxisLabel_font : 'normal 10px sans-serif' } }; if(maior > 0){ config.orthoAxisFixedMax = maior; } if($i("i3GEOgraficointerativo1Titulo").value != ""){ config.title = $i("i3GEOgraficointerativo1Titulo").value; } if($i("i3GEOgraficointerativo1TituloX").value != ""){ config.baseAxisTitle = $i("i3GEOgraficointerativo1TituloX").value; } if($i("i3GEOgraficointerativo1TituloY").value != ""){ config.orthoAxisTitle = $i("i3GEOgraficointerativo1TituloY").value; } temp = $i("i3GEOgraficointerativo1FatorTamanho"); if(temp && temp.value > 0){ config.width = dados.resultset.length * temp.value; } else{ config.width = parseInt($i("i3GEOF.graficointerativo1").style.width,10) - 20; } return config; }, barras : function(dados, maior, cores, legendaY, legendaX, xInclinado, tipo) { var ct = true, sr = false, config = i3GEOF.graficointerativo1.configDefault(dados, maior, cores,legendaY, legendaX); if (tipo === "horizontal") { config.orientation = 'horizontal'; } if (xInclinado == true) { config.extensionPoints.xAxisLabel_textAngle = -Math.PI / 3; config.extensionPoints.xAxisLabel_textBaseline = 'top'; config.extensionPoints.xAxisLabel_textAlign = 'right'; } if(dados.resultset[0].length > 2){ config.stacked = $i("i3GEOFgraficointerativo1ativaStacked").checked; config.legend = true; ct = true; sr = $i("i3GEOFgraficointerativo1ativaRowsInColumns").checked; config.colors = cores; } else{ if(cores != ""){ config.extensionPoints.bar_fillStyle = function(d) { return cores[this.index]; }; } } new pvc.BarChart(config).setData(dados, { crosstabMode : ct, seriesInRows: sr }).render(); i3GEOF.graficointerativo1.aguarde.visibility = "hidden"; }, linhas : function(dados, maior, cores, legendaY, legendaX, xInclinado, tipo) { var ct = false, sr = false, config = i3GEOF.graficointerativo1.configDefault(dados, maior, cores, legendaY, legendaX); if (xInclinado == true) { config.extensionPoints.xAxisLabel_textAngle = -Math.PI / 3; config.extensionPoints.xAxisLabel_textBaseline = 'top'; config.extensionPoints.xAxisLabel_textAlign = 'right'; } config.dotsVisible = true; if(dados.resultset[0].length > 2){ config.stacked = $i("i3GEOFgraficointerativo1ativaStacked").checked; config.legend = true; ct = true; sr = $i("i3GEOFgraficointerativo1ativaRowsInColumns").checked; config.colors = cores; } new pvc.LineChart(config).setData(dados, { crosstabMode : ct, seriesInRows: sr }).render(); i3GEOF.graficointerativo1.aguarde.visibility = "hidden"; }, areas : function(dados, maior, cores, legendaY, legendaX, xInclinado, tipo) { var ct = false, sr = false, config = i3GEOF.graficointerativo1.configDefault(dados, maior, cores, legendaY, legendaX); if (xInclinado == true) { config.extensionPoints.xAxisLabel_textAngle = -Math.PI / 3; config.extensionPoints.xAxisLabel_textBaseline = 'top'; config.extensionPoints.xAxisLabel_textAlign = 'right'; } config.dotsVisible = true; config.areasVisible = true; if(dados.resultset[0].length > 2){ config.stacked = $i("i3GEOFgraficointerativo1ativaStacked").checked; config.legend = true; ct = true; sr = $i("i3GEOFgraficointerativo1ativaRowsInColumns").checked; config.colors = cores; } new pvc.LineChart(config).setData(dados, { crosstabMode : ct, seriesInRows: sr }).render(); i3GEOF.graficointerativo1.aguarde.visibility = "hidden"; }, arvores : function(dados, maior, cores, legendaY, legendaX, tipo) { config = { canvas : "i3GEOgraficointerativo1guia4objCanvas", title : legendaY, titleFont : 'italic 14px sans-serif', selectable : true, hoverable : true, legend : false, tooltipEnabled : true, legendPosition : 'right', rootCategoryLabel : legendaX, tooltipFormat : function(scene) { var cat = this.scene.datum.atoms['category'].value, val = this.scene.datum.atoms.size.value; return "" + cat + "
" + format("#.###,", val); } }; if(cores != ""){ config.colors = cores; } new pvc.TreemapChart(config).setData(dados, { crosstabMode : false }).render(); i3GEOF.graficointerativo1.aguarde.visibility = "hidden"; }, pizzas : function(dados, maior, cores, legendaY, legendaX, tipo) { config = i3GEOF.graficointerativo1.configDefault(dados, maior, cores, legendaY, legendaX); var config = { canvas : "i3GEOgraficointerativo1guia4objCanvas", animate : true, selectable : true, hoverable : true, valuesVisible : true, valuesLabelStyle : 'inside', valuesMask : "{category}", tooltipFormat : function(scene) { var cat = this.scene.datum.atoms['category'].value, val = this.scene.datum.atoms['value'].value; return "" + cat + "
" + format("#.###,", val); }, extensionPoints : { slice_strokeStyle : 'white' } }; if(cores != ""){ config.colors = cores; } new pvc.PieChart(config).setData(dados, { crosstabMode : false }).render(); i3GEOF.graficointerativo1.aguarde.visibility = "hidden"; }, pontos: function(dados, maior, cores, legendaY, legendaX, tipo) { config = i3GEOF.graficointerativo1.configDefault(dados, maior, cores, legendaY, legendaX); var config = { canvas : "i3GEOgraficointerativo1guia4objCanvas", animate : true, selectable : true, hoverable : true, valuesVisible : false, orthoAxisTitle : legendaY, valuesFont : 'normal 9px sans-serif ', baseAxisTitle : legendaX, yAxisTickFormatter : function(valor) { valor = valor + ""; valor = format("#.###,", valor); return valor; }, valueFormat : function(valor) { valor = valor + ""; valor = format("#.###,", valor); return valor; }, tooltipFormat : function(scene) { var cat = this.scene.datum.atoms['category'].value, val = this.scene.datum.atoms['value'].value; return "X: " + cat + "
Y: " + format("#.###,", val); } }; if(cores != ""){ config.colors = cores; } new pvc.DotChart(config).setData(dados, { crosstabMode : false }).render(); i3GEOF.graficointerativo1.aguarde.visibility = "hidden"; } };