(function($) {
  $.fn.simpleTooltip = function(options){	
	  var opts = $.extend({}, $.fn.simpleTooltip.defaults, options);
	  
	  return this.each(function(){
	    var me = $(this);
	    var originalTitle = "";
      me.hover(function(e){	
        originalTitle = me.attr('title');
        titleDisplayed = originalTitle && !opts.overrideElementTitle ? originalTitle : opts.title;
        titleDisplayed = $.isFunction(titleDisplayed) ? titleDisplayed() : titleDisplayed; 
        me.attr("title","");
        if(titleDisplayed.length>0){
  	  	  $("body").append("<p class='tooltip'>"+titleDisplayed+"</p>");
  	  	  $(".tooltip")
  	  	    .animate({opacity: 1.0}, opts.delay)
  	  	  	.css("top",(e.pageY - opts.xOffset) + "px")
  	  	  	.css("left",(e.pageX + opts.yOffset) + "px")
  	  	  	.fadeIn("fast");
  	  	}	
      },function(){
        me.attr("title", originalTitle);
  	    $(".tooltip").remove();
      });	   
  	  me.mousemove(function(e){
  	  	$(".tooltip")
  	  		.css("top",(e.pageY - opts.xOffset) + "px")
  	  		.css("left",(e.pageX + opts.yOffset) + "px");
  	  });
	  });
	}
	
  $.fn.simpleTooltip.defaults = {
    title: null, 
    xOffset: -20,
    yOffset: -50, 
    delay: 0,
    overrideElementTitle: false
  };
})(jQuery);