/* 
 * jQuery Plugin for display a slideshow.
 *
 * Created by Eric Panek
 */

 var slideshow_interval_id = false;
 
$.fn.slideshow = function(options)
{
    var defaults =
        {
            fade_speed : 'fast',
            interval : 4000,
            slide_class : 'slide',
            slide_container : undefined
        };
    
    var settings = $.extend(defaults, options );

    if(settings.slide_container) {
        $(this).html($(settings.slide_container).find('.'+settings.slide_class).first().clone());
    }
    else {
        $(this).html($('.'+settings.slide_class).first().clone());
    }
	
	if(slideshow_interval_id) {
	
		clearInterval(slideshow_interval_id);
	}
	
	var currSlide = 0;
    var _this = $(this); // Hold our parent "this" pointer

    slideshow_interval_id = setInterval(
        function()
        {
            _this.fadeOut(
            settings.fade_speed,
            function()
            {
                currSlide++;

                var items = undefined;
                 if(settings.slide_container) {
                    items = $(settings.slide_container).find('.'+settings.slide_class);
                }
                else {
                    items = $('.'+settings.slide_class);
                }
                if(currSlide >= $(items).size()) {
                    currSlide = 0;
                }
                var element = $(items).get(currSlide);
				_this.find('.'+settings.slide_class).remove();
                _this.append($(element).clone());
                _this.fadeIn(settings.fade_speed);
            }
        );
    }, settings.interval);
}
