;(function($) { // torinoscienza.it

$(function() {
    setupThumbs();
});

function setupThumbs() {
    function scrollNext($panel, step) {
        var width = 0;
        var $wrapper = $panel.find(".item-wrapper");
        var $visible = null;
        for ( ; step > 0 ; step--) {
            $visible = $panel.find(".visible");
            if ($visible.next().length) {
                $visible.removeClass("visible").next().addClass("visible");
                $panel.find(".thumbs .selected").removeClass("selected").next().addClass("selected");
                width += $visible.outerWidth(true);
            }
        }
        $wrapper.animate({left: "-="+width});
        if ($visible && $visible.next().next().length == 0)
            $panel.find(".action-next").addClass("disabled")
        $panel.find(".action-prev").removeClass("disabled")
    }
    function scrollPrev($panel, step) {
        var width = 0;
        var $wrapper = $panel.find(".item-wrapper");
        var $visible = null;
        for ( ; step > 0 ; step--) {
            $visible = $panel.find(".visible");
            if ($visible.prev().length) {
                $visible.removeClass("visible").prev().addClass("visible");
                $panel.find(".thumbs .selected").removeClass("selected").prev().addClass("selected");
                width += $visible.outerWidth(true);
            }
        }
        $wrapper.animate({left: "+="+width});
        if ($visible && $visible.prev().prev().length == 0)
            $panel.find(".action-prev").addClass("disabled")
        $panel.find(".action-next").removeClass("disabled")
    }

    $(".thumbs").each(function(){
        var itemsWidth = 0;
        var $panel = $(this).closest(".footer").parent();
        var $wrapper = $panel.find(".item-wrapper");
        $wrapper.children().each(function() { itemsWidth += $(this).outerWidth(true) });
        $wrapper.width(itemsWidth+5); // margin+5 hack for IE6
        $panel
            .find(".item-wrapper :first").addClass("visible").end()
            .find(".thumbs :first").addClass("selected").end()
            .find(".action-next").addClass("disabled").click(function() { scrollNext($panel, 1); }).end()
            .find(".action-prev").addClass("disabled").click(function() { scrollPrev($panel, 1); }).end()
            .find(".thumbs").children().click(function(evt) {
                var $target = $(evt.target);
                while ($target.length && !$target.parent().is(".thumbs"))
                    $target = $target.parent();
                var $prevs = $target.prevAll();
                for (var i=0, l=$prevs.length ; i < l ; i++) {
                    if ($($prevs[i]).is(".selected")) scrollNext($panel, i+1);
                }
                var $nexts = $target.nextAll();
                for (var i=0, l=$nexts.length ; i < l ; i++) {
                    if ($($nexts[i]).is(".selected")) scrollPrev($panel, i+1);
                }
            });
        if ($wrapper.children().length > 1)
            $panel.find(".action-next").removeClass("disabled");
    });
}

})(jQuery);
