bActive = false;

function ShowSubmenus( strSubmenus )
{
  HideAllSubmenus();
  
  if ( ! bActive )
  {
    return;
  }

  arrSubmenus = strSubmenus.split( '/' );
  
  for ( iSubmenuNr = 0; iSubmenuNr < arrSubmenus.length; ++ iSubmenuNr )
  {
    document.getElementById( "submenu_" + arrSubmenus[ iSubmenuNr ] ).style.visibility = 'visible';
  } 
}

function HideAllSubmenus()
{
  aDivs = document.getElementsByTagName( "div" );
  
  for ( iDivNr = 0; iDivNr < aDivs.length; ++ iDivNr )
  {
    oDiv = aDivs[ iDivNr ];
    
    if ( oDiv.className == 'submenu' )
    {
      oDiv.style.visibility = 'hidden';
    }
  }
}

function MouseDown( event )
{
  if ( event.target )
  {
    oElement = event.target;
  }
  else if ( event.srcElement )
  {
    oElement = event.srcElement;
  }  
  else
  {
    return;
  }
  
  if ( IsInLink( oElement ) ) 
  {
    return;
  }
  
  HideAllSubmenus();
}

function IsInLink( oElement )
{
  if ( ! oElement )
  {
    return false;
  }
  
  if ( oElement.tagName == 'A' )
  {
    return true;
  }
  
  if ( oElement.parentNode )
  {
    return IsInLink( oElement.parentNode );
  }
  
  return false;
}

function absLeft(el) 
{
     return (el.offsetParent)? 
     el.offsetLeft+absLeft(el.offsetParent) : el.offsetLeft;
}

function absTop(el) 
{
     return (el.offsetParent)? 
     el.offsetTop+absTop(el.offsetParent) : el.offsetTop;
}

function absBottom(el)
{
    return absTop(el) + el.offsetHeight;
}

function absRight(el)
{
    if ( el.offsetWidth == 0 && el.lastChild )
    {
      return absRight( el.lastChild );
    }

     return absLeft(el) + el.offsetWidth;
}

function SetLeftBottomPos( strElementId, strRelativeToId )
{
  oElement         = document.getElementById( strElementId );
  oRelativeElement = document.getElementById( strRelativeToId );
  
  oElement.style.top  = absBottom( oRelativeElement );
  oElement.style.left = absLeft( oRelativeElement );
}

function SetRightTopPos( strElementId, strRelativeToId )
{
  oElement         = document.getElementById( strElementId );
  oRelativeElement = document.getElementById( strRelativeToId );
  
  oElement.style.top  = absTop( oRelativeElement );
  oElement.style.left = absRight( oRelativeElement );
}

function SetActive()
{
  bActive = true;
}
