(function($) {

    $.fn.fadeImages = function(options) {
		return this.each(function() {   
            $.fadeImages(this, options);
        });
    };

    $.fadeImages = function(container, options){
		var settings = {
			'speed': 2000,
			'timeout': 10000
		};
		if (options) 
			$.extend(settings, options);
		
		var elements = $(container).children();
		
		for (var i = 0; i < elements.length; i++) {
			$(elements[i]).removeAttr("style");
            $(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute').hide();
        };
		
		$(elements[0]).show();
		$.fadeImages.next(elements, settings, 1, 0);
		
	};
	
	$.fadeImages.next = function(elements, settings, current, last) {
		
		if ((current + 1) < elements.length) {
            current = current + 1;
            last = current - 1;
        } else {
            current = 0;
            last = elements.length - 1;
        }
		
		$(elements[last]).fadeOut(settings.speed);
        $(elements[current]).fadeIn(settings.speed);
		
		setTimeout((function() {
            $.fadeImages.next(elements, settings, current, last);
        }), settings.timeout);
		
	};

})(jQuery);
