// ----- Panel ----------

function loginPan_display(x)
{
  var win = window.open();
  for (var i in x) win.document.write(i+' = '+x[i]+'<br>');
}


function loginPan_show_aux(pan_link, sub_panel)
{
  var pan = document.getElementById(pan_link);
  var subPan = document.getElementById(sub_panel );

  var top  = (subPan["loginPan_position"] == "y") ? pan.offsetHeight+2 : 0;
  var left = (subPan["loginPan_position"] == "x") ? pan.offsetWidth +2 : 0;

  for (; pan; pan = pan.offsetpan_link)
  {
    top  += pan.offsetTop;
    left += pan.offsetLeft;
  }

  subPan.style.position   = "absolute";
  subPan.style.top        = '';
  subPan.style.left       = '';
  subPan.style.visibility = "visible";
}

// ----- Panel show -----

function loginPan_show()
{
  var pan = document.getElementById(this["loginPan_pan_link"]);
  var subPan = document.getElementById(this["loginPan_sub_panel" ]);

  loginPan_show_aux(pan.id, subPan.id);

  clearTimeout(subPan["loginPan_timeout"]);
}

// ----- Panel hide -----

function loginPan_hide()
{
  var subPan = document.getElementById(this["loginPan_sub_panel"]);

  subPan["loginPan_timeout"] = setTimeout("document.getElementById('"+subPan.id+"').style.visibility = 'hidden'", 2000);
}


function loginPan_click()
{
  var pan = document.getElementById(this["loginPan_pan_link"]);
  var subPan = document.getElementById(this["loginPan_sub_panel" ]);

  if (subPan.style.visibility != "visible")
       loginPan_show_aux(pan.id, subPan.id);
  else subPan.style.visibility = "hidden";

  return false;
}

// ----- Attaching Panel -------------------

function pan_render(pan_link, sub_panel, showtype, position, cursor)
{
  var pan = document.getElementById(pan_link);
  var subPan = document.getElementById(sub_panel);

  pan["loginPan_pan_link"]     = pan.id;
  subPan["loginPan_pan_link"]     = pan.id;
  pan["loginPan_sub_panel"]      = subPan.id;
  subPan["loginPan_sub_panel"]      = subPan.id;
  pan["loginPan_position"]   = position;
  subPan["loginPan_position"]   = position;

  subPan.style.position   = "absolute";
  subPan.style.visibility = "hidden";

  if (cursor != undefined) pan.style.cursor = cursor;

  switch (showtype)
  {
    case "click":
      pan.onclick     = loginPan_click;
      pan.onmouseout  = loginPan_hide;
      subPan.onmouseover = loginPan_show;
      subPan.onmouseout  = loginPan_hide;
      break;
    case "hover":
      pan.onmouseover = loginPan_show;
      pan.onmouseout  = loginPan_hide;
      subPan.onmouseover = loginPan_show;
      subPan.onmouseout  = loginPan_hide;
      break;
  }
}
