﻿berryAlloc.NavigationProductLinesCarousel = function () {
    this.BindEvents();
    this.Initialize();
};

berryAlloc.NavigationProductLinesCarousel.prototype = {
    BindEvents: function () {
        var me = this;

        j(".NavigationProductLinesCarouselComponent .tabs td").hoverIntent(

            function () {
                j('.panes').data('nivoslider').slideTo(j(this).index());
                j('.panes').data('nivoslider').stop();
            },
            function () {
                j('.panes').data('nivoslider').start();

            }
        );
    },
    Initialize: function () {
        var me = this;
        j("#sliderText").tabs("div#sliderText > div", {
            effect: "fade",
            fadeInSpeed: 1000

        });

        j('.panes').nivoSlider({
            effect: 'fade', // Specify sets like: 'fold,fade,sliceDown, sliceUp'
            slices: 15, // For slice animations
            boxCols: 8, // For box animations
            boxRows: 4, // For box animations
            animSpeed: 500, // Slide transition speed
            pauseTime: 5000, // How long each slide will show
            startSlide: 0, // Set starting Slide (0 index)
            directionNav: false, // Next & Prev navigation
            directionNavHide: false, // Only show on hover
            controlNav: false, // 1,2,3... navigation
            controlNavThumbs: false, // Use thumbnails for Control Nav
            controlNavThumbsFromRel: false, // Use image rel for thumbs
            controlNavThumbsSearch: '.jpg', // Replace this with...
            controlNavThumbsReplace: '_thumb.jpg', // ...this in thumb Image src
            keyboardNav: false, // Use left & right arrows
            pauseOnHover: true, // Stop animation while hovering
            manualAdvance: false, // Force manual transitions
            captionOpacity: 0.8, // Universal caption opacity
            prevText: 'Prev', // Prev directionNav text
            nextText: 'Next', // Next directionNav text
            beforeChange: function () {
                var slideIndex = j('.panes').data('nivo:vars').currentSlide;
                var currentTab = j('table.tabs tr:first td:eq(' + slideIndex + ')').find('a');
                me.AnimateTab(currentTab, "down");
            }, // Triggers before a slide transition
            afterChange: function () {

            }, // Triggers after a slide transition
            slideshowEnd: function () { }, // Triggers after all slides have been shown
            lastSlide: function () { }, // Triggers when last slide is shown
            afterLoad: function () {
                j("#nivoslider").show();
            }, // Triggers when slider has loaded
            nextSlideKnown: function () {
                var slideIndex = j('.panes').data('nivo:vars').currentSlide;
                var currentTab = j('table.tabs tr:first td:eq(' + slideIndex + ')').find('a');

                j("#sliderText").data("tabs").click(slideIndex);
                me.AnimateTab(currentTab, "up");
            }
        });

        me.AnimateTab(j('table.tabs tr:first td:eq(0)').find('a'), "up");
    },

    AnimateTab: function (tab, effect) {
        if (effect == "up") {
            tab.animate({
                height: "140px",
                marginTop: "0px"
            }, 500);

            tab.addClass('TabActive');
            tab.find('span').addClass('TabActive');
        }

        if (effect == "down") {
            tab.animate({
                height: "40px",
                marginTop: "100px"
            }, 500);

            tab.removeClass('TabActive');
            tab.find('span').removeClass('TabActive');
        }
    }
};
