// *** FUNCOES PARA MANUTENCAO DA SESSAO VIA AJAX *** // INICIALIZAR VARIAVEL PARA CONTROLE DE SESSAO POR JAVASCRIPT var idSessaoValidacao = '08479A85D89BE070C62CEE99767581B2'; // INICIALIZAR VARIAVEIS DA JANELA DE CONTROLE DE SESSAO var timmerJanelaControleSessao = ""; var contadorTempoExpiracaoSessao = ""; var numeroMinutosExibicaoJanela = 2; // ENVIAR REQUISICAO PARA RENOVAR SESSAO function renovarSessao(primeiraRequisicao) { renovarSessaoIndireta(primeiraRequisicao, ''); } function renovarSessaoIndireta(primeiraRequisicao, idSessao) { var req, msg; self.setTimeout("renovarSessao(false)", 60000); // INSTANCIAR CONTROLE AJAX req = false; // branch for native XMLHttpRequest object if(window.XMLHttpRequest) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } // branch for IE/Windows ActiveX version } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } // EXECUTAR REQUISICAO if(req) { req.onreadystatechange = function() { }; //CRIA O TIME STAMP PARA EVITAR CACHE DO ARQUIVO. var data = new Date(); var dtStmp = Date.parse(data); req.open("GET", "/GerenciadorAcessoWeb/controleSessaoAction.do?dummy=" + dtStmp + "&actionType=renovarSessao&novaRequisicao=" + ((primeiraRequisicao)?"1":"0") + ((idSessao == null)?"&idSessao=" + idSessao:""), true); req.send(null); } } // INICIAR TIMER PARA RENOVACAO DE SESSAO var flgManutencaoSessaoIniciada; if(!flgManutencaoSessaoIniciada) { flgManutencaoSessaoIniciada = true; try { if(idSessaoControleExpiracao == null) renovarSessao(true); else renovarSessaoIndireta(true, idSessaoControleExpiracao); } catch(exception) { renovarSessao(true); } } desenharJanelaControleSessao(); // ----------------------- JANELA DE AVISO DE EXPIRACAO DE SESSAO ----------------------- // IMPRIMIR HTML DA JANELA DE AVISO DE // EXPIRACAO DE SESSAO function desenharJanelaControleSessao(){ try{ var obDiv = document.createElement("div"); obDiv.className = "divControleSecao"; obDiv.id = "divControleExpiracaoSessao"; obDiv.style.display = "none"; obDiv.innerHTML = "
"; //obBody = document.getElementsByTagName("body")[0]; obBody = document.body; obBody.appendChild(obDiv); }catch(er){ window.setTimeout('desenharJanelaControleSessao()', 5000); } } // FUNCAO EXECUTADA QUANDO O USUARIO CLICA EM CONTINUAR function usuarioRenovarSessao(){ // FECHAR A JANELA contadorTempoExpiracaoSessao = ""; window.clearTimeout(timmerJanelaControleSessao); document.getElementById("divControleExpiracaoSessao").style.display = "none"; // INFORMAR AO SERVIDOR PARA RENOVAR A SESSAO renovarSessao(true); } // EXIBIR JANELA DE AVISO DE EXPIRACAO DE SESSAO function exibirJanelaControleSessao() { /*DEFINE EM QUANTO TEMPO O CONTADOR EXECUTARA A FUNCAO 'reFechar' */ var ns = (navigator.appName.indexOf("Netscape") != -1); var d = this.document; var verticalpos="fromtop"; var startX = 228; var startY = 100; function ml(id) { var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id]; if(d.layers)el.style=el; el.sP=function(x,y){this.style.left=x;this.style.top=y;}; el.x = startX; if (verticalpos=="fromtop") el.y = startY; else { el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight; el.y -= startY; } return el; } window.stayTopLeft=function() { if (verticalpos=="fromtop") { var pY = ns ? pageYOffset : document.body.scrollTop; ftlObj.y += (pY + startY - ftlObj.y)/8; } else { var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight; ftlObj.y += (pY - startY - ftlObj.y)/8; } ftlObj.sP(ftlObj.x, ftlObj.y); setTimeout("stayTopLeft()", 10); } ftlObj = ml("divControleExpiracaoSessao"); stayTopLeft(); document.getElementById("divControleExpiracaoSessao").style.display = "block"; contadorTempoExpiracaoSessao = new Date(); contadorTempoExpiracaoSessao.setTime(contadorTempoExpiracaoSessao.getTime() + (60000 * numeroMinutosExibicaoJanela)); exibirTempoExpiracaoSessao(); window.focus(); } // CONTROLE E TEMPORIZACAO function exibirTempoExpiracaoSessao(){ var tempoDecorrido; if(contadorTempoExpiracaoSessao!=""){ nTexto = document.getElementById("counter"); if(contadorTempoExpiracaoSessao > (new Date())) { tempoDecorrido = new Date(); tempoDecorrido.setTime(contadorTempoExpiracaoSessao.getTime() - tempoDecorrido.getTime()); txtMinutos = "0" + tempoDecorrido.getMinutes(); txtSegundos = "0" + tempoDecorrido.getSeconds(); nTexto.innerHTML = txtMinutos.substr(-2,2) + ":" + txtSegundos.substring(txtSegundos.length,txtSegundos.length-2) + " (mm:ss)"; } else { nTexto.innerHTML = ""; controleSessaoExpirarLogin(); return; } timmerJanelaControleSessao = setTimeout("exibirTempoExpiracaoSessao()", 1000); } } // CANCELAR SESSAO function controleSessaoExpirarLogin(){ // FUNCAO EXECUTADA QUANDO O TEMPO ACABA try{ window.location ='/GerenciadorAcessoWeb/segurancaAction.do?service=UsuarioDelegate&actionType=logoff&expirarSessao=1'; janelaADM.close(); }catch (er){ if (top.opener) { top.opener.location ='/GerenciadorAcessoWeb/segurancaAction.do?service=UsuarioDelegate&actionType=logoff&expirarSessao=1'; top.close(); } } } function controleSessaoEfetuarLogoff(){ // FUNCAO EXECUTADA QUANDO O USUARIO CANCELA try{ window.location='/GerenciadorAcessoWeb/segurancaAction.do?service=UsuarioDelegate&actionType=logoff'; janelaADM.close(); }catch (er){ if (top.opener) { top.opener.location = '/GerenciadorAcessoWeb/segurancaAction.do?service=UsuarioDelegate&actionType=logoff'; top.close(); } } }