//Main Window Functions
var msTillPopup;
var idletimeoutUrl, logOffUrl, resourceRoot, refreshPage, buffer;
var sessionWarningWindow;
var interval;
//////////////////////////////////////////////////

//document.domain = document.domain;//This has to be done for IE cross frame security to work

function MaintainChildFocus()
{
  try
  {
		if(sessionWarningWindow)
		{
			if(sessionWarningWindow.closed)
			{	window.clearInterval(interval);	}
			else
			{	sessionWarningWindow.focus();	}
		}
  } catch (e) {   }
}

var test = (document.URL.indexOf("A59") != -1);
        
function RegisterTimeout(seconds, resource, idletimeout, logOff, refresh)
{
	msTillPopup = seconds * 1000;
	if(test)
	{
		msTillPopup = 10 * 1000;
	}
	resourceRoot = resource;
	logOffUrl = logOff;
	idletimeoutUrl = idletimeout;
	refreshPage = refresh;
	window.setTimeout('FireWarning()', msTillPopup);
}

function HandleFocus()
{
  if (sessionWarningWindow)
  {
    if (!sessionWarningWindow.closed)
    {sessionWarningWindow.focus();}
    else
    {window.top.onfocus = "";}
  }
  return false;
}

function Unload()
{
  if (sessionWarningWindow)
  {	sessionWarningWindow.close();}
}

function FireWarning()
{	
	var leftOffset = (screen.width - 578) / 2;
	var topOffset = (screen.height - 185) / 2;
	window.onfocus = HandleFocus;
	window.onunload = Unload;
	
	var url = document.URL;
	var domain = ""
	var start = url.indexOf("//") + 2;
	url = url.substring(start, url.indexOf("/", start));
	if(url != document.domain)//if the domain has been set (for iframe usage, then we also need to set the domain of the session popup.  otherwise we DON'T want to!
	{	domain = document.domain; }	
	
	sessionWarningWindow = window.open ("SessionWindow.aspx?LogOffUrl=" + logOffUrl + "&domain=" + domain, "warning", 'toolbar=0,titlebar=0,scrollbars=0,resizable=0,menubar=0,Height=185,Width=578,top=' + topOffset + ',left=' + leftOffset);
	interval = window.setInterval("MaintainChildFocus()",1);
}

function SessionRefresh()
{	
	setTimeout('FireWarning()', msTillPopup);
	var myFrame = document.createElement("IFRAME");
	myFrame.src = refreshPage;
	myFrame.height = "0px";
	myFrame.width = "0px";
	document.body.appendChild(myFrame);
	if(sessionWarningWindow)
	{sessionWarningWindow.close();}
}

//Child functions
function ShowLogOffMessage()
{	
	try
	{
		Hide("NormalView"); Show("ExpiredView"); hasRefreshed=true; self.opener.location=idletimeoutUrl;
	}
	catch(Error)
	{
		_Show('Error Showing Loggoff Message');
	}
}
function HandleRefresh()				
{
	hasRefreshed = true;
	try
	{
		self.opener.SessionRefresh();
	}
	catch(Error)
	{
		_Show('Error Refreshing Parent');
		window.close();
	}
}

function HandleLogOff()
{
	try
	{
		hasRefreshed = true;
		self.opener.location= logOffUrl;
		if(self.opener.bolCloseChildren)
		{	self.opener.bolCloseChildren();	}
		self.close();
	}
	catch(Error)
	{
		_Show('Error Handling Loggoff');
		window.close();
	}	
}

function Exit()
{	if(hasRefreshed==false){ShowLogOffMessage();}}

function LoseFocus()
{	self.focus();	}

function Hide(id) 
{ document.getElementById(id).style.display = "none"; }

function Show(id) 
{ document.getElementById(id).style.display = ""; }
