/*
'Author					: Stefan Kruger
'Date Created			: 04-Mar-2005
'Last Changed by		: Stefan Kruger
'Date Changed			: 30-Mar-2005
'Version				: 1.0.30032005
'Comments:
'Date:			Desc:															
'--------------------------------------------------------------------------------------------
'16-Mar-2005	Fixed the scrolling of the tab menu
'16-Mar-2005	Added non-refresh login / logoff functionality
'16-Mar-2005	Added error checking for session expiry in Tab and Menu loader
'30-Mar-2005	Changed tab loader to use new capabilities for loader dynamics
'05-Apr-2005	Update genericSubmit() for stopProcessing functionality

'ToDoList:
'Date:			Desc:															Status:
'--------------------------------------------------------------------------------------------

*/

//////////////////////////////////////////////////////////////////////////////////////////////
//PAGE INIT DEFINITIONS
//////////////////////////////////////////////////////////////////////////////////////////////

var loaded = false;
var actualwidth = -1;
var menuwidth = 382;
var menuheight = 22;
var scrollspeed = 4;

/*
Write hidden div used in Mozilla browser scrolling.
*/
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100;left:-1000"></span>')

//////////////////////////////////////////////////////////////////////////////////////////////
//PREDEFINED USER FUNCTIONS USED IN THE POST-LOADING OF MENUS
//////////////////////////////////////////////////////////////////////////////////////////////

/*
This function is called on successful loading of the tab page
*/
var tabLoader = function (oXML,outputDiv) {
	//Check for expiry of content before loading
	if (oXML.responseText.substr(2,35) == "<!-- Message box start delimiter-->"){
		//alert(oXML.responseText.substr(2,35))
		expireSession();
	}
	else {
		var retar = new Array()
		retar = (oXML.responseText).split("|^^|")
		//alert(retar);
		//topcontent.innerHTML = oXML.responseText
		if (retar.length) {
			if (retar.length == 2) {
				if (retar[0] == 1){
					toggleArrows(true);
				}
				else if (retar[0] == 0){
					toggleArrows(false);
				}
				//Display tabcontent in both the Mozilla temp span and the actual output div
				temp.innerHTML = retar[1]
				eval(outputDiv).innerHTML = retar[1];
				//The scroll width for case IE (direct from output div) or Mozilla (from the hidden temp div)
				actualwidth = document.all? eval(outputDiv).offsetWidth : document.getElementById("temp").offsetWidth
			}
			else {
				alert ("Invalid length of tab menu returned.");
			}
		}
		else {
			alert ("Invalid Tab menu returned.");
		}
		loaded = true;
		try {CollectGarbage();}
		catch (ex) {}
		//This can be used to periodically refresh the tab menu if needed.
		//setTimeout("getTabMenu(true)",10000);
	}
	regularCursor();
	oXML = null;
};

/*
This function is used when displaying a loaded section menu
*/
var completedLoadMenu = function (oXML,outputDiv) {
	//Check for expiry of content before loading
	if (oXML.responseText.substr(2,35) == "<!-- Message box start delimiter-->"){
		expireSession();
		regularCursor();
		oXML = null;
	}
	else {
		completedSingleLoad(oXML,outputDiv);
	}
};

//////////////////////////////////////////////////////////////////////////////////////////////
//MENU FUNCTIONS
//////////////////////////////////////////////////////////////////////////////////////////////

/*
The actual tab loading/clearing function
loadOrUnload = true --> load
loadOrUnload = false --> unload (for Logoff)
*/
function getTabMenu(loadOrUnload){
	if (tabcontent) {
		if (loadOrUnload) {
			var page = "tabs.asp";
			var data = "";
			loaded = false;
			genericSubmit(page,data,null,'tabcontent',tabLoader,tabloadingstring,false);
		}
		else {
			tabcontent.innerHTML = "";
		}
	}
}

/*
This function loads a section menu for a TABID that is specified
*/
function loadMenu(tabid){
	//contentHider();
	loadWelcomeScreen();
	var page = "menu.asp"
	var data = "tabid=" + tabid
	genericSubmit(page,data,null,'menucontent',completedLoadMenu,regularloadingstring,false);
}

//////////////////////////////////////////////////////////////////////////////////////////////
//TAB SCROLLING FUNCTIONS
//////////////////////////////////////////////////////////////////////////////////////////////

/*
The scroll arrow display toggling function
onOrOff = true --> Display arrows
onOrOff = false --> Hide arrows
*/
function toggleArrows(onOrOff) {
	var display
	//Set up display mode
	if (onOrOff) {
		display = 'visible'
	}
	else {
		display = 'hidden'
	}
	//Set styles if available
	try {
		leftarrow.style.visibility = display;
		rightarrow.style.visibility = display;
	}
	catch (ex) {}
}

/*
Move tabs left
*/
function moveleft(){
	if (loaded){
		if (parseInt(tabcontent.style.left) > (menuwidth - actualwidth)){
			tabcontent.style.left = parseInt(tabcontent.style.left) - scrollspeed
		}
		lefttime = setTimeout("moveleft()",15)
	}
}

/*
Move tabs right
*/
function moveright(){
	if (loaded){
		if (parseInt(tabcontent.style.left) < 0){
			tabcontent.style.left = parseInt(tabcontent.style.left) + scrollspeed
		}
		righttime = setTimeout("moveright()",15)
	}
}
