var MenuLeft = Class.create(
{
	/**
	 * constructeur - prend en paramètre l'ID (ou l'élément lui-même) de la liste du menu
	 * 
	 * @param string elementID - id de la liste du menu ( ou menu lui-même )
	 * @return Menu
	 * 
	 * @access public
	 */
	initialize:				function(elementID)
							{
								// initialisation des variables
								this.DOM = $(elementID);
								this.DOM.cleanWhitespace();
								// enregistrement des observateurs
								this.observe();
							},
							
	observe:				function()
							{
								Event.observe(this.DOM,'mouseover',this.mouseOver.bindAsEventListener(this));
								Event.observe(this.DOM,'mouseout',this.mouseOut.bindAsEventListener(this));
							},
							
	mouseOver:				function(e)
							{
								e = e || window.event;
								var element = Event.element(e);
								if(element.tagName == 'A')
								{
									this.blurAllLinks(element);
									this.focusLink(element);
								}
							},
							
	mouseOut:				function(e)
							{
								e = e || window.event;
								this.blurAllLinks();
							},
							
	getTextHexaColor:		function(element)
							{
								element = Element.extend(element);
								// et sa couleur
								var color = element.getStyle('color');
								// IE considère la couleur comme héxa, pas FF
								if(!Prototype.Browser.IE)
								{
									// on éclate les différentes composantes de la couleur courante (rgb)
									color = (color.substring(4,color.length-1)).split(',');
									
									// on fabrique la couleur hexadecimale
									color = '#'.concat(	
														parseInt(color[0]).toColorPart(),
														parseInt(color[1]).toColorPart(),
														parseInt(color[2]).toColorPart()
									);
								}
								return color;
							},
							
	getBGHexaColor:		function(element)
							{
								element = Element.extend(element);
								// et sa couleur
								var color = element.getStyle('backgroundColor');
								// IE considère la couleur comme héxa, pas FF
								if(!Prototype.Browser.IE)
								{
									// on éclate les différentes composantes de la couleur courante (rgb)
									color = (color.substring(4,color.length-1)).split(',');
									
									// on fabrique la couleur hexadecimale
									color = '#'.concat(	
														parseInt(color[0]).toColorPart(),
														parseInt(color[1]).toColorPart(),
														parseInt(color[2]).toColorPart()
									);
								}
								return color;
							},
							
	focusLink:				function(link)
							{
								var effects = [];
								
								if(!Object.isUndefined(link.effect) && link.effect !== false && link.effect.state && link.effect.state != 'finished')
								{
									link.effect.cancel();
								}
								var color_text = this.getTextHexaColor(link);		
								
								link.effect = new Effect.HighlightText(
															link,
															{
																duration:		0.4,
																startcolor:		color_text,
																endcolor:		'#FB7D00',
																restorecolor:	'#FB7D00'
															}
								);
							},
							
	blurLink:				function(link)
							{
								var effects = [];
								
								if(!Object.isUndefined(link.effect) && link.effect !== false && link.effect.state && link.effect.state != 'finished')
								{
									link.effect.cancel();
								}
								var color_text = this.getTextHexaColor(link);
								
								link.effect = new Effect.HighlightText(
															link,
															{
																duration:		0.4,
																startcolor:		color_text,
																endcolor:		'#888888',
																restorecolor:	'#888888'
															}
								);
							},
							
	blurAllLinks:			function(link)
							{
								var links = this.DOM.getElementsByTagName('a');
								
								if(Object.isUndefined(link) || link === null)
								{
									for(var i=0;i<links.length;i++)
									{
										this.blurLink(links[i]);
									}
								}
								else
								{
									for(var i=0;i<links.length;i++)
									{
										if(links[i] != link)
										{
											this.blurLink(links[i]);
										}
									}
								}
							}
}
);
