var g_current_sub_menu;
var g_timeout = 10;


function GetOffsetLeft(element)
{
  var offsetLeft;
  
  offsetLeft = 0;
  
  for(; element.offsetParent; element = element.offsetParent) 
  {
    offsetLeft += element.offsetLeft;
  }
  
  return offsetLeft;
}


function GetOffsetTop(element)
{
  var offsetTop;
  
  offsetTop = 0;
  
  for(; element.offsetParent; element = element.offsetParent) 
  {
    offsetTop += element.offsetTop;
  }
  
  return offsetTop;
}


function hideMenu(flyout_id)
{    
  if(g_current_sub_menu != flyout_id)
  {
    document.getElementById(flyout_id).style.visibility = "hidden";
  }
}


function hideMenuParent(id)
{
  var menu;
  
  menu = document.getElementById(id);
  
  if(!menu.is_highlighted)
  {
    menu.style.color = menu.text_colour;
    menu.style.backgroundColor = menu.bg_colour;
  }
}


function Initialise(id, flyout_id, text_colour, bg_colour, mo_text_colour, mo_colour_bkg)
{
  var flyout, menu;
  
  menu = document.getElementById(id);
  
  menu.text_colour = text_colour;
  menu.bg_colour = bg_colour;
  menu.mo_text_colour = mo_text_colour;
  menu.mo_colour_bkg = mo_colour_bkg;
  
  flyout = null;
  
  if(flyout_id.length > 0)
  {
    flyout = document.getElementById(flyout_id);
    flyout.style.visibility = "hidden";
  }
  else
    flyout = null;
  

  menu.onmouseover = function()
  {
    menu.style.color = menu.mo_text_colour;
    menu.style.backgroundColor = menu.mo_colour_bkg;
    
    if(flyout)
    {
      flyout.style.left = GetOffsetLeft(menu) + menu.offsetWidth - 20;
      flyout.style.top = GetOffsetTop(menu);
      flyout.style.visibility = "visible";
      g_current_sub_menu = flyout_id;
    }
  }


  menu.onmouseout = function()
  {
    menu.is_highlighted  = false 
    window.setTimeout('hideMenuParent(\'' + id + '\');', g_timeout);

    if(flyout)
    {
      //g_current_sub_menu = null;
      window.setTimeout('hideMenu(\'' + flyout_id + '\');', g_timeout);
    }
  }
  
  
  if(flyout)
  {
    flyout.onmouseover = function()
    {
      document.getElementById(id).is_highlighted  = true;
      g_current_sub_menu = flyout_id;
    }

    flyout.onmouseout = function()
    {
      document.getElementById(id).is_highlighted  = false;
      g_current_sub_menu = null;
      window.setTimeout('hideMenu(\'' + flyout_id + '\');', g_timeout);
      window.setTimeout('hideMenuParent(\'' + id + '\');', g_timeout);

      
    }
  }
}


function InitialiseLevel1(flyout_id)
{
  var flyout = document.getElementById(flyout_id);

  flyout.onmouseover = function()
  {
    g_current_sub_menu = flyout_id;
  }
  
  flyout.onmouseout = function()
  {
    g_current_sub_menu = null;
  }
}
