/**
 * Galeria
 *
 *	Este componente hace que se carge una imagen al clicar en alguno de los thumbnails asociados al control.
 *
 *	La imágen se cargará en la primera imagen asociada al control. El resto, de las imágenes (que estarán dentro de etiquetas <a>),
 *	al clicarlas, se mostrará el objeto de la precarga y se mostrarán con un efecto fadeIn()
 *
 **
 *
 * Copyright (c) 2009 Hermes Gadella
 * Licensed under the GPL licenses.
 * http://www.gnu.org/licenses/gpl.txt
 **/
 
$$ = $.fn.Galeria = function($options) {
		//Valores por defecto
		var $defaults = {
			main_picture_container : '#container',
			main_loader : '#loader',
			main_image : '#main_img',
			prefix : ''
		};
	
		//Sets para las opcion
		var $opts = $.extend($defaults, $options);

		var $main_div = $(this.find($opts.main_picture_container).get(0));
		var $main_img = $main_div.find($opts.main_image +":first");
		var $main_loader = $main_div.find($opts.main_loader)
		
		//esconder el indicador de precarga
		$main_loader.hide();
   
   	//Por cada enlace que se encuentre
		this.find("a").each(function(){
				//Al hacer click en él
				$(this).click(function(){
					//Escondemos la imágen principal y mostramos el indicador de precarga
					$main_img.hide();
					$main_loader.show();
					
					//asignamos la ruta de la imágen contenida dentro del propio enlace a la imágen principal
					$main_img.get(0).src = $(this).find("img").get(0).src.replace($opts.prefix,'');
				});
		});
		
		//Al cargar la imágen principal completamente, ocultamos el indicador de precarga y mostramos la nueva foto, con un efecto
		$main_img.load (function() {
			$main_loader.hide();
			$(this).fadeIn("slow");
		});
		
 };

