// VERSION: 1.0 LAST UPDATE: 19.03.2011
/* 
 * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
 * 
 * Made by Tommy Thierry, tommy.thierry@gmail.com, Montreal, QC
 * Website: http://www.tom-art.ca/
 */
(function($) {
	$.fn.menuHover = function(options) 
	{
		var defaults = {
			classMenu : 'menu' ,
			speed : 500 , 
			imgUrl : 'imgUrl.png' , 
			classSelected : 'LinkSelected' ,
			padding : 10 ,
			zIndex : 0
		};			

		var opts = $.extend(defaults, options); 
		
		
		//On init l'image de fond
		$('body').append('<img src="'+opts.imgUrl+'" id="imgMenuLink" />');
		
		//On creer les var class
		var ImgMenu = $('#imgMenuLink');
		var menuSelected = $('.'+opts.classSelected);
		var menuLink = $('.'+opts.classMenu);
		
		
		//Init de l'image sur le seleted		
		ImgMenu.css('position', 'absolute');
		
		var imgWidth = ImgMenu.width();
		var imgHeight = ImgMenu.height();
		
		var position = menuSelected.position();
		var selectTop = position.top;
		var selectLeft = position.left;
		
		var imgTop = selectTop - opts.padding;
		var imgLeft = selectLeft - opts.padding;
		
		var selectWidth = menuSelected.width();
		var selectHeight = menuSelected.height();
		
		var imgWidth = selectWidth + opts.padding*2;
		var imgHeight = selectHeight + opts.padding*2;
		
		ImgMenu.css('top', imgTop);
		ImgMenu.css('left', imgLeft);
		ImgMenu.css('width', imgWidth);
		ImgMenu.css('height', imgHeight);
		
		//On init les index et position
		$(ImgMenu).css('z-index', opts.zIndex);
		
		var zindexLink = parseInt(opts.zIndex) + 1;
		
		$(menuLink).each(function(index) {			
			$(this).css('z-index', zindexLink);
			var tempPosition = $(this).position();
			$(this).css('position', 'absolute');
			$(this).css('top', tempPosition.top);
			$(this).css('left', tempPosition.left);
		});
		
		
		//On creer le mouvement Hover
		menuLink.hover(
			function () {
				var tempPosition = $(this).position();
				var tempTop = tempPosition.top;
				var tempLeft = tempPosition.left;
				
				var tempImgTop = tempTop - opts.padding;
				var tempImgLeft = tempLeft - opts.padding;
				
				var tempWidth = $(this).width();
				var tempHeight = $(this).height();
				
				var tempImgWidth = tempWidth + opts.padding*2;
				var tempImgHeight = tempHeight + opts.padding*2;
				
				ImgMenu.animate({
					left: tempImgLeft,
					top: tempImgTop,
					width: tempImgWidth,
					height: tempImgHeight
				}, opts.speed);
			}, 
			function () {				
				ImgMenu.animate({
					left: imgLeft,
					top: imgTop,
					width: imgWidth,
					height: imgHeight
				}, opts.speed);
			}
		);
		
		//On creer levent CLick
		menuLink.click(function() {
			//On update la position initiale
			var positonReset = $(this).position();
			imgTop = positonReset.top - opts.padding;
			imgLeft = positonReset.left - opts.padding;
			imgWidth = $(this).width() + opts.padding*2;
			imgHeight = $(this).height() + opts.padding*2;
		});

	};
})(jQuery);
