
	var move_with_mouse = true;
	if (move_with_mouse) {
		var offsetxpoint = -60;	// Customize x offset of tooltip
		var offsetypoint = 20;	// Customize y offset of tooltip
	}
	else {
		var offsetxpoint = -60;	// Customize x offset of tooltip
		var offsetypoint = 5;	// Customize y offset of tooltip
	}

	var ie = document.all;
	var ns6 = document.getElementById && !document.all;
	var enabletip = false;
	var freeze = false;

	if (ie || ns6) {
		var tipobj = document.all? document.all["dhtmltooltip"] : document.getElementById ? document.getElementById("dhtmltooltip") : "";
	}

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

	function popup(thetext, thecolor, thewidth) {
		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;
		}
		
		return true;
	}

	function position_popup(e) {
		if (enabletip) {

			if (move_with_mouse) {
				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 isnt enough to accomodate the width of the context menu
				// move the horizontal position of the menu to the left by its width.
				if (rightedge < tipobj.offsetWidth) {
					tipobj.style.left = ie ? ietruebody().scrollLeft + event.clientX - tipobj.offsetWidth + "px" : window.pageXOffset + e.clientX - tipobj.offsetWidth + "px";
				}
				else if (curX < leftedge) {
					tipobj.style.left = "5px";
				}

				// Position the horizontal position of the menu where the mouse is positioned.
				else {
					tipobj.style.left = curX + offsetxpoint + "px";
				}

				// Same concept with the vertical position.
				if (bottomedge < tipobj.offsetHeight) {
					tipobj.style.top = ie ? ietruebody().scrollTop + event.clientY - tipobj.offsetHeight - offsetypoint + "px" : window.pageYOffset + e.clientY - tipobj.offsetHeight - offsetypoint + "px";
				}
				else {
					tipobj.style.top = curY + offsetypoint + "px";
				}

				tipobj.style.visibility = "visible";
			}

			else {
				if (!freeze) {
					var curX = (ns6) ? e.pageX : event.clientX + ietruebody().scrollLeft;
					var curY = (ns6) ? e.pageY : event.clientY + ietruebody().scrollTop;

					if (curX < 0) curX = 0;
					if (curY < 0) curY = 0;

					tipobj.style.left = curX + offsetxpoint + "px";
					tipobj.style.top = curY + offsetypoint + "px";

					tipobj.style.visibility = "visible";

					freeze = true;
				}
			}
		}
	}

	function hide_popup() {
		if (ns6 || ie) {
			enabletip = false;
			freeze = false;

			tipobj.style.visibility = "hidden";
			tipobj.style.left = "-1000px";
			tipobj.style.backgroundColor = "";
			tipobj.style.width = "";
		}
	}


document.onmousemove = position_popup;

