var offsetX = null;	// x offset of tooltip
var offsetY = null;		// y offset of tooltip
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var enableTip = false;

function ieBody() {
	return(document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}

function getTooltip(message, colorBG, msgWidth) {
	if(ie || ns6) {
		if(typeof msgWidth != "undefined") {
			tooltipObject.style.width = msgWidth + "px";
		}
		if(typeof colorBG != "undefined" && colorBG != "") {
			tooltipObject.style.backgroundColor = colorBG;
		}

		tooltipObject.innerHTML = message;
		tooltipObject.style.textAlign = "justify";
		tooltipObject.style.fontSize = "10px";
		enableTip = true;
		return false
	}
}

function positionTip(e) {
	if(enableTip) {
		var curX = (ns6) ? e.pageX : event.clientX + ieBody().scrollLeft;
		var curY = (ns6) ? e.pageY : event.clientY + ieBody().scrollTop;

		// determine how close the mouse is to the corner of the window
		var rightedge = ie && !window.opera ? ieBody().clientWidth - event.clientX - offsetX : window.innerWidth - e.clientX - offsetX - 20;
		var bottomedge = ie && !window.opera ? ieBody().clientHeight - event.clientY - offsetY : window.innerHeight - e.clientY - offsetY - 20;

		var leftedge = (offsetX < 0) ? offsetX * (-1) : -1000;

		// if the horizontal distance isn't enough to accomodate the width of the context menu
		if(rightedge < tooltipObject.offsetWidth) {
			// move the horizontal position of the menu to the left by it's width
			tooltipObject.style.left = ie ? ieBody().scrollLeft + event.clientX - tooltipObject.offsetWidth + "px" : window.pageXOffset + e.clientX - tooltipObject.offsetWidth + "px";
		}
		else if(curX < leftedge) {
			tooltipObject.style.left = "5px";
		}
		else {
			// position the horizontal position of the menu where the mouse is positioned
			tooltipObject.style.left = curX + offsetX + "px";
		}

		// same concept with the vertical position
//		if(bottomedge < tooltipObject.offsetHeight) {
//			tooltipObject.style.top = ie ? ieBody().scrollTop + event.clientY - tooltipObject.offsetHeight - offsetY + "px" : window.pageYOffset + e.clientY - tooltipObject.offsetHeight - offsetY + "px";
//		}
//		else {
			tooltipObject.style.top = curY + offsetY + "px";
			tooltipObject.style.visibility = "visible";
//		}
	}
}

function remTooltip() {
	if(ie || ns6) {
		enableTip = false;
		tooltipObject.style.visibility = "hidden";
		tooltipObject.style.left = "-1000px";
		tooltipObject.style.backgroundColor = "";
		tooltipObject.style.width = "";
	}
}

function initTooltip() {
	document.onmousemove = positionTip;
}

function setTooltip(which, offX, offY) {
	var myTooltips = "";
	var myColor = "#004d3d";
	var myWidth = null;

	offsetX = offX;		// x offset of tooltip
	offsetY = offY;		// y offset of tooltip

	if(which == "zoom in") {
		myTooltips = '<span class="globalTooltips">Increase the text size</span>';
		myWidth = 126;
		getTooltip(myTooltips, myColor, myWidth);
	}
	else if(which == "zoom out") {
		myTooltips = '<span class="globalTooltips">Decrease the text size</span>';
		myWidth = 129;
		getTooltip(myTooltips, myColor, myWidth);
	}
	else if(which == "print") {
		myTooltips = '<span class="globalTooltips">Print this page</span>';
		myWidth = 84;
		getTooltip(myTooltips, myColor, myWidth);
	}
	else if(which == "search") {
		myTooltips = '<span class="globalTooltips">Start a new search</span>';
		myWidth = 107;
		getTooltip(myTooltips, myColor, myWidth);
	}
	else if(which == "home") {
		myTooltips = '<span class="globalTooltips">Visit the UO Home Page</span>';
		myWidth = 136;
		getTooltip(myTooltips, myColor, myWidth);
	}
	else if(which == "info") {
		myTooltips = '<span class="globalTooltips">More Information</span>';
		myWidth = 102;
		getTooltip(myTooltips, myColor, myWidth);
	}
}
