﻿; (function($) {
    function Hovertip(elem, conf) {
        var tooltip = $('<div></div>').addClass(conf.className).html(elem.attr('title')).insertAfter(elem); tooltip.hide(); elem.removeAttr('title'); function setPosition(posX, posY) { tooltip.css({ left: posX, top: posY }); }
        function updatePosition(event) {
            var tooltipWidth = tooltip.outerWidth(); var tooltipHeight = tooltip.outerHeight(); var $window = $(window); var windowWidth = $window.width() + $window.scrollLeft(); var windowHeight = $window.height() + $window.scrollTop(); var posX = event.pageX + conf.offset[0]; var posY = event.pageY + conf.offset[1]; if (posX + tooltipWidth > windowWidth) { posX = windowWidth - tooltipWidth; }
            if (posY + tooltipHeight > windowHeight) { posY = event.pageY - conf.offset[1] - tooltipHeight; }
            setPosition(posX, posY);
        }
        elem.hover(function(event) { updatePosition(event); conf.show(tooltip); }, function() { conf.hide(tooltip); });
    }
    $.fn.hovertip = function(conf) { var defaultConf = { offset: [10, 10], className: 'hovertip', show: function(tooltip) { tooltip.fadeIn(150); }, hide: function(tooltip) { tooltip.fadeOut(150); } }; $.extend(defaultConf, conf); this.each(function() { var el = new Hovertip($(this), defaultConf); $(this).data("hovertip", el); }); } 
})(jQuery);
