<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/**
 * Last Update:2012-12-20  zhu
 */
// æ–°å¢žå­—ç¬¦ä¸²è§£æžæ–¹æ³•
if (!String.prototype.transHtmlAttribute) {
    String.prototype.transHtmlAttribute = function() {
        var a = this;
        var tmp = document.createElement("textarea");
        tmp.innerHTML = a;
        a = tmp.value;
        return a;
    }
}



ec.pkg("ec.account");
ec.load("jquery.autocomplete", {
    loadType: "lazy",
    callback: function() {
        $("#search-kw").autocomplete({
            serviceUrl: "/search_keywords",
            minChars: 1,
            maxHeight: 400,
            deferRequestBy: 100 // miliseconds
        });
    }
});

ec.load("ec.box");
ec.load("ec.XSSUtils");

// å®šä¹‰ç”¨æˆ·ä¿¡æ¯é¡µé¢å˜é‡
ec.account.customerInfo = function() {
    this.zmPoint = null; // é»˜è®¤èŠéº»åˆ†
    this.empiricalValue = null; // ç»éªŒå€¼

};

var g_pointBlance = 0; // ç§¯åˆ†
var g_couponCount = 0; // ä¼˜æƒ&nbsp;åˆ¸æ•°é‡
var g_balanceAmount = 0; // ä»£é‡‘åˆ¸ä½™é¢
var g_newMsgCount = 0; // ç«™å†…ä¿¡æ•°é‡
var g_totalPoint = 0; // ç»éªŒå€¼

var minCartNum = 0;

window.gid = function(id) {
    return document.getElementById(id);
}

// æ˜¯å¦ç™»å½•
ec.account.isLogin = function() {
    ec.account.id = ec.util.cookie.get("uid");
    ec.account.loginName = ec.util.cookie.get("ac_loNa");
    return ec.account.id &amp;&amp; ec.account.loginName;
};

//åŒæ­¥UPä¿¡æ¯ï¼Œæ›´æ–°session
ec.account.syncCustomSession = function(callback) {
    new ec.ajax().get({
        async: false, //ä½¿ç”¨åŒæ­¥çš„Ajaxè¯·æ±‚
        url: "/account/syncEmailAndMobile.json",
        dataType: "json",
        timeout: 10000,
        successFunction: function(json) {
            if (callback &amp;&amp; callback != undefined) {
                callback(json);
            }
            return;
        },
        timeoutFunction: function() {
            return;
        },
        errorFunction: function() {
            return;
        }
    });
};

// è°ƒç”¨accountå­æ¨¡å—èŽ·å–ç”¨æˆ·ç™»å½•ä¿¡æ¯
ec.account.getStatus = function(callback) {
    $.ajax({
        url: domainAccount + "/status.json?t=" +
            new Date().getTime(),
        dataType: "json",
        timeout: 10000,
        jsonop: "callback",
        type: "post",
        success: function(result) {
            if (result &amp;&amp; result.id &gt; 0) {
                ec.account.id = result.id;
                ec.account.uid = result.uid;
                ec.account.name = result.name;
                ec.account.nickName = result.nickName;
                ec.account.displayName = result.displayName;
                ec.account.loginName = result.loginName;
                ec.account.email = result.email;
                ec.account.mobile = result.mobile;
                ec.account.isQueue = result.isQueue;
                ec.account.custGrade = result.custGrade;
                ec.account.custPrivilege = result.custPrivilege;
                ec.account.custPoint = result.custPoint;
                ec.account.userState = result.userState;
                ec.account.isAuthCust = result.isAuthCust;


                // åˆ¤æ–­ç”¨æˆ·æ˜¯å¦é¦–æ¬¡ç™»å½•ï¼Œå¦‚æžœé¦–æ¬¡ç™»å½•éœ€è¦è§¦å‘ç”¨æˆ·ç™»å½•ä¸šåŠ¡æ“ä½œ
                var isFirst = ec.util.cookie.get("ifl_v");
                if (isFirst == "1") {
                    $.ajax({
                        url: "/account/load",
                        type: "POST"
                    });
                }
            }
            callback();
        }
    });
};

// é€šè¿‡account/statusèŽ·å¾—ç™»å½•ä¿¡æ¯
ec.account.getAccountStatus = function(userId, callback, isLazy) {
    if (userId) {
        if (isLazy) {
            ec.load({
                url: domainMain + "/account/status?" + (new Date()).getTime(),
                type: "js",
                onload: callback
            });
        } else {
            ec.load({
                url: domainMain + "/account/status?" + (new Date()).getTime(),
                type: "js",
                loadType: "lazy",
                onload: callback
            });
        }
    }
};

// ç™»å½•ä¿¡æ¯å–cookieçš„å€¼
ec.account.getLoginInfo = function(callback, isLazy) {
    var loginInfo = ec.util.cookie.get("ac_li");
    var userId = ec.util.cookie.get("uid");
    var isValCas = ec.util.cookie.get("isValCas");

    try {
        if (userId &amp;&amp; isValCas &amp;&amp; "false" == isValCas) {
            ec.account.id = ec.util.cookie.get("uid");
            ec.account.uid = ec.util.cookie.get("uid");
            ec.account.name = ec.util.cookie.get("user");
            ec.account.nickName = ec.util.cookie.get("name");
            ec.account.displayName = ec.util.cookie.get("displayName");
            ec.account.loginName = ec.util.cookie.get("user");
            ec.account.isValCas = "false";

            // åˆ¤æ–­ç”¨æˆ·æ˜¯å¦é¦–æ¬¡ç™»å½•ï¼Œå¦‚æžœé¦–æ¬¡ç™»å½•éœ€è¦è§¦å‘ç”¨æˆ·ç™»å½•ä¸šåŠ¡æ“ä½œ
            $.ajax({
                url: "/account/load?uid=" + userId,
                async: false,
                type: "POST"
            });
            ec.account.getAccountStatus(userId, callback, isLazy);
            // é‡æ–°å–cookieï¼Œåˆ¤æ–­æ˜¯å¦å·²è¿›è¡ŒCASéªŒè¯æˆåŠŸ
            ec.account.isValCas = ec.util.cookie.get("isValCas");
            callback();
            return;
        }
        if (loginInfo &amp;&amp; userId) {
            ec.account.id = ec.util.cookie.get("uid");
            ec.account.uid = ec.util.cookie.get("uid");
            ec.account.name = ec.util.cookie.get("user");
            ec.account.nickName = ec.util.cookie.get("name");
            ec.account.displayName = ec.util.cookie.get("displayName");
            ec.account.loginName = ec.util.cookie.get("ac_loNa");
            ec.account.email = ec.util.cookie.get("ac_lel");
            ec.account.mobile = ec.util.cookie.get("ac_lmi");
            ec.account.isQueue = ec.util.cookie.get("ac_liq");
            ec.account.custGrade = ec.util.cookie.get("ac_lgc");
            ec.account.custPrivilege = ec.util.cookie.get("ac_cp");
            ec.account.custPoint = ec.util.cookie.get("ac_ltp");
            ec.account.userState = ec.util.cookie.get("ac_lus");

            callback();
            return;
        }
    } catch (e) {
        // do nothing
    }

    ec.account.getAccountStatus(userId, callback, isLazy);
};

// è¥é”€ä¿¡æ¯ç¡®è®¤æäº¤
ec.account.confirmSaleConfig = function() {
    // æ˜¯å¦å‹¾é€‰äº†ç¡®è®¤æŒ‰é’®
    var flag = $("#checkSaleConfig").attr('checked') ? "1" : "0";
    // æäº¤å®šåˆ¶ç»“æžœ
    new ec.ajax().get({
        url: "/saleinfo/setSaleInfoRcvCfg.json?send_msg=" + flag + "&amp;t=" + new Date().getTime(),
        async: true, // ä½¿ç”¨å¼‚æ­¥çš„Ajaxè¯·æ±‚
        timeout: 10000,
        successFunction: function(json) {
            if (!json.success) {
                return;
            }
            // æ¸…é™¤é¦–æ¬¡ç™»å½•æ&nbsp;‡è®°
            ec.util.cookie.set("isFirstLogin", "0", { domain: "vmall.com", path: "/" });
            ec.redirectTo(json.href);

        },
        timeoutFunction: function() {
            return;
        },
        errorFunction: function() {
            return;
        }
    });
}

// å±•ç¤ºå®šåˆ¶å¼¹å‡ºçª—å£
ec.account.displaySaleConfig = function() {
    if (!ec.account.isLogin()) {
        return false;
    }
    if (window.location.pathname !== "/" &amp;&amp; window.location.pathname !== "/index.html") {
        return false;
    }

    // æ˜¯å¦é¦–æ¬¡ç™»å½•
    var isFirstLogin = ec.util.cookie.get("isFirstLogin");
    // é¦–æ¬¡ç™»å½•åˆ™å¼¹å‡ºçª—å£
    if (isFirstLogin &amp;&amp; isFirstLogin == "1") {
        var html = '';
        html += '&lt;div class="box-prompt-success-area"&gt;';
        html += '  &lt;div class="h"&gt;';
        html += '    &lt;img src="' + imagePath + '/echannel/sprites/sprites33.png" alt=""&gt;';
        html += '  &lt;/div&gt;';
        html += '  &lt;div class="b clearfix"&gt;';
        html += '    &lt;input id="checkSaleConfig" type="checkbox" checked="checked"&gt;';
        html += '    &lt;p&gt;åŒæ„å•†åŸŽåœ¨æˆ‘ç™»å½•æ—¶æ”¶é›†å¹¶å…³è”ä¸åŒç‰ˆæœ¬ä¿¡æ¯ï¼Œå¹¶é€šè¿‡PUSHã€çŸ­ä¿¡ã€é‚®ä»¶ã€ç«™å†…ä¿¡ç­‰ç»™æˆ‘æŽ¨é€äº§å“ã€æœåŠ¡ã€ä¼˜æƒ&nbsp;æ´»åŠ¨ç­‰ä¿¡æ¯ã€‚&lt;a href="https://sale.vmall.com/notification.html" target="_blank"&gt;æŸ¥çœ‹è¯¦æƒ…&lt;/a&gt;&lt;/p&gt;';
        html += '  &lt;/div&gt;';
        html += '&lt;/div&gt;';
        html += '&lt;div class="box-button"&gt;';
        html += '  &lt;a onclick="ec.account.confirmSaleConfig()" class="box-cancel"&gt;&lt;span&gt;ç¡®å®š&lt;/span&gt;&lt;/a&gt;';
        html += '&lt;/div&gt;';
        var box = new ec.box(html, {
            boxid: "ec_sale_config",
            boxclass: "ol_box_4",
            title: 'æ¬¢è¿Žæ¥åˆ°åŽä¸ºå•†åŸŽ',
            remember: false,
            showButton: false
        });
        box.open();
    }
}

//èŽ·å–èŠéº»ä¿¡ç”¨ä¿¡æ¯
ec.account.getZMInfo = function() {
    $.ajax({
        url: domainUc + '/zm/queryZM.json',
        dataType: 'jsonp',
        timeout: 10000,
        timeoutFunction: function() {
            // alert(timeOutInfo);
        },
        success: function(json) {
            if (json.resultCode == '200' &amp;&amp; json.userZMInfoVO) {
                if (json.userZMInfoVO.certifyStatus == 1) {
                    $('#zhimaPoint').html(json.userZMInfoVO.creditScore);
                    ec.account.customerInfo.zmPoint = json.userZMInfoVO.creditScore;
                }
            }
        }
    });
};

ec.account.showEnterpriseUserNav = function() {
    // ä¼˜å…ˆå–Cookieä¸­çš„ä¼ä¸šç”¨æˆ·æ&nbsp;‡è®°
    var isEnterpriseUser = ec.util.cookie.get("isEnterpriseUser");
    if (isEnterpriseUser &amp;&amp; 'false' !== isEnterpriseUser) {
        $("#preferential").html('&lt;a href="' + domainMain + '/member/enterprise" rel="nofollow"&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/a&gt;').show();
        $("#li-enterprise-preferential").html('&lt;a href="' + domainMain + '/member/enterprise" onclick="pushHeaderMsg(\'ä¼˜æƒ&nbsp;å†…è´­\',\'' + domainMain + '/member/enterprise\')"&gt;&lt;span&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/span&gt;&lt;/a&gt;').show();
        $("#li-enterprise").html('&lt;a href="' + domainMain + '/member/enterprise"&gt;&lt;span&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/span&gt;&lt;/a&gt;').show();
    }
}

// èŽ·å–ç”¨æˆ·è´¦æˆ·åŸºæœ¬ä¿¡æ¯
ec.account.getAccountInfo = function(callback) {
    ec.account.showEnterpriseUserNav();
    $.ajax({
        url: domainMain + "/member/accountInfo.json",
        dataType: "json",
        timeout: 10000,
        timeoutFunction: function() {
            // alert(timeOutInfo);
        },
        success: function(json) {

            // [åŒåä¸€åŠ&nbsp;å›º]ä¸»ç«™totalInfoä¸šåŠ¡é€»è¾‘åˆå¹¶åˆ°accountInfoæŽ¥å£
            // ä¼˜æƒ&nbsp;å†…è´­èµ„æ&nbsp;¼
            // ec.util.cookie.set("userCenterFlag",false)
            // ec.util.cookie.set("enterpriseUserCookie",json.enterpriseUser);
            if (json &amp;&amp; json.enterpriseUser) {
                ec.util.cookie.set('isEnterpriseUser', 'true', { domain: 'vmall.com' });
                ec.account.showEnterpriseUserNav();
            }


            if (json &amp;&amp; !json.success &amp;&amp; json.code == 'login') {
                var e = {
                    domain: "vmall.com"
                };
                //æ¸…é™¤ç¼“å­˜
                ec.account.id = ec.util.cookie.set("uid", null, e);
                ec.account.loginName = ec.util.cookie.set("user", null, e);
                // topæœªç™»å½•
                $("#unlogin_status").show();
                $("#top_login").removeClass().addClass("header-toolbar hide");
                $("#top_unlogin").removeClass().addClass("header-toolbar");

                // å®«æ&nbsp;¼æœªç™»å½•
                $("#gg_login").removeClass().addClass("i-mall-prompt clearfix hide");
                $("#gg_unlogin").removeClass().addClass("i-mall-prompt clearfix");

                //ç‰¹æƒæœªç™»å½•
                $("#privilege_is_login").removeClass().addClass("privilege-user privilege-user-gray");
                $(".privilege-user-login").show();
                $("#personal_privilege").hide();
                //ç»éªŒæ¡æ¸…ç©º
                $(".user-canvas").removeClass().addClass("user-canvas hide");
                $(".user-canvas").removeAttr("style");
                $("#privilege-user-img").find("img").attr('src', 'images/echannel/misc/img_not_logged_in.png');
                //ç§¯åˆ†ã€ä¼˜æƒ&nbsp;åˆ¸ã€ä»£é‡‘åˆ¸ã€
                $("#balanceicon_privilege").html("--");
                $("#couponicon_privilege").html("--");
                $("#balanceAmount_privilege").html("--");
                //è´­ç‰©è½¦å½’é›¶
                ec.minicart.setNum(0);

                //ä¼ä¸šè´­ç™»å½•
                $(".business-user-info").hide();
                $(".business-user-bottom").find(".business-user-num").hide();
                $(".business-user").addClass("business-user-gray");
                $("#userImgID").find("img").attr('src', '/images/echannel/misc/img88_black.jpg');
                $("#loginUserInfoId").show();
                $(".business-user-bottom").find(".business-user-explain").show();

                return;
            }
            callback(json);
            getPointBalance(); // èŽ·å–ç§¯åˆ†
            ec.account.getBalanceAmount(); // èŽ·å–ä»£é‡‘åˆ¸ä½™é¢
            getPetalNumber() //èŽ·å–èŠ±ç“£
        }
    });
};

//æ–°å¢žqueryEnterpriseFlag.json å•ç‹¬æŸ¥è¯¢å†…è´­æ&nbsp;‡å¿— å­˜è¿›cookie
ec.account.queryEnterpriseFlag = function() {
    var enterpriseUserCookie = ec.util.cookie.get("enterpriseUserCookie");
    if (null == enterpriseUserCookie || enterpriseUserCookie == "") {
        $.ajax({
            url: domainMain + "/member/queryEnterpriseFlag.json",
            dataType: "json",
            timeout: 10000,
            timeoutFunction: function() {
                // alert(timeOutInfo);
            },
            success: function(json) {
                if (json.enterpriseUser) { //å†…è´­æ&nbsp;‡è¯†  æ˜¾ç¤ºæ‰€æœ‰å†…è´­å…¥å£
                    $("#preferential").html('&lt;a href="' + domainMain + '/member/enterprise" rel="nofollow"&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/a&gt;').show();
                    $("#li-enterprise-preferential").html('&lt;a href="' + domainMain + '/member/enterprise"&gt;&lt;span&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/span&gt;&lt;/a&gt;').show();
                    $("#li-enterprise").html('&lt;a href="' + domainMain + '/member/enterprise"&gt;&lt;span&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/span&gt;&lt;/a&gt;').show();
                } else { //ä¸æ˜¯å†…è´­ç”¨æˆ· æˆ–è€… æœªç™»å½•çš„æƒ…å†µä¸‹ åŽ»æŽ‰ å†…è´­å…¥å£
                    $("#preferential").html('');
                    $("#li-enterprise-preferential").html('');
                    $("#li-enterprise").html('');
                }
            },
            error: function() {
                $("#preferential").html('');
                $("#li-enterprise-preferential").html('');
                $("#li-enterprise").html('');
            }
        })
    } else {
        if ("true" == enterpriseUserCookie) {
            $("#preferential").html('&lt;a href="' + domainMain + '/member/enterprise" rel="nofollow"&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/a&gt;').show();
            $("#li-enterprise-preferential").html('&lt;a href="' + domainMain + '/member/enterprise"&gt;&lt;span&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/span&gt;&lt;/a&gt;').show();
            $("#li-enterprise").html('&lt;a href="' + domainMain + '/member/enterprise"&gt;&lt;span&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/span&gt;&lt;/a&gt;').show();
        }
        if ("false" == enterpriseUserCookie) {
            $("#preferential").html('');
            $("#li-enterprise-preferential").html('');
            $("#li-enterprise").html('');
        }
    }
};

// æ˜¾ç¤ºç”¨æˆ·è´¦æˆ·ä¿¡æ¯
ec.account.showCustoemrInfo = function(json) {
    ec.util.cookie.set("vmallMyCenterMsg", json.newMsgCount)
        // ç”¨æˆ·ä¼˜æƒ&nbsp;åˆ¸æ•°é‡
    if (parseInt(json.couponCount) &gt;= 0) {
        g_couponCount = json.couponCount;
        $('#top-couponCount').html(json.couponCount);
    }
    // ç”¨æˆ·æ–°æ¶ˆæ¯æ•°é‡
    if (json.newMsgCount) {
        g_newMsgCount = json.newMsgCount;
        $('#top-newMsgCount').html(json.newMsgCount || 0);
        //æˆ‘çš„å•†åŸŽå·¦è¾¹å¯¼èˆª
        if (json.newMsgCount &gt; 0) {
            $("#li-msg em").text(json.newMsgCount);
        }
    }
    // å±•ç¤ºç”¨æˆ·ä¿¡æ¯
    if (json.customerInfo) {
        var customerInfo = json.customerInfo;

        if (customerInfo.headPictureURL) {
            $('#customerPic').attr('src', customerInfo.headPictureURL.transHtmlAttribute());
            $('#gg_customerPic').attr('src', customerInfo.headPictureURL.transHtmlAttribute());
        } else { //å·²ç™»å½•æƒ…å†µä¸‹ï¼Œæ²¡è®¾ç½®å¤´åƒï¼Œä½¿ç”¨å·²ç™»å½•çš„é»˜è®¤ç”¨æˆ·å¤´åƒ
            var imgpath = $('#customerPic').attr('imgpath');
            $('#customerPic').attr('src', imgpath + '/echannel/misc/img_logged_in.png');
            $('#gg_customerPic').attr('src', imgpath + '/echannel/misc/img_logged_in.png');
        }

        if (customerInfo.totalPoint) {
            $('#empiricalValue').html(customerInfo.totalPoint);
            // ç»éªŒå€¼é¡µé¢å¯¹è±¡ç¼“å­˜èµ·æ¥
            ec.account.customerInfo.empiricalValue = customerInfo.totalPoint;
            g_totalPoint = customerInfo.totalPoint;

        }
        if (customerInfo.mobileStatus &amp;&amp; (customerInfo.mobileStatus == "1")) {
            $('#validateMobile').html("å·²éªŒè¯æ‰‹æœº").removeClass("link-non-validated").addClass("link-validated");
        }
        if (customerInfo.emailStatus &amp;&amp; (customerInfo.emailStatus == "1")) {
            $('#validateMail').html("å·²éªŒè¯é‚®ç®±").removeClass("link-non-validated").addClass("link-validated");
        }
        if (customerInfo.isAuthentication &amp;&amp; (customerInfo.isAuthentication == "1")) {
            $('#authentication_y').show();
            $('#authentication_n').hide();
        } else {
            $('#authentication_n').show();
            $('#authentication_y').hide();
        }
    }

    // æ˜¾ç¤ºç»éªŒå€¼è¿›åº¦æ¡
    if (json.gradeConfig) {
        //æ›´é«˜ä¸€çº§åˆ«ç»éªŒå€¼é—¨æ§›(ç»éªŒå€¼ä¸Šé™)
        var max = json.gradeConfig.maxScores;
        //æœ¬çº§åˆ«ç»éªŒå€¼é—¨æ§›(ç»éªŒå€¼ä¸‹é™)
        var min = json.gradeConfig.minScores;
        var interval = max - min;

        //ç”¨æˆ·ç»éªŒå€¼
        var userScores = g_totalPoint;

        var cha = userScores - min;
        if (isNaN(interval)) {
            interval = 50000;
        }
        if (cha &gt; 50000) {
            cha = 50000;
        }

        var resultNum = (cha / interval) * 100;

        if (isNaN(resultNum)) {
            resultNum = 0;
            userScores = 0;
        }
        if (resultNum &lt;= 0) {
            resultNum = 0;
        } else {
            resultNum = Math.round(resultNum);
        }

        var code = json.gradeConfig.code;

        $('#gg_jyz').attr("style", "width: " + resultNum + "%");
        //é¦–é¡µç»éªŒå€¼è¿›åº¦æ¡ä¿®æ”¹
        $('#canvas-index').attr("style", "width: " + resultNum + "%");

        var nextGradeName = json.gradeConfig.nextGradeName;
        if (nextGradeName == 'maxlevel') {
            max = 100000;
        }

        // ç§¯åˆ†å’Œç§¯åˆ†çº§åˆ«å¯¹åº”å…³ç³»
        // V0------V1------V2------V3------V4------V5
        // 00-----100-----1000----5000----20000---50000+
        (function() {
            ec.account.privilege_updateProgress(max, min, userScores, code);
            ec.account.privilege_updateProgressIndex(code);
        })();
    }

};

/**
 * @description ç‰¹æ®Šå­—ç¬¦è½¬ä¹‰
 * @param str
 *            ç›®æ&nbsp;‡å­—ç¬¦ä¸²
 * @return è½¬ä¹‰åŽçš„å­—ç¬¦ä¸²
 * @demo htmlEncode('id=1 &amp; age&lt;25') ==&gt; "id=1&amp;nbsp;&amp;amp;&amp;nbsp;age&amp;lt;25"
 */
function htmlEncode(string) {
    var entityMap = {
        "&amp;": "&amp;amp;",
        "&lt;": "&amp;lt;",
        "&gt;": "&amp;gt;",
        '"': '&amp;quot;',
        "'": '&amp;#39;',
        "/": '&amp;#x2F;'
    };
    return String(string).replace(/[&amp;&lt;&gt;"'\/]/g, function(s) {
        return entityMap[s];
    });
}
/**
 * èŽ·å–èŠ±ç“£æ•°é‡
 */
function getPetalNumber() {
    //å¼‚æ­¥è¯·æ±‚ èŠ±ç“£æ•°é‡å’ŒèŠ±ç“£ä½™é¢
    new ec.ajax().get({
        url: "/member/petalValid.json",
        timeout: 10000,
        timeoutFunction: function() {
            // alert(timeOutInfo);
        },
        successFunction: function(json) {
            if (!json.success) {
                $('#petalicon_myCenter').html(0);
            } else {
                $('#petalicon_myCenter').html('&lt;a href="/member/petal?t=' + new Date().getTime() + '" target="_blank"&gt;' + json.petalNumber + '&lt;/a&gt;');
            }
        }
    });
}

/**
 * èŽ·å–ä»£é‡‘åˆ¸ä½™é¢
 */
ec.account.getBalanceAmount = function() {
    var g_balanceAmount;
    var data = {
        portal: 1,
        lang: 'zh-CN',
        country: 'CN'
    };

    utils.ajaxOpenAPI({
        type: 'POST',
        url: '/mcp/pay/queryBalanceAmount',
        data: data,
        success: function(json) {
            if (json.success) {
                if (json.balanceAmount != null) {
                    // å…¨å±€èµ‹å€¼
                    g_balanceAmount = (parseFloat(json.balanceAmount))
                        .toFixed(2);
                } else {
                    g_balanceAmount = 0;
                }
                $('#balanceAmount').html(g_balanceAmount);
                //ç»™ç‰¹æƒé¡µä»£é‡‘åˆ¸èµ‹å€¼
                if (parseInt(g_balanceAmount) &gt; parseInt(999)) {
                    $("#balanceAmount_privilege").empty().html('&lt;a href="/member/balance?t=' + new Date().getTime() + '" target="_blank"&gt;' + 999 + '+&lt;/a&gt;');
                } else {
                    $("#balanceAmount_privilege").empty().html('&lt;a href="/member/balance?t=' + new Date().getTime() + '" target="_blank"&gt;' + g_balanceAmount + '&lt;/a&gt;');
                }
                //æˆ‘çš„å•†åŸŽä»£é‡‘åˆ¸èµ‹å€¼
                $('#balanceAmount_myCenter').html('&lt;a href="/member/balance?t=' + new Date().getTime() + '" target="_blank"&gt;' + g_balanceAmount + '&lt;/a&gt;');
                $("#balanceAmount_myCenter").removeClass("p-price-no");
            }
        }
    });
};

ec.ready(function() {
    // æ˜¾ç¤ºç™»å½•ä¿¡æ¯
    var _showLoginTips = function () {
        if (ec.account.isLogin()) {

            // å·²ç™»å½•
            // var loginName = ec.autoEncodeAttr(ec.account.displayName) || ec.autoEncodeAttr(ec.account.nickName) || ec.autoEncodeAttr(ec.account.name) || ec.account.loginName;
            var loginName = (ec.account.displayName || '').transHtmlAttribute() || (ec.account.nickName || '').transHtmlAttribute() || (ec.account.loginName || '').transHtmlAttribute() || ec.account.name;
            $("#customer_name").html(loginName);

            if ($('#cart_unlogin_info')[0]) {
                $('#cart_unlogin_info p').html('&lt;a href="/member?t=' + new Date().getTime() + '"&gt;' + loginName + '&lt;/a&gt;');
            }
            $("#login_status,#cart_login_info").show();
            $("#up_user_center").show();
            $("#unlogin_status,#cust_login_info").hide();

            $("#loginName").html('&lt;a href="/member?t=' + new Date().getTime() + '"&gt;' + loginName + '&lt;/a&gt;');
            $("#up_loginName").html(loginName);
            $("#up_loginName_info").html(loginName);
            // vipä¿¡æ¯æ˜¾ç¤º
            ec.account.showVipInfo();

            // topç™»å½•å¤„ç†
            $("#top_login").removeClass().addClass("header-toolbar");
            $("#top_loginName").html(loginName);

            $("#top_unlogin").removeClass().addClass("header-toolbar hide");

            // å®«æ&nbsp;¼ç™»å½•å¤„ç†
            $("#gg_loginName").html(loginName);
            $("#gg_login").removeClass().addClass("i-mall-prompt clearfix");
            $("#gg_unlogin").removeClass().addClass("i-mall-prompt clearfix hide");

            // æ˜¯å¦å®žåè®¤è¯å¤„ç†
            var isAuthCust = ec.util.cookie.get("isAuthCust");
            if ("true" == isAuthCust) {
                $("#authentication_y").show();
                $("#authentication_n").hide();
            } else {
                $("#authentication_n").show();
                $("#authentication_y").hide();
            }

            // å½©è´ç™»å½•å¤„ç†
            var caibeiShowMsg = ec.util.cookie.get("caibeiShowMsg"),
                caibeiHeadShow = ec.util.cookie.get("caibeiHeadShow"),
                caibeiJifenUrl = ec.util.cookie.get("caibeiJifenUrl");
            if (caibeiShowMsg != undefined &amp;&amp; caibeiShowMsg != null &amp;&amp; caibeiShowMsg.length &gt; 0) {
                $("#HeadShow").html(caibeiHeadShow);

                if (caibeiJifenUrl != undefined &amp;&amp; caibeiJifenUrl != null &amp;&amp; caibeiJifenUrl.length &gt; 0) {
                    caibeiShowMsg = caibeiShowMsg + "&lt;b&gt;|&lt;/b&gt;&lt;a href='" + caibeiJifenUrl + "' title='æˆ‘çš„å½©è´ç§¯åˆ†' target='_blank'&gt;æˆ‘çš„å½©è´ç§¯åˆ†&lt;/a&gt;"
                }

                $("#ShowMsg").html(caibeiShowMsg);
                $("#caibeiMsg").show();
            }

            $("#newPointlogin_status").show();
            //                ec.account.queryEnterpriseFlag();//æŸ¥è¯¢æ˜¯å¦æœ‰ ä¼˜æƒ&nbsp;å†…è´­ æƒé™  é¡¶éƒ¨ä¼˜æƒ&nbsp;å†…è´­èœå•
            // èŽ·å–ç§¯åˆ†ä¿¡æ¯
            enterpriseUserCookieTemp = ec.util.cookie.get("isEnterpriseUser");
            if ("true" == enterpriseUserCookieTemp) {
                $("#preferential").html('&lt;a href="' + domainMain + '/member/enterprise" rel="nofollow"&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/a&gt;').show();
                $("#li-enterprise-preferential").html('&lt;a href="' + domainMain + '/member/enterprise" onclick = "pushHeaderMsg(\'ä¼˜æƒ&nbsp;å†…è´­\',\'' + domainMain + '/member/enterprise\')"&gt;&lt;span&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/span&gt;&lt;/a&gt;').show();
                $("#li-enterprise").html('&lt;a href="' + domainMain + '/member/enterprise"&gt;&lt;span&gt;ä¼˜æƒ&nbsp;å†…è´­&lt;/span&gt;&lt;/a&gt;').show();
            }
            userCenterFlagTemp = ec.util.cookie.get("userCenterFlag");
            if (userCenterFlagTemp != null &amp;&amp; userCenterFlagTemp != "") {
                if (userCenterFlagTemp.length == 4) { //true ä»£è¡¨ç‚¹å‡»è¿‡è´¦å·ä¸­å¿ƒæŒ‰é’®  æ­¤å¤„ç”¨ true åˆ¤æ–­æ—&nbsp;æ•ˆ
                    if (enterpriseUserCookieTemp.length &gt; 4) {
                        ec.account.getAccountInfo(ec.account.showCustoemrInfo);
                    }
                }
            }

            if (window.location.pathname &amp;&amp; (window.location.pathname == "/visitor/vistorConfirm")) {
                ec.redirectTo(domainMain);
            }
            // å½“å‰é¡µé¢æ˜¯å¦ä¸ºé¦–é¡µ
            if (window.location.pathname &amp;&amp; (window.location.pathname == "/" || window.location.pathname == "/index.html")) {
                ec.account.showEnterpriseUserNav();
            }
        } else {
            // å®«æ&nbsp;¼æœªç™»å½•
            $("#gg_login").removeClass().addClass("i-mall-prompt clearfix hide");
            $("#gg_unlogin").removeClass().addClass("i-mall-prompt clearfix");

            // topæœªç™»å½•
            $("#top_login").removeClass().addClass("header-toolbar hide");
            $("#top_unlogin").removeClass().addClass("header-toolbar");
        }
    };


    var _upLogin = function(callback, visitorInfoTemp) {
        var visitorName = "";
        var funName = "callback" + new Date().getTime(),
            boxWidth;
        boxWidth = 500;
        if (ec.product.isSupportVisitorMode != undefined) {
            var visitorFlag = false;
            var skuInfo = ec.product.getSkuInfo(ec.product.getSku() || ec.product.defaultSku);
            var skuId = skuInfo.id;
            var sbomCode = skuInfo.code;
            if (ec.product.productSupportList != undefined &amp;&amp; ec.product.productSupportList != null) {
                for (var n = 0; n &lt; ec.product.productSupportList.length; n++) {
                    var visitorInfo = ec.product.productSupportList[n];
                    if (visitorInfo.sbomCode == sbomCode) {
                        var nowTime = ec.product.getSysDate();
                        var startTime = visitorInfo.startTime;
                        var endTime = visitorInfo.endTime;
                        if (startTime &lt;= nowTime &amp;&amp; endTime &gt;= nowTime) {
                            visitorFlag = true;
                        }
                    }
                }
            }
            if (ec.product.inventory.haveInventory(skuId) &amp;&amp; visitorFlag &amp;&amp; ec.product.isSupportVisitorMode == 1 &amp;&amp; ec.product.productType != 4 &amp;&amp; !rush.sbom.isRushProduct() &amp;&amp; !rush.sbom.isRushSbom(skuId)) {
                if (ec.product.isGift != 2 &amp;&amp; (!ec.product.isCover || ec.product.isCover == undefined) &amp;&amp; !ec.product.isComb) {
                    if (visitorInfoTemp == "visitorInfo") {
                        visitorName = '&lt;div class="visitor-login"&gt;&lt;a href="javascript:;" onclick="ec.product.orderNowByVisitor();" class="visitor-login-btn"&gt;å…ç™»å½•è´­ä¹°&lt;/a&gt;&lt;div class="visitor-login-explain"&gt;' +
                            '&lt;span&gt;æ¸©é¦¨æç¤ºï¼š&lt;/span&gt;å…ç™»å½•è´­ä¹°æ˜¯åŽä¸ºå•†åŸŽï¼ˆwww.vmall.comï¼‰æŽ¨å‡ºçš„å¿«æ·è´­ä¹°æ–¹å¼ï¼Œæš‚ä¸æ”¯æŒé¢†å–å’Œä½¿ç”¨ä¼˜æƒ&nbsp;åˆ¸ï¼Œä¸æ”¯æŒç´¯è®¡ç§¯åˆ†æˆ–ç»éªŒå€¼ç­‰ã€‚æŽ¨è&lt;a href="' + ec.product.casRegister + '"&gt;æ³¨å†Œ&lt;/a&gt;æˆä¸ºåŽä¸ºå•†åŸŽä¼šå‘˜ï¼ŒèŽ·å¾—ç›¸å…³è´­ä¹°æƒç›Šå’ŒæœåŠ¡ã€‚' +
                            '&lt;/div&gt;&lt;/div&gt;';
                        boxWidth = 1000;
                    }
                }
            }
        }
        //var thirdLoginFlag = ec.util.cookie.get("thirdLoginFlag");
        //var url = '/account/login?type=frame&amp;thirdLoginFlag='+thirdLoginFlag+'&amp;url='+encodeURIComponent(domainMain +"/account/upCallback.html?funName="+funName+"&amp;prePage="+encodeURIComponent(encodeURIComponent(window.location.href))),
        var url = '/account/login?type=frame&amp;url=' + encodeURIComponent(domainMain + "/account/upCallback.html?funName=" + funName + "&amp;prePage=" + encodeURIComponent(encodeURIComponent(window.location.href))),
            name = "up-iframe-" + (new Date()).getTime(),
            html = '&lt;div id="visitorRedirect" class="clearfix"&gt;' +
            '&lt;iframe id="iframeLogin" class="boxIframe fl" width="497" height="550" frameborder="0" name="' +
            name +
            '" src="about:blank" scrolling="no"&gt;&lt;/iframe&gt;' +
            '&lt;/div&gt;' +
            '&lt;div class="login-link"&gt;ç»§ç»­è®¿é—®å³ä»£è¡¨æ‚¨å·²åŒæ„&lt;a href="https://www.vmall.com/help/faq-778.html" target="_blank"&gt;åŽä¸ºå•†åŸŽæœåŠ¡åè®®&lt;/a&gt;å’Œ&lt;a href="https://www.vmall.com/help/faq-2635.html" target="_blank"&gt;åŽä¸ºéšç§æ”¿ç­–&lt;/a&gt;&lt;/div&gt;';
        var box = new ec.box(html, {
            boxid: "ec_login",
            title: " ",
            remember: false,
            width: boxWidth,
            height: 600,
            showButton: false,
            onclose: function(box) {
                try {
                    delete window[funName];
                } catch (e) {
                    window[funName] = null;
                }


                box.find("iframe").each(function() {
                    this.contentWindow.close(); // é¿å…iframeå†…å­˜æ³„æ¼
                    jQuery(this).remove(); // åˆ&nbsp;é™¤iframe
                });
            },
            onopen: function() {
                ec.redirectTo({ url: url, win: window[name] });
                $("#iframeLogin").load(function() {
                    try {
                        if (window[name] &amp;&amp; window[name].document.querySelectorAll('div.event-503-wrp').length &gt; 0) {
                            ec.redirectTo({ url: '/account/login-error.html', win: window[name] });
                        }
                    } catch (e) {}
                    if ($(".visitor-login").length == 0) {
                        $("#visitorRedirect").append(visitorName)
                    }
                });
            }
        }).open();

        window[funName] = function() {
            if (typeof isUseAccount != "undefined" &amp;&amp; isUseAccount == "true") {
                ec.account.getStatus(_showLoginTips);
            } else {

                ec.account.getLoginInfo(_showLoginTips, false);
                if (window.location.pathname == "/company") {
                    ec.redirectTo("/company");
                }
                ec.util.cookie.get("ifl_v");
            }

            callback();
            var e = {
                domain: "vmall.com"
            };
            ec.util.cookie.set("thirdLoginFlag", null, e);
            box.close();
            ec.account.displaySaleConfig();
        };

    };

    // å¼‚æ­¥ç™»å½•åŽè‡ªåŠ¨å›žè°ƒ
    ec.account.afterLogin = function(callback, visitorInfoTemp) {
        if (ec.account.isLogin()) {
            ec.account.getLoginInfo(_showLoginTips, false);
            callback();
        } else {
            $.ajax({
                url: "/account/check/loginInfo.json?" + Math.random(),
                dataType: "json",
                success: function(json) {
                    //1ä»£è¡¨ç™»å½•
                    if (json.loginFlag == "1") {
                        ec.account.getLoginInfo(_showLoginTips, false);
                        return;
                    } else {
                        //æœªç™»å½•
                        _upLogin(callback, visitorInfoTemp);
                    }
                },
                error: function(x) {
                    alert('ç³»ç»Ÿç¹å¿™ï¼Œè¯·ç¨åŽé‡è¯•');
                }
            });
        }
    };

    // å…¼å®¹ç°è‰²accountå­æ¨¡å—ä¸Šçº¿ï¼Œé€šè¿‡ä¸¤ä¸ªé…ç½®æ˜¯å¦ç›¸ç­‰æ¥åˆ¤æ–­æ˜¯å¦ç”¨æ–°çš„é€»è¾‘å¤„ç†
    if (typeof isUseAccount != "undefined" &amp;&amp; isUseAccount == "true") {
        ec.account.getStatus(_showLoginTips);
    } else {

        ec.account.getLoginInfo(_showLoginTips, true);

    }

    // _showLoginTips();
    // ec.ready(function(){
    // [åŒåä¸€åŠ&nbsp;å›º]ä¸»ç«™totalInfoä¸šåŠ¡é€»è¾‘åˆå¹¶åˆ°accountInfoæŽ¥å£
    // ec.base.getTotal();

    // [åŒåä¸€åŠ&nbsp;å›º]ä¸»ç«™è‹¥æ¸¸å®¢è´­ç‰©è½¦å•†å“æ•°é‡ä¸º0åˆ™ä¸è°ƒç”¨åˆå¹¶æŽ¥å£
    var cartId = ec.util.cookie.get("cartId");
    var cartAdded = ec.util.cookie.get("cartAdded");
    if (cartAdded &amp;&amp; cartAdded != cartId) {
        ec.util.cookie.set("cartAdded", null);
    }

    $("#login_status").on("mouseover mouseout", function(event) {
        if (event.type == "mouseover") {
            ec.account.getAccountInfo(ec.account.showCustoemrInfo);
        } else if (event.type == "mouseout") {

        }
    });
});

ec.account.showVipInfo = function() {
    // 1ä¸ºæ¿€æ´»ï¼Œ 0ä¸ºæœªæ¿€æ´»
    if (ec.account.userState &amp;&amp; ec.account.userState == "1") {
        $("#vip-inActive").hide();
        $("#vip-Active i").removeClass().addClass("icon-vip-level-" + ec.account.custGrade);
        $("#vip-Active").attr("title", "VMALL V" + ec.account.custGrade + "ä¼šå‘˜");
        $("#vip-Active").show();
        var html = [];
        html.push('&lt;em class="vip-state" id="vip-info"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;');
        html.push('&lt;a href="/member/point" title="VMALL V' + ec.account.custGrade + 'ä¼šå‘˜" id="vip-Active" &gt;&lt;i class="icon-vip-level-' + ec.account.custGrade + '"&gt;&lt;/i&gt;&lt;/a&gt;');
        html.push('&lt;/em&gt;');
        $("#cart_unlogin_info p").append(html.join(''));

        // æ–°ç‰ˆé¦–é¡µå¤´éƒ¨åŠå®«æ&nbsp;¼ç­‰çº§
        $("#vip-Active-top i").removeClass().addClass("icon-vip-level-" + ec.account.custGrade);
        $("#vip-Active-top").attr("title", "VMALL V" + ec.account.custGrade + "ä¼šå‘˜");

        $("#vip-Active-gg").removeClass().addClass("icon-vip-level-" + ec.account.custGrade);
        if (ec.account.custGrade == '0') {
            $("#oldPeople").hide();
            $("#newPeople").show();
        } else {
            $("#oldPeople").show();
            $("#newPeople").hide();
        }

    } else if (ec.account.isValCas &amp;&amp; "false" == ec.account.isValCas) {
        // å¦‚æžœæœªéªŒè¯CASï¼Œä¸æ˜¾ç¤ºä»»ä½•ä¼šå‘˜ç­‰çº§æ¶ˆæ¯
        $("#vip-inActive").hide();
        $("#vip-Active").hide();

        // æ–°ç‰ˆé¦–é¡µå¤´éƒ¨åŠå®«æ&nbsp;¼ç­‰çº§
        $("#vip-Active-top").removeClass().addClass("icon-vip-level-0");
        $("#vip-Active-gg").removeClass().addClass("icon-vip-level-0");
        $("#oldPeople").hide();
        $("#newPeople").show();
    } else {
        $("#cart_unlogin_info p").append('&amp;nbsp;&amp;nbsp;&lt;em class="vip-state"&gt;&lt;a class="link-noAct" href="/member/account" id="vip-inActive" title="è¯·å®Œå–„ä¸ªäººä¿¡æ¯ï¼Œå³åˆ»äº«å—ä¼šå‘˜ç‰¹æƒ"&gt;åŽ»æ¿€æ´»&lt;/a&gt;&lt;/em&gt;');
        $("#vip-inActive").show();
        $("#vip-Active").hide();

        // æ–°ç‰ˆé¦–é¡µå¤´éƒ¨åŠå®«æ&nbsp;¼ç­‰çº§
        $("#vip-Active-top").removeClass().addClass("icon-vip-level-0");
        $("#vip-Active-gg").removeClass().addClass("icon-vip-level-0");
        $("#oldPeople").hide();
        $("#newPeople").show();
    }
};

// å¾®åž‹è´­ç‰©è½¦
ec.pkg('ec.minicart');
ec.minicart.processCheck = function(cartInfo) {
    // 0 é™è´­ 1ç­‰äºŽé™è´­å€¼2 ä¸é™è´­
    var itemList = cartInfo.itemInfos;
    for (var i = 0; i &lt; itemList.length; i++) {
        var item = itemList[i];
        if (item.itemType == "P") {
            if (item.selected == "1") {
                itemList[i].checked = true;
            } else {
                itemList[i].checked = false;
            }
        } else {
            if (item.selected == "1") {
                itemList[i].checked = true;
            } else {
                itemList[i].checked = false;
            }
        }
    }

};

//å¥—é¤æ˜¯å¦å±•ç¤º
ec.minicart.bundls = function(cartInfo) {

    var itemList = cartInfo.itemInfos;
    for (var i = 0; i &lt; itemList.length; i++) {
        var item = itemList[i];
        //å…¼å®¹ä»æœ‰è€ç±»åž‹çš„å¥—é¤

        if (item.itemType == "B" || item.itemType == "P") {

            for (var j = 0; j &lt; item.subItems.length; j++) {

                if (item.subItems[j].itemType == "B" || item.subItems[j].itemType == "P") {
                    if (item.subItems[j].invalidCauseReason != 0) {
                        if (item.subItems[j].invalidCauseReason == 7) {
                            if (item.subItems[j].qty &gt; item.subItems[j].invalidCauseLeftValue) {
                                itemList[i].show = "false";
                                itemList[i].showP = "false";
                            } else {

                            }
                        } else {
                            itemList[i].show = "false";
                            itemList[i].showP = "false";

                        }
                        if (item.subItems[j].invalidCauseReason != 7 &amp;&amp; item.subItems[j].invalidCauseReason != 8) {
                            itemList[i].notbuyLimit = "true";
                        }

                    }
                }
            }
        }
        if (item.invalidCauseReason != 0) {
            if (item.invalidCauseReason == 7) {
                if (item.qty &gt; item.invalidCauseLeftValue) {
                    itemList[i].show = "false";
                } else {}
            } else {
                itemList[i].show = "false";
            }
        }
        if ((item.lost) || (item.numblimit)) {
            itemList[i].show = "false";
        }
        if ((item.lost)) {
            if (item.itemType == "P") {
                itemList[i].showP = "false";
            }
        }

    }

};



ec.minicart.limitnumber = function(item) {
    var limit = item.invalidCauseLeftValue;
    if (limit &lt; 0) limit = 1;
    if (limit == 0) {
        if (item.sbom.productLimit != 0 &amp;&amp; item.sbom.sbomLimit != 0) {
            return Math.min(item.sbom.productLimit, item.sbom.sbomLimit);
        } else if (item.sbom.productLimit != 0) {
            return item.sbom.productLimit;
        } else if (item.sbom.sbomLimit != 0) {
            return item.sbom.sbomLimit;
        } else {
            return 999;
        }
    }

    return limit;
};

//å¥—é¤åˆ¤æ–­é™è´­ï¼Œç½®ç°ï¼Œä¸å¯ç»“ç®—

ec.minicart.bundleNoBuy = function(cartInfo) {

    var itemList = cartInfo.itemInfos;
    for (var i = 0; i &lt; itemList.length; i++) {
        if (itemList[i].itemType != "B")

            var qty = itemList[i].qty;
        var qtylimit = [];
        var qtylose = [];
        var qtyJ = [];
        for (var j = 0; j &lt; itemList.length; j++) {
            if (itemList[j].itemId != itemList[i].itemId) {
                if (itemList[j].itemCode == itemList[i].itemCode) {
                    qty += itemList[j].qty;
                    qtylimit.push(j);

                } else {
                    if (itemList[j].subItems.length &gt; 0) {
                        for (var k = 0; k &lt; itemList[j].subItems.length; k++) {
                            if (itemList[j].subItems[k].itemType == "P" &amp;&amp; (itemList[j].subItems[k].itemCode == itemList[i].itemCode)) {
                                qty += itemList[j].subItems[k].qty;
                                qtylose.push(j);
                            }
                            if (itemList[j].subItems[k].itemType == "J" &amp;&amp; (itemList[j].subItems[k].itemCode == itemList[i].itemCode)) {
                                qty += itemList[j].subItems[k].qty;
                                qtyJ.push({ home: j, sub: k });
                            }
                        };


                    }
                }

            }
        }
        if (itemList[i].itemType != "B") {
            var homelimit = ec.minicart.limitnumber(itemList[i]);
            if (qty &gt; homelimit) {
                itemList[i].numblimit = true;
                if (qtylimit.length &gt; 0) {
                    for (var l = 0; l &lt; qtylimit.length; l++) {
                        itemList[qtylimit[l]].numblimit = true;
                    };
                }
                if (qtylose.length &gt; 0) {
                    for (var m = 0; m &lt; qtylose.length; m++) {
                        itemList[qtylose[m]].lost = true;
                    };
                }
                if (qtyJ.length &gt; 0) {
                    for (var n = 0; n &lt; qtyJ.length; n++) {
                        itemList[qtyJ[n].home].subItems[qtyJ[n].sub].Jlost = true;
                    };


                }
            }
        }
        //å¥—é¤æ—¶ å­å¥—é¤åŽ»åˆ¤æ–­
        if (itemList[i].subItems.length &gt; 0) {
            for (var o = 0; o &lt; itemList[i].subItems.length; o++) {




                if (itemList[i].subItems[o].itemType == "P" || itemList[i].subItems[o].itemType == "B") {

                    var bundlelimit = ec.minicart.limitnumber(itemList[i].subItems[o]);
                    var bqty = itemList[i].qty;
                    var bqtylimit = [];
                    var bqtylose = [];
                    var bqtyJ = [];
                    for (var p = 0; p &lt; itemList.length; p++) {

                        if ((itemList[i].itemId != itemList[p].itemId)) {
                            if ((itemList[p].itemCode) == itemList[i].subItems[o].itemCode) {
                                bqty += itemList[p].qty;
                                bqtylimit.push(p);
                            } else {
                                if (itemList[p].subItems.length &gt; 0) {
                                    for (var q = 0; q &lt; itemList[p].subItems.length; q++) {
                                        if (itemList[p].subItems[q].itemType == "P" &amp;&amp; (itemList[p].subItems[q].itemCode == itemList[i].subItems[o].itemCode)) {
                                            bqty += itemList[p].subItems[q].qty;
                                            bqtylose.push(p);
                                        }

                                        if (itemList[p].subItems[q].itemType == "J" &amp;&amp; (itemList[p].subItems[q].itemCode == itemList[i].subItems[o].itemCode)) {
                                            bqty += itemList[p].subItems[q].qty;
                                            bqtyJ.push({ home: p, sub: q });
                                        }
                                    };
                                }
                            }
                        }
                    }
                    if (bqty &gt; bundlelimit) {
                        itemList[i].numblimit = true;
                        itemList[i].lost = true;
                        if (bqtylimit.length &gt; 0) {
                            for (var r = 0; r &lt; bqtylimit.length; r++) {
                                itemList[bqtylimit[r]].numblimit = true;
                            };
                        }
                        if (bqtylose.length &gt; 0) {
                            for (var s = 0; s &lt; bqtylose.length; s++) {
                                itemList[bqtylose[s]].lost = true;
                            };
                        }
                        if (bqtyJ.length &gt; 0) {
                            for (var t = 0; t &lt; bqtyJ.length; t++) {
                                itemList[bqtyJ[t].home].subItems[bqtyJ[t].sub].Jlost = true;
                            };
                        }
                    }
                };
            }
        }
        //å­å¥—é¤
    }
};


ec.minicart.photos = function(cartInfo) {

    var itemList = cartInfo.itemInfos;
    for (var i = 0; i &lt; itemList.length; i++) {
        var item = itemList[i];
        itemList[i].itemkd = item.itemId.replace(/\./g, "-");
        //å…¼å®¹ä»æœ‰è€ç±»åž‹çš„å¥—é¤
        if (item.itemType == "B") {

            itemList[i].photoName = item.subItems[0].sbom["photoName"];
            itemList[i].photoPath = item.subItems[0].sbom["photoPath"];
            itemList[i].photoId = item.subItems[0].sbom["productId"];
            itemList[i].skuId = item.subItems[0].skuId;

        } else {

            itemList[i].photoName = item.sbom["photoName"];
            itemList[i].photoPath = item.sbom["photoPath"];
            itemList[i].productId = item.sbom["productId"];
        }



    }
};

ec.minicart.setNum = function(num) {
    if ('undefined' === typeof(num)) {
        return false;
    }

    num = parseInt(num) || 0;
    $('#cart-total').html(num);
    if (num &gt; 99) num = '99+';
    $('#header-cart-total').html(num);
    if (num &lt; 1) {
        $('.j-hungBar .hungBar-cart span').html('').hide();
    } else {
        $('.j-hungBar .hungBar-cart span').html(num).show();
    }
}

ec.minicart.updateMiniCartNum = function() {
    ec.cart.getMicroCartTotalNumber(function(json) {
        if (json) ec.minicart.setNum(json.data);
    });
}


ec.minicart.readyContent = function() {
    ec.minicart.updateMiniCartNum();
}


//è¿·ä½&nbsp;è´­ç‰©è½¦å†…å®¹
ec.minicart.content = function() {
    ec.cart.getMicroCartFromOrder(function(json) {
        // è´­ç‰©è½¦å•†å“æ•°é‡
        if (json.resultCode == "200000") {
            var cartVO = json.data,
                $cartEmpty = $('#minicart-pro-empty'),
                $cartList = $('#minicart-pro-list-block'),
                $cartSettleup = $('#minicart-pro-settleup');
            var cartInfo = cartVO;

            // å¾®åž‹è´­ç‰©è½¦å†…å®¹
            if (ec.minicart.microCartTpl) {
                var num = 0;
                if (cartInfo.totalNumber == 0) {
                    $('#button-minicart-go2confirm').hide();
                    $('#disbutton-minicart-go2confirm').show();
                } else {
                    $('#button-minicart-go2confirm').show();
                    $('#disbutton-minicart-go2confirm').hide();
                }
                //totalNumber  originalTotalNumber
                if (cartInfo.originalTotalNumber &gt; 0) {
                    ec.minicart.setNum(cartInfo.originalTotalNumber);
                    $('#micro-cart-totalPrice').html('&amp;yen;&amp;nbsp;' + cartInfo.cashPay.toFixed(2));
                    if (cartInfo.originalPrice != cartInfo.cashPay) {
                        $('#micro-cart-totalOriginPrice').html('&amp;yen;&amp;nbsp;' + cartInfo.originalPrice.toFixed(2));
                    } else {
                        $('#micro-cart-totalOriginPrice').html("");
                    }
                    //ec.minicart.processCheck(json.data);
                    ec.minicart.photos(json.data);
                    ec.minicart.bundleNoBuy(json.data);
                    ec.minicart.bundls(json.data);




                    //é˜²æ³¨å…¥å¤„ç†
                    for (var i = 0; i &lt; json.data.itemInfos.length; i++) {
                        if (json.data.itemInfos[i].itemName.indexOf("script") &gt; 0) {

                            json.data.itemInfos[i].itemName = safeStr(json.data.itemInfos[i].itemName);
                        }

                    };

                    html = ec.minicart.microCartTpl.parse('microCartList', json.data);

                    $('#minicart-goods-list').html(html);

                    $cartList.show();
                    $cartSettleup.show();
                    $cartEmpty.hide();
                    if (cartInfo.itemInfos.length &gt; 5) {
                        $cartList.addClass('minicart-pro-list-scroll');
                    } else {
                        $cartList.removeClass('minicart-pro-list-scroll');
                    }

                    for (var i = 0; i &lt; json.data.itemInfos.length; i++) {
                        if ((json.data.itemInfos[i].show == "false") &amp;&amp; (json.data.itemInfos[i].selected)) {

                            ec.minicart.dissome(json.data.itemInfos[i].itemId);


                        }
                    }

                } else {
                    ec.minicart.setNum(0);
                    $cartEmpty.show();
                    $cartList.hide();
                    $cartSettleup.hide();
                }
            }

        }
        if (json.resultCode == "34900") {

            $("#cartInfo").html("å•†åŸŽç«çˆ†é”€å”®ä¸­ï¼Œè¯·æ‚¨ç¨å€™å†è¯•ã€‚")

        }
    });
};

ec.minicart.click = function(thix) {
    ec.minicart.clickTo(thix)
}


ec.minicart.clickTo = function(thix) {



    ec.minicart.click.send(thix, function(json) {
        if (json.msg == "success") {
            var cartInfo = json.cartInfo.cartVO;
            if (cartInfo.miniTotalNumber &gt; 0) {
                $('#button-minicart-go2confirm').show();
                $('#disbutton-minicart-go2confirm').hide();
                $('#micro-cart-totalPrice').html('&amp;yen;&amp;nbsp;' + cartInfo.miniTotalPrice.toFixed(2));
                if (cartInfo.miniTotalOriginalPrice != cartInfo.miniTotalPrice) {
                    $('#micro-cart-totalOriginPrice').html('&amp;yen;&amp;nbsp;' + cartInfo.miniTotalOriginalPrice.toFixed(2));
                } else {
                    $('#micro-cart-totalOriginPrice').html('');
                }
            } else {
                $('#button-minicart-go2confirm').hide();
                $('#disbutton-minicart-go2confirm').show();
                $('#micro-cart-totalPrice').html('&amp;yen;&amp;nbsp;0.00');
                $('#micro-cart-totalOriginPrice').html('');
            }
        }

        if (json.resultCode == "200000") {
            var cartInfo = json.data;
            if (cartInfo.totalNumber &gt; 0) {
                $('#button-minicart-go2confirm').show();
                $('#disbutton-minicart-go2confirm').hide();
                $('#micro-cart-totalPrice').html('&amp;yen;&amp;nbsp;' + cartInfo.cashPay.toFixed(2));
                if (cartInfo.cashPay != cartInfo.originalPrice) {
                    $('#micro-cart-totalOriginPrice').html('&amp;yen;&amp;nbsp;' + cartInfo.originalPrice.toFixed(2));
                } else {
                    $('#micro-cart-totalOriginPrice').html('');
                }
            } else {
                $('#button-minicart-go2confirm').hide();
                $('#disbutton-minicart-go2confirm').show();
                $('#micro-cart-totalPrice').html('&amp;yen;&amp;nbsp;0.00');
                $('#micro-cart-totalOriginPrice').html('');
            }
        }

    });
};


ec.minicart.convertToCart = function(argList) {

    var sbs = [],
        types = [],
        qtys = [],
        ess = [],
        gfs = [],
        ops = [];

    for (var i = 0; i &lt; argList.length; i++) {

        orderItem = argList[i];

        if (orderItem.itemType == "S0") {
            sbs.push(orderItem.itemId);
            if (orderItem.itemProp &amp;&amp; orderItem.itemProp['Internal_Purchase'] &amp;&amp; orderItem.itemProp['Internal_Purchase'] == 'true') {
                types.push(8);
            } else {
                types.push(1);
            }
            qtys.push(orderItem.qty);
            ess.push("");

            var gifts = [];
            if (orderItem.gifts &amp;&amp; orderItem.gifts.length &gt; 0) {
                for (var g = 0; g &lt; orderItem.gifts.length; g++) {
                    gifts.push(orderItem.gifts[g].sbomCode);
                }
            }

            gfs.push(gifts.join("-"));
            ops.push(orderItem.operation);
        }
        if (orderItem.itemType == "S1") {
            sbs.push(orderItem.itemId);
            types.push(6);
            qtys.push(orderItem.qty);
            ess.push(orderItem.mainItemid);
            gfs.push("");
            ops.push(orderItem.operation);
        }
        if (orderItem.itemType == "S6") {
            sbs.push(orderItem.itemId);
            types.push(7);
            qtys.push(orderItem.qty);
            ess.push(orderItem.mainItemid);
            gfs.push("");
            ops.push(orderItem.operation);
        }
        if (orderItem.itemType == "B") {
            sbs.push(orderItem.itemId);
            if (orderItem.itemProp &amp;&amp; orderItem.itemProp['Internal_Purchase'] &amp;&amp; orderItem.itemProp['Internal_Purchase'] == 'true') {
                types.push(9);
            } else {
                types.push(2);
            }
            qtys.push(orderItem.qty);
            ess.push("");
            gfs.push("");
            ops.push(orderItem.operation);
        }
        if (orderItem.itemType == "20") {
            sbs.push(orderItem.itemId);
            types.push(20);
            qtys.push(orderItem.qty);
            ess.push(orderItem.mainItemid);
            gfs.push("");
            ops.push(orderItem.operation);
        }
    }

    var data = {};
    data.sbs = sbs.join(',');
    data.types = types.join(',');
    data.qtys = qtys.join(',');
    data.ess = ess.join(',');
    data.gfs = gfs.join(',');
    data.ops = ops.join(',');

    return data;
}

ec.minicart.click.send = function(thix, callback) {

    var url;
    var id = $(thix).attr("value"),
        type = $(thix).attr("type"),
        operation = 5;
    //è¯·æ±‚æˆåŠŸä¿®æ”¹å‹¾é€‰çŠ¶æ€
    var itemId = $(thix).attr("data-itemId").replace(/\./g, "-");
    ec.minicart.checkboxInverse(itemId);


    $('#button-minicart-go2confirm').show();
    $('#disbutton-minicart-go2confirm').hide();
    var operation = 5;
    if ($('#icon-choose-' + itemId).hasClass('icon-choose') &amp;&amp; $('#checkbox-' + itemId).attr('checked')) {
        operation = 5;
    } else {
        operation = 6;
    }

    var data = {};

    var lists = [];
    lists.push($(thix).attr("data-itemId"));
    data.mainItemIds = JSON.stringify(lists);

    if (operation == 5) {

        // url = openapiDomain + '/cart/v1/select.json';
        url = '/cart/v1/select.json';
    } else {
        // url = openapiDomain + '/cart/v1/disselect.json';
        url = '/cart/v1/disselect.json';
    }


    utils.ajaxOpenAPI({
        type: 'post',
        url: url,
        dataType: "json",
        timeout: 10000,
        traditional: true,
        data: data,
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
            try {
                xhr.setRequestHeader("CsrfToken", csrftoken);
            } catch (e) {

            }
        },
        success: function(result) {
            callback(result);
        }
    });
}

ec.minicart.dissome = function(paras) {
    ec.minicart.dissomeTO(paras);
};






ec.minicart.dissome.send = function(paras, callback) {
    var url;
    var data = {};
    var lists = [];
    lists.push(paras);
    data.mainItemIds = JSON.stringify(lists);
    url = openapiDomain + '/cart/v1/disselect.json';

    $.ajax({
        url: url,
        type: 'post',
        dataType: 'json',
        timeout: 10000,
        traditional: true,
        data: JSON.stringify(data),
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
            try {
                xhr.setRequestHeader("CsrfToken", csrftoken);
            } catch (e) {

            }
        },
        success: function(result) {
            callback(result);
        }
    });
}




/**
 * è´­ç‰©è½¦å‹¾é€‰çš„å•†å“ä¸ºç©º
 */
ec.minicart.selectedItemIsEmpty = function() {
    var selected = $('#minicart-goods-list input[name=\'skuIds\']:checked').length + $('#minicart-goods-list input[name=\'bundleIds\']:checked').length;
    if (selected == 0) {
        ec.minicart.setNum(0);
        $('#micro-cart-totalPrice').html('&amp;yen;&amp;nbsp;0.00');
        $('#micro-cart-totalOriginPrice').html('');
        $('#button-minicart-go2confirm').hide();
        $('#disbutton-minicart-go2confirm').show();
        return true;
    }
    return false;
}

/**
 * è¿·ä½&nbsp;è´­ç‰©è½¦checkboxå‹¾é€‰
 */
ec.minicart.checkboxInverse = function(itemId) {
    if ($('#icon-choose-' + itemId).hasClass('icon-choose')) {
        $('#icon-choose-' + itemId).removeClass('icon-choose').addClass('icon-choose-normal');
        $('#checkbox-' + itemId).attr('checked', false);
    } else {
        $('#icon-choose-' + itemId).removeClass('icon-choose-normal').addClass('icon-choose');
        $('#checkbox-' + itemId).attr('checked', true);
    }
}

/**
 * æž„é€&nbsp;è¯·æ±‚å‚æ•°
 */
ec.minicart.buildOrderItemReqArgList = function() {
    var $skus = $('#minicart-goods-list input[name=\'skuIds\']:checked');
    var $bundles = $('#minicart-goods-list input[name=\'bundleIds\']:checked');

    var orderItemReqArgList = [];
    $skus.each(function() {
        var $tbody = $(this).closest('li');
        var id = this.value;
        var qty = $('#quantity-' + id, $tbody).val();
        var type = $('#quantity-' + id, $tbody).attr('data-type');
        var orderitem = {};
        var extendItem = {};
        var accidentItem = {};
        var giftItem = {};
        var extendId = $('input[name="extendIds"]', $tbody).val();
        if (extendId) {
            extendItem.itemId = extendId;
            extendItem.qty = qty;
            extendItem.itemType = 'S1';
            extendItem.mainItemid = id;
            orderItemReqArgList.push(extendItem);
        }

        var accidentId = $('input[name="accidentIds"]', $tbody).val();
        if (accidentId) {
            accidentItem.itemId = accidentId;
            accidentItem.qty = qty;
            accidentItem.itemType = 'S6';
            accidentItem.itemProp = { 'accidentItem': id };
            accidentItem.mainItemid = id;
            orderItemReqArgList.push(accidentItem);
        }

        var preferIds = $('#preferIds_' + id).attr('skuids');
        if (preferIds) {
            var sbomCodes = preferIds.split(',');
            for (var i = 0; i &lt; sbomCodes.length; i++) {
                if (sbomCodes[i] != '') {
                    var preferItem = {};
                    preferItem.itemId = sbomCodes[i];
                    preferItem.qty = '1';
                    preferItem.itemType = '20';
                    preferItem.mainItemid = id;
                    orderItemReqArgList.push(preferItem);
                }
            }
        }

        if (qty) {
            orderitem.itemId = id;
            orderitem.qty = qty;
            if (type == '1') {
                orderitem.itemType = 'S0';
            }
            if (type == '8') {
                orderitem.itemType = 'S0';
                orderitem.itemProp = { 'Internal_Purchase': 'true' };
            }
            if (type == '2') {
                orderitem.itemType = 'B';
            }
            if (type == '9') {
                orderitem.itemType = 'B';
                orderitem.itemProp = { 'Internal_Purchase': 'true' };
            }

            var giftSbomCodes = $('#gift_sbomCodes_' + id).val();
            if (giftSbomCodes) {
                var gifts = [];
                var sbomCodes = giftSbomCodes.split(',');
                for (var i = 0; i &lt; sbomCodes.length; i++) {
                    if (sbomCodes[i] != '') {
                        var gift = {};
                        gift.sbomCode = sbomCodes[i];
                        gifts.push(gift);
                    }
                }
                orderitem.gifts = gifts;
            }

            orderItemReqArgList.push(orderitem);
        }
    });

    $bundles.each(function() {
        var $tbody = $(this).closest('li');
        var id = this.value;
        var qty = $('#quantity-' + id, $tbody).val();
        var type = $('#quantity-' + id, $tbody).attr('data-type');
        var orderitem = {};
        if (qty) {
            orderitem.itemId = id;
            orderitem.qty = qty;
            if (type == '2') {
                orderitem.itemType = 'B';
            }
            if (type == '9') {
                orderitem.itemType = 'B';
                orderitem.itemProp = { 'Internal_Purchase': 'true' };
            }
            orderItemReqArgList.push(orderitem);
        }
    });

    return orderItemReqArgList;
}






ec.pkg("ec.product");
// æœ€è¿‘æµè§ˆåŽ†å²
ec.product.history = {
    load: function(callback, size, pid) {
        $.ajax({
            url: "/product/browsed/query.json",
            type: "get",
            data: {
                size: size ? size : undefined,
                pid: pid ? pid : undefined
            },
            dataType: "json",
            success: function(json) {
                if (!json.success) return;
                callback(json.list || []);
            }
        });
    },
    add: function(id) {
        $.ajax({
            type: "POST",
            url: "/product/browsed/add?_t=" + (new Date()).getTime(),
            dataType: "json",
            data: { "id": id },
            timeout: 10000,
            success: function() {},
            error: function() {}
        });
    },
    clear: function(callback) {
        $.ajax({
            type: "POST",
            url: "/product/browsed/clear?_t=" + (new Date()).getTime(),
            dataType: "json",
            timeout: 10000,
            success: function(json) {
                if (callback) { callback(); }
            },
            error: function() {
                if (callback) { callback(); }
            }
        });
    }
};

// å•†å“åº“å­˜
ec.product.inventory = {
    _data: {},
    set: function(id, haveInventory) {
        this._data[id] = haveInventory;
    },
    haveInventory: function(id) {
        return this._data[id];
    }
};



ec.pkg("ec.cart");
//åŠ&nbsp;å…¥è´­ç‰©è½¦æ—¶åˆ¤æ–­å•†å“ç±»åž‹å¯¹åº”çš„è´­ç‰©è½¦itemTypeç±»åž‹
ec.cart.productTypeCorrespondence = function(productType) {
    if (productType == 1) {
        productType = 'S0'; //å•å“
    } else if (productType == 2) {
        productType = 'B'; //å¥—é¤
    } else if (productType == 6) {
        productType = 'S1'; //å»¶ä¿
    } else if (productType == 7) {
        productType = 'S6'; //æ„å¤–ä¿
    } else if (productType == 8) {
        productType = 'S0'; //å†…è´­å•å“
    } else if (productType == 9) {
        productType = 'B'; //å†…è´­å¥—é¤
    } else if (productType == 20) {
        productType = '20'; //ä¼˜æƒ&nbsp;è´­
    } else {
        productType = 'S0'; //å®žç‰©äº§å“ï¼ˆç¼ºçœï¼‰
    }
    return productType;
}

// type 1:å•å“ 2:ç»„åˆå¥—è£…   å‚æ•°orderReqJsonArg, fromCartåºŸå¼ƒ
ec.cart.add = function(paras, options) {
    var data = {};


    var cartNumber = "add.json";
    if (paras.number == 1) {
        cartNumber = "addMulti.json"
        data.mainItems = paras.cartjson;
    } else {
        data.mainItem = paras.cartjson;
    }
    $.ajax({
        //url: domainCart + '/newcart/add.json',
        url: openapiDomain + '/cart/v1/' + cartNumber,
        dataType: 'json',
        type: "post",
        timeout: 30000,
        traditional: true,
        data: JSON.stringify(data),
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
            try {
                xhr.setRequestHeader("CsrfToken", csrftoken);
            } catch (e) {

            }
        },
        success: function(result) {
            if (result.resultCode != 200000) {
                if (options.errorFunction) {
                    // [åŒåä¸€åŠ&nbsp;å›º]ä¸»ç«™åŠ&nbsp;å…¥è´­ç‰©è½¦å¤±è´¥æç¤ºä¿¡æ¯ä¼˜åŒ–

                    result.msg = "å·²è¶…è´­ç‰©è½¦æ•°é‡ä¸Šé™ï¼Œæ‚¨å¯ä»¥é€‰æ‹©ç«‹å³ä¸‹å•";

                    options.errorFunction(result);
                }
                return;
            }
            if (options.successFunction) {
                ec.util.cookie.set("cartAdded", ec.util.cookie.get("cartId"));
                options.successFunction(result);
            }
        },
        error: function(xhr, msg, e) {
            if (options.errorFunction) {
                var result = {};
                result.msg = msg;
                // [åŒåä¸€åŠ&nbsp;å›º]ä¸»ç«™åŠ&nbsp;å…¥è´­ç‰©è½¦å¤±è´¥æç¤ºä¿¡æ¯ä¼˜åŒ–

                result.msg = "è´­ç‰©è½¦ç¹å¿™ï¼Œæ‚¨å¯ä»¥é€‰æ‹©ç«‹å³ä¸‹å•";
                options.errorFunction(result);
            }
        }
    });
};

ec.cart.getCartTotalNumber = function(callback, optional) {
    // [åŒåä¸€åŠ&nbsp;å›º]ä¸»ç«™è‹¥æ²¡æœ‰cartIdä¸Žuidåˆ™ä¸éœ€è¦è°ƒç”¨numberæŽ¥å£
    if (!ec.util.cookie.get("cartId") &amp;&amp; !ec.account.isLogin()) {
        return;
    }

    $.ajax({
        url: openapiDomain + "/cart/v1/getTotalNum.json?t=" + new Date().getTime() + "&amp;saleChannel=1001&amp;salePortal=1",
        dataType: "json",
        timeout: 10000,
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
        },
        success: function(json) {

            //ec.cart.changeAdded(json);

            if (json.resultCode == 200000) //success
            {
                callback(json, optional);
            } else {
                callback(null, optional);
            }
        }
    });
};


ec.cart.getCartItems = function(callback, optional) {
    var cartId = ec.util.cookie.get("cartId");
    if (cartId &amp;&amp; cartId.length &gt; 0) {
        var isValCas = ec.util.cookie.get("isValCas");
        // å¦‚æžœç”¨æˆ·éžè¿›è¡ŒCaséªŒè¯ï¼Œå…ˆè¿›è¡ŒéªŒè¯ï¼Œå†åˆå¹¶æ¸¸å®¢çš„è´­ç‰©è½¦ä¿¡æ¯
        if (isValCas &amp;&amp; "false" == isValCas) {
            $.ajax({
                url: "/account/load",
                type: "POST"
            });
            isValCas = ec.util.cookie.get("isValCas");
        }
        if (ec.account.isLogin() &amp;&amp; ec.account.id &amp;&amp; ec.account.loginName) {
            ec.cart.doCache2cart(ec.cart.getCartItemsInternal, callback, optional);
        } else {
            ec.cart.getCartItemsInternal(callback, optional);
        }
    } else {
        ec.cart.getCartItemsInternal(callback, optional);
    }
};

ec.cart.buildQueryData = function(cartItems) {
    var ids = [];
    var types = [];
    var quantitys = [];
    var mainskus = [];
    for (var i = 0; i &lt; cartItems.length; i++) {
        var cartItem = cartItems[i];
        if (cartItem.skuId) {
            ids.push(cartItem.skuId);
        } else if (cartItem.bundleId) {
            ids.push(cartItem.bundleId);
        } else {
            continue;
        }
        types.push(cartItem.productType);
        quantitys.push(cartItem.quantity);
        if (cartItem.mainSkuId) {
            mainskus.push(cartItem.mainSkuId);
        } else {
            mainskus.push("");
        }
    }

    var date = new Date();
    return {
        sbs: ids.join(","),
        types: types.join(","),
        qtys: quantitys.join(","),
        ess: mainskus.join(","),
        t: date.getTime()
    };
};

ec.cart.getOnceCartInfo = function(cartItems, callback, i) {
    var data = ec.cart.buildQueryData(cartItems);

    $.ajax({
        url: domainMain + "/order/shoppingCart/newCart.json",
        dataType: "jsonp",
        timeout: 10000,
        traditional: true,
        data: data,
        success: function(result) {
            if (i != null) {
                callback(result, i);
            } else {
                if (!result.success || !result.cartInfo) {
                    return;
                } else {
                    callback(result);
                }
            }
        },
        error: function() {
            if (i != null) {
                var result = {};
                result.success = false;
                callback(result, i);
            }
        }
    });
};

ec.cart.batchCount = 50;

ec.cart.getCartInfo = function(cartItems, callback) {
    if (!cartItems || cartItems.length == 0) {
        callback({});
        return;
    }

    // jsonpä½¿ç”¨getï¼Œè€Œgetçš„å‚æ•°é•¿åº¦æœ‰é™åˆ¶ï¼Œéœ€è¦åˆ†æ‰¹èŽ·å–ï¼Œä½†æ˜¯æ€»ä»·ç­‰ä¿¡æ¯å‰å°ç›®å‰æ—&nbsp;æ³•è®¡ç®—ï¼Œæš‚æ—¶å…ˆä¸åš
    if (cartItems.length &lt;= ec.cart.batchCount) {
        ec.cart.getOnceCartInfo(cartItems, callback);
    } else {
        var batchs = [];
        var currentBundleBatch = [];
        var currentSkuBatch = [];
        outer: for (var i = 0; i &lt; cartItems.length; i++) {
            var cartItem = cartItems[i];
            if (cartItem.productType == 1) {
                currentSkuBatch.push(cartItem);
                if (currentSkuBatch.length == ec.cart.batchCount) {
                    batchs.push(currentSkuBatch);
                    currentSkuBatch = [];
                }
            } else if (cartItem.productType == 6) {
                // è¿”å›žå€¼ä¸­extensionæŽ’åœ¨æœ€åŽ
                for (var j = 0; j &lt; batchs.length; j++) {
                    var batch = batchs[j];
                    if (batch[0].productType == 1) {
                        for (var k = 0; k &lt; batch.length; k++) {
                            if (batch[k].skuId == cartItem.mainSkuId) {
                                batch.push(cartItem);
                                continue outer;
                            }
                        }
                    }
                }
                for (var j = 0; j &lt; currentSkuBatch.length; j++) {
                    if (currentSkuBatch[j].skuId == cartItem.mainSkuId) {
                        currentSkuBatch.push(cartItem);
                    }
                }
            } else {
                currentBundleBatch.push(cartItem);
                if (currentBundleBatch.length == ec.cart.batchCount) {
                    batchs.push(currentBundleBatch);
                    currentBundleBatch = [];
                }
            }
        }

        if (currentBundleBatch.length &gt; 0) {
            if (currentBundleBatch.length + currentSkuBatch.length &lt;= ec.cart.batchCount) {
                currentBundleBatch.push(currentSkuBatch);
                batchs.push(currentBundleBatch);
            } else {
                batchs.push(currentBundleBatch);
                batchs.push(currentSkuBatch);
            }
        } else {
            if (currentSkuBatch.length &gt; 0) {
                batchs.push(currentSkuBatch);
            }
        }

        var total = {};
        total.cartInfo = {};
        total.cartInfo.bundlerList = [];
        total.cartInfo.productList = [];
        total.cartInfo.couponList = [];
        total.cartInfo.premiumsList = [];
        total.cartInfo.totalOriginalPrice = 0;
        total.cartInfo.totalPrice = 0;
        total.limitstock = [];
        total.understock = [];
        var got = 0;
        for (var i = 0; i &lt; batchs.length; i++) {
            var batch = batchs[i];
            ec.cart.getOnceCartInfo(batch, function(result, i) {
                got += 1;
                if (result.success &amp;&amp; result.cartInfo) {
                    if (result.cartInfo.bundlerList &amp;&amp; result.cartInfo.bundlerList.length &gt; 0) {
                        total.cartInfo.bundlerList = total.cartInfo.bundlerList.concat(result.cartInfo.bundlerList);
                    }
                    if (result.cartInfo.productList &amp;&amp; result.cartInfo.productList.length &gt; 0) {
                        total.cartInfo.productList = total.cartInfo.productList.concat(result.cartInfo.productList);
                    }
                    if (result.cartInfo.couponList &amp;&amp; result.cartInfo.couponList.length &gt; 0) {
                        total.cartInfo.couponList = total.cartInfo.couponList.concat(result.cartInfo.couponList);
                    }
                    if (result.cartInfo.premiumsList &amp;&amp; result.cartInfo.premiumsList.length &gt; 0) {
                        total.cartInfo.premiumsList = total.cartInfo.premiumsList.concat(result.cartInfo.premiumsList);
                    }
                    total.cartInfo.totalOriginalPrice += result.cartInfo.totalOriginalPrice;
                    total.cartInfo.totalPrice += result.cartInfo.totalPrice;
                    if (result.limitstock &amp;&amp; result.limitstock.length &gt; 0) {
                        total.limitstock = total.limitstock.concat(result.limitstock);
                    }
                    if (result.understock &amp;&amp; result.understock.length &gt; 0) {
                        total.understock = total.understock.concat(result.understock);
                    }
                }
                if (got == batchs.length) {
                    callback(total);
                }
            }, i);
        }
    }
};

ec.cart.getCart = function(callback) {
    ec.cart.getCartItems(ec.cart.getCartInfo, callback);
};

ec.cart.getCartBaseInfo = function(cartItems, callback) {

};

ec.cart.getCartBase = function(callback) {
    ec.cart.getCartItems(ec.cart.getCartBaseInfo, callback);
};

ec.cart.buildMicroCartReq = function(cartItems) {
    var orderItemReqArgList = [];
    if (cartItems &amp;&amp; cartItems.length &gt; 0) {
        for (var i = 0; i &lt; cartItems.length; i++) {
            var cartItem = cartItems[i];
            var orderitem = {};
            orderitem.itemId = cartItem.skuId;
            orderitem.qty = cartItem.quantity;
            if (cartItem.productType == '1') {
                orderitem.itemType = 'S0';

                var gifts2Order = [];
                if (cartItem.giftCartList &amp;&amp; cartItem.giftCartList.length &gt; 0) {
                    for (var j = 0; j &lt; cartItem.giftCartList.length; j++) {
                        var aGift = { "sbomCode": cartItem.giftCartList[j].skuId };
                        gifts2Order.push(aGift);
                    }
                }

                orderitem.gifts = gifts2Order;
            }
            if (cartItem.productType == '8') {
                orderitem.itemType = 'S0';
                orderitem.itemProp = {
                    'Internal_Purchase': 'true'
                };
            }
            if (cartItem.productType == '6') {
                orderitem.itemType = 'S1';
                orderitem.itemProp = {
                    'main_skucode': cartItem.mainSkuId
                };
            }
            if (cartItem.productType == '7') {
                orderitem.itemType = 'S6';
                orderitem.itemProp = {
                    'main_skucode': cartItem.mainSkuId
                };
            }
            if (cartItem.productType == '2') {
                orderitem.itemId = cartItem.bundleId;
                orderitem.itemType = 'B';
            }
            if (cartItem.productType == '9') {
                orderitem.itemId = cartItem.bundleId;
                orderitem.itemType = 'B';
                orderitem.itemProp = {
                    'Internal_Purchase': 'true'
                };
            }
            orderItemReqArgList.push(orderitem);
        }
    }
    var jsonReqArg = ec.lang.json.stringify(orderItemReqArgList);
    var date = new Date();
    var data = {};
    data.cartReqJson = jsonReqArg;
    data.t = date.getTime();
    return data;
};

ec.cart.getMicroCartBaseInfo = function() {

};

ec.cart.doCache2cart = function(doAfterCache, callback, optional) {


    // [åŒåä¸€åŠ&nbsp;å›º]ä¸»ç«™è‹¥æ¸¸å®¢è´­ç‰©è½¦å•†å“æ•°é‡ä¸º0åˆ™ä¸è°ƒç”¨åˆå¹¶æŽ¥å£
    var cartId = ec.util.cookie.get("cartId");
    var cartAdded = ec.util.cookie.get("cartAdded");



    if (!cartAdded || cartAdded != cartId) {

        ec.util.cookie.set("cartId", null, { "expires": -1, "domain": "vmall.com" });
        if (doAfterCache) {
            doAfterCache(callback, optional);
        }
        return;
    }

    $.ajax({
        //url : domainCart + "/newcart/cache2cart.json?saleChannel=1001&amp;salePortal=1&amp;t=" + new Date().getTime(),
        url: openapiDomain + "/cart/v1/guest2cart.json?t=" + new Date().getTime(),
        type: "post",
        dataType: "json",
        timeout: 10000,
        cache: false,
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
            try {
                xhr.setRequestHeader("CsrfToken", csrftoken);
            } catch (e) {

            }
        },
        success: function(json) {
            if (doAfterCache) {


                doAfterCache(callback, optional);
            }
        }
    });
}
ec.cart.getMicroCartTotalNumber = function(callback) {
    var optional = null;
    var cartId = ec.util.cookie.get("cartId");
    if (cartId &amp;&amp; cartId.length &gt; 0) {
        var isValCas = ec.util.cookie.get("isValCas");
        // å¦‚æžœç”¨æˆ·éžè¿›è¡ŒCaséªŒè¯ï¼Œå…ˆè¿›è¡ŒéªŒè¯ï¼Œå†åˆå¹¶æ¸¸å®¢çš„è´­ç‰©è½¦ä¿¡æ¯
        if (isValCas &amp;&amp; "false" == isValCas) {
            $.ajax({
                url: "/account/load",
                type: "POST"
            });
            isValCas = ec.util.cookie.get("isValCas");
        }
        if (ec.account.isLogin()) {
            ec.cart.doCache2cart(ec.cart.getCartTotalNumber, callback, optional);
        } else {
            ec.cart.getCartTotalNumber(callback, optional);
        }
    } else {
        ec.cart.getCartTotalNumber(callback, optional);
    }
};


ec.cart.getMicroCartFromOrder = function(callback) {
    var optional = null;
    var cartId = ec.util.cookie.get("cartId");
    if (cartId &amp;&amp; cartId.length &gt; 0) {
        var isValCas = ec.util.cookie.get("isValCas");
        // å¦‚æžœç”¨æˆ·éžè¿›è¡ŒCaséªŒè¯ï¼Œå…ˆè¿›è¡ŒéªŒè¯ï¼Œå†åˆå¹¶æ¸¸å®¢çš„è´­ç‰©è½¦ä¿¡æ¯
        if (isValCas &amp;&amp; "false" == isValCas) {
            $.ajax({
                url: "/account/load",
                type: "POST"
            });
            isValCas = ec.util.cookie.get("isValCas");
        }
        if (ec.account.isLogin()) {
            ec.cart.doCache2cart(ec.cart.getCartItemsInternal, callback, optional);
        } else {
            ec.cart.getCartItemsInternal(callback, optional);
        }
    } else {
        ec.cart.getCartItemsInternal(callback, optional);
    }
};

ec.cart.changeAdded = function(json) {
    var cartNumber = null;

    if (json &amp;&amp; json.cartInfo &amp;&amp; json.cartInfo.cartVO) {
        cartNumber = json.cartInfo.cartVO.totalNumber &gt;= 0 ? json.cartInfo.cartVO.totalNumber : cartNumber;
    }

    if (json) {
        cartNumber = json.cartNumber &gt;= 0 ? json.cartNumber : cartNumber;
    }

    if (cartNumber &gt; 0) {
        ec.util.cookie.set("cartAdded", ec.util.cookie.get("cartId"));
    }

    if (cartNumber == 0) {
        ec.util.cookie.set("cartAdded", null);
    }
}

ec.cart.newDel = function(data, callback, noShowModal) {

    if (!noShowModal) {
        ec.ui.loading.show({
            modal: false
        });
    }
    var date = new Date();
    data.t = date.getTime();
    var settings = {
        data: data,
        dataType: "jsonp",
        timeout: 10000,
        timeoutFunction: function() {
            ec.ui.loading.hide();
            // alert(timeOutInfo);
        },
        successFunction: function(json) {

            ec.cart.changeAdded(json);

            if ("0" != json.retcode) {
                ec.ui.loading.hide();
                ec.showError(json);
                return;
            }

            if (callback) {
                callback(json);
            }
            ec.ui.loading.hide();
            return;
        }
    };
    settings.url = domainCart + "/newcart/del.json";
    new ec.ajax().get(settings);
};

ec.cart.setRecover = function(recover) {
    ec.util.cookie.set("cart-recover", recover, {
        domain: "vmall.com",
        path: "/"
    });
};

ec.cart.removeSkuFromRecover = function(skuId, callback) {
    var recover = ec.util.cookie.get("cart-recover");
    if (recover) {
        var rege = new RegExp("," + skuId + ";\\d+,");
        recover = recover.replace(rege, ",");
        ec.cart.setRecover(recover);
    }
    if (callback) {
        callback(recover);
    }
};

ec.cart.confirm = function(state, jsonReqArg, orderTag) {
    var $form = $("#miniCartForm");
    $form.append('&lt;input name="orderReqJson" type="hidden" value=\'' + jsonReqArg + '\' /&gt;');
    if (state) {
        $form.append('&lt;input name="state" type="hidden" value="' + state + '" /&gt;');
    }
    if (orderTag) {
        $form.append('&lt;input name="routingTag" type="hidden" value="' + orderTag + '" /&gt;');
    }

    $form.submit();

};

ec.pkg("ec.base");
// åˆå§‹åŒ–é¡µé¢æ—¶éœ€è¦è°ƒç”¨çš„å¼‚æ­¥æŽ¥å£
ec.base.findSearchHotWordUrl = function(v) {
    var actUrl = "";
    for (var swa = 0; swa &lt; ec.search.searchArr.length; swa++) {
        var swal = ec.search.searchArr[swa];
        if (v == swal.word.transHtmlAttribute()) {
            if (swal.isActivityWords == 1) {
                if (swal.activityUrl == null || swal.activityUrl == "") {
                    actUrl = "/search?keyword=" + encodeURIComponent(v);
                } else {
                    actUrl = swal.activityUrl.transHtmlAttribute();
                }
            } else {
                actUrl = "/search?keyword=" + encodeURIComponent(v);
            }
        }
    }
    return actUrl;
};

function pushMsgAssociationalWord(word) {
    ec.dapClick(300090101, {
        "searchWord": word,
        "type": "4",
        "click": "1"
    });
}

// å…¨å±€æœç´¢å…³é”®å­—
var topSearchKeyword = "";
// é¡¶éƒ¨æœç´¢
function search(form) {
    var v = $("#search-kw").val();
    if (ec.util.isEmpty(v)) {
        return false;
    }
    // åŽ»é™¤å‰åŽç©ºæ&nbsp;¼
    v = $.trim(v);
    //æœç´¢æ•°æ®ä¸ŠæŠ¥
    ec.dapClick(300090101, {
        "searchWord": v,
        "type": "1",
        "click": "1"
    });
    // æš‚æ—¶ä¸åŒºåˆ†æœç´¢é¢‘é“ å¦‚åŽä¸ºã€è£è€€
    var searchUrl = ec.base.findSearchHotWordUrl(v);
    if (searchUrl == null || searchUrl == "") {
        ec.openWindow("/search?keyword=" + encodeURIComponent(v));
    } else {
        ec.openWindow(searchUrl);
    }
    return false;
}

function searchFunc(word) {
    //çƒ­æœè¯ä¸ŠæŠ¥
    ec.dapClick(300090101, {
        "searchWord": word,
        "type": "2",
        "click": "1"
    });
    ec.openWindow("/search?keyword=" + encodeURIComponent(word));
}
(function() {

    var _flag;

    // å–æ¶ˆäº‹ä»¶
    ec.ready(function() {
        $("#ec_ui_confirm_no").off("click").on("click", function() {
            $("#ec_ui_confirm").hide();
        });

        $("#ec_ui_confirm_new_no").off("click").on("click", function() {
            $("#ec_ui_confirm_new").hide();
        });

        $("#ec_ui_tips_yes").off("click").on("click", function() {
            $("#ec_ui_tips").hide();
        });

    });

    // ç¡®è®¤æç¤º
    ec.ui.confirm = function(dom, msg) {

        var caller = ec.ui.confirm.caller,
            arguments = caller.arguments;

        if (_flag != null &amp;&amp; arguments[arguments.length - 1] == _flag) {
            _flag = null;
            return true;
        }

        $("#ec_ui_confirm_msg").html(msg);

        var thix = $(dom),
            layter = $("#ec_ui_confirm"),
            offset = thix.offset(),
            top = offset.top - layter.outerHeight(true) - 5,
            left = offset.left - layter.outerWidth(true) / 2,
            args = [],
            aLen = arguments.length,
            dLen = arguments.callee.length;

        for (var i = 0; i &lt; aLen; i++) {
            args.push(arguments[i]);
        }

        // æ&nbsp;‡è¯†
        args[dLen] = (_flag = (new Date()).getTime());

        // ç¡®å®šäº‹ä»¶
        $("#ec_ui_confirm_yes").off("click").click(function() {
            $("#ec_ui_confirm").hide();
            // å›žè°ƒåŽŸæ¥çš„å‡½æ•°
            caller.apply(this, args);
            args = null;
        });

        layter.css({
            top: top,
            left: left,
            position: "absolute"
        }).show();
        layter.css("z-index", "999");
        return false;
    };

    // ç¡®è®¤æç¤ºnew
    ec.ui.confirmNew = function(dom, msg, btnMsgYes, btnMsgNo) {

        var caller = ec.ui.confirmNew.caller,
            arguments = caller.arguments;

        if (_flag != null &amp;&amp; arguments[arguments.length - 1] == _flag) {
            _flag = null;
            return true;
        }

        $("#ec_ui_confirm_new_msg").html(msg);
        if (btnMsgYes) {
            $("#ec_ui_confirm_new_yes").attr("title", btnMsgYes);
            $("#ec_ui_confirm_new_yes").html("&lt;span&gt;" + btnMsgYes + "&lt;/span&gt;");
        }
        if (btnMsgNo) {
            $("#ec_ui_confirm_new_no").attr("title", btnMsgNo);
            $("#ec_ui_confirm_new_no").html("&lt;span&gt;" + btnMsgNo + "&lt;/span&gt;");
        }

        var thix = $(dom),
            layter = $("#ec_ui_confirm_new"),
            offset = thix.offset(),
            top = offset.top - layter.outerHeight(true) - 5,
            left = offset.left - layter.outerWidth(true) / 9,
            args = [],
            aLen = arguments.length,
            dLen = arguments.callee.length;

        for (var i = 0; i &lt; aLen; i++) {
            args.push(arguments[i]);
        }

        // æ&nbsp;‡è¯†
        args[dLen] = (_flag = (new Date()).getTime());

        // ç¡®å®šäº‹ä»¶
        $("#ec_ui_confirm_new_yes").off("click").click(function() {
            $("#ec_ui_confirm_new").hide();
            // å›žè°ƒåŽŸæ¥çš„å‡½æ•°
            caller.apply(this, args);
            args = null;
        });

        layter.css({
            top: top,
            left: left,
            position: "absolute"
        }).show();

        return false;
    };

    ec.ui.tips = function(dom, msg) {
        $("#ec_ui_tips_msg").html(msg);

        var thix = $(dom),
            layter = $("#ec_ui_tips"),
            offset = thix.offset(),
            top = offset.top - layter.outerHeight(true) - 5,
            left = offset.left - layter.outerWidth(true) / 2;


        layter.css({
            top: top,
            left: left,
            position: "absolute"
        }).show();

    };



})();

$.extend(ec.form.validator.defaults, {
    errorClass: "error",
    autoFocus: false,
    errorFunction: function(obj, options) {
        var css = "icon-error",
            msg = options.msg[options.type] || options.msg["default"];
        msg = (msg.length &lt;= 0) ? '&amp;nbsp;' : msg;
        switch (options.type) {
            case "require":
                css = "icon-warn";
                break;
        }
        if (options.msg_ct) {
            $(options.msg_ct).html("&lt;span class='vam " + css + "'&gt;" + msg.transHtmlAttribute() + "&lt;/span&gt;");
        } else {
            var id = (obj.attr("id") || obj.attr("name")) + "-msg";
            $("#" + id).remove();
            obj.after("&lt;span id='" + id + "' class='vam " + css + "'&gt;" + msg.transHtmlAttribute() + "&lt;/span&gt;");
        }
        if (options.autoFocus) obj.focus();
    },
    successFunction: function(obj, options) {
        if (options.msg_ct) {
            $(options.msg_ct).html("");
        } else {
            $("#" + (obj.attr("id") || obj.attr("name")) + "-msg").remove();
        }
    }
});

// æ·»åŠ&nbsp;æ‰‹æœºçš„æ£€éªŒè§„åˆ™,é¦™æ¸¯ä¸º9æˆ–6æˆ–5å¼€å¤´çš„8ä½å·ç&nbsp;
ec.form.validator.register("mobile", function(str, options) {
    if (options.allowEmpty &amp;&amp; ec.util.isEmpty(str)) { return true; }
    if (str.length &lt; 11) { return false; }
    return /^1\d{10}$/.test(str);
});

// æ·»åŠ&nbsp;å›ºå®šç”µè¯éªŒè¯è§„åˆ™[0755-88888888-123]ï¼›é¦™æ¸¯[00852-22341234-123]
ec.form.validator.register("phone", function(str, options) {
    if (options.allowEmpty &amp;&amp; ec.util.isEmpty(str)) { return true; }
    if (str.length &lt; 7) { return false; }
    return /^((0[0-9]{2,3}\-)?[2-9][0-9]{6,7}|((00852|\+852)\-)?([2-3][0-9]{7}))+(\-[0-9]{1,4})?$/.test(str);
});

// æ·»åŠ&nbsp;æ‰‹æœºå·ç&nbsp;æˆ–è€…å›ºè¯çš„æ£€éªŒè§„åˆ™
ec.form.validator.register("mobleOrPhone", function(str, options) {
    if (options.allowEmpty &amp;&amp; ec.util.isEmpty(str)) { return true; }
    if (str.length &lt; 11) { return false; }
    return /(^((0[0-9]{2,3}\-)?[2-9][0-9]{6,7}|((00852|\+852)\-)?([2-3][0-9]{7}))+(\-[0-9]{1,4})?$)|(^(\+|00)?((86)?(1[3456789])[0-9]{9}|852[965][0-9]{7})$)/.test(str);
});

ec.form.validator.register("addressCheck", function(str, options) {
    if (options.allowEmpty &amp;&amp; ec.util.isEmpty(str)) { return true; }
    if (str == 'é€‰æ‹©çœ-å¸‚-åŒº-è¡—é“') {
        return false;
    }
    return true
});
//æ‰‹æœºå·ç&nbsp;è¾“å…¥è§„åˆ™ä¼˜åŒ–
function limitNum(event, ele) {
    var reg = /^(86008686|86860086|00868686|86868686|868686|860086|008686|0086|8686|86)/;
    $(ele).val(function() {
        return $(ele).val().replace(/\D/g, "").replace(reg, "");
    });
    if (/^1\d{10}$/.test($(ele).val())) {
        $(ele).removeClass("error");
        $("#tel-msg").removeClass("label-error").text("");
        $("#vatInvoice-mobile-error").removeClass("report-errors").text("")
    }
}
//æ£€æµ‹IEæµè§ˆå™¨ç‰ˆæœ¬,å°äºŽ8.0å¼¹çª—æç¤ºç”¨æˆ·ä¸‹è½½æ–°ç‰ˆæœ¬æµè§ˆå™¨
function checkIEVersion() {
    var browserName = navigator.userAgent;
    if (parseInt(/msie/i.test(browserName) &amp;&amp; browserName.match(/msie\s[\d.]+/i)[0].split(' ')[1], 10) &lt;= 8) {
        var html = '&lt;div class="ie8"&gt;\
                        &lt;div class="h"&gt;\
                            æ‚¨ä½¿ç”¨çš„æµè§ˆå™¨ç‰ˆæœ¬è¿‡ä½Žï¼Œå¯èƒ½æœ‰å®‰å…¨é£Žé™©&lt;br&gt;æŽ¨èæ‰«ç&nbsp;ä½¿ç”¨ã€åŽä¸ºå•†åŸŽAPPã€‘æˆ–è€…å…³æ³¨å¾®ä¿¡å…¬ä¼—å·ã€åŽä¸ºå•†åŸŽã€‘\
                        &lt;/div&gt;\
                        &lt;div class="code clearfix"&gt;\
                            &lt;p class="code1"&gt;\
                                &lt;em&gt;&lt;/em&gt;\
                                &lt;span&gt;åŽä¸ºå•†åŸŽAPP&lt;/span&gt;\
                            &lt;/p&gt;\
                            &lt;p class="code2"&gt;\
                                &lt;em&gt;&lt;/em&gt;\
                                &lt;span&gt;å¾®ä¿¡å…¬ä¼—å·&lt;/span&gt;\
                            &lt;/p&gt;\
                        &lt;/div&gt;\
                        &lt;div class="word"&gt;æˆ–è€…å‡çº§æ‚¨çš„æµè§ˆå™¨ï¼Œç»§ç»­è®¿é—®&lt;/div&gt;\
                        &lt;div class="browser clearfix"&gt;\
                            &lt;a href="https://www.google.cn/intl/zh-CN/chrome/browser/desktop/" target="_blank" class="logo-browser-chrome clearfix"&gt;\
                                &lt;em&gt;&lt;/em&gt;\
                                &lt;span&gt;chrome&lt;/span&gt;\
                            &lt;/a&gt;\
                            &lt;a href="https://www.microsoft.com/zh-cn/download/internet-explorer.aspx" target="_blank" class="logo-browser-ie clearfix"&gt;\
                                &lt;em&gt;&lt;/em&gt;\
                                &lt;span&gt;IEæµè§ˆå™¨&lt;/span&gt;\
                            &lt;/a&gt;\
                        &lt;/div&gt;\
                    &lt;/div&gt;';
        new ec.box(html, {
            boxid: "update-box",
            width: 960,
            height: 711,
            showButton: false,
            zIndex: 700
        }).open();
        $("body").css("overflow", "hidden")
    }
}
ec.form.validator.register("addressConfirmCheck", function() {
    if ($("#current-address").html() == 'é€‰æ‹©çœ-å¸‚-åŒº-è¡—é“') {
        return false;
    } else {
        var form = $("#myAddress-form");

        ec.addr.syncCache(form);

        var province = form.find("input[name='province']").val(),
            city = form
            .find("input[name='city']").val(),
            district = form.find("input[name='district']").val(),
            street = form
            .find("input[name='street']").val(),
            needL4Addr = form.find("input[name='needL4Addr']").val();
        if ("" != province &amp;&amp; "" != city &amp;&amp; "" != district) {
            if (needL4Addr == 'true' &amp;&amp; street == "") {
                return false;
            } else {
                return true;
            }
        } else {
            return false;
        }
    }
    return true
});


ec.form.validator.register("addressContractCheck", function() {
    var form = $("#order-address-add-form");
    var province = form.find("select[name='province'] option:selected").val(),
        city = form.find(
            "select[name='city'] option:selected").val(),
        district = form.find(
            "select[name='district'] option:selected").val(),
        street = form.find(
            "select[name='street'] option:selected").val();
    if ("" != province &amp;&amp; "" != city &amp;&amp; "" != district) {
        if ("" == street) {
            return false;
        } else {
            return true;
        }
    } else {
        return false;
    }
});

// æ·»åŠ&nbsp;éžæ³•å­—ç¬¦çš„æ£€éªŒè§„åˆ™
ec.form.validator.register("forbidChar", function(str, options) {
    if (options.allowEmpty &amp;&amp; ec.util.isEmpty(str)) { return true; }
    str = str.replace('*', '@'),
        str = str.replace('--', '@'),
        str = str.replace('/', '@'),
        str = str.replace('+', '@'),
        str = str.replace('\'', '@'),
        str = str.replace('\\', '@'),
        str = str.replace('$', '@'),
        str = str.replace('^', '@'),
        str = str.replace('.', '@'),
        str = str.replace(';', '@'),
        str = str.replace('&lt;', '@'),
        str = str.replace('&gt;', '@'),
        str = str.replace('"', '@'),
        str = str.replace('=', '@'),
        str = str.replace('{', '@'),
        str = str.replace('}', '@');
    str = str.replace('%', '@');
    str = str.replace('~', '@');
    str = str.replace('&amp;', '@');
    if (str.search(new RegExp("@")) != -1) {
        return false;
    }
    return true;
});

// æ·»åŠ&nbsp;éžæ³•å­—ç¬¦çš„æ£€éªŒè§„åˆ™ for address
ec.form.validator.register("invoiceForbidChar", function(str, options) {
    if (options.allowEmpty &amp;&amp; ec.util.isEmpty(str)) { return true; }
    str = str.replace('--', '&amp;');
    var invoiceRegex = /^[^\\*\\+\\\\/\\$\\^\\;&lt;&gt;\"=\\{\\}%~&amp;]+$/g;
    var result = invoiceRegex.test(str);
    if (!result) {
        return false;
    }
    return result;
});

// æ•°å­—å·¥å…·
ec.ui.number = function(selector, options) {
    // è‡ªå®šä¹‰è´­ç‰©è½¦å•†å“æ•°é‡ï¼Œåªèƒ½è¾“å…¥æ•°å­—
    var defaultOpt = {
            max: null,
            min: null,
            showButton: true,
            minusBtn: '&lt;a class="icon-minus vam" href="javascript:;"&gt;&lt;span&gt;-&lt;/span&gt;&lt;/a&gt;',
            plusBtn: '&lt;a class="icon-plus vam" href="javascript:;"&gt;&lt;span&gt;+&lt;/span&gt;&lt;/a&gt;'
        },
        thix = $(selector),
        options = $.extend(defaultOpt, options),
        checkNumber = function(e) { // é™åˆ¶è¾“å…¥ï¼Œåªèƒ½ä¸ºæ•°å­—
            var currentKey = e.which,
                val = parseInt(this.value, 10),
                thisVal = (val &lt; 1) ? 1 : val;

            if ((currentKey &lt; 37 || currentKey &gt; 40) &amp;&amp; currentKey != 8 &amp;&amp; currentKey != 46) {

                if (thisVal &gt; options.max || thisVal &lt; options.min) {
                    e.preventDefault();
                    return false;
                } else {
                    if ((currentKey &lt; 48 || currentKey &gt; 57) &amp;&amp; (currentKey &lt; 96 || currentKey &gt; 105) &amp;&amp; currentKey != 9) {
                        e.preventDefault();
                        return false;
                    }

                }

            }
        };

    thix.each(function() {

        var opt = $.extend({}, options),
            inputObj = $(this).css('ime-mode', 'disabled');

        var tmp = inputObj.attr("max");
        if (tmp) {
            options.max = opt.max = parseInt(tmp, 10) || opt.max;
        }

        tmp = inputObj.attr("min");
        if (tmp) {
            options.min = opt.min = parseInt(tmp, 10) || opt.min;
        }

        if (opt.showButton) {
            // å‡å°‘
            var minusBtn = $(opt.minusBtn).on("click", function() {
                    var val = inputObj.val() || 0,
                        thisVal = parseInt(val, 10) - 1;
                    if (typeof(opt.min) == "number" &amp;&amp; thisVal &lt; opt.min) {
                        return;
                    }
                    inputObj.val(thisVal).trigger("blur");
                }),
                // å¢žåŠ&nbsp;
                plusBtn = $(opt.plusBtn).on("click", function() {
                    var val = inputObj.val() || 0,
                        thisVal = parseInt(val, 10) + 1;
                    if (typeof(opt.max) == "number" &amp;&amp; thisVal &gt; opt.max) {
                        return;
                    }
                    inputObj.val(thisVal).trigger("blur");
                });
            inputObj.after(plusBtn).before(minusBtn);
        }
        inputObj.data("ovalue", inputObj.val() || 0)
            .keydown(checkNumber)
            .keyup(function() {
                var thisVal = parseInt(this.value || 0);
                if (typeof(opt.min) == "number" &amp;&amp; thisVal &lt; opt.min) {
                    this.value = opt.min;
                    return;
                } else if (typeof(opt.max) == "number" &amp;&amp; thisVal &gt; opt.max) {
                    this.value = opt.max;
                    return;
                }
            })
            .blur(function() {
                if (typeof opt.onchange === "function") {
                    var oldVal = inputObj.data("ovalue"),
                        newVal = this.value || 0,
                        diff = parseInt(newVal, 10) - parseInt(oldVal, 10);
                    if (diff == 0) return;
                    inputObj.data("ovalue", newVal);
                    opt.onchange.call(this, newVal, diff);

                }
            });

    });

};
// å€’è®¡æ—¶
ec.ui.countdown = function(selector, options) {
    var obj = $(selector),
        timer = obj.data("countdown"),
        timeIndex = 0,
        // å½“å‰å€’æ•°ç›®æ&nbsp;‡æ—¶é—´
        preTarget,

        // options = $.extend({}, options),
        diff,
        diffMs = options.now.getTime() - new Date().getTime(),
        diffSecs = 0,
        getNext = function() {
            if (timeIndex &gt;= options.times.length) return false;
            preTarget = options.times[timeIndex];
            timeIndex++;

            return true;
        },
        getDiffSec = function() {

            diffSecs = Math.round((ec.util.parseDate(preTarget).getTime() - new Date().getTime() - diffMs) / 1000);
            diffSecs = diffSecs &lt;= 0 ? 0 : diffSecs;
            return diffSecs;
        },
        render = function() {

            diffSecs--;
            if (diffSecs &lt;= 0) { diffSecs = 0; }
            diff = {
                day: Math.floor(diffSecs / (24 * 60 * 60)),
                hour: (options.html.indexOf("{#day}") &gt;= 0) ?
                    Math.floor(diffSecs / 60 / 60) % 24 : Math.floor(diffSecs / 60 / 60),
                minute: Math.floor(diffSecs / 60) % 60,
                second: diffSecs % 60
            };

            var html = options.html.replace(/{#day}/g, diff.day).replace(/{#hours}/g, diff.hour &gt; 9 ? diff.hour : "0" + diff.hour).replace(
                /{#minutes}/g, diff.minute &gt; 9 ? diff.minute : "0" + diff.minute).replace(/{#seconds}/g, diff.second &gt; 9 ? diff.second : "0" + diff.second);
            obj.html(html);

            return (diffSecs &lt;= 0) ? false : true;
        };

    if (!options.times) {
        options.times = [options.endTime];
    }

    clearInterval(timer);
    while (getNext()) {
        if (getDiffSec() &lt;= 0)
            continue;
        break;
    }

    if (!render()) { return; }

    timer = setInterval(function() {

        if (!render()) {

            if (options.callback) {
                options.callback(options);
            }

            if (!getNext()) {
                clearInterval(timer);
            } else {
                getDiffSec();
            }
        }
    }, 1000);

    obj.data("countdown", timer);
};
// å›¾ç‰‡æ»šåŠ¨åŠ&nbsp;è½½
(function() {

    var
        _window = $(window),
        _binded = false,
        _doc = document.compatMode == 'CSS1Compat' ? document.documentElement : document.body,
        _scrollTopSrart = 0,
        _scrollTopEnd = 0,
        _clientHeight,
        _imgList = [],
        _timer,

        // æ¸²æŸ“å›¾ç‰‡æ˜¾ç¤º
        _renderImg = function(img) {
            var
                top = img.offset().top - 300,
                pos = top + img.height() + 600;

            if ((top &gt;= _scrollTopSrart &amp;&amp; top &lt;= _scrollTopEnd) || (pos &gt;= _scrollTopSrart &amp;&amp; pos &lt;= _scrollTopEnd)) {
                img.attr("src", img.attr("data-lazy-src"));
                img.removeAttr("data-lazy-src");
                return true;
            }
            return false;
        };

    // ç»‘å®šäº‹ä»¶
    _bindEvent = function() {

        var scrollEvent = function() {
                clearTimeout(_timer);
                _timer = setTimeout(function() {

                    _scrollTopSrart = _window.scrollTop();
                    _scrollTopEnd = _scrollTopSrart + _clientHeight;

                    var img;

                    for (var i = 0; i &lt; _imgList.length; i++) {
                        img = _imgList[i];
                        if (_renderImg(img)) {
                            _imgList.splice(i, 1);
                            i--;
                        }
                    }

                    if (!_imgList || _imgList.length == 0) {
                        _window.off("scroll", scrollEvent);
                        _window.off("resize", resizeEvent);
                    }

                }, 100);

            },

            resizeEvent = function(event) {
                _clientHeight = _doc.clientHeight;
            };

        _window.on("scroll", scrollEvent);
        _window.on("resize", resizeEvent);


        _clientHeight = _doc.clientHeight;

        _scrollTopSrart = _window.scrollTop();
        _scrollTopEnd = _scrollTopSrart + _clientHeight;
    };




    ec.ui.lazyLoad = function(selector) {

        if (!_binded) {
            _bindEvent();
            _binded = true;
        }

        $(selector).each(function() {
            // ä»…æ”¯æŒå›¾ç‰‡
            if (this.tagName != "IMG") return;

            var thix = $(this);

            if (thix.attr("data-lazy-src")) {
                if (!_renderImg(thix)) {
                    thix.attr("src", ol.libPath + "../../images/echannel/loading/mask.png");
                    _imgList.push(thix);
                }
            }

        });


    };
})();

ec.ready(function() {
    ec.ui.lazyLoad($("body").children(".home-channel-menu,.layout,.g,.home-channel-container,.channel-floor,.home-channel-floor").find("img"));
    ec.ui.hrefSetTime();
    ec.account.displaySaleConfig();
});

// ç™»å½•è¶…æ—¶å’Œé”™è¯¯æç¤º
ec.showError = function(json) {
    if (json.code == 'login') {
        alert('ç™»å½•è¶…æ—¶ï¼Œè¯·é‡æ–°ç™»å½•');
        location.reload();
        return false;
    }
    alertS(json.msg);
};
// ç”¨æˆ·åé¦ˆ
// ç”¨æˆ·åé¦ˆ  éªŒè¯å¯è¡Œ
ec.load("ajax", { loadType: "lazy" });
(function() {

    var _init = function() {
        var _vb = ec.form.validator.bind,
            content = $('#surveryContent'),
            contact = $('#surveryContact'),
            code = $('#surveryVerify');

        _vb(content, {
            type: ["require", "length", "forbidChar"],
            validOnChange: true,
            msg_ct: "#errMsg",
            max: 200,
            min: 5,
            msg: {
                "require": "æ‚¨è¿˜æ²¡æœ‰è¾“å…¥åé¦ˆä¿¡æ¯å“¦",
                "length": "åé¦ˆä¿¡æ¯å†…å®¹è¯·æŽ§åˆ¶åœ¨5~200ä¸ªå­—ç¬¦ä¹‹é—´",
                "forbidChar": "åé¦ˆä¿¡æ¯é‡ŒåŒ…å«éžæ³•å­—ç¬¦"
            }
        });
        _vb(contact, {
            type: ["require", "length"],
            validOnChange: true,
            msg_ct: "#errMsg",
            min: 2,
            max: 100,
            msg: {
                "require": "è¯·è¾“å…¥æ‚¨çš„è”ç³»æ–¹å¼",
                "length": "è¯·è¾“å…¥æ­£ç¡®çš„è”ç³»æ–¹å¼"
            }

        });
        _vb(code, {
            type: ["require"],
            validOnChange: true,
            msg_ct: "#errMsg",
            msg: {
                "require": "è¯·è¾“å…¥éªŒè¯ç&nbsp;"
            }
        });

        if (ec.account.isLogin()) { // å·²ç™»å½•
            contact.val(ec.account.email || ec.account.mobile || ec.account.loginName);
        }
        ec.form.input.label(contact, 'é€‰å¡«é‚®ç®±æˆ–è€…å•†åŸŽè´¦æˆ·');
        ec.form.input.label(content, 'è°¢è°¢æ‚¨çš„å®è´µå»ºè®®ï¼Œæˆ‘ä»¬å°†ä¸æ–­æ”¹è¿›');
    };


    

})();


// ç½®é¡¶æŒ‰é’®æŽ§åˆ¶
$(function() {
    var win = $(window),
        timer,
        $btn = $('#hungBar-top'),
        setTime = function() {
            $btn.stop();
            if (win.scrollTop() &gt; 1200) {
                $btn.fadeTo(20, 1);
            } else {
                $btn.fadeOut(20);
            }
            timer = null;
        };
    win.on("scroll", function() {
        timer = setTimeout(setTime, 50);
    });
    setTime();

    $(".hungBar-top").on("click", function() {
        $("html,body").animate({
            scrollTop: "0px"
        }, 400)
    })
});

// è®¾ç½®aæ&nbsp;‡ç­¾ä¸­hrefï¼Œæ›¿æ¢é¡µé¢çš„æ—¶é—´æˆ³
(function() {
    ec.ui.hrefSetTime = function() {
        var time = (new Date()).getTime();
        try {
            $("a[timeType=timestamp]").each(function() {
                var obj = $(this);
                obj.attr("href", obj.attr("href").replace(/timestamp/g, time));
            });
        } catch (err) {}
    };
})();
// æ”¶è´§åœ°å€å¯†é’¥
ec.pkg("ec.encipher");
ec.encipher.base = 10;
ec.encipher.bigPowMod = function(a, b, c) {
    a = str2bigInt(a, ec.encipher.base);
    b = str2bigInt(b, ec.encipher.base);
    c = str2bigInt(c, ec.encipher.base);
    var result = powMod(a, b, c);
    result = bigInt2str(result, ec.encipher.base);
    return result;
};
ec.encipher.randomInt = function(bits) {
    var result = randBigInt(bits, 0);
    return bigInt2str(result, ec.encipher.base);
};

ec.pkg("ec.addr");

ec.addr.list = function(callback) {
    $.ajax({
        type: 'get',
        url: domainShoppingConfig + "/address/list.json?t=" + new Date().getTime(),
        dataType: "json",
        async: false,
        timeout: 10000,
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
        },
        success: function(json) {
            if (!json.success) {
                return;
            }
            if (json.shoppingConfigList.length == 0) {
                $("#base-table").find(".report-errors").show();
            } else {
                $("#base-table").find(".report-errors").hide();
            }
            callback(json.shoppingConfigList, json.randomFlag);
        }

    });
};

ec.addr.syncCache = function(formObj) {

    formObj.find('input[name=province]').attr("value", formObj.find('input[name=provinceG]').attr("value"));
    formObj.find('input[name=city]').attr("value", formObj.find('input[name=cityG]').attr("value"));
    formObj.find('input[name=district]').attr("value", formObj.find('input[name=districtG]').attr("value"));
    formObj.find('input[name=street]').attr("value", formObj.find('input[name=streetG]').attr("value"));
    formObj.find('input[name=needL4Addr]').attr("value", formObj.find('input[name=needL4AddrG]').attr("value"));

}

ec.addr.save = function(form, options) {
    var formObj = $(form);
    var id = formObj.find('input[name=id]').val();
    var url = "/address/add.json";
    var _method = "post";

    ec.addr.syncCache(formObj);

    var province = formObj.find('input[name=province]').val();
    var city = formObj.find('input[name=city]').val();
    var district = formObj.find('input[name=district]').val();
    var street = formObj.find('input[name=street]').val();
    var needL4Addr = formObj.find("input[name='needL4Addr']").val();


    var mobileObj = formObj.find("input[name=mobile]");
    var phoneObj = formObj.find("input[name=phone]");

    if (mobileObj.hasClass('error') || phoneObj.hasClass('error')) {
        return false;
    }

    if (!ec.form.validator(formObj, false)) {
        return false;
    }

    var mobile = $.trim(formObj.find("input[name=mobile]").val());
    var phone = $.trim(formObj.find("input[name=phone]").val());
    if (ec.util.isEmpty(mobile)) {
        return false;
    }

    if (options.afterCheck) {
        options.afterCheck(id);
    }

    if (options.type != 'add') {
        url = "/address/modify/" + id + ".json";
    }

    var consignee = formObj.find('input[name=consignee]').val();
    var address = formObj.find('input[name=address],textarea[name=address]').val();
    var zipCode = formObj.find('input[name=zipCode]').val();
    var randomFlag = formObj.find('input[name=randomFlag]').val();
    var data = {};
    data.consignee = consignee;
    data.province = province;
    data.city = city;
    data.district = district;
    data.street = street;
    data.address = address;
    data.zipCode = zipCode;
    data.mobile = mobile;
    data.phone = phone;
    data.randomFlag = randomFlag;
    var $defaultFlag = formObj.find('input[name=defaultFlag]');
    if ($defaultFlag.length == 1 &amp;&amp; $defaultFlag[0].checked &amp;&amp; !$defaultFlag[0].disabled) {
        data.defaultFlag = $defaultFlag.val();
    }
    data.t = new Date().getTime();
    $.ajax({
        url: domainShoppingConfig + url + "?_method=" + _method,
        type: "post",
        data: data,
        async: false,
        dataType: "json",
        timeout: 20000,
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
        },
        success: function(json) {
            if (!json.success) {
                ec.showError(json);
                return;
            }

            if (options.successFunction) {
                options.successFunction(json.shoppingConfig, form);
            }
        },
        error: function() {
            alert("ä¿å­˜è¶…æ—¶ï¼Œè¯·é‡è¯•ï¼");
        }
    })

    return false;
};
// æ›´æ”¹é»˜è®¤åœ°å€
ec.addr.setDefault = function(id, options) {
    var B = ec.util.cookie.get("sc_b");

    $.ajax({
        //        url: domainShoppingConfig + "/address/setDefault.json?id=" + id + "&amp;_method=PUT&amp;t="+new Date().getTime(),
        url: domainShoppingConfig + "/address/setDefault.json?id=" + id + "&amp;t=" + new Date().getTime(),
        type: "post",
        async: false,
        dataType: "json",
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
        },
        success: function(json) {
            if (!json.success) {
                ec.showError(json);
                return;
            }

            if (options.successFunction) {
                options.successFunction(id);
            }
        },
        error: function() {
            alert("æ“ä½œè¶…æ—¶ï¼Œè¯·é‡è¯•ï¼");
        }
    })
};

ec.addr.getAll = function(options) {
    $.ajax({
        url: domainShoppingConfig + "/member/myAddresses.json",
        type: "post",
        async: false,
        dataType: "json",
        timeout: 20000,
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
        },
        success: function(json) {
            if (!json.success) {
                ec.showError(json);
                return;
            }

            if (options.successFunction) {
                options.successFunction(json);
            }
        },
        error: function() {
            alert("æ“ä½œè¶…æ—¶ï¼Œè¯·é‡è¯•ï¼");
        }
    })
};

ec.addr.del = function(id, options) {
    $.ajax({
        //        url: domainShoppingConfig + "/address/" + id + ".json?_method=delete",
        url: domainShoppingConfig + "/address/del/" + id + ".json",
        type: "post",
        async: false,
        dataType: "json",
        timeout: 10000,
        beforeSend: function(xhr) {
            xhr.withCredentials = true;
        },
        success: function(json) {
            if (!json.success) {
                ec.showError(json);

                if (json.code == 'default') {
                    if (options.deleteDefault) {
                        options.deleteDefault(id);
                    }
                }
                return;
            }

            if (options.successFunction) {
                options.successFunction(id);
            }
        },
        error: function() {
            alert("è¯»å–è¶…æ—¶ï¼Œè¯·é‡è¯•ï¼");
        }
    })
};




ec.pkg("ec.prescription");
/**
 * èŽ·å–é¢„è®¡åˆ°è´§æ—¶é—´
 *
 * @param callback
 *            å›žè°ƒå‡½æ•°
 * @param distinctId
 *            åŒºID
 * @param price
 *            é‡‘é¢
 * @param invoiceonfig
 *            å‘ç¥¨ç±»åž‹
 */
ec.prescription.getEstimateGetOrderTime = function(callback, distinctId, price,
    invoiceonfig) {
    $.ajax({
        url: "/order/estimateTime.json?d=" + distinctId + "&amp;p=" + price +
            "&amp;i=" + invoiceonfig,
        dataType: "json",
        timeout: 20000,
        timeout: function() {
            callback(null, true);
        },
        beforeSend: function() {
            ec.ui.loading.show({
                modal: false
            });
        },
        complete: ec.ui.loading.hide,
        success: function(json) {
            callback(json.info, false);
        },
        error: function() {
            callback(null, true);
        }
    });
};

/**
 * èŽ·å–é¢„è®¡åˆ°è´§æ—¶é—´ è¯¦æƒ…é¡µè°ƒç”¨
 *
 * @param callback
 *            å›žè°ƒå‡½æ•°
 * @param distinctId
 *            åŒºID
 * @param price
 *            é‡‘é¢
 * @param invoiceonfig
 *            å‘ç¥¨ç±»åž‹
 */
ec.prescription.getEstimateGetOrderTime2 = function(callback, distinctId, price,
    invoiceonfig, skuCodeList, countTemp) {
    $.ajax({
        url: "/order/estimateArrivalTime.json?d=" + distinctId + "&amp;p=" + price +
            "&amp;i=" + invoiceonfig + "&amp;l=" + skuCodeList + "&amp;k=" + countTemp,
        dataType: "json",
        timeout: 20000,
        timeout: function() {
            callback(null, true);
        },
        success: function(json) {
            callback(json, false);
        },
        error: function() {
            callback(null, true);
        }
    });
};


/**
 * èŽ·å–é¢„è®¡åˆ°è´§æ—¶é—´
 *
 * @param callback
 *            å›žè°ƒå‡½æ•°
 * @param distinctId
 *            åŒºID
 * @param price
 *            é‡‘é¢
 * @param invoiceonfig
 *            å‘ç¥¨ç±»åž‹
 */
ec.prescription.queryPreDeliveryAndArrival = function(callback, districtId, price,
    invoiceType, sbomCode) {
    $.ajax({
        url: "/order/queryPreDeliveryAndArrival.json",
        type: "POST",
        data: {
            "districtId": districtId,
            "price": price,
            "invoiceType": invoiceType,
            "sbomCode": sbomCode
        },
        dataType: "json",
        timeout: 20000,
        timeout: function() {
            callback(null, true);
        },
        success: function(json) {
            callback(json, false);
        },
        error: function() {
            callback(null, true);
        }
    });
};

getPointBalance = function() {
    utils.ajaxOpenAPI({
        type: 'GET',
        url: "/point/queryUserPointBalanceDetail.json",
        dataType: "json",
        timeout: 10000,
        success: function(json) {
            if (json.resultCode != "200000") {
                $("#newPointlogin_status").hide();
                return;
            }
            json = json.data;
            var pointBlance = json.pointBlance;
            $("#userPointBalance").text(pointBlance);
            //ç‰¹æƒé¡µç§¯åˆ†èµ‹å€¼
            if (parseInt(pointBlance) &gt; parseInt(999)) {
                $("#balanceicon_privilege").empty().html('&lt;a href="/member/newpoint?t=' + new Date().getTime() + '" target="_blank"&gt;' + 999 + '+&lt;/a&gt;');
            } else {
                $("#balanceicon_privilege").empty().html('&lt;a href="/member/newpoint?t=' + new Date().getTime() + '" target="_blank"&gt;' + pointBlance + '&lt;/a&gt;');
            }
            //æˆ‘çš„å•†åŸŽé¦–é¡µç§¯åˆ†èµ‹å€¼
            $("#balanceicon_myCenter").empty().html('&lt;a href="/member/newpoint?t=' + new Date().getTime() + '" target="_blank"&gt;' + pointBlance + '&lt;/a&gt;');
            $("#balanceicon_myCenter").removeClass("p-price-no");
        }
    });
};

/**
 * è®¡ç®—å­—ç¬¦ä¸²é•¿åº¦ ä¸­æ–‡å­—ç¬¦å&nbsp;ä¸¤ä¸ªå­—ç¬¦
 *
 * @param str
 *            å¾…è®¡ç®—çš„å­—ç¬¦ä¸²
 */
ec.getLength = function(str) {
    if (str == null) return 0;
    if (typeof str != "string") {
        str += "";
    }

    return str.replace(/[^\x00-\xff]/g, "01").length;
};

/**
 * æ£€æµ‹æ˜¯å¦åŒ…å«ä¸­æ–‡
 *
 * @param s
 *            å¾…æ£€æµ‹çš„å­—ç¬¦ä¸²
 */
ec.isChina = function(s) {
    var patrn = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;
    if (!patrn.exec(s)) {
        return false;
    } else {
        return true;
    }
};
/**
 * jsæˆªå–å­—ç¬¦ä¸²ï¼Œä¸­è‹±æ–‡éƒ½èƒ½ç”¨
 *
 * @param strï¼šéœ€è¦æˆªå–çš„å­—ç¬¦ä¸²
 * @param len:
 *            éœ€è¦æˆªå–çš„é•¿åº¦
 */
ec.cutstr = function(str, len) {
    var str_length = 0;
    var str_len = 0;
    str_cut = new String();
    str_len = str.length;
    // æœç´¢åŽ†å²è¯æ˜¯å¦åŒ…å«ä¸­æ–‡
    if (!ec.isChina(str)) {
        len = len + 6;
    }

    for (var i = 0; i &lt; str_len; i++) {
        a = str.charAt(i);
        str_length++;
        if (escape(a).length &gt; 4) {
            // ä¸­æ–‡å­—ç¬¦çš„é•¿åº¦ç»ç¼–ç&nbsp;ä¹‹åŽå¤§äºŽ4
            str_length++;
        }
        str_cut = str_cut.concat(a);
        if (str_length &gt;= len) {
            str_cut = str_cut.concat("...");
            return str_cut;
        }
    }
    // å¦‚æžœç»™å®šå­—ç¬¦ä¸²å°äºŽæŒ‡å®šé•¿åº¦ï¼Œåˆ™è¿”å›žæºå­—ç¬¦ä¸²ï¼›
    if (str_length &lt; len) {
        return str;
    }
};

/**
 * æ£€æµ‹æ˜¯å¦æ˜¯IEæµè§ˆå™¨
 */
ec.checkBrowerIE = function() {
    var ua = window.navigator.userAgent;
    // å¦‚æžœæ˜¯IEæµè§ˆå™¨ï¼Œåˆ™è¿”å›žtrue
    if (!!window.ActiveXObject || "ActiveXObject" in window || ua.indexOf("MSIE") &gt; -1 || ua.indexOf("Trident") &gt; -1) {
        return true;
    } else {
        return false;
    }
};

/**
 * å°†ä½¿ç”¨freemarkçš„htmlå‡½æ•°è½¬ä¹‰çš„å­—ç¬¦ä¸²è¿˜åŽŸ ä¸»è¦å¯¹åŒå¼•å·ã€&lt;ã€&gt;ã€&amp;ä¸Ž/ç­‰è¿›è¡Œè¿˜åŽŸ
 *
 * @param sourceStr
 *            è½¬ä¹‰åŽå­—ç¬¦ä¸²
 */
ec.freemarkerDecode = function(sourceStr) {
    sourceStr = sourceStr.replaceAll("&amp;apos;", "'"); // æ›¿æ¢å•å¼•å·
    sourceStr = sourceStr.replaceAll("&amp;amp;", "&amp;"); // æ›¿æ¢&amp;
    sourceStr = sourceStr.replaceAll("&amp;quot;", "\""); // æ›¿æ¢åŒå¼•å·
    sourceStr = sourceStr.replaceAll("&amp;nbsp;", " "); // æ›¿æ¢ç©ºæ&nbsp;¼
    sourceStr = sourceStr.replaceAll("&amp;lt;", "&lt;"); // æ›¿æ¢å·¦å°–æ‹¬å·
    sourceStr = sourceStr.replaceAll("&amp;gt;", "&gt;"); // æ›¿æ¢å³å°–æ‹¬å·
    sourceStr = sourceStr.replaceAll("\t", "&amp;nbsp;&amp;nbsp;"); // æ›¿æ¢å·¦æ–œæ&nbsp;

    return sourceStr;
};

/**
 * å°†è¿”å›žçš„ç»“æžœåŽ»é‡
 *
 * @param sourceHis
 *            å¾…åŽ»é‡çš„æœç´¢åŽ†å²
 */
ec.searchHistoryUnique = function(sourceHis) {
    var new_arr = [];
    for (var i = 0; i &lt; sourceHis.length; i++) {
        // å–å¾—æœç´¢è¯
        var items = sourceHis[i];
        // åˆ¤æ–­å…ƒç´&nbsp;æ˜¯å¦å­˜åœ¨äºŽnew_arrä¸­ï¼Œå¦‚æžœä¸å­˜åœ¨åˆ™æ’å…¥åˆ°new_arrçš„æœ€åŽ
        if ($.inArray(items, new_arr) == -1) {
            new_arr.push(items);
        }
    }
    return new_arr;
};

ec.pkg("ec.search");
// æœç´¢åŽ†å²æ˜¾ç¤ºæœ€å¤§é•¿åº¦
var searchHistoryMaxLength = 48;
var hisWordListLen = 0;
/**
 * æŸ¥è¯¢ç”¨æˆ·åŽ†å²æœç´¢
 */
ec.search.querySearchHistory = function(flag) {
    new ec.ajax().get({
        url: '/searchHistory.json?t=' + new Date().getTime(),
        type: "post",
        dateType: "json",
        timeout: 10000,
        timeoutFunction: function() {
            //alert("æ“ä½œè¶…æ—¶ï¼Œè¯·é‡è¯•ï¼");
        },
        successFunction: function(json) {
            var f = flag;
            var hisList = [];
            if (json.success != undefined &amp;&amp; !json.success) {
                hisWordListLen = 0;
                ec.search.hotWord(f, hisList, hisWordListLen)
                return;
            }

            hisList = json.searchHistoryList;
            hisWordListLen = hisList.length;
            var html = [];
            var newSearchHistoryMaxLength;
            if (hisWordListLen &gt; 6) {
                hisWordListLen = 6;
            }
            for (var j = 0; j &lt; hisWordListLen; j++) {
                // å–å¾—åŽ†å²æœç´¢è¯
                var hisKeyword = hisList[j];
                // è®¡ç®—åŽ†å²æœç´¢è¯é•¿åº¦
                var hisKeywordLen = ec.getLength(hisKeyword);
                hisKeyword = hisKeyword.transHtmlAttribute();
                var encoceText = encodeURIComponent(hisKeyword);
                // æš‚æ—¶ä¸åŒºåˆ†æœç´¢é¢‘é“ å¦‚åŽä¸ºã€è£è€€
                var searchWordUrl = ec.base.findSearchHotWordUrl(hisKeyword);
                if (searchWordUrl == null || searchWordUrl == "") {
                    html.push('&lt;li&gt;&lt;a href="/search?keyword=' + encoceText + '" target="_blank" onclick="pushMsgSearchHistory(\'' + encoceText + '\')" data-value="' + encoceText + '"&gt;');
                } else {
                    html.push('&lt;li&gt;&lt;a href="' + searchWordUrl + '" target="_blank" onclick="pushMsgSearchHistory(\'' + encoceText + '\')" data-value="' + encoceText + '"&gt;');
                };
                if (hisKeywordLen &gt; searchHistoryMaxLength) {
                    // æˆªå–å­—ç¬¦ä¸²
                    html.push($("&lt;div/&gt;").text(ec.cutstr(hisKeyword, searchHistoryMaxLength)).html());
                } else {
                    html.push($("&lt;div/&gt;").text(hisKeyword).html());
                }

                html.push('&lt;/a&gt;&lt;/li&gt;');
            }
            // è®¾ç½®å€¼
            $("#search-history-list").html(html.join(""));
            // æ˜¾ç¤ºå€¼
            $("#search-history").show();
            if ($("#search-history").is(':visible') || $(".autocomplete").is(':visible')) {
                $("#search-bar-form").addClass("hover")
            } else {
                $("#search-bar-form").removeClass("hover")
            }

            ec.search.hotWord(f, hisList, hisWordListLen);
        },
        errorFunction: function(json) {}
    });
};

/**
 * æœç´¢åŽ†å²è®°å½•ä¸ŠæŠ¥
 */
function pushMsgSearchHistory(word) {
    ec.dapClick(300090101, {
        "searchWord": decodeURIComponent(word),
        "type": "3",
        "click": "1"
    });
}
/**
 * æ¸…ç©ºæœç´¢åŽ†å²
 */
ec.search.deleteSearchHistory = function() {
    $.ajax({
        type: "post",
        url: '/search/clearUp.json?t=' + new Date().getTime(),
        dataType: "json",
        timeout: 10000,
        success: function(json) {
            if (json.success != undefined &amp;&amp; !json.success) {
                return;
            }
        }
    });
};
/**
 * çƒ­æœè¯å±•ç¤º
 */
ec.search.hotWord = function(flag, hisList, hisWordListLen) {
    var f = flag;
    var hisLst = hisList;
    var hisWLL = hisWordListLen;

    var hotWordListAll = ec.search.searchArr;
    var hotWordListSC = [];
    var hotWordListHW = [];
    var hotWordListRY = [];
    var hotWordList = [];
    for (var swal = 0; swal &lt; hotWordListAll.length; swal++) {
        if (hotWordListAll[swal].inSearchBox == 1) {
            if (hotWordListAll[swal].type == 1) {
                hotWordListSC.push(hotWordListAll[swal]);
            } else if (hotWordListAll[swal].type == 2) {
                hotWordListHW.push(hotWordListAll[swal]);
            } else {
                hotWordListRY.push(hotWordListAll[swal]);
            }
        }
    }
    if (f == "searchWordSCList") {
        hotWordList = hotWordListSC;
    } else if (f == "searchWordHWList") {
        hotWordList = hotWordListHW;
    } else {
        hotWordList = hotWordListRY;
    }
    var html = [];
    var tag = false;
    var tip = 1;
    var recordLen = 10 - hisWordListLen;
    //çƒ­æœè¯å±•ç¤º
    if (hotWordList.length &lt;= 2) {
        return;
    }
    for (var i = 2; i &lt; hotWordList.length; i++) {
        // å–å¾—çƒ­æœè¯
        var hotWord = hotWordList[i];
        // è®¡ç®—çƒ­æœè¯çš„é•¿åº¦
        var hotWordLen = ec.getLength(hotWord.word);
        word = hotWord.word.transHtmlAttribute();
        tag = false;
        if (hisWordListLen != 0) {
            for (var k = 0; k &lt; hisWordListLen; k++) {
                var hisWord = hisLst[k];
                if (word == hisWord.transHtmlAttribute()) {
                    tag = true;
                    break;
                }
            }
        }
        if (tip &gt; recordLen) {
            break;
        }
        if (tag == false) {
            if (hotWord.isActivityWords == 1) {
                if (hotWord.activityUrl != null &amp;&amp; hotWord.activityUrl != "") {
                    html.push('&lt;li&gt;&lt;a href="' + hotWord.activityUrl + '" target="_blank" onclick="pushHotSearchMsg(\'' + ec.encodeForJS(word) + '\')" data-value="' + encodeURIComponent(word) + '"&gt;');
                    tip = tip + 1;
                } else {
                    html.push('&lt;li&gt;&lt;a href="javascript:void(0);" target="_blank" onclick="searchFunc(\'' + ec.encodeForJS(word) + '\'); return false;" data-value="' + encodeURIComponent(word) + '"&gt;');
                    tip = tip + 1;
                }
            } else {
                html.push('&lt;li&gt;&lt;a href="javascript:void(0);" target="_blank" onclick="searchFunc(\'' + ec.encodeForJS(word) + '\'); return false;" data-value="' + encodeURIComponent(word) + '"&gt;');
                tip = tip + 1;
            }

            if (hotWordLen &gt; searchHistoryMaxLength) {
                // æˆªå–å­—ç¬¦ä¸²
                html.push($("&lt;div/&gt;").text(ec.cutstr(word, searchHistoryMaxLength)).html());
            } else {
                html.push($("&lt;div/&gt;").text(word).html());
            }
            html.push('&lt;/a&gt;&lt;/li&gt;');
        }
    }
    if (tip &gt; 1) {
        // è®¾ç½®å€¼
        $("#search-key-list").html(html.join(""));
        // æ˜¾ç¤ºå€¼
        $("#search-key").show();
        if ($("#search-key").is(':visible') || $(".autocomplete").is(':visible')) {
            $("#search-bar-form").addClass("hover")
        } else {
            $("#search-bar-form").removeClass("hover")
        }
    }
}

/***************************************************
 * åˆ·æ–°é¦–é¡µç”¨æˆ·ç»éªŒæ¡
 ***************************************************/
//ç§¯åˆ†å’Œç§¯åˆ†çº§åˆ«å¯¹åº”å…³ç³»
//V0------V1------V2------V3------V4------V5
//00-----100-----1000----5000----20000---50000+
ec.account.privilege_updateProgress = function(max, min, totalPoint, gradeCode) { ////console.log('max=' + max + ', min=' + min + ', totalPoint=' + totalPoint + ', gradeCode=' + gradeCode);
    if (max &gt;= 0 &amp;&amp; min &gt;= 0 &amp;&amp; totalPoint &gt;= 0) {
        var v_high = max,
            v_low = min,
            v_curr = totalPoint,
            per = (v_curr - v_low) / (v_high - v_low), //æ¯”ä¾‹
            _deg = 0; //åº¦æ•°
        if (parseInt(v_curr) &gt;= parseInt(v_high)) {
            $(".canvas-left div").css({ "transform": "rotateZ(0deg)", "background": "#F05C20" });
            $(".canvas-right div").css({ "transform": "rotateZ(-39deg)" });
        } else {
            if (per &gt; 0.5) {
                _deg = 280 * per - 320;
                $(".canvas-left div").css({ "transform": "rotateZ(0deg)" });
                $(".canvas-right div").css({ "transform": "rotateZ(" + _deg + "deg)" });
                if (per &gt; 0.7) {
                    $(".canvas-left div").css({ "background": "#F05C20" });
                } else {
                    _deg = _deg + 180;
                    $(".canvas-left div").css({ "transform": "rotateZ(" + _deg + "deg)", "background": "-webkit-gradient(linear, 0 bottom, right 0, from(#F05C20), to(#F58555))" });
                    $(".canvas-right div").css({ "background": "-webkit-gradient(linear, 0 bottom, right 0, from(#F58555), to(#F05C20))" });
                }
            } else {
                if (per &lt; 0.01 &amp;&amp; per &gt; 0) {
                    per = 0.01;
                }
                _deg = 265 * per - 125;
                $(".canvas-left div").css({ "transform": "rotateZ(" + _deg + "deg)", "background": "-webkit-gradient(linear, 0 bottom, 0 0, from(#F05C20), to(#F58555))" });
                $(".canvas-right div").css({ "transform": "rotateZ(-180deg)" });
            }
        }
    }

    var i = $("#user-vip-level-tips");
    if (gradeCode != null) {
        switch (gradeCode) {
            case 0:
                vipColor = "#999";
                i.attr("class", "icon-vip-level-0");
                break;
            case 1:
                vipColor = "#01abdf";
                i.attr("class", "icon-vip-level-1");
                break;
            case 2:
                vipColor = "#24ca43";
                i.attr("class", "icon-vip-level-2");
                break;
            case 3:
                vipColor = "#ffb710";
                i.attr("class", "icon-vip-level-3");
                break;
            case 4:
                vipColor = "#fc5d21";
                i.attr("class", "icon-vip-level-4");
                break;
            case 5:
                vipColor = "#fc3784";
                i.attr("class", "icon-vip-level-5");
                break;
            default:
                vipColor = "#999";
                i.attr("class", "icon-vip-level-0");
                break;
        }
    }
};

ec.account.privilege_updateProgressIndex = function(gradeCode) {
    var i = $("#user-vip-level-tips-index");
    if (gradeCode != null) {
        switch (gradeCode) {
            case 0:
                vipColor = "#999";
                i.attr("class", "user-level icon-vip-level-0");
                break;
            case 1:
                vipColor = "#01abdf";
                i.attr("class", "user-level icon-vip-level-1");
                break;
            case 2:
                vipColor = "#24ca43";
                i.attr("class", "user-level icon-vip-level-2");
                break;
            case 3:
                vipColor = "#ffb710";
                i.attr("class", "user-level icon-vip-level-3");
                break;
            case 4:
                vipColor = "#fc5d21";
                i.attr("class", "user-level icon-vip-level-4");
                break;
            case 5:
                vipColor = "#fc3784";
                i.attr("class", "user-level icon-vip-level-5");
                break;
            default:
                vipColor = "#999";
                i.attr("class", "user-level icon-vip-level-0");
                break;
        }
    }
};


/**
 * å¤„ç†æ•°æ®ä¸ŠæŠ¥çš„TID
 */
function getPtid() {

    var tid = ec.util.cookie.get("TID");
    if (tid &amp;&amp; tid != null &amp;&amp; tid != "") {
        return tid;
    }

    var deviceid = ec.util.cookie.get("deviceid");
    if (deviceid == null || deviceid == "" || deviceid == undefined) {
        var s = [];
        var h = "0123456789abcdef";
        for (var a = 0; a &lt; 32; a++) {
            s[a] = h.substr(Math.floor(Math.random() * 16), 1);
        }
        s[14] = "4";
        s[19] = h.substr((s[19] &amp; 3) | 8, 1);
        s[8] = s[13] = s[18] = s[23];
        deviceid = s.join("");

        ec.util.cookie.set("deviceid", deviceid, {
            "expires": 3650,
            "domain": "vmall.com"
        });
    }
    ec.util.cookie.set("TID", deviceid, {
        "expires": 3650,
        "domain": "vmall.com"
    });
    return deviceid;
};

/**
 * å¤„ç†æ•°æ®ä¸ŠæŠ¥çš„æ—¶é—´
 */
function getTime() {
    var date = new Date();
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m &lt; 10 ? ('0' + m) : m;
    var d = date.getDate();
    d = d &lt; 10 ? ('0' + d) : d;
    var h = date.getHours();
    h = h &lt; 10 ? ('0' + h) : h;
    var minute = date.getMinutes();
    var second = date.getSeconds();
    minute = minute &lt; 10 ? ('0' + minute) : minute;
    second = second &lt; 10 ? ('0' + second) : second;
    var time = "" + y + m + d + h + minute + second;
    return time;

}

/**
 * é˜²æ­¢è„šæœ¬æ³¨å…¥
 * @param str
 * @returns
 */
function safeStr(str) {
    if (str == null) {
        return;
    }
    return str.replace(/&lt;/g, '&amp;lt;').replace(/&gt;/g, '&amp;gt;').replace(/"/g, "&amp;quot;").replace(/'/g, "&amp;#039;");
}

/**
 *dapä¸ŠæŠ¥
 */
ec.account.dapPushMsg = function(key, value, type) {
    _paq.push(['setTrackerUrl', dapDomain + '/dap/report']);
    var orderCode = ((ec.order &amp;&amp; ec.order.orderCode) ? ec.order.orderCode : "") + '';
    _paq.push(['setSiteId', "www.vmall.com"]);
    // ä¸ŠæŠ¥è‡ªå®šä¹‰æ•°æ®
    if (type == "view") {
        getPtid();
        _paq.push(['setCustomVariable', 1, 'cid', (ec.util.cookie.get("cps_id") || ""), 'page']);
        _paq.push(['setCustomVariable', 2, 'direct', (ec.util.cookie.get("cps_dap_redirect") || ""), 'page']);
        _paq.push(['setCustomVariable', 4, 'wi', (ec.util.cookie.get("cps_wi") || ""), 'page']);
        _paq.push(["trackPageView"]);
        ec.code.addAnalytics({ hicloud: true });
        _paq.push(['trackPageView']);
    } else if (type == "click") {
        _paq.push(['setCustomVariable', 1, 'cid', (ec.util.cookie.get("cps_id") || ""), 'page']);
        _paq.push(['setCustomVariable', 2, 'direct', (ec.util.cookie.get("cps_dap_redirect") || ""), 'page']);
        _paq.push(['setCustomVariable', 3, 'orderid', orderCode, 'page']);
        _paq.push(['setCustomVariable', 4, 'wi', (ec.util.cookie.get("cps_wi") || ""), 'page']);
        _paq.push(['setCustomVariable', 10, 'uid', ((ec.util.cookie.get("uid") ? ec.util.cookie.get("uid") : "") || ""), 'visit']);


        _paq.push(["trackLink", key, "link", value]);
    }
    //æ¸…ç©ºdapä¸ŠæŠ¥æ&nbsp;‡å¿—
    ec.util.cookie.set("cps_dap_redirect", null, { expires: -1, domain: "vmall.com" });
    ec.load({ url: "https://res.vmallres.com/bi/hianalytics.js", type: "js", loadType: "lazy" });
}

$(function() {
    ec.account.dapPushMsg('', '', 'view'); // é¡µé¢åŠ&nbsp;è½½ä¸ŠæŠ¥
});

ec.openWindow = function(opt) {
    if ('string' === typeof(opt)) {
        opt = { url: opt };
    }
    opt = $.extend({
        url: '',
        name: '',
        features: '',
        replace: false
    }, opt);
    return window.open(opt.url, opt.name, opt.features, opt.replace);
}

ec.redirectTo = function(opt) {
    if ('string' === typeof(opt)) {
        opt = { url: opt };
    }
    opt = $.extend({
        url: '',
        win: window,
    }, opt);
    return opt.win.location.href = opt.url.transHtmlAttribute();
}

ec.dapClick = function(link, content) {
    var value = {
        // UID: ec.util.cookie.get("uid"),
        TID: getPtid(),
        TIME: getTime(),
        CONTENT: content
    };
    ec.account.dapPushMsg(link, value, "click");
    ec.code.addAnalytics({ hicloud: true });
    _paq.push(["trackLink", link, "link", value]);
}

ec.loadCsrfToken = function(c) {
    if ('function' === typeof c) c();
}</pre></body></html>