/* -----------------------------------------------------------------
Version	1.0
Date de création modification 	11 Mars 2008
Auteur	Thierry
Améliorations possibles :
-------------------------------------------------------------------- */
	
	var eqxMenu = new Class({
		
		OFFSET_X:0, // -40,
		OFFSET_Y:0, // -10,
 		initialize: function(node){
 			// On passe le menu qui est un ul en inline
 			node.style.display='inline' ;
 			var me=this;

			var klass = node.getProperty("eqxClass");
			var klass1, klass2 ;
			if (!$defined(klass)) {
				klass1="";
				klass2="";
				klass1hover="";
				klass2hover="";
			}
			else {
				klass1=klass+"-item";
				klass2=klass+"-subitem";
				klass1hover=klass1+"-hover";
				klass2hover=klass2+"-hover";
			}
 			
			var anim = node.getProperty("animation");
			if (!$defined(anim) || anim=="") {
				anim="none";
			}
			anim = anim.toLowerCase ();

			var ref = node.getProperty("ref");
			var xRef=0;
			var yRef=0;
			if ($defined(ref) && ref!="") {
				var cc0=$(ref).getCoordinates() ;
				xRef=cc0.left ;
				yRef=cc0.top ;
			}

 			// Parcours des fils : les éléments du menu
 			$(node).getChildren().each ( function (li) {
	 					li.style.display='inline' ;
	 					// Le li contient un p et un ul
	 					var p = $(li).getFirst ();
	 					var ul = $(li).getLast ();
			 			
	 					if (p!=null && ul != null) {
		 					if (p.getTag()=="span" && ul.getTag()=="ul") {
			 			
	 					
	 					p.style.display='inline' ;
						p.style.zIndex=1001;
	 					if (klass1!="") {
	 						$(p).addClass(klass1);
							$(p).addEvent('mouseenter', function(){
								this.addClass(klass1hover) ;
							});		 
							$(p).addEvent('mouseleave', function(){
								this.removeClass(klass1hover) ;
							});
	 					}

	 					ul.style.display='none' ;
	 					var cc=$(p).getCoordinates() ;
						ul.style.position="absolute" ;
						ul.style.left = (cc.left - xRef + me.OFFSET_X)             + "px" ;
						ul.style.top  = (cc.top - yRef + cc.height + me.OFFSET_Y) + "px" ;
						ul.style.paddingTop  = (-me.OFFSET_Y) + "px" ;
						ul.style.marginTop  = (-me.OFFSET_Y/2) + "px" ;
						ul.style.zIndex=1000;
	 					li.subMenu = ul ;
						li.style.cursor="pointer";

 						$(ul).getChildren().each ( function (li2) {
	 						li2.style.listStyleType='none';
	 						li2.style.listStylePosition='outside';
		 					if (klass2!="") {
		 						$(li2).addClass(klass2);
								$(li2).addEvent('mouseenter', function(){
									this.addClass(klass2hover) ;
								});		 
								$(li2).addEvent('mouseleave', function(){
									this.removeClass(klass2hover) ;
								});
							}
	 					});

						if (anim!="none") { 
		 					$(li).myEffect = new Fx.Styles(ul, {duration:200, wait:false});
							if (anim=="linear") 
								$(li).myEffect.options.transition = Fx.Transitions.linear;
							else 
								$(li).myEffect.options.transition = Fx.Transitions.Quad;
							$(ul).style.display = 'block' ;
		 					$(ul).setOpacity(0);
		 				}

						$(li).addEvent('mouseenter', function(){
							if (anim=="none") { 
								(function(){li.subMenu.style.display = 'block' ;}).delay(200);															
							}
							else {
								this.myEffect.start({
									'opacity': 1
								});

							}
						});		 
						$(li).addEvent('mouseleave', function(){
							if (anim=="none") { 
								(function(){li.subMenu.style.display = 'none' ;}).delay(200);															
							}
							else {
								this.myEffect.start({
									'opacity': 0
								});
							}
						});			 
					}
				}
 			});
			
 		}
 	});
 	


	/*----------------------------------------------------------*/
	// Initialisation après fabrication du DOM
	window.addEvent('domready', function(){
		$$('.eqxMenu').each ( function (h) {
			h.widget = new eqxMenu (h);
		});
				
	});
		