window.onload = bodyOnLoad;

document.writeln('<DIV ID=reftip onClick=reftipOnClick(); STYLE="position:absolute;visibility:hidden;overflow:visible; background-color:#FFFFE0; padding=10px; "></DIV>');

function reftipOnClick()
{
  var tip=document.all.reftip;
  if(tip)
  {
    tip.style.visibility = "hidden";
    tip.innerHTML="";
  }
}



function bodyOnLoad()
{
}


function showTip(link, name)
{
  var htm=document.getElementById(name);
  var tip=document.all.reftip;
  if(tip && htm)
  {
    window.linkElement = link;
    link.href="javascript:void(0)";

    // Hide the tip if necessary and initialize its size.
    tip.style.visibility = "hidden";
    tip.style.pixelWidth = htm.offsetWidth+tip.paddingLeft+tip.paddingRight; // 200;
    tip.style.pixelHeight = htm.offsetHeight+tip.paddingTop+tip.paddingBottom; //  50;
    tip.innerHTML=htm.outerHTML;
//    alert(htm.outerHTML);
    
//   alert(""+link.name+"\n"+link.id+"\n"+link.offsetLeft+"\n"+link.offsetTop );
    
    window.setTimeout("moveTip()", 0);
  }
}

function hideTip()
{
  var tip = document.all.reftip;
  if (tip) {
	  tip.style.visibility = "hidden";
	  tip.innerHTML = "";
  }
}

function moveTip()
{
	var tip = document.all.reftip;
	var link = window.linkElement;
	if (!tip || !link)
		return; //error
		
	var w = tip.offsetWidth;
	var h = tip.offsetHeight;

	if (w > tip.style.pixelWidth) {
		tip.style.pixelWidth = w;
		window.setTimeout("moveTip()", 0);
		return;
	}

	var maxw = document.body.clientWidth;
	var maxh = document.body.clientHeight;

	if (h > maxh) {
		if (w < maxw) {
			w = w * 3 / 2;
			tip.style.pixelWidth = (w < maxw) ? w : maxw;
			window.setTimeout("moveTip()", 0);
			return;
		}
	}

	var x,y;

	var linkLeft = link.offsetLeft - document.body.scrollLeft;
	var linkRight = linkLeft + link.offsetWidth;

	var linkTop = link.offsetTop - document.body.scrollTop;
	var linkBottom = linkTop + link.offsetHeight;

	var cxMin = link.offsetWidth - 24;
	if (cxMin < 16)
		cxMin = 16;

	if (linkLeft + cxMin + w <= maxw) {
		x = maxw - w;
		if (x > linkRight + 8)
			x = linkRight + 8;
		y = maxh - h;
		if (y > linkTop)
			y = linkTop;
	}
	else if (linkBottom + h <= maxh) {
		x = maxw - w;
		if (x < 0)
			x = 0;
		y = linkBottom;
	}
	else if (w <= linkRight - cxMin) {
		x = linkLeft - w - 8;
		if (x < 0)
			x = 0;
		y = maxh - h;
		if (y > linkTop)
			y = linkTop;
	}
	else if (h <= linkTop) {
		x = maxw - w;
		if (x < 0)
			x = 0;
		y = linkTop - h;
	}
	else if (w >= maxw) {
		x = 0;
		y = linkBottom;
	}
	else {
		w = w * 3 / 2;
		tip.style.pixelWidth = (w < maxw) ? w : maxw;
		window.setTimeout("moveTip()", 0);
		return;
	}

	tip.style.pixelLeft = x + document.body.scrollLeft;
	tip.style.pixelTop = y + document.body.scrollTop;
	tip.style.visibility = "visible";
	tip.innerHTML=tip.innerHTML;

}

