$(document).ready(function(){
	
	//Configuration
	var tempsTransition = 750;
	var slideWidth = 640;
	
	var galeries = $('.galerie');
	var numberOfGaleries = galeries.length;
	
	var currentPosition = new Array();
	var slides = new Array();
	var numberOfSlides = new Array();
	
	var j=0;
	galeries.each(function(){
		$(this).attr("id", "galerie" + j);
		j = j +1;
	});

	initGaleries();
	
	function initGaleries(){
		for (i=0; i < numberOfGaleries; i++)
		{
			currentPosition[i] = 0;
			slides[i] = $('#galerie' + i + ' .slide');
			numberOfSlides[i] = slides[i].length;
			
			// Attribue  #slideInner  à toutes les div .slide
			slides[i].wrapAll('<div id="slideInner"></div>');
			
			// Longueur de #slideInner égale au total de la longueur de tous les slides
			$('#galerie' + i + ' #slideInner').css('width', slideWidth * numberOfSlides[i]);
			
			// Insert controls in the DOM
			$('#galerie' + i)
				.prepend('<span class="control" id="leftControl">Précédent</span>')
				.append('<span class="control" id="rightControl">Suivant</span>');
				
			 // Hide left arrow control on first load
			manageControls(0, i);
			
			$('#galerie' + i + ' #rightControl').bind('click', next);
			$('#galerie' + i + ' #leftControl').bind('click', prev);
			$('#galerie' + i + ' .slide').bind('click', next);
		}
	}
  
  // manageControls: Cache ou montre les flêches de controle en fonction de la position courante
  function manageControls(position, i){
    // Cache la fleche "précédent" si on est sur le premier slide
	if(position==0){ $('#galerie' + i + ' #leftControl').hide() } else{ $('#galerie' + i + ' #leftControl').show() }

	if(position == numberOfSlides[i]){ 
		currentPosition[i] = 0;
		$('#galerie' + i + ' #leftControl').hide();
	}
  }
  
  function next() {
		var idParent;
		if ($(this).attr('class')=="slide") {
			idParent = $(this).parent().parent().parent().attr('id');
		}
		else {
			idParent = $(this).parent().attr('id');
		}
		numgalerie = parseInt(idParent.substring(7));
	
		// Determine la nouvelle position
		currentPosition[numgalerie] = currentPosition[numgalerie]+1;
		update(numgalerie);
	}
	
	function prev() {
		idParent = $(this).parent().attr('id');
		numgalerie = parseInt(idParent.substring(7));

		// Determine la nouvelle position
		currentPosition[numgalerie] = currentPosition[numgalerie]-1;
		update(numgalerie);
	}
	
	function update(numgalerie) {
		// Cache ou montre les controles
		manageControls(currentPosition[numgalerie], numgalerie);
		
		// Fais bouger le slide		
		$('#galerie' + numgalerie + ' #slideInner').animate({
				'marginLeft' : slideWidth*(-currentPosition[numgalerie])},
				tempsTransition,
				"easeInOutExpo"
				);
	}
  	
});
