﻿var offsetX = 50;
var offsetY = 20;

function ref_out(evt)
{
	document.getElementById("refToolTip").style.display = "none";
}

function initToolTip()
{
	var arrAllLinks = joinArrays(document.getElementsByTagName("a"), document.getElementsByTagName("area"));

	for (var irtt_i=0; irtt_i<arrAllLinks.length; irtt_i++)
	{
		if (arrAllLinks[irtt_i].className == "refTT")
		{
		    if (String(arrAllLinks[irtt_i].tagName).toUpperCase() == "A")
            {
			    arrAllLinks[irtt_i].onmouseover=function(evt)
			    {
				    document.getElementById("refToolTip").style.display = "block";
			        document.getElementById("refToolTip").style.left = getPosOffset(this,"left") + "px";
				    document.getElementById("refToolTip").style.top = getPosOffset(this,"top") + offsetY + "px";

				    fillReferenceText(this.rel);
				    this.style.left = this.style.top = "-500px";
				    this.visibility = "visible";
			    }
            }
            else
            {
			    arrAllLinks[irtt_i].onmouseover=function(evt)
			    {
				    document.getElementById("refToolTip").style.display = "block";
				    if (evt)
				    {
			            document.getElementById("refToolTip").style.left = parseInt(evt.clientX) + 15 + "px";
			            document.getElementById("refToolTip").style.top = getPosOffset(this,"top") + offsetY + "px";
                    }
                    else
                    {
                        document.getElementById("refToolTip").style.left = (event.clientX+25) + "px";
                        document.getElementById("refToolTip").style.height = "130px";
                        document.getElementById("refToolTip").style.top = (event.srcElement.offsetTop+event.srcElement.offsetHeight + 345) + "px";
                    }

				    fillReferenceText(removePrependedURLString(this.href));
				    this.style.left = this.style.top = "-500px";
				    this.visibility = "visible";
			    }
            }

			arrAllLinks[irtt_i].onmouseout=ref_out;
		}
	}
}

function joinArrays(arr1,arr2)
{
    var to_return = new Array();
    
    for (var ja_i=0; ja_i<arr1.length; ja_i++)
    {
        to_return[to_return.length] = arr1[ja_i]; 
    }
    
    for (ja_i=0; ja_i<arr2.length; ja_i++)
    {
        to_return[to_return.length] = arr2[ja_i]; 
    }    
    
    return (to_return);
}

function getPosOffset(what, offsettype)
{
	var totaloffset=(offsettype=="left") ? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null)
	{
		totaloffset=(offsettype=="left") ? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}

function fillReferenceText(refid)
{
    document.getElementById("refToolTip").innerHTML = document.getElementById("ref"+String(refid).substring(4)).innerHTML;
}

function removePrependedURLString(str)
{
    //str will be something like http://XXXXXXXXXXXX/aRefNN
    var aRef_pos = str.indexOf("aRef");
    if (aRef_pos != -1)
    {
        return (str.substring(aRef_pos));
    }
}

if (window.attachEvent)
{
    window.attachEvent("onload", initToolTip)
}
else
{
    window.onload=initToolTip;
}
