(function($) {

    $.fn.slideView = function(options) {
        return this.each(function() {   
            $.slideView(this, options);
        });
    };

    $.slideView = function(container, options) {

        var settings = {
            'easeFunc': 'easeInOutExpo',
            'easeTime': 750,
            'toolTip':  false,
            'timeout':  3500
        };
        if (options)
            $.extend(settings, options);
        
        var j = 0;
        var container = $(container);
        container.find("img.ldrgif").remove(); // removes the preloader gif
        container.removeClass("svw").addClass("stripViewer");        
        var pictWidth = container.find("img").width();
        var pictHeight = container.find("img").height();
        var pictEls = container.find("li").size();
        var stripViewerWidth = pictWidth*pictEls;
        container.find("ul").css("width" , stripViewerWidth); //assegnamo la larghezza alla lista UL    
        container.css("width" , pictWidth);
        container.css("height" , pictHeight);

        container.each(function(i) {
            jQuery(this).after("<div class='stripTransmitter' id='stripTransmitter" + (j) + "'><ul><\/ul><\/div>");
            jQuery(this).find("li").each(function(n) {
                jQuery("div#stripTransmitter" + j + " ul").append("<li><a title='" + jQuery(this).find("img").attr("alt") + "' href='#'>"+(n+1)+"<\/a><\/li>");                                                
            });
            jQuery("div#stripTransmitter" + j + " a").each(function(z) {
                jQuery(this).bind("click", function(){
                    $.slideView.tempClearTimeout();
                    jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current"); // wow!
                    var cnt = -(pictWidth*z);
                    container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc);
                    if(z+1 < pictEls){
                        $.slideView.next(z+1, j, settings)
                    } else {
                        $.slideView.next(0, j, settings)
                    }
                    return false;
                });
            });
            
            if (pictEls > 1) $.slideView.next(1, j, settings);
            
            jQuery("div#stripTransmitter" + j).css("width" , pictWidth);
            jQuery("div#stripTransmitter" + j + " a:first").addClass("current");
            if(settings.toolTip){
                container.next(".stripTransmitter ul").find("a").Tooltip({
                    track: true,
                    delay: 0,
                    showURL: false,
                    showBody: false
                    });
            }
        });
//        ++j;
    };

    $.slideView.next = function(index, j, settings) {
        var el = jQuery("div#stripTransmitter" + j + " a ");
        timeout = setTimeout((function() {
            el.eq(index).trigger("click");
        }), settings.timeout);
        $.slideView.tempTimeout(timeout);
    };
    
    $.slideView.timeout_value = 0;
    
    $.slideView.tempTimeout = function(v) {
        $.slideView.timeout_value = v;
    };

    $.slideView.tempClearTimeout = function() {
        clearTimeout($.slideView.timeout_value)
    };

})(jQuery);
