function setupFlyouts() {
  if (!document.getElementsByTagName) return;
  var all_links = document.getElementsByTagName('a');
  for (var i = 0; i < all_links.length; i++) {
    var link = all_links[i];
    if (link.className && (' ' + link.className + ' ').indexOf(' flyout ') != -1) {
      addEvent (link, 'mouseover', flyout_mouseover, false);
      addEvent (link, 'mouseout', flyout_mouseout, false);
    }
  }
  var all_divs = document.getElementsByTagName('div');
  for (var i = 0; i < all_divs.length; i++) {
    var div = all_divs[i];
    if (div.className && (' ' + div.className + ' ').indexOf(' flyout_div ') != -1) {
      addEvent (div, 'mouseover', flyout_div_mouseover, false);
      addEvent (div, 'mouseout', flyout_div_mouseout, false);
    }
  }
}

function flyout_mouseover(e) {
  x = (window.Event) ? e.pageX : event.clientX;
  y = (window.Event) ? e.pageY : event.clientY;	
  var target = findTarget(e);
  if (!target) return;
	var flyout_div = findObj(target.name+'_flyout');
	if (!flyout_div.style.left) {flyout_div.style.left=x+'px';};
	if (!flyout_div.style.top) {flyout_div.style.top=y+'px';};
  toggleVisibility(flyout_div.id,'show');
}

function flyout_mouseout(e) {
  var target = findTarget(e);
  if (!target) return;
	var flyout_div = findObj(target.name+'_flyout');
  toggleVisibility(flyout_div.id,'hide');
}

function flyout_div_mouseover(e) {
  var target = findTargetDiv(e);
  if (!target) return;
  toggleVisibility(target.id,'show');
}

function flyout_div_mouseout(e) {
  var target = findTargetDiv(e);
  if (!target) return;
  toggleVisibility(target.id,'hide');
}

// When the page loads, set up the flyouts
addEvent (window, 'load', setupFlyouts, false);