var div_on_display;
function popup(anchor, id)
{
  if (window.event != null) window.event.returnValue = false;

  var pos = find_pos(anchor);
  display_popup(pos, id);

  return false;
}

function popup_select(sel_id)
{
  if (window.event != null) window.event.returnValue = false;

  var sel = document.getElementById(sel_id);
  if (null == sel) return false;
  var value = sel.value;
  if ('' == value) return false;

  var parts = value.split('::');
  var div_id = parts[0];

  var pos = find_pos(sel);
  display_popup(pos, div_id);
  return false;
}

function display_popup(pos, id)
{
  var the_div = document.getElementById(id);
  if (null == the_div) return false;
  if (null != div_on_display) {
    div_on_display.style.display = 'none';
    div_on_display = null;
  }

  var top = pos[0] - 5; if (top < 0) top = 0;
  var left = pos[1] - 5; if (left < 0) left = 0;

  the_div.style.top = top + 'px';
  the_div.style.left = left + 'px';
  the_div.style.display = 'block';

  div_on_display = the_div;
}

function popup_close(id)
{
  if (null == div_on_display) return;
  div_on_display.style.display = 'none';
  div_on_display = null;

  if (window.event != null) window.event.returnValue = false;
  return false;
}

function find_pos(obj)
{
  var curleft = curtop = 0;
  if (obj.offsetParent) {
    do {
      curleft += obj.offsetLeft;
      curtop += obj.offsetTop;
    } while (obj = obj.offsetParent);
  }
  return [curtop, curleft];
}


