/*
 * jQuery Simple Tooltip 0.9
 *
 * Copyright (c) 2007 Pierre Bertet (pierrebertet.net)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 */
(function($j){
	
	// viewportHeight from dimensions plugin
	$j.viewportHeight = function(){return self.innerHeight || jQuery.boxModel && document.documentElement.clientHeight || document.body.clientHeight;};
	
	// simpletooltip
	$j.fn.simpletooltip = function(options){
		var all_tooltips = [];
		var nombre = $j(this).attr("ref");
		var openTooltip = function(e){
		var tailleW = $j(this).width();
		
		
			e.preventDefault();
			//alert(tailleW);
			var p = $("#"+$(this).parent().attr("id"));
			switch(p.attr("id")){
				case "menu_lang":
								//Offset Firefox
								offsetYFF=7;
								//OffsetYIE6
								offsetYIE6 = 9;
								//OffsetYIE8
								offsetYIE8 = 7;
								//offsetYIE7
								offsetYIE7 = 9;
								break;
								
				case "menu_filiale":offsetYFF=14;
									//Taille des li du menu
									//tailleW= 97;
									tailleW= 112;
									offsetYIE6 = 16;
									
									offsetYIE8 = 14;
									
									offsetYIE7 = 16;
				break;
			}
			
			//Cette variable ne sert à rien apparament
			//var a = $("ul.list_footer li");
			var offset = p.offset();
			
			
			var tPosX = offset.left;
			var tPosY = offset.top-(nombre*30+5);		
			//alert("x"+tPosX);
			
			var tooltipE = e.data.tooltipE;
			var tooltip = e.data.tooltip;
			var hideDelay = e.data.hideDelay;
			var hideOnMouseOut = e.data.hideOnMouseOut;
			
			var winWidth = $j(window).width();
			var winHeight = $j(window).height();
			var winYViewLimit = (window.pageYOffset || document.documentElement.scrollTop) + $j.viewportHeight();
			
			// Effect
			if (tooltipE._effect && (tooltipE._effect=="fadeIn" || tooltipE._effect=="slideDown" || tooltipE._effect=="show")) {
				window.eval("tooltip."+tooltipE._effect+"('fast')");
			}
			else {
				tooltip.show();
			}
			
			if (!tooltipE._width){
				tooltipE._width = tooltip.width();
				tooltipE._height = tooltip.height();
			}
			
			//var tPosX = e.pageX - (tooltipE._width/2);
			//var tPosY = (e.pageY - (tooltipE._height/2))-(nombre*30+15);
			
			if (tPosX < 0) {
				tPosX = tooltipE._margin;
			}
			else if (tPosX + tooltipE._width > winWidth) {
				tPosX = winWidth - tooltipE._width - tooltipE._margin;
			}
			
			if (tPosY < 0) {
				tPosY = tooltipE._margin;
			}
			else if (tPosY + tooltipE._height > winYViewLimit) {
				tPosY = winYViewLimit - tooltipE._height - tooltipE._margin;
			}
			
			var timer = new Number();
			tPosX = offset.left;
			tPosY = offset.top-(nombre*30+5);	

			//alert("xy = "+tPosX + " y = "+tPosY);
			if ((jQuery.browser.msie && jQuery.browser.version < 7)) {
			tPosX = (offset.left-5);
			tPosY = offset.top-(nombre*30+offsetYIE6);					
				tooltip.css({"left": tPosX + "px", "top": tPosY + "px", "hand": "pointer","width":(tailleW+8) +"px","height": ((nombre*30))+"px" });
			}else if ((jQuery.browser.msie && jQuery.browser.version == 7)) {
				tPosX = offset.left+37;
				tPosY = offset.top-(nombre*30+offsetYIE7);	
				tooltip.css({"left": tPosX + "px", "top": tPosY + "px", "hand": "pointer","width": (tailleW-30) + "px" ,"height": ((nombre*30))+"px" });
			} else if ((jQuery.browser.msie && jQuery.browser.version == 8)) {
				tPosX = offset.left+37;
				tPosY = offset.top-(nombre*30+offsetYIE8);	
				tooltip.css({"left": tPosX + "px", "top": tPosY + "px", "hand": "pointer","width": (tailleW-30) + "px" ,"height": ((nombre*30))+"px" });
			} else{
				
			tPosX = offset.left+37;
			tPosY = offset.top-(nombre*30+offsetYFF);	
			tooltip.css({"left": tPosX + "px", "top": tPosY + "px", "hand": "pointer","width":75 + "px" ,"height": ((nombre*30))+"px" });
			}
			
			
			
			if (hideOnMouseOut) {
				tooltip.unbind().hover(
					function(){window.clearTimeout(timer);},
					function(){timer = window.setTimeout(function(){tooltip.hide();}, hideDelay * 1000);}
				);
			}
		};
		
		this.each(function(){
			var currentHref = $j(this).attr("href");
			
			if (currentHref && currentHref.match(/^#.+/)){
				var tooltip = $j(currentHref);
				
				if (tooltip.length > 0){
					var tooltipE = tooltip.get(0);
					
					// Initialize a tooltip
					if (!tooltipE._tooltipInit) {
						all_tooltips.push(tooltipE);
						
						if (options && options.margin) {tooltipE._margin = options.margin;}
						else {tooltipE._margin = 5;}
						
						if (options && options.effect) {tooltipE._effect = options.effect;}
						else {tooltipE._effect = false;}
						
						tooltip.find("a[href^=#][rel=close]").click(function(e){
							e.preventDefault();
							tooltip.hide();
						});
						
						tooltipE._tooltipInit = true;
					}
					
					// Hide on mouseOut event ?
					if (options && options.hideOnMouseOut != null) {var hideOnMouseOut = options.hideOnMouseOut;}
					else {var hideOnMouseOut = true;}
					
					// Show event type
					if (options && options.click && options.click == true) {var showEvent = "click";}
					else {var showEvent = "mouseover";}
					
					// Hide delay
					if (options && options.hideDelay && options.hideDelay > 0) {var hideDelay = options.hideDelay;}
					else {var hideDelay = 0;}
					
					// Bind event
					$j(this).bind(showEvent, { "tooltipE": tooltipE, "tooltip": tooltip, "hideDelay": hideDelay, "hideOnMouseOut": hideOnMouseOut }, openTooltip);
				}
			}
		});
		
		$j(all_tooltips)
		.appendTo("body")
		.css({"position": "absolute", "zIndex": "9999", "display": "none"});
		
		return this;
	};
})(jQuery);

