/**
 * 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:'400px',
                    height:'80px',
                    overflow:'hidden',
                    background:'#333',
                    position:'relative',
                    marginTop:'-80px',
                    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);