(function($) {
    $.fn.slideshow = function(){
    return this.each(
        slideChanger = function(){
            var mainSlideSrc;
            var slideShowActive;
            var avalibleSlides = null;
            var element;
            var i=0;
            $(this).hover(startSlideshow, stopSlideShow);
            this.slideShowActive = false;
            function startSlideshow(){                  
                if (this.slideShowActive == false){
                    this.slideShowActive = true;
                    mainSlideSrc = $(this).attr('src');
                    reg = /\/(\d+)[_\.]/;  
                    var changeSlide = function(){
                        if (element.slideShowActive) {
                            var origSrc = $(element).attr('src');
                            i = i % avalibleSlides.length;
                            reg = /^([^_]+)_.*/;
                            var prfxPath = reg.exec(origSrc);
                            reg = /(_[^_]+)$/;
                            var sfxPath = reg.exec(origSrc);
                            src = prfxPath[1] + '_' + avalibleSlides[i] + sfxPath[1];
                            $(element).attr('src', src);
                            i++;
                            setTimeout(changeSlide, 600);
                        }
                    }
                    var videoId = reg.exec(mainSlideSrc);
                    var requestData = {id: videoId[1]};
                    element =  this;
                    if (avalibleSlides){
                        changeSlide();
                    } else {
                        $.getJSON(
                            '/ajax/video_slide_show_thumbs.php',
                            requestData,
                            function(data) {                            
                                avalibleSlides = data;
                                changeSlide();
                            }
                        );
                    }
                }               
            }
            function stopSlideShow(){               
                $(this).attr('src', mainSlideSrc);
                if(this.slideShowActive){
                    this.slideShowActive = false;
                    i = 0;
                }               
            }
        }
    );
    }
})(jQuery);