// JavaScript Document
$(document).ready(function() {
	
	var toolTipTimerHide, toolTipTimerShow;
	var toolTipObj;
	
	getToolTip = function() {
		
		var ToolTip = "<div id='ToolTip' class='ToolTipLeft'><div></div></div>";
		
		return ToolTip;
	}

	hideToolTip = function() {
		$("#ToolTip").fadeOut();
	}
	
	showToolTip = function() {
		
		var tip = $(toolTipObj).attr('tooltip');
		
		$("#ToolTip").html( "<div></div>" + tip );
		
		var ToolTipWidth = $("#ToolTip").width();
		var ToolTipHeight = $("#ToolTip").height();
		var winWidth = $(window).width();
		
		var offset = $(toolTipObj).offset();
		
		if (offset.left + 10 + ToolTipWidth > winWidth) {
			var xTip = (offset.left - ToolTipWidth + 10)+"px";
			
			$("#ToolTip").removeClass("ToolTipLeft");
			$("#ToolTip").addClass("ToolTipRight");
		} else {
			var xTip = (offset.left + 10)+"px";
			
			$("#ToolTip").removeClass("ToolTipRight");
			$("#ToolTip").addClass("ToolTipLeft");
		}
		var yTip = (offset.top - ToolTipHeight - 15)+"px";
		
		if ($("#ToolTip").is(':hidden')) {
			$("#ToolTip").css({'top' : yTip, 'left' : xTip});
			$('#ToolTip').fadeIn('500');
		} else {
			$("#ToolTip").animate({'top' : yTip, 'left' : xTip}, "slow");
		}
	}
	
	$("body").prepend(getToolTip());
	
	$('#ToolTip').hover(
		function() {
			if (toolTipTimerHide) clearTimeout(toolTipTimerHide);
		}, 
		function() {
			if (toolTipTimerHide) clearTimeout(toolTipTimerHide);
			if (toolTipTimerShow) clearTimeout(toolTipTimerShow);
			
			toolTipTimerHide = setTimeout("hideToolTip()",100);
		}
	);
	
	//Select all anchor tag with rel set to tooltip
	$('[tooltip]').each(function(){
		
		$(this).hover(
			function() {
				
				if (toolTipTimerHide) clearTimeout(toolTipTimerHide);
				if (toolTipTimerShow) clearTimeout(toolTipTimerShow);
				
				toolTipObj = this;
				
				toolTipTimerShow = setTimeout("showToolTip()",300);
			}, 
			function() {
				if (toolTipTimerHide) clearTimeout(toolTipTimerHide);
				if (toolTipTimerShow) clearTimeout(toolTipTimerShow);
				
				toolTipTimerHide = setTimeout("hideToolTip()",100);
			}
		);
		
	});

});
