var InfoDev = {
   /*
    *
    * Dépendances : Mootools 1.2
    * Auteur : Steven TITREN   -   stitren@ekinoxe.fr
    *
    * Ce fichier est la propriété de la société Ekinoxe ORIGIN - www.ekinoxe.fr
    * Ce fichier n'est en aucun cas libre de droit, vous n'avez pas l'autorisation de 
    * le diffuser ou de le réutiliser dans un projet exterieur.
    *
    */
    'auteur'      : 'Steven Titren',
    'email'   : 'stitren@ekinoxe.fr'
}


var menuTabs = new Class({
	options:{
		defaultOpen : null,
		DivContent : 'div.menuTabs-contents',
		transistion: Fx.Transitions.Cubic.easeOut,
		nameTabClassActive : 'active'
	},
	
	current : null,
	myFx : null,
	tabHeight : Array(),
	origTabContent : Array(),
	
	initialize : function(selectorUlMenu, options){
		if($$(selectorUlMenu).length>0){
			this.setOptions(options);
			
			this.current = this.options.defaultOpen;
			
			this.setFx();
			
			this.initMenu($$(selectorUlMenu)[0]);
			
			this.initTab();
			
			if(this.options.defaultOpen!=null){
				$$(this.options.DivContent)[0].adopt(new Element('div').setOpacity(1).setStyle('padding', '0').setHTML(this.origTabContent[this.options.defaultOpen]));
				$(this.options.defaultOpen).addClass(this.options.nameTabClassActive);
			}
		}
	},
	
	initMenu : function(menu){
		menu.getElements('li').each(function(li){
			li.setStyle('cursor', 'pointer');
			li.addEvent('click', function(){
				if(this.current != li.get('id')){
					$(this.current).removeClass(this.options.nameTabClassActive);
					this.toggle(this.current, li.get('id'));
					li.addClass(this.options.nameTabClassActive);
				}
			}.bind(this));
		}.bind(this));
	},
	
	initTab : function(){
		$$(this.options.DivContent + ' > div').each(function(tab){
			tab.setStyle('display', 'block');
			var baseName = 	tab.get('id').replace(/-data/, '');
			this.tabHeight[baseName] = $(tab).scrollHeight.toInt();
			this.origTabContent[baseName] = $(tab).innerHTML;
		}.bind(this));		
		$$(this.options.DivContent)[0].setHTML('');
	},
	
	toggle : function(currentTab, newTab){
		
		$$(this.options.DivContent)[0].getElement('div').fadeTo(0, function(){
			this.myFx.start({
				'height' : [this.tabHeight[currentTab], this.tabHeight[newTab]]
			});
		
			$$(this.options.DivContent)[0].setHTML('').adopt(new Element('div').setOpacity(0).setStyle('padding', '0').setHTML(this.origTabContent[newTab]));
			
			$$(this.options.DivContent)[0].getElement('div').fadeTo(1);
			
			this.current = newTab;
		}.bind(this), 300);
	},
	
	setFx : function(){
		this.myFx = new Fx.Morph($$(this.options.DivContent)[0],{
			duration: 250, 
			transition: this.options.transistion
		});
	}
})
menuTabs.implement(new Options, new Events);