var slide=3;

function initCarroussel2(initSlide){
	if( !$('carroussel2') ){return;}
	
	//var tsTabElementAPrevious = $E('a.previous', 'carroussel'); 
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2'); // Lien precedent
	
	//var tsTabElementDiv = $E('div', 'carroussel'); 
	var tsTabElementDiv = $('carroussel2').getFirst('div');// Conteneur avec les dimensions visibles
	
	//var tsTabElementsA = $ES('a', tsTabElementDiv); 
	var tsTabElementsA = tsTabElementDiv.getElements('a');// Lien dans la liste
	
	//var tsTabElementANext = $E('a.next', 'carroussel'); 
	var tsTabElementANext = $('carroussel2').getFirst('a.next2');// Lien suivant
	
	//tsTabElementANext.setStyle('visibility', 'visible');
	
	if( tsTabElementAPrevious ){
		tsTabElementAPrevious.addEvent('click', moveCarrousselPrevClick2);
		tsTabElementAPrevious.addEvent('mouseover', moveCarrousselPrev2);
		tsTabElementAPrevious.addEvent('mouseout', stopCarroussel2);
	}
	if( tsTabElementANext ){
		tsTabElementANext.addEvent('click', moveCarrousselNextClick2);
		tsTabElementANext.addEvent('mouseover', moveCarrousselNext2);
		tsTabElementANext.addEvent('mouseout', stopCarroussel2);
	}

	//var tsTabElementsLI = $ES('li', tsTabElementDiv);
	var tsTabElementsLI = tsTabElementDiv.getElements('li');
	if( tsTabElementsLI.length > 0){
		slide = tsTabElementsLI.length; // Slide en continue
		if(tsTabElementAPrevious)
			tsTabElementAPrevious.setStyle('visibility', 'hidden');
		var tsTabElementLILast = $(tsTabElementsLI[tsTabElementsLI.length-1]); // Recupere le dernier LI du UL
		var tsElementLIWidth = $(tsTabElementLILast).getSize().x.toInt() + tsTabElementLILast.getStyle('margin-left').toInt() + tsTabElementLILast.getStyle('margin-right').toInt();
		//alert($(tsTabElementLILast).getSize().x);
		if( tsTabElementANext && (tsTabElementLILast.offsetLeft.toInt() + tsElementLIWidth) <= (tsTabElementDiv.getSize().x.toInt()) ){
			tsTabElementANext.setStyle('visibility', 'hidden');
		}
		var tsElementULWidth = tsElementLIWidth.toInt() * tsTabElementsLI.length;
		//var tsTabElementUL = $E('ul', tsTabElementDiv); 
		var tsTabElementUL = $(tsTabElementDiv).getFirst('ul');// Recheche le UL des miniatures
		tsTabElementUL.setStyle('width', tsElementULWidth); // Mise a jour de la largeur du UL

		tsTabElementDiv.setProperty('LIWidth', tsElementLIWidth); // Memorise la largeur d'une image dans le carroussel
		tsTabElementDiv.setProperty('ULWidth', tsElementULWidth); // Memorise la largeur du UL contenant les images miniatures

		var TsPreloadImg = new Array(); // Preload des images des les a.href
		for(var i=0, x=tsTabElementsA.length;i<x;i++){
			TsPreloadImg[i] = new Image();
			//TsPreloadImg[i].src = tsTabElementsA.getProperty('href');
			//alert(tsTabElementsA.getProperty('href'));
			if( i == 0){tsTabElementsA[i].addClass('selected');}
		}
	}else{ // Cache la partie carroussel
		$('carroussel2').setStyle('display', 'none');
	}
}

function stopCarroussel2(TsEvent){
	var event = new Event(TsEvent);
	var tsTabElementDiv = $('carroussel2').getFirst('div');// Conteneur avec les dimensions visibles
	var tsTabElementUL = $(tsTabElementDiv).getFirst('ul'); // Mise a jour de la largeur du UL
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2');// Lien precedent
	var tsTabElementANext = $('carroussel2').getFirst('a.next2'); // Lien suivant
	
	tsTabElementUL.set('tween');

	event.stopPropagation();
	event.stop();
}

function moveCarrousselNext2(TsEvent){
	var event = new Event(TsEvent);
	var tsTabElementDiv = $('carroussel2').getFirst('div');// Conteneur avec les dimensions visibles
	var tsTabElementUL = $(tsTabElementDiv).getFirst('ul'); // Mise a jour de la largeur du UL
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2');// Lien precedent
	var tsTabElementANext = $('carroussel2').getFirst('a.next2'); // Lien suivant
	
	//var marginChange = new Fx.Tween(tsTabElementUL, 'margin-left', {duration:500, onStart: hideCarroussel, onComplete: showCarroussel});
	var timeSlide = slide*500;
	tsTabElementUL.set('tween', {duration:timeSlide, onStart: hideCarroussel2, onComplete: showCarroussel2});

	if( Math.abs(tsTabElementUL.getStyle('margin-left').toInt()) + tsTabElementDiv.getProperty('LIWidth').toInt()*slide <= tsTabElementDiv.getProperty('ULWidth').toInt() - tsTabElementDiv.getStyle('width').toInt()){
		//marginChange.start(tsTabElementUL.getStyle('margin-left').toInt(), -(Math.abs(tsTabElementUL.getStyle('margin-left').toInt())+tsTabElementDiv.getProperty('LIWidth').toInt()));
		tsTabElementUL.tween('margin-left', tsTabElementUL.getStyle('margin-left').toInt(), -(Math.abs(tsTabElementUL.getStyle('margin-left').toInt())+(tsTabElementDiv.getProperty('LIWidth').toInt()*slide)));
	}else{
		tsTabElementUL.tween('margin-left', tsTabElementUL.getStyle('margin-left').toInt(), -(tsTabElementDiv.getProperty('ULWidth').toInt()-tsTabElementDiv.getStyle('width').toInt()));
		//marginChange.start(tsTabElementUL.getStyle('margin-left').toInt(), -(tsTabElementDiv.getProperty('ULWidth').toInt()-tsTabElementDiv.getProperty('width').toInt()));
	}
	
	event.stopPropagation();
	event.stop();
}

function moveCarrousselPrev2(TsEvent){
	var event = new Event(TsEvent);
	var tsTabElementDiv = $('carroussel2').getFirst('div');// Conteneur avec les dimensions visibles
	var tsTabElementUL = $(tsTabElementDiv).getFirst('ul'); // Mise a jour de la largeur du UL
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2');// Lien precedent
	var tsTabElementANext = $('carroussel2').getFirst('a.next2'); // Lien suivant
	
	//var marginChange = new Fx.Tween(tsTabElementUL, 'margin-left', {duration:500, onStart: hideCarroussel, onComplete: showCarroussel});
	var timeSlide = slide*500;
	tsTabElementUL.set('tween', {duration:timeSlide, onStart: hideCarroussel2, onComplete: showCarroussel2});
	
	if( tsTabElementUL.getStyle('margin-left').toInt() + tsTabElementDiv.getProperty('LIWidth').toInt()*slide <= 0 ){
		tsTabElementUL.tween('margin-left', tsTabElementUL.getStyle('margin-left').toInt(), -(Math.abs(tsTabElementUL.getStyle('margin-left').toInt()+(tsTabElementDiv.getProperty('LIWidth').toInt()*slide))));	
		//marginChange.start(tsTabElementUL.getStyle('margin-left').toInt(), -(Math.abs(tsTabElementUL.getStyle('margin-left').toInt()-tsTabElementDiv.getProperty('LIWidth').toInt())));
	}else{
		tsTabElementUL.tween('margin-left', tsTabElementUL.getStyle('margin-left').toInt(), 0);
		//marginChange.start(tsTabElementUL.getStyle('margin-left').toInt(), 0);
	}
	event.stopPropagation();
	event.stop();
}

function moveCarrousselNextClick2(TsEvent){
	var event = new Event(TsEvent);
	var tsTabElementDiv = $('carroussel2').getFirst('div');// Conteneur avec les dimensions visibles
	var tsTabElementUL = $(tsTabElementDiv).getFirst('ul'); // Mise a jour de la largeur du UL
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2');// Lien precedent
	var tsTabElementANext = $('carroussel2').getFirst('a.next2'); // Lien suivant
	
	tsTabElementUL.set('tween', {duration:500, onStart: hideCarroussel2, onComplete: showCarroussel2});

	if( Math.abs(tsTabElementUL.getStyle('margin-left').toInt()) + tsTabElementDiv.getProperty('LIWidth').toInt()*3 <= tsTabElementDiv.getProperty('ULWidth').toInt() - tsTabElementDiv.getStyle('width').toInt()){
		tsTabElementUL.tween('margin-left', tsTabElementUL.getStyle('margin-left').toInt(), -(Math.abs(tsTabElementUL.getStyle('margin-left').toInt())+(tsTabElementDiv.getProperty('LIWidth').toInt()*3)));
	}else{
		tsTabElementUL.tween('margin-left', tsTabElementUL.getStyle('margin-left').toInt(), -(tsTabElementDiv.getProperty('ULWidth').toInt()-tsTabElementDiv.getStyle('width').toInt()));
	}
	
	event.stopPropagation();
	event.stop();
}

function moveCarrousselPrevClick2(TsEvent){
	var event = new Event(TsEvent);
	var tsTabElementDiv = $('carroussel2').getFirst('div');// Conteneur avec les dimensions visibles
	var tsTabElementUL = $(tsTabElementDiv).getFirst('ul'); // Mise a jour de la largeur du UL
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2');// Lien precedent
	var tsTabElementANext = $('carroussel2').getFirst('a.next2'); // Lien suivant
	
	tsTabElementUL.set('tween', {duration:500, onStart: hideCarroussel2, onComplete: showCarroussel2});
	
	if( tsTabElementUL.getStyle('margin-left').toInt() + tsTabElementDiv.getProperty('LIWidth').toInt()*3 <= 0 ){
		tsTabElementUL.tween('margin-left', tsTabElementUL.getStyle('margin-left').toInt(), -(Math.abs(tsTabElementUL.getStyle('margin-left').toInt()+(tsTabElementDiv.getProperty('LIWidth').toInt()*3))));	
	}else{
		tsTabElementUL.tween('margin-left', tsTabElementUL.getStyle('margin-left').toInt(), 0);
	}
	event.stopPropagation();
	event.stop();
}

function moveCarroussel2(TsEvent){
	var event = new Event(TsEvent);
	//var tsTabElementDiv = $E('div', 'carroussel'); 
	var tsTabElementDiv = $('carroussel2').getFirst('div');// Conteneur avec les dimensions visibles
	
	//var tsTabElementUL = $E('ul', tsTabElementDiv);
	var tsTabElementUL = $(tsTabElementDiv).getFirst('ul'); // Mise a jour de la largeur du UL
	//var tsTabElementAPrevious = $E('a.previous', 'carroussel'); 
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2');// Lien precedent
	//var tsTabElementANext = $E('a.next', 'carroussel'); 
	var tsTabElementANext = $('carroussel2').getFirst('a.next2'); // Lien suivant
	
	//var el = $(event.target).getParentTag('a');
	//alert (event.target.());
	//alert (event.tagName);
	var marginChange = new Fx.Tween(tsTabElementUL, 'margin-left', {duration:500, onStart: hideCarroussel2, onComplete: showCarroussel2});
	if( el.hasClass('previous') ){
		if( tsTabElementUL.getStyle('marginTop') > 0 ){
			marginChange.start(tsTabElementUL.getStyle('margin-left').toInt(), -(Math.abs(tsTabElementUL.getStyle('margin-left').toInt()-tsTabElementDiv.getProperty('LIWidth').toInt())));
		}else{
			marginChange.start(tsTabElementUL.getStyle('margin-left').toInt(), 0);
		}
	}
	if( el.hasClass('next') ){
	if( (Math.abs(tsTabElementUL.getStyle('margin-left').toInt())+(tsTabElementDiv.getStyle('width').toInt())) < tsTabElementDiv.getProperty('ULWidth').toInt() ){
			marginChange.start(tsTabElementUL.getStyle('margin-left').toInt(), -(Math.abs(tsTabElementUL.getStyle('margin-left').toInt())+tsTabElementDiv.getProperty('LIWidth').toInt()));
		}else{
			marginChange.start(tsTabElementUL.getStyle('margin-left').toInt(), -(tsTabElementDiv.getProperty('ULWidth').toInt()-tsTabElementDiv.getProperty('width').toInt()));
		}
	}

	event.stopPropagation();
	event.stop();
}

function showCarroussel2(){
	//var tsTabElementAPrevious = $E('a.previous', 'carroussel'); 
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2');// Lien precedent
	//var tsTabElementDiv = $E('div', 'carroussel');
	//var tsTabElementDiv = $('carroussel').getFirst('div');// Conteneur avec les dimensions visibles
	var tsTabElementDiv = $('carroussel_02');// Conteneur avec les dimensions visibles
	
	//var tsTabElementUL = $E('ul', tsTabElementDiv); 
	var tsTabElementUL = $(tsTabElementDiv).getFirst('ul');// Mise a jour de la largeur du UL
	//var tsTabElementANext = $E('a.next', 'carroussel'); 
	var tsTabElementANext = $('carroussel2').getFirst('a.next2');// Lien suivant
	
	if( tsTabElementUL.getStyle('margin-left').toInt() == 0 ){
		tsTabElementAPrevious.setStyle('visibility', 'hidden');
	}else{
		tsTabElementAPrevious.setStyle('visibility', 'visible');
	}
	if( (Math.abs(tsTabElementUL.getStyle('margin-left').toInt())+(tsTabElementDiv.getStyle('width').toInt())) < tsTabElementDiv.getProperty('ULWidth').toInt() ){
		tsTabElementANext.setStyle('visibility', 'visible');
	}else{
		tsTabElementANext.setStyle('visibility', 'hidden');
	}
}

function hideCarroussel2(){
	var tsTabElementAPrevious = $('carroussel2').getFirst('a.previous2');// Lien precedent
	var tsTabElementANext = $('carroussel2').getFirst('a.next2');// Lien suivant

	tsTabElementAPrevious.setStyle('visibility', 'visible');
	tsTabElementANext.setStyle('visibility', 'visible');
}
/**************************************************************************************************************************************************************************************************/
/* Addon MOOTOOLS */
/**************************************************************************************************************************************************************************************************/
if(Element){
	Element.extend({
		getParentTag: function(parent){ // Retourne le premier parent avec le tag demandeet/ou la id et/ou class -> div#monid.maclass
			var TsTagName, TsClassName , TsId;
			var TsParentClass = parent.split('.');
			TsParentClass.length > 1 ? TsClassName = TsParentClass[1] : TsClassName = '';
			var TsParentId = TsParentClass[0].split('#');
			if( TsParentId.length > 1 ){TsId = TsParentId[1];}else{TsId = '';}
			TsTagName = TsParentId[0];
			var TsElement = this;
			while( $(TsElement) ){
				if(TsElement.getTag() == 'body'){break;}

				var TsFlag = true;
				if( TsElement.getTag() != TsTagName ){TsFlag = false;}
				if( TsId != '' && TsElement.getProperty('id') != TsId ){TsFlag = false;}
				if( TsClassName != '' && !TsElement.hasClass(TsClassName) ){TsFlag = false;}
				if( TsFlag ){break;}

				TsElement = TsElement.parentNode;
			}
			return $(TsElement);
		}
	})
}
