﻿(function ($) {
    /*
    jquery.buckets.js v1.0
    Last updated: 26 May 2011
    Created by: Jose Luis Dias (j.dias@steel-sci.com)
    */

    $.fn.buckets = function (options) {

        // Set default options
        $.fn.buckets.defaults = {
            startPos: 0,
            slideWidth: 560
        };

        var o = $.extend({}, $.fn.buckets.defaults, options);

        return this.each(function () {
            var c = $(this).find('.slideshow');
            var currentPosition = o.startPos;
            var slides = c.find('.slide');
            var numberOfSlides = slides.length;

            // Remove scrollbar in JS
            c.find('.slidesContainer').css('overflow', 'hidden');

            // Wrap all .slides with #slideInner div
            slides.wrapAll('<div id="slideInner"></div>')
            // Float left to display horizontally, readjust .slides width
            slides.css({
                'float': 'left',
                'width': o.slideWidth
            });

            // Set #slideInner width equal to total width of all slides
            c.find('#slideInner').css('width', o.slideWidth * numberOfSlides);

            // Insert controls in the DOM
            c.prepend('<div id="slidePosition"></div>');
            c.prepend('<div id="moveControl">Move Slide</div>');

            // Update slide position
            updatePosition('#slidePosition');

            // Create event listeners for .controls clicks
            c.find('#moveControl').bind('click', function () {
                // Determine new position
                currentPosition = ($(this).attr('id') == 'moveControl') ? currentPosition + 1 : currentPosition - 1;

                // Reset current position
                if (currentPosition == numberOfSlides) { currentPosition = 0 };

                // Update slide position
                updatePosition('#slidePosition');

                // Move slideInner using margin-left
                c.find('#slideInner').animate({
                    'marginLeft': o.slideWidth * (-currentPosition)
                });
            });

            function updatePosition(sp) {
                c.find(sp).text((currentPosition + 1) + '/' + numberOfSlides);
            }
        });
    };
})(jQuery);
