/*jslint white:false,undef: false, rhino: true, onevar: true, evil: false */
/*
Title: Ajuda
Arquivo:
i3geo/classesjs/classe_ajuda.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.
*/
if(typeof(i3GEO) === 'undefined'){
i3GEO = [];
}
/*
Classe: i3GEO.ajuda
Manipulação das mensagens de ajuda.
Permite definir a mensagem padrão da janela de mensagens. Abrir a janela e definir seu conteúdo.
Controla também o letreiro móvel que mostra mensagens especiais definidas em cada layer adicionado ao mapa.
Exemplos:
Se vc não quiser que a janela de ajuda seja aberta, inclua em seu HTML ou javascript
i3GEO.ajuda.ATIVAJANELA = false;
Para enviar uma mensagem para a janela, utilize
i3GEO.ajuda.mostraJanela("texto");
*/
i3GEO.ajuda = {
/*
Propriedade: ATIVAJANELA
Define se a janela de mensagens pode ou não ser aberta.
Default:
{true}
Tipo:
{Boolean}
*/
ATIVAJANELA: true,
/*
Propriedade: DIVAJUDA
Nome do elemento HTML, do tipo DIV, que irá conter os textos de ajuda.
Se esse DIV for encontrado no mapa, os textos serão mostrados em seu interior.
Default:
{"i3geo_ajuda"}
Tipo:
{String}
*/
DIVAJUDA: "i3geo_ajuda",
/*
Propriedade: DIVLETREIRO
Id do elemento HTML onde será incluído o banner (letreiro) de mensagens.
Esse tipo de mensagem é obtida do METADATA "MENSAGEM" que pode ser incluído em um layer.
Default:
{"i3geo_letreiro"}
Tipo:
{String}
*/
DIVLETREIRO: "i3geo_letreiro",
/*
Propriedade: MENSAGEMPADRAO
Mensagem que será incluída ao iniciar a janela de mensagens ou quando não houver
mensagem definida para o elemento sobre o qual o mouse estaciona.
Default:
{$trad("p1")}
Tipo:
{String}
*/
MENSAGEMPADRAO: $trad("p1"),
/*
Propriedade: TRANSICAOSUAVE
Altera a transparência quando o mouse sobrepõe à janela e quando sai
Tipo:
{boolean}
Default:
{true}
*/
TRANSICAOSUAVE: true,
/*
Propriedade: OPACIDADE
Valor da opacidade mínima utilizada quando TRANSICAOSUAVE for igual a true.
Varia de 0 a 100
Tipo:
{numeric}
Default:
{20}
*/
OPACIDADE: 20,
/*
Function: abreDoc
Abre a documentacao do i3geo em uma nova janela do navegador
Parametro:
url - url que será adicionada a i3GEO.configura.locaplic
*/
abreDoc: function(url){
if(!url)
{url = "/documentacao/index.html";}
window.open(i3GEO.configura.locaplic+url);
},
/*
Function: abreJanela
Abre a janela flutuante para mostrar as mensagens de ajuda.
Essa função é executada na inicialização do i3GEO
*/
abreJanela: function(){
if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.abreJanela()");}
try {
var nx,ny,corpo,texto,janela,temp,
largura=262,
YU = YAHOO.util,
pos = [20,i3GEO.parametros.h / 2];
if(this.ATIVAJANELA === false){return;}
temp = $i("contemFerramentas");
if(temp){
largura = parseInt(temp.style.width,10) - 5;
}
if(!$i("janelaMenTexto")){
corpo = $i(i3GEO.Interface.IDCORPO);
if(corpo){pos = YU.Dom.getXY(corpo);}
else{
corpo = $i(i3GEO.Interface.IDMAPA);
if(corpo){pos = YU.Dom.getXY(corpo);}
}
nx = pos[0] - largura - 3;
ny = i3GEO.parametros.h - 78;
texto = '
'+i3GEO.ajuda.MENSAGEMPADRAO+'
';
if(nx < 0)
{nx = 10;ny = ny - 50;}
janela = i3GEO.janela.cria(largura - 3,"auto","",nx,ny," ","i3geo_janelaMensagens",false,"hd","","",true);
janela[2].innerHTML = texto;
YU.Event.addListener(janela[0].close, "click", i3GEO.ajuda.fechaJanela);
this.ativaCookie();
}
}
catch(e){
if(typeof(console) !== 'undefined'){console.error("i3GEO.ajuda.abreJanela "+e);}
}
},
/*
Function: ativaCookie
Ativa o cookie g_janelaMen e inclui o valor "sim".
Toda a vez que a janela é aberta, o cookie é ativado.
Ativando-se o cookie, a janela de mensagens será aberta automaticamente a próxima vez que o i3geo for iniciado
*/
ativaCookie: function(){
var i = i3GEO.util.insereCookie;
i("g_janelaMen","sim");
i("botoesAjuda","sim");
},
/*
Function: ativaLetreiro
Busca mensagens no metadata "MENSAGEM" existentes nos layers do mapa.
Se existirem mensagens, as mesmas são incluídas no letreiro.
O letreiro deve ser um elemento do tipo INPUT (text).
Parametro:
mensagem {String} - (opcional) texto que será mostrado no letreiro. Se não for informado
será utilizado a variável i3GEO.parametros.mensagens
*/
ativaLetreiro: function(mensagem){
if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.ativaLetreiro()");}
var l;
if($i(i3GEO.ajuda.DIVLETREIRO))
{
if(arguments.length === 0)
{mensagem = i3GEO.parametros.mensagens;}
if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.ajuda.ativaLetreiro()") < 0)
{i3GEO.eventos.NAVEGAMAPA.push("i3GEO.ajuda.ativaLetreiro()");}
try
{clearTimeout(i3GEO.ajuda.tempoLetreiro);}
catch(e){i3GEO.ajuda.tempoLetreiro = "";}
l = $i(i3GEO.ajuda.DIVLETREIRO);
if(l.style.display==="none"){return;}
l.style.cursor="pointer";
if(mensagem === ""){
l.value = "";
return;
}
if (l.size === 1)
{l.size = i3GEO.parametros.w / 8;}
BMessage = mensagem + " ---Clique para parar--- ";
l.onclick = function()
{l.style.display = "none";};
if (BMessage !== " ---Clique para parar--- "){
BQuantas = 0;
BSize = l.size;
BPos=BSize;
BSpeed = 1;
BSpaces = "";
i3GEO.ajuda.mostraLetreiro();
}
i3GEO.ajuda.mostraLetreiro(mensagem);
}
},
/*
Function: desativaCookie
Desativa o cookie g_janelaMen.
Toda a vez que a janela é fechada, o cookie é desativado.
Desativando-se o cookie, a janela de mensagens não será aberta automaticamente a próxima vez que o i3geo for iniciado
*/
desativaCookie: function(){
i3GEO.util.insereCookie("g_janelaMen","nao");
},
/*
Function: fechaJanela.
Fecha a janela de ajuda.
*/
fechaJanela: function(){
if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.fechaJanela()");}
i3GEO.ajuda.desativaCookie();
i3GEO.util.removeChild("i3geo_janelaMensagens_c",document.body);
},
/*
Function: mostraJanela
Mostra um texto dentro da janela de mensagens padrão.
Parametro:
texto {String} - texto a ser mostrado
*/
mostraJanela: function(texto){
if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.mostraJanela()");}
var j = $i(this.DIVAJUDA),
k = $i("janelaMenTexto"),
jm = $i("i3geo_janelaMensagens"),
Dom = YAHOO.util.Dom,
h = parseInt(Dom.getStyle(jm,"height"),10),
temp;
if(j){
j.innerHTML = texto === "" ? "-" : texto;
}
else{
if(h)
{Dom.setY("i3geo_janelaMensagens",Dom.getY(jm) + h);}
if(k)
{k.innerHTML = texto;}
if(this.TRANSICAOSUAVE){
temp = texto !== "" ? Dom.setStyle(jm,"opacity","1") : Dom.setStyle(jm,"opacity",(this.OPACIDADE / 100));
}
h = parseInt(Dom.getStyle(jm,"height"),10);
if(h)
{Dom.setY(jm,Dom.getY(jm) - h);}
}
},
/*
Function: mostraLetreiro
Preenche o elemento INPUT com a mensagem de texto e faz a movimentação das letras.
O aparecimento das letras é controlado por um temporizador e asmensagens são mostradas apenas duas vezes,
desde o início do redesenho do mapa.
*/
mostraLetreiro: function(){
if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.mostraLetreiro()");}
for (count=0; count