// ===================================================================
// Preload navigation images
// ===================================================================
function preloadImages() {
	var tabImages = new Array("nav_about_off.gif","nav_about_on.gif","nav_locations_off.gif","nav_locations_on.gif","nav_login_off.gif","nav_login_on.gif","nav_news_off.gif","nav_news_on.gif","nav_research_off.gif","nav_research_on.gif","nav_services_off.gif","nav_services_on.gif","nav_testimonials_off.gif","nav_testimonials_on.gif");
	var tabImagesArray = new Array(tabImages.length);
	
	for(var i = 0; i < tabImages.length; i++) {
		tabImagesArray[i] = new Image();
		tabImagesArray[i].src = "/images/header/" + tabImages[i];
	}
}

var activeMenu = "";
var timeout = 600;
var hideMenuTimer = null;
var hiddenFlag = false;
var timerStart;
var browserAgent = navigator.userAgent.toLowerCase();
var isOpera = browserAgent.indexOf("opera") != -1;

// ===================================================================
// Create menu object
// ===================================================================
function Menu(label) {
	if (!window.menus) window.menus = new Array();
	window.menus[label] = this;
	window.menus[window.menus.length] = this;
}

// ===================================================================
// Find dom element
// ===================================================================
function FIND(item) {
	if (window.isOpera) return(document.getElementById(item));
	if (document.all) return(document.all[item]);
	if (document.getElementById) return(document.getElementById(item));
	return(false);
}

// ===================================================================
// Show menu
// ===================================================================
function showMenu(menuName) {
	hideActiveMenu();
	activeMenu = menuName;
	var activeMenuObject = FIND(menuName);
	if (activeMenuObject) {
		if (activeMenuObject.visibility && !window.isOpera) {
			activeMenuObject.visibility = "visible";
		} else if (activeMenuObject.style) {
			var s = activeMenuObject.style;
			s.visibility = "visible";
		}
		eval("document." + window.menus[activeMenu].tabName + ".src = '" + window.menus[activeMenu].tabImageOn + "';");
	}
	resetTimeout();
}

// ===================================================================
// Hide menus
// ===================================================================
function hideActiveMenu() {
	if (activeMenu != "") {
		var activeMenuObject = FIND(activeMenu);
		if (activeMenuObject) {
			if (activeMenuObject.visibility && !window.isOpera) {
				activeMenuObject.visibility = "hidden";
			} else if (activeMenuObject.style) {
				var s = activeMenuObject.style;
				s.visibility = "hidden";
			}
		}
		eval("document." + window.menus[activeMenu].tabName + ".src = '" + window.menus[activeMenu].tabImageOff + "';");
		activeMenu = "";
	} else {
		for (var i=0; i < window.menus.length; i++) {
			eval("document." + window.menus[i].tabName + ".src = '" + window.menus[i].tabImageOff + "';");
		}
	}
}

// ===================================================================
// Reset menus
// ===================================================================
function resetMenus() {
	hideActiveMenu();
	
	//reset tabs to original state
	for (var i=0; i < window.menus.length; i++) {
		eval("document." + window.menus[i].tabName + ".src = '" + window.menus[i].tabImage + "';");
	}
}

// ===================================================================
// Delay before hiding menus
// ===================================================================
function startTimeout() {
	if (activeMenu != "") {
		timerStart = new Date();
		hiddenFlag = true;
		hideMenuTimer = setTimeout("doHide()", timeout);
	}
}

// ===================================================================
// Clear delay
// ===================================================================
function resetTimeout() {
	if (hideMenuTimer) clearTimeout(hideMenuTimer);
	hideMenuTimer = null;
	hiddenFlag = false;
}

// ===================================================================
// Hide windows on timeout
// ===================================================================
function doHide() {
	if (!hiddenFlag || (activeMenu == "")) return;
	var elapsed = new Date() - timerStart;
	if (elapsed < timeout) {
		hideMenuTimer = setTimeout("doHide()", timeout+100-elapsed);
		return;
	}
	hiddenFlag = false;
	resetMenus();
}