//Static Globals
var SHOW = "";
var HIDE = "none";

var MENU_MOUSEOFF_TIMEOUT = 2500;
var MENU_LEFT_POSITION = 30;
var MENU_FLY_SPEED = 10;
var MENU_FLY_STEP = 6;
var MENU_FLY_DELAY = 200;

var QUOTE_CHANGE_INTERVAL = 15000;
var QUOTE_FADE_INTERVAL = 100;

//Globals
var menuTopPosition = 0;
var defaultMenuTimeout = 0;
var defaultMenuObj = null;
var newSideMenuObj = null;
var selectedMenuObj = null;

var quoteChangeTimeout = null;
var quoteIndex = 0;
var quoteFadeStep = 5;

function FindSelectedMenu() {
	var currentMenuObj = null;
	
	for(var i = 0; i < aryMenus.length; i++) {
		currentMenuObj = eval(aryMenus[i]);
		
		if(currentMenuObj.selected)
			break
	}
	
	return currentMenuObj;
}

function HandleTopMouseOver(menu) {
	if(client.smellsGood) {
		//Show Rollover Image
		menu.getElementsByTagName("img")[0].src = "interfaceImages/" + menu.id + "On.gif";
		
		/*
		clearTimeout(defaultMenuTimeout);
		defaultMenuTimeout = 0;

		if(newSideMenuObj != null) { //Animation still in motion - fix.
			clearTimeout(selectedMenuObj.timeout);
			selectedMenuObj.selected = false;
			selectedMenuObj.style.display = HIDE;
			selectedMenuObj.style.left = MENU_LEFT_POSITION; 
			selectedMenuObj.style.top = menuTopPosition;
			selectedMenuObj.innerTable.className = "sideMenuDivFinal";
			selectedMenuObj.timeout = 0;
			selectedMenuObj.fader = 1;

			clearTimeout(newSideMenuObj.timeout);
			newSideMenuObj.selected = true;
			newSideMenuObj.style.display = SHOW;
			newSideMenuObj.style.left = MENU_LEFT_POSITION; 
			newSideMenuObj.style.top = menuTopPosition;
			newSideMenuObj.innerTable.className = "sideMenuDivFinal";
			newSideMenuObj.timeout = 0;
			newSideMenuObj.fader = 8;

			//Set/Clear Pointers
			selectedMenuObj = eval(newSideMenuObj.id + "Menu");
		
			//Clear all timeouts
			newSideMenuObj = null;
		}
		
		//Set global for new menu
		newSideMenuObj = eval(menu.id + "Menu");

		if(newSideMenuObj.id != selectedMenuObj.id) { //Remove Old Menu
			if(selectedMenuObj == null)
				selectedMenuObj = FindSelectedMenu();
				
			selectedMenuObj.FlyOut();
		} else { //Already Selected - take no action
			newSideMenuObj = null;
		}
		*/
		
	}
}

function HandleTopMouseOut(menu) {
	if(client.smellsGood) {
		//Show Rollover Image
		menu.getElementsByTagName("img")[0].src = "interfaceImages/" + menu.id + "Off.gif";
		
		/*
		//Remove Old Menu
		DefaultState();
		*/
	}
}

function SubMenuMouseOver() {
	clearTimeout(defaultMenuTimeout);
	defaultMenuTimeout = 0;
}

function DefaultState() {
	if(client.smellsGood) {
		if(defaultMenuTimeout == 0) {
			defaultMenuTimeout = setTimeout("DefaultState()", MENU_MOUSEOFF_TIMEOUT);
		} else {
			defaultMenuTimeout = 0;
			
			if(selectedMenuObj == null)
				selectedMenuObj = FindSelectedMenu();
				
			if(defaultMenuObj.id != selectedMenuObj.id) {
				newSideMenuObj = defaultMenuObj;
			
				//Restore Menus			
				selectedMenuObj.FlyOut();
			}
		}
	}
}

function MenuFlyOut() {
	if(selectedMenuObj.fader >= 1) {
		selectedMenuObj.style.left = MENU_LEFT_POSITION + (Math.abs(selectedMenuObj.fader - 8) * MENU_FLY_STEP);
		selectedMenuObj.innerTable.className = "sideMenuDivOut" + selectedMenuObj.fader;
		//alert(selectedMenuObj.innerTable.className);
		
		//Decrease menuClass
		selectedMenuObj.fader--;
		
		selectedMenuObj.timeout = setTimeout("MenuFlyOut()", MENU_FLY_SPEED);
	} else {
		selectedMenuObj.selected = false;
		selectedMenuObj.fader = 1;
		selectedMenuObj.timeout = 0;
		selectedMenuObj.style.top = menuTopPosition;
		selectedMenuObj.style.left = MENU_LEFT_POSITION;
		
		//Hide Old Menu
		selectedMenuObj.style.display = HIDE;
		
		//Fly New Menu In
		newSideMenuObj.fader = 1;
		newSideMenuObj.timeout = setTimeout("MenuFlyIn()", MENU_FLY_DELAY);
	}
}

function MenuFlyIn() {
	if(newSideMenuObj.fader <= 8) {
		newSideMenuObj.selected = true;
		newSideMenuObj.style.display = SHOW;
		newSideMenuObj.style.top = menuTopPosition + (Math.abs(newSideMenuObj.fader - 8) * (MENU_FLY_STEP * 3)); 
		newSideMenuObj.innerTable.className = "sideMenuDivIn" + newSideMenuObj.fader;
		//alert(newSideMenuObj.innerTable.className);
		
		//Increase menuClass
		newSideMenuObj.fader++;
		
		newSideMenuObj.timeout = setTimeout("MenuFlyIn()", MENU_FLY_SPEED);
	} else {
		newSideMenuObj.fader = 8;
		newSideMenuObj.timeout = 0;
		newSideMenuObj.innerTable.className = "sideMenuDivFinal";
		newSideMenuObj.style.top = menuTopPosition;
		newSideMenuObj.style.left = MENU_LEFT_POSITION;
		
		//Set/Clear Pointers
		selectedMenuObj = eval(newSideMenuObj.id + "Menu");
		
		//Clear all timeouts
		newSideMenuObj = null;
	}
}

function CreateSubMenu(aryMenuAttributes) {
	//Create container DIV
	subMenuDiv = document.body.appendChild(document.createElement("div"));
	
	topHeaderTablesObj = document.getElementById("headerTables");
	breadCrumbTableObj = document.getElementById("breadCrumbTable");
	bodyTableObj = document.getElementById("bodyTable");
	
	subMenuDiv.style.position = "absolute";
	subMenuDiv.style.left = MENU_LEFT_POSITION;
	subMenuDiv.style.top = menuTopPosition = parseInt(topHeaderTablesObj.offsetHeight) + parseInt(breadCrumbTableObj.offsetHeight) - 10;
	subMenuDiv.style.width = 125;
	subMenuDiv.style.zIndex = 100;
	subMenuDiv.style.display = HIDE;

	//Set Addiotnal Properties
	subMenuDiv.id = aryMenuAttributes[0];
	subMenuDiv.selected = false;
	subMenuDiv.timeout = 0;
	subMenuDiv.fader = 8;
	
	//Fill DIV Contents		
	subMenuDiv.innerHTML += "<img src=\"interfaceImages/spacer.gif\" width=\"125\" height=\"2\" alt=\"\" border=\"0\">";
	subMenuDiv.innerTable = subMenuDiv.appendChild(document.createElement("table"));
	subMenuDiv.innerTable.className = "sideMenuDivFinal";
	subMenuDiv.innerTable.tbody = subMenuDiv.innerTable.appendChild(document.createElement("tbody"));
	subMenuDiv.innerTable.tbody.tr = subMenuDiv.innerTable.tbody.appendChild(document.createElement("tr"));
	subMenuDiv.innerTable.tbody.tr.td = subMenuDiv.innerTable.tbody.tr.appendChild(document.createElement("td"));
		
	//Create the submenus and contents
	for(i = 1; i < aryMenuAttributes.length; i+=2) {
		if(aryMenuAttributes[i+1].indexOf("target=") != -1) {
			//Contains Target Directive - parse it out
			strURL = aryMenuAttributes[i+1].substring(aryMenuAttributes[i+1].indexOf(";") + 1, aryMenuAttributes[i+1].length);
			strTarget = aryMenuAttributes[i+1].substring(aryMenuAttributes[i+1].indexOf("target=") + 8, aryMenuAttributes[i+1].indexOf(";"));
			subMenuDiv.innerTable.tbody.tr.td.innerHTML += "<p class=\"sideMenuItem\"><a href=\"" + strURL + "\" target=\"" + strTarget + "\">" + aryMenuAttributes[i] + "</a></p>\n\n";
		} else {
			subMenuDiv.innerTable.tbody.tr.td.innerHTML += "<p class=\"sideMenuItem\"><a href=\"" + aryMenuAttributes[i+1] + "\">" + aryMenuAttributes[i] + "</a></p>\n\n";
		}
	}
	
	//Set event handlers
	subMenuDiv.onmouseover = SubMenuMouseOver;
	subMenuDiv.onmouseout = DefaultState;
	
	//Set Function Pointers
	subMenuDiv.FlyIn = MenuFlyIn;
	subMenuDiv.FlyOut = MenuFlyOut;

	return subMenuDiv;
}

/* Begin Quote Functions */
function QuoteChange() {
	quoteIndex = Math.floor(Math.random() * aryQuotes.length);

	QuoteFadeOut(5);
}

function QuoteFadeOut() {
	clearTimeout(quoteChangeTimeout);
	
	if(quoteFadeStep > 0) {
		quote.className = "quote" + quoteFadeStep;
		quoteFadeStep--;
		setTimeout("QuoteFadeOut()", QUOTE_FADE_INTERVAL);
	} else {
		//Change the quote
		quote.innerHTML = aryQuotes[quoteIndex];
		quoteFadeStep = 1;
		QuoteFadeIn();
	}
}

function QuoteFadeIn() {
	clearTimeout(quoteChangeTimeout);
	
	if(quoteFadeStep < 6) {
		quote.className = "quote" + quoteFadeStep;
		quoteFadeStep++;
		setTimeout("QuoteFadeIn()", QUOTE_FADE_INTERVAL);
	} else {
		quoteFadeStep = 5;
		quoteChangeTimeout = setTimeout("QuoteChange()", QUOTE_CHANGE_INTERVAL);
	}
}

function QuoteMeasure() {
	var quoteOffset = 0;
	quote.style.visibility = "hidden";
	
	for(var i = 0; i < aryQuotes.length; i++) {
		quote.innerHTML = aryQuotes[i];
		quoteOffset = document.getElementById("quoteTable").offsetHeight > quoteOffset ? document.getElementById("quoteTable").offsetHeight : quoteOffset;
	}
	
	//Resize spacer image
	document.getElementById("quoteSpacer").height = quoteOffset;
	
	//Pick a random Quote
	quote.innerHTML = aryQuotes[Math.floor(Math.random() * aryQuotes.length)];
	quote.style.visibility = "";
}
/* End Quote Functions */
