﻿(function($) {
    $.fn.ContentSlider = function(options) {
        var defaults = {
            //leftBtn: '/images/slider-button-left.gif',
            //rightBtn: '/images/slider-button-right.gif',
            width: '940px',
            height: '320px',
            speed: 400,
            easing: 'easeOutQuad',
            textResize: false,
            IE_h2: '26px',
            IE_p: '11px'
        }

        var defaultWidth = defaults.width;
        var o = $.extend(defaults, options);
        var w = parseInt(o.width);
        var n = this.children('.cs_wrapper').children('.cs_slider').children('.cs_item').length;
        var x = -1 * w * n + w; // Minimum left value
        var p = parseInt(o.width) / parseInt(defaultWidth);
        var thisInstance = this.attr('id');
        var inuse = false; // Prevents colliding animations

        function moveSlider(d, b) {
            //var l = parseInt(b.siblings('.cs_wrapper').children('.cs_slider').css('left'));
            var l = parseInt($('#feature').children('.cs_wrapper').children('.cs_slider').css('left'));
            if (isNaN(l)) {
                var l = 0;
            }
            var m = (d == 'left') ? l - w : l + w;
            if (m <= 0 && m >= x) {
                //b
                $('#feature')
              .children('.cs_wrapper')
                .children('.cs_slider')
                  .animate({ 'left': m + 'px' }, o.speed, o.easing, function() {
                      inuse = false;
                  });

                if (b.attr('id') == 'slider-button-left') {
                    var thisBtn = $('#slider-button-left');
                    var otherBtn = $('#slider-button-right');
                } else {
                    var thisBtn = $('#slider-button-right');
                    var otherBtn = $('#slider-button-left');
                }
                if (m == 0 || m == x) {
                    thisBtn.animate({ 'opacity': '0' }, o.speed, o.easing, function() { thisBtn.hide(); });
                }
                if (otherBtn.css('opacity') == '0') {
                    otherBtn.show().animate({ 'opacity': '1' }, { duration: o.speed, easing: o.easing });
                }
            }
        }

        function vCenterBtns(b) {
            // Safari and IE don't seem to like the CSS used to vertically center
            // the buttons, so we'll force it with this function
            var mid = parseInt(o.height) / 2;
            b
        .find('.cs_leftBtn img').css({ 'top': mid + 'px', 'padding': 0 }).end()
        .find('.cs_rightBtn img').css({ 'top': mid + 'px', 'padding': 0 });
        }

        return this.each(function() {
            $(this)
            // Set the width and height of the div to the defined size
            .css({
                width: o.width,
                height: o.height
            })

            // Add the buttons to move left and right

            /* DA
            .prepend('<a href="#" class="cs_leftBtn"><img src="' + o.leftBtn + '" /></a>')
            .append('<a href="#" class="cs_rightBtn"><img src="' + o.rightBtn + '" /></a>')
            */

            // Dig down to the article div elements
            .find('.cs_item')
            // Set the width and height of the div to the defined size
            .css({
                width: o.width,
                height: o.height
            })
            .end()

            // Animate the entrance of the buttons
            .find('.cs_leftBtn')
            .css("opacity", 0)
            .hide()
            .end()

            .find('.cs_rightBtn')
            .hide()
            .animate({ 'width': 'show' });

            /*
            // Resize the font to match the bounding box
            if (o.textResize === true) {
            var h2FontSize = $(this).find('h2').css('font-size');
            var pFontSize = $(this).find('p').css('font-size');
            $.each(jQuery.browser, function(i) {
            if ($.browser.msie) {
            h2FontSize = o.IE_h2;
            pFontSize = o.IE_p;
            }
            });
            $(this).find('h2').css({ 'font-size': parseFloat(h2FontSize) * p + 'px', 'margin-left': '66%' });
            $(this).find('p').css({ 'font-size': parseFloat(pFontSize) * p + 'px', 'margin-left': '66%' });
            $(this).find('.readmore').css({ 'font-size': parseFloat(pFontSize) * p + 'px', 'margin-left': '66%' });
            }
            */

            // Store a copy of the button in a variable to pass to moveSlider()
            //var leftBtn = $(this).children('.cs_leftBtn');
            var leftBtn = $('#slider-button-left');
            leftBtn.bind('click', function() {
                if (inuse === false) {
                    inuse = true;
                    moveSlider('right', leftBtn);
                }
                return false; // Keep the link from firing
            });

            // Store a copy of the button in a variable to pass to moveSlider()
            //var rightBtn = $(this).children('.cs_rightBtn');
            var rightBtn = $('#slider-button-right');
            rightBtn.bind('click', function() {
                if (inuse === false) {
                    inuse = true;
                    moveSlider('left', rightBtn);
                }
                return false; // Keep the link from firing
            });

            //vCenterBtns($(this)); // This is a CSS fix function.
        });
    }
})(jQuery)
