var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var Anim = YAHOO.util.Anim;

var nrj_mea = {
	currentElement:null,
	currentElementContainer:null,
	timer:null,
	init:function(){
		var blocMea = document.getElementById("items_mea");
		if(blocMea){
			var listeItems = blocMea.getElementsByTagName("li");
			var listeDivs = Dom.getElementsByClassName("bloc", "div", blocMea);
			for (var i=0; i < listeItems.length; i++) {
				listeDivs.anim = {};
				Event.addListener(listeItems[i], "click", nrj_mea.openBloc, listeDivs[i]);
				Dom.setStyle(listeDivs[i], "opacity", 0);
			};
			nrj_mea.openBloc(listeItems[0], listeDivs[0]);
		}
	},
	openBloc:function(e, toShow){
		var tempThis = this;
		if(e.nodeName != undefined){tempThis = e;}
		if(tempThis != nrj_mea.currentElement){
			Dom.addClass(tempThis, "active");
			Dom.removeClass(nrj_mea.currentElement, "active");
			nrj_mea.showMe(toShow);
			nrj_mea.currentElement = tempThis;
			nrj_mea.currentElementContainer = toShow;
			nrj_mea.launchAnim();
		}
	},
	launchAnim:function(){
		var currentId=0;
		var blocMea = document.getElementById("items_mea");
		var listeItems = blocMea.getElementsByTagName("li");
		var listeDivs = Dom.getElementsByClassName("bloc", "div", blocMea);
		for (var i=0; i < listeDivs.length; i++) {
			if(listeDivs[i] == nrj_mea.currentElementContainer){
				currentId = i;
				break;
			}
		};
		var nextElement;
		if((currentId + 1) >= listeDivs.length){nextElement = 0;}else{nextElement = (currentId + 1);}
		clearTimeout(nrj_mea.timer);
		nrj_mea.timer = setTimeout(function(){nrj_mea.openBloc(listeItems[nextElement], listeDivs[nextElement])}, 6000);
	},
	showMe:function(element){
		if(nrj_mea.currentElementContainer != null){
			Dom.removeClass(nrj_mea.currentElementContainer, "active");
			if(nrj_mea.currentElementContainer.anim.isAnimated){nrj_mea.currentElementContainer.anim.stop()}
			nrj_mea.currentElementContainer.anim = new Anim(nrj_mea.currentElementContainer, {opacity:{to:0}}, 0.5);
			nrj_mea.currentElementContainer.anim.onComplete.subscribe(function(){Dom.setStyle(this.getEl(), "display","none");});
			nrj_mea.currentElementContainer.anim.animate();
		}	
		Dom.addClass(element, "active");
		element.anim = new Anim(element, {opacity:{to:1}}, 0.5);
		element.anim.animate();
		Dom.setStyle(element, "display", "block");
	}
}

Event.onDOMReady(nrj_mea.init);
