/****************************************
 * @PlugginName 'Maiki's Gallery'
 * @author msurrel
 * @date 01/04/2010
 * @version 1.5.0
 ****************************************/

(function($){
	$.fn.gallery = function(options){
		
		/**************************/
		/** Variables par défaut **/
		/**************************/
		var defaults = {
				TxtFrom: 1,
				TxtTo:	 6
		};
			
		var opts = $.extend(defaults, options);
		
		// on cache le slider haut par défaut ainsi qur le préload
		$("div.Gallery_slider_up").css("visibility", "hidden");
		
		
		/************************************************************/
		/** Evènements sur le click d'une Vignette dans la Galerie **/
		/************************************************************/
		$("div.Gallery_content_vignettes a").click(function(event){
			
			// On annule l'évènement du lien au clic sur la vignette
			event.preventDefault();
				
			// On cache la grande image + le label et on affiche le loader
			$("div.Gallery_Img img,div.Gallery_Infos").hide();
			$("div.Gallery_Img img").removeAttr("src");
			
			// On supprime les classes des images selected par défaut
			$("div.Gallery_vignettes a img.selected").removeClass("selected");
			
			// on ajoute la classe 'selected' à  la vignette pour effet de selection
			$(this).children("img").addClass("selected");
			
			// chemin et titre de l'image à charger
			var Src = $(this).attr("href");
			var Txt = $(this).attr("title");
				
			// On affecte la valeur SRC à la nouvelle image et le label
			$("div.Gallery_Infos").text(Txt);
			$("div.Gallery_Img img").attr("src",Src)
			
			// On réaffiche tout avec un joli effet
			$("div.Gallery_Img img,div.Gallery_Infos").delay(400).fadeIn(500);
			
			
		});
		
		
		/**************************************************/
		/** Evènements sur le click du Bouton Slider Bas **/
		/**************************************************/
		$("div.Gallery_slider_down")
		.mouseover(function(){
			// si la souris est dessus, on modifie le background-position
			$(this).css("background-position", "0 -57px");
		})
		.mouseout(function(){
			// Si la souris sort du bouton, on rÃ©tablit le background-position
			$(this).css("background-position", "0 -19px");
		})
		.click(function(){
			// On incrémente les textes en bas des vignettes
			opts.TxtTo++;
			opts.TxtFrom++;
			
			// On anime la div qui contient les vignettes (on fait monter)
			$("div.Gallery_content_vignettes").animate({top:"-=73px"}, 250);
			
			// On cache les sliders ou pas
			if(opts.TxtTo >= $("div.Gallery_content_vignettes img").length) $("div.Gallery_slider_down").css("visibility","hidden");
			if(opts.TxtFrom >= 1) $("div.Gallery_slider_up").css("visibility","visible");
		});
		
		
		
		/***************************************************/
		/** Evènements sur le click du Bouton Slider Haut **/
		/***************************************************/
		$("div.Gallery_slider_up")
		.mouseover(function(){
			// Au survol de la souris, on modifie le background-position
			$(this).css("background-position", "0 -38px");
		})
		.mouseout(function(){
			// quand la souris quitte le bouton, on rétablit le background-position
			$(this).css("background-position", "0 0");
		})
		.click(function(){
			// On anime la div qui contient les vignettes (on fait descendre)
			$("div.Gallery_content_vignettes").animate({top:"+=73px"}, 250);
			
			// On modifie le texte du bas des : Images x à y
			// On décrémente les textes en bas des vignettes 'Images x à y'
			opts.TxtTo--;
			opts.TxtFrom--;
			
			// On cache les sliders en fonctions des images qui reste à afficher ou non
			if(opts.TxtFrom <= 1) $("div.Gallery_slider_up").css("visibility","hidden");
			if(opts.TxtTo <= $("div.Gallery_content_vignettes img").length) $("div.Gallery_slider_down").css("visibility","visible");
		});	
	};
})(jQuery);
