
// INITIALIZE VARIABLES //
var menuHilite = "#008000";
var menuTwirl = null;
var menuZap = null;
var menuTbody = null;
var chapterLock = null;
var chapterTwirl = null;
var ichap = 0;


// MAIN CALL FROM CHAPTER PAGE //
function chapterMenu(chapter) { 
	// match chapter to input
	while ( chapter != chapterList[ichap][0] )
		{ ichap++; if (ichap == chapterList.length) { break; } }
	// set initial view (lock open chapter menu)
	chapterLock =1;
	chapterTwirl = 2;
	menuTwirl = 2;
	drawMenu();
}


// MAIN CALL FROM UOAA PAGE //
function uoaaMenu() { 
	drawMenu();
}


// GENERATE MENU //
function drawMenu() { 
	
	// start menu construction
	var menuTable = document.getElementById("menutable");

	if (menuZap) {
		var divKid = document.getElementById("dynaMenu");
		var divZap = menuTable.removeChild(divKid);
	} else { menuZap =1; }
	
	menuTbody = document.createElement("tbody");
	menuTbody.id = "dynaMenu";

	// sort through menu nodes
	for (var imain = 0; imain < menuNodes.length; imain++) {

		//chapter menu label
		if (menuNodes[imain][0] == "Chapter Menu") {
			menuNodes[imain][0] = chapterList[ichap][1];
		}

		// menu twirl
		if (imain == menuTwirl) { var cssClass = "subdept"; }
		else { var cssClass = "mainitem"; }

		// main items
		drawCell(cssClass,menuNodes[imain][0], menuNodes[imain][1], menuNodes[imain][2],imain );

		// subitems
		if (imain == menuTwirl) {

			//chapter website subitems
			if (menuNodes[imain][2] == "chapterlist") {
				for (var isub = 0; isub < chapterList.length; isub++) {
					if  ( (chapterList[isub][0] != "uoaa") && (chapterList[isub][0] != "beta") ) {
						var chapterLink = "http://"+chapterList[isub][0]+".duckalumni.org/";
						drawCell("subitem",chapterList[isub][2], "flush", chapterLink, imain );
					}
				}
			}

			//standard subitems
			else {
				var isub = 3;
				while (menuNodes[imain][isub]) {
					drawCell("subitem",menuNodes[imain][isub][0], menuNodes[imain][isub][1], menuNodes[imain][isub][2],imain );
					isub++;
				}
			}
		}
	
	}
	// display results
	menuTable.appendChild(menuTbody);
}


// DRAW MENU CELL //
function drawCell(itemClass,itemLabel,itemType,itemLink, imain) {

	var menuRow = document.createElement("tr");
	var menuCell = document.createElement("td");
	menuCell.className = itemClass;
	menuCell.BGcolor = menuCell.style.backgroundColor;
	menuCell.mainID = imain;

	// determine freeze status
	var twirlOK = 1;
	if ( (imain == menuTwirl) && (itemLink == "freeze") ) { twirlOK=null; }

	// set hilites and links
	if ( (itemType) && (twirlOK) ) {
		menuCell.onmouseover = function () {
			this.style.backgroundColor = menuHilite;
			this.style.cursor = "hand";
		};
		menuCell.onmouseout = function () {
			this.style.backgroundColor = menuCell.BGcolor;
			this.style.cursor = "pointer";
		};

		// determine link action
		switch (itemType) {
			case "menu": 
				if (imain == menuTwirl) { menuCell.onclick = twirlUp; }
				else { menuCell.onclick = twirlDown; }
				break	
			case "frame": 
				menuCell.onclick = function () { parent.content.location = itemLink; };
				break	
			case "flush": 
				menuCell.onclick = function () { parent.location = itemLink; };
				break	
			case "collapse": 
				menuCell.itemLink = itemLink;
				menuCell.onclick = twirlCollapse;
				break	
			case "blank": 
				menuCell.onclick = function () { open(itemLink,"remote","toolbar,location,directories,status,menubar,scrollbars,resizable=1"); };
				break	
		}
	}

	var menuLabel = document.createTextNode(itemLabel);
	menuCell.appendChild(menuLabel);
	menuRow.appendChild(menuCell);
	menuTbody.appendChild(menuRow);
}


// TWIRLIGIGS //
function twirlDown(event) {
	menuTwirl = this.mainID;
	drawMenu();
}

function twirlUp(event) {
	if (chapterLock) { menuTwirl = chapterTwirl; }
	else { menuTwirl = null; }
	drawMenu();
}

function twirlCollapse() {
	parent.content.location = this.itemLink;
	menuTwirl = null; 
	drawMenu();
}

