/*-------------------------------------------------------------------------------
	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;   
        }   
        $("body").prepend(getTip());   
  
        /* Give each item with the class associated with   
           the plugin the ability to call the tooltip    */   
        $(this).each(function(){   
  
            var $this = $(this);   
            var tip = $('.tip');   
            var tipInner = $('.tip .tipMid');   
               
            var tTitle = (this.title);   
            this.title = "";   
               
            var offset = $(this).offset();   
            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-30)+"px";   
            var yTip = (top-topOffset-50)+"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);   
        }   
    });   
};  