var toggleMenu =
{
  lastEntry: null,
  init : function(sContainerClass, sHiddenClass)
  {
  if (!document.getElementById || !document.createTextNode)
    {
      return;
    } // Check for DOM support
    var arrMenus = this.getElementsByClassName(document, 'ul', sContainerClass);
    var arrSubMenus, oSubMenu, oLink;
    for (var i = 0; i < arrMenus.length; i++)
    {
      arrSubMenus = arrMenus[i].getElementsByTagName('ul');
      for (var j = 0; j < arrSubMenus.length; j++)
      {
        oSubMenu = arrSubMenus[j];
        oLink = oSubMenu.parentNode.getElementsByTagName('a')[0];
        oLink.onclick = function()
        {
	  if(toggleMenu.lastEntry)
	  toggleMenu.toggle(toggleMenu.lastEntry, sHiddenClass);
          toggleMenu.lastEntry = this.parentNode.getElementsByTagName('ul')[0];
	  toggleMenu.toggle(toggleMenu.lastEntry, sHiddenClass);
	  return false;
        }
        var doToggle = true;
        var oDocName = toggleMenu.getDocFilename(document.URL);
        var oAnchors = oSubMenu.getElementsByTagName('a');
        for(var k=0; k<oAnchors.length; k++)
        {
          var oAnchorDoc = toggleMenu.getDocFilename(oAnchors[k].href);
          if(oDocName == oAnchorDoc)
          {
            var oDiv = document.createElement("div");
            oDiv.innerHTML = oAnchors[k].innerHTML;
            oAnchors[k].parentNode.insertBefore(oDiv, oAnchors[k]);
            oAnchors[k].parentNode.removeChild(oAnchors[k]);
            toggleMenu.lastEntry = oSubMenu;
            doToggle = false;
            break;
          }
        }
	if(doToggle)
	this.toggle(oSubMenu, sHiddenClass);
      }
    }
  },

  toggle : function(el, sHiddenClass)
  {
    var oRegExp = new RegExp("(^|\\s)" + sHiddenClass + "(\\s|$)");
    el.className = (oRegExp.test(el.className)) ? el.className.replace(oRegExp, '') : el.className + ' ' + sHiddenClass; // Add or remove the class name that hides the element
  },

  /* addEvent function from http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html */
  addEvent : function(obj, type, fn)
  {
    if (obj.addEventListener)
    obj.addEventListener(type, fn, false);
    else if (obj.attachEvent)
    {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function()
      {
        obj["e"+type+fn](window.event);
      }
      obj.attachEvent("on"+type, obj[type+fn]);
    }
  },

  /*
  Written by Jonathan Snook, http://www.snook.ca/jonathan
  Add-ons by Robert Nyman, http://www.robertnyman.com
  */
  getElementsByClassName : function(oElm, strTagName, strClassName)
  {
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++)
    {
      oElement = arrElements[i];      
      if(oRegExp.test(oElement.className))
      {
        arrReturnElements.push(oElement);
      }   
    }
    return (arrReturnElements);
  },
  // 
  getDocFilename : function(path)
  {
    path = String(path);
    var fn = "";
    var idx1 = path.lastIndexOf("/");
    var idx2 = path.lastIndexOf("\\");
    (idx1 > idx2) ? fn=path.substr(idx1+1) : fn=path.substr(idx2+1);
    //alert("getDocFilename:"+fn);
    return fn;
  }
};
/*
toggleMenu.addEvent(window, 'load', function()
{
  toggleMenu.init('menu','hidden');
});
*/
