/***********************************************
* Cool DHTML tooltip script- © 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
***********************************************/
// function print_r(theObj)
// {
// 	if (theObj.constructor == Array || theObj.constructor == Object) {
// 		//document.write("<ul>");
// 		output = "";
// 		for (var p in theObj){
// 			if (theObj[p].constructor == Array || theObj[p].constructor == Object) {
// 				//document.write("<li>[" + p + "] => " + typeof(theObj) + "</li>");
// 				//document.write("<ul>");
// 				output+= "[" + p + "] => " + typeof(theObj) + "\n";
// 				print_r(theObj[p]);
// 				//document.write("</ul>");
// 			} else {
// 				//document.write("<li>[" + p + "] => "+theObj[p]+"</li>");
// 				output+= "[" + p + "] => " + theObj[p] + "\n";
// 			}
// 		}
// 		//document.write("</ul>")
// 		alert(output);
// 	}
// }

var offsetxpoint = 0; //Customize x offset of tooltip
var offsetypoint = 20; //Customize y offset of tooltip
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") : "";

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

function ddrivetip(thetext, thecolor, thewidth, theheight, left, top)
{
	//alert(thetext + ", " + thecolor + ", " + thewidth + ", " + theheight + ", " + left + ", " + top);
	if (ns6 || ie)
	{
		if (typeof thewidth != "undefined" && thewidth != '')
			tipobj.style.width = thewidth + "px";
		else
			tipobj.style.width = '';

		if (typeof theheight != "undefined" && theheight != '')
			tipobj.style.height = theheight + "px";
		else
			tipobj.style.height = '';

		if (typeof thecolor != "undefined" && thecolor != "")
			tipobj.style.backgroundColor = thecolor;

		tipobj.innerHTML = thetext;

		if (typeof top != "undefined" && typeof left != "undefined")
		{
			tipobj.style.top = top + "px";
			tipobj.style.left = left + "px";
			tipobj.style.visibility = "visible";
		} else
			enabletip = true;

		return false;
	}
}

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 < tipobj.offsetWidth)
			//move the horizontal position of the menu to the left by it's width
			leftedge = ie ? ietruebody().scrollLeft + event.clientX - tipobj.offsetWidth : window.pageXOffset + e.clientX - tipobj.offsetWidth;
		else if (curX < leftedge)
			leftedge = 1;
		else
			//position the horizontal position of the menu where the mouse is positioned
			leftedge = curX + offsetxpoint;
		tipobj.style.left = leftedge + "px";

		//same concept with the vertical position
		if (bottomedge < tipobj.offsetHeight) {
			topedge = ie ? ietruebody().scrollTop + event.clientY - tipobj.offsetHeight - offsetypoint : window.pageYOffset + e.clientY - tipobj.offsetHeight - offsetypoint;
			if (topedge > 0)
				tipobj.style.top = ie ? ietruebody().scrollTop + event.clientY - tipobj.offsetHeight - offsetypoint + "px" : window.pageYOffset + e.clientY-tipobj.offsetHeight - offsetypoint + "px";
			else {
				//tipobj.style.top = (-1 * topedge) + "px"
				tipobj.style.top = ie && !window.opera ? ietruebody().clientHeight - tipobj.offsetHeight - 5 + "px" : window.innerHeight - tipobj.offsetHeight - 5 + "px";
				tipobj.style.left = leftedge + 70 + "px";
			}
		} else
			tipobj.style.top = curY + offsetypoint + "px";

		tipobj.style.visibility = "visible";
	}
}

function hideddrivetip()
{
	if (ns6 || ie){
		enabletip = false;
		tipobj.style.visibility = "hidden";
		tipobj.style.left = "-1000px";
		tipobj.style.backgroundColor = '';
		tipobj.style.width = '';
	}
}

document.onmousemove = positiontip;

/**
 *
 * @access public
 * @return void
 **/
function get2DProperties(elementID)
{
	target = (document.getElementById(elementID) != undefined ? document.getElementById(elementID) : elementID);
	arrPosition = getOffsetPosition(elementID);
	target2DProp = {
		_x : arrPosition._x,
		_y : arrPosition._y,
		_width : target.offsetWidth,
		_height : target.offsetHeight
	}
	//alert("_x = " + target2DProp._x + "\n_y = " + target2DProp._y + "\n _width = " + target2DProp._width + "\n_heigth = " + target2DProp._height);
	return target2DProp;
}

/**
 *
 * @access public
 * @return void
 **/
function getOffsetPosition(inID)
{
	var arrPosition = {
		_x : 0,
		_y : 0
	}
	var oObj = (document.getElementById(inID) != undefined ? document.getElementById(inID) : inID);
	while (oObj && oObj.tagName != 'BODY')
	{
		arrPosition._x+= oObj.offsetLeft;
		arrPosition._y+= oObj.offsetTop;
		oObj = oObj.offsetParent;
	}
	return arrPosition;
}