/**
 * jQuery Gallery
 *
 * @author			Giovambattista Fazioli
 * @email			g.fazioli@undolog.com
 * @web				http://www.undolog.com
 */

(function($) {
	jQuery.fn.gallery = function(settings){
		return this.each( 
			function() {
				var $this 		= $(this);
				var __a			= [];
				var __i			= 0;
				
				var defaults = {
					count: 			settings.count || 4,
					pauseTime: 		settings.pauseTime || 4000,
					speed: 			settings.speed || 'slow',
					autoStart:		(settings.autoStart == undefined)?1:settings.autoStart,
					opacity:		settings.opacity || '0.8'
				};
				
				// init
				jQuery('.gallery-item')
					.css('position','absolute')
					.children('.label')
					.css( {
							width:'590px',
							height:'50px',
							overflow:'hidden',
							background:'#333', 
							position:'relative', 
							marginTop:'-50px',
							opacity: defaults.opacity
						 });
				
				// store in __a array
				jQuery('.gallery-item').each(
					function(i,e) { 
						__a[i] = e; 
						if(i>0) jQuery(e).hide();
					}
				);
			
				var __nextSlideDown = function() {
					jQuery( __a[__i] ).children('.label').slideDown( defaults.speed );
					setTimeout( __next, defaults.pauseTime );
				}				

				var __nextFade = function() {
					jQuery(__a[__i]).fadeOut( defaults.speed )
					__i++; if(__i > ( defaults.count-1) ) __i=0;
					jQuery(__a[__i]).fadeIn( defaults.speed, __nextSlideDown);
				}

				var __next = function() {
					jQuery( __a[__i] ).children('.label').slideUp( defaults.speed, __nextFade );
				}
								
				// show first label
				jQuery( __a[__i] ).children('.label').slideDown( defaults.speed );

				if( defaults.autoStart == "1" ) setTimeout( __next, defaults.pauseTime );

			}
		);
	}
})(jQuery);