/*
Title: core.js
Funções de uso comum das interfaces dos editores
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.
Arquivo:
i3geo/admin/js/core.js
*/
/*
Function: $i
Pega um objeto do documento.
Exemplo: $i("box1")
Parâmetros:
id - id do objeto
Retorno:
object - objeto javaScript
*/
$i = function(id)
{return document.getElementById(id);};
/*
Variable: $mapfiles
Armazena o objeto com a lista de mapfiles
*/
$mapfiles = "";
/*
Variable: $tags
Armazena o objeto com a lista de tags
*/
$tags = "";
/*
Variable: $perfis
Armazena o objeto com a lista de perfis
*/
$perfis = "";
function cabecalhoMetaestat(id,excluir){
var i,n,temp,
ins = "
";
temp = $i(id);
temp.innerHTML = ins;
for(i=0;i';
}
}
if(!u){
u = "-";
}
ins += "
Login: "+u+"
";
ins += "";
temp = $i(id);
temp.innerHTML = ins;
for(i=0;i';
}
}
if(!u){
u = "-";
}
ins += "
";
d = {html:titulo};
tempNode = new YAHOO.widget.HTMLNode(d, root, true,true);
tempNode.enableHighlight = false;
c = obj.propriedades.length;
for (i=0, j=c; i"+linha.text+"";}
else
{conteudo = linha.text;}
d = {html:conteudo};
temaNode = new YAHOO.widget.HTMLNode(d, tempNode, false,true);
temaNode.enableHighlight = false;
}
arvore.collapseAll();
arvore.draw();
}
/*
Function: core_movimentaNo
Movimenta um nó para cima ou para baixo na árvore.
Essa função utiliza uma árvore que deve estar armazenada no objeto tree
Parameters:
tipo - sobe|desce
no - objeto no que será movimentado
Return:
true|false - se o movimento ocorreu
*/
function core_movimentaNo(tipo,no)
{
var movimenta = false;
if(tipo == "sobe")
{
var noanterior = no.previousSibling;
if(noanterior)
{
if(noanterior.previousSibling && noanterior.data.tipo != "etiqueta")
{
tree.popNode(no);
no.insertBefore(noanterior);
tree.draw();
movimenta = true;
}
}
}
if(tipo == "desce")
{
var noseguinte = no.nextSibling;
if(noseguinte)
{
tree.popNode(no);
no.insertAfter(noseguinte);
tree.draw();
movimenta = true;
}
}
return movimenta;
}
/*
Function: core_handleSuccess
Processa o retorno da chamada em ajax quando tiver sucesso. Esta é uma
função genérica, pouco usada.
Parameters:
o - string retornada pelo ajax
*/
function core_handleSuccess(o)
{
//div onde será mostrado o log
if(!$i('logajax'))
{document.body.innerHTML += "";}
log = $i('logajax');
YAHOO.log("The success handler was called. tId: " + o.tId + ".", "info", "example");
if(o.responseText !== undefined)
{
log.innerHTML = "
";
}
}
/*
Function: core_handleFailure
Processa o retorno da chamada em ajax quando tiver falhado.
Parameters:
o - string retornada pelo ajax
*/
function core_handleFailure(o,texto)
{
//div onde será mostrado o log
//alert(texto)
if(!$i('logajax'))
{return;}
log = $i('logajax');
//YAHOO.log("The failure handler was called. tId: " + o.tId + ".", "info", "example");
if(o.responseText !== undefined)
{
if(o.statusText != "OK"){
log.innerHTML = "
Transaction id: " + o.tId + "
";
log.innerHTML += "
HTTP status: " + o.status + "
";
log.innerHTML += "
Status code message: " + o.statusText + "
";
log.innerHTML += "
PHP message: " + texto + "
";
}
}
if (!YAHOO.carregando.container.wait)
{
YAHOO.carregando.container.wait = new YAHOO.widget.Panel("wait",{width: "240px",fixedcenter: true,close: true,draggable: false,zindex:4,modal: true,visible: false});
YAHOO.carregando.container.wait.setHeader("Aguarde...");
YAHOO.carregando.container.wait.render(document.body);
}
else
{YAHOO.carregando.container.wait.setBody(log.innerHTML);}
}
/*
Function: core_makeRequest
Executa uma chamada em ajax.
Parameters:
sUrl - url que será executada
callback - função que processará o retorno
tipo - GET ou POST
postpar - parametros quando o tipo for post
*/
function core_makeRequest(sUrl,callback,tipo,postpar)
{
sUrl = escape(sUrl);
re = new RegExp("%3F", "g");
sUrl = sUrl.replace(re,'?');
re = new RegExp("%3D", "g");
sUrl = sUrl.replace(re,'=');
re = new RegExp("%26", "g");
sUrl = sUrl.replace(re,'&');
re = new RegExp("%3A", "g");
sUrl = sUrl.replace(re,':');
if(arguments.length == 2)
{tipo = "GET";}
if(postpar){
//YAHOO.util.Connect.setDefaultPostHeader('application/json;charset=ISO-8859-1');
YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postpar);
}
else{
YAHOO.util.Connect.asyncRequest(tipo, sUrl, callback);
}
}
/*
Function: core_carregando
Mostra uma janela de aguarde
Parameters:
tipo - ativa|desativa|string com uma mensagem
*/
function core_carregando(tipo)
{
var img = "../../imagens/aguarde.gif";
if(i3GEO && i3GEO.configura.locaplic){
img = i3GEO.configura.locaplic+"/imagens/aguarde.gif";
}
YAHOO.namespace("carregando.container");
if (!YAHOO.carregando.container.wait)
{
YAHOO.carregando.container.wait = new YAHOO.widget.Panel("wait",{width: "240px",fixedcenter: true,close: true,draggable: false,zindex:4,modal: true,visible: false});
YAHOO.carregando.container.wait.setHeader("Aguarde...");
YAHOO.carregando.container.wait.setBody("");
YAHOO.carregando.container.wait.render(document.body);
}
else
{YAHOO.carregando.container.wait.show();}
YAHOO.carregando.container.wait.setBody("");
if(tipo == "ativa")
{YAHOO.carregando.container.wait.show();}
if(tipo == "desativa")
{YAHOO.carregando.container.wait.hide();}
if(tipo != "ativa" && tipo != "desativa")
{YAHOO.carregando.container.wait.setBody(" "+tipo);}
}
/*
Function: core_dialogoContinua
Mostra um diálogo do tipo sim não
Parameters:
handleYes - função para sim
handleNo - função para não
mensagem - mensagem do diálogo
largura - largura do diálogo em px
*/
function core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho)
{
if(!cabecalho || cabecalho === ""){
cabecalho = "Tem certeza?";
}
// Instantiate the Dialog
YAHOO.namespace("continua.container");
YAHOO.continua.container.simpledialog1 =
new YAHOO.widget.SimpleDialog("simpledialog1",
{ width: largura+"px",
fixedcenter: true,
visible: false,
draggable: false,
close: true,
text: mensagem,
icon: YAHOO.widget.SimpleDialog.ICON_HELP,
modal: true,
constraintoviewport: true,
buttons: [ { text:"Sim", handler:handleYes, isDefault:true },
{ text:"Não", handler:handleNo } ]
} );
YAHOO.continua.container.simpledialog1.setHeader(cabecalho);
YAHOO.continua.container.simpledialog1.render(document.body);
YAHOO.continua.container.simpledialog1.show();
}
/*
Function: core_dialogoPergunta
Mostra um diálogo do tipo sim não com uma pergunta
Parameters:
handleYes - função para sim
handleNo - função para não
mensagem - mensagem do diálogo
largura - largura do diálogo em px
*/
function core_dialogoPergunta(handleYes,handleNo,mensagem,largura)
{
// Instantiate the Dialog
YAHOO.namespace("continua.container");
YAHOO.continua.container.simpledialog1 =
new YAHOO.widget.SimpleDialog("simpledialog1",
{ width: largura+"px",
fixedcenter: true,
visible: false,
draggable: false,
close: true,
text: mensagem,
icon: "",
modal: true,
constraintoviewport: true,
buttons: [ { text:"Continua", handler:handleYes, isDefault:true },
{ text:"Cancela", handler:handleNo } ]
} );
//YAHOO.continua.container.simpledialog1.setHeader("Tem certeza?");
YAHOO.continua.container.simpledialog1.render(document.body);
YAHOO.continua.container.simpledialog1.show();
}
/*
Function: core_ativaPainelAjuda
Parameters:
id - id do elemento que receberá o painel
botao - id do elemento que deverá ser lcicado para abrir o painel
*/
function core_ativaPainelAjuda(id,botao)
{
$i(id).style.display = "block";
if(!YAHOO.admin.container.panelAjuda)
{
YAHOO.admin.container.panelAjuda = new YAHOO.widget.Panel(id, { width:"350px", height:"200px",overflow:"auto", visible:false,constraintoviewport:true } );
YAHOO.admin.container.panelAjuda.render();
}
if(arguments.length == 2)
YAHOO.util.Event.addListener(botao, "click", YAHOO.admin.container.panelAjuda.show, YAHOO.admin.container.panelAjuda, true);
else
YAHOO.admin.container.panelAjuda.show();
}
/*
Function: core_ativaPainelTexto
Parameters:
id - id do elemento que receberá o painel
*/
function core_ativaPainelTexto(id)
{
YAHOO.admin.container.panelTexto = new YAHOO.widget.Panel(id, { width:"350px", height:"200px",overflow:"auto", visible:false,constraintoviewport:true } );
YAHOO.admin.container.panelTexto.render();
YAHOO.admin.container.panelTexto.show();
}
/*
function: core_pegaPerfis
Pega a lista de perfis
Parameters:
funcao - (opcional) string com o nome da funcao que será executada após a chamada ajax ter tido sucesso
Return
$perfis - variável global com o objeto perfis
$perfisArray - array com a lista de perfis
*/
function core_pegaPerfis(funcao)
{
if(arguments.length == 0)
{funcao = "";}
//pega a lista de perfis
var sUrl = "../php/menutemas.php?funcao=pegaPerfis";
var callback =
{
success:function(o)
{
try
{
$perfis = YAHOO.lang.JSON.parse(o.responseText);
$perfisArray = new Array();
for (var i=0;i<$perfis.length;i++)
{$perfisArray.push($perfis[i].perfil);}
if(funcao != "")
eval(funcao);
}
catch(e){core_handleFailure(o,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
}
/*
function: core_pegaMapfiles
Pega a lista de mapfiles
Parameters:
funcaoM - (opcional) nome da funcao que será executada ao terminar a busca pelos dados
letra - (opcional) letra inicial utilizada para filtrar a lista
filtro - (opcional) string com o filtro, por exemplo, "'download_tema' = 'SIM'"
*/
function core_pegaMapfiles(funcaoM,letra,filtro)
{
if(arguments.length == 0){
letra = "";
filtro = "";
funcaoM = "";
}
if(arguments.length == 1){
letra = "";
filtro = "";
}
if(arguments.length == 2){
filtro = "";
}
var sUrl = "../php/menutemas.php?funcao=listaMapsTemas&letra="+letra+"&filtro="+filtro;
var callbackM =
{
success:function(o)
{
try
{
$mapfiles = YAHOO.lang.JSON.parse(o.responseText);
if(funcaoM != "")
eval(funcaoM);
}
catch(e){core_handleFailure(o,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callbackM);
}
/*
Function: core_comboMapfiles
Cria um combo para escolha do mapfile
Parameters:
onde - id do elemento que receberá o combo
id - id do combo que será criado
marcar - valor que será marcado como selecionado
funcao - string com o nome da função que será executada no evento onchange
recarrega {booblean} - força recarregar o combo de mapfiles
*/
function core_comboMapfiles(onde,id,marcar,funcao,recarrega)
{
if(arguments.length == 3)
{funcao = "";}
if(!recarrega)
{recarrega = false;}
if($mapfiles == "" || recarrega === true)
{
core_pegaMapfiles("core_comboMapfiles('"+onde+"','"+id+"','"+marcar+"','"+funcao+"')");
}
else
{
if (funcao != "")
{funcao = "onchange='"+funcao+"'";}
ins = "";
$i(onde).innerHTML = ins;
}
}
/*
Function: core_comboPerfis
Cria um combo para escolha de perfil
Parameters:
onde - id do elemento que receberá o combo
id - id do combo que será criado
marcar - valor que será marcado como selecionado
funcao - string com o nome da função que será executada no evento onchange
*/
function core_comboPerfis(onde,id,marcar,funcao)
{
if(arguments.length == 3)
{funcao = "";}
if($perfis == "")
{
core_pegaPerfis("core_comboPerfis('"+onde+"','"+id+"','"+marcar+"','"+funcao+"')");
}
else
{
if (funcao != "")
{funcao = "onchange='"+funcao+"'";}
ins = "";
$i(onde).innerHTML = ins;
}
}
/*
Function: core_comboPranchas
Cria um combo para escolha de pranchas de um atlas
Parameters:
onde - id do elemento que receberá o combo
id - id do combo que será criado
marcar - valor que será marcado como selecionado
funcao - string com o nome da função que será executada no evento onchange
*/
function core_comboPranchas(onde,id,marcar,funcao,id_atlas)
{
var sUrl = "../php/atlas.php?funcao=pegaPranchas&id_atlas="+id_atlas;
var callback =
{
success:function(o)
{
try
{
var valores = YAHOO.lang.JSON.parse(o.responseText);
if(arguments.length == 3)
{funcao = "";}
if (funcao != "")
{funcao = "onchange='"+funcao+"'";}
ins = "";
$i(onde).innerHTML = ins;
}
catch(e){core_handleFailure(e,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
}
/*
Function: core_comboGrupos
Cria um combo para escolha de um grupo
Parameters:
onde - id do elemento que receberá o combo
id - id do combo que será criado
marcar - valor que será marcado como selecionado
funcao - string com o nome da função que será executada no evento onchange
*/
function core_comboGrupos(onde,id,marcar,funcao)
{
var sUrl = "../php/menutemas.php?funcao=pegaGrupos";
var callback =
{
success:function(o)
{
try
{
var valores = YAHOO.lang.JSON.parse(o.responseText);
if(arguments.length == 3)
{funcao = "";}
if (funcao != "")
{funcao = "onchange='"+funcao+"'";}
ins = "";
$i(onde).innerHTML = ins;
}
catch(e){core_handleFailure(e,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
}
/*
Function: core_comboSubGrupos
Cria um combo para escolha de um sub-grupo
Parameters:
onde - id do elemento que receberá o combo
id - id do combo que será criado
marcar - valor que será marcado como selecionado
funcao - string com o nome da função que será executada no evento onchange
*/
function core_comboSubGrupos(onde,id,marcar,funcao)
{
var sUrl = "../php/menutemas.php?funcao=pegaSubGrupos";
var callback =
{
success:function(o)
{
try
{
var valores = YAHOO.lang.JSON.parse(o.responseText);
if(arguments.length == 3)
{funcao = "";}
if (funcao != "")
{funcao = "onchange='"+funcao+"'";}
ins = "";
$i(onde).innerHTML = ins;
}
catch(e){core_handleFailure(e,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
}
/*
Function: core_comboTemas
Cria um combo para escolha de um tema
Parameters:
onde - id do elemento que receberá o combo
id - id do combo que será criado
marcar - valor que será marcado como selecionado
funcao - string com o nome da função que será executada no evento onchange
*/
function core_comboTemas(onde,id,marcar,funcao)
{
var sUrl = "../php/menutemas.php?funcao=pegaTemas2";
var callback =
{
success:function(o)
{
try
{
var valores = YAHOO.lang.JSON.parse(o.responseText);
if(arguments.length == 3)
{funcao = "";}
if (funcao != "")
{funcao = "onchange='"+funcao+"'";}
ins = "";
$i(onde).innerHTML = ins;
}
catch(e){core_handleFailure(e,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
}
/*
function: core_pegaTags
Pega a lista de tags
Parameters:
funcao - (opcional) nome da funcao que será executada ao terminar a busca pelos dados
*/
function core_pegaTags(funcao)
{
if(arguments.length == 0)
{funcao = "";}
var sUrl = "../php/menutemas.php?funcao=pegaTags";
var callback =
{
success:function(o)
{
try
{
$tags = YAHOO.lang.JSON.parse(o.responseText);
if($tags == ""){$tags = " ";}
if(funcao != "")
eval(funcao);
}
catch(e){core_handleFailure(e,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
}
/*
Function: core_comboTags
Cria um combo para escolha de tags
Parameters:
onde - id do elemento que receberá o combo
id - id do combo que será criado
marcar - valor que será marcado como selecionado
change - nome da função do evento onchange
*/
function core_comboTags(onde,id,change)
{
if($tags == "")
{
core_pegaTags("core_comboTags('"+onde+"','"+id+"','"+change+"')");
}
else
{
ins = "";
$i(onde).innerHTML = ins;
}
}
/*
Function: gera uma janela flutuante com opções de escolha baseadas em checkbox
Parameters:
valores - array com os valores de cada checkbox
textos - array com os nomes de cada checkbox
selecionados - array com os valores marcados
target - objeto para receber o resultado
record - objeto record (utilize "" para escapar)
key - chave (nome do item) (utilize "" para escapar)
unico - sim|nao indicando se apenas um pode ser escolhido
funcaoFinal - (opcional) funcao que sera executada no final do processo
*/
function core_menuCheckBox(valores,textos,selecionados,target,record,key,unico,funcaoFinal){
if(!unico){
unico = "nao";
}
function on_menuCheckBoxChange(p_oEvent){
var cks,i,
ins = [],
status = "OK";
if(p_oEvent && p_oEvent.newValue){
status = p_oEvent.newValue.get("value");
}
if(status == "OK") {
cks = $i("core_menuCK_bd").getElementsByTagName("input");
ins = [];
for (i=0;i";
record.setData(key,ins.toString());
}
else{
target.value = ins.toString();
}
}
YAHOO.admin.container.panelCK.destroy();
YAHOO.admin.container.panelCK = null;
if(funcaoFinal){
funcaoFinal.call();
}
};
var novoel,ndiv,og_core,onde,ins,i,novoCK,ck,j;
if(!YAHOO.admin.container.panelCK){
novoel = document.createElement("div");
novoel.id = "core_menuCK";
ndiv = document.createElement("div");
ndiv.className= "yui-dt-editor";
ndiv.style.backgroundColor = "white";
ndiv.style.height = "144px";
ndiv.style.width = "100%";
ndiv.style.overflow = "auto";
ndiv.innerHTML = " " +
"";
novoel.appendChild(ndiv);
document.body.appendChild(novoel);
og_core = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id", name:"okcancel_checkbox_id", container:"core_botoesCabecalho" });
og_core.addButtons([
{ label: "OK", value: "OK", checked: false},
{ label: "Fecha", value: "CANCEL", checked: false }
]);
og_core.on("checkedButtonChange", on_menuCheckBoxChange);
YAHOO.admin.container.panelCK = new YAHOO.widget.Panel("core_menuCK", { draggable:false,modal:true,zindex:"100",close:false,underlay:false,width:"200px", height:"158px",overflow:"auto", visible:false,constraintoviewport:false } );
YAHOO.admin.container.panelCK.render();
}
onde = $i("core_menuCK_bd");
ins = [];
onde.innerHTML = "";
for (i=0;i"+textos[i]+" ");
}
else{
ins.push(""+textos[i]+" ");
}
}
if(valores.length > 0){
ins.push(" ");
novoCK.innerHTML = ins.join(" ");
novoCK.style.width = "100%";
onde.appendChild(novoCK);
}
YAHOO.admin.container.panelCK.moveTo(YAHOO.util.Dom.getX(target),YAHOO.util.Dom.getY(target));
YAHOO.admin.container.panelCK.show();
$i("core_menuCK_bd").getElementsByTagName("div")[0].style.textAlign = "left";
}
/*
Function: core_combosimnao
Retorna os itens option de um combo sim nao
*/
function core_combosimnao(marcar)
{
var ins = "";
ins += "";
ins += "";
return(ins);
}
/*
Function: core_comboObjeto
Retorna os itens option de um combo baseado em um objeto json
*/
function core_comboObjeto(obj,valor,texto,marcar,texto2)
{
var ins = "";
for (var k=0;k"+t+"";
}
return(ins);
}
/*
Function: core_geraLinhas
Gera campos de formulário
Parameters:
dados - objeto no formato {"linhas":[{titulo:"Nome do tema:",size:"50",id:"Enome_tema",value:i.nome_tema,tipo:"text",div:""}]}
*/
function core_geraLinhas(dados)
{
var nparam = dados.linhas.length;
var contaParam = 0;
var resultado = "";
core_geralinhasEscondeAjuda = function(id){
var a = $i(id+"_ajuda"),
i = $i(id+"_imgajuda");
if(a.style.display == "block"){
a.style.display = "none";
i. src = "../../imagens/oxygen/16x16/help-about.png";
}
else{
a.style.display = "block";
i. src = "../../imagens/oxygen/16x16/help-about.png";
}
};
do{
var p = dados.linhas[contaParam];
if(p.tipo == "text" || p.tipo == "cor" || p.tipo == "textarea"){
if(!p.size){
p.size = "50";
}
if(p.ajuda){
var idajuda;
if(p.id !== ""){
idajuda = p.id + contaParam;
}
else{
idajuda = "a"+parseInt(255*(Math.random()),10);
}
//var temp = "$i('"+idajuda+"_ajuda').style.display='block' "
resultado += "
";
}
contaParam++;
}
while(contaParam < nparam)
return(resultado);
}
/*
Function: core_ativaBotaoAdicionaLinha
Ativa o botão que adiciona uma linha em uma tabela no banco de dados e na interface HTML
Essa função utiliza o objeto datatable que deve estar armazenado na variável myDataTable
Parameters:
myDataTable - objeto dataTable do YUI
sUrl - url com o programa que será executado no servidor
idBotao - id do elemento com o botão
nomeFuncao - nome da função que será executada ao concluir a adição da linha
*/
function core_ativaBotaoAdicionaLinha(sUrl,idBotao,nomeFuncao)
{
if(arguments.length == 1){
idBotao = "adiciona";
}
if(arguments.length < 3){
nomeFuncao = "";
}
var adicionalinha = function(){
core_carregando("ativa");
core_carregando(" adicionando um novo registro");
var callback = {
success:function(o){
var texto = "";
try{
core_carregando("desativa");
if(nomeFuncao != ""){
if(YAHOO.lang.isFunction(nomeFuncao)){
nomeFuncao.call(o);
}
else{
eval(nomeFuncao+"()");
}
}
else{
texto = YAHOO.lang.JSON.parse(o.responseText)[0];
if(texto === ""){
texto = "Clique para editar";
}
myDataTable.addRow(texto,0);
}
}
catch(e){
core_handleFailure(e,o.responseText);
}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
};
//cria o botão de adição de um novo menu
new YAHOO.widget.Button(idBotao,{ onclick: { fn: adicionalinha } });
}
/*
Function: core_pegaDados
Busca dados no servidor via Ajax e executa uma função de retorno com os daods
Parameters:
mensagem - mensagem que será mostrada na tela
sUrl - url do programa que será executado no servidor
funcaoRetorno - funcao que será executada ao terminar a busca pelos dados
*/
function core_pegaDados(mensagem,sUrl,funcaoRetorno)
{
if("mensagem" != "")
core_carregando(mensagem);
var callback =
{
success:function(o)
{
try
{
if(funcaoRetorno != "")
{eval(funcaoRetorno+"(YAHOO.lang.JSON.parse(o.responseText))");}
core_carregando("desativa");
}
catch(e)
{
if("mensagem" != "")
{core_carregando("desativa");}
core_handleFailure(o,o.responseText);
}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
}
/*
Function: core_gravaLinha
Grava um registro no banco de dados e atualiza o datatable atual
Essa função utiliza o objeto datatable que deve estar armazenado na variável myDataTable
Parameters:
mensagem - mensagem que será mostrada na tela
row - objeto row que foi clicado pelo usuário. Utilizado para se obter os daods do recordset
sUrl - url do programa que será executado
nomeFuncao - nome da funcao que sera executada após gravar os dados (opcional)
*/
function core_gravaLinha(mensagem,row,sUrl,nomeFuncao)
{
core_carregando("ativa");
core_carregando(mensagem);
if(arguments.length < 4)
nomeFuncao = "";
var callback =
{
success:function(o)
{
core_carregando("desativa");
var rec = myDataTable.getRecordSet().getRecord(row);
var linha = myDataTable.getTrEl(rec);
if(nomeFuncao != "")
{
eval(nomeFuncao+"()");
try
{myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]);}
catch(e){}
}
else
{
myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0]);
}
linha.style.color = "";
linha.style.textDecoration = "none";
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
}
/*
Function: core_excluiLinha
Excluí um registro no banco de dados e atualiza o datatable.
Essa função utiliza o objeto datatable que deve estar armazenado na variável myDataTable
Parameters:
sUrl - url do programa que será executado
row - objeto row de um datatable
mensagem -
*/
function core_excluiLinha(sUrl,row,mensagem,cabecalho,tabela)
{
if(!cabecalho){
cabecalho = "";
}
//dialogo
// Define various event handlers for Dialog
var handleYes = function()
{
this.hide();
core_carregando("ativa");
core_carregando(mensagem);
var callback =
{
success:function(o)
{
try
{
if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
{
core_carregando("Não foi possível excluir. Verifique se não existem outras tabelas com registros vinculados a este");
setTimeout("core_carregando('desativa')",3000);
}
else
{
if(tabela){
tabela.deleteRow(row);
}
else{
myDataTable.deleteRow(row);
}
core_carregando("desativa");
}
}
catch(e){core_handleFailure(o,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
};
var handleNo = function(){
this.hide();
};
var mensagem = "Exclui o registro?";
var largura = "300";
core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho);
}
/*
Function: core_excluiNoTree
Excluí um registro no banco de dados e atualiza o treeview.
Essa função utiliza o objeto treeview que deve estar armazenado na variável tree
Parameters:
sUrl - url do programa que será executado
no - objeto no de um treeview
mensagem -
*/
function core_excluiNoTree(sUrl,no,mensagem,cabecalho)
{
if(!cabecalho){
cabecalho = "";
}
//dialogo
// Define various event handlers for Dialog
var handleYes = function()
{
this.hide();
core_carregando("ativa");
core_carregando(mensagem);
var callback =
{
success:function(o)
{
try
{
if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
{
core_carregando("Não foi possível excluir. Verifique se não existem outras tabelas com registros vinculados a este");
setTimeout("core_carregando('desativa')",3000);
}
else
{
if(no){
tree.removeNode(no);
tree.draw();
}
core_carregando("desativa");
}
}
catch(e){core_handleFailure(o,o.responseText);}
},
failure:core_handleFailure,
argument: { foo:"foo", bar:"bar" }
};
core_makeRequest(sUrl,callback);
};
var handleNo = function()
{
this.hide();
};
var mensagem = "Exclui o registro?";
var largura = "300";
core_dialogoContinua(handleYes,handleNo,mensagem,largura,cabecalho);
}
/**
Function: core_montaEditor
Monta uma janela flutuante com um formulário.
O editor possui um div com id=editor_bd que deve ser usado para incluir o formulário.
Parameters:
funcaoOK - string com o nome da função que será executada quando o botão OK for pressionado.
funcaoClose - nome da funcao que será executada quando a janela for fechada. Pode ser "" para escapar.
titulo - titulo da janela
modal - boolean
*/
function core_montaEditor(funcaoOK,w,h,funcaoClose,titulo,modal)
{
if(arguments.length == 0)
{
funcaoOK = "";
w = "400px";
h = "354px";
modal == true;
}
if(arguments.length < 2)
{
w = "400px";
h = "354px";
modal == true;
}
if(!titulo){
titulo = "Editor";
modal == true;
}
if(!funcaoClose){
funcaoClose = "";
modal == true;
}
if(!$i("janela_editor"))
{
var novoel = document.createElement("div");
novoel.id = "janela_editor";
var ins = '
'+titulo+'
';
ins += "
";
ins += "";
ins += "";
novoel.innerHTML = ins;
document.body.appendChild(novoel);
if(funcaoOK != "")
{
var lb = $i("okcancel_checkbox");
lb.innerHTML = "";
new YAHOO.widget.Button(
"okcancel_checkboxOK",
{onclick:{fn: function(){
eval(funcaoOK);
}}}
);
new YAHOO.widget.Button(
"okcancel_checkboxCANCEL",
{onclick:{fn: function(){
YAHOO.admin.container.panelEditor.destroy();
YAHOO.admin.container.panelEditor = null;
}}}
);
}
YAHOO.admin.container.panelEditor = new YAHOO.widget.Panel("janela_editor", { fixedcenter:"contained",close:true,width:w, overflow:"auto",modal: modal,visible:false,constraintoviewport:true } );
YAHOO.admin.container.panelEditor.render();
}
else
{
if($i("editor_bd"))
{$i("editor_bd").innerHTML == "";}
}
var fecha = function()
{
try{
YAHOO.admin.container.panelEditor.destroy();
YAHOO.admin.container.panelEditor = null;
}
catch(e){}
try{
if(funcaoClose != "")
{eval(funcaoClose+"()");}
}
catch(e){};
};
YAHOO.util.Event.addListener(YAHOO.admin.container.panelEditor.close, "click", fecha);
YAHOO.admin.container.panelEditor.show();
//registra a janela no gerenciador de janelas default da classe i3GEO.janela caso ela exista
try{
YAHOO.i3GEO.janela.manager.register(YAHOO.admin.container.panelEditor);
}
catch(e){}
}
/*
Function idiomaSel
Retorna o idioma selecionado pesquisando no elemento select com id = "idioma"
*/
function idiomaSel(){
var idioma = "pt";
if($i("idioma"))
{idioma = $i("idioma").value;}
return idioma;
}
function core_abreCor(janela,elemento)
{
if(i3GEO.configura == undefined )
{i3GEO.configura = {locaplic: "../.."};}
i3GEO.util.abreCor("",elemento,"rgb");
$i("i3geo_janelaCori").style.width = "350px";
$i("i3geo_janelaCori").style.height = "290px";
//i3GEO.janela.cria("350px","250px","../../ferramentas/colorpicker/index.htm?doc=&elemento="+elemento+"&tipo=rgb","","","Cor","i3geo_janelaCor",true);
}
function core_desativaforms(lista){
var n = lista.length,
i,t;
for (i=0;i",
letras = ["Todos","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","X","Y","Z","_","1","2","3","4","5","6","7","8","9"],
nletras = letras.length;
if(!i3GEO.util){
alert("Erro i3GEO.util ???");
return;
}
letraAtual = "";
if(i3GEO.util.pegaCookie("I3GEOletraAdmin")) {
letraAtual = i3GEO.util.pegaCookie("I3GEOletraAdmin");
}
for (i = 0; i < nletras; i++) {
ins += ""
+ letras[i] + " ";
}
ins += "";
if(onde != ""){
o = document.getElementById(onde);
if(o){
o.innerHTML = "";
document.getElementById("forminiciais").onsubmit = function(){
var v = document.getElementById("iniciaisLetras").value;
i3GEO.util.insereCookie("I3GEOletraAdmin", v);
eval(nomeFuncao+"('"+v+"');");
return false;
};
document.getElementById("_listaDeLetras").onclick = function(){
document.getElementById("iniciaisLetras").value = letraAtual;
};
}
}
else{
return ins;
}
}
//
//carregador de javascript
//
//define o local correto dos programas
//
(function(){
var scriptLocation = "";
var scripts = document.getElementsByTagName('script');
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].getAttribute('src');
if (src) {
var index = src.lastIndexOf("core.js");
// is it found, at the end of the URL?
if ((index > -1) && (index + "core.js".length == src.length)) {
scriptLocation = src.slice(0, -"core.js".length);
break;
}
}
}
//
//arquivos javascript que serão carregados
//
/*
*/
var jsfiles = [];
var cssfiles = [];
if(typeof(i3GEO) !== 'undefined' && i3GEO.locaplic){
scriptLocation = "";
jsfiles = [];
//
//arquivos css
//
cssfiles =new Array(
i3GEO.configura.locaplic+"/admin/html/admin.css"
);
}
else{
jsfiles = new Array(
"../../pacotes/yui290/build/utilities/utilities.js",
"../../pacotes/yui290/build/yahoo-dom-event/yahoo-dom-event.js",
"../../pacotes/yui290/build/element/element-min.js",
"../../pacotes/yui290/build/datasource/datasource-min.js",
"../../pacotes/yui290/build/datatable/datatable-min.js",
"../../pacotes/yui290/build/button/button-min.js",
"../../pacotes/yui290/build/dragdrop/dragdrop-min.js",
"../../pacotes/yui290/build/container/container-min.js",
"../../pacotes/yui290/build/connection/connection-min.js",
"../../pacotes/yui290/build/treeview/treeview.js",
"../../pacotes/yui290/build/json/json-min.js",
"../../pacotes/yui290/build/menu/menu-min.js",
"../../pacotes/yui290/build/editor/editor-min.js",
"../../pacotes/yui290/build/resize/resize-min.js",
"../../pacotes/cpaint/cpaint2.inc.compressed.js",
"../../classesjs/compactados/classe_util_compacto.js",
"../../classesjs/compactados/classe_login_compacto.js",
"../../classesjs/compactados/classe_janela_compacto.js",
"../../classesjs/compactados/classe_php_compacto.js",
"../../classesjs/compactados/dicionario_compacto.js",
"../../classesjs/compactados/classe_idioma_compacto.js",
"../../classesjs/compactados/classe_guias_compacto.js",
"../../classesjs/compactados/classe_arvoredetemas_compacto.js"
);
//
//arquivos css
//
cssfiles =new Array(
"../../pacotes/yui290/build/tabview/assets/skins/sam/tabview.css",
"../../pacotes/yui290/build/button/assets/skins/sam/button.css",
"../../pacotes/yui290/build/fonts/fonts-min.css",
"../../pacotes/yui290/build/datatable/assets/skins/sam/datatable.css",
"../../pacotes/yui290/build/container/assets/skins/sam/container.css",
"../../pacotes/yui290/build/treeview/assets/skins/sam/treeview.css",
"../../pacotes/yui290/build/editor/assets/skins/sam/editor.css",
"../../pacotes/yui290/build/resize/assets/skins/sam/resize.css",
"../../css/janelaflutuante.css",
"../html/admin.css"
);
}
//
//carrega os arquivos js
//
var allScriptTags = "";
for (var i = 0; i < jsfiles.length; i++)
{
var currentScriptTag = "";
allScriptTags += currentScriptTag;
}
document.write(allScriptTags);
//
//carrega os arquivos css
//
var allCssTags = "";
for (var i = 0; i < cssfiles.length; i++)
{
var currentCssTag = "";
allCssTags += currentCssTag;
}
document.write(allCssTags);
})();