jQuery(document).ready(function(){
	jQuery(".partner li a:not(.noBubble)").each(function(){
		var id = jQuery(this).attr('href');
		id = id.split("#")[1];
		
		jQuery(this).bind("mouseover", function(e){
			renderToolTip(id, jQuery(this), e);
	    });
		
		jQuery(this).bind("mouseout", function(e){
			removeToolTipAfter(removeDelay);
	    });
	});
});

var timeoutTollTip = null;
var removeDelay = 600;
var divTopOffset = -155;
var divLeftOffset = 5;

function renderToolTip(divSourceID, callerObject, event){
	// Delete previous created object
	removeToolTip();

	// Generate divs on the fly
	var htmlSource = jQuery('#'+divSourceID).html();
	var toolTipDiv = jQuery('<div id="tooltip" onmousemove="preventRemovingToolTip();" onmouseout="removeToolTipAfter('+removeDelay+');" class="pretty fancy">'+htmlSource+'</div>'); 
		
	// Get mouse event
	var IE = jQuery.browser.msie;
	var IEOld = jQuery.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent);
	var left = event.pageX;
	var top = callerObject.parent().get(0).offsetTop;
		
	// Fix IE
	if (IE) {
		top = event.pageY;
	}
	
	if (event) {
		// position the helper 15 pixel to bottom right, starting from mouse position
		left = left + divLeftOffset;
		top = top + divTopOffset;
		var right='auto';
	}
		
	// Position div
	jQuery(toolTipDiv).css("top", top+'px');
	jQuery(toolTipDiv).css("right", "auto");
	jQuery(toolTipDiv).css("left", left+'px');
	jQuery(toolTipDiv).appendTo(document.body);
	
	// Create onfocus event for all html objects in div
	jQuery("#tooltip > *").each(function(){	
		jQuery(this).bind("mouseover", function(e) {
			preventRemovingToolTip();	
		});
	});		
	
	// Always remove tolltip after certain time, unless other events prevent this later
	
}

function preventRemovingToolTip() {
	if (timeoutTollTip) {
		clearTimeout(timeoutTollTip);
	}
}

function removeToolTipAfter(miliseconds) {
	timeoutTollTip = setTimeout(removeToolTip, miliseconds);
}

function removeToolTip(){
	if (timeoutTollTip) {
		clearTimeout(timeoutTollTip);
	}
	
	jQuery("#tooltip").remove();
}
