
menu_images = 
{
	el_ul: null,
	els_lis: null,
	
	opening_speed: 600,
	li_open: -2,
	
	onblur_width: null,
	open_width: 822,
	close_width: 78,
	
	onblur_left: [0, -248, -262],
	open_left: [0, 0, 0],
	close_left: [0, -368,-502],
	
	construct: function() 
	{
		//-- Préparation des propriétés de l'objet
		this.el_ul = $('menu_images');
		this.els_lis = this.el_ul.getElements('li');
		this.onblur_width = this.els_lis[0].getSize().size.x;
		
		//-- Préparation des LI
		$each(this.els_lis, function(el, i) 
		{
			el.num_li = i;
			el.sizer = el.effect('width', {
				duration: menu_images.opening_speed, 
				transition:Fx.Transitions.Cubic.easeOut,
				onComplete: function() 
				{
					if (el.show_label)
						el.getElement('span').addClass('visible');
				}
			});
			el.mover = el.getElement('img').effect('left', {duration: menu_images.opening_speed, transition:Fx.Transitions.Cubic.easeOut});
			el.addEvent('mouseenter', function(e)
			{
				e = new Event(e).stop();
				menu_images.open_li(this.num_li, true);
			});
		});
		
		//-- Préparation du UL
		this.el_ul.addEvent('mouseleave', function(e)
		{
			e = new Event(e).stop();
			menu_images.open_li(-1, true);
		});

		menu_images.open_li(-1, false);
	},
	
	open_li: function(num_li, is_anim) 
	{
		//-- Ne rien faire si déja ouvert 
		if (num_li==this.li_open) 
			return;
		
		//-- Change l'état de chaque volet 
		$each(this.els_lis, (function(el_li, i)
		{
			var width, left, show_label;
			
			if (num_li == -1) 
			{
				width = this.onblur_width;
				left = this.onblur_left[i];
				el_li.show_label = false;
			}
			else if (num_li == i)
			{
				width = this.open_width;
				left = this.open_left[i];
				el_li.show_label = true;
			}
			else
			{
				width = this.close_width;
				left = this.close_left[i];
				el_li.show_label = false;
			}
				
			el_li.sizer.stop();
			if (is_anim)
				el_li.sizer.start(width);
			else
				el_li.sizer.set(width);

			el_li.mover.stop();
			if (is_anim)
				el_li.mover.start(left);
			else
				el_li.mover.set(left);
			
			if (!el_li.show_label)
				el_li.getElement('span').removeClass('visible');

		}).bind(this));
			
		this.li_open = num_li;
	}
}

menu_produits = 
{
	el_conteneur: null,
	sel_li: [, , null, null, null],
	
	construct: function()	
	{
		//-- applique les rollovers
		this.apply_click_events();
		
		//-- si il y a un item à sélectionner dans le menu 
		var selected_flag = $('menu_produits').getElement('var');
		if (selected_flag) {
			var el_li = selected_flag.getParent();
			var niveau = parseInt(selected_flag.getText());
			
			// sélectionne aussi ses parents
			var parent_lis = [];
			
			for (var niv = niveau, el = el_li.getParent(); niv > 2; el = el.getParent())
				if (el.nodeName.toLowerCase() == 'li') {
					parent_lis[niv] = el;
					niv--;
				}

			this.highlight(el_li);
			this.set_sel_li(niveau, el_li);
			
			for (var i = 0; i < parent_lis.length; i++)
				if (parent_lis[i])
					parent_lis[i].onclick();
			
			//-- l'item à selectionner à été cloné : foutre l'objet cloné dans this.sel_li
			//-- re-recherche
			var selected_flags = $$('#menu_produits #h4s').getElement('var');
			if (!selected_flags[0])
				selected_flags = $$('#menu_produits #h3s').getElement('var');
			
			this.set_sel_li(niveau, selected_flags.getLast().getParent());
			
		}
	},
	
	set_sel_li: function(niveau, el_li)
	{
		this.sel_li[niveau] = el_li;
	},
	
	apply_click_events: function()
	{
		var el_lis = $('menu_produits').getElements('li');
		$each(el_lis, function(el, i) 
		{
			el.addEvent('mouseover', function() 
			{
				menu_produits.highlight(this);
			});
			el.addEvent('mouseout', function()
			{
				menu_produits.blur(this);
			});
		});
	},
	
	display_my_ul: function(num_titre, niveau)
	{
		
		var el_titre = $('h' + niveau + 's').getElements('h' + niveau)[num_titre];
		var el_ul = $(getNextNode(el_titre, 'ul'));

		
		this.select_li(el_titre.getParent(), niveau);

		
		$('h' + (niveau+1) + 's').empty();
		this.set_sel_li(niveau + 1, null);
		
		if (niveau==2) {
			$('h4s').empty();
			this.set_sel_li(4, null);
		}

		el_ul.clone().injectInside('h' + (niveau + 1) + 's');
		this.apply_click_events();
	},
	
	// element = <li>
	highlight: function(element)
	{
		$(element).addClass('hovered');
	},

	blur: function(element)
	{
		element = $(element);
		
		var force = optArg(arguments, 1, false);
		
		if (!this.sel_li.contains(element) || force) {
			$(element).removeClass('hovered');
		}
	},
	
	select_li: function(el_li, niveau)
	{
		var was_sel = this.sel_li[niveau]
		if (was_sel)
		{
			menu_produits.blur(was_sel, true);
			was_sel.addEvent('mouseout', function() 
			{
				menu_produits.blur(this);
			});
		}
		this.set_sel_li(niveau, el_li);
		this.highlight(el_li);
		el_li.removeEvent('mouseout', function(){});
	}

}
