function at_display(x) {
  win = window.open();
  for (var i in x) win.document.write(i + ' = ' + x[i] + '<br>');
}

// ----- Show Aux -----
function at_show_aux(parent, child) {
  var p = document.getElementById(parent);
  var c = document.getElementById(child);
  var top  = (c["at_position"] == "y") ? p.offsetHeight + 2 : 0;
  //var top = (c["at_position"] == "y") ? (p.offsetHeight - 1) : 0;
  var left = 2;
  //var left = 0;
  for (; p; p = p.offsetParent) {
    top += p.offsetTop;
    left += p.offsetLeft;
  }
  c.style.position = "absolute";
  c.style.top = top + 'px';
  c.style.left = left + 'px';
  c.style.visibility = "visible";
}

// ----- Show -----
function at_show() {
  p = document.getElementById(this["at_parent"]);
  c = document.getElementById(this["at_child"]);
  at_show_aux(p.id, c.id);
  clearTimeout(c["at_timeout"]);
}

// ----- Hide -----
function at_hide() {
  c = document.getElementById(this["at_child"]);
  //c["at_timeout"] = setTimeout("document.getElementById('"+c.id+"').style.visibility = 'hidden'", 400);
  c["at_timeout"] = setTimeout("document.getElementById('" + c.id + "').style.visibility = 'hidden'", 1);
}

// ----- Click -----
function at_click() {
  //at_hide();
  p = document.getElementById(this["at_parent"]);
  c = document.getElementById(this["at_child"]);
  //if (c.style.visibility != "visible") {
	at_show_aux(p.id, c.id);
  //}
  //else {
	//c.style.visibility = "hidden";
  //}
  return false;
}

function at_click2() {
  p = document.getElementById(this["at_parent"]);
  c = document.getElementById(this["at_child" ]);
  if (p == "[object]") {
	var top  = (c["at_position"] == "y") ? p.offsetHeight + 2 : 0;
	//var top  = (c["at_position"] == "y") ? (p.offsetHeight - 1) : 0;
	var left = 2;
	//var left = 0;
	for (; p; p = p.offsetParent) {
		top += p.offsetTop;
		left += p.offsetLeft;
	}
	c.style.position = "absolute";
	c.style.top = top + "px";
	c.style.left = left + "px";
	c.style.visibility = "visible";
  }
}

function at_attach(parent, child, showtype, position, cursor, xo) {
  p = document.getElementById(parent);
  c = document.getElementById(child);
  if(c != null) {
	p["at_parent"] = p.id;
	c["at_parent"] = p.id;
	p["at_child"] = c.id;
	c["at_child"] = c.id;
	p["at_position"] = position;
	c["at_position"] = position;
	c.style.position = "absolute";
	c.style.visibility = "hidden";
	if (cursor != undefined) p.style.cursor = cursor;
  } else {c = ""}

  switch (showtype) {
    case "click":
      p.onclick = at_click;
      p.onmouseout = at_hide;
      c.onmouseover = at_show;
      c.onmouseout = at_hide;
      //p.onkeypress = at_click;
	  //p.onfocus = at_show;
	  p.onkeypress = at_show;
	  //p.onfocus = at_show;
      //p.onblur = at_hide;
      //c.onfocus = at_show;
      c.onblur = at_hide;
      break;
    case "hover":
      tabindex = xo;
      p.onmouseover = at_show;
      p.onmouseout = at_hide;
      c.onmouseover = at_show;
      c.onmouseout = at_hide;
      //p.onkeypress = at_show;
	  //p.onkeypress = at_show;
	  //p.onfocus = at_show;
      p.onkeydown = at_click2;
	  p.onchange = at_show;
      //p.onblur = at_hide;
      //c.onfocus = at_show;
      c.onblur = at_hide;
      break;
  }
}

function document.onkeydown() {
  clearTimeout(c["at_timeout"]);
  if(event.keyCode == 9) {
	c["at_timeout"] = setTimeout("document.getElementById('" + c.id + "').style.visibility = 'hidden'", 600);
  }
}