/*!
 * jQuery Simple Gallery v1.0
 * http://www.rafaelgomes.info
 *
 * Copyright 2010, Rafael Gomes
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * 
 *
 * Date: Fri May 29 2011
 */
(function($){
 $.fn.simpleGallery = function(options) {
	//default values
	var defaults = {
		imageClass:	'destaque',
		descriptionClass: 'description',
		controlClass: 'control',
		nextButtonClass: 'avancar',
		backButtonClass: 'voltar',
		speedFadeOut: 500,
		speedFadeIn: 500,
		speedShowDescription: 350,
		speedHideDescription: 300,
		timeForInterval: 3500
	};
	
	var options = $.extend(defaults, options);
	
	//call all elements
    return this.each(function() {
		//declaration of 
		var obj = $(this);
		
		var imageContainer 	= '.' + defaults.imageClass;
		var description 	= '.' + defaults.descriptionClass;
		var control			= '.' + defaults.controlClass;
		var nextButton		= '.' + defaults.nextButtonClass;
		var backButton		= '.' + defaults.backButtonClass;
		var arrImages 		= [];
		var actualNav		= 0;
		var nav				= 0;
		
		
		var intervalo = setInterval(avanca, defaults.timeForInterval);
		
		//hide first button
		obj.parent().children(control).children(backButton).css('display', 'none');
		
		//control description
		obj.children(imageContainer).each(function(index){
			arrImages[index] = $(this);
			$(this).children(description).stop().animate({bottom:-($(this).children(description).outerHeight()) + 'px'}, defaults.speedHideDescription);
			
			$(this).hover(function(){
				clearInterval(intervalo);
				$(this).children(description).stop().animate({bottom:0}, defaults.speedShowDescription);
			},function(){
				intervalo = setInterval(avanca, defaults.timeForInterval);
				$(this).children(description).stop().animate({bottom:-($(this).children(description).outerHeight(true)) + 'px'}, defaults.speedHideDescription);
			});
		});
		
		//control Navigation
		obj.parent().children(control).children(nextButton).click(function(){
			obj.parent().children(control).children(backButton).css('display', 'block');
			if(nav < arrImages.length - 1)
			{
				if(nav == -1)
				{
					obj.parent().children(control).children(nextButton).css('display', 'block');
					obj.parent().children(control).children(backButton).css('display', 'none');
				}
				nav++;
				if(nav == arrImages.length - 1)
				{
					$(this).css('display', 'none');
				}
				navigation(nav);
			}
		});
		obj.parent().children(control).children(backButton).click(function(){
			obj.parent().children(control).children(nextButton).css('display', 'block');
			if(nav > 0)
			{
				nav--;
				if(nav == 0)
				{
					$(this).css('display', 'none');
				}
				navigation(nav);	
			}
		});
		
		//automatic slider
		
		function avanca()
		{
			obj.parent().children(control).children(nextButton).trigger('click');
			if(nav == arrImages.length - 1)
			{
				nav = -1;
			}
		}
		
		function navigation(nav)
		{
			obj.children(imageContainer).each(function(index)
			{
				if(index != nav)
				{
					$(this).stop().fadeOut(defaults.speedFadeOut);	
				}
				else
				{
					arrImages[nav].stop().fadeOut(0);
					arrImages[nav].stop().fadeIn(defaults.speedFadeIn);	
				}
			});
		}
		
		
    }); //each
 };
})(jQuery);;

