$(function(){
	// Configuration
	var dossier	= 'pictures/galeries/';
	var diaporama_time = 3000; // Milisecondes
	var anim_speed = 'fast'; // fast, slow, milisecondes
	// Fin de configuration
	
	var thumbs 	= $('.galerie_miniatures');
	var view	= $('.galerie_vue');
	var viewBig = $('.galerie_vue_click');
	var texte	= $('.galerie_description');
	var play	= $('.galerie_play');
	var pause	= $('.galerie_pause');
	var compteur= $('#galerie_compteur');
	var pageur	= $('.galerie_pagination');
	var pageur_page = $('.galerie_pages');
	
	if( thumbs.find('li').length > 0 )
	{
	
		var popupBase = $('base').attr('href');
		var diaporama_on = false;
		var diaporama_interval_id;
		var compteur_interval_id;
		var lstImage = Array();
		var curImage = 0;	
		var thumbs_nb = thumbs.attr('id').replace('max-','');
		var anim_on = $.browser.msie && $.browser.version < 7 ? false : true;
		
		// Crée la liste des images
		thumbs.find('img').each(function(i){
			if( i == 0 ) $(this).addClass('galerie_actif');
			lstImage[i] = $(this).attr('alt');
		});
		
		var nbImage	 = lstImage.length;
		
		// Met à jour la vue principale
		var update = function(indice)
		{
			curImage	= indice;
			objet		= thumbs.find('a.galerie_links:eq('+indice+')');
			id			= objet.attr('href').replace('#','');
			txt 		= objet.next().html();
			src 		= dossier + 'med_' + id + '.jpg';
			href		= dossier + id + '.jpg';
			
			thumbs.find('img').removeClass('galerie_actif');
			objet.find('img').addClass('galerie_actif');
			
			if( anim_on )
			{
				viewBig.find('img').fadeOut(anim_speed,function(){
					viewBig.find('img').attr({ src : src });
					viewBig.find('img').fadeIn(anim_speed);
				});
			}
			else
			{
				viewBig.find('img').hide();
				viewBig.find('img').attr({ src : src });
				viewBig.find('img').show();
			}
			
			viewBig.attr({ href : href });
			texte.html(txt);
		}
		
		// Rend l'index en fonction de l'id
		var giveMeIndex = function(position,suiv,prec)
		{
			i=0;
			while( i< lstImage.length )
			{
				if( lstImage[i] == position )
				return i;
				else i++;
			}
		}
		
		// Pagination
		var curPage	 = 0;
		var nbPage	 = Math.ceil(nbImage / thumbs_nb);
		
		var pagination = function(page)
		{
			if( page != curPage )
			{
				curPage = page;
				start 	= (page-1) * thumbs_nb;
				end 	= page * thumbs_nb;
				thumbs.find('li').hide().slice(start,end).show();
				update(start);
			}
		}
		
		var getPage = function(pos,sens)
		{
			if( pos >= (thumbs_nb * curPage) )
			return curPage+1;
			else
			return curPage;
		}
		
		pagination(1);
		
		pageur_page.find('a').not('.gbackpage,.gnextpage').bind('click',function(e){
			pagination($(this).text());
			pageur_page.find('a').removeClass('actif');
			$(this).addClass('actif');
			e.preventDefault();
		});
		
		$('#galerie_pagination_back').bind('click',function(e){
			if(curPage > 1) { p = curPage - 1; pagination(p); }
			else pagination(nbPage);
			e.preventDefault();
		});
		
		$('.gbackpage').bind('click',function(e){
			if(curPage > 1) { p = curPage - 1; pagination(p); }
			else pagination(nbPage);
			pageur_page.find('a').removeClass('actif');
			pageur_page.find('a[href=#'+curPage+']').addClass('actif');
			e.preventDefault();
		});
		
		$('#galerie_pagination_next').bind('click',function(e){
			if(curPage < nbPage){ p = curPage + 1; pagination(p); }
			else pagination(1);
			e.preventDefault();
		});
		
		$('.gnextpage').bind('click',function(e){
			if(curPage < nbPage){ p = curPage + 1; pagination(p); }
			else pagination(1);
			pageur_page.find('a').removeClass('actif');
			pageur_page.find('a[href=#'+curPage+']').addClass('actif');
			e.preventDefault();
		});
		
		// Passe a l'image suivante
		var suivant = function()
		{
			nextId = 0;
			if( curImage+1 < nbImage ) nextId = curImage+1;
			update(nextId);
		}
		
		// Click sur les miniatures
		thumbs.find('a.galerie_links').bind('click',function(e){
			idimage = $(this).attr('href').replace('#','');
			position = giveMeIndex(idimage,false,false);
			update(position);
			stopDiaporama();
			e.preventDefault();
		});
		
		// Click sur la vue principale
		view.find('.galerie_vue_click').bind('click',function(e){
			PopupImage(popupBase + $(this).attr('href'));
			stopDiaporama();
			e.preventDefault();
		});
		
		// Click sur le bouton suivant
		$('#galerie_next').bind('click',function(e){
			suivant();
			stopDiaporama();
			e.preventDefault();
		});
		
		// Click sur le bouton precedent
		$('#galerie_back').bind('click',function(e){
			backId = nbImage-1;
			if( curImage > 0 ) backId = curImage-1;
			update(backId);
			stopDiaporama();
			e.preventDefault();
		});
		
		// Click sur le bouton zoom
		$('#galerie_zoom').bind('click',function(e){
			img = popupBase + view.find('.galerie_vue_click').attr('href');
			PopupImage(img);
			stopDiaporama();
			e.preventDefault();
		});
		
		// Lance le diaporama
		var lauchDiaporama = function()
		{
			suivant();
		}
		
		// Arrete le diaporama
		var stopDiaporama = function()
		{
			clearInterval(diaporama_interval_id);
			diaporama_on = false;
			play.show();
			pause.hide();
		}	
		
		// Click bouton play
		$('#galerie_diaporama').bind('click',function(e){
			if( !diaporama_on )
			{
				lauchDiaporama();
				diaporama_interval_id = setInterval(lauchDiaporama,diaporama_time);
				diaporama_on = true;
				play.hide(); pause.show();
			}
			else stopDiaporama();
			e.preventDefault();
		});
		
		
		// ++ Hover sur le play / pause
		$('#galerie_diaporama span').hover(
			function(){	$(this).css({backgroundPosition : 'bottom'}); },
			function(){	$(this).css({backgroundPosition : 'top'});	}
		);
	}
});
