// 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
//
// Copyright (c) 2006 Craig Erskine
// Permission is granted to copy, distribute and/or modify this document
// under the terms of the GNU Free Documentation License, Version 1.3
// or any later version published by the Free Software Foundation;
// with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
// A copy of the license is included in the section entitled "GNU
// Free Documentation License".

var qTipTag = "glossary, glossaryTop"; //Which tag do you want to qTip-ize? Keep it lowercase!//
var qTipX = 0; //This is qTip's X offset//
var qTipY = 15; //This is qTip's Y offset//

//There's No need to edit anything below this line//
tooltip = {
  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 = getElementsByClassNameYule(elementList[j],"a");
		if (elements) {

            for (var i = 0; i < elements.length; i++) {
                a = elements[i];

				sTitle = a.getAttribute("title");
                if (sTitle) {
                    a.setAttribute("tiptitle", sTitle+"");
                    a.removeAttribute("title");
                    a.removeAttribute("alt");
                    a.onmouseover = function(){
						if (a.getAttribute("classname") == 'glossaryTop') {
							tooltip.up=true;
						}
						tooltip.show(this.getAttribute('tiptitle'))

                    };
                    a.onmouseout = function(){
                        tooltip.hide()
                    };
					a.onclick = function(){
						//hide the tooltip to stop sticking when user clicks back
						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";
}

function getElementsByClassNameYule(className, tagName){
	/* custom function to getElementByClassName that is compatible with ie
	 * author: paul.brennan@ahc.uk.com
	 * date: 29 July 2009
	 * ie 7,6 and 5 is tempramental when it comes to getElementsByClassName
	 * doesn't seem to understand element.className
	 * AVOID using if possible.
	 * For some reason ie also doesn't like getElementsByTagName('*') even though its in the DOM specification
	 * So need to specify which tag need to search for which is rubbish but thats ie!
	 */
	var aelements = document.getElementsByTagName(tagName);
	var classNameElements = [];

	if (aelements){
		for (var i = 0; i < aelements.length; i++) {
			for (var j = 0; j < aelements[i].attributes.length; j++) {
				if (aelements[i].attributes[j].name == "class"){
					if (aelements[i].attributes[j].value == className){
						classNameElements.push(aelements[i]);
					}
				}
			}
		}
	}



	return classNameElements;
}


window.onload = function () {
	tooltip.init ();
}