/*-------------------------------------------------------------------------------
	A Better jQuery Tooltip
	Version 1.0
	By Jon Cazier
	jon@3nhanced.com
	01.22.08
-------------------------------------------------------------------------------*/

$.fn.betterTooltip = function(options){
	
	/* Setup the options for the tooltip that can be 
	   accessed from outside the plugin              */
	var defaults = {
		speed: 200,
		delay: 300
	};
	
	var options = $.extend(defaults, options);
	
	/* Create a function that builds the tooltip 
	   markup. Then, prepend the tooltip to the body */
	getTip = function() {
		var tTip = 
			"<div class='tip'>" +
				"<div class='tipMid'>"	+
				"</div>" +
				"<div class='tipBtm'></div>" +
			"</div>";
		return tTip;
	}
	$("#main").prepend(getTip());
	
	/* Give each item with the class associated with 
	   the plugin the ability to call the tooltip    */
	$(this).each(function(){
		
		if ($(this).attr('coords')) {
		
			var $this = $(this);
			var tip = $('.tip');
			var tipInner = $('.tip .tipMid');
			
			var tTitle = (this.title);
			this.title = "";
			
			var offset = $(this).offset();

			var coords = $(this).attr('coords').split(",");
			
			
			var tLeft = parseInt(coords[0]);
			var tTop = parseInt(coords[1]);

			
			var tWidth = parseInt(coords[2])-parseInt(coords[0]);
			var tHeight = parseInt(coords[3])-parseInt(coords[1]);
			
			/* var tLeft = offset.left;
			var tTop = offset.top;
			var tWidth = $this.width();
			var tHeight = $this.height(); */
			
			/* Mouse over and out functions*/
			$this.hover(
				function() {
					tipInner.html(tTitle);
					setTip(tTop, tLeft);
					setTimer();
				}, 
				function() {
					stopTimer();
					tip.hide();
				}
			);		   
			
			/* Delay the fade-in animation of the tooltip */
			setTimer = function() {
				$this.showTipTimer = setInterval("showTip()", defaults.delay);
			}
			
			stopTimer = function() {
				clearInterval($this.showTipTimer);
			}
			
			/* Position the tooltip relative to the class 
			   associated with the tooltip                */
			setTip = function(top, left){
				var topOffset = tip.height();
				var xTip = (left-50)+"px";
				var yTip = (top-topOffset-57)+"px";
				tip.css({'top' : yTip, 'left' : xTip});
			}
			
			/* This function stops the timer and creates the
			   fade-in animation                          */
			showTip = function(){
				stopTimer();
				tip.animate({"top": "+=20px", "opacity": "toggle"}, defaults.speed);
			}
		}
	});
};