attachEventListener(window, 'load', function() { treeMenu('questions'); }, false);
/**
 *
 * @access public
 * @return void
 **/
function treeMenu(navigationId){
 if (typeof document.getElementById == 'undefined') { return; }

 var tree = document.getElementById(navigationId);
 if (tree) {
   var items = tree.getElementsByTagName('li');
   for (var i = 0; i < items.length; i++)
   {
     treeTrigger(tree, items[i], navigationId);
   }

   if (navigator.vendor == 'Apple Computer, Inc.' || typeof window.opera != 'undefined') {
     displayReset(tree);
   }
 }
}

var is_reset = false;
/**
 *
 * @access public
 * @return void
 **/
function displayReset(tree)
{
  var menus = tree.getElementsByTagName('ul');
  for (var i = 0; i < menus.length; i++)
  {
    menus[i].style.display = 'none';
    menus[i].style.position = 'static';
  }
  is_reset = true;
}

/**
 *
 * @access public
 * @return void
 **/
function treeTrigger(tree, li, navigationId)
{
  var a = li.getElementsByTagName('a')[0];
  if (typeof a == 'undefined') {
    return;
  }

  var menu = li.getElementsByTagName('ul').length > 0
           ? li.getElementsByTagName('ul')[0] : null;

/*  if (menu) {
    li.className += (li.className == '' ? '' : ' ') + 'hasmenu';
  }
*/
  li.onclick = function(e){
    var target = e ? e.target : window.event.srcElement;
    while(target.nodeName.toUpperCase() != 'LI'){
      target = target.parentNode;
    } // while
    if (target == this && is_reset) {
      if (menu) {
        if (menu.style.display == 'none') {
					clearSiblingBranches(this);
          menu.style.display = 'block';
          a.className += (a.className == '' ? '' : ' ') + 'rollover';
        }
        else
        {
          menu.style.display = 'none';
          a.className = a.className.replace (/ ?rollover/g, '');
        }
        return false;
      }
      else
      {
        return true;
      }
    }
  };

  attachEventListener (a, 'keyup', function(e)
  {
    if(!is_reset && e.keyCode == 9)
    {
      displayReset(tree);
    }
  }, false);

  var moves = 0;
  attachEventListener(a, 'mousemove', function()
  {
    if(!is_reset)
    {
      moves++;
      if (moves > 2)
      { displayReset(tree); }
    }
  }, false);
}

/**
 *
 * @access public
 * @return void
 **/
function clearSiblingBranches(trigger)
{
	var menus = trigger.parentNode.getElementsByTagName('ul');
	for (var i = 0; i < menus.length; i++)
	{
		menus[i].style.display = 'none';

		var a = menus[i].parentNode.getElementsByTagName('a')[0];
		if (a)
		{
			a.className = a.className.replace(/ ?rollover/g, '');
		}
	}
}