//Criando o objeto http_request
if (window.XMLHttpRequest)
{
    http_request = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
}

//Variaveis Gerais
var dvMensagemSessaoContent = '<div id=\"mensagemSessao\">';
dvMensagemSessaoContent += 'Sua sessão vai expirar em ';
dvMensagemSessaoContent += '<span id=\"contador\">&nbsp;</span> ';
dvMensagemSessaoContent += 'segundos.<br \/>';
dvMensagemSessaoContent += '<a href=\"JavaScript:\/\/void(0);\" onclick=\"atualizaSession()\">';
dvMensagemSessaoContent += 'Renovar Sessão';
dvMensagemSessaoContent += '<\/a>';
dvMensagemSessaoContent += '<\/div>';

var dvSessaoFinalizadaContent = '<div id=\"mensagemSessaoFinalizada\">';
dvSessaoFinalizadaContent += 'Sua sessão expirou.<br \/>';
dvSessaoFinalizadaContent += '<a href=\"\/?fa=seguranca.login\">';
dvSessaoFinalizadaContent += 'Login';
dvSessaoFinalizadaContent += '<\/a>';
dvSessaoFinalizadaContent += '<\/div>';

var tempoSessao = 58;
var tempoAviso = 5;

var segundosExpira;
var arTime = new Array();
var idTimeSessao = 0;
var idSessao = 0;
var primeira = false;

var sessionAjax = true;

var spContador = "";

var asOL = window.onload;
window.onload = function()
{
	if (asOL) asOL();
	sessionExpire(tempoSessao, tempoAviso);
}

document.writeln("\<div id=\"mensagemSessaoBase\"\>\<\/div\>");

function sessionExpire(minutos, previsao)
{
	milisegundos = ( minutos - previsao ) * 60 * 1000;
	segundosExpira = previsao * 60;
	arTime = new Array();
	if (idTimeSessao != 0 ) window.clearTimeout(idTimeSessao);
	idTimeSessao = window.setTimeout("exibeAlerta(" + segundosExpira + ")",milisegundos);
	if (idSessao != 0 ) window.clearTimeout(idSessao);
	idSessao = window.setTimeout("exibeLogin(" + segundosExpira + ")",minutos*60*1000);
	document.getElementById("mensagemSessaoBase").style.display = "none";
	http_request.open('GET', '\/index.cfm?fa=seguranca.renovaSessao', true);
	http_request.send(null);
}

function formatDivBase()
{
	divBase = document.getElementById("mensagemSessaoBase");
	divMaster = document.getElementById("master");
	divBase.style.display = "block";
	divBase.style.backgroundColor = "#000";
	divBase.style.top = "0";
	divBase.style.left = "0";
	divBase.style.margin = "0";
	divBase.style.width = "100%";
	divBase.style.height = "1500px";
	//divBase.style.height = divMaster.offsetHeight + "px";
}

function exibeAlerta(segundos)
{
	formatDivBase();
	
	divBase = document.getElementById("mensagemSessaoBase");
	divBase.style.display = "block";
	divBase.innerHTML = dvMensagemSessaoContent;
	
	//contador
	spContador = document.getElementById("contador");
	initContador(tempoAviso * 60);
	
	window.scrollTo(0, 0);
	vSelects("hidden");
}

function initContador(segs)
{
	for ( i = 0 ; i < segs ; i++ )
	{
		self.setTimeout("mudaSpanContador("+(segs-i)+")",(i*1000)+1);
	}
}

function mudaSpanContador(v)
{
	spContador.innerHTML = v;
}

function exibeLogin()
{
	document.getElementById("mensagemSessaoBase").innerHTML = dvSessaoFinalizadaContent;
	http_request.open('GET', '\/index.cfm?fa=seguranca.logout', true);
	http_request.send(null);
}

function atualizaSession()
{
	sessionExpire(tempoSessao, tempoAviso);
	vSelects("visible");
	window.open("\/index.cfm?fa=seguranca.renovaSessao","renovasessao","height=5,width=5,status=no,toolbar=no,menubar=no,location=no");
}

function vSelects(vis)
{
	try
	{
		arSel = document.getElementsByTagName("select");
		
		for ( i = 0 ; i < arSel.length ; i++ )
		{
			arSel[i].style.visibility = vis;
		}
	}
	catch(err){}
}
