var myMenu = Array();
var myTopLevelMenu = Array();
var currentMenuNum = "";
var myCloseTimer = "";
var menuDelay = 300;
var defaultMenuNum = "";

function initMenu() {
	myMenu[1] = document.getElementById("secondNav_avalon");
	myMenu[2] = document.getElementById("secondNav_gordon");
	myTopLevelMenu[1] = document.getElementById("nav_dojos_link");
}

function openMenu(myMenuNum) {
	clearMenuTimer(true);
	
	// if default menu num is not empty then first hide default menu..
	hideDefaultMenu();

	// show new menu indicated by myMenuNum..
	currentMenuNum = myMenuNum;
	
	// show background for 2nd nav
	show2ndNavBg(); 
	
	// remove hide class..
	var tempClassName = removeClass(myMenu[myMenuNum].className, "hide");
	myMenu[myMenuNum].className = tempClassName;
	// add on class if not already selected..
	if (myTopLevelMenu[myMenuNum].className.indexOf("selected") == -1) {
		myTopLevelMenu[myMenuNum].className = "on";
	}
}

function closeMenu(myMenuNum) {
	if (currentMenuNum == "") {
		currentMenuNum = myMenuNum;
	}
	myCloseTimer = setTimeout("closeMenuNow();", menuDelay);
}

function closeMenuNow() {
	if (defaultMenuNum == "") hide2ndNavBg();
	
	if (currentMenuNum != "") {
		if (currentMenuNum != defaultMenuNum) {
			// remove show class..
			var tempClassName = removeClass(myMenu[currentMenuNum].className, "show");
			myMenu[currentMenuNum].className = tempClassName;
			// add hide class..
			tempClassName = addClass(myMenu[currentMenuNum].className, "hide");
			myMenu[currentMenuNum].className = tempClassName;
			// remove on from top level nav..
			if (myTopLevelMenu[currentMenuNum].className == "on") {
				myTopLevelMenu[currentMenuNum].className = "";
			}			
		}
		currentMenuNum = "";
		showDefaultMenu();
	} else {
		// must be closing default menu.. ?
		if (defaultMenuNum != "") {
			// remove selected class..
			var tempClassName = removeClass(myMenu[defaultMenuNum].className, "selected");
			myMenu[defaultMenuNum].className = tempClassName;
			// add hide class..
			tempClassName = addClass(myMenu[defaultMenuNum].className, "hide");
			myMenu[defaultMenuNum].className = tempClassName;
		}
	}
}

function clearMenuTimer(thenClose) {
	if (myCloseTimer != '') {
		clearTimeout(myCloseTimer);
		if (thenClose) {
			closeMenuNow();
		}
	}
}

function setMenu(myTopMenuNum, mySecondLevelMenuNum) {
	defaultMenuNum = myTopMenuNum;
	showDefaultMenu();
	if (this.ie) {
		mySecondLevelMenuNum = (mySecondLevelMenuNum * 2) - 2;
	} else {
		mySecondLevelMenuNum = (mySecondLevelMenuNum * 2) - 1;
	}
	if (typeof(myMenu[myTopMenuNum].childNodes[mySecondLevelMenuNum]) != "undefined") {
		if (typeof(myMenu[myTopMenuNum].childNodes[mySecondLevelMenuNum].className) != "undefined") {
			myMenu[myTopMenuNum].childNodes[mySecondLevelMenuNum].className = "selected";
		}
	}
}

function showDefaultMenu() {
	if (defaultMenuNum != "") {
		var tempClassName = "";
		if (myTopLevelMenu[defaultMenuNum].className.indexOf("selected") == -1) {
			// need to add "selected" to class name.. should only be on first load..
			tempClassName = addClass(myTopLevelMenu[defaultMenuNum].className, "selected");
			myTopLevelMenu[defaultMenuNum].className = tempClassName;
		}
		if (myMenu[defaultMenuNum].className.indexOf("hide") != -1) {
			// first remove hide..
			tempClassName = removeClass(myMenu[defaultMenuNum].className, "hide");
			myMenu[defaultMenuNum].className = tempClassName;
		}
//alert("here");
		show2ndNavBg(defaultMenuNum);
	}
}

function hideDefaultMenu() {
	if (defaultMenuNum != "") {
		// first remove show..
		var tempClassName = removeClass(myMenu[defaultMenuNum].className, "show");
		myMenu[defaultMenuNum].className = tempClassName;
		// then hide the default menu..
		var tempClassName = addClass(myMenu[defaultMenuNum].className, "hide");
		myMenu[defaultMenuNum].className = tempClassName;
	}
}

function show2ndNavBg() {
	document.getElementById("secondNav").style.backgroundPosition = "0 0";
}

function hide2ndNavBg() {
	document.getElementById("secondNav").style.backgroundPosition = "0 -18px";
}

function addClass(myClassStr, myNewClass) {
	// appends class to string if not already in string..
	if (myClassStr.indexOf(myNewClass) == -1) {
		if (myClassStr != "") {
			myClassStr += " " + myNewClass;
		} else {
			myClassStr = myNewClass;
		}
	}
	return myClassStr;
}

function removeClass(myClassStr, myRemoveClass) {
	// avoids using str.replace() since not compatible cross browser..
	var myIndex = myClassStr.indexOf(myRemoveClass);
	if (myIndex == -1) {
		return myClassStr;
	} else {
		var tempClassStr = "";
		if (myIndex == 0) {
			tempClassStr = myClassStr.substr(myRemoveClass.length + 1);
			return tempClassStr;
		} else {
			tempClassStr = myClassStr.substr(0, myIndex - 1);
			tempClassStr += myClassStr.substr(myIndex + 1 + myRemoveClass.length);
			return tempClassStr;
		}
	}
}