/**
 * jQuery Tooltips
 *
 * Adds tooltip functionality
 * Copyright Additional View
 */
(function($) {
	$.fn.tooltip = function(options) {

		var defaults = {
			cursor: false
		};

		var options = $.extend(defaults, options);

		if ($('#tooltip').length) {
			var elem = $('#tooltip');
		}
		else {
			var elem = $('<div id="tooltip">&nbsp;</div>');
			elem.appendTo('body');
		}

		return this.each(function() {
			if (!$(this).attr('title')) {
				return false;
			}

			// Bind TITLE attribute to DATA-TITLE
			$(this).data('tooltip', $(this).attr('title')).attr('title','');

			// Hover
			if (!options.cursor) {
				$(this).bind({
					mouseover: function(e) {
						var tooltip = $(this).data('tooltip');

						elem.html(tooltip).show();

						// Calculate top position
						var top = $(this).offset().top - elem.outerHeight() - 10;

						// Calculate left position
						var left = $(this).offset().left;

						// If position extends off document move to far right of document
						if (left + elem.outerWidth() > $(document).width()) {
							left = $(document).width() - elem.outerWidth() - 10;
						}

						elem.css({
							top: top,
							left: left
						});
					},
					mouseleave: function() {
						elem.hide();
					}
				});
			} else {
				$(this).bind({
					mousemove: function(e) {
						var tooltip = $(this).data('tooltip');

						elem.html(tooltip).show();

						var top = e.pageY - elem.outerHeight();
						var left = e.pageX + 10;

						elem.show().css({
							left: left,
							top: top
						});
					},
					mouseleave: function() {
						elem.hide();
					}
				});
			}
		});
	}
})(jQuery);
