/* Title: Funções gerais Arquivo: i3geo/ferramentas/funcoes.js 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@mma.gov.br 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. */ // g_sid = ""; try{ g_sid = window.parent.i3GEO.configura.sid; g_locaplic = window.parent.i3GEO.configura.locaplic; } catch(e){} $i = function(id) {return document.getElementById(id);} cabecalhojanela = ""; //eventos das guias var h = 0; try{ if(window.parent.document.getElementById("wdocai")) {var h = parseInt(window.parent.document.getElementById("wdocai").style.height);} } catch(e){} navm = false; // IE navn = false; // netscape var app = navigator.appName.substring(0,1); if (app=='N') navn=true; else navm=true; if (!$i("mascaraaguarde")) { if (navm){var s = "filter:'alpha(opacity=20)'";} if (navn){var s = "opacity:.2";} var ins = ""; document.body.innerHTML += ins } if (navn) { if (document.getElementById("fundo")) { document.getElementById("fundo").style.width = "100%"; document.getElementById("fundo").style.height = "100%"; } if (document.getElementById("geral")) { document.getElementById("geral").style.height = "90%"; document.getElementById("geral").style.width = "97%"; } } else { if (document.getElementById("fundo")) { document.getElementById("fundo").style.width = "104%"; document.getElementById("fundo").style.height = "99%"; } if (document.getElementById("geral")) { document.getElementById("geral").style.height = "95%"; document.getElementById("geral").style.width = "100%"; } } document.body.style.backgroundColor="#F0F0F0"; $tradAjuda = function(tipo,id){ eval("var t = g_traducao_ajuda."+tipo); eval("var texto = t[id]."+window.parent.i3GEO.idioma.ATUAL); return (texto); }; //abre relogio imagemAguardeCabecalho = false; function aguarde(tipo) { // //obtem gif de aguarde do cabecalho da janela que contém o iframe atual da ferramenta //o try é necessário pois window.parent pode não existir // try{ if(!imagemAguardeCabecalho){ var fs = window.parent.document.getElementsByTagName("iframe"); var nfs = fs.length; for(i=0;i Aguarde..."; document.body.appendChild(novoel); document.body.innerHTML+=i; } document.getElementById("aguardeTotal").style.display=tipo; document.getElementById("aguardeTotal1").style.display=tipo; } //abre a paleta de cores function cor(obj) {window.parent.i3GEO.util.abreCor("wdocai",obj);} //mostra uma nova opcao quando o usuário clica em proximo ou anterior. //É utilizado nos menus de análise //i3geo.util.proximoAnterior // function mostraOpcao(anterior,proxima,texto,idatual) { if(document.getElementById(idatual)){document.getElementById("resultado").removeChild(document.getElementById(idatual))} if (!document.getElementById(idatual)) { var ndiv = document.createElement("div"); ndiv.id = idatual; texto += "

"; if (anterior != "") {texto += "";} if (proxima != "") {texto += "";} ndiv.innerHTML = texto+"
"; document.getElementById("resultado").appendChild(ndiv); new YAHOO.widget.Button(idatual+"anterior_",{ onclick:{fn: function(){ eval(anterior+"()"); }, lazyloadmenu:true }}); new YAHOO.widget.Button(idatual+"proxima_", {onclick:{fn: function(){ eval(proxima+"()"); }, lazyloadmenu:true }}); var i = $i(idatual+"proxima_-button"); if(i){ i.style.backgroundImage = "url('../../imagens/player_avanca.png')"; i.style.backgroundRepeat = "no-repeat"; i.style.backgroundPosition = "center center"; } var i = $i(idatual+"anterior_-button"); if(i){ i.style.backgroundImage = "url('../../imagens/player_volta.png')"; i.style.backgroundRepeat = "no-repeat"; i.style.backgroundPosition = "center center"; } } var ids = new Array("t0","t1","t2","t3","t4","t5","t6","t7"); for (i=0;i"; combo+= ""; combo += ""; combo += ""; return(combo); } //monta um combo sim-nao retornando true ou false function naosim(id) { var combo = ""; return(combo); } //monta um combo com cores para o R function combocor(id,def,s) { var combo = ""; return(combo); } // //monta combo com os itens de um unico tema //i3GEO.util.comboItens // function comboitens(id,tema,funcao,onde,nome) { if (arguments.length > 3) $i(onde).innerHTML="buscando itens..."; if (arguments.length != 5) {nome = "";} var monta = function(retorno) { if (retorno.data != undefined) { var ins = new Array(); ins.push(""); var ins = ins.join(''); var temp = {dados:ins,tipo:"dados"}; } else { var temp = {dados:'
Ocorreu um erro
',tipo:"erro"}; } eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listaitens&tema="+tema,"listaItens",monta); } // //monta checks com os itens baseado em um tema // function checkitensf(tema,funcao,onde) { if (arguments.length == 3) $i(onde).innerHTML="buscando itens..."; var monta = function(retorno) { if (retorno.data != undefined) { var ins = new Array(); ins.push(""); for (i=0;i"); ins.push(""); } ins.push("
"+retorno.data.valores[i].item+" - "+retorno.data.valores[i].nome+"
"); var ins = ins.join(''); var temp = {dados:ins,tipo:"dados"}; } else { var temp = {dados:'
Ocorreu um erro
',tipo:"erro"}; } eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listaitens&tema="+tema,"listaItens",monta); } // //monta checks com os itens baseado em um tema com os nomes em um input editável // function checkitenseditaveis(tema,funcao,onde) { if (arguments.length == 3) $i(onde).innerHTML="buscando itens..."; var monta = function(retorno) { if (retorno.data != undefined) { var ins = new Array(); ins.push(""); for (i=0;i"); ins.push(""); } ins.push("
"); var ins = ins.join(''); var temp = {dados:ins,tipo:"dados"}; } else { var temp = {dados:'
Ocorreu um erro
',tipo:"erro"}; } eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listaitens&tema="+tema,"listaItens",monta); } //monta radios com os itens baseado em um tema function radioitensf(tema,funcao,onde) { if (arguments.length == 3) $i(onde).innerHTML="buscando itens..."; var monta = function(retorno) { if (retorno.data != undefined) { var ins = new Array(); ins.push(""); for (i=0;i"); ins.push(""); } ins.push("
"+retorno.data.valores[i].item+" - "+retorno.data.valores[i].nome+"
"); var ins = ins.join(''); var temp = {dados:ins,tipo:"dados"}; } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listaitens&tema="+tema,"listaItens",monta); } //lista os valores de um item de um tema function valoresItem(tema,itemTema,funcao,onde) { if (arguments.length == 4) $i(onde).innerHTML="buscando valores..."; var monta = function(retorno) { if (retorno.data != undefined) { var ins = new Array(); for (i=0;i");} } ins.push("
"); ins.sort; var ins = ins.join(''); var temp = {dados:ins,tipo:"dados"}; } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call( g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listaregistros&unico=sim&tema="+tema+"&itemtema="+itemTema,"listaRegistros",monta); } //lista os valores de um item de um tema e monta um combo function valoresItemCombo(id,tema,itemTema,funcao,onde) { if (arguments.length == 5) $i(onde).innerHTML="buscando valores..."; var monta = function(retorno) { if (retorno.data != undefined) { var ins = new Array(); ins.push(""); var ins = ins.join(''); var temp = {dados:ins,tipo:"dados"}; } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call( g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listaregistros&unico=sim&tema="+tema+"&itemtema="+itemTema,"listaRegistros",monta); } // //monta combo com os temas de uma camada //retorna um combo com id=selCamada //retorna vazio se for tema unico // function comboCamadas(id,tema,funcao,onde) { if (arguments.length == 4) $i(onde).innerHTML="buscando temas..."; var monta = function(retorno) { if (retorno.data != undefined) { if (retorno.data.temas.length > 1) { var combot = ""; var temp = {dados:combot,tipo:"dados"}; } else {var temp = {dados:"",tipo:"mensagem"};} } else {var temp = {dados:'
Ocorreu um erro
',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listaitens&tema="+tema,"listaItens",monta); } // //monta combo com os temas que possuem seleção //retorna um combo com id=temasComSel // function comboTemasSel(id,funcao,onde) { if (arguments.length == 3) $i(onde).innerHTML="buscando temas..."; eval("funcao('
Aguarde...
')"); var monta = function(retorno) { if (retorno.data != undefined) { if (retorno.data.length > 0) { comboTemas = ""; var temp = {dados:comboTemas,tipo:"dados"}; } else {var temp = {dados:'
Nenhum tema possui seleção. Utilize a opção de seleção ou a tabela de um tema para escolher algum elemento de algum tema.
',tipo:"mensagem"};} } else {var temp = {dados:'
Ocorreu um erro
',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listatemascomsel","listaTemasComSel",monta); } // //monta combo com os temas que estão ligados //retorna um combo com id=temasLigados // //i3GEO.util function comboTemasLigados(id,funcao,onde,nome,multiplo) { if (arguments.length > 2) $i(onde).innerHTML="buscando temas..."; if (arguments.length == 3) {nome = "";} if (arguments.length < 5) {multiplo = false;} var monta = function(retorno) { if (retorno.data != undefined) { if (retorno.data.length > 0) { if(multiplo) comboTemas = ""; comboTemas += ""; for (i=0;i"+retorno.data[i].nome+"";} comboTemas += ""; var temp = {dados:comboTemas,tipo:"dados"}; } else {var temp = {dados:'
Nenhum tema está ligado.
',tipo:"mensagem"};} } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listatemas&opcao=ligados","listaTemas",monta); } // //monta combo com os temas locais //retorna um combo com id=temasLocais // function comboTemasLocais(id,funcao,onde) { if (arguments.length == 3) $i(onde).innerHTML="buscando temas locais..."; var monta = function(retorno) { if (retorno.data != undefined) { if (retorno.data.length > 0) { comboTemas = ""; var temp = {dados:comboTemas,tipo:"dados"}; } else {var temp = {dados:'
Nenhum tema local disponível.
',tipo:"mensagem"};} } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listatemaslocais","listaTemasLocais",monta); } //lista temas do tipo ponto function comboTemasPt(id,funcao,onde,selecao) { if (arguments.length == 3) { $i(onde).innerHTML="buscando temas..."; var selecao = "nao"; } if (arguments.length == 2) {var selecao = "nao";} var monta = function(retorno) { if (retorno.data != undefined) { if (retorno.data.length > 0) { comboTemas = ""; var temp = {dados:comboTemas,tipo:"dados"}; } else {var temp = {dados:'
Nenhum tema de pontos disponível.
',tipo:"mensagem"};} } else {var temp = {dados:'
Ocorreu um erro
',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listatemasTipo&tipo=ponto&selecao="+selecao,"listaTemasTipo",monta); } //lista temas do tipo poligonal function comboTemasPol(id,funcao,onde) { if (arguments.length == 3) $i(onde).innerHTML="buscando temas..."; var monta = function(retorno) { if (retorno.data != undefined) { if (retorno.data.length > 0) { comboTemas = ""; var temp = {dados:comboTemas,tipo:"dados"}; } else {var temp = {dados:'
Nenhum tema de polígonos disponível.
',tipo:"mensagem"};} } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listatemasTipo&tipo=poligono","listaTemasTipo",monta); } //lista temas do tipo poligonal //i3GEO.php.listatemasTipo function comboTemasRaster(id,funcao,onde) { if (arguments.length == 3) $i(onde).innerHTML="buscando temas..."; var monta = function(retorno) { if (retorno.data != undefined) { if (retorno.data.length > 0) { comboTemas = ""; var temp = {dados:comboTemas,tipo:"dados"}; } else {var temp = {dados:'
Nenhum tema raster disponível.
',tipo:"mensagem"};} } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listatemasTipo&tipo=raster","listaTemasTipo",monta); } // //monta checks com os temas poligonais e raster // function checkTemasPolRaster(funcao,onde) { if (arguments.length == 2) $i(onde).innerHTML="buscando temas..."; var monta = function(retorno) { if (retorno.data != undefined) { var ins = new Array(); ins.push(""); for (i=0;i"); ins.push(""); } ins.push("
"+retorno.data[i].nome+"
"); var ins = ins.join(''); var temp ={dados:ins,tipo:"dados"}; } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listatemasTipo&tipo=poligono,raster","listaTemasTipo",monta); } // //monta combo com as fontes truetype disponiveis // function comboTrueType(funcao,onde) { if (arguments.length == 2) $i(onde).innerHTML="buscando fontes..."; var monta = function(retorno) { if (retorno.data != undefined) { var lista = retorno.data.split(","); var ins = ""; var temp = {dados:ins,tipo:"dados"}; } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listatruetype","listaTrueType",monta); } //monta radios com a lista de codigos epsg function radioepsg(funcao,onde) { if (arguments.length == 2) $i(onde).innerHTML="buscando..."; var monta = function(retorno) { if (retorno.data != undefined) { var ins = new Array(); ins.push(""); ins.push(""); ins.push(""); for (i=1;i"); ins.push(""); } ins.push("
"+retorno.data[0].nome+"
"+retorno.data[i].nome+"
"); var ins = ins.join(''); var temp = {dados:ins,tipo:"dados"}; } else {var temp = {dados:'
Ocorreu um erro',tipo:"erro"};} eval("funcao(temp)"); } var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=listaEpsg","listaEpsg",monta); } //remove os acentos de uma frase ou palavra function removeAcentos(palavra) { var re = /ã|á|à|â/gi; palavra = palavra.replace(re,"a"); var re = /é/gi; palavra = palavra.replace(re,"e"); var re = /í/gi; palavra = palavra.replace(re,"i"); var re = /ó|õ/gi; palavra = palavra.replace(re,"o"); var re = /ç/gi; palavra = palavra.replace(re,"c"); var re = /ú/gi; palavra = palavra.replace(re,"u"); return(palavra); } //Troca os acentos de uma frase por entidades html. function htmlAcentos(palavra) { var re = /ã/gi; palavra = palavra.replace(re,"*atilde|"); var re = /á/gi; palavra = palavra.replace(re,"*aacute|"); var re = /â/gi; palavra = palavra.replace(re,"*acirc|"); var re = /õ/gi; palavra = palavra.replace(re,"*otilde|"); var re = /ó/gi; palavra = palavra.replace(re,"*oacute|"); var re = /ô/gi; palavra = palavra.replace(re,"*ocirc|"); var re = /é/gi; palavra = palavra.replace(re,"*eacute|"); var re = /ê/gi; palavra = palavra.replace(re,"*ecirc|"); var re = /í/gi; palavra = palavra.replace(re,"*iacute|"); var re = /ú/gi; palavra = palavra.replace(re,"*uacute|"); var re = /ç/gi; palavra = palavra.replace(re,"*ccedil|"); var re = /Ã/gi; palavra = palavra.replace(re,"*Atilde|"); var re = /Á/gi; palavra = palavra.replace(re,"*Aacute|"); var re = /Â/gi; palavra = palavra.replace(re,"*Acirc|"); var re = /Õ/gi; palavra = palavra.replace(re,"*otilde|"); var re = /Ó/gi; palavra = palavra.replace(re,"*Oacute|"); var re = /Ô/gi; palavra = palavra.replace(re,"*Ocirc|"); var re = /É/gi; palavra = palavra.replace(re,"*Eacute|"); var re = /Ê/gi; palavra = palavra.replace(re,"*Ecirc|"); var re = /Í/gi; palavra = palavra.replace(re,"*Iacute|"); var re = /Ú/gi; palavra = palavra.replace(re,"*Uacute|"); var re = /Ç/gi; palavra = palavra.replace(re,"*Ccedil|"); return(palavra); } //rgb aleatorio //i3GEO.util.randomRGB function randomRGB() { var v = Math.random(); var r = parseInt(255*v); var v = Math.random(); var g = parseInt(255*v); var v = Math.random(); var b = parseInt(255*v); return (r+","+g+","+b); } //pega os parametros da url e do mapa e seta variaveis globais function parametrosURL() { try{ if(!window.parent.i3GEO){g_locaplic = "../..";} else{ if(window.parent.i3GEO.configura) g_locaplic = window.parent.i3GEO.configura.locaplic; //localizacao da aplicacao if(window.parent.i3GEO.parametros) g_r = window.parent.i3GEO.parametros.r; } var temp = (window.location.href).split("tema="); if (temp[1]) {tema = (temp[1].split("&"))[0];} }catch(e){} } //faz o zoom no mapa para uma extensao function zoomf(ext) { window.parent.objaguarde.abre("i3GEO.atualiza",window.parent.$trad("o1")); //faz um zoom na ocorrencia var p = g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=mudaext&ext="+ext; var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(p,"mudaExtensao",window.parent.remapaf); } //localiza um ponto no mapa no centro de uma extensao function pinf(ext) { window.parent.objaguarde.abre("i3GEO.atualiza",window.parent.$trad("o1")); // mostra um ponto vermelho na ocorrência valores = ext.split(" "); vx = (valores[0] * 1) + ((((valores[0] * -1) - (valores[2] * -1)) / 2) * 1); vy = (valores[1] * 1) + ((((valores[1] * -1) - (valores[3] * -1)) / 2) * 1); var p = g_locaplic+"/classesphp/mapa_controle.php?g_sid="+g_sid+"&funcao=zoomponto&pin=pin&xy="+ vx + " " + vy; var cp = new cpaint(); //cp.set_debug(2) cp.set_response_type("JSON"); cp.call(p,"zoomPonto",window.parent.i3GEO.atualiza); } function convdmsddf(g,m,s) { cd = $i(g).value; cm = $i(m).value; cs = $i(s).value; var sinal = 'positivo'; if (cd < 0) { cd = cd * -1; sinal = 'negativo'; } spm = cs / 3600; mpg = cm / 60; var dd = (cd * 1) + (mpg * 1) + (spm * 1); if (sinal == 'negativo') {dd = dd * -1;} return dd; } //veja i3geo.util function mensagemAjuda(onde,texto) { var local = "../.."; try{var local = window.parent.i3GEO.configura.locaplic;}catch(e){} var ins = "
"; ins += '
'; ins += '
'; if (texto == "") {var texto = $i(onde).innerHTML;} ins += texto; ins += '
'; if (onde != "") {$i(onde).innerHTML = ins;} else {return(ins);} } function mensagemOpcao(onde,texto) { var ins = "
"; ins += '
'; ins += '
'; if (texto == "") {var texto = $i(onde).innerHTML;} ins += texto; ins += '
'; if (onde != "") {$i(onde).innerHTML = ins;} else {return(ins);} } function ativaGuias() { //ajusta as guias da versão antiga do YUI //pega o elemento onde estão os tabs for(g=0;g<12;g++) { if ($i("guia"+g)) var gpai = $i("guia"+g).parentNode; } if($i("guiasYUI")){return;} gpai.id = "guiasYUI"; gpai.className = "yui-navset"; var ins = '"; gpai.innerHTML = ins; for(g=0;g<12;g++){ var guia = $i("guia"+g); } } //incluido em i3GEO.guias.mostraGuiaFerramenta function mostraGuia(guia,namespace) { if(arguments.length == 1) {var namespace = "guia";} for(g=0;g<12;g++) { if ($i(namespace+g+"obj")){ $i(namespace+g+"obj").style.display="none"; } } if ($i(guia+"obj")){ $i(guia+"obj").style.display="block"; } } /* Function: protocolo Retorna o protocolo utilizado na url. */ function protocolo() { var u = window.location.href; var u = u.split(":"); return (u[0]); }