
var disappeardelay = 250;  //tooltip disappear delay (in miliseconds)
var verticaloffset = 0; //vertical offset of tooltip from anchor link, if any
var enablearrowhead = 0; //0 or 1, to disable or enable the arrow image
var offsetxpoint = 20; //Customize x offset of tooltip
var offsetypoint = 20; //Customize y offset of tooltip
var enabletip = false;

/////No further editting needed

var ie = document.all;
var ns6 = document.getElementById && !document.all;

function showhide(obj, e){
	dropmenuobj.style.left = dropmenuobj.style.top = "-500px";
	if (e.type == "mouseover")
		obj.visibility = "visible";
}

function displayballoontip(obj, e){ //main ballooon tooltip function
	if (window.event) event.cancelBubble = true;
	else if (e.stopPropagation) e.stopPropagation();
	
	if (typeof dropmenuobj!="undefined") //hide previous tooltip?
		dropmenuobj.style.visibility = "hidden";
	
	clearhidemenu();
	
	dropmenuobj = document.getElementById(obj.getAttribute("rel"));
	showhide(dropmenuobj.style, e);
	enabletip = true;

}

function delayhidemenu(){
	enabletip = false;
	delayhide = setTimeout("dropmenuobj.style.visibility='hidden'; dropmenuobj.style.left=0;", disappeardelay);
}

function clearhidemenu(){
	if (typeof delayhide != "undefined")
		clearTimeout(delayhide);
}

function reltoelement(linkobj){ //tests if a link has "rel" defined and it's the ID of an element on page
	var relvalue = linkobj.getAttribute("rel")
	return (relvalue != null && relvalue != "" && document.getElementById(relvalue) != null && document.getElementById(relvalue).className == "content_details");
}

function initalizetooltip(){
	var all_links = document.getElementsByTagName("a");
	for (var i = 0; i < all_links.length; i++){
		//if link has "rel" defined and it's the ID of an element on page
		if (reltoelement(all_links[i])){ 
			all_links[i].onmouseover = function(e){
					var evtobj = window.event ? window.event : e;
					displayballoontip(this, evtobj);
				};
		all_links[i].onmouseout = delayhidemenu;
		}
	}
}

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function positiontip(e){
	if (enabletip){	
		var curX = (ns6) ? e.pageX : event.clientX + ietruebody().scrollLeft;
		var curY = (ns6) ? e.pageY : event.clientY + ietruebody().scrollTop;
		//Find out how close the mouse is to the corner of the window
		var rightedge = ie&&!window.opera? ietruebody().clientWidth - event.clientX-offsetxpoint : window.innerWidth - e.clientX - offsetxpoint - 20;
		var bottomedge = ie && !window.opera ? ietruebody().clientHeight - event.clientY - offsetypoint : window.innerHeight - e.clientY-offsetypoint - 20;
		
		var leftedge = (offsetxpoint<0)? offsetxpoint*(-1) : -1000;
		
		//if the horizontal distance isn't enough to accomodate the width of the context menu
		if (rightedge < dropmenuobj.offsetWidth)
		//move the horizontal position of the menu to the left by it's width
		dropmenuobj.style.left = ie ? ietruebody().scrollLeft+event.clientX-dropmenuobj.offsetWidth + "px" : window.pageXOffset + e.clientX-dropmenuobj.offsetWidth + "px";
		else if (curX<leftedge)
		dropmenuobj.style.left = "5px";
		else
		//position the horizontal position of the menu where the mouse is positioned
		dropmenuobj.style.left = curX+offsetxpoint + "px";
	
		//same concept with the vertical position
		if (bottomedge<dropmenuobj.offsetHeight)
			dropmenuobj.style.top = ie? ietruebody().scrollTop + event.clientY-dropmenuobj.offsetHeight - offsetypoint + "px" : window.pageYOffset+e.clientY-dropmenuobj.offsetHeight-offsetypoint + "px";
		else
			dropmenuobj.style.top = curY + offsetypoint + "px";
		dropmenuobj.style.visibility = "visible"
	}
}
