Event.observe(window, 'load', initPopupMenus, false);

function initPopupMenus() {
  popupLinks = document.getElementsByClassName('popup_link');
  for(var i = 0; i < popupLinks.length; i++) 
    Event.observe(popupLinks[i], 'click', togglePopup, false);

  var popupMenus = document.getElementsByClassName('popup_menu');
  for(var i = 0; i < popupMenus.length; i++) {
    var menuItems = popupMenus[i].getElementsByTagName('a');
    for(var j = 0; i < menuItems.length; i++) {
      Event.observe(menuItems[i], 'mouseover', showToolTip, false);
      Event.observe(menuItems[i], 'mouseout', hideToolTip, false);
    }
  }
}

function showToolTip(e) {
  var link = Event.element(e);
  var tipText = link.getAttribute('title');
  if(tipText) {
    link.setAttribute('title', '');
    var tipHTML = '<div id="activeTip" class="popupToolTip" style="top: '+link.clientHeight+'px; left: '+parseInt(link.clientWidth)+5+'px">'+tipText+'</div>';
    new Insertion.Bottom(link.parentNode, tipHTML);
    ld = Element.getDimensions(link);
    $('activeTip').style.top = '0px';
    $('activeTip').style.left = ld.width+5+'px';
  }
}

function hideToolTip(e) {
  var link = Event.element(e);
  if($('activeTip')) {
    link.setAttribute('title', $('activeTip').innerHTML);
    Element.remove($('activeTip'));
  }
}

function togglePopup(e) {
  var link = Event.element(e);
  var menuId = link.id.replace(/_link(_open)?$/, '_menu');
  if(link.className == 'popup_link') {
    link.className = 'popup_link_open';
    new Insertion.Bottom(link, '<div id="spacer" style="display: block; background-color: #ededed; width: 1px; position: absolute; right: 1px; top: 1px; z-index: 1000;"></div>');
    $('spacer').style.height = Element.getHeight(link) - 2 + 'px';
  } else {
    link.className = 'popup_link';
    Element.remove($('spacer'));
  }
  Element.toggle($(menuId));
}
