is_safari = ((navigator.userAgent.indexOf("Safari")!=-1))?true:false;
isShowing = false;
var defaultWidth=300;

function showTip(tooltipcontent,defaultWidthOverride)
{
  if (defaultWidthOverride){
  	
	document.getElementById("tooltipcontainer").style.width=defaultWidthOverride+"px";
  }else{
  	document.getElementById("tooltipcontainer").style.width=defaultWidth+"px";
  }
  isShowing = true;
	windowHeight = document.body.clientHeight;
	windowWidth = document.body.clientWidth;

	document.getElementById("toolBox").innerHTML = tooltipcontent;
	document.getElementById("tooltipcontainer").style.display = "block";
	var ttipOvershoot = (!is_safari) ? document.getElementById("tooltipcontainer").offsetHeight + mouseY + 10 : document.getElementById("tooltipcontainer").offsetHeight + mouseY + 10 - window.pageYOffset;
	var ttipSideOvershoot = document.getElementById("tooltipcontainer").offsetWidth + mouseX + 10;
	if(ttipOvershoot > windowHeight)
	{
		document.getElementById("tooltipcontainer").style.top = (!is_safari) ? windowHeight - document.getElementById("toolBox").offsetHeight - 12 + document.documentElement.scrollTop + "px" : windowHeight - document.getElementById("toolBox").offsetHeight - 12 + window.pageYOffset + "px";
	}
	else
	{
		document.getElementById("tooltipcontainer").style.top = (!is_safari) ? mouseY+10+document.documentElement.scrollTop+"px" : mouseY+5+"px";
	}
	if(ttipSideOvershoot > windowWidth)
	{
		document.getElementById("tooltipcontainer").style.left = mouseX-20-document.getElementById("toolBox").offsetWidth+"px";
	}
	else
	{
		document.getElementById("tooltipcontainer").style.left = mouseX+10+"px";
	}
}

function hideTip()
{
  document.getElementById("tooltipcontainer").style.display = "none";
  isShowing = false;
}

function tipPosition(callingEvent)
{
  if (!callingEvent) callingEvent = window.event;
  mouseX = callingEvent.clientX;
  mouseY = callingEvent.clientY-1;
	if (isShowing)
	{
		var ttipSideOvershoot = document.getElementById("tooltipcontainer").offsetWidth + mouseX + 10;
		var ttipOvershoot = (!is_safari) ? document.getElementById("tooltipcontainer").offsetHeight + mouseY + 10 : document.getElementById("tooltipcontainer").offsetHeight + mouseY + 10 - window.pageYOffset;
		if(ttipOvershoot > windowHeight)
		{
			document.getElementById("tooltipcontainer").style.top = (!is_safari) ? windowHeight - document.getElementById("toolBox").offsetHeight - 12 + document.documentElement.scrollTop + "px" : windowHeight - document.getElementById("toolBox").offsetHeight - 12 + window.pageYOffset + "px";
		}
		else
		{
			document.getElementById("tooltipcontainer").style.top = (!is_safari) ? mouseY+10+document.documentElement.scrollTop+"px" : mouseY+5+"px";
		}
		if(ttipSideOvershoot > windowWidth)
		{
			document.getElementById("tooltipcontainer").style.left = mouseX-20-document.getElementById("toolBox").offsetWidth+"px";
		}
		else
		{
			document.getElementById("tooltipcontainer").style.left = mouseX+10+"px";
		}
	}
}
document.onmousemove = tipPosition;