(function(){

function slide(e,allSlides,marginWidth,marginChange,maxMargin,left,droite,gauche){
	e.stop();
	var width = -marginWidth

	var currentMarginLeft =allSlides.getStyle('margin-left').toInt();

	if(left)
		width *= -1;

	if( (currentMarginLeft >=0 && left) || (currentMarginLeft <= -maxMargin && !left))
	{


		return false;
	}

	if( (currentMarginLeft + width  >=0 && left))
			gauche.setStyle('visibility', 'hidden');
	else
		gauche.setStyle('visibility', 'visible');
	if((currentMarginLeft + width <= -maxMargin && !left))
		droite.setStyle('visibility', 'hidden');
	else
		droite.setStyle('visibility', 'visible');
	if(marginChange)
		marginChange.start('margin-left',currentMarginLeft,currentMarginLeft+ width);

	return true;
}//slide

window.addEvent('domready', function(){
	$$('.galerie').each(function(galery){

		var allSlides = galery.getElement('.all_slides');
		var	marginWidth= 154;
		var marginWidthCapture = new RegExp("marginWidth=(.*)")
		var	marginWidthCapt = marginWidthCapture.exec(allSlides.className);
		var	marginShift = -allSlides.getProperty( 'marginShift').toInt();

		if(marginWidthCapt && marginWidthCapt.length >0)
			marginWidth = marginWidthCapt[1];

		 var widthSlide = allSlides.getFirst('div').getSize().x
		 var slideLength = allSlides.getChildren('div').length;

		var maxElement = ((allSlides.getParent('div').getSize().x) / marginWidth).round();

		allSlides.setStyles({
			width:(widthSlide*slideLength)+'px'
		});

		var limit = marginWidth * maxElement;
		var	maxMargin = (marginWidth * (slideLength))-limit;
		var  marginChange = new Fx.Tween(allSlides, {duration:1000,link:'ignore',transition: Fx.Transitions.Cubic.easeOut});
		var gauche =galery.getElement('.galerie_fleche_gauche');
		var droite = galery.getElement('.galerie_fleche_droite');
		gauche.addEvent('click',function(e){slide(e,allSlides,marginWidth,marginChange,maxMargin,true,droite,gauche)});
		if( !marginShift) gauche.setStyle('visibility','hidden');
		if( maxMargin + marginShift <= 0) droite.setStyle('visibility','hidden');

		droite.addEvent('click', function(e){slide(e,allSlides,marginWidth,marginChange,maxMargin,false,droite,gauche)});

		marginChange.start('margin-left',0,marginShift);

	});
});

})();


