(function($){
    $.fn.imagePreview3 = function(address,speed,timeout) {

        var elements = $(".iP3_large").find("img");
        var minis = $(".iP3_small").find("img");

        var start = elements.eq(0);
        var start_mini = minis.eq(0);

        var fade = 0.2;

        var imgl = start;
        var imgs = start_mini;
        var count = elements.length;

        var begin = function ()
        {
            elements.each(function(index,item){
                if (index>0)
                    $(item).hide();

                if (index == count-1)
                    elements.eq(index).addClass("last");
            });

            minis.each(function(index,item){
                if (index>0)
                    $(item).fadeTo(0,fade);
            });

            setTimeout(animate, timeout);
        }

        var lastpos = function()
        {
            elements.each(function(index,item){

                if (index > 0 && index < count-1)
                    $(item).hide();
            });

            minis.each(function(index,item){

                if (index > 0 && index < count-1)
                    $(item).fadeTo(0,fade);
            });

            imgs.fadeTo(speed, fade);

            imgs = start_mini;

            imgs.fadeTo(speed, 1);

            imgl.fadeOut(speed, function()
            {
                setTimeout(animate, timeout);
            })

            imgl = start;
        }

        var animate = function()
        {
            imgl = imgl.next('img');
            
            imgs.fadeTo(speed, fade);
            imgs = minis.eq(imgl.index());
            imgs.fadeTo(speed, 1);

            imgl.fadeIn(speed, function()
            {
                if(imgl.hasClass('last'))
                    setTimeout(lastpos, timeout);
                else
                    setTimeout(animate, timeout);
            })
        }

        begin();
    }
})(jQuery);
