
/* +++++++++++++++++++++++++++++++++++
   ++[/FONCTIONS DE POWERSLIDE     ]++
   ++++++++++++++++++++++++++++++++ */
 
window.addEvent('domready', function()
{
	var projector = $$('.projector');
   //$ Calcul des largeurs des Slides
   if(projector.length > 0){
			
		var numItem = 0;
		
		$$('.projector').each(function(el)
		{
			
			var _mask = el.getElements('.content');
			var mask = _mask[0];
			if(!el.hasClass('verti')){
				var maskWidth = mask.getStyle('width').toInt();
			} else {
				var maskWidth = mask.getStyle('height').toInt();
			}
			
			
			var _slide = el.getElements('.slide');
			var slide = _slide[0];
			
			var slideWidth = 0;
			var itemTab = slide.getElements('.item');
			var itemWidth = new Array();
			var itemU = itemTab[0];
			
			if(!el.hasClass('verti')){
				var itemDisplayed = Math.round(maskWidth / itemU.getStyle('width').toInt());
			} else {
				var itemDisplayed = Math.round(maskWidth / (itemU.getStyle('height').toInt() + itemU.getStyle('margin-top').toInt() + itemU.getStyle('margin-bottom').toInt() + itemU.getStyle('padding-top').toInt() + itemU.getStyle('padding-bottom').toInt()));
			}
			
			
			
			//$ Gestion du Slide Vertical / Horizontal
			if(!el.hasClass('verti')){
				for(i=0; i<itemTab.length; i++){
					itemWidth = itemTab[i].getStyle('width').toInt();
					slideWidth = slideWidth + itemWidth;
				}
				slide.setStyle('width',slideWidth);
			
			} else{
				for(i=0; i<itemTab.length; i++){
					itemWidth = itemTab[i].getStyle('height').toInt() + itemTab[i].getStyle('padding-top').toInt() + itemTab[i].getStyle('padding-bottom').toInt() + itemTab[i].getStyle('margin-bottom').toInt();
					slideWidth = slideWidth + itemWidth;
				}
				slide.setStyle('height',slideWidth);
			}

			
			el.numItem = 0;
			el.maxItem = (itemTab.length - itemDisplayed);
			
			
			//$ Effets rolls
			el.getElements('.arrow').each(function(btn)
			{
				var arrowTarget = btn.getElements('span');
				var Target = arrowTarget[0];
				Target.FXbg = new Fx.Tween(Target,{duration: 400});
			
			
				if(slideWidth <= maskWidth){
					btn.removeClass('btn');
					btn.addClass('off');
					
					slide.setStyle('margin-left',-(slideWidth/2));
					
				} else {
					(!el.hasClass('verti'))? slide.setStyle('left',0) : slide.setStyle('left',26);
					slide.setStyle('margin-left',0);
				}
				
				//$ Boutons sous-menu couleur 1
				btn.addEvents(
				{
					'mouseenter' :function(e){
						e.stop();
						Target.FXbg.cancel();
						Target.FXbg.start('opacity',0);
					},
					'mouseleave' :function(e){
						e.stop();
						Target.FXbg.cancel();
						Target.FXbg.start('opacity',1);
					}, 
					'click' :function(e){
						e.stop();
						if(btn.hasClass('btn')){
							var sens = (btn.hasClass('ctrl-left'))? 0 : 1;
							PowerSlide(el, el.numItem, sens);	
						}
					}
				});
			});
		});
	}
});

function PowerSlide(idBox, pas, sens){
	//$ interpretation du sens
	//(sens == 0)?  sens = '' : sens = '-';
	idBox.numItem = pas;
	//$ Définition des éléments
	var _slide = idBox.getElements('.slide');
	var slide = _slide[0];
	
	var _ctrlLeft = idBox.getElements('.ctrl-left');
	var ctrlLeft = _ctrlLeft[0];
	var _ctrlLeftBtn = idBox.getElements('.ctrl-left span');
	var ctrlLeftBtn = _ctrlLeftBtn[0];
	var _ctrlRight = idBox.getElements('.ctrl-right');
	var ctrlRight = _ctrlRight[0];
	var _ctrlRightBtn = idBox.getElements('.ctrl-right span');
	var ctrlRightBtn = _ctrlRightBtn[0];
	
	var itemTab = slide.getElements('.item');
	if(!idBox.hasClass('verti')){
		var itemWidth = itemTab[0].getStyle('width').toInt();
	}else {
		var itemWidth = itemTab[0].getStyle('height').toInt() + itemTab[0].getStyle('padding-top').toInt() + itemTab[0].getStyle('padding-bottom').toInt() + itemTab[0].getStyle('margin-top').toInt() + itemTab[0].getStyle('margin-bottom').toInt();
	}
	
	
	idBox.numItem = (sens == 0)? idBox.numItem - 1 : idBox.numItem + 1;
	
	var destination = (idBox.numItem*itemWidth).toInt();
	
	//alert("numItem = "+idBox.numItem+" // destination = "+destination);
	//alert("largeur totale : "+slideWidth+" // largeur zone : "+mask.getStyle('width').toInt()+" // posX max : "+slideMax+" // Position actuelle : "+slidePosX);
	
	//$ Imputation des animations
	slide.FXMove = new Fx.Tween(slide);
	ctrlLeftBtn.FXBtn = new Fx.Tween(ctrlLeftBtn,{duration: 250});
	ctrlRightBtn.FXBtn = new Fx.Tween(ctrlRightBtn,{duration: 250});
	
	
	slide.FXMove.pause();
	if(!idBox.hasClass('verti')){
		slide.FXMove.start('left', -destination);
	} else {
		slide.FXMove.start('top', -destination);
	}

	if(idBox.numItem > 0 && idBox.numItem < idBox.maxItem){
		ctrlLeft.removeClass('off');
		ctrlLeft.addClass('btn');
		ctrlRight.removeClass('off');
		ctrlRight.addClass('btn');
	}
		
	if(idBox.numItem == idBox.maxItem){
		ctrlRight.removeClass('btn');
		ctrlRight.addClass('off');
		ctrlLeft.removeClass('off');
		ctrlLeft.addClass('btn');
	}
	if(idBox.numItem == 0){
		ctrlLeft.removeClass('btn');
		ctrlLeft.addClass('off');
		ctrlRight.removeClass('off');
		ctrlRight.addClass('btn');
	}/*
	if(pas == 0){
		slide.FXMove.cancel();
		if(!idBox.hasClass('verti')){
			slide.FXMove.start('left', 0);
		} else {
			slide.FXMove.start('top', 0);
			
		}
		ctrlLeft.removeClass('btn');
		ctrlLeft.addClass('off');
		
	}
	*/
}


