//////////////////////////////////////////////////////////////////
// qTip - CSS Tool Tips - by Craig Erskine
// http://qrayg.com
//
// Multi-tag support by James Crooke
// http://www.cj-design.com
//
// Inspired by code from Travis Beckham
// http://www.squidfingers.com | http://www.podlob.com
//////////////////////////////////////////////////////////////////

// CSS Class name for showing tool tips
var qTipClass = "formLabel";
//Comma-separated list of HTML tags to show tool tips
var qTipTag = "input";
var qTipX = 0; //This is qTip's X offset//
var qTipY = 15; //This is qTip's Y offset//

// Create tooltip object
tooltip = {
	name : "qTip",
	offsetX : qTipX,
	offsetY : qTipY,
	tip : null
}

tooltip.init = function ()
{
	if (!document.getElementById) return;

	var tipNameSpaceURI = "http://www.w3.org/1999/xhtml";
	if(!tipContainerID){ var tipContainerID = "qTip";}
	var tipContainer = document.getElementById(tipContainerID);

	// Add container div if none exists
	if(!tipContainer) {
		tipContainer = document.createElementNS ? document.createElementNS(tipNameSpaceURI, "div") : document.createElement("div");
		tipContainer.setAttribute("id", tipContainerID);
		document.getElementsByTagName("body").item(0).appendChild(tipContainer);
	}

	this.tip = document.getElementById (this.name);
	if (this.tip) document.onmousemove = function (evt) {tooltip.move (evt)};

	var elements;

	// Find all HTML elements to add QTip 
	var elementList = qTipTag.split(",");
	for(var j = 0; j < elementList.length; j++)
	{	
		elements = document.getElementsByTagName(elementList[j]);
		setToolTip(elements);
	}

	// Find all elements with QTip CSS class 
	elements = getElementsByClass(qTipClass);
	setToolTip(elements);
} // tooltip.init

tooltip.move = function (evt)
{
	var x=0, y=0;
	if (document.all) {//IE
		x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
		y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
		x += window.event.clientX;
		y += window.event.clientY;
		
	} else {//Good Browsers
		x = evt.pageX;
		y = evt.pageY;
	}
	this.tip.style.left = (x + this.offsetX) + "px";
	this.tip.style.top = (y + this.offsetY) + "px";
} // tooltip.move

tooltip.show = function (text)
{
	if (!this.tip) return;
	this.tip.innerHTML = text;
	this.tip.style.display = "block";
}  // tooltip.show

tooltip.hide = function ()
{
	if (!this.tip) return;
	this.tip.innerHTML = "";
	this.tip.style.display = "none";
} // tooltip.hide

function setToolTip(list)
{
	if (list == null) return;

	var a, sTitle;

	for (var i = 0; i < list.length; i ++)
	{
		a = list[i];
		sTitle = a.getAttribute("title");				
		if(sTitle)
		{
			a.setAttribute("tiptitle", sTitle);
			a.removeAttribute("title");
			a.removeAttribute("alt");
			a.onmouseover = function() {tooltip.show(this.getAttribute('tiptitle'))};
			a.onmouseout = function() {tooltip.hide()};
		}
	}
} // setToolTip

addLoadEvent(function() {
  tooltip.init();
});
