/*
* fadeSlideShow
*/

jQuery.fn.fadeSlideShow = function(options) {
	return this.each(function(){
		settings = jQuery.extend({
     		/*width: 640,*/ // default width of the slideshow
     		/*height: 480,*/ // default height of the slideshow
			speed: 1500, // default animation transition speed
			interval: 7000, // default interval between image change
			PlayPauseElement: false /*'fssPlayPause'*/, // default css id for the play / pause element
			PlayText: 'Play', // default play text
			PauseText: 'Pause', // default pause text
			NextElement: 'diaposuivant', // default id for next button
			NextElement2: 'textediaposuivant', // default id for next button texte
			NextElementText: 'défilement vers le bas'/*'Next >'*/, // default text for next button
			PrevElement: 'diapoprecedent', // default id for prev button
			PrevElement2: 'textediapoprecedent', // default id for prev button texte
			PrevElementText: 'défilement vers le haut'/*'< Prev'*/, // default text for prev button
			ListElement: 'fssList', // default id for image / content controll list
			ListLi: 'fssLi', // default class for li's in the image / content controll
			ListLiActive: 'fssActive', // default class for active state in the controll list
			addListToId: 'footergauche', // add the controll list to special id in your code - default false
			allowKeyboardCtrl: true, // allow keyboard controlls left / right / space
			autoplay: lecturediapo // autoplay the slideshow
	 	}, options);

		// set style for wrapper element
		jQuery(this).css({
			width: '100%',/*
			height: settings.height,*/
			position: 'relative',
			overflow: 'hidden'
		});

		// set styles for child element
		jQuery('> *',this).css({
			position: 'absolute',
			width: '100%'/*,
			height: settings.height*/
		});

		// count number of slides
		Slides = jQuery('> *', this).length;
		Slides = Slides - 1;
		ActSlide = Slides;
		// Set jQuery Slide short var
		jQslide = jQuery('> *', this);
		// save this
		fssThis = this;

		autoplay = function(){
			intval = setInterval(function(){
				
				jQslide.eq(ActSlide).fadeOut(settings.speed);
				/*
				jQslide.eq(ActSlide).fadeTo(settings.speed,0);
*/
				// if list is on change the active class
				if(settings.ListElement){
					setActLi = (Slides - ActSlide) + 1;
					if(setActLi > Slides){setActLi=0;}
					/* boutons*/
					jQuery('#'+settings.ListElement+' li').removeClass(settings.ListLiActive);
					jQuery('#'+settings.ListElement+' li').eq(setActLi).addClass(settings.ListLiActive);
					/*noms*/
					jQuery('#'+settings.ListElement+'2 li').removeClass(settings.ListLiActive);
					jQuery('#'+settings.ListElement+'2 li').eq(setActLi).addClass(settings.ListLiActive);
				}

				if(ActSlide <= 0){
					jQslide.fadeIn(settings.speed);
					/*jQslide.fadeTo(settings.speed,1);*/

					ActSlide = Slides;
				}else{
					ActSlide = ActSlide - 1;
				}
			}, settings.interval);

			if(settings.PlayPauseElement){
				jQuery('#'+settings.PlayPauseElement).html(settings.PauseText);
			}
		}

		stopAutoplay = function(){
			clearInterval(intval);
			intval = false;
			if(settings.PlayPauseElement){
				jQuery('#'+settings.PlayPauseElement).html(settings.PlayText);
			}
		}

		jumpTo = function(newIndex){			
		
			if(newIndex < 0){newIndex = Slides;}
			else if(newIndex > Slides){newIndex = 0;}

			if( newIndex >= ActSlide ){
				jQuery('> *:lt('+(newIndex+1)+')', fssThis).fadeTo(settings.speed,1);
			}else
			if(newIndex <= ActSlide){
				jQuery('> *:gt('+newIndex+')', fssThis).fadeOut(settings.speed);
			}
			jQuery('> *:lt('+(newIndex+1)+')', fssThis).fadeTo(settings.speed,1);
	
 
			// set the active slide
			ActSlide = newIndex;

			if(settings.ListElement){
				// set active
				/* boutons*/
				jQuery('#'+settings.ListElement+' li').removeClass(settings.ListLiActive);
				jQuery('#'+settings.ListElement+' li').eq((Slides-newIndex)).addClass(settings.ListLiActive);
				/*noms*/
				jQuery('#'+settings.ListElement+'2 li').removeClass(settings.ListLiActive);
				jQuery('#'+settings.ListElement+'2 li').eq((Slides-newIndex)).addClass(settings.ListLiActive);
			}
		}

		// if list is on render it
		if(settings.ListElement){
			i=0;
			li = '';
			nom='';

			while(i<=Slides){
				if(i==0){
					li = li+'<li class="'+settings.ListLi+i+' '+settings.ListLiActive+'"><a href="#">&nbsp;&nbsp;&nbsp;&nbsp;<\/a><\/li>';
					/* texte ou image (si à afficher)*/
					if (nomouimage==true) {
						if(image==false){
							nom = nom+'<li class="'+settings.ListLi+i+' '+settings.ListLiActive+'"><a href="#">'+nomdiapo[i]+'<\/a><\/li>';
						}
						else{
							nom = nom+"<li class='"+settings.ListLi+i+" "+settings.ListLiActive+"'>"+nomdiapo[i]+"<\/li>";
						}
					}
				}else{
					li = li+'<li class="'+settings.ListLi+i+'"><a href="#">&nbsp;&nbsp;&nbsp;&nbsp;<\/a><\/li>';
					/* texte ou image (si à afficher) */
					if (nomouimage==true) {
						if(image==false){
							nom = nom+'<li class="'+settings.ListLi+i+'" id="nomdiapo'+i+'"><a href="#">'+nomdiapo[i]+'<\/a><\/li>';
						}
						else{
							nom = nom+"<li class='"+settings.ListLi+i+"' id='nomdiapo"+i+"'>"+nomdiapo[i]+"<\/li>";
						}
					}
				}
				i++;
			}
			List = '<div id="boutonsdiapo"><ul id="'+settings.ListElement+'">'+li+'<\/ul></div>';
			if (nomouimage==true) {
				List2 = '<div id="liensdiapo"><ul id="'+settings.ListElement+'2">'+nom+'<\/ul></div>';
			}

			// add list to a special id or append after the slideshow
			/* boutons*/
			if(settings.addListToId){
				jQuery('#'+settings.addListToId).append(List);
			}else{
				jQuery(this).after(List);
			}

			jQuery('#'+settings.ListElement+' a').bind('click', function(){
				index = jQuery('#'+settings.ListElement+' a').index(this);
				stopAutoplay();
				ReverseIndex = Slides-index;

				jumpTo(ReverseIndex);

				return false;
			});

			/*noms*/
			if (nomouimage==true) {
				if(settings.addListToId){
					jQuery('#'+settings.addListToId).append(List2);
				}else{
					jQuery(this).after(List2);
				}
			}

			jQuery('#'+settings.ListElement+'2 a').bind('click', function(){
				index = jQuery('#'+settings.ListElement+'2 a').index(this);
				stopAutoplay();
				ReverseIndex = Slides-index;

				jumpTo(ReverseIndex);

				return false;
			});
		}

		if(settings.PlayPauseElement){
			if(!jQuery('#'+settings.PlayPauseElement).css('display')){
				jQuery(this).after('<a href="#" id="'+settings.PlayPauseElement+'"><\/a>');
			}

			if(settings.autoplay){
				jQuery('#'+settings.PlayPauseElement).html(settings.PauseText);
			}else{
				jQuery('#'+settings.PlayPauseElement).html(settings.PlayText);
			}

			jQuery('#'+settings.PlayPauseElement).bind('click', function(){
				if(intval){
					stopAutoplay();
				}else{
					autoplay();
				}
				return false;
			});
		}

		if(settings.NextElement){
		
			jQuery('#'+settings.NextElement).bind('click', function(){
				nextSlide = ActSlide-1;
				stopAutoplay();
				jumpTo(nextSlide);
				return false;
			});
		}

		if(settings.PrevElement){

			jQuery('#'+settings.PrevElement).bind('click', function(){
				prevSlide = ActSlide+1;
				stopAutoplay();
				jumpTo(prevSlide);
				return false;
			});
		}

		if(settings.allowKeyboardCtrl){

		}

		// start autoplay or set it to false
		if(settings.autoplay){autoplay();}else{intval=false;}
	});
};




jQuery(document).ready(function(){
	/* declencher défilement diapo*/
	jQuery('#content').fadeSlideShow();
});

