var PageMenuDropdownNumber = 0;
var PageMenuDropdownActive = false;
var PageMenuDropdownSecureId = false;
var PageMenuDropdownSource = '';

function PageMenuDropdownHide()
{
  PageMenuDropdownActive.style.display = 'none';
  PageMenuDropdownActive = false;
}

function PageMenuDropdowns()
{
  this.Dropdowns = new Array();
  
  this.AddDropdown = function()
  {
    NewDropdown = new PageMenuDropdown();
  
    this.Dropdowns.push(NewDropdown);
    
    return this.Dropdowns.length - 1;
  }
  
  this.Render = function()
  {
    Output = '';
    
    Dropdown = 0;
    while (Dropdown < this.Dropdowns.length)
    {
      Output += '<div id="' + Dropdowns.Dropdowns[Dropdown].Id + '" style="display: none;" onMouseOver="Dropdowns.Dropdowns[' + Dropdown + '].DisableSecureHide();" onMouseOut="Dropdowns.Dropdowns[' + Dropdown + '].SecureHide();">';

      Item = 0;
      while (Item < this.Dropdowns[Dropdown].Items.length)
      {
        Output += '<a href="' + this.Dropdowns[Dropdown].Items[Item].Link + '">' + this.Dropdowns[Dropdown].Items[Item].Text + '</a>';
      
        Item++;
      }

      Output += '</div>';
    
      Dropdown++;
    }
    
    document.getElementById('page_menu_dropdowns').innerHTML = Output;
  }
  
  this.Show = function(ADropdown, AOpener)
  {
    this.Dropdowns[ADropdown].Show(AOpener);
  }
  
  this.SecureHide = function(ADropdown)
  {
    this.Dropdowns[ADropdown].SecureHide();
  }
}

function PageMenuDropdownItem(AText, ALink)
{
  this.Text = AText;
  this.Link = ALink;
}

function GetRealOffset(AOpener)
{
  var leftOffset = AOpener.offsetLeft;
  var topOffset = AOpener.offsetTop;
  var parent = AOpener.offsetParent;

  while(parent != document.body)
  {
    leftOffset += parent.offsetLeft;
    topOffset += parent.offsetTop;
    parent = parent.offsetParent;
  }

  var Offsets = new Object();
  Offsets.top = topOffset;
  Offsets.left = leftOffset;

  return Offsets;
}

function PageMenuDropdown()
{
  this.Id = 'page_menu_dropdown_' + (PageMenuDropdownNumber++);
  this.Items = new Array();

  this.AddItem = function(AText, ALink)
  {
    this.Items[this.Items.length] = new PageMenuDropdownItem(AText, ALink);
  }
  
  this.Show = function(AOpener)
  {
    Handle = document.getElementById(this.Id);
  
    if (PageMenuDropdownActive != Handle)
    {
      if (PageMenuDropdownActive != false) PageMenuDropdownActive.style.display = 'none';
      PageMenuDropdownActive = Handle;
      
      Offset = GetRealOffset(AOpener);

      Handle.style.left = Offset.left + 'px';
//      Handle.style.top = (Offset.top + 23) + 'px';
      Handle.style.top = 153 + 'px';

      PageMenuDropdownActive.style.display = '';
    }
    
    this.DisableSecureHide();
  }
  
  this.SecureHide = function()
  {
    PageMenuDropdownSecureId = setTimeout("PageMenuDropdownHide()", 750);
  }
  
  this.DisableSecureHide = function()
  {
    if (PageMenuDropdownSecureId != false) clearTimeout(PageMenuDropdownSecureId);
  }
}

