/*

 * * * * * * * * * * * * * * * * * * * * * *

 *	  s l a s h j q u e r  y . c  o m

 * Tooltip v. 1 - jQuery tooltip widget

 * Copyright (c) 2008 Rasmus Styrk

 *

 * Dual licensed under the MIT and GPL licenses:

 *   http://www.opensource.org/licenses/mit-license.php

 *   http://www.gnu.org/licenses/gpl.html

 *

 * * * * * * * * * * * * * * * * * * * * * *

*/

 

(function($){

	$.fn.tooltip = function(options) 

	{	  

		/*	Default values

		*/

		var defaults = {

			offsetY: 15,

			offsetX: 15,

			delay: 0,

			opacity: 0.95

		};

		

		var options = $.extend(defaults, options);

		var currentTitle;

		var currentObj;

		var trackMouse = true;

		var d = $("body");

		

		/*var tb = $("<div id='tooltip'><div id='tooltip-top'><div><div id='tooltip-center'><div><div id='tooltip-bottom'><div></div>");

		

		d.append(tb);*/

		$("#tooltip").hide();

		//$("#tooltip").animate({ opacity: options.opacity });

		

		return this.each

		(

			function()

			{

				var obj = $(this);

				

				if(obj.attr("title"))

				{

					obj.hover

					(

						function()

						{		

							currentObj = obj;

							currentTitle = obj.attr("title");

							

							if(obj.attr("track") == "false") trackMouse = false;



							$("#tooltip #tooltip-center").html(currentTitle);

							

							this.title = "";

							this.alt = "";

							setTimeout(showTooltip, options.delay);

							

							$(d).bind("mousemove", update)

						},

						function()

						{	

							obj.attr("title", currentTitle);

							$("#tooltip").hide();



							currentTitle = null;

							currentObj = null;

							trackMouse = true;

						}

					);

					

					obj.click

					(

						function()

						{

							$("#tooltip").hide();

						}

					);

				}

			}

		);

		

		function showTooltip(e)

		{

			if(currentTitle)

			{

				$("#tooltip").fadeIn("fast");

			}

		}

		

		function update(e)

		{

			if(currentTitle == null)

			{

				$("#tooltip").hide();

				$(d).unbind("mousemove", update);

			}

			else

			{

				if(trackMouse) 

				{

					$("#tooltip").css({

						top: (options.offsetY+e.pageY)+"px",

						left: (options.offsetX+e.pageX)+"px"

					});

				}

				else

				{

					if(currentObj)

					{

						var offset = currentObj.offset();

						$("#tooltip").css({

							top: (options.offsetY+5+offset.top)+"px",

							left: (options.offsetX+5+offset.left)+"px"

						});

					}

				}	

			}

		}

	}

})(jQuery);  