/*
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 += "
";
}
}
/*
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
*/
function core_menuCheckBox(valores,textos,selecionados,target,record,key,unico){
if(!unico){
unico = "nao";
}
function on_menuCheckBoxChange(p_oEvent){
var cks,i,
ins = [];
if(p_oEvent.newValue.get("value") == "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;
};
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.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:"168px", 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]+" ");
}
}
ins.push(" ");
novoCK.innerHTML = ins.join(" ");
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/desce.gif";
}
else{
a.style.display = "block";
i. src = "../../imagens/sobe.gif";
}
};
do
{
var p = dados.linhas[contaParam];
if(p.tipo == "text" || p.tipo == "cor")
{
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 += "
";
}
if(p.div)
{resultado += p.div;}
}
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 != "")
{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[i] + " ";
}
if(onde != ""){
o = document.getElementById(onde);
if(o){
o.innerHTML = ins;
}
}
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",
"../../classesjs/compactados/classe_util_compacto.js",
"../../classesjs/compactados/classe_login_compacto.js",
"../../classesjs/compactados/classe_janela_compacto.js",
"../../classesjs/compactados/dicionario_compacto.js",
"../../classesjs/compactados/classe_idioma_compacto.js",
"../../classesjs/compactados/classe_guias_compacto.js",
"../../pacotes/cpaint/cpaint2.inc.compressed.js"
);
//
//arquivos css
//
cssfiles =new Array(
"../../pacotes/yui290/build/tabview/assets/skins/sam/tabview.css",
"../html/admin.css",
"../../pacotes/yui290/build/fonts/fonts-min.css",
"../../pacotes/yui290/build/datatable/assets/skins/sam/datatable.css",
"../../pacotes/yui290/build/button/assets/skins/sam/button.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"
);
}
//
//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);
})();