var _cssMenuArray = new Array();
addCssMenu = function(elementID)
{
   _cssMenuArray[_cssMenuArray.length] = elementID;
}
startList = function()
{
   if(document.all && document.getElementById  && window.DropDownMenu)
   {
      // Add a shim to hide select items for drop down menus.
      if(navigator.appVersion.substr(22, 3) != "5.0") 
      			window.DropDownMenu.innerHTML =('<iframe id="menushim" src="/centralstore/blank.html" scrolling="no" frameborder="0" style="position:absolute; display: none; width: 0px; height: 0px; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"></iframe>' + window.DropDownMenu.innerHTML);
      for(var i = 0; i < _cssMenuArray.length; i++)
      {
         currentID = _cssMenuArray[i];
         navRoot = document.getElementById(currentID);
         for(i = 0; i < navRoot.childNodes.length; i++)
         {
            node = navRoot.childNodes[i];
            if(node.nodeName == "LI" && node.getElementsByTagName("UL").length > 0)
            {
               node.onmouseover = function()
               {
                  if(this.className.indexOf("over") == - 1)
                  {
                     this.className += " over";
                     hideDropdowns(this.getElementsByTagName("UL")[0], true);
                  }
               }
               node.onmouseout = function()
               {
                  if(!isInParent(event.toElement, this))
                  {
                     this.className = this.className.replace(" over", "");
                     hideDropdowns(this.getElementsByTagName("UL")[0], false);
                  }
               }
            }
         }
      }
   }
}

function isInParent(el, parent)
{
   if(el)
   {
      var aEls = parent.getElementsByTagName(el.tagName)
      if(aEls.length == 0)
      return false;
      for(var i = 0; i < aEls.length; i++)
      {
         if(el == aEls[i])
         return true;
      }
   }
   return false;
}

function hideDropdowns(obj, bool)
{
   if(navigator.appVersion.substr(22, 3) == "5.0")
   {
      if(bool) hideSelects();
      else showSelects();
      return;
   }
   var mnuShim = document.getElementById("menushim");
   if(bool)
   {
      mnuShim.style.left = getPageOffsetLeft(obj) + "px";
      mnuShim.style.top = getPageOffsetTop(obj)-85 + "px";
      mnuShim.style.width = obj.offsetWidth - 1 + "px";
     	mnuShim.style.height=obj.offsetHeight+"px";	
      obj.style.zIndex = "101";
      mnuShim.style.zIndex = "0";
      mnuShim.style.display = "block";
   }
   else mnuShim.style.display = "none";
}

function getPageOffsetLeft(el)
{
   var x;
   x = el.offsetLeft;
   if(el.offsetParent != null) x += getPageOffsetLeft(el.offsetParent);
   return x;
}

function getPageOffsetTop(el)
{
   var y;
   y = el.offsetTop;
   if(el.offsetParent != null) y += getPageOffsetTop(el.offsetParent);
   return y;
}

function hideSelect(id)
{
   var el = document.getElementById(id);
   if(el != null) el.className += " hide";
}

function hideSelects()
{
   var oSelects = document.getElementsByTagName("select");
   for(var i = 0; i < oSelects.length; i++) oSelects[i].className += " hide";
}

function showSelects()
{
   var oSelects = document.getElementsByTagName("select");
   for(var i = 0; i < oSelects.length; i++) oSelects[i].className = oSelects[i].className.replace(" hide", "");
}

function addEvent(obj, evType, fn)
{
   // adds an eventListener for browsers which support it
   // Written by Scott Andrew: nice one, Scott
   if(obj.addEventListener)
   {
      obj.addEventListener(evType, fn, true);
      return true;
   }
   else if(obj.attachEvent)
   {
      var r = obj.attachEvent("on" + evType, fn);
      return r;
   }
   else 
   {
      return false;
   }
}
addEvent(window, "load", startList);
