/**
 * Effecta24
 *
 * LICENSE
 *
 * This source file is subject to version 1.0 of the FFCreation license.
 *
 * @category    FireFly
 * @package     LogoSlider
 * @version     1.0.0
 * @author      Rafał Gałka <rafal.galka@fireflytechnology.pl>
 * @copyright   Copyright (c) 2007-2009 FireFly Technology (http://www.fireflytechnology.pl)
 * @link        www.fireflytechnology.pl
 */

/**
 * Slider rotujący logotypy.
 *
 * Działa na zasadzie przesuwania tła zawierającego logotypy.
 * Przesuwanie odbywa się w pionie o wysokość wierwsza `rowWidth`.
 * Po osiągnięciu wartości `rows` rotacja zapętla się.
 *
 * @category    FireFly
 * @package     LogoSlider
 * @version     1.0.0
 * @author      Rafał Gałka <rafal.galka@fireflytechnology.pl>
 * @copyright   Copyright (c) 2007-2009 FireFly Technology (http://www.fireflytechnology.pl)
 * @link        www.fireflytechnology.pl
 */
(function($){
    $.fn.extend({
        logoSlider: function(options) {

            /**
             * Ustawienia domyślne.
             */
            var defaults = {
                rowWidth: 82,
                rows: 7,
                interval: 4000,
                fadeInterval: 1000
            };

            /**
             * Bieżące ustawienia.
             */
            var options = $.extend(defaults, options);

            /**
             * Definicja pluginu.
             */
            return this.each(function() {

                var $this = $(this);
                var interval = options.interval;
                var fadeInterval = options.fadeInterval;

                var rowWidth = options.rowWidth;
                var rows = options.rows;
                var position = 1;

                // ustawienie interwału
                theInterval = setInterval(function() {

                    if (position < rows) {
                        var bgPosition = "-" + (rowWidth * position) + "px";
                    }
                    if (position == rows) {
                        var bgPosition = 0;
                        position = 0;
                    }

                    $this
                        .fadeOut(fadeInterval, function() {
                            $this.css("background-position", "0 " + bgPosition);
                        })
                        .fadeIn(fadeInterval)
                    ;
                    position++;

                }, interval);
            });
        }
    });
})(jQuery);
