function MultiAccount_view_aux(img, lmulti)
{
  var i = document.getElementById(img);
  var m = document.getElementById(lmulti);
  var top  = (m["m_position"] == "y") ? i.offsetHeight+2 : 0;
  var left = (m["m_position"] == "x") ? i.offsetWidth +2 : 0;
  var shift = m.offsetWidth - i.offsetWidth;
  
  for (; i; i = i.offsetParent)
  {
    top  += i.offsetTop;
    left += i.offsetLeft;
  }
  
  left -= shift;
  m.style.position   = "absolute";
  m.style.top        = top +'px';
  m.style.left       = left+'px';
  m.style.visibility = "visible";
}

function MultiAccount_view()
{
  i = document.getElementById(this["m_parent"]);
  m = document.getElementById(this["m_child" ]);

  MultiAccount_view_aux(i.id, m.id);

  clearTimeout(m["m_timeout"]);
}

function MultiAccount_hide()
{
  m = document.getElementById(this["m_child"]);
  m["m_timeout"] = setTimeout("document.getElementById('"+m.id+"').style.visibility = 'hidden'", 333);
}

function MultiAccount_click()
{
  i = document.getElementById(this["m_parent"]);
  m = document.getElementById(this["m_child" ]);

  if (m.style.visibility != "visible") MultiAccount_view_aux(i.id, m.id);
  else m.style.visibility = "hidden";

  return false;
}

function MultiAccount(img, lmulti, showtype, position, cursor)
{
  i = document.getElementById(img);
  m = document.getElementById(lmulti);

  i["m_parent"]     = i.id;
  m["m_parent"]     = i.id;
  i["m_child"]      = m.id;
  m["m_child"]      = m.id;
  i["m_position"]   = position;
  m["m_position"]   = position;

  m.style.position   = "absolute";
  m.style.visibility = "hidden";

  if (cursor != undefined) i.style.cursor = cursor;

  switch (showtype)
  {
    case "click":
      i.onclick     = MultiAccount_click;
      i.onmouseout  = MultiAccount_hide;
      m.onmouseover = MultiAccount_view;
      m.onmouseout  = MultiAccount_hide;
      break;
    case "hover":
      i.onmouseover = MultiAccount_view;
      i.onmouseout  = MultiAccount_hide;
      m.onmouseover = MultiAccount_view;
      m.onmouseout  = MultiAccount_hide;
      break;
  }
}
