//-----------------------------------------------------------------------------
//  DropDownList which contains buttons
//-----------------------------------------------------------------------------

RegisterNamespace("DDB");

DDB.LastOpened = null;
DDB.Openning = false;

DDB.ToggleMI = function(sender,e)
{
   DDB.Toggle(sender, e, false, true);
}

DDB.Toggle = function(sender,e,shortMode,mainMenu)
{
    if (sender.className != 'over')
    {
        DDB.Hide();
        DDB.Openning = true;
        DDB.LastOpened = sender;
         
        sender.className = 'over';
        
        var shift = 20;
        if (mainMenu)
           shift = 30;
        
        var ul = sender.getElementsByTagName("ul")[0];
        
        var lowerY;
        if (e.pageY)
           lowerY = e.pageY-document.body.scrollTop+ul.offsetHeight+shift;
        else   
           lowerY = e.clientY+ul.offsetHeight+shift;
           
        if (shortMode)
           ul.style.left = "-130px";
        
        if (lowerY > document.body.clientHeight)
        {
           ul.style.top = -ul.offsetHeight;
           ul.className = sender.parentNode.className + "-ul-up";
        }   
        else   
        {
           ul.style.top = shift;
           ul.className = sender.parentNode.className + "-ul-down";
        }   
        
        if (mainMenu && br_ie)
        {
            var back = document.createElement("iframe");
            back.id = "ddb_back";
            
            var backLeft = 0;
            var backTop = 0;
            var elem = ul;
            while(elem)
            {
               backLeft += elem.offsetLeft;
               backTop += elem.offsetTop;
               elem = elem.offsetParent;
            }
            
            back.style.top = backTop;
            back.style.left = backLeft;
            back.style.width = ul.offsetWidth;
            back.style.height = ul.offsetHeight;
            back.style.position = "absolute";
          
            ul.style.zIndex= 1000;
            back.style.zIndex= 999;
            document.body.appendChild(back);
        }
    }   
}

DDB.Hide = function(e)
{
   //don't hide menu in FF if right mouse button clicked
   if (e && e.button == 2)
      return;
   
   if (DDB.Openning)
      DDB.Openning=false;
   else   
   {
      if (DDB.LastOpened)
      {
         DDB.LastOpened.className = '';
         DDB.LastOpened = null;
         
         if (br_ie)
         {
            var back = document.getElementById("ddb_back");
            if (back != null)
               document.body.removeChild(back);
         }
      }  
   }
}

DDB.TrackMouseClick = function()
{
   if (document.attachEvent)
	  document.attachEvent('onclick', DDB.Hide);
   else
	  document.addEventListener('click', DDB.Hide, false);
}


DDB.TrackMouseClick();