var ZSessionID = 0;
var ZSequence = 0;
var Submitted = false;
var timerID = 0;
var timed_out = false;

// PostZ()
// Referenced in onUnloadZ()
// This function is used to assign a file to the hidden field, "cmd", and
// submit the page.
//
function PostZ(avalue)
{
	if (timerID)
	{
		clearInterval(timerID);
		navigator.ZTimerID = null;
		timerID = 0;
	}

	if (Submitted)
	{
		return true;
	}
	Submitted = true;
	if (avalue == "unload" || avalue == "close")
	{
		navigator.ZSessionID = null;
		navigator.ZSequence = null;
	}
	document.zform.cmd.value = avalue;
	//alert("cmd=" + document.zform.cmd.value);
	//alert("PostZ(" + avalue + ")");
	document.zform.submit();
	return true;
}

function timeoutZ()
{
var rv = false;

	clearInterval(timerID);
	navigator.ZTimerID = null;
	timerID = 0;

	timed_out = true;

	ZSessionID = 0;
	navigator.ZSessionID = null;
	navigator.ZSequence = null;

	alert("Your Support Login Timed-out.");
	navigator.ZChainTo = navigator.ZStartLocation;
	//navigator.ZStartLocation = null;
	location.replace("/chain.html");

	return true;
}

function onSubmitZ()
{
	if (timerID)
	{
		clearInterval(timerID);
		navigator.ZTimerID = null;
		timerID = 0;
	}

	if (document.zform.fkey.value == "ViewSource")
	{
		document.zform.fkey.value = "F5";
		Submitted = true;
		//alert("onSubmitZ(ViewSource -- F5)");
		return document.zform.submit();
	}

	if (document.zform.WEBUSR_USER_IN.value == "")
	{
		alert("User Name can't be blank");
		document.zform.WEBUSR_USER_IN.focus();
		return false;
	}

	if (document.zform.WEBUSR_PASSWD_IN.value == "")
	{
		alert("Password can't be blank");
		document.zform.WEBUSR_PASSWD_IN.focus();
		return false;
	}

	Submitted = true;
	//alert("onSubmitZ() - zform.action=" + document.zform.action);
	//document.zform.submit();
	return true;
}

function onLoadNZ()
{
var rv = 0;
var kbtmout = kbtmoutStr.valueOf();

	if (navigator.ZTimerID)
	{
		clearInterval(navigator.ZTimerID);
		navigator.ZTimerID = null;
	}

	//alert("ZChainTo=" + navigator.ZChainTo + "\nZStartLocation=" + navigator.ZStartLocation);
	if (navigator.ZChainTo && navigator.ZStartLocation
	&&  navigator.ZChainTo == navigator.ZStartLocation)
	{
		navigator.ZSessionID = null;
		navigator.ZSequence = null;
		navigator.ZStartLocation = null;
		//alert("ZChainTo=" + navigator.ZChainTo);
		location.replace("/chain.html");
		return true;
	}

	if (!navigator.ZStartLocation)
	{
		navigator.ZStartLocation = location.pathname;
		navigator.ZChainTo = null;
	}

	//alert("ZStartLocation=" + navigator.ZStartLocation);
	//alert("ZSessionID=" + ZSessionID + "\nZSessionStr=" + ZSessionStr);
	if (ZSessionStr.search(/HTML_COOKIE/) < 0
	&&  ZSequenceStr.search(/HTML_SEQUENCE/) < 0)
	{
		ZSessionID = ZSessionStr.valueOf();
		//alert("ZSessionID=" + ZSessionID + "\nZSessionStr=" + ZSessionStr);
		ZSequence = ZSequenceStr.valueOf();
		document.zform.session.value = ZSessionID;
		document.zform.sequence.value = ZSequence;
		//navigator.ZSessionID = null;
	}
	//alert('WEBUSR_USERNAME=' + document.zform.WEBUSR_USERNAME.value);
/*
	if (document.zform.WEBUSR_USERNAME.value != "")
		document.zform.WEBUSR_USER_IN.value = document.zform.WEBUSR_USERNAME.value;

	document.zform.WEBUSR_PASSWD_IN.value = document.zform.WEBUSR_PASSWORD.value;
*/
	// If this is a new window or it's associated with a new System-Z
	// application session or the host site has changed, initialize
	// the navigator properties.
	//
	if (!navigator.ZSessionID
	||  navigator.ZHost != location.host
	||  navigator.ZSessionID != ZSessionID)
	{
		navigator.ZSessionID = ZSessionID;
		navigator.ZSequence = ZSequence;
		navigator.ZHost = location.host;
	}

	// If the System-Z application session ID doesn't match or
	// this page has the wrong session sequence number, assume
	// the this page was not displayed by the System-Z application.
	// Notify the user and close this window.
	//
	//alert("ZSequence=" + ZSequence + "\nZSequenceStr=" + ZSequenceStr);
	if (ZSequence && navigator.ZSequence != ZSequence)
	{
		ZSequence = 0;
		ZSessionID = 0;
		navigator.ZChainTo = navigator.ZStartLocation;
		//navigator.ZStartLocation = null;
		PostZ('unload');
		return true;
	}
	navigator.ZSequence++;	// Keep the session sequence number in sync
							// with the System-Z application.

	//alert('CHAIN_TO=' + document.zform.CHAIN_TO.value);
	if (document.zform.CHAIN_TO.value != "")
	{
		document.zform.username.value = document.zform.WEBUSR_USER_IN.value;
		document.zform.Password.value = document.zform.WEBUSR_PASSWD_IN.value;
		document.zform.action = document.zform.CHAIN_TO.value;
		navigator.ZChainTo = document.zform.CHAIN_TO.value;
		document.zform.CHAIN_TO.value = navigator.ZStartLocation;
		//navigator.ZStartLocation = null;
		if (ZSessionID)
			PostZ('unload');
		else
			location.replace("/chain.html");
		return true;
	}

/*
	if (document.zform.WEBUSR_FL_SUPPORTADMIN.value == "Y")
	{
		rv = confirm("You are a Web Administrator.\nDo you want to continue to the\nstandard administration page?\n");
		
		if (rv == true)
			document.zform.fkey.value = "OK";
		else
			document.zform.fkey.value = "F7";

		if (ZSessionID)
			PostZ('none');
		else
			location.replace("/chain.html");

		return true;
	}
*/
	//alert('kbtmout=' + kbtmout);

	if (kbtmout && kbtmoutStr.search(/HTML_TIMEOUT/) < 0 && kbtmout != 0)
	{
		kbtmout -= 7;
		if (kbtmout < 0)
			kbtmout = 1;

		kbtmout *= 1000;
		navigator.ZTimerID = timerID = setInterval("timeoutZ()", kbtmout);
	}
	return true;
}

function onUnloadZ()
{
	if (!Submitted && !timed_out && ZSessionID)
	{
		navigator.ZChainTo = navigator.ZStartLocation;
		navigator.ZSessionID = null;
		navigator.ZSequence = null;
		//navigator.ZStartLocation = null;
		//return PostZ('unload');
	}
	return true;
}
