/**
 * @author Chris Lambe
 */

var Tooltip = {
	NAME:"Tooltip",
	_cache:new Object(),
	_instance:null,
	init:function() {
		Tooltip._instance = $('<div></div>').attr('id','tooltip')
											.append($('<div></div>').addClass('top'))
											.append($('<div></div>').addClass('middle')
																	.append($('<div></div>').addClass('background')))
											.append($('<div></div>').addClass('bottom'));
		
		$("body").prepend(Tooltip._instance);
		
		
		Tooltip._instance.click(function() {$(this).hide();});
		$('.mini_info_icon').hover(function() {Tooltip.tooltip(this,this.parentNode.href,7,1)},function(){$('#tooltip').hide()});
		$('#login_info').hover(function() {Tooltip.tooltip(this,this.href,11,3)},function(){$('#tooltip').hide()});
		$('.chart_button').hover(function() {Tooltip.chartButtonTooltip(this)},function(){$('#tooltip').hide()})
	},
	chartButtonTooltip:function(target) {
		target = $(target);
		
		var alt = target.attr('alt');
		var title = '<h3 style="font-weight:bold">' + alt.split(': ')[0] + '</h3>';
		var body = '<p>' + alt.split(': ')[1] + '</p>';
		var text = title;
		if(alt.split(': ')[1])
			text += body;
		
		Tooltip._instance.addClass('dark').children().addClass('dark');
		Tooltip._instance.find(".middle").html(text);
		
		target = $(target);
		
		var tX = target.offset().left - (Tooltip._instance.width() - target.width()) + 8 - $(window).scrollLeft();
		var tY = target.offset().top - Tooltip._instance.height() - $(window).scrollTop();
		
		Tooltip._instance.css({left:tX + "px", top:tY + "px"}).show();
	},
	tooltip:function(target,contentURL,offsetX,offsetY) {
		Tooltip._instance.find(".background").html("<div class=\"loading\"></div>");
		
		offsetX = offsetX == null ? 0 : offsetX;
		offsetY = offsetY == null ? 0 : offsetY;
		target = $(target);
		
		var tX = target.offset().left + offsetX - 240 - $(window).scrollLeft();
		var tY = target.offset().top + target.height() + offsetY - $(window).scrollTop();
		
		Tooltip._instance.css({left:tX + "px", top:tY + "px"}).show();
		
		if (Tooltip._cache[target.attr('alt')]) {
			Tooltip._instance.find(".background").html(Tooltip._cache[target.attr('alt')]);
		} else {
			Tooltip._instance.find(".background").load(contentURL, {}, function(response, status, request){
				Tooltip._cache[target.attr('alt')] = response;
			});
		}
	}
}

Registry.add(Tooltip);
