﻿/*-----------------------------------------------------------------------------------------/
* JavaScript Framework Written For e-HongDou. Based On JQuery 1.3.2+.
/*----------------------------------------------------------------------------------------*/



/*-----------------------------------------------------------------------------------------/
* JQuery PlugIn - Slide Show(or, Switch Tab)
* JQuery滑动切换插件 ver 1.2.0
*
* defaultIndex 	- 默认选中的标签索引，从0开始
* titOnClassName	- 标签选中时的样式
* titCell			- 自定义标题标签，支持选择符
* mainCell			- 自定义标题标签，支持选择符
* delayTime		- 延迟触发时间. 当这个时间小于切换动画效果时间时, 动画将被禁用
* interTime		- 自动切换时间. 当这个时间大于0时, 标签将定时自动切换
* trigger			- 滑动触发方式. 默认为click, 可选择mouseover
* effect			- 切换动画. 默认不使用动画. 目前仅提供fade(淡出), slide(向下展开)两种
* omitLinks		- 是否忽略带链接标签，默认为否
* debug			- 调试模式. 默认关闭
/*----------------------------------------------------------------------------------------*/

jQuery.fn.switchTab = function(settings) {
    settings = jQuery.extend({//可配置参数
        defaultIndex: 0,
        titOnClassName: "on",
        titCell: "dt span",
        mainCell: "dd",
        delayTime: 250,
        interTime: 0,
        trigger: "click",
        effect: "",
        omitLinks: false,
        debug: ""
    },
	settings,
	{//插件信息
	    version: 120
	});

    this.each(function() {
        var st;
        var curTagIndex = -1;
        var obj = jQuery(this);
        if (settings.omitLinks && settings.titCell.substr(settings.titCell.length - 1, 1) == "a") {
            settings.titCell = settings.titCell + "[href^='#']";
        }
        var oTit = obj.find(settings.titCell);
        var oMain = obj.find(settings.mainCell);
        var cellCount = oTit.length; //可切换个数
        var ShowSTCon = function(oi) {
            if (oi != curTagIndex) {
                if (curTagIndex < 0) obj.find(settings.titCell + "." + settings.titOnClassName).removeClass(settings.titOnClassName);
                else oTit.eq(curTagIndex).removeClass(settings.titOnClassName);
                oMain.hide();
                obj.find(settings.titCell + ":eq(" + oi + ")").addClass(settings.titOnClassName);
                if (settings.delayTime < 250 && settings.effect != "") settings.effect = "";
                if (settings.effect == "fade") {
                    obj.find(settings.mainCell + ":eq(" + oi + ")").fadeIn({ queue: false, duration: 250 });
                } else if (settings.effect == "slide") {
                    obj.find(settings.mainCell + ":eq(" + oi + ")").slideDown({ queue: false, duration: 250 });
                } else {
                    obj.find(settings.mainCell + ":eq(" + oi + ")").show();
                }
                curTagIndex = oi;
            }
        };

        var ShowNext = function() {
            oTit.eq(curTagIndex).removeClass(settings.titOnClassName);
            oMain.hide();
            if (++curTagIndex >= cellCount) curTagIndex = 0;
            oTit.eq(curTagIndex).addClass(settings.titOnClassName);
			
			if (settings.effect == "fade") {
				obj.find(settings.mainCell + ":eq(" + curTagIndex + ")").fadeIn({ queue: false, duration: 250 });
			}else{
				oMain.eq(curTagIndex).show();
			}
            //ShowSTCon(curTagIndex);
        };

        //根据defaultIndex初始化
        ShowSTCon(settings.defaultIndex);

        //定时切换
        if (settings.interTime > 0) {
            var sInterval = setInterval(function() {
                ShowNext();
            }, settings.interTime);
        }

        //处理交互事件
        oTit.each(function(i, ele) {
            if (settings.trigger == "click") {
                jQuery(ele).click(function() {
                    ShowSTCon(i);
                    return false; //若有链接而选择了click模式, 链接不起作用
                });
            } else if (settings.delayTime > 0) {
                jQuery(ele).hover(function() {
                    st = setTimeout(function() {//延时触发
                        ShowSTCon(i);
                        st = null;
                    }, settings.delayTime);
                }, function() {
                    if (st != null) clearTimeout(st);
                });
            } else {
                jQuery(ele).mouseover(function() {
                    ShowSTCon(i);
                });
            }
        });
    });
    if (settings.debug != "") alert(settings[settings.debug]);
    return this;
};

//顶部商品图片滚动
function hPicScroll(wrapper, container, itemCell, btLeft, btRight){
	var obj = jQuery(container);
	var oWrapper = jQuery(wrapper);
	if(obj.width()>oWrapper.width()){
		jQuery(btRight).click(function(){
			var curA = obj.find(itemCell + ":first");
			curA.css("margin-left", "11px")
				.animate({marginLeft: "-" + curA.width() + "px"}, 500,
			function(){
				curA.appendTo(obj);
				curA.css("margin-left", "11px");
			});
		});
		jQuery(btLeft).click(function(){
			var curA = obj.find(itemCell + ":last");
			curA.prependTo(obj);
			curA.css("margin-left", "-" + curA.width() + "px")
				.animate({marginLeft: "11px"}, 500);
		});
	}
}


//垂直向上滚动
//wrapper, 容器选择符
//sItem, 滚动元素选择符
jQuery.fn.scrollUp = function(settings) {
    settings = jQuery.extend({
        delayTime: 4000,
        sItem: 'li'
    }, settings);

    var obj = jQuery(this);
    this.each(function() {
        var stepScroll = function() {
            var curItem = obj.find(settings.sItem + ":first");
            curItem.animate({
                marginTop: "-" + curItem.height()
            },
			300,
			"",
			function() {
			    curItem.appendTo(obj);
			    curItem.css("margin-top", "0px");
			});
        };
        setInterval(stepScroll, settings.delayTime);
    });
    return this;
};

//内容无缝滚动
function Marquee(marqueeBox, delaytime, direction, itemCell) {
    if (delaytime == undefined) delaytime = 50;
    if (direction == undefined) direction = "up";
    if (itemCell == undefined) itemCell = "ul";
    var oMarquee = jQuery(marqueeBox);
    var oMarqueeCon = oMarquee.find(itemCell);
    var oMarqueeCopy = oMarqueeCon.clone(true).insertAfter(oMarqueeCon);

    var ScrollUp = function() {
        if (oMarqueeCopy[0].offsetHeight - oMarquee[0].scrollTop <= 0) {
            oMarquee[0].scrollTop = 0;
        } else {
            oMarquee[0].scrollTop++;
        }
    }

    var ScrollLeft = function() {
        if (oMarqueeCopy[0].offsetWidth - oMarquee[0].scrollLeft <= 0) {
            oMarquee[0].scrollLeft = 0;
        } else {
            oMarquee[0].scrollLeft++;
        }
    }

    switch (direction) {
        case "left":
            var oScroll = setInterval(ScrollLeft, delaytime);
            oMarquee.hover(function() {
                clearInterval(oScroll);
            }, function() {
                oScroll = setInterval(ScrollLeft, delaytime);
            });
            break;
        case "up":
        default:
            var oScroll = setInterval(ScrollUp, delaytime);
            oMarquee.hover(function() {
                clearInterval(oScroll);
            }, function() {
                oScroll = setInterval(ScrollUp, delaytime);
            });
    }
}

//列高度统一
function HeightFix(column, column2, offset) {
    var oCol = jQuery(column);
    var oCol2 = jQuery(column2);
    if (offset == undefined) offset = 0;
    if (oCol.height() > oCol2.height()) {
        oCol2.height(oCol.height() - offset);
    } else {
        oCol.height(oCol2.height() - offset);
    }
}

//获得日期
function RunGLNL(obj) {
    var today = new Date();
    var d = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
    var DDDD = (today.getFullYear() < 100 ? today.getFullYear() + 1900 : today.getFullYear()) + "年" + (today.getMonth() + 1) + "月" + today.getDate() + "日";
    DDDD = DDDD + " " + d[today.getDay()];
    jQuery(obj).text(DDDD);
}

jQuery.fn.sliderShow = function(options) {
    var defaults = {
        prevId: 'prevBtn',
        prevText: '向上',
        nextId: 'nextBtn',
        nextText: '向下',
        controlsShow: true,
        controlsBefore: '',
        controlsAfter: '',
        controlsFade: true,
        firstId: 'firstBtn',
        firstText: 'First',
        firstShow: false,
        lastId: 'lastBtn',
        lastText: 'Last',
        lastShow: false,
        vertical: true,
        speed: 500,
        auto: false,
        pause: 2000,
        continuous: false,
        numeric: false,
        numericId: 'controls'
    };

    var options = jQuery.extend(defaults, options);

    this.each(function() {
        var pageIndex = 0;
        var obj = jQuery(this);
        var $nextBtn = jQuery("#" + options.nextId);
        var $prevBtn = jQuery("#" + options.prevId);
        $nextBtn.attr('title', options.nextText);
        $prevBtn.attr('title', options.prevText);

        function movePrev(event) {
            if (event.target == this) {
                MoveProductList("prev");
            }
        };

        function moveNext(event) {
            if (event.target = this) {
                MoveProductList("next");
            }
        };

        /*滚动比较栏*/
        function MoveProductList(dir) {
            var l = jQuery("li", obj).length;
            var ts = l - 1;
            var ot = pageIndex;
            switch (dir) {
                case "next":
                    pageIndex = (ot >= ts) ? ts : pageIndex + 1;
                    break;
                case "prev":
                    pageIndex = (pageIndex <= 0) ? 0 : pageIndex - 1;
                    break;
                default:
                    break;
            }

            var $productItems = jQuery("li", obj);
            var th = 0;
            if(options.vertical){
                for (var i = 0; i < pageIndex; i++) {
                    th += $productItems.eq(i).outerHeight(true);
                }
            }
            else{
                 for (var i = 0; i < pageIndex; i++) {
                    th += $productItems.eq(i).outerWidth(true);
                }
            }
            var p = th * -1;
            if (options.vertical) {
                jQuery("ul", obj).animate({
                    marginTop: p
                }, options.speed);
            }
            else {
                jQuery("ul", obj).animate({
                    marginLeft: p
                }, options.speed);
            }

            SetControlButton();
            return false;
        };

        /*设置滚动按钮*/
        function SetControlButton() {
            var ts = jQuery("li", obj).length - 1;
            $nextBtn.unbind("click");
            $prevBtn.unbind("click");
            if (pageIndex != ts) {
                $nextBtn.bind("click", moveNext);
            }
            if (pageIndex != 0) {
                $prevBtn.bind("click", movePrev);
            }
        };

        function ClearControlBind() {
            $nextBtn.unbind("click");
            $prevBtn.unbind("click");
        }

        ClearControlBind();
        SetControlButton();
    });
}

function asyncAccess(path,mesage) {
    jQuery.get(path, function(data) {
        alert(mesage);
    });
}
