//Main Window Functions
var msTillPopup;
var idletimeoutUrl, logOffUrl, resourceRoot, refreshPage, buffer;
var sessionWarningWindow;
var interval;
//////////////////////////////////////////////////
function MaintainChildFocus()
{
  try
  {
		if(sessionWarningWindow)
		{
			if(sessionWarningWindow.closed)
			{	window.clearInterval(interval);	}
			else
			{	sessionWarningWindow.focus();	}
		}
  } catch (e) {   }
}
        
function RegisterTimeout(seconds, resource, idletimeout, logOff, refresh)
{
	msTillPopup = seconds * 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;
	sessionWarningWindow = window.open ("", "warning", 'toolbar=0,titlebar=0,scrollbars=0,resizable=0,menubar=0,Height=185,Width=578,top=' + topOffset + ',left=' + leftOffset);
	sessionWarningWindow.focus();
	Write();
	interval = window.setInterval("MaintainChildFocus()",1);
}

function Write()
{
	var head = document.getElementsByTagName("HEAD");
	buffer = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>";
	buffer += "<HTML>";
	buffer += "<head>";
	buffer += "<title>Session Timeout Warning</title>";
	buffer += head[0].innerHTML;
	buffer += "<style>.container {width:100%; height:100%;}</style>";
	buffer += "<script>var timerID = window.setTimeout('ShowLogOffMessage()', 60000);";
	buffer += "var hasRefreshed = false;";
	buffer += "var logOffUrl='" + logOffUrl + "';";
	buffer += "var idletimeoutUrl='" + idletimeoutUrl + "';";
	buffer += "</script>";
	buffer += "</head>";
	buffer += "<BODY style='background-color:#FFFFFF;border: solid #5280b1 5px;border-top-width : 25px;' onLoad='javascript:Hide(\"ExpiredView\");' onUnLoad='javascript:Exit();' onblur='LoseFocus();'>";
	buffer += "<table id='NormalView' class='container'>";
	buffer += "<tr><td class='spacerH5'>&nbsp;</td></tr>";
	buffer += "<tr>";
	buffer += "<TD rowspan='3' class='spacerW15'>&nbsp;</TD>";
	buffer += "<td align='center' class='bodyTextBold'>";
	buffer += "<img src='" + resourceRoot + "/images/clock_03.gif' alt='clock' width='21' height='21' align='absmiddle'>&nbsp;";
	buffer += "Your online session will expire in approximately one minute.<br/>Click \"OK\" to continue your online session or click \"Log Off\"<br/>to end your session now.";
	buffer += "</td>";
	buffer += "<TD rowspan='3' class=spacerW15>&nbsp;</TD>";
	buffer += "</tr>";
	buffer += "<tr><td><div class='dashes'>&nbsp;</div></td></tr>";
	buffer += "<tr>";
	buffer += "<td align='center' class='tanButtonRow'>";
	buffer += "<INPUT type='button' value='&nbsp;&nbsp;OK&nbsp;&nbsp;' class='buttonFwd' onClick='javascript:HandleRefresh();'>";
	buffer += "<INPUT type='button'  value='Log Off' class='buttonFwd' onclick='javascript:HandleLogOff();'>";
	buffer += "</td>";
	buffer += "</tr>";
	buffer += "<tr><td class='spacerH10'>&nbsp;</td></tr>";
	buffer += "</table>";
	buffer += "<table id='ExpiredView' class='container'>";
	buffer += "<tr><td class='spacerH5'>&nbsp;</td></tr>";
	buffer += "<tr>";
	buffer += "<TD rowspan='3' class=spacerW20>&nbsp;</TD>";
	buffer += "<td align='center' class='bodyTextBold'>";
	buffer += "<br><img src='" + resourceRoot + "/images/clock_03.gif' alt='clock' width='21' height='21' align='absmiddle'>&nbsp;Your online session has expired.<br>";
	buffer += "<br><br>";
	buffer += "</td>";
	buffer += "<TD rowspan='3' class=spacerW20>&nbsp;</TD>";
	buffer += "</tr>";
	buffer += "<tr><td><div class='dashes'>&nbsp;</div></td></tr>";
	buffer += "<tr>";
	buffer += "<td align='center' class='tanButtonRow'>";
	buffer += "<INPUT type='button'  value='&nbsp;&nbsp;OK&nbsp;&nbsp;' class='buttonFwd' onclick='javascript:HandleLogOff();'>";
	buffer += "</td>";
	buffer += "</tr>";
	buffer += "<tr><td class='spacerH10'>&nbsp;</td></tr>";
	buffer += "</table>";
	buffer += "</BODY>";
	buffer += "</html>";

	sessionWarningWindow.document.open();	
	sessionWarningWindow.document.write(buffer);
	sessionWarningWindow.document.close();
}

function SessionRefresh()
{	
	setTimeout('FireWarning()', msTillPopup);
	var myFrame = document.createElement("IFRAME");
	myFrame.src = refreshPage;
	myFrame.height = "0px";
	myFrame.width = "0px";
	document.body.appendChild(myFrame);
	sessionWarningWindow.close();	
}

//Child functions
function ShowLogOffMessage()
{	Hide("NormalView"); Show("ExpiredView"); hasRefreshed=true; self.opener.location=idletimeoutUrl;}
		
function HandleRefresh()				
{hasRefreshed = true;self.opener.SessionRefresh();}

function HandleLogOff()
{
hasRefreshed = true;
self.opener.location= logOffUrl;
if(self.opener.bolCloseChildren)
{
self.opener.bolCloseChildren();
}
self.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 = ""; }
