/* Sticky Tooltip script (v1.0)
* Created: Nov 25th, 2009. This notice must stay intact for usage 
* Author: Dynamic Drive at http://www.dynamicdrive.com/
* Visit http://www.dynamicdrive.com/ for full source code
*/


var stickytooltipClick={
	tooltipoffsets: [-20, -20], //additional x and y offset from mouse cursor for tooltips
	fadeinspeed: 200, //duration of fade effect in milliseconds
	rightclickstick: true, //sticky tooltip when user right clicks over the triggering element (apart from pressing "s" key) ?
	stickybordercolors: ["black", "darkred"], //border color of tooltip depending on sticky state
	stickynotice1: ["Press \"s\"", "or right click", "to sticky box"], //customize tooltip status message
	stickynotice2: "Click outside this box to hide it", //customize tooltip status message

	//***** NO NEED TO EDIT BEYOND HERE

	isdocked: false,

	positiontooltip:function($, $tooltip, e){
		var x=e.pageX+this.tooltipoffsets[0], y=e.pageY+this.tooltipoffsets[1] - $tooltip.outerHeight();
		var tipw=$tooltip.outerWidth(), tiph=$tooltip.outerHeight();
		x=(x+tipw>$(document).scrollLeft()+$(window).width())? x-tipw-(stickytooltipClick.tooltipoffsets[0]*2) : x
		y=(y+tiph>$(document).scrollTop()+$(window).height())? $(document).scrollTop()+$(window).height()-tiph-10 : y
		$tooltip.css({left:x, top:y})
	},
	
	showbox:function($, $tooltip, e){
		$(".blockClose").css("display","block");
		$tooltip.fadeIn(this.fadeinspeed)
		this.positiontooltip($, $tooltip, e)
	},

	hidebox:function($, $tooltip){
		if (!this.isdocked){
			$tooltip.stop(false, true).hide()
			$tooltip.css({borderColor:'black'}).find('.stickystatus:eq(0)').css({background:this.stickybordercolors[0]}).html(this.stickynotice1)
		}
	},

	docktooltip:function($, $tooltip, e){
		this.isdocked=true
		$tooltip.css({borderColor:'darkred'}).find('.stickystatus:eq(0)').css({background:this.stickybordercolors[1]}).html(this.stickynotice2)
	},


	init:function(targetselector, tipid, a){
		if(!a)
		{
		jQuery(document).ready(function($){
			$("body").append("<div class=\"blockClose\"/>");
			$(".blockClose").css("display","none");
			var $targets=$(targetselector)
			var $tooltip=$('#'+tipid).appendTo(document.body);
			if ($targets.length==0)
				return
			var $alltips=$tooltip.find('div.atip')
			$targets.bind('click', function(e){
				$alltips.hide().filter('#'+$(this).attr('data-taste')).show()
				stickytooltipClick.showbox($, $tooltip, e)
			})
			$(".blockClose").bind('click', function(e){
				stickytooltipClick.hidebox($, $tooltip);
				$(".blockClose").css("display","none");
			})
		}) //end dom ready
		}
		else
		{
			$("body").append("<div class=\"blockClose\"/>");
			$(".blockClose").css("display","none");
			var $targets=$(targetselector)
			var $tooltip=$('#'+tipid).appendTo(document.body);
			if ($targets.length==0)
				return
			var $alltips=$tooltip.find('div.atip')
			$targets.bind('click', function(e){
				$alltips.hide().filter('#'+$(this).attr('data-taste')).show()
				stickytooltipClick.showbox($, $tooltip, e)
			})
			$(".blockClose").bind('click', function(e){
				stickytooltipClick.hidebox($, $tooltip);
				$(".blockClose").css("display","none");
			})
		}
	}
}

//stickytooltipClick.init("targetElementSelector", "tooltipcontainer")
