/**
* SMALLTOOLTIP Copyright (c) 2010
*/

(function($) {
  $.fn.smalltooltip = function(Settings) {
  var Options = jQuery.extend({
      Position:'top',
      X:0,
      Y:0,
      Template:'SMALLTOOLTIP',
      Delay: 0,
      FadeIn: false
  }, Settings);
    $('body').append('<div id="' + Options.Template + '"></div>');
    return this.each(function() {
      var Title = $(this).attr('title');
      $.data(this, 'title', Title);
      $(this).attr('title', '');
      $(this).hover(
        function () {
          var Title = $.data(this, 'title');
          var Tooltip = $('#' + Options.Template);
          $(Tooltip).html(Title);
          if(Title.length > 0) {
            var Position = $(this).offset();
            var ElementWidth = $(this).outerWidth();
            var ElementHeight = $(this).outerHeight();
            var TooltipWidth = $(Tooltip).outerWidth();
            var TooltipHeight = $(Tooltip).outerHeight();
            switch(Options.Position) {
              case 'left':
                var TTX = Position.left + Options.X - TooltipWidth;
                var TTY = Position.top + ElementHeight / 2 - TooltipHeight / 2 + Options.Y;
              break;
              case 'right':
                var TTX = Position.left + Options.X + ElementWidth;
                var TTY = Position.top + ElementHeight / 2 - TooltipHeight / 2 + Options.Y;
              break;
              case 'bottom':
                var TTX = Position.left + ElementWidth / 2 - TooltipWidth / 2 + Options.X;
                var TTY = Position.top + Options.Y + ElementHeight;
              break;
              default:
                var TTX = Position.left + ElementWidth / 2 - TooltipWidth / 2 + Options.X;
                var TTY = Position.top + Options.Y - TooltipHeight;
              break;
            }
            $('body').data('SMALLTOOLTIPTimer', setTimeout(function () {
              var CSSCode = {"left": TTX + "px", "top":TTY + "px"};
              if(Options.FadeIn)
                $(Tooltip).css(CSSCode).fadeIn(Options.FadeIn);
              else
                $(Tooltip).css(CSSCode).show();
            }, Options.Delay));
          }
        },
        function () {
          clearTimeout($('body').data('SMALLTOOLTIPTimer'));
          $('#' + Options.Template).stop(true, true).hide();
        }
      );
    });
  };
})(jQuery);

