﻿    
/***********************************************
* Cool DHTML tooltip script II- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

//***********************************************/
//DOCUMENTATION:
//***********************************************/
//Configuration Notes
//1) In the code of Step 4 above, it references showToolTip(), which is what you'll need to use to enter 
//the tooltip text for each corresponding link/element:

//    showToolTip('TEXT TO DISPLAY', OPTIONAL TIP WIDTH)The last two parameters are optional, and not specifying 
//    them causes the script to default to the settings within your CSS file. With that in mind, here are a few actual usage examples:

//    <a href="http://www.yahoo.com" onMouseover="showToolTip('Visit Yahoo.com')"
//      onMouseout="hideToolTip()">Search Engine</a><div onMouseover="showToolTip('Yahoo\'s Site', 250)"
//      onMouseout="hideToolTip()">This is a DIV. This is a DIV.</div>

//    Important: If your tooltip description contains apostrophes ('), be sure to backslash them first, as 
//    illustrated in the last example ("Yahoo\'s Site"), or an error will occur.
//
//2) To customize the general look of the tooltip (ie: default width, background color), edit the stylesheet 
//    of Step 1.
//
//3) Inside the script of Step 2, there contains a few variables for specifying the offsets of the tooltip. 
//    Most notably, the variable:
//    var offsetdivfrompointerY=14lets you specify the vertical offset of the tooltip DIV relative to the pointer 
//    image. This variable is useful if you use your own custom pointer image. By setting this variable to height_of_pointer_image-1, the two parts should fit snugly together.



var offsetfromcursorX=12 //Customize x offset of tooltip
var offsetfromcursorY=10 //Customize y offset of tooltip

var offsetdivfrompointerX=10 //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY=14 //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).

document.write('<div id="dhtmltooltip" style="z-index: 10000;"></div>') //write out tooltip DIV
//BRB:  Customized to Support Theme utilization and Dynamic URL Rewriting provided in CSS Tags of ASP.Net
//      by using a DIV styled by #ID selector instead of a hard coded img tag.
//BRB:  Updated to override with HIGH z-index to prevent issues with other elements such as LightBox Panel etc.
//document.write('<img id="dhtmlpointer" src="tooltip_arrow.gif" />') //write out pointer image
document.write('<div id="dhtmlpointer" style="z-index: 10000;"></div>') //write out pointer image

var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6) var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
var pointerobj=document.all? document.all["dhtmlpointer"] : document.getElementById? document.getElementById("dhtmlpointer") : ""

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function showToolTip(thetext, thewidth, thecolor){
	if (ns6||ie){
		if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
		if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
		
		tipobj.innerHTML=thetext
		enabletip=true
		
		return false
	}
}

function positionToolTip(e){
	if (enabletip){
		var nondefaultpos=false
		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 winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
		var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20

		var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
		var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY

		var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000

		//if the horizontal distance isn't enough to accomodate the width of the context menu
		if (rightedge<tipobj.offsetWidth){
			//move the horizontal position of the menu to the left by it's width
			tipobj.style.left=curX-tipobj.offsetWidth+"px"
			nondefaultpos=true
		}
		else if (curX<leftedge)
			tipobj.style.left="5px"
		else{
			//position the horizontal position of the menu where the mouse is positioned
			tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
			pointerobj.style.left=curX+offsetfromcursorX+"px"
		}

		//same concept with the vertical position
		if (bottomedge<tipobj.offsetHeight){
			tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
			nondefaultpos=true
		}
		else{
			tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
			pointerobj.style.top=curY+offsetfromcursorY+"px"
		}
		tipobj.style.visibility="visible"
		
		if (!nondefaultpos)
			pointerobj.style.visibility="visible"
		else
			pointerobj.style.visibility="hidden"
	}
}

function hideToolTip(){
	if (ns6||ie){
		enabletip=false
		tipobj.style.visibility="hidden"
		pointerobj.style.visibility="hidden"
		tipobj.style.left="-1000px"
		tipobj.style.backgroundColor=''
		tipobj.style.width=''
	}
}

//Output to Document
document.onmousemove=positionToolTip


