//Tip mousemove event - NEU *n* for memberpic weristonline
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'){ /* nord */
		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'){ /* sued */
		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);
	}
	//if(top<window.pageYOffset) top=window.pageYOffset;
	//if(left<window.pageXOffset) left=window.pageXOffset;
	container.css('top', top);
	container.css('left', left);
}

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

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

/**
 * Displays a tip
 * @param object the DOM object
 * @param message the message to display
 * @param position is the tip position (default north)
 * @return the container
 */
function tip(object, message, position){
	//No tips if either jQuery is not loaded or document is not ready
	if(typeof($)=='undefined') return;
	if(!jQuery.isReady) return $('#null');

	//Remove previous container from DOM
	$('#tipContainer').remove();
	var container=getTipContainer(object);

	//Set Message
	container.html(message);

	//Set orientation
	container.attr('position', position);

	//Bind the mousemove and mouseout events
	$(object).mouseout(tipMouseOut);

	//Trigger initial mouseover event
	$(object).bind('initialMouseOver', tipMouseOver);
	$(object).trigger('initialMouseOver');
	$(object).unbind('initialMouseOver');

	$(object).mousemove(tipMouseMove);

	//Trigger mousemove event for positioning
	//$(object).trigger('mousemove');

	//Return container
	return container;
}

/**
 * Gets the tip container by its object
 * @param object the DOM object
 * @return returns a JQuery object
 */
function getTipContainer(object){
	if(object.id!='undefined' && object.id!='' && $('#' + object.id + '_content').size()==1) return $('#' + object.id + '_content'); //Find named container
	if($('#tipContainer').size()==0) $('body').append('<div id="tipContainer" class="tip"></div>');
	return $('#tipContainer');
}

//Register common tip mouse events
if(typeof($)!='undefined'){
	$(document).ready(function(){
		$('.subject').mousemove(tipMouseMove);
		$('.subject').mouseover(tipMouseOver);
		$('.subject').mouseout(tipMouseOut);
	});
}
