/**
 * To create Dynamic menus, create a <div> for each menu.
 * Then create menu and menuLinks arrays for them.
 *
 * menu[] will keep track of state's (true = visible, false = hidden).
 * menuLinks[] will handle rank.  
 *
 * For Example:
 *   menuLinks[0] = -1;
 *   menuLinks[1] = -1;
 *   menuLinks[2] = 1;
 *   menuLinks[3] = -1;
 *
 * Will setup three root menus and one childmenu for the second menu
 * /--menu[0]
 * |
 * |--menu[1]
 * | |
 * | /--menu[2]
 * |
 * |--menu[3]
 *
 */

/**
 * To use the changer functions for rollovers, first set the global orgName variable to the organization 
 * name used in image names.
 */
function changer(des,key) {
    /**
     * !!!NOTE!!!
     * This function is now deprecated in favor of change(des,key).  
     * Use change(des,key) for all your rollover needs.
     */
	destination = "Pic"+des;
	document[destination].src= "images/glaw_" + orgName + "_" + des + key;
}

function change(des,key) {
    destination = "Pic"+des;
	document[destination].src= "images/" + orgName.charAt(0) + "_images/" + orgName + "/glaw_" + orgName + "_" + des + key;
}

function handleMenus(menuNum) {
  for(i = 0; i < numMenus; i++) {
	if(i != menuNum) {
	  startHide(i);
	}
  }	  
}

function showMenu(menuNum) {
  destination = "Menu" + menuNum;
  menu[menuNum] = true;
  document.all[destination].style.visibility = "visible";
}

function hideAllExcept(dontHide) {
  for(i = 0; i < numMenus; i++) {
	if(i != dontHide) {
	  menu[i] = false;
	  destination = "Menu" + i;
	  document.all[destination].style.visibility = "hidden";
	}
  }
}

function keepAlive(menuNum) {
  curMenu = menuNum;
  if(menuLinks[menuNum] != -1)
	keepAlive(menuLinks[menuNum]);
  menu[menuNum] = true;
}

function killMenu(menuNum) {
  curMenu = -1;
  menu[menuNum] = false;
  startHide(menuNum);
}

function killParent(menuNum) {
  menu[menuNum] = false;
  startHide(menuNum);
}

function hideMenu(menuNum) {
  destination = "Menu" + menuNum;
  hasChild = false;
  hasParent = false;
  if(!menu[menuNum]) {
	for(i = 0; i < numMenus; i++) {
	  if(menuLinks[i] == menuNum) {
		hasChild = true;
		if(!menu[menuLinks[i]]) {
		  if(menuLinks[menuNum] != -1)
			killParent(menuLinks[menuNum]); 
		  if(curMenu != menuNum)
		    document.all[destination].style.visibility = "hidden";
		}
	  }
	}
	if(!hasChild) {
	  if(menuLinks[menuNum] != -1)
		killParent(menuLinks[menuNum]); 
	  if(curMenu != menuNum)
	    document.all[destination].style.visibility = "hidden";
	}
  }
}

function hasLiveChild(menuNum) {
  for(i = 0; i < numMenus; i++) {
    if(menuLinks[i] == menuNum) {
	  if(document.all[destination].style.visibility != "hidden") 
	    return true;	
    }
  }

  return false;
}

function startHide(menuNum) {
  setTimeout("hideMenu(" + menuNum + ")", menuLife);
}

/**
 * Sets the minimum amount of time in milliseconds a menu will stay open before i closes
 */
function setMenuLife(ms) {
  menuLife = ms;
}

function setOrg(org) {
  orgName = org;
}

