/**
* @classDescription 模拟Marquee，无间断滚动内容
* @author Aken Li(www.kxbd.com)
* @DOM
*       <div id="marquee">
*           <ul>
*                <li></li>
*                <li></li>
*           </ul>
*       </div>
* @CSS
*       #marquee {width:200px;height:50px;overflow:hidden;}
* @Usage
*       $('#marquee').kxbdMarquee(options);
* @options
*     isEqual:true,//所有滚动的元素长宽是否相等,true,false
*       loop: 0,//循环滚动次数，0时无限
*     direction: 'left',//滚动方向，'left','right','up','down'
*     scrollAmount:1,//步长
*     scrollDelay:20//时长
*/


$.fn.kxbdMarquee = function(options) {
    var opts = $.extend({}, $.fn.kxbdMarquee.defaults, options);

    if (opts.direction == 'stop') { return }
    var marquees = $(this);
    var scrollObj = marquees.get(0);
    var scrollW = marquees.width();
    var scrollH = marquees.height();
    var elements = marquees.children();
    var kids = elements.children();
    if (marquees.attr("id") == "partERight")
        kids = marquees.find("p");
    var scrollSize = 0;
    var types = (opts.direction == 'left' || opts.direction == 'right') ? 1 : 0;

    if (opts.isEqual) {
        scrollSize = kids[types ? 'outerWidth' : 'outerHeight']() * kids.length;
    } else {
        kids.each(function(i) {
            scrollSize += $(this)[types ? 'outerWidth' : 'outerHeight']();
        });
    }
    
    if (scrollSize < (types ? scrollW : scrollH)) return;

    elements.append(kids.clone()).css(types ? 'width' : 'height', scrollSize * 2);

    var numMoved = 0;
    function scrollFunc() {
        var dir = (opts.direction == 'left' || opts.direction == 'right') ? 'scrollLeft' : 'scrollTop';
        if (opts.loop > 0) {
            numMoved += opts.scrollAmount;
            if (numMoved > scrollSize * opts.loop) {
                scrollObj[dir] = 0;
                return clearInterval(moveId);
            }
        }
        if (opts.direction == 'left' || opts.direction == 'up') {
            scrollObj[dir] += opts.scrollAmount;
            if (scrollObj[dir] >= scrollSize) {
                scrollObj[dir] = 0;
            }
        } else {
            scrollObj[dir] -= opts.scrollAmount;
            if (scrollObj[dir] <= 0) {
                scrollObj[dir] = scrollSize;
            }
        }
    }

    var moveId = setInterval(scrollFunc, opts.scrollDelay);

    marquees.hover(function() {
        clearInterval(moveId);
    }, function() {
        clearInterval(moveId);
        moveId = setInterval(scrollFunc, opts.scrollDelay);
    });
};
$.fn.kxbdMarquee.defaults = {
    isEqual: false, 
    loop: 0, 
    direction: 'up', 
    scrollAmount: 1, 
    scrollDelay: 100

};
$.fn.kxbdMarquee.setDefaults = function(settings) {
    $.extend($.fn.kxbdMarquee.defaults, settings);
};










//$.fn.kxbdMarquee = function(options) {
//    var opts = $.extend({}, $.fn.kxbdMarquee.defaults, options);

//    var marquees = $(this); /*滚动元素容器*/
//    var scrollObj = marquees.get(0); /*滚动元素容器DOM*/
//    var scrollW = marquees.width(); /*滚动元素容器的宽度*/
//    var scrollH = marquees.height(); /*滚动元素容器的高度*/
//    var elements = marquees.children(); /*滚动元素*/
//    var kids = elements.children(); /*滚动子元素*/
//    var scrollSize = 0; /*滚动元素尺寸*/
//    var types = (opts.direction == 'left' || opts.direction == 'right') ? 1 : 0; /*滚动类型，1左右，0上下*/

//    /*获取滚动元素的尺寸*/
//    if (opts.isEqual) {
//        scrollSize = kids[types ? 'outerWidth' : 'outerHeight']() * kids.length;
//    } else {
//        kids.each(function(i) {
//            scrollSize += $(this)[types ? 'outerWidth' : 'outerHeight']();
//        });
//    }
//    /*滚动元素总尺寸小于容器尺寸，不滚动*/
//    if (scrollSize < (types ? scrollW : scrollH)) return;
//    /*克隆滚动子元素将其插入到滚动元素后，并设定滚动元素宽度*/
//    elements.append(kids.clone()).css(types ? 'width' : 'height', scrollSize * 2);

//    var numMoved = 0;
//    function scrollFunc() {
//        var dir = (opts.direction == 'left' || opts.direction == 'right') ? 'scrollLeft' : 'scrollTop';
//        if (opts.loop > 0) {
//            numMoved += opts.scrollAmount;
//            if (numMoved > scrollSize * opts.loop) {
//                scrollObj[dir] = 0;
//                return clearInterval(moveId);
//            }
//        }
//        if (opts.direction == 'left' || opts.direction == 'up') {
//            scrollObj[dir] += opts.scrollAmount;
//            if (scrollObj[dir] >= scrollSize) {
//                scrollObj[dir] = 0;
//            }
//        } else {
//            scrollObj[dir] -= opts.scrollAmount;
//            if (scrollObj[dir] <= 0) {
//                scrollObj[dir] = scrollSize;
//            }
//        }
//    }
//    /*滚动开始*/
//    var moveId = setInterval(scrollFunc, opts.scrollDelay);
//    /*鼠标划过停止滚动*/
//    marquees.hover(function() {
//        clearInterval(moveId);
//    }, function() {
//        clearInterval(moveId);
//        moveId = setInterval(scrollFunc, opts.scrollDelay);
//    });
//};
//    $.fn.kxbdMarquee.defaults = {
//        isEqual: false, /*所有滚动的元素长宽是否相等,true,false*/
//        loop: 0, /*循环滚动次数，0时无限*/
//        direction: 'up', /*滚动方向，'left','right','up','down'*/
//        scrollAmount: 1, /*步长*/
//        scrollDelay: 100/*时长*/

//    };
//    $.fn.kxbdMarquee.setDefaults = function(settings) {
//        $.extend($.fn.kxbdMarquee.defaults, settings);
//    };




