/*
 * lib-menu.js adapted from
 * menuExpandable3.js - implements an expandable menu based on a HTML list
 * Author: Dave Lindquist (dave@gazingus.org)
 * 
 * TODO: Make onclick handler use a timeout to ignore the first click if it turns out
 * to be a double-click.
 */

if (!document.getElementById)
    document.getElementById = function() { return null; }

var _click_togglevis = new Array(); /* Mailbox flag to toggle visbility */
var _click_navigate  = new Array(); /* Mailbox flag to navigate */
var _click_targets   = new Array();
var _click_markers   = new Array();


function initializeMenu(menuId, actuatorId) {
  var menu = document.getElementById(menuId);
  var actuator = document.getElementById(actuatorId);
  var marker = document.getElementById(menuId+"Marker");
  if (menu == null || actuator == null) return;
  
  if (window.opera) return; 
  
  marker.src = (menu.style.display == "none") ? "../images/foldericon.gif" : "../images/dir-open.gif";
  _click_togglevis[actuatorId] = false;
  _click_navigate[actuatorId] = false;
  _click_markers[actuatorId] = marker;
  _click_targets[actuatorId] = actuator;

  actuator.onclick = function(evt) {
    var display = menu.style.display;
      if (_click_targets[actuatorId].target != "" && _click_targets[actuatorId].href != "") {
	window.open(_click_targets[actuatorId].href,_click_targets[actuatorId].target);
	as = document.getElementsByTagName('a');
	for (i = 0; i < as.length; i++) {
	  as.item(i).style.backgroundColor = 'transparent';
	}  
	for (act in _click_targets) {
  	  _click_targets[act].style.backgroundColor = "transparent";
        }
	/*
	for (act in _click_markers) {
  	  _click_markers[act].style.backgroundColor = "transparent";
        }
	_click_markers[actuatorId].style.backgroundColor = "#FFFF66";
	*/
	_click_targets[actuatorId].style.backgroundColor = "#FFFF66";
	marker.src = "../images/dir-open.gif";
	menu.style.display = "block";
      }
    return false;
  }

  marker.onclick = function(evt) {
    var display = menu.style.display;
    marker.src = (display == "block") ? "../images/foldericon.gif" : "../images/dir-open.gif";
    menu.style.display = (display == "block") ? "none" : "block";
    return false;
  }
}
