jQuery.fn.fadeSlideShow = function (options) {
    return this.each(function () {
        settings = jQuery.extend({
            width: 993, // default width of the slideshow
            height: 234, // default height of the slideshow
            speed: 'slow', // default animation transition speed
            interval: 3000, // default interval between image change
            autoplay: true // autoplay the slideshow
        }, options);

        // set style for wrapper element
        jQuery(this).css({
            width: settings.width,
            height: settings.height,
            position: 'relative',
            overflow: 'hidden'
        });

        // set styles for child element
        jQuery('> *', this).css({
            position: 'absolute',
            width: settings.width,
            height: settings.height
        });

        // count number of slides
        Slides = jQuery('> *', this).length;
        Slides = Slides - 1;
        ActSlide = Slides;
        // Set jQuery Slide short var
        jQslide = jQuery('> *', this);
        // save this
        fssThis = this;

        autoplay = function () {
            intval = setInterval(function () {
                jQslide.eq(ActSlide).fadeOut(settings.speed);

                if (ActSlide <= 0) {
                    jQslide.fadeIn(settings.speed);
                    ActSlide = Slides;
                } else {
                    ActSlide = ActSlide - 1;
                }
            }, settings.interval);

            if (settings.PlayPauseElement) {
                jQuery('#' + settings.PlayPauseElement).html(settings.PauseText);
            }
        }

        stopAutoplay = function () {
            clearInterval(intval);
            intval = false;
            if (settings.PlayPauseElement) {
                jQuery('#' + settings.PlayPauseElement).html(settings.PlayText);
            }
        }

        

        // start autoplay or set it to false
        if (settings.autoplay) { autoplay(); } else { intval = false; }
    });
};
