/*
Script : sauterTopMenu
massacred by chris wait aka virtualgadjo
tourne avec mootools 1.2
*/
var sauterTopMenu = new Class ({

	Implements: [Events, Options],

	options: {
		duration       : 400,
		sousDuration   : 300,
		mainMouseEvent : 'mouseover',
		mainTransition : Fx.Transitions.linear,
		selectClass    : 'selectItem',
		sousMenuClass  : 'sous',
		opacityFx      : 0.7,
		cssLeft        : 0
	},

	initialize: function(ziList, ziSous, options) {
		this.setOptions(options);
		this.menu        = $(ziList);
		this.princTog    = [];
		this.princSlides = [];
		this.forIe       = $$('.' + ziSous);
		this.menuLi      = this.menu.getChildren('li');
		this.mainSlides  = [];

		this.menuLi.each(function(el, i){
			if (el.getFirst('div')){
				this.princTog.push(el);
				this.princSlides.push(el.getFirst('div').getFirst('ul'));
			}
		}.bind(this));

		this.forIe.each(function(el){
			el.setStyle('left', this.options.cssLeft);
		}.bind(this));

		this.princSlides.each(function(el, i){

			var princMenu = new Fx.Slide(el, {
				duration  : this.options.duration,
				link      : 'cancel',
				onComplete: function(){
					if(princMenu.wrapper.offsetHeight != 0){
						princMenu.wrapper.setStyle('height', 'auto');
						effectLinks.each(function(el, k){
							el.addEvent('mouseover', function(){
								for (j = 0; j < effectNum; j ++){
									if(j != k){
										if (effectLinks[j].getFirst('a')) effectLinks[j].getFirst('a').removeClass(this.options.selectClass);
									}
									else {
										if (effectLinks[j].getFirst('a')) effectLinks[j].getFirst('a').addClass(this.options.selectClass);
									}
								}
							}.bind(this));
						}.bind(this));
					}
					else {
						effectLinks.each(function(el, k){
              if (el.getFirst('a')) el.getFirst('a').removeClass(this.options.selectClass);
						}.bind(this));
					}
				}.bind(this)
			}).hide();

			this.mainSlides.push(princMenu);

			this.princTog.each(function(elem, j){
				elem.addEvents({
					'mouseover': function(){
						i == j ? this.mainSlides[i].slideIn() : this.mainSlides[i].slideOut();
					}.bind(this),
					'mouseleave': function(){
						this.mainSlides[i].slideOut();
						this.closeSous();
					}.bind(this),
					'click'     : function(e){
						//e.stop();
					}
				});
			}.bind(this));

			var effectLinks = [];
			effectLinks     = el.getChildren('li');
			effectNum       = effectLinks.length;

		}.bind(this));
		
		this.nextLevel();
	},

	nextLevel: function(){
		this.sousMenus = [];
		this.newtogs   = $$('a.'+this.options.sousMenuClass);
		this.newslides = $$('ul.'+this.options.sousMenuClass);
		this.sousNum   = this.newtogs.length;

		this.closeSous();

		this.newtogs.each(function(elem, j){
			elem.addEvents({
				'click': function(e){
					e.stop();
					for (i = 0; i < this.sousNum; i ++){
						i == j ? this.newslides[i].setStyles({'display': 'block', 'z-index': 100 }) : this.newslides[i].setStyle('display', 'none');
					}
				}.bind(this)
			});
		}.bind(this));
	},

	closeSous: function(){
		this.newslides.each(function(el, i){
			el.setStyle('display', 'none');
		}.bind(this));
	}
});




