function carouselGenerator_prototypeJS(sliderButtonOpacity, slideRange, sliderUlIndex, speed){
	/*--------------------------------------------------------------------GENERATEUR DE CAROUSELS HORIZONTAL sous PtrototypeJS-----------------------------------------------------------------------------*/
	
	//	v1.1
	
	/*------Paramètres-----*/
		//[sliderButtonOpacity]			==> Opacité du bouton en mode OFF
		//[slideRange]				==> Nombre d'items affichés en même temps
		//[sliderUlIndex]				==> Index de profondeur du <BLOCK DÉPLACÉ> par rapport au <BLOCK SLIDER>. Dans l'exemple ci-dessous : 1
		//[speed]					==> Durée de la transition en secondes
	/*------Paramètres-----*/
	/*------Spécifications-----*/
	/*
		La taille du <ul> est définie à 10.000px par défaut.
	*/
	/*------Spécifications-----*/
	/*------Structure HTML requise-----*/
	/*
		<div class="slider">					//BLOCK SLIDER				CSS : libre
			<div>							//FENÊTRE CAROUSEL			CSS : position:relative; overflow:hidden;			 [ne dois pas avoir de PADDING] - [fixer la largeur pour IE6]
				<ul>						//BLOCK DÉPLACÉ			CSS : position:relative;float:left; width:10000px;		Voir les 
					<li></li>				//ITEM					CSS : float:left; width:à fixer;
				</ul>
			</div>
			<span class="buttonLeft off"></span>		//BOUTON PRÉCÉDENT		CSS : libre
			<span class="buttonRight"></span>		//BOUTON SUIVANT			CSS : libre
		</div>
	*/
	/*------Structure HTML requise-----*/
	var i = 0;
	$$('.slider').each(function(el){
		el.id = 'slider_'+i;
		el.writeAttribute('current_id', 0);
		el.writeAttribute('length', $$('#'+el.id+' li').length);
		var j = 0;
		$$('#'+el.id+' li').each(function(el){
			el.writeAttribute('parent_offset', el.positionedOffset().left);
			j++;
		});
		i++;
	});
	$$('.slider .buttonLeft').each(function(el){
		el.setOpacity(sliderButtonOpacity);
		el.setStyle({'display':'block'});
		Event.observe(el, 'click', function(){
			if(!this.hasClassName('off')){
				var whatSlider = this.ancestors()[0];
				var whatItem = parseInt(whatSlider.readAttribute('current_id'));
				if(whatItem-slideRange >= 0){
					this.next(0).setOpacity(1);
					this.next(0).removeClassName('off');
					whatSlider.writeAttribute('current_id', whatItem-slideRange);
					var whatLeft = $$('#'+whatSlider.id+' li')[whatItem-slideRange].readAttribute('parent_offset');
					whatSlider.descendants()[sliderUlIndex].morph(
						'left:-'+whatLeft+'px', {
						duration:speed
					});
				}
				if(whatItem-slideRange*2 < 0){
					this.setOpacity(sliderButtonOpacity);
					this.addClassName('off');
				}
			}
		});
	});
	$$('.slider .buttonRight').each(function(el){
		Event.observe(el, 'click', function(){
			if(!this.hasClassName('off')){
				var whatSlider = this.ancestors()[0];
				var whatItem = parseInt(whatSlider.readAttribute('current_id'));
				var whatLength = parseInt(whatSlider.readAttribute('length'));
				if(whatItem+slideRange < whatLength){
					this.previous(0).setOpacity(1);
					this.previous(0).removeClassName('off');
					whatSlider.writeAttribute('current_id', whatItem+slideRange);
					var whatLeft = $$('#'+whatSlider.id+' li')[whatItem+slideRange].readAttribute('parent_offset');
					whatSlider.descendants()[sliderUlIndex].morph(
						'left:-'+whatLeft+'px', {
						duration:speed
					});
				}
				if(whatItem+slideRange*2 >= whatLength){
					this.setOpacity(sliderButtonOpacity);
					this.addClassName('off');
				}
			}
		});
	});
}