/**
 * @author kun_he
 */
jQuery.fn.extend({
    installJCarousel: function(){
        var _this = this;
        //获取组件
        var jLeft = jQuery(_this).find("#jCarousel_left");
        var jRight = jQuery(_this).find("#jCarousel_right");
        var jContainer = jQuery(_this).find("#jCarousel_container");
        var jContainerSub = jQuery(_this).find("#jCarousel_container_sub");
        
        //计算列表长度
        var itemLeg;
        if (jQuery(_this).find(".jCarousel_item").size() > 0) {
            itemLeg = jQuery(jQuery.makeArray(jQuery(_this).find(".jCarousel_item"))[0]).outerWidth(true);
        }
        else {
            throw new Error("no list");
        }
        //样式设计
        jContainer.css({
            position: "relative",
            overflow: "hidden"
        });
        jContainerSub.css({
            position: "relative",
            width: "10000px"
        });
        
        //显示计数
        var count = jQuery(_this).data("count") || 0;
        var maxcount = jQuery(_this).data("maxcount") || jQuery(_this).find(".jCarousel_item").size() - Math.ceil(jContainer.width() / itemLeg);
        //左边按钮
        jLeft.click(function(){
            count = jQuery(_this).data("count");
            if (count > 0) {
                count -= 1;
                jContainerSub.animate({
                    left: -(itemLeg * count)
                }, 500);
                jQuery(_this).data("count", count);
            }
            checkDirection(jQuery(_this)[0]);//确定轮换方向，为自动轮换服务
        });
        jLeft.mouseover(function(){
            jQuery(_this).data("isOver", true);
        });
        jLeft.mouseout(function(){
            jQuery(_this).data("isOver", false);
        });
        
        //右边按钮
        jRight.click(function(){
            count = jQuery(_this).data("count");
            if (Math.abs(count) < maxcount) {
                count += 1;
                jContainerSub.animate({
                    left: -(itemLeg * count)
                }, 500);
                jQuery(_this).data("count", count);
            }
            checkDirection(jQuery(_this)[0]);//确定轮换方向，为自动轮换服务
        });
        jRight.mouseover(function(){
            jQuery(_this).data("isOver", true);
        });
        jRight.mouseout(function(){
            jQuery(_this).data("isOver", false);
        });
        
        jQuery(_this).data("count", count);
        jQuery(_this).data("maxcount", maxcount);
    },
    autoRunJCarousel: function(time){
		var _this = this;
        jQuery.appendTimer(function(){
			runJCarousel(_this);
		},time);
    }
});
function runJCarousel(o){
    if (!jQuery(o).data("isOver")) {
        var jBox = jQuery(o);
        var jContainerSub = jQuery(o).find("#jCarousel_container_sub");
        
        var count = jBox.data("count");
        var maxcount = jBox.data("maxcount");
        var itemLeg = jQuery(jQuery.makeArray(jBox.find(".jCarousel_item"))[0]).outerWidth(true);
        
        //确定轮换方向
        checkDirection(jBox[0]);
        
        if (jBox.data("direction") == "left" && Math.abs(count) < maxcount) {
			count += 1;
            jContainerSub.animate({
                left: -(itemLeg * count)
            }, 500);
            jBox.data("count", count);
        }else if(jBox.data("direction") == "right" && count > 0){
            count -= 1;
            jContainerSub.animate({
                left: -(itemLeg * count)
            }, 500);
            jBox.data("count", count);
        }
    }
}
function checkDirection(o){
    var jBox = jQuery(o);
    var count = jBox.data("count");
    var maxcount = jBox.data("maxcount");
    
    if (count == 0) {
        jBox.data("direction", "left");
    }else if (parseInt(count) == parseInt(maxcount)) {
        jBox.data("direction", "right");
    }
}
