function tipMouseMove(e){
	var container=getTipContainer(e.target);
	if(container.attr('position')=='se'){
		var top=e.pageY;
		var left=e.pageX-(container.width())-10;
	}else if(container.attr('position')=='n'){
		var top=e.pageY-container.height()+70;
		var left=e.pageX-(container.width())-20;
	}else if(container.attr('position')=='nw'){
		var top=e.pageY-container.height()-20;
		var left=e.pageX;
	}else if(container.attr('position')=='ne'){
		var top=e.pageY-container.height()-20;
		var left=e.pageX-(container.width())-10;
	}else if(container.attr('position')=='sw'){
		var top=e.pageY+20;
		var left=e.pageX+10;
	}else if(container.attr('position')=='s'){
		var top=e.pageY-50;
		var left=e.pageX+40;
	}else{
		var top=e.pageY-container.height()-20;
		var left=e.pageX-(container.width()/2);
	}
	container.css('top', top);
	container.css('left', left);
}

function tipMouseOver(e){
	var container=getTipContainer(e.target);
	if(container.css('visibility')=='hidden'){
		container.css('visibility', 'visible');
		container.hide();
	}
	container.fadeIn(200);
}

function tipMouseOut(e){
	var container=getTipContainer(e.target);
	container.stop();
	container.hide();
}

function tip(object, message, position){
	if(typeof($)=='undefined') return;
	if(!jQuery.isReady) return $('#null');

	$('#tipContainer').remove();
	var container=getTipContainer(object);

	container.html(message);

	container.attr('position', position);

	$(object).mouseout(tipMouseOut);

	$(object).bind('initialMouseOver', tipMouseOver);
	$(object).trigger('initialMouseOver');
	$(object).unbind('initialMouseOver');

	$(object).mousemove(tipMouseMove);

	return container;
}

function getTipContainer(object){
	if(object.id!='undefined' && object.id!='' && $('#' + object.id + '_content').size()==1) return $('#' + object.id + '_content');
	if($('#tipContainer').size()==0) $('body').append('<div id="tipContainer" class="tip"></div>');
	return $('#tipContainer');
}

if(typeof($)!='undefined'){
	$(document).ready(function(){
		$('.subject').mousemove(tipMouseMove);
		$('.subject').mouseover(tipMouseOver);
		$('.subject').mouseout(tipMouseOut);
	});
}