﻿(function ($)
{
    $.extend($.fn, {
        ScrollBox: function (options)
        {
            //配置
            var config = $.extend({
                containerExpr: "",
                content1Expr: "",
                content2Expr: "",
                direction: "y",
                speed: 10,
                step: 1
            }, options);

            var container = $(config.containerExpr)
            var content1 = $(config.content1Expr);
            var content2 = $(config.content2Expr);

            var size = config.direction == "x" ? content1.width() : content1.height();
            var containerSize = config.direction == "x" ? container.width() : container.height();
            if (size < containerSize) return;
            content2.html(content1.html());
            var ScrollStep = function (newScrollSize)
            {
                if (config.direction == "x")
                {
                    container.scrollLeft(newScrollSize);
                } else
                {
                    container.scrollTop(newScrollSize);
                }
            }
            var MyMar;
            var Mar = function ()
            {
                var scrollSize = config.direction == "x" ? container.scrollLeft() : container.scrollTop();
                if (scrollSize == size)
                {
                    container.offset(0);
                }
                if (scrollSize > size)
                {
                    ScrollStep(scrollSize - size);
                }
                else
                {
                    if (config.direction == "x")
                    {
                        ScrollStep(scrollSize + config.step);
                    }
                    else
                    {
                        ScrollStep(scrollSize + config.step);
                    }
                }

                MyMar = setTimeout(Mar, config.speed);
            }

            MyMar = setTimeout(Mar, config.speed);

            container.hover(
                function ()
                {
                    clearTimeout(MyMar);
                },
                function ()
                {
                    MyMar = setTimeout(Mar, config.speed);
                }
            );
        }
    });
})(jQuery);
