// JavaScript Document

(function ($) {
		   
	$.fn.SlideMenu = function (options) {
		var opts = $.extend({}, $.fn.SlideMenu.defaults, options);
		
		return this.each(function(){
					  
			var menu =  $(this);
			var menu_width = menu.width();
			var parent = $(this).parent();
			var parent_menu = parent.parent();

			//$("#console").append("<div></div>").append("PARENT " + parent_menu.attr("id"));

			parent.bind("mouseenter", function(event){ 
				// si le menu n'est pas en train de remonter (fermeture)
				if(!menu.hasClass(opts.blockClass) ) {
					afficher_menu();
				}	
			});
		
			parent.bind("mouseleave", function(event){ 
				//$("#console").append("<div></div>").append(menu.attr("id"));
				
				var vsel = " li ul." + opts.visibleClass + ":first";
				var enfant_visible = $(vsel,menu);				
				
				if (enfant_visible.hasClass(opts.visibleClass)) {
					var verif = setInterval(function() {
						if (!enfant_visible.hasClass(opts.visibleClass)) {
							masquer_menu();
							clearInterval(verif);
						}
					}, 100);
				} 
				else {
					masquer_menu();
				}
			});
			

			function afficher_menu() {				
				menu.css({"z-index": "105"}).slideDown(200, function(){
					menu.addClass(opts.visibleClass);
				});
			}

			function masquer_menu() {
				menu.toggleClass(opts.blockClass);
				menu.css({"z-index": "101"}).slideUp(200, function(){
					menu.toggleClass(opts.blockClass);
					menu.removeClass(opts.visibleClass);
				});
			}
			
			

		});


	};
	
	$.fn.SlideMenu.defaults = {
		blockClass: "slide-menu-block",
		visibleClass: "slide-menu-visible"	
	};



	$.fn.SlideMenu2 = function (options) {
		var opts = $.extend({}, $.fn.SlideMenu2.defaults, options);
		
		return this.each(function(){
					  
			var menu =  $(this);
			var menu_width = menu.width();
			var parent = $(this).parent();
			var parent_menu = parent.parent();

			//$("#console").append("<div></div>").append("PARENT " + parent_menu.attr("id"));

			parent.bind("mouseenter", function(event){ 
				// si le menu n'est pas en train de remonter (fermeture)
				if(!menu.hasClass(opts.blockClass) ) {
					afficher_menu();
				}	
			});
		
			parent.bind("mouseleave", function(event){ 
				//$("#console").append("<div></div>").append(menu.attr("id"));
				
				var vsel = " li ul." + opts.visibleClass + ":first";
				var enfant_visible = $(vsel,menu);				
				
				if (enfant_visible.hasClass(opts.visibleClass)) {
					var verif = setInterval(function() {
						if (!enfant_visible.hasClass(opts.visibleClass)) {
							masquer_menu();
							clearInterval(verif);
						}
					}, 100);
				} 
				else {
					masquer_menu();
				}
			});
			

			function afficher_menu() {
				/*				
				menu.css({"z-index": "105"}).slideDown(200, function(){
					menu.addClass(opts.visibleClass);
				});*/
				menu.css({"z-index": "105", width: "1px", display: "block"}).animate({width: menu_width + "px"}, 200,function(){
					menu.addClass(opts.visibleClass);
				});
			}

			function masquer_menu() {
				menu.toggleClass(opts.blockClass);
				/*menu.css({"z-index": "101"}).slideUp(200, function(){
					menu.toggleClass(opts.blockClass);
					menu.removeClass(opts.visibleClass);
				});*/
				menu.css({"z-index": "101"}).animate({width: "1px"}, 200,function(){
					menu.toggleClass(opts.blockClass);
					menu.removeClass(opts.visibleClass);
					menu.css({display: "none", width: menu_width + "px"});
				});
				
			}
			
			

		});


	};
	
	$.fn.SlideMenu2.defaults = {
		blockClass: "slide-menu-block",
		visibleClass: "slide-menu-visible"	
	};



})(jQuery);




