//adaptation de l'image menu de phatfusion pour en faire un menu vertical
//fonctionnant, cherry on the top of zi cake, avec mootools 1.2+
var mooVimageMenu = new Class({

	Implements: [Options, Events],

	options: {
		onClose: Class.empty,
		openHeight: 115,
		transition: Fx.Transitions.Quad.easeOut,
		duration: 400,
		open: null,
		border: 0
	},

	initialize: function(container, elements, options){
		this.setOptions(options);
		this.container = $(container);
		this.elements = $$(elements);

		this.heights = {};
		this.heights.closed = this.elements[0].getStyle('height').toInt();

		this.heights.openSelected = this.options.openHeight;
		this.heights.openOthers = Math.round(((this.heights.closed*this.elements.length) - (this.heights.openSelected+this.options.border)) / (this.elements.length-1))

		this.fx = new Fx.Elements(this.elements, {link: 'cancel', duration: this.options.duration, transition: this.options.transition});

		this.elements.each(function(el,i){

			el.addEvent('mouseenter', function(e){
				new Event(e).stop();
				this.reset(i);
			}.bind(this));

			el.addEvent('mouseleave', function(e){
				new Event(e).stop();
				this.reset(this.options.open);

			}.bind(this));

			var obj = this;

		}.bind(this));

		if(this.options.open){
			if($type(this.options.open) == 'number'){
				this.reset(this.options.open);
			}else{
				this.elements.each(function(el,i){
					if(el.id == this.options.open){
						this.reset(i);
					}
				},this);
			}
		}

	},

	reset: function(num){

		if($type(num) == 'number'){
			var height = this.heights.openOthers;
			if(num+1 == this.elements.length){
				height += this.options.border;
			}
		}else{
			var height = this.heights.closed;
		}

		var obj = {};
		this.elements.each(function(el,i){
			var w = height;
			if(i == this.elements.length-1){
				w = height+5
			}
			obj[i] = {'height': w};
		}.bind(this));

		if($type(num) == 'number'){
			obj[num] = {'height': this.heights.openSelected};
		}

		this.fx.start(obj);
	}

});
