/* JavaScript Document
*/
;(function($) {
	$.fn.aSlide = function(options) {
		var slideshow = $(this);

		new jQuery.aSlide(slideshow, options);

		return this;	
	};

	$.aSlide = function(slideshow, options) {
		
		var retour		= options.retour || false;
		var tempsTransition		= options.tempsTransition || 1000;
		var affichePlayPause	= options.affichePlayPause || false;
		var lectureAutomatique	= options.lectureAutomatique || false;
		var tempsAttente		= options.tempsAttente || 6000;
		
		var icones = new Array();
			icones['play'] = 'img/play_slider.png';
			icones['pause'] = 'img/pause_slider.png';

		var slides = slideshow.find(".slide");
		var numberOfSlides = slides.length;
		
		//var frameWidth = (slideshow.width()-40);  // A voir l'une ou l'autre option pour definir le frameWidth
		var frameWidth = options.frameWidth || 560;
		
		var slideWidth = slides.eq(0).width(); // 140; // 560;
		var slidesPerFrame = parseInt( (frameWidth/slideWidth)+0.2 ); // un arrondi ca serait pas du luxe, non ?
		
		var interval;
		var lectureEnCours = false;
		var currentPosition = 0;
		
		// Supprime la scrollbar en JS
		// # $('#slidesContainer').css('overflow', 'hidden');
		//slideshow.css('overflow', 'hidden');
		slideshow.find('.slidesContainer').css({'overflow': 'hidden', 'width': frameWidth});
		
		// Englobe tous les div .slide avec un '.slideInner'
		slides.wrapAll('<div class="slideInner"></div>')
		// Float left to display horizontally, readjust .slides width
			.css({
				'float' : 'left',
//				'overflow': 'hidden',
				'width' : slideWidth
			});

		// Longueur de #slideInner égale au total de la longueur de tous les slides
		slideshow.find('.slideInner').css('width', slideWidth * numberOfSlides);
		
		// Insert controls in the DOM
		// # $('#slideshow')
		slideshow
		.prepend('<span class="leftControl">Précédent</span>')
		.append('<span class="rightControl">Suivant</span>');
		
		//var leftCTRL = slideshow.prepend('<span class="control" id="leftControl">Précédent</span>');
		
		
		// Hide left arrow control on first load
		manageControls(currentPosition);
		
		//Crée un écouteur d'évènement de type clic sur les classes .control
		slideshow.find('.leftControl, .rightControl')
		.bind('click', function(){
			// Determine la nouvelle position
			currentPosition = ($(this).attr('class')=='rightControl') ? currentPosition+1 : currentPosition-1;
			
			if(currentPosition == numberOfSlides && retour == false ){
				currentPosition--;
				pause();
			}
			
			// Cache ou montre les controles
			manageControls(currentPosition);
			// Fais bouger le slide
			slideshow.find('.slideInner').animate({
				'marginLeft' : slideWidth*(-currentPosition)
				},tempsTransition);
		});

		
		
		// manageControls: Cache ou montre les flêches de controle en fonction de la position courante
		function manageControls(position){
		// Cache la fleche "précédent" si on est sur le premier slide
			if (position == 0) { slideshow.find('.leftControl').hide() } 
			else { slideshow.find('.leftControl').show() }

		// Cache la fleche "suivant" si on est sur le dernier slide (et que le retour automatique n'est pas activé)
			if (retour && position == numberOfSlides) {
				currentPosition = 0;
				slideshow.find('.leftControl').hide();
			} else {
				if (position >= (numberOfSlides-slidesPerFrame) ) {
					slideshow.find('.rightControl').hide();
				} else {
					slideshow.find('.rightControl').show();
				}
			}
		
			/*
			if(position==numberOfSlides-1 && retour == false){
				$('#rightControl').hide();
			} else {
				$('#rightControl').show();
			}
			if(position == numberOfSlides && retour == true){
				currentPosition = 0;
				$('#leftControl').hide();
			}
			*/
		}
		
		function suivant(){
			slideshow.find('.rightControl').click();
		}
		
		function start() {
			lectureEnCours = true;
			interval = setInterval(suivant, tempsAttente );
		}
		
		function pause() {
			lectureEnCours = false;
			clearInterval(interval);
		}
		
		// ### POUR DIAPORAMA
		
		 //Si le diapo est activé 
		if(lectureAutomatique == true){
			start();
		}
		
		if(affichePlayPause == true){
			$('#slidesContainer').prepend('<img id="navDiapo" src="" alt="Navigation diaporama" />');
			if(lectureAutomatique == true){
			$('#navDiapo').attr('src',icones['pause']);
		} else {
			$('#navDiapo').attr('src',icones['play']);	
		}
		
		$('#navDiapo').bind('click', function(){
			if(lectureEnCours == true){
				$(this).attr('src',icones['play']);
				pause();
			} else {
				$(this).attr('src',icones['pause']);
				start();
			}
			});
		};
		
		/*
		// ### EXAMPLE
		function slide(nr) {
			if (typeof nr == "undefined") {
				nr = visible_item + 1;
				nr = nr >= total_items ? 0 : nr;
			}

			tabs.removeClass('current').filter(":eq(" + nr + ")").addClass('current');

			output.stop(true, true).filter(":visible").fadeOut();
			output.filter(":eq(" + nr + ")").fadeIn(function() {
				visible_item = nr;	
			});
		}
		// ###

		var options	= options || {}; 
		var total_items	= tabs.length;
		var visible_item	= options.start_item || 0;

		options.pause_on_hover		= options.pause_on_hover		|| true;
		options.transition_interval	= options.transition_interval	|| 5000;

		output.hide().eq( visible_item ).show();
		tabs.eq( visible_item ).addClass('current');

		tabs.click(function() {
			if ($(this).hasClass('current')) {
				return false;	
			}

			slide( tabs.index( this) );
		});
		*/
	};

})(jQuery);

