﻿;
(function($) {
    $.fn.initSliders = function() {
        $('.carouselHor').each(function() {
            var html = $('div:first', this).html();
            var classname = $('div:first', this).attr('class');
            var wraps = ($(this).hasClass('nowrap') === false);
            //var this_w = $('div:first', this).outerWidth(true);
            var this_w = $(this).width();
            //alert($('div:first', this).width() + ": " + $('div:first', this).outerWidth(true));
            $(this).html('');
            $(this).html('<div class="' + classname + '"><div class="btn' + classname + 'Next btnNext"><a href="/">Next</a></div><div class="btn' + classname + 'Prev btnPrev"><a href="/">Prev</a></div><div class="' + classname + 'Holder sliderHolder"><div class="' + classname + 'Padding"><div class="' + classname + 'Pane sliderContainer">' + html + '</div></div></div></div>');
            $('.CarouselSmall').css({ height: '132px' });
            $('.CarouselLarge').css({ height: '153px' });
            var btnNext = $('.btnNext a', this);
            var btnPrev = $('.btnPrev a', this);
            var sh_w = Math.floor(this_w / $('.slideItem').outerWidth(true)) * $('.slideItem').outerWidth(true);
            $('.sliderHolder').css({ width: sh_w + 'px' });
            // Removed "true" from outerWidth, because it doesn't work in Chrome/Safari
            $(this).css({ width: (sh_w + $('.btn' + classname + 'Next').outerWidth() * 2) + 'px' });
            var slider = $('.sliderContainer:first');
            var itemWidth = $('.slideItem').outerWidth(true);
            var slideNum = Math.floor(sh_w / itemWidth);
            wraps = wraps && ($(slider).find('.slideItem').length >= slideNum);
            $().initSliderControl("hor", slider, btnNext, btnPrev, slideNum, itemWidth, wraps);
        });
    };
})(jQuery);
(function($) {
    $.fn.initSliderControl = function(dir, holder, next, prev, numItems, moveVal, wraps) {
        var btnPrev = prev;
        var btnNext = next;
        var currentItem = 0;
        var pos = 0;
        var originalChildren = $(holder).find('.slideItem');
        originalChildren.each(function() { $(this).removeClass('scriptHideOnLoad'); });
        var currentPreviousIndex = originalChildren.length - 1;
        btnPrev.removeAttr('href').css({ cursor: "pointer" });
        btnNext.removeAttr('href').css({ cursor: "pointer" });
        if (numItems === 0) {
            btnNext.css({ 'background-position': '-' + btnNext.width() + 'px center', cursor: 'default' });
            btnPrev.css({ 'background-position': '-' + btnPrev.width() + 'px center', cursor: 'default' });
        } else if (wraps === false) {
            btnPrev.css({ 'background-position': '-' + btnPrev.width() + 'px center', cursor: 'default' });
            if (originalChildren.length <= numItems + currentItem) {
                btnNext.css({ 'background-position': '-' + btnNext.width() + 'px center', cursor: 'default' });
            }
        }
        btnNext.click(function() {
            var allChildren = $(holder).find('.slideItem');
            if (wraps === false && allChildren.length <= numItems + currentItem) {
                return;
            }
            btnNext.css({ 'background-position': '0px center', cursor: "pointer" });
            btnPrev.css({ 'background-position': '0px center', cursor: "pointer" });
            pos -= moveVal;

            if (allChildren.length == currentItem + (numItems)) {
                var firstChild = originalChildren[(currentItem + (numItems)) % originalChildren.length];
                var lastChild = allChildren[allChildren.length - 1];
                $(lastChild).after($(firstChild).clone(true));
                $(holder).width($(holder).width() + $(lastChild).outerWidth(true));
            }

            currentItem++;

            if (wraps === false && (allChildren.length - numItems) == currentItem) {
                btnNext.css({ 'background-position': '-' + btnNext.width() + 'px center', cursor: 'default' });
            }
            
            if (dir == "hor") {
                $(holder).animate({ left: pos + "px" }, 350);
            }
            else if (dir == "vert") {
                $(holder).animate({ top: pos + "px" }, 350);
            }
        });
        btnPrev.click(function() {
            var allChildren = $(holder).find('.slideItem');
            if (wraps === false && currentItem === 0) {
                return;
            }
            btnPrev.css({ 'background-position': '0px center', cursor: "pointer" });
            btnNext.css({ 'background-position': '0px center', cursor: "pointer" });
            if (pos === 0) {
                pos -= moveVal;
                $(holder).width($(holder).width() + moveVal)
                var firstChild = allChildren[0];
                var lastChild = originalChildren[currentPreviousIndex];
                currentPreviousIndex = (originalChildren.length + currentPreviousIndex - 1) % originalChildren.length;
                $(firstChild).before($(lastChild).clone(true));
                $(holder).css('left', pos + "px");
            } else {
                currentItem--;
            }
            pos += moveVal;
            if (dir == "hor") {
                $(holder).animate({ left: pos + "px" }, 350);
            }
            else if (dir == "vert") {
                $(holder).animate({ top: pos + "px" }, 350);
            }
            if (wraps === false && currentItem === 0) {
                btnPrev.css({ 'background-position': '-' + btnNext.width() + 'px center', cursor: 'default' });
            }
        });
    };
})(jQuery);
