/*
Description:

	jQuery ToolTip Demo. Demo of how to add elements and get mouse coordinates
	There is also a ToolTip plugin found at http://www.eyecon.ro/interface/,
	  which uses a CSS class to style the tooltip, but shows it below the input/anchor, rather than where the mouse is

Usage:

	$(window).load(
		function()
		{
			$("a,input").ToolTipDemo('#fff');
		}
	);

Parameters:

	bgcolour : Background colour
*/
$.fn.ToolTipDemo = function(bgcolour)
{
	this.mouseover(
		function(e)
		{
			if((!this.title && !this.alt) && !this.tooltipset) return;
			// get mouse coordinates
			// based on code from http://www.quirksmode.org/js/events_properties.html
			var mouseX = e.pageX || (e.clientX ? e.clientX + document.body.scrollLeft : 0);
			var mouseY = e.pageY || (e.clientY ? e.clientY + document.body.scrollTop : 0);
			mouseX += 10;
			mouseY += 10;
			bgcolour = bgcolour || "#eee";
			// if there is no sibling after this one, or the next siblings className is not tooltipdemo
			if(!this.nextSibling || this.nextSibling.className != "tooltipdemo")
			{
				// create a div and style it
				var div = document.createElement("div");
				$(div).css(
				{
					border: "2px outset #ddd",
					padding: "2px",
					backgroundColor: bgcolour,
					position: "absolute"
				})
				// add the title/alt attribute to it
				.html((this.title || this.alt)).addClass("tooltipdemo");
				this.title = "";
				this.alt = "";
				if(this.nextSibling)
				{
					this.parentNode.insertBefore(div, this.nextSibling);
				}
				else
				{
					this.parentNode.appendChild(div);
				}
				this.tooltipset = true;
			}
			$(this.nextSibling).show().css({left: mouseX + "px", top: mouseY + 3 + "px"});
		}
	).mouseout(
		function()
		{
			if(this.nextSibling && this.nextSibling.className == "tooltipdemo")
			{
				$(this.nextSibling).hide();
			}
		}
	);
	return this;
}