//////////////////////////////////////////////////////////////////
// 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
//////////////////////////////////////////////////////////////////

function addWindowMouseOverEvent(item, func) {
    var oldWindowMouseOver = item.onmouseover;
    if (typeof item.onmouseover != 'function') {
        item.onmouseover = func;
    } else {
        item.onmouseover = function() {
            if (oldWindowMouseOver) {
                oldWindowMouseOver();
            }
            func();
        };
    }
}
function addWindowMouseOutEvent(item, func) {
    var oldWindowMouseOut = item.onmouseout;
    if (typeof item.onmouseout != 'function') {
        item.onmouseout = func;
    } else {
        item.onmouseout = function() {
            if (oldWindowMouseOut) {
                oldWindowMouseOut();
            }
            func();
        };
    }
}
/*	
 ** Matt Kruse's hasClass, with slight modification	
 ** Determine if an object or class string contains a given class.
  */
function hasClass (obj, className) {
    if (typeof obj == 'undefined' || obj==null || !RegExp) { return false; }
    var re = new RegExp("(^|\\s)" + className + "(\\s|$)");
    if (typeof(obj)=="string") {
      return re.test(obj);
    }
    else if (typeof(obj)=="object" && obj.className) {
      return re.test(obj.className);
    }
    return false;
}
  
var qTipTag = "tr,a,td,img"; //Which tag do you want to qTip-ize? Keep it lowercase!//
var qTipX = 0; //This is qTip's X offset//
var qTipY = 20; //This is qTip's Y offset//

//There's No need to edit anything below this line//
tooltip = {
  className : "_qtip",
  name : "qTip",
  offsetX : qTipX,
  offsetY : qTipY,
  tip : null
}

tooltip.init = function () {
	var tipNameSpaceURI = "http://www.w3.org/1999/xhtml";
	if(!tipContainerID){ var tipContainerID = "qTip";}
	var tipContainer = document.getElementById(tipContainerID);

	if(!tipContainer) {
	  tipContainer = document.createElementNS ? document.createElementNS(tipNameSpaceURI, "div") : document.createElement("div");
		tipContainer.setAttribute("id", tipContainerID);
	  document.getElementsByTagName("body").item(0).appendChild(tipContainer);
	}

	if (!document.getElementById) return;
	this.tip = document.getElementById (this.name);
	if (this.tip) document.onmousemove = function (evt) {tooltip.move (evt)};

	var a, sTitle, elements;
	
	var elementList = qTipTag.split(",");
	for(var j = 0; j < elementList.length; j++)
	{	
		elements = document.getElementsByTagName(elementList[j]);
		if(elements)
		{
			for (var i = 0; i < elements.length; i ++)
			{
				a = elements[i];
				sTitle = a.getAttribute("title");				
				if(sTitle)
				{
				    if (hasClass(a, tooltip.className) && !a.getAttribute("tiptitle")) {
					    a.setAttribute("tiptitle", sTitle);
					    a.removeAttribute("title");
					    a.removeAttribute("alt");
					    addWindowMouseOverEvent(a, function() {tooltip.show(this.getAttribute('tiptitle'))});
					    addWindowMouseOutEvent(a, function() {tooltip.hide()});
					}
				}
			}
		}
	}
}

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.show = function (text) {
	if (!this.tip) return;
	this.tip.innerHTML = text;
	this.tip.style.display = "block";
}

tooltip.hide = function () {
	if (!this.tip) return;
	this.tip.innerHTML = "";
	this.tip.style.display = "none";
}

window.onload = function () {
	tooltip.init ();
}