// JavaScript Document

/* ToolTip plugins pour le site Moniteur */
/* @auteur : Neov S.A. 2008-05 */

(function($) {
	$.fn.tooltipLite = function(settings) { 
		settings = jQuery.extend({ 
			// SETTING
			attributeRef	: 'title',
			ajax			: false,
			userClass		: 'default',
			timing			: 0,
			position		: 'top',
			xOffset			: 15,
			yOffset			: 15,
			width			: 200
		},settings);
		
		return this.each( function() {
			var $this = $(this);
			var $tooltipMain;
			var $timeOut = setTimeout ('', 0);
			var $isExist = false;
			
			var $posParam = (settings.position == 'top') ? 1 : 0;
			
			if (settings.userClass == 'default') {
				$tooltipMain = $('<div class="tooltipMain"></div>');
			} else {
				$tooltipMain = $('<div class="tooltipMain ' + settings.userClass + '"></div>');
			}
						
			$this.hover ( function (e) {
				clearTimeout ($timeOut);
				if ( $isExist )
					$tooltipMain.empty().remove(); 
				
				var toolContent =  $this.attr(settings.attributeRef);
				$this.lastTitle = $this.attr('title');
				
				$this.attr({ title: '' });
				
				if ( settings.ajax ) {					
					$.get(toolContent, function(data){ 				 	
						showTootip ( data, e );
					});
				} else {				
					showTootip ( $(toolContent).html(), e );
				}
								
				
			}, function (){ 
				$isExist = true;			
				if (settings.timing > 0) {
					$timeOut = setTimeout ( function () {
						removeTip ();
					}, settings.timing );
				} else {
					removeTip ();
				}
			});
			
			$this.mousemove(function(e){
				$tooltipMain
					.css("top",(e.pageY - ($posParam * $tooltipMain.outerHeight()) - (((2 * $posParam) - 1) * settings.yOffset) ) + "px")
					.css("left",(e.pageX + settings.xOffset) + "px");
			});
			
			
			$tooltipMain.hover ( function () {
				clearTimeout ($timeOut);
			}, function () {
				removeTip ();
			});
						
			// affichage			
			var showTootip = function ( contents, e ) {
				//$tooltipMain.append ( $('<div class="tooltipInner"></div>').append(contents) )								
				var _tooltipArrow = $('<div class="tooltipArrow-' + settings.position + '">&nbsp;</div>');
				
				$tooltipMain.append ( $('<div class="tooltipInner"></div>').append(contents) ).append(_tooltipArrow) ;
				
				$("body").append( $tooltipMain );
												
				$tooltipMain.css({ 
					width:	settings.width + 'px'
				 });
				
				var _toolTipHeight = $tooltipMain.innerHeight(); 
				
				// hide before show
				$tooltipMain.hide();				
			
				$tooltipMain
					.css({ 
						top:	(e.pageY - ($posParam *_toolTipHeight) - (((2 * $posParam) - 1) * settings.yOffset) ) + "px",
						left:	(e.pageX + settings.xOffset) + "px",
						height:	_toolTipHeight + 'px'
					})
					.fadeIn("fast");
			};
			
			// destruction 
			var removeTip = function () {
				$tooltipMain.empty().remove(); 
				$this.attr({ title: $this.lastTitle });
				$isExist = false;
			}
		});
		
	};
})(jQuery);
