var Gallery = {
	
	// Affiche la galerie
	show: function() {
		var liste = $('gallery');
		var imgItems = $$('#gallery img');
		var linkItems = new Array();
		// On remplace toutes les images par des liens contenant les miniatures des images, qu'on rend presque transparentes
		imgItems.each(function(imgItem) {
			imgItem.addClass('thumb');
			imgItem.setStyle('width', 71);
			imgItem.setStyle('opacity', 0.1);
			var link = new Element('a', {href: 'javascript:;'});
			imgItem.inject(link);
			// On attribue une action au clic sur le lien
			link.addEvent('click', function(e) {
				e = new Event(e).stop();
				var imgSrc = link.getFirst('img').getProperty('src');
				Gallery.update(imgSrc);
			});
			// On place le lien qu'on vient de créer dans le tableau linkItems
			linkItems.push(link);
		});
		// On crée un conteneur pour la grande image, et l'image elle-même
		var bigPicWrapper = new Element('div', {id: 'bigPicWrapper'});
		var bigPic = new Element('img', {id: 'bigPic', src: imgItems[0].getProperty('src'), alt: ''});
		bigPic.inject(bigPicWrapper);
		// On l'insère dans la page, juste avant avant la galerie
		bigPicWrapper.inject(liste, 'before');
		// On crée une "chaine" pour l'effet d'apparition des miniatures l'une après l'autre
		var itemsChain = new Chain();
		linkItems.each(function(le) {
			le.inject(liste);
			itemsChain.chain(function() {
				var firstChildsId = le.getFirst('img').getProperty('id');
				fx = new Fx.Styles(firstChildsId, {'duration': 200});
				fx.start({'opacity': 1});
			});
		});
		// On exécute la chaine
		var runChain = function() {
			itemsChain.callChain();
			if (itemsChain.chains.length == 0) { runChain = $clear(timer); } 
		}
		var timer = runChain.periodical(500);
	},
	
	// Met à jour la grande image
	update: function(src) {
		$('bigPic').setProperty('src', src);
	}
	
}