diff --git a/classesjs/classe_util.js b/classesjs/classe_util.js index 00aee85..9744b27 100644 --- a/classesjs/classe_util.js +++ b/classesjs/classe_util.js @@ -14,16 +14,16 @@ /** * Licença - * + * * 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 ADEQUACAO 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 @@ -35,41 +35,41 @@ if (typeof (i3GEO) === 'undefined') { } /** * Constant: navm - * + * * Verdadeiro (true) se o navegador for o Internet Explorer - * + * * Tipo: - * + * * {boolean} */ navm = false; /** * Constant: navn - * + * * Verdadeiro (true) se o navegador for o Firefox - * + * * Tipo: - * + * * {boolean} */ navn = false; /** * Constant: chro - * + * * Verdadeiro (true) se o navegador for o Chrome - * + * * Tipo: - * + * * {boolean} */ chro = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; /** * Constant: opera - * + * * Verdadeiro (true) se o navegador for o Opera - * + * * Tipo: - * + * * {boolean} */ opera = navigator.userAgent.toLowerCase().indexOf('opera') > -1; @@ -84,10 +84,10 @@ if (opera === true) { } /** * Nome da ultima operacao que foi executada. (depreciado) - * + * * Dependendo do tipo de operacao sao aplicadas as atualizacoes necessarias aos componentes do mapa. Por exemplo, redesenha o corpo do mapa, * atualiza a lista de temas, etc. - * + * * Essas operacoes sao controladas pela funcao ajaxiniciaparametros. */ g_operacao = ""; @@ -99,15 +99,15 @@ g_tipoacao = "zoomli"; /** * Function: $i - * + * * Obtem um elemento DOM a partir de seu id - * + * * Parametro: - * + * * {String} - ID do elemento. - * + * * Returns: - * + * * {Object} */ $i = function(id) { @@ -115,9 +115,9 @@ $i = function(id) { }; /** * Function: Array.remove() - * + * * Extende os metodos de um objeto Array, permitindo remover um elemento. - * + * */ Array.prototype.remove = function(s) { try { @@ -132,9 +132,9 @@ Array.prototype.remove = function(s) { }; /** * Function: Array.getUnique() - * + * * Extende os metodos de um objeto Array, retorna um array com valores unicos - * + * */ Array.prototype.getUnique = function() { var u = {}, a = []; @@ -151,27 +151,27 @@ i3GEO.util = { /** * Elementos IMG criados na funcao criaPin - * + * * Tipo: {Array} */ PINS : [], /** * Elementos DIV criados na funcao criaBox - * + * * Tipo: {Array} */ BOXES : [], /** * Function: trim - * + * * Implementa o metodo trim para navegadores sem suporte a essa funcao - * + * * Parametros: - * + * * {String} - * + * * Return: - * + * * {String} */ trim : function(s) { @@ -179,15 +179,15 @@ i3GEO.util = }, /** * Function: escapeURL - * + * * Converte uma string em uma url valida - * + * * Parametros: - * + * * {String} - url que sera convertida - * + * * Return: - * + * * {String} */ escapeURL : function(sUrl) { @@ -203,15 +203,15 @@ i3GEO.util = }, /** * Function: insereCookie - * + * * Cria um novo cookie. - * + * * Parametros: - * + * * {String} -Nome do cookie. - * + * * {String} - Valor do cookie - * + * * {numerico} - Dias que levara para expirar */ insereCookie : function(nome, valor, expira) { @@ -224,15 +224,15 @@ i3GEO.util = }, /** * Function: pegaCookie - * + * * Pega o valor de um cookie. - * + * * Parametros: - * + * * {String} - Nome do cookie. - * + * * Returns: - * + * * valor do cookie */ pegaCookie : function(nome) { @@ -250,15 +250,15 @@ i3GEO.util = }, /** * Function: listaChaves - * + * * Lista as chaves de um objeto que forem true. - * + * * Parametro: - * + * * {Object} - * + * * Return: - * + * * array com as chaves. */ listaChaves : function(obj) { @@ -273,15 +273,15 @@ i3GEO.util = }, /** * Function: listaTodasChaves - * + * * Lista as chaves de um objeto - * + * * Parametros: - * + * * {Object} - * + * * Return: - * + * * array com as chaves. */ listaTodasChaves : function(obj) { @@ -294,25 +294,25 @@ i3GEO.util = }, /** * Function: arvore - * + * * Cria uma arvore com base em um objeto contendo as propriedades. - * + * * No objeto com as propriedades, se "url" for igual a "", sera incluido o texto original definido em "text". - * + * * Caso contrario, o valor de "text" sera traduzido com $trad(). Nesse caso, utilize em "text" o codigo definido em dicionario.js - * + * * Parametros: - * + * * {String} - cabecalho da arvore - * + * * {String} - nome do id doelemento que contera a arvore - * + * * {Object} - objeto contendo os parametros, exemplo - * + * * g_listaPropriedades = { - * + * * "propriedades": [ { text: "p2", url: "javascript:tipoimagem()" } ]} - * + * */ arvore : function(titulo, onde, obj) { var arvore, root, tempNode, d, criaNo; @@ -363,15 +363,15 @@ i3GEO.util = }, /** * Function: removeAcentos - * + * * Remove acentos de uma palavra ou frase - * + * * Parametros: - * + * * {String} - palavra - * + * * Return: - * + * * {String} */ removeAcentos : function(str) { @@ -433,11 +433,11 @@ i3GEO.util = }, /** * Function: protocolo - * + * * Obtem o protocolo utilizado na URL atual - * + * * Return: - * + * * {String} - protocolo */ protocolo : function() { @@ -447,15 +447,15 @@ i3GEO.util = }, /** * Function: pegaPosicaoObjeto - * + * * Retorna a posicao x,y de um objeto em relacao a tela do navegador - * + * * Parametros: - * + * * {Object} - objeto dom - * + * * Return: - * + * * {Array} - array com a posicao [x,y] */ pegaPosicaoObjeto : function(obj) { @@ -487,15 +487,15 @@ i3GEO.util = }, /** * Function: pegaElementoPai - * + * * Pega o elemento pai de um elemento clicado - * + * * Parametros: - * + * * {Objeto} - elemento do DOM - * + * * Return: - * + * * {Node} - objeto DOM */ pegaElementoPai : function(e) { @@ -522,21 +522,21 @@ i3GEO.util = }, /** * Function: mudaCursor - * + * * Altera o cursor do ponteiro do mouse. - * + * * Os cursores disponiveis sao definidos por default em classe_configura.js - * + * * Exemplo i3GEO.util.mudaCursor("","crosshair") - * + * * Parametros: - * + * * {i3GEO.configura.cursores} - objeto JSON com as URIs de cada cursor (veja i3GEO.configura.cursores) - * + * * {String} - tipo de cursor disponivel em cursores - * + * * {String} - id do objeto que tera o estilo alterado para o cursor desejado - * + * * {String} - onde esta instalado o i3Geo */ mudaCursor : function(cursores, tipo, idobjeto, locaplic) { @@ -586,11 +586,11 @@ i3GEO.util = }, /** * Cria um elemento div na pagina atual. - * + * * Esse elemento pode ser utilizado para desenhar retangulos sobre o mapa com base em coordenadas de tela - * + * * Parametros: - * + * * {String} - id do elemento que sera criado. Por default, sera 'boxg' */ criaBox : function(id) { @@ -616,7 +616,7 @@ i3GEO.util = }, /** * Esconde os BOXES com IDs registrados em i3GEO.util.BOXES - * + * * Os ids sao criado pela funcao criaBox */ escondeBox : function() { @@ -630,25 +630,25 @@ i3GEO.util = }, /** * Function: criaPin - * + * * Cria um elemento imagem com posição fixa na pagina atual. - * + * * A imagem não é deslocada junto com o mapa - * + * * Parametros: - * + * * {String} - (opcional) id do elemento que sera criado. Por default, sera 'boxpin' - * + * * {URL} - (opcional) endereco da imagem - * + * * {String} - (opcional) largura da imagem - * + * * {String} - (opcional) altura da imagem - * + * * funcao que sera executada no evento mouseover - * + * * Retorno: - * + * * array [boolean,obj] - indica se foi criado ou se ja existia | objeto criado */ criaPin : function(id, imagem, w, h, mouseover, onde) { @@ -699,19 +699,19 @@ i3GEO.util = }, /** * Function: posicionaImagemNoMapa - * + * * Posiciona uma imagem no mapa no local onde o mouse esta posicionado sobre o mapa - * + * * Parametros: - * + * * {string} - id do elemento que sera posicionado - * + * * {posicao do pixel} - se nao for definida ou for vazia, sera utilizado o valor de objposicaocursor.telax - * + * * {posicao do pixel} - se nao for definida ou for vazia, sera utilizado o valor de objposicaocursor.telay - * + * * Return: - * + * * array[top,left] - valores em pixel da posicao calculada da imagem */ posicionaImagemNoMapa : function(id, x, y) { @@ -733,9 +733,9 @@ i3GEO.util = }, /** * Function: escondePin - * + * * Esconde os PINS com IDs registrados em i3GEO.util.PINS - * + * * Os ids sao criados pela funcao criaPin */ escondePin : function() { @@ -769,27 +769,27 @@ i3GEO.util = }, /** * Function $inputText ou nome curto $inputText - * + * * Cria um elemento html do tipo input text com formatação especial. - * + * * Parametros: - * + * * {String} - id do elemento pai do input - * + * * {Integer} - largura em pixel - * + * * {String} - id do objeto input - * + * * {String} - texto que vai no title - * + * * {Integer} - numero de digitos do input - * + * * {String} - valor do input - * + * * {String} - name do input - * + * * {String} - (opcional) string que sera inserida no evento "onchange" - * + * */ $inputText : function(idPai, larguraIdPai, idInput, titulo, digitos, valor, nome, onch) { if (arguments.length === 6) { @@ -825,15 +825,15 @@ i3GEO.util = }, /** * Function: $top ou nome curto $top - * + * * Muda a posicao (superior) de um objeto tanto no IE como no Firefox. - * + * * Exemplo: $top("imagem",100) - * + * * Parametros: - * + * * {string} - identificador do objeto - * + * * {numeric} - posicao em relacao ao topo. */ $top : function(id, valor) { @@ -847,15 +847,15 @@ i3GEO.util = }, /** * Function: $left ou nome curto $left - * + * * Muda a posicao (esquerda) de um objeto tanto no IE como no Firefox. - * + * * Exemplo: $left("imagem",100) - * + * * Parametros: - * + * * {string} - identificador do objeto - * + * * {numeric} - posicao em relacao a esquerda. */ $left : function(id, valor) { @@ -869,11 +869,11 @@ i3GEO.util = }, /** * Function: adicionaSHP - * + * * Inclui um arquivo shapefile no mapa atual como uma nova camada - * + * * Parametros: - * + * * {String} - caminho completo do shapefile */ adicionaSHP : function(path) { @@ -886,15 +886,15 @@ i3GEO.util = }, /** * Function: abreCor - * + * * Abre a janela flutuante para escolha de uma cor - * + * * Parametros: - * + * * {String} - id do conteudo da janela flutuante que chamou a funcao. Pode ser "" caso elemento exista em document - * + * * {String} - id do elemento que recebera os valores da cor selecionada - * + * * {String} - opcional pode ser definido como rgb,rgbSep (separado por espacos em branco) ou hex indicando o tipo de retorno da cor */ abreCor : function(janelaid, elemento, tipo) { @@ -956,15 +956,15 @@ i3GEO.util = }, /** * Function: aparece - * + * * Aplica efeito de aparecimento suave de um objeto - * + * * Parametros: - * + * * {String} - id do objeto - * + * * {Integer} - tempo em milesegundos que levara o efeito - * + * * {Integer} - intervalo entre uma imagem e outra */ aparece : function(id, tempo, intervalo) { @@ -1012,17 +1012,17 @@ i3GEO.util = }, /** * Function: desaparece - * + * * Aplica efeito de desaparecimento suave de um objeto - * + * * Parametros: - * + * * {String} - id do objeto - * + * * {Integer} - tempo em milesegundos que levara o efeito - * + * * {Integer} - intervalo entre uma imagem e outra - * + * * {Boolean} - remove ou nao o objeto no final */ desaparece : function(id, tempo, intervalo, removeobj) { @@ -1079,17 +1079,17 @@ i3GEO.util = }, /** * Function: wkt2ext - * + * * Calcula a extensao geografica de uma geometria fornecida no formato WKT - * + * * Parametros: - * + * * {String} - geometria no formato wkt - * + * * {String} - tipo de geometria (polygon,point,line) - * + * * Return: - * + * * {String} - extensao geografica (xmin ymin xmax ymax) */ wkt2ext : function(wkt, tipo) { @@ -1133,9 +1133,9 @@ i3GEO.util = }, /** * Function: sortNumber - * + * * Ordena um array contendo numeros. Deve ser usado como parametro do metodo "sort", exemplo - * + * * y.sort(i3GEO.util.sortNumber), onde y e um array de numeros */ sortNumber : function(a, b) { @@ -1143,13 +1143,13 @@ i3GEO.util = }, /** * Function: getScrollerWidth - * + * * Calcula o tamanho da barra de rolagem, permitindo calcular o tamanho correto da area util do navegador - * + * * http://www.fleegix.org/articles/2006-05-30-getting-the-scrollbar-width-in-pixels - * + * * Return: - * + * * largura */ getScrollerWidth : function() { @@ -1183,13 +1183,13 @@ i3GEO.util = }, /** * Function: getScrollHeight - * + * * Calcula o tamanho vertical do browser - * + * * http://w3schools.invisionzone.com/index.php?showtopic=45977 - * + * * Return: - * + * * altura */ getScrollHeight : function() { @@ -1207,17 +1207,17 @@ i3GEO.util = }, /** * Function: scriptTag - * + * * Insere um javascript no documento HTML - * + * * Parametros: - * + * * {String} - endereco do JS - * + * * {String} ou {function} - funcao que sera executada ao ser carregado o script (pode ser "") - * + * * {string} - id do elemento script que sera criado - * + * * {boolean} - mostra ou nao a janela de aguarde */ scriptTag : function(js, ini, id, aguarde) { @@ -1280,11 +1280,11 @@ i3GEO.util = }, /** * Function: removeScriptTag - * + * * Remove um javascript no documento HTML - * + * * Parametros: - * + * * {string} - id do elemento script que sera removido */ removeScriptTag : function(id) { @@ -1304,17 +1304,17 @@ i3GEO.util = }, /** * Function: verificaScriptTag - * + * * Verifica se um javascript esta carregado no documento. - * + * * util para verificar se existe alguma ferramenta ativa ao procurar por i3GEOF. - * + * * Parametros: - * + * * {string} - nome do javascript - * + * * Retorno: - * + * * {boolean} */ verificaScriptTag : function(texto) { @@ -1341,13 +1341,13 @@ i3GEO.util = }, /** * Function: mensagemAjuda - * + * * Formata uma mensagem de texto com icone de ? - * + * * Parametros: - * + * * {String} - id do elemento que recebera a mensagem - * + * * {String} - texto da mensagem */ mensagemAjuda : function(onde, texto) { @@ -1369,11 +1369,11 @@ i3GEO.util = }, /** * Function: randomRGB - * + * * Gera uma cor RGB de forma aleatoria - * + * * Return: - * + * * {String} - r,g,b */ randomRGB : function() { @@ -1386,15 +1386,15 @@ i3GEO.util = }, /** * Function: rgb2hex - * + * * Converte uma cor RGB para HEX - * + * * Parametro: - * + * * {String} - r,g,b - * + * * Return: - * + * * {String} */ rgb2hex : function(str) { @@ -1407,29 +1407,29 @@ i3GEO.util = }, /** * Function: comboTemas - * + * * Cria um combo (caixa de selesao) com a lista de temas existentes no mapa e de determinado tipo - * + * * Parametros: - * + * * {String} - id do elemento select que sera criado - * + * * funcao {Function} - funcao que sera executada ao terminar a montagem do combo. Essa funcao recebera como parametros um Array * associativo contendo os dados em HTML gerados e o tipo de resultado. P.ex.: {dados:comboTemas,tipo:"dados"} tipo sera uma string * que pode ser "dados"|"mensagem"|"erro" indicando o tipo de retorno. - * + * * {String} - id do elemento HTML que recebera o combo. e utilizado apenas para inserir uma mensagem de aguarde. - * + * * {String} - valor que sera incluido no parametro "name" do elemento "select". - * + * * {Booleano} - indica se o combo permite selecoes multiplas - * + * * {String} - Tipo de temas que serao incluidos no combo ligados|selecionados|raster|pontosSelecionados|pontos|linhaDoTempo - * + * * {string} - estilo (css) que sera aplicado ao combo - * + * * {boolean} - (opcional) indica se o combo sera montado com o estilo YUI (menu) - * + * * {boolean} - (opcional) inclui um option vazio */ comboTemas : function(id, funcao, onde, nome, multiplo, tipoCombo, estilo, yui, incluiVazio) { @@ -1619,27 +1619,27 @@ i3GEO.util = }, /** * Function: checkCombo - * + * * Cria uma lista com check box generico baseado em um objeto com os dados - * + * * Parametros: - * + * * {String} - id do elemento select que sera criado - * + * * {Array} - array com os nomes - * + * * {Array} - array com os valores - * + * * {objeto} - objeto contendo name e value, exemplo {"nome":"a","valor":"1"} - * + * * {string} - string inserida no item style do container do combo - * + * * {string} - string inserida no evento onclick - * + * * {array} - (opcional) array com os ids de cada checkbox - * + * * {array} - (opcional) array com os ids dos elementos marcados como selecionados - * + * */ checkCombo : function(id, nomes, valores, estilo, funcaoclick, ids, idschecked) { var temp, i, combo = "", n = valores.length; @@ -1693,25 +1693,25 @@ i3GEO.util = }, /** * Function: checkTemas - * + * * Cria uma lista com check box de temas existentes no mapa e de determinado tipo - * + * * Parametros: - * + * * {String} - id do elemento select que sera criado - * + * * funcao {Function} - funcao que sera executada ao terminar a montagem do combo. Essa funcao recebera como parametros um Array * associativo contendo os dados em HTML gerados e o tipo de resultado. P.ex.: {dados:comboTemas,tipo:"dados"} tipo sera uma string * que pode ser "dados"|"mensagem"|"erro" indicando o tipo de retorno. - * + * * {String} - id do elemento HTML que recebera o combo. e utilizado apenas para inserir uma mensagem de aguarde. - * + * * {String} - valor que sera incluido no parametro "name" do elemento "select". - * + * * {String} - Tipo de temas que serao incluidos na lista ligados|selecionados|raster|pontosSelecionados|pontos|polraster - * + * * {string} - Prefixo que sera usado no id de cada elemento - * + * * {numeric} - tamanho dos elementos input editaveis */ checkTemas : function(id, funcao, onde, nome, tipoLista, prefixo, size) { @@ -1824,25 +1824,25 @@ i3GEO.util = }, /** * Function: comboItens - * + * * Cria um combo (caixa de selecao) com a lista de itens de um layer - * + * * Parametros: - * + * * {String} - id do elemento select que sera criado - * + * * {String} - codigo do tema (layer) - * + * * {Function} - funcao que sera executada ao terminar a montagem do combo. Essa funcao recebera como parametros um Array associativo * contendo os dados em HTML gerados e o tipo de resultado. P.ex.: {dados:comboTemas,tipo:"dados"} tipo sera uma string que pode ser * "dados"|"mensagem"|"erro" indicando o tipo de retorno. - * + * * {String} - id do elemento HTML que recebera o combo. e utilizado apenas para inserir uma mensagem de aguarde. - * + * * {String} - valor que sera incluido no parametro "name" do elemento "select". - * + * * {string} sim|nao indica se para os nomes dos itens sera usado o alias (default= sim) - * + * * {string} - estilo CSS em linha */ comboItens : function(id, tema, funcao, onde, nome, alias, estilo) { @@ -1899,21 +1899,21 @@ i3GEO.util = }, /** * Function: comboValoresItem - * + * * Cria uma caixa de selecao com os valores de um item de um tema - * + * * Parametros: - * + * * {String} - id do elemento select que sera criado - * + * * {String} - codigo do tema (layer) - * + * * {String} - nome do item - * + * * {Function} - funcao que sera executada ao terminar a montagem do combo. Essa funcao recebera como parametros um Array associativo * contendo os dados em HTML gerados e o tipo de resultado. P.ex.: {dados:comboTemas,tipo:"dados"} tipo sera uma string que pode ser * "dados"|"mensagem"|"erro" indicando o tipo de retorno. - * + * * {String} - id do elemento HTML que recebera o combo. e utilizado apenas para inserir uma mensagem de aguarde. */ comboValoresItem : function(id, tema, itemTema, funcao, onde) { @@ -1953,13 +1953,13 @@ i3GEO.util = }, /** * Function: comboFontes - * + * * Cria um combo (caixa de selecao) com a lista fontes de texto disponiveis - * + * * Parametros: - * + * * {String} - id do elemento select que sera criado - * + * * {String} - id do elemento HTML que recebera o combo. e utilizado apenas para inserir uma mensagem de aguarde. */ comboFontes : function(id, onde) { @@ -1982,17 +1982,17 @@ i3GEO.util = }, /** * Function: comboSimNao - * + * * Cria uma caixa de selecao com as palavras sim e nao - * + * * Parametros: - * + * * {String} - id do elemento select que sera criado - * + * * {string} - qual valor estara selecionado sim|nao - * + * * Return: - * + * * {string} */ comboSimNao : function(id, selecionado) { @@ -2013,22 +2013,22 @@ i3GEO.util = }, /** * Function: checkItensEditaveis - * + * * Cria uma lista de elementos do tipo input com textos editaveis contendo a lista de itens de um tema. - * + * * Parametros: - * + * * {string} - codigo do layer existente no mapa - * + * * {function} - funcao que sera executada para montar a lista. Essa funcao recebera como parametro um array do tipo * {dados:ins,tipo:"dados"} onde ins e um array com as linhas e tipo e o tipo de resultado, que pode ser "dados"|"erro" - * + * * {string} - id do elemento que recebera a mensagem de aguarde - * + * * {numeric} - tamanho dos elementos input editaveis - * + * * {string} - Prefixo que sera usado no id de cada elemento - * + * * {sim|nao} - Indica se a colouna que permite indicar a ordem das escolhas sera ou nao incluida */ checkItensEditaveis : function(tema, funcao, onde, size, prefixo, ordenacao) { @@ -2092,18 +2092,18 @@ i3GEO.util = }, /** * Function: radioEpsg - * + * * Cria uma lista de codigos EPSG para o usuario escolher um deles. - * + * * A lista e mostrada como uma serie de elementos do tipo radio com "name" igual ao prefixo mais a palavra EPSG - * + * * Parametros: - * + * * {function} - funcao que sera executada para montar a lista. Essa funcao recebera como parametro um array do tipo * {dados:ins,tipo:"dados"} onde ins e um array com as linhas e tipo e o tipo de resultado, que pode ser "dados"|"erro" - * + * * {string} - id do elemento que recebera a mensagem de aguarde - * + * * {string} - Prefixo que sera usado no name de cada elemento */ radioEpsg : function(funcao, onde, prefixo) { @@ -2144,17 +2144,17 @@ i3GEO.util = }, /** * Function: comboEpsg - * + * * Cria uma lista de codigos EPSG para o usuario escolher um deles. - * + * * Parametros: - * + * * {string} - id que sera atribuido ao combo - * + * * {string} - id do elemento HTML que recebera o combo - * + * * {string} - nome da funcao que sera inserida em onChange - * + * * {string} - valor default do combo */ comboEpsg : function(idCombo, onde, funcaoOnChange, valorDefault) { @@ -2180,24 +2180,24 @@ i3GEO.util = }, /** * Function: proximoAnterior - * + * * Cria uma sequencia de opcoes com botao de anterior e proximo. e utilizado principalmente pelas ferramentas de analise espacial, * onde o usuario segue uma sequencia de operacoes de escolha de parametros. - * + * * Parametros: - * + * * {String} - nome da funcao que e executada para voltar a tela anterior. Pode ser "". - * + * * {String} - nome da funcao que e executada para avancar para a proxima tela. Pode ser "". - * + * * {String} - texto que compora a tela atual - * + * * {String} - id do elemento DIV que sera criado para inserir o conteudo definido em 'texto" - * + * * {String} - id do elemento DIV ja existente que recebera as telas (texto). - * + * * {boolean} - mantem ou nao no container o texto ja produzido - * + * * {string} - (opcional) id onde os botoes serao colocados */ proximoAnterior : function(anterior, proxima, texto, idatual, container, mantem, onde) { @@ -2286,25 +2286,25 @@ i3GEO.util = }, /** * Function: dialogoFerramenta - * + * * Atalho para abrir a janela de dialogo de uma ferramenta padrao - * + * * O script adicionado tera como ID "i3GEOF."+nome+"_script" - * + * * Se a funcao de inicializacao nao for definida em nomefuncao, sera utilizado "i3GEOF."+nome+".criaJanelaFlutuante();" - * + * * Se o script ja estiver carregado, a funcao de inicializacao sera executada - * + * * Parametros: - * + * * {string} - mensagem que sera enviada ao console no caso do Firefox - * + * * {string} - diretorio em i3geo/ferramentas - * + * * {string} - nome da classe da ferramenta - * + * * {string} - nome do arquivo javascript - * + * * {string} ou {function} - nome da funcao do javascript carregado que sera executado apos a carga, exemplo: * i3GEOF.locregiao.abreComFiltro() */ @@ -2330,17 +2330,17 @@ i3GEO.util = }, /** * Function: intersectaBox - * + * * Verifica se um retangulo esta dentro de outro retangulo - * + * * Parametros: - * + * * {string} - retangulo que sera verificado - * + * * {string} - retangulo de referencia - * + * * Return: - * + * * boolean */ intersectaBox : function(box1, box2) { @@ -2392,16 +2392,16 @@ i3GEO.util = }, /** * Function: abreColourRamp - * + * * Abre a janela flutuante para escolha de um degrade de cores - * + * * Parametros: - * + * * {String} - id do conteudo da janela flutuante que chamou a funcao. Pode ser "" caso o 'elemento' exista em window.document - * + * * {String} - id do elemento HTML (um input por exemplo) que recebera os valores da cor selecionada. O evento 'onchange' desse * elemento sera acionado quando o botao aplicar for clicado - * + * * {numerico} - numero de cores default ao abrir o seletor de cores */ abreColourRamp : function(janelaid, elemento, ncores,temaSel) { @@ -2496,11 +2496,11 @@ i3GEO.util = }, /** * Tenta identificar onde os JS do i3Geo estao localizados - * + * * Aplica o resultado a variavel i3GEO.configura.locaplic - * + * * Return: - * + * * {string} - url onde esta instalado o i3geo */ localizai3GEO : function() { @@ -2528,15 +2528,15 @@ i3GEO.util = }, /** * Function: removeChild - * + * * Remove um filho de um elemento DOM - * + * * Pode-se especificar o pai e o filho a ser removido ou simplesmente o ID do no que se quer remover - * + * * Parametros: - * + * * {string} - id do elemento que sera removido (filho) - * + * * {node} - (opcional) node (DOM) que contem o elemento. Se nao for definido, sera obtido o parent de id */ removeChild : function(id, el) { @@ -2550,36 +2550,39 @@ i3GEO.util = }, /** * Function: defineValor - * + * * Aplica um valor a uma propriedade de um elemento - * + * * Parametros: - * + * * {string} - id do elemento que sera removido (filho) - * + * * {string} - propriedade que recebera o valor - * + * * {string} - valor que sera aplicado */ defineValor : function(id, prop, valor) { try { - $i(id)[prop] = valor; + var p = $i(id); + if(p && p[prop]){ + p[prop] = valor; + } } catch (e) { } }, /** * Function: in_array - * + * * Procura a ocorrencia de um elemento em um array - * + * * Parametros: - * + * * {string} - o que sera procurado - * + * * {array} - array - * + * * Return: - * + * * {boolean} */ in_array : function(x, matriz) { @@ -2603,17 +2606,17 @@ i3GEO.util = }, /** * Function: multiStep - * + * * Implementa a tecnica de particionamento para execussao de funcoes no modo assincrono - * + * * Conforme pagina 144 do livro "Javascript de alto desempenho, Nicholas Zakas - * + * * Parametros: - * + * * {array} - funcoes que serao executadas - * + * * {array} - array de arrays com os argumentos de cada funcao - * + * * {function} - funcao que sera executada ao terminar os processos */ multiStep : function(steps, args, callback) { @@ -2630,11 +2633,11 @@ i3GEO.util = }, /** * Function: tamanhoBrowser - * + * * Calcula o tamanho da area util do navegador considerando-se as propriedades nativas do objeto window - * + * * Return: - * + * * {[w,h]} */ tamanhoBrowser : function() { @@ -2664,13 +2667,13 @@ i3GEO.util = }, /** * Function: detectaTablet - * + * * Verifica se esta em uso um dispositivo do tipo tablet - * + * * Se for detectado, utiliza a interface alternativa definida em i3GEO.Interface.ALTTABLET - * + * * A deteccao e feita com base em i3geo/pacotes/mobileesp/mdetect.js - * + * */ detectaTablet : function() { var p, c = DetectaMobile("DetectTierTablet"); @@ -2685,13 +2688,13 @@ i3GEO.util = }, /** * Function: detectaMobile - * + * * Verifica se esta em uso um dispositivo do tipo movel - * + * * Se for detectado, utiliza a interface alternativa definida em i3GEO.Interface.ALTTABLET - * + * * A deteccao e feita com base em i3geo/pacotes/mobileesp/mdetect.js - * + * */ detectaMobile : function() { var p, c = DetectaMobile("DetectMobileLong"); @@ -2706,9 +2709,9 @@ i3GEO.util = }, /** * Function: calculaDPI - * + * * Calcula o valor de DPI do monitor. - * + * * O valor e aproximado e utilizado principalmente na interface OpenLayers */ calculaDPI : function() { @@ -2728,7 +2731,7 @@ i3GEO.util = }, /** * Function: ajustaDocType - * + * * Ajusta o DOCTYPE do HTML para funcionar com CSS3 */ ajustaDocType : function() { @@ -2749,7 +2752,7 @@ i3GEO.util = }, /** * Function: versaoNavegador - * + * * Retorna algumas versoes de navegador */ versaoNavegador : function() { @@ -2763,18 +2766,18 @@ i3GEO.util = }, /** * Function: decimalPlaces - * + * * Arredonda um numero - * + * * Obtido de - * + * * http://stackoverflow.com/questions/4868556/how-do-i-stop-parsefloat-from-stripping-zeroes-to-right-of-decimal/4868718#4868718 - * - * + * + * * Parameters: - * + * * {numer} - numero que sera arredondado - * + * * {number} - numero de casas decimais */ decimalPlaces : function(f, l) { @@ -2797,19 +2800,19 @@ i3GEO.util = }, /** * Function: ajaxGet - * + * * Faz uma requisição ao servidor por meio de AJAX - * + * * A função de processamento do resultado irá receber um objeto JSON como parâmetro - * + * * Exemplo: - * + * * i3GEO.util.ajaxGet("http://localhost/teste.php",function(retorno){alert(retorno);}) - * + * * Parametros: - * + * * {string} - url que será requisitada - * + * * {function} - função que irá processar o resultado */ ajaxGet : function(sUrl, funcaoRetorno) { @@ -2852,15 +2855,15 @@ i3GEO.util = }, /** * Function: pegaDadosLocal - * + * * Obtem um valor armazenado localmente - * + * * Parametro: - * + * * {string} - key a ser obtido - * + * * Return: - * + * * array */ pegaDadosLocal : function(item) { @@ -2872,11 +2875,11 @@ i3GEO.util = }, /** * Function: limpaDadosLocal - * + * * Limpa os dados locais - * + * * Parametro: - * + * * {string} - key a ser limpo */ limpaDadosLocal : function(item) { @@ -2886,15 +2889,15 @@ i3GEO.util = }, /** * Function: gravaDadosLocal - * + * * Grava um valor localmente - * + * * Parametro: - * + * * {string} - key a ser gravado - * + * * {string} - valor a ser gravado - * + * */ gravaDadosLocal : function(item, valor) { if (i3GEO.util.verifica_html5_storage()) { @@ -2906,7 +2909,7 @@ i3GEO.util = }, /** * Function: extGeo2OSM - * + * * Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM */ extGeo2OSM : function(ext, retornaArray) { @@ -2942,7 +2945,7 @@ i3GEO.util = }, /** * Function: extOSM2Geo - * + * * Converte string 'xmin ymin xmax ymax' ou 'xmin ymin' de geo para a projecao OSM */ extOSM2Geo : function(ext, retornaArray) { @@ -2978,7 +2981,7 @@ i3GEO.util = }, /** * Function: projOSM2Geo - * + * * Projeta um objeto OpenLayers de OSM para GEO */ projOSM2Geo : function(obj) { @@ -2991,7 +2994,7 @@ i3GEO.util = }, /** * Function: projGeo2OSM - * + * * Projeta um objeto OpenLayers de GEO para OSM */ projGeo2OSM : function(obj) { @@ -3004,19 +3007,19 @@ i3GEO.util = }, /** * Function: navegadorDir - * + * * Abre o navegador de arquivos localizados no servidor - * + * * Parametro: - * + * * {objeto} - objeto input que recebera de volta o valor do arquivo escolhido - * + * * {boolean} - considera os arquivos shapefile - * + * * {boolean} - considera os arquivos de imagem (geo) - * + * * {boolean} considera os arquivos de tipo figura (png e jpg) - * + * * {boolean} insere um botao para retornar o nome da pasta */ navegadorDir : function(obj, listaShp, listaImg, listaFig, retornaDir) { @@ -3033,15 +3036,15 @@ i3GEO.util = }, /** * Function: navegadorPostgis - * + * * Abre o navegador de de tabelas existentes no banco de dados Postgis - * + * * Parametro: - * + * * {objeto} - objeto input que recebera de volta o valor do arquivo escolhido - * + * * {numerico} - codigo da conexao com o banco de dados cadastrado no sistema de metadados estatisticos - * + * * {string} - opcional. Tipo de retorno esquema|tabela|sql */ navegadorPostgis : function(obj, conexao, tipo) { @@ -3058,15 +3061,15 @@ i3GEO.util = }, /** * Function base64encode - * + * * Atalho para a funcao que codifica uma string em base64 - * + * * Parametro: - * + * * {string} - * + * * Retorno: - * + * * {base64} */ base64encode : function(str) { @@ -3103,15 +3106,15 @@ i3GEO.util = }, /** * Function base64decode - * + * * Atalho para a funcao que decodifica uma string de base64 - * + * * Parametro: - * + * * {string} - * + * * Retorno: - * + * * {string} */ base64decode : function(str) { @@ -3295,11 +3298,11 @@ i3GEO.util = }, /** * Function: cloneObj - * + * * Cria um clone de um objeto. - * + * * Exemplo: - * + * * cloneObj = i3GEO.util.cloneObj(origObj); */ cloneObj : function(obj) { @@ -3314,16 +3317,16 @@ i3GEO.util = }, /** * Function: aplicaAquarela - * + * * Formata código HTML para incluir um ícone para abrir o colorPicker - * + * * Todos os elementos abaixo de 'onde' que contenham a classe css 'i3geoFormIconeAquarela' ser&aatilde;o atingidas - * + * * Exemplo: - * + * *