var menuTimers = new Array();
var allPageTags = new Array(); 
var menuSubIds = new Array();
var mainTimer;

/*
 * Initialize the flyout menu elements.  JSP dynamically calls the flavor of initFlyoutMenu to match vertical page layout
 */
function initFlyoutMenu1(whichMenu, whichSubMenu)
{
  var currentIdx = menuSubIds.length;
  
  parentMenuObj = document.getElementById(whichMenu);
  subMenuObj = document.getElementById(whichSubMenu);
  
  // Each browser seems to calculate offsets differently, so customize
  // menu placement according to browser, and for IE it must also be
  // according to version...  sigh...
  if (isFirefox) {
    subMenuObj.style.left = (parentMenuObj.offsetWidth - 25) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 309) + "px";
  }
  else if (isIE) {
    subMenuObj.style.left = (parentMenuObj.offsetWidth + 198) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 109) + "px";
  }
  else { //if (isNav){
    subMenuObj.style.left = (parentMenuObj.offsetWidth - 3) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 75) + "px";
  }
  //else
  //  alert(navigator.appName);

  subMenuObj.style.overflow = "hidden";	
  menuSubIds[currentIdx] = whichSubMenu;
}

function initFlyoutMenu2(whichMenu, whichSubMenu)
{
  var currentIdx = menuSubIds.length;
  
  parentMenuObj = document.getElementById(whichMenu);
  subMenuObj = document.getElementById(whichSubMenu);
  
  // Each browser seems to calculate offsets differently, so customize
  // menu placement according to browser, and for IE it must also be
  // according to version...  sigh...
  if (isFirefox) {
    subMenuObj.style.left = (parentMenuObj.offsetWidth - 25) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 226) + "px";
  }
  else if (isIE) {
    subMenuObj.style.left = (parentMenuObj.offsetWidth + 198) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 26) + "px";
  }
  else { //if (isNav){
    subMenuObj.style.left = (parentMenuObj.offsetWidth - 3) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight - 8) + "px";
  }
  //else
  //  alert(navigator.appName);

  subMenuObj.style.overflow = "hidden";	
  menuSubIds[currentIdx] = whichSubMenu;
}

function initFlyoutMenu3(whichMenu, whichSubMenu)
{
  var currentIdx = menuSubIds.length;
  
  parentMenuObj = document.getElementById(whichMenu);
  subMenuObj = document.getElementById(whichSubMenu);
  
  // Each browser seems to calculate offsets differently, so customize
  // menu placement according to browser, and for IE it must also be
  // according to version...  sigh...
  if (isFirefox) {
    subMenuObj.style.left = (parentMenuObj.offsetWidth - 25) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 293) + "px";
  }
  else if (isIE) {
    subMenuObj.style.left = (parentMenuObj.offsetWidth + 198) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 178) + "px";
  }
  else { //if (isNav){
    subMenuObj.style.left = (parentMenuObj.offsetWidth - 3) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 59) + "px";
  }
  //else
  //  alert(navigator.appName);

  subMenuObj.style.overflow = "hidden";	
  menuSubIds[currentIdx] = whichSubMenu;
}

function initFlyoutMenu4(whichMenu, whichSubMenu)
{
  var currentIdx = menuSubIds.length;
  
  parentMenuObj = document.getElementById(whichMenu);
  subMenuObj = document.getElementById(whichSubMenu);
  
  // Each browser seems to calculate offsets differently, so customize
  // menu placement according to browser, and for IE it must also be
  // according to version...  sigh...
  if (isFirefox) {
    subMenuObj.style.left = (parentMenuObj.offsetWidth - 25) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 210) + "px";
  }
  else if (isIE) {
    subMenuObj.style.left = (parentMenuObj.offsetWidth + 198) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight + 95) + "px";
  }
  else { //if (isNav){
    subMenuObj.style.left = (parentMenuObj.offsetWidth - 3) + "px";
    subMenuObj.style.top = (parentMenuObj.offsetHeight - 26) + "px";
  }
  //else
  //  alert(navigator.appName);

  subMenuObj.style.overflow = "hidden";	
  menuSubIds[currentIdx] = whichSubMenu;
}

function doFlyOutSubMenu(whichSubMenu, statusFlag)
{
  if(statusFlag == true)
  {
     flyOutSubMenu(whichSubMenu);
  }
  else      
  {
      mainTimer = setTimeout("doFlyOutSubMenu('"+whichSubMenu+"',"+true+")", 600);
  }
}

function flyOutSubMenu(whichSubMenu, statusFlag)
{
    bodyObj = document.getElementsByTagName("BODY").item(0)

    subMenuObj = document.getElementById(whichSubMenu);
    if (isFirefox && bodyObj.offsetWidth>1000) {
      subMenuObj.style.left = (parentMenuObj.offsetWidth + ((bodyObj.offsetWidth-1000)/2)) + "px";
    }
    else {
      subMenuObj.style.left = (parentMenuObj.offsetWidth) + "px";    
    }
    subMenuObj.style.display = "block";

    for(var i=0; i < menuSubIds.length; i++)
    {
          if(menuSubIds[i] != whichSubMenu)
                  flyInSubMenu(menuSubIds[i],true);		
    }
    timerId = menuTimers[whichSubMenu];
    clearTimeout(timerId);
}

function doFlyInSubMenu(whichSubMenu)
{
    clearTimeout(mainTimer);
    flyInSubMenu(whichSubMenu);
}

function flyInSubMenu(whichSubMenu, statusFlag)
{
  if(statusFlag == true)
  {
  	subMenuObj = document.getElementById(whichSubMenu);
  	subMenuObj.style.display = "none";
  	timerId = menuTimers[whichSubMenu];
  	clearTimeout(timerId);		
  }
  else
  {
  	timerId = setTimeout("flyInSubMenu('"+whichSubMenu+"',"+true+")", 600);
  	menuTimers[whichSubMenu] = timerId;
  }
}

function resetSubMenu(parentMenu, subMenuClass)
{
  //alert(parentMenu + " : " + subMenuClass);
  alphaMenu = document.getElementById(parentMenu);
  if(alphaMenu.style.display == "none")
    hideAllInClass(subMenuClass);
}

function hideAllInClass(className,exception)
{
	if(document.namespaces)
		allPageTags=document.body.all.tags("DIV");
	else
		allPageTags=document.getElementsByTagName("*"); 

	for (i=0; i<allPageTags.length; i++) 
	{
		if (allPageTags[i].className==className && allPageTags[i].style.display != "none" && allPageTags[i].id != exception)
		{
	 		allPageTags[i].style.display = "none";
		}
	}
}

function highlightMenuAlpha(className, highlightId)
{
	if(document.namespaces)
		allPageTags=document.body.all.tags("A")
	else
		allPageTags=document.getElementsByTagName("*"); 

  var alphaMenu = document.getElementById(highlightId)
  // Bright red
	//document.getElementById(highlightId).style.background = "#fd360d";
  
  // Richer red
	alphaMenu.style.background = "#e9310d";
	alphaMenu.style.backgroundImage = "url('/images/frame/alpha_menu_bg.gif')";
	alphaMenu.style.color = "#ffffff";
	
	for (i=0; i<allPageTags.length; i++) 
	{
		if (allPageTags[i].className==className && allPageTags[i].id != highlightId)
		{
	 		allPageTags[i].style.background = "none";
	 		allPageTags[i].style.color = "#000000";
		}
	}	
}