/**
* Title: Ajuda
*
* 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 (quando estiver aberta), utilize
*
* i3GEO.ajuda.mostraJanela("texto");
*
* Para enviar uma mensagem temporária utilize:
*
*
* Arquivo:
*
* i3geo/classesjs/classe_ajuda.js
*
* 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 ADEQUACÃ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') {
var i3GEO = {};
}
i3GEO.ajuda = {
/**
* Propriedade: ATIVAJANELA
*
* Define se a janela de mensagens pode ou não ser aberta.
*
* Tipo {Boolean} - true
*/
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.
*
* Tipo {String} - i3geo_ajuda
*/
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.
*
* Tipo {String} - i3geo_letreir
*/
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.
*
* Tipo {String} - $trad("p1")
*/
MENSAGEMPADRAO : $trad("p1"),
/**
* Propriedade: TRANSICAOSUAVE
*
* Altera a transparência quando o mouse sobrepõe a janela e
* quando sai
*
* Tipo {boolean} - true
*/
TRANSICAOSUAVE : true,
/**
* Propriedade: OPACIDADE
*
* Valor da opacidade mínima utilizada quando TRANSICAOSUAVE for
* igual a true.
*
* Varia de 0 a 100
*
* Tipo {numeric} - 20
*/
OPACIDADE : 20,
/**
* Function: abreDoc
*
* Abre a documentacao do i3geo em uma nova janela do navegador
*
* Parametro:
*
* url {string} - 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() {
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,
70,
"",
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) {}
},
/**
* 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");
},
/**
* 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) {
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);
}
},
/**
* 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() {
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) {
var j = $i(this.DIVAJUDA), k = $i("janelaMenTexto"), jm = $i("i3geo_janelaMensagens"), Dom = YAHOO.util.Dom, h = parseInt(
Dom.getStyle(
jm,
"height"),
10);
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) {
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 as
* mensagens são mostradas apenas duas vezes, desde o início
* do redesenho do mapa.
*/
mostraLetreiro : function() {
for (var count = 0; count < BPos; count += 1) {
BSpaces += " ";
}
if (BPos < 1) {
$i(i3GEO.ajuda.DIVLETREIRO).value = BMessage.substring(
Math.abs(BPos),
BMessage.length);
if (BPos
+ BMessage.length < 1) {
BPos = BSize;
BQuantas = BQuantas + 1;
}
} else {
$i(i3GEO.ajuda.DIVLETREIRO).value = BSpaces
+ BMessage;
}
BPos -= BSpeed;
if (BQuantas < 2) {
i3GEO.ajuda.tempoLetreiro = setTimeout(
function() {
i3GEO.ajuda.mostraLetreiro();
},
140);
}
},
/**
* Function: redesSociais
*
* Abre uma janela com informações sobre a presença do
* i3Geo em redes sociais
*/
redesSociais : function() {
i3GEO.janela.cria(
"400px",
"400px",
i3GEO.configura.locaplic
+ "/ferramentas/redessociais/index.php",
"",
"",
$trad("u5c"),
YAHOO.util.Dom.generateId(
null,
"redes"));
}
};