/*
 * jQuery Tooltip Plugin for ANplumbing.com
 * Xantek Inc
 * version 0.1
 *
 */


jQuery.fn.anplumbingTooltip = function(options){

	// default configuration
	var defaults = {
		speed: 200,
		delay: 300
	};

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

	// create tool tip markup
	getTooltip = function()
	{
		var anpTip =
			"<div class='anpTooltip'>" +
				"<div class='anpTooltipHead'>"	+
				"</div>" +
				"<div class='anpTooltipBody'>"	+
				"</div>" +
				"<div class='anpTooltipBottom'></div>" +
			"</div>";
		return anpTip;
	}
	// prepend to tip markup begining of page
	jQuery("body").prepend(getTooltip());

	// connect markup to jQuery
	jQuery(this).each(function()
	{
		var $this = jQuery(this);
		var tip = jQuery('.anpTooltip');
                var tipHeading = jQuery('.anpTooltip .anpTooltipHead');
		var tipBody = jQuery('.anpTooltip .anpTooltipBody');

		var tipTitle = $this.children('a').attr('title');
                var tipContent = $this.children('div.tooltip').html();

		var offset = jQuery(this).offset();
		var tipLeft = offset.left;
		var tipTop = offset.top;
		var tipWidth = $this.width();
		var tipHeight = $this.height();

		// register action for event
		$this.hover(
			function() {
				tipHeading.html(tipTitle);
                                tipBody.html(tipContent);
				setTip(tipTop, tipLeft);
				setTimer();
			},
			function() {
				stopTimer();
				tip.hide();
			}
		);

		// delay the fade-in of tooltip
		setTimer = function() {
			$this.showTipTimer = setInterval("showTip()", defaults.delay);
		}

		// clean up the delay timer
		stopTimer = function() {
			clearInterval($this.showTipTimer);
		}

		// position the tip relative to element
		setTip = function(top, left){
			var leftOffset = tip.width();
			var xTip = (left-leftOffset-65)+"px";
			var yTip = (top+8)+"px";
			tip.css({'top' : yTip, 'left' : xTip});
		}

		// fade in tooltip
		showTip = function(){
			stopTimer();
			tip.animate({"left": "+=60px", "opacity": "toggle"}, defaults.speed);
		}
	});
};

