03.product.js

   1 /*
   2  item.jd.com Compressed by uglify 
   3  Author:keelii 
   4  Date: 2014-08-05 6:52:26 [PM] 
   5  */
   6 function insertScript(t, e) {
   7     var i = document.getElementsByTagName("head")[0],
   8         s = document.createElement("script");
   9     if (s.setAttribute("type", "text/javascript"), e)
  10         for (var a in e) e.hasOwnProperty(a) && s.setAttribute(a, e[a]);
  11     s.setAttribute("src", t), i.appendChild(s)
  12 }
  13 
  14 function onNumChange() {
  15     var t = Number($("#buy-num").val()),
  16         e = $("#gift-tips a"),
  17         i = e.attr("href");
  18     e.attr("href", i.replace(/pcount=\d+/, "pcount=" + t))
  19 }
  20 
  21 function sendRequest(t) {
  22     var e = new Image;
  23     e.setAttribute("src", t), e = null
  24 }
  25 
  26 function strtotime(t, e) {
  27     function i(t, e, i) {
  28         var s, a = c[e];
  29         a !== void 0 && (s = a - r.getDay(), 0 === s ? s = 7 * i : s > 0 && "last" === t ? s -= 7 : 0 > s && "next" === t && (s += 7), r.setDate(r.getDate() + s))
  30     }
  31 
  32     function s(t) {
  33         var e = t.split(" "),
  34             s = e[0],
  35             a = e[1].substring(0, 3),
  36             n = /\d+/.test(s),
  37             o = "ago" === e[2],
  38             c = ("last" === s ? -1 : 1) * (o ? -1 : 1);
  39         if (n && (c *= parseInt(s, 10)), d.hasOwnProperty(a) && !e[1].match(/^mon(day|\.)?$/i)) return r["set" + d[a]](r["get" + d[a]]() + c);
  40         if ("wee" === a) return r.setDate(r.getDate() + 7 * c);
  41         if ("next" === s || "last" === s) i(s, a, c);
  42         else if (!n) return !1;
  43         return !0
  44     }
  45     var a, n, o, r, c, d, l, p, u, m;
  46     if (!t) return null;
  47     if (t = t.replace(/\s{2,}/g, " ").replace(/[\t\r\n]/g, "").toLowerCase(), "now" === t) return null === e || isNaN(e) ? 0 | (new Date).getTime() / 1e3 : 0 | e;
  48     if (!isNaN(a = Date.parse(t))) return 0 | a / 1e3;
  49     if ("now" === t) return (new Date).getTime() / 1e3;
  50     if (!isNaN(a = Date.parse(t))) return a / 1e3;
  51     if (n = t.match(/^(\d{2,4})-(\d{2})-(\d{2})(?:\s(\d{1,2}):(\d{2})(?::\d{2})?)?(?:\.(\d+)?)?$/)) return o = n[1] >= 0 && 69 >= n[1] ? +n[1] + 2e3 : n[1], new Date(o, parseInt(n[2], 10) - 1, n[3], n[4] || 0, n[5] || 0, n[6] || 0, n[7] || 0) / 1e3;
  52     if (r = e ? new Date(1e3 * e) : new Date, c = {
  53         sun: 0,
  54         mon: 1,
  55         tue: 2,
  56         wed: 3,
  57         thu: 4,
  58         fri: 5,
  59         sat: 6
  60     }, d = {
  61         yea: "FullYear",
  62         mon: "Month",
  63         day: "Date",
  64         hou: "Hours",
  65         min: "Minutes",
  66         sec: "Seconds"
  67     }, p = "(years?|months?|weeks?|days?|hours?|minutes?|min|seconds?|sec|sunday|sun\\.?|monday|mon\\.?|tuesday|tue\\.?|wednesday|wed\\.?|thursday|thu\\.?|friday|fri\\.?|saturday|sat\\.?)", u = "([+-]?\\d+\\s" + p + "|" + "(last|next)\\s" + p + ")(\\sago)?", n = t.match(RegExp(u, "gi")), !n) return !1;
  68     for (m = 0, l = n.length; l > m; m++)
  69         if (!s(n[m])) return !1;
  70     return r.getTime() / 1e3
  71 }
  72 
  73 function mktime() {
  74     var t = new Date,
  75         e = arguments,
  76         i = 0,
  77         s = ["Hours", "Minutes", "Seconds", "Month", "Date", "FullYear"];
  78     for (i = 0; s.length > i; i++)
  79         if (e[i] === void 0) e[i] = t["get" + s[i]](), e[i] += 3 === i;
  80         else if (e[i] = parseInt(e[i], 10), isNaN(e[i])) return !1;
  81     return e[5] += e[5] >= 0 ? 69 >= e[5] ? 2e3 : 100 >= e[5] ? 1900 : 0 : 0, t.setFullYear(e[5], e[3] - 1, e[4]), t.setHours(e[0], e[1], e[2]), (t.getTime() / 1e3 >> 0) - (0 > t.getTime())
  82 }
  83 
  84 function monthDay(t, e) {
  85     var i, s, a, n = new Date(1e3 * t),
  86         o = new Date(1e3 * e),
  87         r = n.getFullYear(),
  88         c = n.getMonth() + 1,
  89         d = n.getDate(),
  90         l = o.getFullYear(),
  91         p = o.getMonth() + 1,
  92         u = o.getDate(),
  93         m = "",
  94         h = 12 * (l - r) + p - c;
  95     return i = Math.floor(h / 12), s = h % 12, s = 0 === s - Math.floor(s) ? s + 1 : s, a = (mktime(0, 0, 0, p, u, l) - mktime(0, 0, 0, p, d, l)) / 86400, 0 > a && (s -= 1), 0 > s && (i -= 1), i > 0 && (m += i + "\u5e74"), s > 0 && (m += s + "\u4e2a\u6708"), m
  96 }
  97 
  98 function el_top_middle(t, e, i) {
  99     var s = t.outerWidth(),
 100         a = t.outerHeight();
 101     e && (s = e), i && (a = i);
 102     var n = function() {};
 103     n.doc = function() {
 104         return "BackCompat" == document.compatMode ? document.body : document.documentElement
 105     }, n.clientWidth = function() {
 106         return n.doc().clientWidth
 107     }, n.clientHeight = function() {
 108         return n.doc().clientHeight
 109     }, n.docWidth = function() {
 110         return Math.max(n.doc().clientWidth, n.doc().scrollWidth)
 111     }, n.docHeight = function() {
 112         return Math.max(n.doc().clientHeight, n.doc().scrollHeight)
 113     };
 114     var o = n.docHeight() != n.clientHeight() ? 16 : 0,
 115         r = $(document).scrollTop(),
 116         c = (n.clientHeight() - a) / 2 + r,
 117         d = (n.clientWidth() - o - s) / 2;
 118     t.css({
 119         left: d,
 120         top: c
 121     })
 122 }
 123 
 124 function showBaitiaoFq() {
 125     var t = document.getElementById("Fqfk_Tip");
 126     $("#InitCartUrl").attr("href"), t.style.width = "500px";
 127     var e = 502,
 128         i = 358,
 129         s = '        <div id="Fqfk_Tip" class="Tip360" style="width:auto;">            <div class="Tip_Title">                <em>                    <img src="' + fq_serverSite + 'skin/images/tip_close.jpg" class="Tip_Close"/>                </em>\u767d\u6761/\u5206\u671f            </div>            <div class="Tip_Content" id="Tip_fq0">                <div id="baitiaofenqi" style="position:relative;width:482px;height:330px;">                </div>            </div>        </div>',
 130         a = ("<div id='c04tip' class='clearfix' style='z-index:20000;position:absolute;width:" + (e + 5) + "px;height:" + (i + 5) + "px;'><div style='position:absolute;margin:5px 0 0 5px;width:" + e + "px;height:" + i + "px;z-index:20001;'>{HTML}</div></div>").replace("{HTML}", s),
 131         n = $(a);
 132     n.append(s), $(document.body).prepend(n), $("#Fqfk_Tip").show(), el_top_middle($("#c04tip"), 502, 358), $.ajax({
 133         url: "http://fa.jd.com/loadFa.js?aid=2_163_5702",
 134         dataType: "script",
 135         cache: !0
 136     }), $(".Tip_Close").click(function() {
 137         $("#c04tip").remove()
 138     })
 139 }
 140 
 141 function showNaBaitiao() {
 142     var t = 502,
 143         e = 358,
 144         i = $("<div id='c04tip' class='clearfix' style='z-index:20000;position:absolute;width:" + (t + 5) + "px;height:" + (e + 5) + "px;'><div style='position:absolute;margin:5px 0 0 5px;width:" + t + "px;height:" + e + "px;z-index:20001;'></div></div>"),
 145         s = '        <div id="Fqfk_Tip" class="Tip360" style="width:auto;width:500px;height:310px;">            <div class="Tip_Title">                <em><img src="http://jd2008.jd.com/purchase/skin/images/tip_close.jpg" class="Tip_Close"></em> \u62ff\u767d\u6761            </div>            <div class="Tip_Content" id="nabaitiao"></div>        </div>';
 146     i.append(s), $(document.body).prepend(i), $("#Fqfk_Tip").show(), el_top_middle($("#c04tip"), 502, 358), $(".Tip_Close").click(function() {
 147         $("#c04tip").remove()
 148     }), $.ajax({
 149         url: "http://fa.jd.com/loadFa.js?aid=2_163_5480",
 150         dataType: "script",
 151         cache: !0
 152     })
 153 }
 154 
 155 function showTip100(proobj) {
 156     var TipDivW = $(proobj).width(),
 157         TipDivH = $(proobj).height();
 158     TipDivW = 502, TipDivH = 358;
 159     var TipDiv = $("<div id='c04tip' class='clearfix' style='z-index:20000;position:absolute;width:" + eval(TipDivW + 5) + "px;height:" + eval(TipDivH + 5) + "px;'><div style='position:absolute;margin:5px 0 0 5px;width:" + TipDivW + "px;height:" + TipDivH + "px;z-index:20001;'></div></div>");
 160     fq_returnData && fq_formatData(fq_returnData), TipDiv.append($(proobj)), 0 == $("#c04tip").length && $(document.body).prepend(TipDiv), $(proobj).show(), el_top_middle($("#c04tip"), 502, 358), $("#Tip_apply,#Tip_continue,.Tip_Close").click(function() {
 161         $("#c04tip").remove(), $("#choose-btn-coll").after('<div id="Fqfk_Tip" class="Tip360"></div>')
 162     })
 163 }
 164 
 165 function fq_showFq_html(t) {
 166     if (null != t) {
 167         if (0 == t.json.length) return;
 168         if (0 == t.json.length) return;
 169         if (null != t.json[0].error) return;
 170         document.getElementById(fq_btnPanel).innerHTML = '<a href="javascript:;" class="btn-divide" onclick="showTip100(\'#Fqfk_Tip\')">\u5206\u671f\u4ed8\u6b3e<b></b></a>', fq_returnData = t
 171     }
 172 }
 173 
 174 function fq_formatData() {
 175     var t = document.getElementById("Fqfk_Tip"),
 176         e = $("#InitCartUrl").attr("href");
 177     t.style.width = "500px";
 178     var i = "http://baitiao.jd.com/creditUser/list?from=dpy",
 179         s = '<div class="Tip_Title">            <em>                <img src="' + fq_serverSite + 'skin/images/tip_close.jpg" class="Tip_Close"/>            </em>\u767d\u6761/\u5206\u671f        </div>        <div class="Tip_Content" id="Tip_fq0">            <div style="position:relative;width:482px;height:310px;">                <img src="http://img13.360buyimg.com/da/jfs/t157/107/261896691/42066/92e14669/5385b7edNa8b9b2a3.png" />                <a href="http://help.jd.com/help/question-71.html#help211" title="\u94f6\u884c\u5206\u671f" style="position: absolute;bottom:3px;width:410px;height:32px;left:60px;background: url(http://misc.360buyimg.com/lib/img/e/blank.gif);"></a>                <a href=' + e + ' title="\u52a0\u5165\u8d2d\u7269\u8f66" style="position:absolute;top:61px;right:11px;width:98px;height:24px;background: url(http://misc.360buyimg.com/lib/img/e/blank.gif);" clstag="shangpin|keycount|product|initcarturlbt"></a>                <a href=' + i + ' title="\u7acb\u5373\u6fc0\u6d3b" style="position:absolute;top:61px;left:146px;width:67px;height:24px;background: url(http://misc.360buyimg.com/lib/img/e/blank.gif);"></a>            </div>        </div>';
 180     t.innerHTML = s
 181 }
 182 
 183 function getCookie(t) {
 184     var e = document.cookie.match(RegExp("(^| )" + t + "=([^;]*)(;|$)"));
 185     return null != e ? unescape(e[2]) : null
 186 }
 187 
 188 function setSearch(t, e) {
 189     var i = pageConfig.wideVersion && pageConfig.compatible ? 5 : 4,
 190         s = t || s;
 191     $.ajax({
 192         url: "http://api.search.jd.com/?key=" + s + "&pagesize=" + i + "&filt_type=wyn,L1M1;wstate,L1M1" + e,
 193         dataType: "jsonp",
 194         success: function(t) {
 195             var e = t.Summary.key;
 196             pageConfig.product.searchList = [], null !== t.Product && t.Product.length > 0 && (1 > $("#search-result").length && $("#product-intro").parent().before('<div class="w"><div id="search-result" class="m m2" clstag="shangpin|keycount|product|exrs"><div class="mt"></div><div class="mc search-item"></div></div></div>'), $("#search-result").show(), $("#search-result .search-item").html(search_TPL.process(t)), $("#search-result .mt").html('<h2>\u5728\u4eac\u4e1c\u5546\u57ce\u4e2d\u67e5\u770b\u5176\u5b83\u201c<a target="_blank" href="http://search.jd.com/Search?keyword=' + e + '">' + e + '</a>\u201d\u7684\u641c\u7d22\u7ed3\u679c\uff1a</h2><div class="extra"><a target="_blank" href="http://search.jd.com/Search?keyword=' + e + '">\u67e5\u770b\u66f4\u591a\u641c\u7d22\u7ed3\u679c</a></div>'), G.getPriceNum(pageConfig.product.searchList, null, $("#search-result")), $(".search-item dl .p-img a").click(function() {
 197                 var t = $(this).parents("dl").attr("skuid");
 198                 $.getScript("http://sstat.jd.com/scslog?args=1^" + encodeURIComponent(e) + "^^1^^" + encodeURIComponent(document.referrer) + "^" + t + "^0^101^^0^0")
 199             }), $(".search-item dl .p-name a").click(function() {
 200                 var t = $(this).parents("dl").attr("skuid");
 201                 $.getScript("http://sstat.jd.com/scslog?args=1^" + encodeURIComponent(e) + "^^1^^" + encodeURIComponent(document.referrer) + "^" + t + "^0^101^^0^0")
 202             }))
 203         }
 204     })
 205 }
 206 
 207 function seoBanner(t, e) {
 208     $.ajax({
 209         url: "http://seo.jd.com/ad/getAds.action",
 210         data: {
 211             itemId: G.cat[0],
 212             searchWords: t.k,
 213             searchRefer: t.d
 214         },
 215         dataType: "jsonp",
 216         success: function(t) {
 217             var i = '<div class="w">    <div class="m m2">        <div class="mt hide"></div>        <div class="mc"><a href="${img.href}" target="_blank"><img src="${img.imtUrl}" width="${width}" height="${height}" /></a></div>    </div></div>';
 218             t && 3 === t.adType ? G.isJd ? setSearch(searchEngineSource.k, e) : /utm_source=organic/.test(location.href) || setSearch(searchEngineSource.k, e) : (t.width = pageConfig.compatible && pageConfig.wideVersion ? 1210 : 990, t.height = 110, $("#product-intro").parent().before(i.process(t)))
 219         }
 220     })
 221 }
 222 
 223 function getSuitInfoService(t) {
 224     if (null !== t.packResponseList && t.packResponseList.length > 0) {
 225         var e = pageConfig.wideVersion && pageConfig.compatible ? 12 : 8;
 226         $("#favorable-suit").show(), $("#favorable-suit .mc").html(suit_TPL.tabs.process(t) + suit_TPL.cons.process(t)), $("#favorable-suit .mc").Jtab({
 227             event: e >= t.packResponseList.length ? "mouseover" : "click",
 228             delay: 300,
 229             compatible: !0,
 230             currClass: "scurr"
 231         }, function(t, e) {
 232             var i = e.attr("packprice"),
 233                 s = e.attr("data-cat"),
 234                 a = e.attr("packlistprice"),
 235                 n = e.attr("discount"),
 236                 o = e.find(".fitting-price"),
 237                 r = e.find(".orign-price"),
 238                 c = e.find(".fitting-saving"),
 239                 d = e.find(".infos .p-name a,.infos .btns a"),
 240                 l = [G.sku];
 241             "" !== i && "" !== a && (o.html(parseFloat(i).toFixed(2)), r.html(parseFloat(a).toFixed(2)), c.html(parseFloat(n).toFixed(2))), e.find(".suits li[data-sku]").each(function() {
 242                 l.push($(this).attr("data-sku"))
 243             }), d.attr("href", "http://www.jd.com/suit/show.html?suitId=" + s + "&skuIds=" + l.join(",")), e.find("img[data-src]").each(function() {
 244                 var t = $(this),
 245                     e = t.attr("data-src");
 246                 e && t.attr("src", e).removeAttr("data-src")
 247             }), G.getNewCLK({
 248                 name: "yhtz",
 249                 action: "0",
 250                 csku: l,
 251                 sku: G.sku
 252             })
 253         }), $("#favorable-suit .scurr").trigger("click").trigger("mouseover"), G.removeLastAdd()
 254     }
 255 }
 256 
 257 function setPopInfo(t) {
 258     if (t && (Recommend.getDaPeiGou(G.sku, t.vid), EvaluateGradeNew.init(t), !G.isJd && "undefined" != typeof warestatus && 1 != warestatus)) {
 259         var e = $("#product-detail-1 .detail-list li").eq(2);
 260         e.html().indexOf("\u5e97\u94fa\uff1a") > -1 && e.html('\u5e97\u94fa\uff1a<a href="' + t.url + '" target="_blank">' + t.vender + "</a>")
 261     }
 262 }
 263 
 264 function renew() {
 265     $.ajax({
 266         url: "http://d.360buy.com/oldfornew/get?skuId=" + pageConfig.product.skuid,
 267         dataType: "jsonp",
 268         success: function(t) {
 269             var e = '<div class="renew-arrgrment" style="line-height:200%;height:190px;overflow-y:auto;">    <p>\u5c0a\u656c\u7684\u5ba2\u6237\uff1a</p>    <p>\u60a8\u597d\uff01\u6b22\u8fce\u60a8\u53c2\u52a0\u4eac\u4e1c\u5546\u57ce\u201c\u7535\u8111\u4ee5\u65e7\u6362\u65b0\u201d\u6d3b\u52a8\u3002\u4e3a\u4e86\u4fdd\u8bc1\u60a8\u80fd\u591f\u6b63\u5e38\u4eab\u53d7\u4ee5\u65e7\u6362\u65b0\u6d3b\u52a8\u4f18\u60e0\uff0c\u8bf7\u60a8\u4ed4\u7ec6\u9605\u8bfb\u4ee5\u4e0b\u6d3b\u52a8\u7ec6\u5219\uff0c\u786e\u8ba4\u65e0\u8bef\u540e\u518d\u63d0\u4ea4\u4ee5\u65e7\u6362\u65b0\u8ba2\u5355\u3002</p>     <ul>        <li>1. \u6d3b\u52a8\u53c2\u4e0e\u5730\u533a\uff1a\u6240\u6709\u4eac\u4e1c\u81ea\u8425\u914d\u9001\u8986\u76d6\u8303\u56f4\uff0c\u5177\u4f53\u8303\u56f4\u8bf7\u67e5\u770b\u4eac\u4e1c\u5e2e\u52a9\u4e2d\u5fc3\uff1b</li>        <li>2. \u4eac\u4e1c\u5546\u57ce\u53c2\u52a0\u6d3b\u52a8\u4ea7\u54c1\uff1a\u4ee5\u4ea7\u54c1\u9875\u9762\u4fe1\u606f\u663e\u793a\u4e3a\u51c6\uff1b</li>        <li>3. \u60a8\u53c2\u52a0\u4ee5\u65e7\u6362\u65b0\u7535\u8111\u8981\u6c42\uff1a\u4efb\u4f55\u54c1\u724c\uff0c\u53ef\u4ee5\u6b63\u5e38\u5f00\u673a\u7684\u7b14\u8bb0\u672c\u7535\u8111\uff1b\u4e0d\u7b26\u5408\u6b64\u6807\u51c6\u7684\u65e7\u7535\u8111\uff0c\u4e0d\u80fd\u53c2\u4e0e\u201c\u4ee5\u65e7\u6362\u65b0\u201d\u6d3b\u52a8\uff1b</li>        <li>4. \u5177\u4f53\u6d3b\u52a8\u89c4\u5219\uff1a\u4ee5\u4eac\u4e1c\u5546\u57ce\u7f51\u7ad9\u9875\u9762\u516c\u793a\u4e3a\u51c6\uff1b</li>        <li>5. \u7b7e\u6536\u6d41\u7a0b\uff1a\u7b7e\u7f72\u4eac\u4e1c\u7535\u8111\u4ee5\u65e7\u6362\u65b0\u53d6\u8d27\u5355\uff0c\u5e76\u628a\u65e7\u7535\u8111\u4ea4\u4ed8\u4eac\u4e1c\u914d\u9001\u5458\uff1b</li>        <li>6. \u9000\u6362\u8d27\u6d41\u7a0b\uff1a\u53c2\u52a0\u6b64\u201c\u4ee5\u65e7\u6362\u65b0\u201d\u65b9\u5f0f\u8d2d\u4e70\u7684\u7b14\u8bb0\u672c\u7535\u8111\u5982\u7533\u8bf7\u9000\u8d27\uff0c\u4eac\u4e1c\u4ec5\u6309\u7167\u6d88\u8d39\u8005\u5b9e\u9645\u652f\u4ed8\u91d1\u989d\u9000\u6b3e\uff0c\u4eac\u4e1c\u4e0d\u518d\u5411\u6d88\u8d39\u8005\u8fd4\u8fd8\u65e7\u7b14\u8bb0\u672c\u7535\u8111\u3002</li>    </ul></div><div class="renew-btn">    <a href="#none" class="css3-btn">\u540c\u610f\u534f\u8bae</a></div>';
 270             t && t.isOldForNew && ($("#choose-btns").prepend('<div id="choose-btn-renew" class="btn"><a href="javascript:;" class="btn-renew">\u53c2\u52a0\u4ee5\u65e7\u6362\u65b0<b></b></a></div>'), $("#choose-btn-renew").jdThickBox({
 271                 type: "text",
 272                 width: 570,
 273                 height: 240,
 274                 title: "\u4ee5\u65e7\u6362\u65b0\u534f\u8bae",
 275                 _title: "renew_agreement_title",
 276                 source: e,
 277                 _con: "renew_aggrement",
 278                 _close: "close_me"
 279             }, function() {
 280                 $(".renew-btn .css3-btn").attr("href", "http://trade.jd.com/order/getOrderInfo.action?pid=" + pageConfig.product.skuid + "&pcount=" + $("#buy-num").val() + "&rid=" + +new Date)
 281             }))
 282         }
 283     })
 284 }
 285 
 286 function onlineService(t, e, i) {
 287     function s(t) {
 288         return encodeURIComponent(encodeURIComponent(t))
 289     }
 290     var a = pageConfig.product.skuid;
 291     a || (a = $("ul[id='summary'] span").html().replace("\u5546\u54c1\u7f16\u53f7\uff1a", ""));
 292     var n = unescape(G.name);
 293     n = s(n);
 294     var o = $("#name strong").html();
 295     o = s(o);
 296     var r = $("#store-selector .text").text(),
 297         c = $("#store-prompt strong").html(),
 298         d = r + "\uff08" + c + "\uff09";
 299     d = s(d), e = s(e);
 300     var l = $("span[class^='star']").attr("class").replace("star sa", ""),
 301         p = 100;
 302     try {
 303         p = $("a[href='#comment']").html().replace("(\u5df2\u6709", "").replace("\u4eba\u8bc4\u4ef7)", "")
 304     } catch (u) {}
 305     var m = 100;
 306     try {
 307         m = $("#i-comment .rate strong").text().replace("%", "")
 308     } catch (u) {}
 309     var h = s(pageConfig.product.src),
 310         f = jQuery.cookie("_recent");
 311     f || (f = "");
 312     var g = "";
 313     try {
 314         g = $("strong[class='p-price'] img").attr("src")
 315     } catch (u) {}
 316     g = g ? s(g) : "", i || (i = "chat.jd.com");
 317     var v = "http://" + i + "/index.action?",
 318         b = {
 319             pid: a,
 320             price: g,
 321             stock: d,
 322             score: l,
 323             commentNum: p,
 324             imgUrl: h,
 325             wname: n,
 326             advertiseWord: o,
 327             seller: e,
 328             evaluationRate: m,
 329             recent: f,
 330             code: t,
 331             area: s($("#store-selector .text").text()),
 332             size: s($("#choose-version .dd .selected a").text()),
 333             services: s($("#summary-service .dd").html())
 334         };
 335     open(v + decodeURIComponent($.param(b)), a, "status=no,toolbar=no,menubar=no,location=no,titlebar=no,resizable=yes,width=1018px,height=590")
 336 }
 337 
 338 function setImButton(t) {
 339     var e = t || G.sku;
 340     $.ajax({
 341         url: "http://chat1.jd.com/api/checkChat?",
 342         data: {
 343             pid: e,
 344             returnCharset: "utf-8"
 345         },
 346         dataType: "jsonp",
 347         success: function(t) {
 348             if (t) {
 349                 pageConfig.im = t;
 350                 var i = t.seller,
 351                     s = t.code;
 352                 if (i && "" != i && (i = i.replace("&qt;", "'").replace("&dt;", '"')), 1 > $("#brand-bar-pop").length && ($("#j-im").length > 0 && $("#j-im").remove(), $("#summary-grade .dd #j-im").length > 0 && $("#summary-grade .dd #j-im").remove(), (1 == s || 2 == s || 3 == s || 9 == s) && $("#summary-grade .dd").append('<a id="j-im" class="djd-im" href="#none" clstag="shangpin|keycount|product|imbtn"><b>\u8054\u7cfb\u5ba2\u670d</b></a>')), 1 == s) $("#online-service").show(), $("#j-im").attr("title", i + " \u8054\u7cfb\u5ba2\u670d"), $("#j-im").click(function() {
 353                     onlineService(1, i, t.chatDomain)
 354                 });
 355                 else if (2 == s) {
 356                     $("#online-service").show();
 357                     var a = e.length >= 10 ? " \u5ba2\u670d\u76ee\u524d\u4e0d\u5728\u7ebf\uff01\u8d2d\u4e70\u4e4b\u524d\uff0c\u5982\u6709\u95ee\u9898\uff0c\u8bf7\u5728\u6b64\u9875\u201c\u5168\u90e8\u8d2d\u4e70\u54a8\u8be2\u201d\u4e2d\u5411\u4eac\u4e1c\u5ba2\u670d\u53d1\u8d77\u54a8\u8be2" : " \u5382\u5546\u552e\u524d\u54a8\u8be2\u76ee\u524d\u4e0d\u5728\u7ebf\uff01\u8d2d\u4e70\u4e4b\u524d\uff0c\u5982\u6709\u95ee\u9898\uff0c\u8bf7\u5728\u6b64\u9875\u201c\u5168\u90e8\u8d2d\u4e70\u54a8\u8be2\u201d\u4e2d\u5411\u4eac\u4e1c\u5ba2\u670d\u53d1\u8d77\u54a8\u8be2";
 358                     $("#j-im").addClass("d-offline").html("<b>\u7559\u8a00\u54a8\u8be2</b>").attr("title", i + a).unbind("click")
 359                 } else(3 == s || 9 == s) && ($("#online-service").show().find("b").html("\u8054\u7cfb\u5ba2\u670d"), $("#j-im").addClass("d-offline").html("<b>\u7559\u8a00\u54a8\u8be2</b>").attr("title", i + " \u5ba2\u670d\u76ee\u524d\u4e0d\u5728\u7ebf\uff0c\u60a8\u53ef\u4ee5\u70b9\u51fb\u6b64\u5904\u7ed9\u5546\u5bb6\u7559\u8a00\uff0c\u5e76\u5728\u3010\u6211\u7684\u4eac\u4e1c->\u6d88\u606f\u7cbe\u7075\u3011\u4e2d\u67e5\u770b\u56de\u590d").click(function() {
 360                     onlineService(3, i, t.chatDomain)
 361                 }))
 362             }
 363         }
 364     })
 365 }
 366 
 367 function log(t, e) {
 368     var s = "";
 369     for (i = 2; arguments.length > i; i++) s = s + arguments[i] + "|||";
 370     var a = decodeURIComponent(escape(getCookie("pin"))),
 371         n = "http://csc.360buy.com/log.ashx?type1=$type1$&type2=$type2$&data=$data$&pin=$pin$&referrer=$referrer$&jinfo=$jinfo$&callback=?",
 372         o = n.replace(/\$type1\$/, escape(t));
 373     o = o.replace(/\$type2\$/, escape(e)), o = o.replace(/\$data\$/, escape(s)), o = o.replace(/\$pin\$/, escape(a)), o = o.replace(/\$referrer\$/, escape(document.referrer)), o = o.replace(/\$jinfo\$/, escape("")), $.getJSON(o, function() {});
 374     var r = ("https:" == document.location.protocol ? "https://mercuryssl" : "http://mercury") + ".jd.com/log.gif" + "?t=other.000000" + "&m=UA-J2011-1" + "&v=" + encodeURIComponent("t1=" + t + "$t2=" + e + "$p0=" + s) + "&ref=" + encodeURIComponent(document.referrer) + "&rm=" + (new Date).getTime(),
 375         c = new Image(1, 1);
 376     c.src = r
 377 }
 378 
 379 function clsPVAndShowLog(t, e, i, s) {
 380     var a = t + "." + i + "." + skutype(e) + "." + s;
 381     log("d", "o", a)
 382 }
 383 
 384 function clsClickLog(t, e, i, s, a, n) {
 385     var o = t + "." + s + "." + skutype(e);
 386     appendCookie(n, i, o), log("d", "o", o + ".c")
 387 }
 388 
 389 function appendCookie(reCookieName, sku, key) {
 390     var reWidsCookies = eval("(" + getCookie(reCookieName) + ")");
 391     (null == reWidsCookies || "" == reWidsCookies) && (reWidsCookies = {}), null == reWidsCookies[key] && (reWidsCookies[key] = "");
 392     var pos = reWidsCookies[key].indexOf(sku);
 393     0 > pos && (reWidsCookies[key] = reWidsCookies[key] + "," + sku), setCookie(reCookieName, $.toJSON(reWidsCookies), 15)
 394 }
 395 
 396 function skutype(t) {
 397     if (t) {
 398         var e = ("" + t).length;
 399         return 10 == e ? 1 : 0
 400     }
 401     return 0
 402 }
 403 
 404 function setCookie(t, e, i) {
 405     var s = i,
 406         a = new Date;
 407     a.setTime(a.getTime() + 1e3 * 60 * 60 * 24 * s), document.cookie = t + "=" + escape(e) + ";expires=" + a.toGMTString() + ";path=/;domain=.jd.com"
 408 }
 409 
 410 function getCookie(t) {
 411     var e = document.cookie.match(RegExp("(^| )" + t + "=([^;]*)(;|$)"));
 412     return null != e ? unescape(e[2]) : null
 413 }
 414 
 415 function clsLog(t, e, i, s, a) {
 416     appendCookie(a, i, t), i = i.split("#")[0], log(3, t, i)
 417 }
 418 
 419 function mark(t, e) {
 420     log(1, e, t)
 421 }
 422 
 423 function CombineShare(t) {
 424     this.$el = t.$el, this.imgs = "string" == typeof t.imgs ? [t.imgs] : t.imgs, this.onbeforeOpen = t.onbeforeOpen || function() {}, t.title.length > 27 && (t.title = t.title.substr(0, 27) + "..."), this.shareParam = {
 425         sid: t.sid,
 426         rid: t.rid,
 427         title: t.title,
 428         content: t.content,
 429         imgUrl: this.imgs[0],
 430         url: t.url
 431     }, this.shareMap = {
 432         T2: {
 433             name: "sina",
 434             text: "\u65b0\u6d6a\u5fae\u535a",
 435             url: "http://share.jd.com/sina/login.action"
 436         },
 437         T3: {
 438             name: "qqWeibo",
 439             text: "\u817e\u8baf\u5fae\u535a",
 440             url: "http://share.jd.com/qqweibo/login.action"
 441         },
 442         T4: {
 443             name: "renren",
 444             text: "\u4eba\u4eba\u7f51",
 445             url: "http://share.jd.com/renren/login.action"
 446         },
 447         T5: {
 448             name: "kaixin",
 449             text: "\u5f00\u5fc3\u7f51",
 450             url: "http://share.jd.com/kaixin001/login.action"
 451         },
 452         T6: {
 453             name: "douban",
 454             text: "\u8c46\u74e3\u7f51",
 455             url: "http://share.jd.com/douban/login.action"
 456         }
 457     }, this.init()
 458 }
 459 if (G === void 0) var G = window.G = {};
 460 (function(t) {
 461     "object" == typeof pageConfig.product && (t.sku = pageConfig.product.skuid, t.key = pageConfig.product.skuidkey, t.url = pageConfig.product.href, t.src = pageConfig.product.src, t.name = pageConfig.product.name, t.mdPerfix = 1 == pageConfig.product.type ? "CR" : "GR", t.mbPerfix = 1 == pageConfig.product.type ? "3C" : "GM", t.mp = pageConfig.product.mp, t.jp = pageConfig.product.jp, t.cat = pageConfig.product.cat, t.orginSku = pageConfig.product.orginSkuid || t.sku, t.isJd = 1e9 > t.sku, t.isPop = t.sku > 1e9, t.isCellphone = 655 == pageConfig.product.cat[2] || 6881 == pageConfig.product.cat[2] || 6882 == pageConfig.product.cat[2], t.isArray = function(t) {
 462         return "[object Array]" === Object.prototype.toString.call(t)
 463     }, t.isObject = function(t) {
 464         return "[object Object]" === Object.prototype.toString.call(t)
 465     }, t.isEmptyObject = function(t) {
 466         var e;
 467         for (e in t) return !1;
 468         return !0
 469     }, t.isNothing = function(e) {
 470         return t.isArray(e) ? 1 > e.length : !e
 471     }, t.getRandomArray = function(t, e) {
 472         return e = e || 1, t.sort(function() {
 473             return Math.random() - .5
 474         }), t.slice(0, e)
 475     }), t.getPriceNum = function(t, e, i, s, a) {
 476         t = "string" == typeof t ? [t] : t, i = i || $("body"), s = s || "J-p-";
 477         var n = "";
 478         if (null !== e && (n = readCookie("ipLoc-djd") ? "&area=" + readCookie("ipLoc-djd").replace(/-/g, "_") : "&area=1"), void 0 !== t) {
 479             var o = "http://p.3.cn/prices/mgets?type=1&skuIds=J_" + t.join(",J_") + n;
 480             $.ajax({
 481                 url: o,
 482                 dataType: "jsonp",
 483                 success: function(t) {
 484                     if (!t && !t.length) return !1;
 485                     for (var e = 0; t.length > e; e++) {
 486                         if (!t[e].id) return !1;
 487                         var n = t[e].id.replace("J_", ""),
 488                             r = parseFloat(t[e].p);
 489                         parseFloat(t[e].m), r > 0 ? i.find("." + s + n).html("\uffe5" + t[e].p) : i.find("." + s + n).html("\u6682\u65e0\u62a5\u4ef7"), "function" == typeof a && a(n, t[e], o)
 490                     }
 491                 }
 492             })
 493         }
 494     }, t.serializeUrl = function(t) {
 495         var e, i, s, a, n = t.indexOf("?"),
 496             o = t.substr(0, n),
 497             r = t.substr(n + 1),
 498             c = r.split("&"),
 499             d = c.length,
 500             l = {};
 501         for (e = 0; d > e; e++) i = c[e].split("="), s = i[0], a = i[1], l[s] = a;
 502         return {
 503             url: o,
 504             param: l
 505         }
 506     }, t.setScroll = function(t) {
 507         var e = "string" == typeof t ? $(t) : $("body");
 508         e.find(".p-scroll").each(function() {
 509             var t = $(this).find(".p-scroll-wrap"),
 510                 e = $(this).find(".p-scroll-next"),
 511                 i = $(this).find(".p-scroll-prev");
 512             t.find("li").length > 4 && t.imgScroll({
 513                 showControl: !0,
 514                 width: 30,
 515                 height: 30,
 516                 visible: 4,
 517                 step: 1,
 518                 prev: i,
 519                 next: e
 520             })
 521         })
 522     }, t.thumbnailSwitch = function(t, e, i, s, a) {
 523         var n = t.find("img"),
 524             o = a || "mouseover";
 525         n.bind(o, function() {
 526             var s = $(this),
 527                 a = s.attr("src"),
 528                 n = a.replace(/\/n\d\//, i);
 529             e.attr("src", n), t.removeClass("curr"), s.parent().addClass("curr")
 530         })
 531     }, t.getCommentNum = function(t, e) {
 532         var i = pageConfig.product.commentCount;
 533         return i !== void 0 ? e(i) : (window.getCommentCount = function(t) {
 534             "function" == typeof e && e(t), t && pageConfig.product && (pageConfig.product.commentCount = t);
 535             try {
 536                 delete window.getCommentCount
 537             } catch (i) {}
 538         }, $.ajax({
 539             url: "http://club.jd.com/ProductPageService.aspx?method=GetCommentSummaryBySkuId&referenceId=" + t + "&callback=getCommentCount",
 540             dataType: "script",
 541             cache: !0
 542         }), void 0)
 543     }, t.getCommentData = function(t, e, i, s, a) {
 544         t = t || [], e = e || $("body").eq(0), i = i || "p-comm-", s = s || "(\u5df2\u6709{NUM}\u4eba\u8bc4\u4ef7)", $.ajax({
 545             url: "http://club.jd.com/clubservice.aspx?method=GetCommentsCount&referenceIds=" + t,
 546             dataType: "jsonp",
 547             success: function(t) {
 548                 var e;
 549                 if (t && t.CommentsCount.length) {
 550                     e = t.CommentsCount.length;
 551                     for (var n = 0; e > n; n++) $("." + i + t.CommentsCount[n].SkuId).find(".star").removeClass("sa5").addClass("sa" + t.CommentsCount[n].AverageScore), $("." + i + t.CommentsCount[n].SkuId).html(s.replace("{NUM}", t.CommentsCount[n].CommentCount)), a && a(t.CommentsCount[n].SkuId, t.CommentsCount[n])
 552                 }
 553             }
 554         })
 555     }, t.getUserLevel = function(t) {
 556         switch (t) {
 557             case 50:
 558                 return "\u6ce8\u518c\u7528\u6237";
 559             case 56:
 560                 return "\u94c1\u724c\u7528\u6237";
 561             case 59:
 562                 return "\u6ce8\u518c\u7528\u6237";
 563             case 60:
 564                 return "\u94dc\u724c\u7528\u6237";
 565             case 61:
 566                 return "\u94f6\u724c\u7528\u6237";
 567             case 62:
 568                 return "\u91d1\u724c\u7528\u6237";
 569             case 63:
 570                 return "\u94bb\u77f3\u7528\u6237";
 571             case 64:
 572                 return "\u7ecf\u9500\u5546";
 573             case 65:
 574                 return "VIP";
 575             case 66:
 576                 return "\u4eac\u4e1c\u5458\u5de5";
 577             case -1:
 578                 return "\u672a\u6ce8\u518c";
 579             case 88:
 580                 return "\u53cc\u94bb\u7528\u6237";
 581             case 90:
 582                 return "\u4f01\u4e1a\u7528\u6237";
 583             case 103:
 584                 return "\u4e09\u94bb\u7528\u6237";
 585             case 104:
 586                 return "\u56db\u94bb\u7528\u6237";
 587             case 105:
 588                 return "\u4e94\u94bb\u7528\u6237"
 589         }
 590         return "\u672a\u77e5"
 591     }, t.getNewUserLevel = function(t) {
 592         switch (t) {
 593             case 50:
 594                 return "\u6ce8\u518c\u7528\u6237";
 595             case 56:
 596                 return "\u94dc\u724c\u7528\u6237";
 597             case 59:
 598                 return "\u6ce8\u518c\u7528\u6237";
 599             case 60:
 600                 return "\u94f6\u724c\u7528\u6237";
 601             case 61:
 602                 return "\u94f6\u724c\u7528\u6237";
 603             case 62:
 604                 return "\u91d1\u724c\u7528\u6237";
 605             case 63:
 606                 return "\u94bb\u77f3\u7528\u6237";
 607             case 64:
 608                 return "\u7ecf\u9500\u5546";
 609             case 110:
 610                 return "VIP";
 611             case 66:
 612                 return "\u4eac\u4e1c\u5458\u5de5";
 613             case -1:
 614                 return "\u672a\u6ce8\u518c";
 615             case 88:
 616                 return "\u94bb\u77f3\u7528\u6237";
 617             case 90:
 618                 return "\u4f01\u4e1a\u7528\u6237";
 619             case 103:
 620                 return "\u94bb\u77f3\u7528\u6237";
 621             case 104:
 622                 return "\u94bb\u77f3\u7528\u6237";
 623             case 105:
 624                 return "\u94bb\u77f3\u7528\u6237"
 625         }
 626         return "\u672a\u77e5"
 627     }, t.calculatePrice = function(t, e) {
 628         for (var i = $(t).parents(e), s = i.find(".master input").attr("wmeprice"), a = i.find("input:checked"), n = a.length, o = i.find(".infos .res-totalprice"), r = i.find(".infos .res-jdprice"), c = 0, d = 0, l = "http://cart.jd.com/cart/dynamic/reBuyForOrderCenter.action?wids={SKUS}&nums={NUMS}", p = i.find(".btn-buy"), u = [], m = 0; a.length > m; m++) c += parseFloat(a.eq(m).attr("wmaprice")), d += parseFloat(a.eq(m).attr("wmeprice")), u.push(a.eq(m).attr("skuid"));
 629         "" == s || 0 >= Number(s) || 0 >= Number($(t).attr("wmeprice")) ? (o.text("\u6682\u65e0\u62a5\u4ef7"), r.text("\u6682\u65e0\u62a5\u4ef7")) : (o.hasClass("saving") || o.text("\uffe5 " + c.toFixed(2)), r.text("\uffe5 " + d.toFixed(2)), p.attr("href", l.replace("{SKUS}", u.join(",")).replace("{NUMS}", u.join(",").replace(/\d+/g, 1))), i.find(".infos .p-name span").html("" + (n - 1)))
 630     }, t.sortFitting = function(t, e, i) {
 631         var s = $(i),
 632             a = e,
 633             n = s.find(".suits"),
 634             o = s.find(".stab li"),
 635             r = s.find(".suits .lh"),
 636             c = n.find('li[data-cat="' + a + '"]');
 637         if ("all" == e) {
 638             var d = parseInt(n.attr("data-count"));
 639             n.find("li").show(), r.css("width", 166 * d), d > 4 && n.css("overflow-x", "scroll")
 640         } else n.find("li").hide(), c.show(); if (o.removeClass("scurr"), $(t).addClass("scurr"), 1 == !!$(t).attr("data-count")) {
 641             var l = parseInt($(t).attr("data-count"));
 642             n.css("overflow-x", 4 >= l ? "hidden" : "scroll"), r.css("width", 166 * l)
 643         }
 644         n.scrollLeft(0), G.removeLastAdd()
 645     }, t.removeLastAdd = function(t) {
 646         var t = t || $(".suits");
 647         t.find("li").removeClass("last-item"), t.find("li:visible:last").addClass("last-item")
 648     }, t.getNewCLK = function(t, e) {
 649         var i = "http://mercury.jd.com/log.gif?",
 650             s = "src=" + t.name + "$action=" + t.action;
 651         t.csku && (s += "$csku=" + t.csku.join(",")), t.sku && (s += "$sku=" + t.sku), t.index !== void 0 && (s += "$index=" + t.index);
 652         var a = {
 653             t: t.id || (1 == pageConfig.product.type ? "rec.993003" : "rec.993001"),
 654             v: s,
 655             m: t.m || "UA-J2011-1",
 656             ref: t.ref || document.referrer,
 657             random: t.random || Math.random()
 658         };
 659         return e !== void 0 ? i + $.param(a) : (sendRequest(i + $.param(a)), void 0)
 660     }, t.checkLogin = function(t) {
 661         "function" == typeof t && $.getJSON("http://passport.jd.com/loginservice.aspx?method=Login&callback=?", function(e) {
 662             e.Identity && t(e.Identity)
 663         })
 664     }, t.insertStyles = function(t) {
 665         var e = document,
 666             i = e.getElementsByTagName("head"),
 667             s = e.createElement("style"),
 668             a = e.createElement("link");
 669         if (/\.css$/.test(t)) a.rel = "stylesheet", a.type = "text/css", a.href = t, i.length ? i[0].appendChild(a) : e.documentElement.appendChild(a);
 670         else {
 671             if (s.setAttribute("type", "text/css"), s.styleSheet) s.styleSheet.cssText = t;
 672             else {
 673                 var n = e.createTextNode(t);
 674                 s.appendChild(n)
 675             }
 676             i.length && i[0].appendChild(s)
 677         }
 678     }, t.showServiceDesc = function(t) {
 679         return t > 1 && 5 > t ? "\u4e3a\u60a8\u8d2d\u4e70\u7684\u7535\u5668\u4ea7\u54c1\u5ef6\u957f\u4fdd\u4fee\u671f\u3001\u62d3\u5c55\u4fdd\u4fee\u8303\u56f4\u3002" : t > 5 && 8 > t ? "\u4e3a\u60a8\u8d2d\u4e70\u7684\u7535\u5668\u4ea7\u54c1\u7531\u4e8e\u610f\u5916\u5bfc\u81f4\u7684\u529f\u80fd\u6545\u969c\u63d0\u4f9b\u7ef4\u4fee\u6216\u66f4\u6362\u670d\u52a1\u3002" : 9 == t ? "\u4e3a\u60a8\u8d2d\u4e70\u7684800\u5143\u4ee5\u4e0b\u7684\u7535\u5668\u4ea7\u54c1\u63d0\u4f9b\u7b2c\u4e8c\u5e74\u4ee5\u6362\u4ee3\u4fee\u670d\u52a1\u3002" : 11 == t ? "\u4e13\u5bb6\u7528\u8fdc\u7a0b\u6280\u672f\u5e2e\u60a8\u89e3\u51b3\u7535\u8111\u8f6f\u4ef6\u7684\u4f7f\u7528\u95ee\u9898\u3002" : 15 == t ? "\u4e13\u5bb6\u4e0a\u95e8\u5e2e\u60a8\u5b89\u88c5\u8c03\u8bd5\u8def\u7531\u5668\uff08\u4e0d\u542b\u786c\u4ef6\uff09\u3002" : 16 == t ? "\u4e13\u5bb6\u4e0a\u95e8\u5e2e\u60a8\u5b89\u88c5\u8c03\u8bd5\u7f51\u5361\u3002" : 17 == t ? "\u4e13\u5bb6\u4e0a\u95e8\u5e2e\u60a8\u5b89\u88c5\u8c03\u8bd5\u6253\u5370\u673a\u3002" : 18 == t ? "\u4e13\u5bb6\u4e0a\u95e8\u5b89\u88c5\u7cfb\u7edf\u3001\u8f6f\u4ef6\uff0c\u8bbe\u7f6e\u7f51\u7edc\u3002(\u9700\u6b63\u7248)ID" : void 0
 680     }, t.clsLog = function(t, e, i, s, a) {
 681         var n = new Image,
 682             o = "http://mercury.jd.com/log.gif?t=rec." + t + "&v=" + encodeURIComponent("src=rec$action=" + e + "$enb=1$sku=" + i + "$csku=" + s + "$index=" + (a || 0) + "$expid=0") + "&m=UA-J2011-1&ref=" + encodeURIComponent(document.referrer) + "&random=" + Math.random();
 683         n.setAttribute("src", o)
 684     }, t.Countdown = {
 685         init: function(t, e) {
 686             this.seconds = t, this.timer = null, this.callback = e || function() {}, this.loopCount()
 687         },
 688         loopCount: function() {
 689             var t = this,
 690                 e = t.formatSeconds(t.seconds);
 691             t.callback(e), this.timer = setInterval(function() {
 692                 var e = t.formatSeconds(t.seconds);
 693                 0 === e.d && 0 === e.h && 0 === e.m && 0 === e.s ? clearInterval(t.timer) : t.seconds--, t.callback(e)
 694             }, 1e3)
 695         },
 696         formatSeconds: function(t) {
 697             var e = Math.floor(t / 86400),
 698                 i = Math.floor(t % 86400 / 3600),
 699                 s = Math.floor(t % 86400 % 3600 / 60),
 700                 t = t % 86400 % 3600 % 60;
 701             return {
 702                 d: e,
 703                 h: i,
 704                 m: s,
 705                 s: t
 706             }
 707         }
 708     }, t.onAttr = function(t, e) {
 709         var i = RegExp(t),
 710             s = pageConfig.product.specialAttrs;
 711         return s && s.length ? (s = s.join("^"), i.test(s) ? ("function" == typeof e && e(), !0) : !1) : !1
 712     }
 713 })(G), pageConfig.serviceYB = "enabled", pageConfig.btnBaiTiaoFq = "enabled",
 714     function(t) {
 715         t.fn.floatNav = function(e) {
 716             var i = t.extend({
 717                     start: null,
 718                     end: null,
 719                     fixedClass: "nav-fixed",
 720                     anchor: null,
 721                     targetEle: null,
 722                     range: 0,
 723                     onStart: function() {},
 724                     onEnd: function() {}
 725                 }, e),
 726                 s = t(this),
 727                 a = s.height(),
 728                 n = s.width(),
 729                 o = t('<div class="float-nav-wrap"/>');
 730             return s.css({
 731                 height: a,
 732                 width: n
 733             }), s.parent().hasClass("float-nav-wrap") || s.wrap(o.css("height", a)), t(window).bind("scroll", function() {
 734                 var e = t(document).scrollTop(),
 735                     a = s.find("a").eq(0).attr("href"),
 736                     n = i.start || s.parent(".float-nav-wrap").offset().top,
 737                     o = i.targetEle ? t(i.targetEle).offset().top : 1e4;
 738                 e > n && (i.end || o) - i.range > e ? (s.addClass(i.fixedClass), i.anchor && a !== i.anchor && s.find(".toggle-link").attr("href", i.anchor), i.onStart && i.onStart()) : (s.removeClass(i.fixedClass), i.anchor && s.find(".toggle-link").attr("href", "javascript:;"), i.onEnd && i.onEnd())
 739             }), this
 740         }
 741     }(jQuery),
 742     function(t) {
 743         var e = function(e, i) {
 744             this.opts = t.extend({
 745                 start: null,
 746                 end: null,
 747                 startThrehold: 0,
 748                 stopThrehold: 0,
 749                 onStart: function() {},
 750                 onEnd: function() {},
 751                 onScroll: function() {}
 752             }, i), this.$o = t(e), this.init()
 753         };
 754         e.prototype = {
 755             init: function() {
 756                 this.bindEvent(), t(window).bind("scroll", function() {
 757                     t(this).trigger("onscroller")
 758                 })
 759             },
 760             bindEvent: function() {
 761                 var e, i = this;
 762                 t(window).bind("onscroller", function() {
 763                     clearTimeout(e), e = setTimeout(function() {
 764                         i.onScroll(), clearTimeout(e)
 765                     }, 300)
 766                 })
 767             },
 768             onScroll: function() {
 769                 var e = t(document).scrollTop(),
 770                     i = this.opts.start || this.$o.offset().top,
 771                     s = this.opts.end || i + this.$o.outerHeight(),
 772                     a = t(window).height();
 773                 e > i + this.opts.startThrehold && s - a - this.opts.stopThrehold > e ? this.opts.onStart(this) : this.opts.onEnd(this), this.opts.onScroll(this)
 774             }
 775         }, t.fn.scroller = function(i, s) {
 776             return this.each(function() {
 777                 var a = new e(this, i, s);
 778                 t(this).data("scroller", a)
 779             })
 780         }
 781     }(jQuery),
 782     function(t) {
 783         var e = function(e, i, s) {
 784             this.opts = t.extend({
 785                 content: e.title || "",
 786                 width: null,
 787                 oTop: 0,
 788                 oLeft: 5,
 789                 zIndex: 1,
 790                 event: null,
 791                 position: "top",
 792                 close: !1,
 793                 autoClose: !1
 794             }, i), this.$obj = t(e), this.callback = s || function() {}, this.init()
 795         };
 796         e.prototype = {
 797             init: function() {
 798                 var t = Math.random().toString(16).substring(2);
 799                 this.id = "TIP-" + t, this.insertStyles('.Jtips { position: relative; float:left; display:none; } .Jtips-close { position:absolute; color:#ff6600; font:12px "simsun"; cursor:pointer; } .Jtips-top .Jtips-close { right:1px; top:0px; } .Jtips-bottom .Jtips-close { right:1px; top:5px; } .Jtips-left .Jtips-close { right:6px; top:1px; } .Jtips-right .Jtips-close { right:1px; top:1px; } .Jtips-arr { position: absolute; background-image:url(http://misc.360buyimg.com/product/skin/2012/i/arrow.gif); background-repeat:no-repeat; overflow:hidden; } .Jtips-top { padding-bottom: 5px; } .Jtips-top .Jtips-arr { left:10px; bottom:0; width:11px; height:6px; background-position:0 -5px; _bottom:-1px; } .Jtips-bottom { padding-top: 5px; } .Jtips-bottom .Jtips-arr { top:0; left:10px; width:11px; height:6px; background-position:0 0; } .Jtips-left { padding-right: 5px;  } .Jtips-left .Jtips-arr { right:0; top:10px; width:6px; height:11px; background-position:-5px 0;} .Jtips-right {padding-left: 5px; } .Jtips-right .Jtips-arr {top:10px; left:0; width:6px; height:11px; background-position:0 0;  } .Jtips-con { float:left; padding:10px; background:#fffdee; border:1px solid #edd28b; color:#ff6501; -moz-box-shadow: 0 0 2px 2px #eee; -webkit-box-shadow: 0 0 2px 2px #eee; box-shadow: 0 0 2px 2px #eee; } .Jtips-con a,.Jtips-con a:hover,.Jtips-con a:visited { color:#005fab; text-decoration:none; } .Jtips-con a:hover { text-decoration: underline; }'), this.setTips(), null !== this.opts.event && this.bindEvent()
 800             },
 801             insertStyles: function(t) {
 802                 var e = document,
 803                     i = e.getElementsByTagName("head"),
 804                     s = e.createElement("style"),
 805                     a = e.createElement("link");
 806                 if (/\.css$/.test(t)) a.rel = "stylesheet", a.type = "text/css", a.href = t, i.length ? i[0].appendChild(a) : e.documentElement.appendChild(a);
 807                 else {
 808                     if (s.setAttribute("type", "text/css"), s.styleSheet) s.styleSheet.cssText = t;
 809                     else {
 810                         var n = e.createTextNode(t);
 811                         s.appendChild(n)
 812                     }
 813                     i.length && i[0].appendChild(s)
 814                 }
 815             },
 816             bindEvent: function() {
 817                 var t = this;
 818                 this.opts.autoClose ? this.$obj.hover(function() {
 819                     t.show()
 820                 }, function() {
 821                     t.hide()
 822                 }) : this.$obj.unbind(this.opts.event).bind(this.opts.event, function() {
 823                     t.show()
 824                 })
 825             },
 826             bindClose: function(t) {
 827                 var e = this;
 828                 t.find(".Jtips-close").bind("click", function() {
 829                     e.remove()
 830                 })
 831             },
 832             getPosition: function() {
 833                 var t = this.$obj;
 834                 return {
 835                     w: t.outerWidth(),
 836                     h: t.outerHeight(),
 837                     oTop: t.offset().top,
 838                     oLeft: t.offset().left
 839                 }
 840             },
 841             setPosition: function(t, e) {
 842                 var i = this.getPosition();
 843                 if (t.css({
 844                     position: "absolute",
 845                     "z-index": this.opts.zIndex
 846                 }), "left" === e && t.css({
 847                     top: i.oTop - 10 + this.opts.oTop,
 848                     left: i.oLeft - this.tips.outerWidth() - this.opts.oLeft
 849                 }), "right" === e && t.css({
 850                     left: i.oLeft + i.w + this.opts.oLeft,
 851                     top: i.oTop - 10 + this.opts.oTop
 852                 }), "top" === e && t.css({
 853                     left: i.oLeft - 10 + this.opts.oLeft,
 854                     top: i.oTop - this.tips.outerHeight() - this.opts.oTop
 855                 }), "bottom" === e && t.css({
 856                     left: i.oLeft - 10 + this.opts.oLeft,
 857                     top: i.oTop + i.h + this.opts.oTop
 858                 }), this.opts.autoClose) {
 859                     var s = this.$obj.css("position");
 860                     this.$obj.css({
 861                         position: "static" == s ? "relative" : s
 862                     }), t.css({
 863                         left: this.opts.oLeft,
 864                         top: this.$obj.outerHeight()
 865                     })
 866                 }
 867             },
 868             setTips: function() {
 869                 var e = this.opts.close ? '<div class="Jtips-close">&times;</div>' : "",
 870                     i = t('<div data-tipID="' + this.id + '" class="Jtips Jtips-' + this.opts.position + '"><div class="Jtips-arr"></div>' + e + '<div class="Jtips-con">' + this.opts.content + "</div></div>"),
 871                     s = this;
 872                 1 > t('[data-tipID="' + this.id + '"]').length && (this.tips = i, this.opts.autoClose ? this.$obj.append(i) : t("body").eq(0).append(i), this.tips.css("width", this.opts.width || i.width()).find(".Jtips-con").css("width", (this.opts.width || i.width()) - 20), this.setPosition(i, this.opts.position), this.bindClose(i), t(window).resize(function() {
 873                     s.setPosition(i, s.opts.position)
 874                 }), "function" == typeof this.callback && this.callback.apply(this.$obj, [i]))
 875             },
 876             show: function() {
 877                 this.tips.show()
 878             },
 879             hide: function() {
 880                 this.tips.hide()
 881             },
 882             remove: function() {
 883                 this.tips.remove()
 884             }
 885         }, t.fn.Jtips = function(i, s) {
 886             return this.each(function() {
 887                 var a = new e(this, i, s);
 888                 t(this).data("Jtips", a)
 889             })
 890         }
 891     }(jQuery),
 892     function(t) {
 893         t.fn.jqueryzoom = function(e) {
 894             var i = {
 895                 xzoom: 200,
 896                 yzoom: 200,
 897                 offset: 10,
 898                 position: "right",
 899                 lens: 1,
 900                 preload: 1
 901             };
 902             e && t.extend(i, e);
 903             var s = "";
 904             t(this).hover(function() {
 905                 function e(t) {
 906                     this.x = t.pageX, this.y = t.pageY
 907                 }
 908                 var a = t(this).offset().left,
 909                     n = t(this).offset().top,
 910                     o = t(this).find("img").get(0).offsetWidth,
 911                     r = t(this).find("img").get(0).offsetHeight;
 912                 s = t(this).find("img").attr("alt");
 913                 var c = t(this).find("img").attr("jqimg");
 914                 t(this).find("img").attr("alt", ""), 0 == t("div.zoomdiv").get().length && (t(this).after("<div class='zoomdiv'><img class='bigimg' src='" + c + "'/></div>"), t(this).append("<div class='jqZoomPup'>&nbsp;</div>")), t("div.zoomdiv").width(i.xzoom), t("div.zoomdiv").height(i.yzoom), t("div.zoomdiv").show(), i.lens || t(this).css("cursor", "crosshair"), t(document.body).mousemove(function(s) {
 915                     mouse = new e(s);
 916                     var c = t(".bigimg").get(0).offsetWidth,
 917                         d = t(".bigimg").get(0).offsetHeight,
 918                         l = "x",
 919                         p = "y";
 920                     if (isNaN(p) | isNaN(l)) {
 921                         var p = c / o,
 922                             l = d / r;
 923                         t("div.jqZoomPup").width(i.xzoom / (1 * p)), t("div.jqZoomPup").height(i.yzoom / (1 * l)), i.lens && t("div.jqZoomPup").css("visibility", "visible")
 924                     }
 925                     xpos = mouse.x - t("div.jqZoomPup").width() / 2 - a, ypos = mouse.y - t("div.jqZoomPup").height() / 2 - n, i.lens && (xpos = a > mouse.x - t("div.jqZoomPup").width() / 2 ? 0 : mouse.x + t("div.jqZoomPup").width() / 2 > o + a ? o - t("div.jqZoomPup").width() - 2 : xpos, ypos = n > mouse.y - t("div.jqZoomPup").height() / 2 ? 0 : mouse.y + t("div.jqZoomPup").height() / 2 > r + n ? r - t("div.jqZoomPup").height() - 2 : ypos), i.lens && t("div.jqZoomPup").css({
 926                         top: ypos,
 927                         left: xpos
 928                     }), scrolly = ypos, t("div.zoomdiv").get(0).scrollTop = scrolly * l, scrollx = xpos, t("div.zoomdiv").get(0).scrollLeft = scrollx * p
 929                 })
 930             }, function() {
 931                 t(this).children("img").attr("alt", s), t(document.body).unbind("mousemove"), i.lens && t("div.jqZoomPup").remove(), t("div.zoomdiv").remove()
 932             }), count = 0, i.preload && (t("body").append("<div style='display:none;' class='jqPreload" + count + "'>360buy</div>"), t(this).each(function() {
 933                 var e = t(this).children("img").attr("jqimg"),
 934                     i = jQuery("div.jqPreload" + count).html();
 935                 jQuery("div.jqPreload" + count).html(i + '<img src="' + e + '">')
 936             }))
 937         }
 938     }(jQuery);
 939 var suit_TPL = {
 940         tabs: '<ul class="stab lh">{for item in packResponseList}<li class="fore${parseInt(item_index)+1}{if item_index==0} scurr{/if}" data-widget="tab-item" data-cat="${item.packId}" data-suit="${item.packName}" title="${item.packName}">{if G.cat[2]==694}${item.packName.substr(0, 6)}{else}\u4f18\u60e0\u5957\u88c5${parseInt(item_index)+1}{/if}</li>{/for}</ul>',
 941         cons: '{for item in packResponseList}<div data-widget="tab-content" packPrice="${item.packPrice.amount}" packListPrice="${parseFloat((item.baseDiscount||0)+item.packPrice.amount).toFixed(2)}" discount="${(item.baseDiscount||item.discount.amount)}" data-cat="${item.packId}" class="stabcon{if parseInt(item_index) !== 0} none{/if}"><div class="master">    <s></s>    <div class="p-img">        <a href="http://item.jd.com/' + G.sku + '.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(' + G.sku + ")}n4/" + pageConfig.product.src + '" height="100" width="100"></a>' + "    </div>" + '    <div class="p-name">' + '        <a href="http://item.jd.com/' + G.sku + '.html" target="_blank">' + G.name + "</a>" + "    </div>" + "</div>" + '<div class="suits">' + '    <ul class="lh" style="width:${(item.productList.length-1)*165}px">' + "{for itemList in item.productList}" + "{if itemList.skuId == G.sku}" + "{else}" + '        <li data-sku="${itemList.skuId}" onclick=\'G.getNewCLK({ name: "yhtz", action: "1", sku:${G.sku}, csku:[${itemList.skuId}], index:${itemList_index} })\'>' + "            <s></s>" + '            <div class="p-img">' + '                <a href="http://item.jd.com/${itemList.skuId}.html" target="_blank"><img alt="" {if Number(item_index)!=0}data-{/if}src="${pageConfig.FN_GetImageDomain(itemList.skuId)}n4/${itemList.skuPicUrl}" alt="" height="100" width="100"></a>' + "            </div>" + '            <div class="p-name">' + '                <a href="http://item.jd.com/${itemList.skuId}.html" target="_blank">${itemList.skuName}</a>' + "            </div>" + "        </li>" + "{/if}" + "{/for}" + "    </ul>" + "</div>" + '<div class="infos">' + "    <s></s>" + '    <div class="p-name">' + '        <a href="http://www.jd.com/suite/${item.packId}-${skuId}.html">${item.packName}</a>' + "    </div>" + '    <div class="p-price">\u5957&nbsp;&nbsp;\u88c5&nbsp;&nbsp;\u4ef7\uff1a' + '        <strong class="fitting-price">${parseFloat(item.packPrice.amount).toFixed(2)}</strong>' + "    </div>" + '    <div class="p-price">\u4eac \u4e1c \u4ef7\uff1a' + '        <del class="orign-price">${parseFloat((item.baseDiscount||0)+item.packPrice.amount).toFixed(2)}</del>' + "    </div>" + '    <div class="p-saving">\u7acb\u5373\u8282\u7701\uff1a' + '        <span class="fitting-saving">${parseFloat(item.baseDiscount||item.discount.amount).toFixed(2)}</span>' + "    </div>" + '    <div class="btns">' + '        <a class="btn-buy" href="http://jd2008.jd.com/purchase/initcart.aspx?pId=${item.packId}&pCount=1&pType=2" clstag="shangpin|keycount|product|{if G.isPop}popbuysuit{else}zybuysuit{/if}">\u8d2d\u4e70\u5957\u88c5</a>' + "    </div>" + "</div>" + "</div>" + "{/for}"
 942     },
 943     recoFittings_TPL = {
 944         tabs: '<li class="fore scurr" onclick="G.sortFitting(this, \'all\', \'#tab-reco\')">\u5168\u90e8\u914d\u4ef6</li>{for item in fittingType}<li class="fore${parseInt(item_index)+1}" data-count="${item.number}" data-cat="${item.sort}" onclick="G.sortFitting(this, ${item.sort}, \'#tab-reco\')">${item.name}(${item.number})</li>{/for}',
 945         cons: '<div class="master">    <s></s>    <div class="p-img">        <a href="http://item.jd.com/${master.skuid}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(master.skuid)}n4/${master.pic}" height="100" width="100"></a>    </div>    <div class="p-name">        <a href="http://item.jd.com/${master.skuid}.html" target="_blank">${master.name}</a>    </div>    <div class="p-price"><input id="inp_${G.sku}_reco" type="checkbox" onclick="return false;" onchange="return false" wmeprice="{if master.price==""}0.00{else}${master.price}{/if}" wmaprice="${master.discount}" skuid="${master.skuid}" checked/> ${master.price}</div></div><div class="suits" data-count="${fittings.length}" style="overflow-x:{if parseInt(fittings.length)>(pageConfig.wideVersion&&pageConfig.compatible ? 4:3)}scroll{else}hidden{/if}">    <ul class="lh" style="width:${parseInt(fittings.length)*165}px">        {for item in fittings}        <li data-cat="${item.sort}" data-push="${pageConfig.product.cbRecoFittings.push(item.skuid)}" onclick=\'G.getNewCLK({ name: "tjpj", action: "1", sku:${G.sku}, csku: [${item.skuid}], index:${item_index}  })\'>            <s></s>            <div class="p-img">                <a href="http://item.jd.com/${item.skuid}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(item.skuid)}n4/${item.pic}" alt="" height="100" skuidth="100"></a>            </div>            <div class="p-name">                <a href="http://item.jd.com/${item.skuid}.html" target="_blank">${item.name}</a>            </div>            <div class="choose">                <input type="checkbox" id="inp_${item.skuid}" onclick="G.calculatePrice(this, \'#tab-reco\')" wmaprice="${item.discount}" wmeprice="${item.price}" skuid="${item.skuid}" />                <label for="inp_${item.skuid}" class="p-price">                    <strong class="J-p-${item.skuid}"></strong>                </label>            </div>        </li>        {/for}    </ul></div><div class="infos">    <s></s>    <div class="p-name">        <em>\u5df2\u9009\u62e9<span>0</span>\u4e2a\u914d\u4ef6</em>    </div>    <div class="p-price">\u642d&nbsp;&nbsp;\u914d&nbsp;&nbsp;\u4ef7\uff1a        <strong class="res-jdprice">{if master.price==""}\u6682\u65e0\u62a5\u4ef7{else}\uffe5 ${master.price}{/if}</strong>    </div>    <div class="p-saving">\u83b7\u5f97\u4f18\u60e0\uff1a        <span class="res-totalprice saving">\uffe5 ${master.discount}</span>    </div>    <div class="btns">        <a class="btn-buy" href="http://cart.jd.com/cart/dynamic/reBuyForOrderCenter.action?wids=${master.skuid}&nums=1" clstag="shangpin|keycount|product|tuijianpeijianbt">\u7acb\u5373\u8d2d\u4e70</a>    </div></div>'
 946     },
 947     suitRecommendNew_TPL = '<div class="stabcon"><div class="master">    <s></s>    <div class="p-img">        <a href="http://item.jd.com/${G.sku}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(G.sku)}n4/${G.src}" height="100" width="100"></a>    </div>    <div class="p-name">        <a href="http://item.jd.com/${G.sku}.html" target="_blank">${G.name}</a>    </div>    <div class="p-price none"><input type="checkbox" id="inp_${G.sku}_hot" onclick="return false;" onchange="return false" wmaprice="${G.mp}" wmeprice="${G.jp}" skuid="${G.sku}" checked/> ${G.jp}</div></div><div class="suits" style="overflow-x:{if parseInt(data.length)>(pageConfig.wideVersion&&pageConfig.compatible ? 4:3)}scroll{else}hidden{/if}">    <ul class="lh" style="width:${parseInt(data.length)*165}px">        {for item in data}        <li data-clk="${item.clk}" data-push="${pageConfig.product.cbCombineBuying.push(item.sku)}" onclick="reClick(\'${G.mdPerfix}3\', \'${G.sku}\', \'${item.sku}#${item.jp}\', \'${item_index}\');">            <s></s>            <div class="p-img">                <a href="http://item.jd.com/${item.sku}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(item.sku)}n4/${item.img}" alt="" height="100" width="100"></a>            </div>            <div class="p-name">                <a href="http://item.jd.com/${item.sku}.html" target="_blank">${item.t}</a>            </div>            <div class="choose">                <input type="checkbox" id="inp_${item.sku}" onclick="G.calculatePrice(this, \'#tab-hot\')" wmaprice="${item.mp}" wmeprice="${item.jp}" skuid="${item.sku}" />                <label for="inp_${item.sku}" class="p-price">                    <strong class="J-p-${item.sku}"></strong>                </label>            </div>        </li>        {/for}    </ul></div><div class="infos" onclick="{for item in data}reClick(\'${G.mdPerfix}3\', \'${G.sku}\', \'${item.sku}#${item.jp}\', \'${item_index}\');{/for}">    <s></s>    <div class="p-name">        <a onclick="log(\'${G.mbPerfix}PopularBuy\',\'click\')" href="http://cart.jd.com/cart/dynamic/reBuyForOrderCenter.action?wids=${G.sku}&nums=1">\u8d2d\u4e70\u4eba\u6c14\u7ec4\u5408</a>    </div>    <div class="p-price">\u603b\u4eac\u4e1c\u4ef7\uff1a        <strong class="res-jdprice">\uffe5 ${G.jp}</strong>    </div>    <div class="p-saving">\u603b\u53c2\u8003\u4ef7\uff1a        <del class="res-totalprice">\uffe5 ${G.mp}</del>    </div>    <div class="btns">        <a onclick="log(\'${G.mbPerfix}PopularBuy\',\'click\')" class="btn-buy" href="http://cart.jd.com/cart/dynamic/reBuyForOrderCenter.action?wids=${G.sku}&nums=1" clstag="shangpin|keycount|product|renqizuhebt">\u8d2d\u4e70\u7ec4\u5408</a>    </div></div><div class="clb"></div></div>',
 948     addToCart_TPL = '<ul class="lh">    {for item in data}    {if Number(item.jp)>=0}    <li data-push="${pageConfig.product.GrecommendSkus.push(item.sku)}" class="fore1" data-clk="${item.clk}">        <div class="p-img"><a target="_blank" href="http://item.jd.com/${item.sku}.html"><img height="100" width="100" alt="${item.t}" data-img="1" src="${pageConfig.FN_GetImageDomain(item.sku)}n4/${item.img}"></a></div>        <div class="p-name"><a target="_blank" href="http://item.jd.com/${item.sku}.html"" title="${item.t}">${item.t}</a></div>        <div class="p-price"><strong class="J-p-${item.sku}">\uffe5${item.jp}</strong></div>    </li>    {/if}    {/for}</ul>',
 949     noStock = '<ul>    {for item in data}    {if Number(item.jp)>=0}    <li style="width:225px" data-push="${pageConfig.product.GrecommendSkus.push(item.sku)}" class="fore1" data-clk="${item.clk}" onclick="reClick2(\'${pageConfig.product.cat[0]+"&SORec"}\',\'${pageConfig.product.skuid}\', \'${item.sku}#${item.jp}\', ${item_index})">        <div class="p-img"><a target="_blank" href="http://item.jd.com/${item.sku}.html"><img height="130" width="130" alt="${item.t}" data-img="1" src="${pageConfig.FN_GetImageDomain(item.sku)}n3/${item.img}"></a></div>        <div class="p-name"><a target="_blank" href="http://item.jd.com/${item.sku}.html"" title="${item.t}">${item.t}</a></div>        <div class="p-price"><strong class="J-p-${item.sku}">\uffe5${item.jp}</strong></div>    </li>    {/if}    {/for}</ul>',
 950     itemDisabledReco = '<ul>    {for item in data}    {if Number(item.jp)>=0}    <li style="width:225px;height:225px;" data-push="${pageConfig.product.GrecommendSkus.push(item.sku)}" class="fore1" data-clk="${item.clk}">        <div class="p-img"><a target="_blank" href="http://item.jd.com/${item.sku}.html"><img height="130" width="130" alt="${item.t}" data-img="1" src="${pageConfig.FN_GetImageDomain(item.sku)}n3/${item.img}"></a></div>        <div class="p-name" style="text-align:left;"><a target="_blank" href="http://item.jd.com/${item.sku}.html"" title="${item.t}">${item.t}</a></div>        <div class="p-price" style="text-align:left;"><strong class="J-p-${item.sku}">\uffe5${item.jp}</strong></div>        <div class="p-comm"><a href="http://club.jd.com/review/${item.sku}-1-1.html" class="p-comm-${item.sku}"></a><div>    </li>    {/if}    {/for}</ul>',
 951     itemDisabled = '<p>\u7c7b\u4f3c\u5546\u54c1</p><div class="controls">{for list in json}<a class="{if list_index==0}curr{/if}" data-widget="tab-item" href="#none">${Number(list_index)+1}</a>{/for}</div><div class="itemover-related-list">    {for list in json}    <ul class="lh {if list_index!=0} hide{/if}" data-widget="tab-content">        {for item in list.tabs}        {if Number(item.jp)>=0}        <li data-push="${pageConfig.product.GrecommendSkus.push(item.sku)}" class="fore1" data-clk="${item.clk}">            <div class="p-img"><a target="_blank" href="http://item.jd.com/${item.sku}.html"><img height="160" width="160" alt="${item.t}" data-img="1" src="${pageConfig.FN_GetImageDomain(item.sku)}n2/${item.img}"></a></div>            <div class="p-name"><a target="_blank" href="http://item.jd.com/${item.sku}.html"" title="${item.t}">${item.t}</a></div>            <div class="p-price"><strong class="J-p-${item.sku}">\uffe5${item.jp}</strong></div>        </li>        {/if}        {/for}    </ul>    {/for}</div>',
 952     listBuyBuyNew_TPL = '<ul>  {for item in data}  <li class="fore${Number(item_index)+1}" data-clk="${item.clk}" onclick="reClick(\'${G.mdPerfix}2\',\'${G.sku}\',\'${item.sku}#${item.jp}\',${item_index});" class="fore${parseInt(arguments[2])+1}" data-push="${pageConfig.product.GrecommendSkus.push(item.sku)}">      <div class="p-img">          <a target="_blank" title="${item.t}" href="http://item.jd.com/${item.sku}.html"><img height="100" width="100" alt="${item.t}" data-lazyload="${pageConfig.FN_GetImageDomain(item.sku)}n4/${item.img}"></a>      </div>      <div class="p-name">          <a target="_blank" title="${item.t}" href="http://item.jd.com/${item.sku}.html">${item.t}</a>      </div>      <div class="p-price">          <strong class="J-p-${item.sku}">${item.jp}</strong>      </div>  </li>  {/for}</ul>',
 953     listBrosweBrosweNew_TPL = '<ul>  {for item in data}  <li class="fore${Number(item_index)+1}" data-clk="${item.clk}" onclick="reClick(1,\'\',\'${item.sku}\',${item_index});" class="fore${parseInt(arguments[2])+1}" data-push="${pageConfig.product.GrecommendSkus.push(item.sku)}">      <div class="p-img">          <a target="_blank" title="${item.t}" href="http://item.jd.com/${item.sku}.html"><img height="100" width="100" alt="${item.t}" data-lazyload="${pageConfig.FN_GetImageDomain(item.sku)}n4/${item.img}"></a>      </div>      <div class="p-name">          <a target="_blank" title="${item.t}" href="http://item.jd.com/${item.sku}.html">${item.t}</a>      </div>      <div class="p-price">          <strong class="J-p-${item.sku}">${item.jp}</strong>      </div>  </li>  {/for}</ul>',
 954     listBrosweBuyNew_TPL = '<ul>  {for item in data}  <li class="fore${Number(item_index)+1}" data-clk="${item.clk}" onclick="reClick(\'${G.mdPerfix}1\', ${G.sku}, \'${item.sku}#${item.jp}\', ${item_index});" class="fore${parseInt(arguments[2])+1}" data-push="${pageConfig.product.GrecommendSkus.push(item.sku)}">      <div class="p-img">          <a target="_blank" title="${item.t}" href="http://item.jd.com/${item.sku}.html"><img height="100" width="100" alt="${item.t}" data-lazyload="${pageConfig.FN_GetImageDomain(item.sku)}n4/${item.img}"></a>      </div>      <div class="p-name">          <a target="_blank" title="${item.t}" href="http://item.jd.com/${item.sku}.html">${item.t}</a>      </div>      <div class="p-price">          <strong class="J-p-${item.sku}">${item.jp}</strong>      </div>  </li>  {/for}</ul>',
 955     newCommentRate_TPL = '<div id="i-comment">    <div class="rate">        <strong>${productCommentSummary.goodRateShow}<span>%</span></strong>        <br> <span>\u597d\u8bc4\u5ea6</span>     </div>     <div class="percent">        <dl>             <dt>\u597d\u8bc4<span>(${productCommentSummary.goodRateShow}%)</span></dt>             <dd> <div style="width: ${productCommentSummary.goodRateShow}px;"></div></dd>         </dl>         <dl>             <dt>\u4e2d\u8bc4<span>(${productCommentSummary.generalRateShow}%)</span></dt>             <dd class="d1"><div style="width: ${productCommentSummary.generalRateShow}%;"> </div></dd>         </dl>         <dl>             <dt>\u5dee\u8bc4<span>(${productCommentSummary.poorRateShow}%)</span></dt>            <dd class="d1">             <div style="width: ${productCommentSummary.poorRateShow}%;"> </div></dd>         </dl>     </div>     {if typeof hotCommentTagStatistics!="undefined" && hotCommentTagStatistics.length>0}    <div class="actor-new">        <dl>            <dt>\u4e70\u5bb6\u5370\u8c61\uff1a</dt>            <dd class="p-bfc">                {for tag in hotCommentTagStatistics}<q class="comm-tags"><span>${tag.name}</span><em>(${tag.count})</em></q>{/for}            </dd>        </dl>        <div class="clr"></div> <b></b>    </div>    {elseif typeof topFiveCommentVos!="undefined"}    <div class="actor">         <em>\u53d1\u8868\u8bc4\u4ef7\u5373\u53ef\u83b7\u5f97\u4eac\u8c46\uff0c\u524d\u4e94\u4f4d\u8bc4\u4ef7\u7528\u6237\u53ef\u83b7\u5f97\u53cc\u500d\u4eac\u8c46\uff1a</em><a href="http://help.jd.com/help/question-890.html" target="_blank">\u8be6\u89c1\u4eac\u8c46\u89c4\u5219</a>        <ul>            {for User in topFiveCommentVos}             <li><span>+{if User.integral==null}0{else}${User.integral}{/if}</span><div class="u-name">${parseInt(User_index)+1}. <a href="http://club.jd.com/userreview/${User.uid}-1-1.html" target="_blank">${User.nickname}</a></div></li>            {/for}         </ul>        <div class="clr"></div>         <b></b>    </div>    {/if}    <div class="btns">         <div>\u60a8\u53ef\u5bf9\u5df2\u8d2d\u5546\u54c1\u8fdb\u884c\u8bc4\u4ef7</div>         <a href="http://club.jd.com/mycomments.aspx?pid=${productCommentSummary.productId}" class="btn-comment" target="_blank">\u53d1\u8bc4\u4ef7\u62ff\u4eac\u8c46</a>        <div><em class="hl_red">\u524d\u4e94\u540d\u53ef\u83b7\u53cc\u500d\u4eac\u8c46</em><a href="http://help.jd.com/help/question-890.html" target="_blank">[\u89c4\u5219]</a></div>    </div></div>',
 956     newCommentList_TPL = '{for list in comments}<div class="item">  <div class="user">      <div class="u-icon"> {if !list.anonymousFlag||list.anonymousFlag!=1}<a title="\u67e5\u770bTA\u7684\u5168\u90e8\u8bc4\u4ef7" href="http://me.jd.com/${list.uid}.html" target="_blank">{/if} <img height="50" width="50" upin="${list.pin}" src="http://{if typeof list.userImageUrl!=="undefined"}${list.userImageUrl}{else}misc.360buyimg.com/lib/img/u/${list.userLevelId}.gif{/if}" alt="${list.nickname}"/> {if !list.anonymousFlag||list.anonymousFlag!=1}</a>{/if}      </div>      <div class="u-name"> {if !list.anonymousFlag||list.anonymousFlag!=1}<a href="http://me.jd.com/${list.uid}.html" target="_blank">{/if}      {if !G.isNothing(list.nickname)}          ${list.anonymousFlag&&list.anonymousFlag==1 ?  list.nickname.replace(list.nickname.substring(1, list.nickname.length - 1 ), "***") : list.nickname}      {else}          ${list.pin}      {/if}      {if !list.anonymousFlag||list.anonymousFlag!=1}</a>{/if}</div> <span class="u-level"><span style="color:{if !G.isNothing(list.userLevelColor)}${list.userLevelColor}{/if}"> ${list.userLevelName}</span> {if !G.isNothing(list.userProvince)}<span class="u-address">${list.userProvince}</span>{/if}</span>  </div>  <div class="i-item" data-guid="${list.guid}" data-top="${list.top}">      <div class="o-topic">           {if list.top}<strong class="topic topic-best">\u7cbe\u534e</strong>{/if}          <span class="star sa${list.score}"></span><span><a class="date-comment" title="\u67e5\u770b\u8bc4\u4ef7\u8be6\u60c5" href="http://club.jd.com/repay/${list.referenceId}_${list.guid}_1.html" target="_blank">${list.creationTime.replace(/:[0-9][0-9]$/, "")}</a><em class="fr hl_blue">${list.userClientShow}</em></span>          <strong class="topic"><a href="http://club.jd.com/repay/${list.referenceId}_${list.guid}_1.html" target="_blank">${list.title}</a></strong>      </div>      <div class="comment-content">          {if !G.isNothing(list.commentTags)}          <dl>              <dt>\u6807&#12288;&#12288;\u7b7e\uff1a</dt>              <dd>                  {for tag in list.commentTags}                  <q data-tid="${tag.id}" class="comm-tags" href="#none"><span>${tag.name}</span><em></em></q>                  {/for}              </dd>          </dl>          {/if}          {if !G.isNothing(list.pros)}          <dl>              <dt>\u4f18\u70b9\uff1a</dt>               <dd> ${list.pros}</dd>          </dl>          {/if}           {if !G.isNothing(list.cons)}          <dl>              <dt>\u4e0d\u8db3\uff1a</dt>               <dd> ${list.cons}</dd>          </dl>          {/if}           {if !G.isNothing(list.content)}           <dl>              <dt>\u5fc3\u5f97\uff1a</dt>               <dd> ${list.content}</dd>          </dl>          {/if}            {if list.mergeOrderStatus>0&&!G.isNothing(list.images)}            <dl> <dt>\u7528\u6237\u6652\u5355\uff1a</dt>            <dd>                <div class="comment-show-pic">                                  <table cellspacing="10"><tr>                  {for image in list.images}                      {if parseInt(image_index)<3}                      <td><a class="comment-show-pic-wrap" href="http://club.jd.com/bbsDetail/${list.showOrderComment.referenceId}_${list.showOrderComment.guid}_1.html" target="_blank" clstag="shangpin|keycount|product|shaipic"><img alt="" src="${image.imgUrl}" alt="${list.nickname} \u7684\u6652\u5355\u56fe\u7247" /></a></td>                      {/if}                  {/for}                  </tr></table>                                <span clstag="shangpin|keycount|product|shaitext"><em class="fl" style="color:#9C9A9C;margin-right:5px;">\u5171${list.images.length}\u5f20\u56fe\u7247</em><a href="http://club.jd.com/bbsDetail/${list.showOrderComment.referenceId}_${list.showOrderComment.guid}_1.html" target="_blank" class="p-simsun">\u67e5\u770b\u6652\u5355&gt;</a></span>                </div>            </dd>            {/if}          <div class="dl-extra">              {if !G.isNothing(list.productColor)}              <dl>                  <dt>\u989c\u8272\uff1a</dt>                  <dd>${list.productColor}</dd>              </dl>              {/if}              {if !G.isNothing(list.productSize)}              <dl>                  <dt>\u578b\u53f7\uff1a</dt>                  <dd>${list.productSize}</dd>              </dl>              {/if}              {if true}              {for attr in productAttr}                  {if !G.isNothing(list[attr.key])}                  <dl>                      <dt>{if attr.type=="baby_date"}{if list[attr.key] > strtotime(list.creationTime)}\u6000\u5b55\u5468\u671f{else}\u5b9d\u5b9d\u5e74\u9f84{/if}{else}${attr.name}{/if}\uff1a</dt>                      <dd>                          {if attr.type=="baby_date"}                              {if list[attr.key] > strtotime(list.creationTime)}                                 \u6000\u5b55 ${ Math.ceil(40-(list[attr.key]-strtotime(list.creationTime))/7/86400) }\u5468                              {else}                                  ${monthDay( list[attr.key], strtotime(list.creationTime, null, true), list_index )}                              {/if}                          {else}                              ${list[attr.key]} ${attr.unit}                          {/if}                      </dd>                  </dl>                  {/if}              {/for}              {/if}          </div><s class="clr"></s>          {if typeof list.referenceTime !=="undefined"}          <dl>              <dt>\u8d2d\u4e70\u65e5\u671f\uff1a</dt>              <dd>${list.referenceTime.split(" ")[0]}</dd>          </dl>          {/if}      </div>      <div class="btns">          <a class="btn-reply btn-toggle fr" data-id="${list.id}" href="#none">\u56de\u590d(<em>${list.replyCount}</em>)</a>          <div class="useful fr" id="${list.guid}">              <a name="agree" class="btn-agree" title="${list.usefulVoteCount}" href="#none">\u6709\u7528(${list.usefulVoteCount})</a>              <!--<a name="oppose" class="btn-oppose" title="${list.uselessVoteCount}" href="#none">\u6ca1\u7528(${list.uselessVoteCount})</a>-->          </div>      </div>      <div class="item-reply reply-lz" data-name="{if !G.isNothing(list.nickname)}${list.anonymousFlag&&list.anonymousFlag==1 ?  list.nickname.replace(list.nickname.substring(1, list.nickname.length - 1 ), "***") : list.nickname}{else}${list.pin}{/if}" data-uid="{list.uid}">          <strong></strong>          <div class="reply-list">               <div id="btn-toggle-${_type}-${list.id}" class="replay-form none">                   <div class="arrow"> <em>\u25c6</em><span>\u25c6</span></div>                   <div class="reply-wrap">                       <p><em>\u56de\u590d</em>  <span class="u-name">                           ${list.anonymousFlag&&list.anonymousFlag==1 ?  list.nickname.replace(list.nickname.substring(1, list.nickname.length - 1 ), "***") : list.nickname}                       \uff1a</span></p>                       <div class="reply-input">                           <div class="fl"><input type="text"></div>                           <a href="#none" class="reply-btn btn-gray p-bfc reply-btn-lz" data-nick="${list.nickname}" data-guid="${list.guid}" data-replyId="${list.id}">\u56de\u590d</a>                           <div class="clr"></div>                       </div>                   </div>               </div>          </div>      </div>      {for reply in list.replies}      <div class="item-reply hide-default {if list.top} hide{/if}" data-index="${list.replyCount-parseInt(reply_index)}" data-name="${reply.nickname}" data-uid="${reply.uid}">          <strong>${list.replyCount-parseInt(reply_index)}</strong>          <div class="reply-list">              <div class="reply-con">                  <span class="u-name">                      {if reply.userClient==98&&!G.isNothing(reply.venderShopInfo)}                          <a class="parentReplyFrom" href="${reply.venderShopInfo.appName}" target="_blank">${reply.venderShopInfo.title}<b class="sj"></b></a>                      {else}                          <a target="_blank" href="http://club.jd.com/userreview/${reply.uid}-1-1.html">                              ${reply.nickname}                              {if reply.userClient==99}<b></b>{/if}                          </a>                      {/if}                      {if parseInt(reply.parentId, 10)>0}                          <em>\u56de\u590d</em>                          {if !G.isNothing(reply.parent)&&reply.parent.userClient==98&&!G.isNothing(reply.parent.venderShopInfo)}                              <a class="parentReplyFrom" href="${reply.parent.venderShopInfo.appName}" target="_blank">${reply.parent.venderShopInfo.title}<b class="sj"></b></a>                          {else}                              {if !G.isNothing(reply.parent)}<a target="_blank" href="http://club.jd.com/userreview/${reply.parent.uid}-1-1.html">{if parseInt(reply.parentId, 10)<0}${list.nickname}{else}${reply.parent.nickname}{if reply.parent.userClient==99}<b></b>{/if}{/if}</a>{/if}                          {/if}                      {/if}\uff1a                  </span>                  <span class="u-con">${reply.content}</span>              </div>              <div class="reply-meta">                  <span class="reply-left fl">${reply.creationTimeString.replace(/:[0-9][0-9]$/, "")}</span>                  <a class="p-bfc btn-toggle hl_blue" data-id="${reply.id}" href="#none">\u56de\u590d</a>              </div>              <div id="btn-toggle-${_type}-${reply.id}" class="replay-form none">                  <div class="arrow">                      <em>\u25c6</em><span>\u25c6</span>                  </div>                  <div class="reply-wrap">                      <p><em>\u56de\u590d</em> <span class="u-name">${reply.nickname}\uff1a</span></p>                      <div class="reply-input">                          <div class="fl"><input type="text" /></div>                          <a href="#none" class="reply-btn btn-gray p-bfc" data-nick="${reply.nickname}" data-guid="${list.guid}" data-replyId="${reply.id}">\u56de\u590d</a>                          <div class="clr"></div>                      </div>                  </div>              </div>          </div>      </div>      {/for}      {if list.replyCount > 5}      <div class="ac">           <a class="hl_blue" href="http://club.jd.com/repay/${productCommentSummary.productId}_${list.guid}_1.html" title="\u67e5\u770b\u5168\u90e8\u56de\u590d" target="_blank">\u67e5\u770b\u5168\u90e8\u56de\u590d&gt;&gt;</a>      </div>      {/if}   </div>  <div class="corner tl"></div></div>{forelse}    {if score == 0}     <div class="norecode">         \u6682\u65e0\u5546\u54c1\u8bc4\u4ef7\uff01<span style="hl-red">\u4e89\u62a2\u4ea7\u54c1\u8bc4\u4ef7\u524d5\u540d\uff0c\u524d5\u4f4d\u8bc4\u4ef7\u7528\u6237\u53ef\u83b7\u5f97\u591a\u500d\u4eac\u8c46\u54e6\uff01</span>\uff08<a href="http://help.jd.com/help/question-890.html" target="_blank">\u8be6\u89c1\u4eac\u8c46\u89c4\u5219</a>\uff09\uff01    </div>    <div class="extra clearfix">        <div class="join">            \u53ea\u6709\u8d2d\u4e70\u8fc7\u8be5\u5546\u54c1\u7684\u7528\u6237\u624d\u80fd\u8fdb\u884c\u8bc4\u4ef7\u3002&nbsp;&nbsp;<a target="_blank" href="http://club.jd.com/Simplereview/${productCommentSummary.productId}.html" name="http://club.jd.com/Simplereview/${productCommentSummary.productId}.html" id="A1">[\u53d1\u8868\u8bc4\u4ef7]</a>&nbsp;&nbsp;<a target="_blank" href="http://club.jd.com/allreview/1-1.html">[\u6700\u65b0\u8bc4\u4ef7]</a>        </div>    </div>     {elseif score == 3}         <div class="norecode"> \u6682\u65e0\u597d\u8bc4\uff01</div>     {elseif score == 2}         <div class="norecode"> \u6682\u65e0\u4e2d\u8bc4\uff01</div>     {elseif score == 1}         <div class="norecode"> \u6682\u65e0\u5dee\u8bc4\uff01</div>     {elseif score == 4}         <div class="norecode"> \u6682\u65e0\u6652\u5355\u8bc4\u4ef7\uff01</div>    {/if}{/for}<div class="clearfix">    {if productCommentSummary.commentCount}<div class="fl" style="padding:8px 0 0 120px;"><a href="http://club.jd.com/review/${productCommentSummary.productId}-0-1-0.html" target="_blank" class="hl_blue">[\u67e5\u770b\u5168\u90e8\u8bc4\u4ef7]</a></div>{/if}    <div class="pagin fr" clstag="shangpin|keycount|product|fanye" id="commentsPage${score}">    </div></div>',
 957     discuss_TPL = '<table width="100%" cellspacing="0" cellpadding="0" border="0">    <tbody>        <tr>            <th class="col1">\u4e3b\u9898</th>            <th class="col2">\u56de\u590d/\u6d4f\u89c8</th>            <th class="col3">\u4f5c\u8005</th>            <th class="col4">\u65f6\u95f4</th>        </tr>        {for comment in discussComments.Comments}        {if Number(comment_index) < 10}        <tr>            <td class="col1">                <div class="topic">                    {if comment.referenceType == "Order"}                    <b class="icon shai"></b>                    {elseif comment.referenceType == "User"}                    <b class="icon lun"></b>                    {elseif comment.referenceType == "Question"}                    <b class="icon wen"></b>                    {elseif comment.referenceType == "Friend"}                    <b class="icon quan"></b>                    {/if}                    <a href="http://club.jd.com/bbsDetail/${comment.referenceId}_${comment.id}_1.html" target="_blank">${comment.title}</a>                </div>            </td>            <td class="col2">${comment.replyCount}/${comment.viewCount}</td>            <td class="col3">                <div class="u-name">                    <a target="_blank" title="${comment.uRemark}" href="http://me.jd.com/${comment.uid}.html">{if comment.uRemark}${comment.uRemark}{else}${comment.userId}{/if}</a>                </div>            </td>            <td class="col4">${comment.creationTime}</td>        </tr>        {/if}        {/for}    </tbody></table><table id="discuss-comment" width="100%" cellspacing="0" cellpadding="0" border="0"></table>{if discussComments.CommentCount <= 0}    {if parseInt(ReferenceType) == 1}        <div class="norecode">\u6682\u65e0\u8ba8\u8bba\u5e16\uff01</div>    {elseif parseInt(ReferenceType) == 2}        <div class="norecode">\u6682\u65e0\u95ee\u7b54\u5e16\uff01</div>    {elseif parseInt(ReferenceType) == 3}        <div class="norecode">\u6682\u65e0\u5708\u5b50\u8d34\uff01</div>    {elseif parseInt(ReferenceType) == 4}        <div class="norecode">\u6682\u65e0\u6652\u5355\u5e16\uff01</div>    {else}        <div class="norecode">\u6682\u65e0\u7f51\u53cb\u8ba8\u8bba\uff01</div>    {/if}{/if}<div class="extra clearfix">    {if discussComments.CommentCount > 0}    <div class="total">          <span>\u5171${Discuss.count=discussComments.CommentCount}\u4e2a\u8bdd\u9898</span>&nbsp;&nbsp;           <a target="_blank" href="http://club.jd.com/bbs/${referenceId}-1-0-${ReferenceType}.html">\u6d4f\u89c8\u5168\u90e8\u8bdd\u9898&gt;&gt;</a>    </div>    {/if}    <div class="contact">        \u6709\u95ee\u9898\u8981\u4e0e\u5176\u4ed6\u7528\u6237\u8ba8\u8bba\uff1f<a target="_blank" href="http://club.jd.com/bbs/${referenceId}-1.html" name="http://club.jd.com/bbs/${referenceId}-1.html" id="userComment${ReferenceType}">[\u53d1\u8868\u5e16\u5b50]</a>    </div></div>',
 958     consult_TPL = '{if !!Consultations}    {for Consultation in Consultations}    <div class="item{if Consultation_index% 2 == 1} odd{/if}">        <div class="user">            <span class="u-name">\u7f51\u3000\u3000\u53cb\uff1a${Consultation.UNickNme}</span>             <!--<span class="u-level" name="${Consultation.UserId}"></span>-->             <span class="u-level" ><font style="color:${Consultation.UserLevelColor}"> ${Consultation.UserLevelName} </font></span>             <span class="date-ask">${Consultation.CreationTime}</span>        </div>        <dl class="ask">            <dt><b></b>\u54a8\u8be2\u5185\u5bb9\uff1a</dt>            <dd><a target="_blank" href="http://club.jd.com/consultation/${Consultation.ProductId}-${Consultation.Id}.html">${Consultation.Content}</a></dd>        </dl>        <dl class="answer">            {for Reply in Consultation.Replies}            <dt>                <b></b>                {if Reply.sst == 2}\u5356\u5bb6\u56de\u590d\uff1a {else}\u4eac\u4e1c\u56de\u590d\uff1a{/if}             </dt>            <dd>                <div class="content">${Reply.sword}</div>                <div class="date-answer">${Reply.sinsdate}</div>            </dd>            {/for}        </dl>    </div>    {/for}{else}    <div class="norecode">\u6682\u65e0\u8be5\u7c7b\u54a8\u8be2\uff01</div>{/if}<div class="extra clearfix">    <div class="total hide-pop">        \u5171<strong>${SearchParameter.Count}</strong>\u6761&nbsp;&nbsp;         <a href="http://club.jd.com/allconsultations/${SearchParameter.ProductId}-1-1.html" target="_blank">\u6d4f\u89c8\u6240\u6709\u54a8\u8be2\u4fe1\u606f&gt;&gt;</a>     </div>    <div class="join">        \u8d2d\u4e70\u4e4b\u524d\uff0c\u5982\u6709\u95ee\u9898\uff0c\u8bf7{if $("#j-im").length}\u54a8\u8be2&nbsp;&nbsp;<a id="j-im-extra" class="djd-im hide" clstag="shangpin|keycount|product|imbtn"><b>\u8054\u7cfb\u5ba2\u670d</b></a><span class="hide-pop">\uff0c\u6216</span>{/if}        <a id="consultation" href="http://club.jd.com/allconsultations/${SearchParameter.ProductId}-1-1.html#form1">[\u53d1\u8868\u54a8\u8be2]</a>    </div></div>',
 959     consult_search_TPL = '{for item in list}<div class="item search-result-item">    <div class="user">        <span class="u-name">\u7f51\u3000\u3000\u53cb\uff1a${item.nickname}</span>        <span class="date-ask">${item.sindate}</span>    </div>    <dl class="ask">        <dt><b></b>\u54a8\u8be2\u5185\u5bb9\uff1a</dt>        <dd>${item.sword}</dd>    </dl>    <dl class="answer">        <dt><b></b>\u4eac\u4e1c\u56de\u590d\uff1a</dt>        <dd>{if item.sword!==""}${item.sword2}{/if}</dd>    </dl>    <div id="${item.sid}" class="useful">\u60a8\u5bf9\u6211\u4eec\u7684\u56de\u590d\uff1a        <a name="2" href="#none" class="btn-pleased">\u6ee1\u610f</a>        (<span>${item.zantong}</span>)\u3000        <a name="2" href="#none" class="btn-unpleased">\u4e0d\u6ee1\u610f</a>        (<span>${item.fd}</span>)    </div></div>{/for}',
 960     search_TPL = '{for list in Product}<dl skuid="${list.wareid}" data-push="${pageConfig.product.searchList.push(list.wareid)}">    <dt class="p-img"><a target="_blank" href="http://item.jd.com/${list.wareid}.html"><img width="50" height="50" src="${pageConfig.FN_GetImageDomain(list.wareid)}n5/${list.Content.imageurl}" alt=""></a></dt>    <dd class="p-name"><a target="_blank" href="http://item.jd.com/${list.wareid}.html">${list.Content.warename}</a></dd>    <dd class="p-price"><strong class="J-p-${list.wareid}"></strong></dd></dl>{/for}',
 961     fq_serverSite = "http://jd2008.jd.com/purchase/",
 962     fq_serverSiteService = "http://jd2008.jd.com/purchaseservice/",
 963     fq_serverUrl = "ajaxServer/ForMiniCart_fq.aspx",
 964     fq_btnPanel = "choose-btn-divide",
 965     fq_skuId = "",
 966     fq_TipHtml = "",
 967     isFqOpen = !0,
 968     fq_returnData = null,
 969     isIe = window.ActiveXObject ? !0 : !1,
 970     Grecommend = function(t, e, i, s, a) {
 971         this.sku = t, this.rid = e, this.locId = i, this.lim = a || 6, this.pin = readCookie("pin"), this.pid = null === i ? 1 : i.split("-")[0], this.el = s;
 972         var n = this;
 973         return 1713 == pageConfig.product.cat[0] ? !1 : ("#tab-hot" === s.selector || "#out-of-stock #noitem-list" === s.selector ? n.init() : $(s.selector).parent().wrap('<div data-lazyload="true"></div>').parent().Jlazyload({
 974             type: "module"
 975         }, function() {
 976             n.init()
 977         }), void 0)
 978     };
 979 Grecommend.prototype = {
 980     init: function() {
 981         var t = readCookie("__jda");
 982         this.uuid = t ? "-" == t.split(".")[1] ? -1 : t.split(".")[1] : -1, this.get(this.rid)
 983     },
 984     get: function(t) {
 985         var e = this,
 986             i = {
 987                 sku: this.sku,
 988                 p: t || this.rid,
 989                 lid: this.pid,
 990                 lim: this.lim,
 991                 uuid: this.uuid,
 992                 ec: "utf-8"
 993             };
 994         if (pageConfig.product)
 995             for (var s = 0; pageConfig.product.cat.length > s; s++) i["c" + (s + 1)] = pageConfig.product.cat[s];
 996         this.pin && (i.pin = this.pin), $.ajax({
 997             url: "http://diviner.jd.com/diviner?" + decodeURIComponent($.param(i)),
 998             dataType: "jsonp",
 999             scriptCharset: "utf-8",
1000             success: function(t) {
1001                 e.set(t)
1002             }
1003         })
1004     },
1005     set: function(t) {
1006         function e(t, e) {
1007             for (var i = t.length / e, s = [], a = 0; i > a; a++) s.push({
1008                 tabs: [],
1009                 increment: null,
1010                 count: e,
1011                 skuids: []
1012             });
1013             for (var n = 0, o = 0; t.length > o; o++) 0 == o % e && n++, s[n - 1].tabs.push(t[o]), s[n - 1].increment = n, s[n - 1].skuids.push(t[o].wid);
1014             return s
1015         }
1016 
1017         function i() {
1018             pageConfig.product.cbCombineBuying = [pageConfig.product.skuid], a.attr("loaded", "true").html(suitRecommendNew_TPL.process(t)), log(G.mdPerfix + "3", "Show"), Recommend.switchTab("#th-hot"), G.removeLastAdd(), $("#tab-hot .master input").attr("skuid", pageConfig.product.skuid), G.getPriceNum(pageConfig.product.cbCombineBuying, readCookie("ipLoc-djd"), a, null, function(t, e) {
1019                 a.find('input[skuid="' + t + '"]').attr("wmeprice", e.p), a.find('input[skuid="' + t + '"]').attr("wmaprice", e.m), G.calculatePrice($("#tab-hot .master input")[0], "#tab-hot")
1020             })
1021         }
1022         var s = this,
1023             a = s.el;
1024         if (pageConfig.product.GrecommendSkus = [], t.success && t.data && t.data.length > 0) {
1025             if (105e3 === this.rid && this.el.html(listBrosweBrosweNew_TPL.process(t)).parent().show(), 102004 === this.rid && this.el.html(listBrosweBrosweNew_TPL.process(t)).parent().show(), 103001 === this.rid && this.el.html(listBrosweBuyNew_TPL.process(t)).parent().show(), 102003 === this.rid && this.el.html(listBrosweBuyNew_TPL.process(t)).parent().show(), 103002 === this.rid && (this.el.html(listBuyBuyNew_TPL.process(t)).parent().show(), log(G.mdPerfix + "2", "Show")), 102002 === this.rid && this.el.html(listBuyBuyNew_TPL.process(t)).parent().show(), 102001 === this.rid && (1315 == G.cat[0] || 11729 == G.cat[0] ? (pageConfig.product.cbCombineBuying = [pageConfig.product.skuid], s.set1315(t)) : i()), 103003 === this.rid && i(), (102001 === this.rid || 103003 === this.rid) && G.getPriceNum(pageConfig.product.GrecommendSkus, null, this.el), 303001 === this.rid && this.el.html(addToCart_TPL.process(t)).parent().show(), 103e3 === this.rid || 102e3 === this.rid) {
1026                 this.el.html(noStock.process(t)), $("#out-of-stock").show();
1027                 var n = pageConfig.wideVersion && pageConfig.compatible ? 5 : 4;
1028                 $("#noitem-list").imgScroll({
1029                     visible: n,
1030                     showControl: !0,
1031                     step: n,
1032                     loop: !1,
1033                     prev: "#noitem-forward",
1034                     next: "#noitem-backward",
1035                     disableClass: "disabled"
1036                 })
1037             }
1038             if (902011 === this.rid) {
1039                 var o = pageConfig.wideVersion && pageConfig.compatible ? 4 : 3;
1040                 t.json = e(t.data, o), this.el.html(itemDisabled.process(t)), this.el.parents(".clearfix").eq(0).attr("data-widget", "tabs").Jtab({
1041                     compatible: !0,
1042                     auto: !0
1043                 })
1044             }
1045             if (902018 === this.rid) {
1046                 var a = $("#noitem-list");
1047                 this.el.html(itemDisabledReco.process(t)), $("#out-of-stock").show();
1048                 var n = pageConfig.wideVersion && pageConfig.compatible ? 5 : 4;
1049                 a.imgScroll({
1050                     visible: n,
1051                     showControl: !0,
1052                     step: n,
1053                     loop: !1,
1054                     prev: "#noitem-forward",
1055                     next: "#noitem-backward",
1056                     disableClass: "disabled"
1057                 }), G.getCommentData(pageConfig.product.GrecommendSkus, a, null)
1058             }
1059             G.getPriceNum(pageConfig.product.GrecommendSkus, readCookie("ipLoc-djd"), this.el), this.el.find("img").Jlazyload({
1060                 type: "image"
1061             }), this.setTrackCode(t.impr)
1062         }
1063     },
1064     set1315: function(t) {
1065         function e(t) {
1066             if (t) {
1067                 var e = $("#pop-box .p-scroll-wrap"),
1068                     i = $("#pop-box .p-scroll-next"),
1069                     s = $("#pop-box .p-scroll-prev");
1070                 e.find("li").length > 4 && e.imgScroll({
1071                     showControl: !0,
1072                     width: 30,
1073                     height: 30,
1074                     visible: 4,
1075                     step: 1,
1076                     prev: s,
1077                     next: i
1078                 })
1079             } else G.setScroll("#stabcon_pop")
1080         }
1081 
1082         function i(e, i) {
1083             var e = e;
1084             if (i) var s = i.split("|"),
1085                 a = s[1],
1086                 p = s[2];
1087             $("#pop-box").length > 0 && $("#pop-box").attr("data-ind", e), r.clear().show(e, function() {
1088                 var i = $("#pop-list-" + e),
1089                     s = i.attr("data-sku"),
1090                     r = i.find("a.curr").attr("title");
1091                 l(e), n.del(), d.get(e), o(e, a || null, t), c.get(s, a || r, e, p)
1092             })
1093         }
1094         var s = $("#tab-hot"),
1095             a = {
1096                 set: function(t, e) {
1097                     1 > $("#p-selected-" + t).length ? $("#pop-list-" + t).find(".p-scroll").hide().before('<div id="p-selected-' + t + '" class="p-selected">\u5df2\u9009\u62e9\uff1a' + e.split("|")[1] + "\uff0c" + e.split("|")[2] + ' <a data-ind="' + t + '" class="p-modify" href="#none">\u4fee\u6539</a></div>') : $("#p-selected-" + t).html("\u5df2\u9009\u62e9\uff1a" + e.split("|")[1] + "\uff0c" + e.split("|")[2] + ' <a data-ind="' + t + '" class="p-modify" href="#none">\u4fee\u6539</a>'), $(".p-modify").unbind("click").bind("click", function() {
1098                         i(parseInt(this.getAttribute("data-ind")), e)
1099                     }), $("#p-selected-" + t).attr("data-res", e)
1100                 }
1101             },
1102             n = {
1103                 set: function(t) {
1104                     var e = t || $("#stabcon_pop .pop-list");
1105                     e.find(".p-scroll").each(function() {
1106                         var t = $(this),
1107                             e = t.prev(".p-img").find("img"),
1108                             i = t.find(".p-scroll-wrap a");
1109                         G.thumbnailSwitch(i, e, "/n2/", "curr")
1110                     })
1111                 },
1112                 del: function(t) {
1113                     var e = t || $("#stabcon_pop .pop-list");
1114                     e.find(".p-scroll").each(function() {
1115                         $(this).find(".p-scroll-wrap img").unbind("mouseover")
1116                     })
1117                 }
1118             },
1119             o = function(t, e) {
1120                 var i = $("#p-scroll .p-scroll-wrap a"),
1121                     s = $("#pop-list-" + t).find(".p-img img"),
1122                     a = $("#pop-list-" + t).attr("data-sku");
1123                 i.unbind("click").bind("click", function() {
1124                     var e = ($(this), $(this).find("img").attr("src")),
1125                         n = $(this).attr("title");
1126                     c.get(a, n, t, null), i.removeClass("curr"), $(this).addClass("curr"), s.attr("src", e.replace("/n5/", "/n2/")), $("#pop-list-" + t).attr("data-res") && $("#pop-list-" + t).removeAttr("data-res")
1127                 }), e && i.each(function() {
1128                     $(this).attr("title") == e && $(this).trigger("click")
1129                 })
1130             },
1131             r = {
1132                 show: function(t, e) {
1133                     $("#pop-box").css({
1134                         left: t * $("#stabcon_pop .pop-list").outerWidth() - $("#stabcon_pop .suits").scrollLeft(),
1135                         visibility: "visible"
1136                     }), "function" == typeof e && e(t)
1137                 },
1138                 hide: function() {
1139                     return $("#pop-box").css("visibility", "hidden"), this
1140                 },
1141                 clear: function() {
1142                     var t = ($("#pop-box"), $("#p-scroll,#p-size,#p-tips"));
1143                     return t.html(""), this.isClear = !0, n && n.set(), this
1144                 }
1145             },
1146             c = {
1147                 sClick: function(t, e) {
1148                     var i = $("#p-size a"),
1149                         s = $("#pop-list-" + t),
1150                         a = this;
1151                     i.click(function() {
1152                         var t = $(this).attr("data-resku"),
1153                             e = $("#p-scroll .p-scroll-wrap .curr").attr("title"),
1154                             n = $(this).attr("title"),
1155                             o = $(this).attr("wmaprice"),
1156                             r = $(this).attr("wmeprice");
1157                         i.removeClass("selected"), $(this).addClass("selected"), a.clearTips("#p-noselected"), s.attr("data-res", [t, e, n, o, r].join("|"))
1158                     }), e && $("#p-size a").each(function() {
1159                         $(this).attr("title") == e && $(this).trigger("click")
1160                     })
1161                 },
1162                 noSize: function(t, e) {
1163                     $("#p-size").addClass("nosizes").html(""), $("#pop-list-" + t).attr("data-res", [e.Subcodesku[0].Sku, $("#pop-box .curr").attr("title"), "\u65e0\u5c3a\u7801", e.Subcodesku[0].WMeprice, e.Subcodesku[0].WMaprice].join("|"))
1164                 },
1165                 get: function(t, e, i, s, a) {
1166                     var n = this,
1167                         o = {
1168                             ip: getCookie("ipLocation"),
1169                             sku: t,
1170                             color: encodeURI(e)
1171                         };
1172                     $("#pop-list-" + i).find(".no-scroll").length > 0 && (o = {
1173                         ip: getCookie("ipLocation"),
1174                         sku: t
1175                     }), window.fetchJSON_sizeList = function(e) {
1176                         1 > e.Subcodesku.length ? (n.setTips('<p id="p-nostock">\u8be5\u5546\u54c1\u5df2\u4e0b\u67b6\u6216\u65e0\u8d27</p>'), $("#p-size").html("")) : 1 == e.Subcodesku.length && 0 == !!e.Subcodesku[0].sizename || "\u65e0" == e.Subcodesku[0].sizename ? (n.noSize(i, e), n.clearTips("#p-nostock")) : (n.set(e, t, i, s), n.clearTips("#p-nostock")), "function" == typeof a && a(e)
1177                     }, $.ajax({
1178                         url: "http://prs.jd.com/Pop/CodeServiceSize.aspx?callback=fetchJSON_sizeList",
1179                         dataType: "script",
1180                         cache: !0,
1181                         data: o
1182                     })
1183                 },
1184                 set: function(t, e, i, s) {
1185                     var a = '{for list in Subcodesku}<a href="#none" data-resku="${list.Sku}" wmaprice="${list.WMaprice}" wmeprice="${list.WMeprice}" title="${list.sizename}">${list.sizename}</a>{/for}';
1186                     $("#p-size").html(a.process(t)), this.sClick(i, s)
1187                 },
1188                 setTips: function(t) {
1189                     "" == $("#p-tips").html() && $("#p-tips").html(t)
1190                 },
1191                 clearTips: function(t) {
1192                     $("#pop-box").find(t).remove()
1193                 }
1194             },
1195             d = {
1196                 get: function(t) {
1197                     $("#p-scroll").append($("#pop-list-" + t).find(".p-scroll").clone().show()), this.set(t)
1198                 },
1199                 set: function() {
1200                     e(!0)
1201                 }
1202             },
1203             l = function(t) {
1204                 var t = t;
1205                 $("#p-selected-ok").unbind("click").bind("click", function() {
1206                     var e = $("#pop-box");
1207                     if (e.find("#p-scroll .curr").attr("title"), 1 > $("#pop-box .curr").length) c.setTips('<p id="p-noselected">\u8bf7\u9009\u62e9\u989c\u8272</p>');
1208                     else if (1 > $("#pop-box .selected").length && !$("#p-size").hasClass("nosizes")) c.setTips('<p id="p-noselected">\u8bf7\u9009\u62e9\u5c3a\u7801</p>');
1209                     else {
1210                         a.set(t, $("#pop-list-" + t).attr("data-res")), r.hide().clear();
1211                         var i = $("#pop-list-" + t),
1212                             s = i.attr("data-res").split("|"),
1213                             n = s[0],
1214                             o = s[3],
1215                             d = s[4],
1216                             l = i.find(".p-price img");
1217                         l.attr("src"), i.find("input:checkbox").attr({
1218                             skuid: n,
1219                             wmaprice: o,
1220                             wmeprice: d,
1221                             checked: !0
1222                         }), G.calculatePrice($("#pop-list-" + t).find("input:checkbox")[0], "#tab-hot")
1223                     }
1224                 }), $("#p-selected-cancel").click(function() {
1225                     r.hide().clear(), 1 > $("#p-selected-" + t).length && $("#pop-list-" + t).find("input:checkbox").attr("checked", !1)
1226                 })
1227             };
1228         if (t.success) {
1229             var p = '<div id="stabcon_pop" class="stabcon stabcon_big"><div class="master">    <s></s>    <div class="p-img">        <a href="http://item.jd.com/${G.sku}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(G.sku)}n2/${G.src}" height="160" width="160"></a>    </div>    <div class="p-name">        <a href="http://item.jd.com/${G.sku}.html" target="_blank">${G.name}</a>    </div>    <div class="p-price none"><input type="checkbox" id="inp_${G.sku}_hot" onclick="return false;" onchange="return false" wmaprice="${pageConfig.product.mp}" wmeprice="${pageConfig.product.jp}" skuid="${G.sku}" checked/> ${pageConfig.product.jp}</div></div><div class="pop-wrap"><div id="pop-box" class="">    <div id="p-scroll"></div>    <div id="p-size"></div>    <div id="p-tips"></div>    <div id="p-size-btn">        <a href="#none" id="p-selected-ok">\u786e\u5b9a</a><a id="p-selected-cancel" href="#none">\u53d6\u6d88</a>    </div></div><div class="suits" style="overflow-x:{if parseInt(data.length)>(pageConfig.wideVersion&&pageConfig.compatible ? 3:2)}scroll;{else}hidden;{/if}">    <ul class="lh" style="width:${parseInt(data.length)*200+20}px">        {for item in data}        <li data-push="${pageConfig.product.cbCombineBuyingPop.push(item.sku)}" class="pop-list {if parseInt(item_index)+1==parseInt(data.length)} last-item{/if}" id="pop-list-${item_index}" data-sku="${item.sku}" data-ind="${item_index}" onclick="reClick(\'${G.mdPerfix}3\', \'${G.sku}\', \'${item.sku}#${item.jp}\', \'${item_index}\');" data-clk="${item.clk}">            <s></s>            <div class="p-img">                <a href="http://item.jd.com/${item.sku}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(item.sku)}n2/${item.img}" alt="" height="160" width="160"></a>            </div>            <div class="p-scroll">                <a href="javascript:;" class="p-scroll-btn p-scroll-prev">&lt;</a>                <div class="p-scroll-wrap">                    <ul>                    {for color in item.subsku}                        {if parseInt(color_index)==0}<li><a href="javascript:;" class="no-scroll curr" title="${item.popco}"><img data-img="1" width="25" height="25" alt="" src="${pageConfig.FN_GetImageDomain(item.sku)}n5/${item.img}"></a></li>{/if}                        <li><a href="javascript:;" class="{if parseInt(color_index)==0}curr{/if}" data-sku="${item.sku}" title="${color.hit}"><img data-img="1" width="25" height="25" alt="" src="${pageConfig.FN_GetImageDomain(item.sku)}n5/${color.img}" data-img="1"></a></li>                    {forelse}                        <li><a href="javascript:;" class="no-scroll curr" title="\u65e0"><img data-img="1" width="25" height="25" alt="" src="${pageConfig.FN_GetImageDomain(item.sku)}n5/${item.img}"></a></li>                    {/for}                    </ul>                </div>                <a href="javascript:;" class="p-scroll-btn p-scroll-next">&gt;</a>            </div>            <div class="p-name">                <a href="http://item.jd.com/${item.sku}.html" target="_blank">${item.t}</a>            </div>            <div class="choose">                <input type="checkbox" data-nocolor="${item.subsku.length<1}" id="inp_${item.sku}" class="{if parseInt(item.subsku.length)==0}no-pop-win{/if}" wmaprice="${item.wmaprice}" wmeprice="${item.jp}" skuid="${item.sku}" />                <label for="inp_${item.sku}" class="p-price">                    <strong class="J-p-${item.sku}"></strong>                </label>            </div>        </li>        {/for}    </ul></div></div><div class="infos" onclick="{for item in data}reClick(\'${G.mdPerfix}3\', \'${G.sku}\', \'${item.sku}#${item.jp}\', \'${item_index}\');{/for}">    <s></s>    <div class="p-name">        <a onclick="log(\'${G.mbPerfix}PopularBuy\',\'click\')" href="http://jd2008.jd.com/purchase/OrderFlowService.aspx?action=AddSkus&wids=${G.sku}">\u8d2d\u4e70\u4eba\u6c14\u7ec4\u5408</a>    </div>    <div class="p-price">\u603b\u4eac\u4e1c\u4ef7\uff1a        <strong class="res-jdprice">\uffe5 ${pageConfig.product.jp}</strong>    </div>    <div class="p-saving">\u603b\u53c2\u8003\u4ef7\uff1a        <del class="res-totalprice">\uffe5 ${pageConfig.product.mp}</del>    </div>    <div class="btns">        <a onclick="log(\'${G.mbPerfix}PopularBuy\',\'click\')" class="btn-buy" href="http://jd2008.jd.com/purchase/OrderFlowService.aspx?action=AddSkus&wids=${G.sku}">\u8d2d\u4e70\u7ec4\u5408</a>    </div></div><div class="clb"></div></div>';
1230             pageConfig.product.cbCombineBuyingPop = [], s.attr("loaded", "true").html(p.process(t)), pageConfig.FN_ImgError($("#tab-hot")[0]), $("#stabcon_pop .suits").scroll(function() {
1231                 if ("visible" == $("#pop-box").css("visibility")) {
1232                     var t = parseInt($("#pop-box").attr("data-ind"));
1233                     $("#pop-list-" + t).find("input:checkbox").attr("checked", !1), r.clear().hide()
1234                 }
1235             }), n.set(), e(!1), $("#stabcon_pop ul input:checkbox").click(function() {
1236                 var t = $(this),
1237                     e = t.attr("data-nocolor"),
1238                     s = t.parents(".pop-list"),
1239                     a = s.attr("data-ind");
1240                 if ("visible" == $("#pop-box").css("visibility")) {
1241                     var o = parseInt($("#pop-box").attr("data-ind"));
1242                     $("#pop-list-" + o).find("input:checkbox").attr("checked", !1), r.clear().hide()
1243                 }
1244                 "true" == e ? G.calculatePrice(t[0], "#tab-hot") : 1 == $(this).attr("checked") ? i(a) : ($("#p-selected-" + a) && ($("#p-selected-" + a).remove(), $("#pop-list-" + a).find(".p-scroll").show(), n.set($("#pop-list-" + a))), G.calculatePrice(t[0], "#tab-hot"))
1245             }), log(G.mdPerfix + "3", "Show"), Recommend.switchTab("#th-hot"), G.getPriceNum(pageConfig.product.cbCombineBuyingPop, null, s, null, function(t, e) {
1246                 s.find('input[skuid="' + t + '"]').attr("wmeprice", e.p), s.find('input[skuid="' + t + '"]').attr("wmaprice", e.m)
1247             })
1248         }
1249     },
1250     setTrackCode: function(t) {
1251         var e = this.el.find("li"),
1252             i = this,
1253             s = "&m=UA-J2011-1&ref=" + encodeURIComponent(document.referrer);
1254         e.each(function() {
1255             var t = $(this).attr("data-clk");
1256             $(this).bind("click", function(e) {
1257                 var a = $(e.target);
1258                 (a.is("a") || a.is("img") || a.is("span")) && i.newImage(t + s, !0), a.is("input") && 1 == a.attr("checked") && i.newImage(t + s, !0)
1259             })
1260         }), this.newImage(t + s, !0)
1261     },
1262     newImage: function(t, e, i) {
1263         var s = new Image;
1264         t = e ? t + "&random=" + Math.random() + new Date : t, s.onload = function() {
1265             i !== void 0 && i(t)
1266         }, s.setAttribute("src", t)
1267     }
1268 };
1269 var Recommend = {
1270         init: function(t) {
1271             this.type = t, this.renderHTML(), this.renderRecoFittingsHTML(), this.getSuits()
1272         },
1273         getSuits: function() {
1274             G.isPop ? $.ajax({
1275                 url: "http://misc.360buyimg.com/product/js/2012/suits.js",
1276                 dataType: "script",
1277                 scriptCharset: "gb2312",
1278                 cache: !0,
1279                 success: function() {
1280                     "undefined" != typeof Suits && Suits.init(G.sku)
1281                 }
1282             }) : $.ajax({
1283                 url: "http://jprice.360buy.com/suit/" + G.sku + "-1-1.html",
1284                 dataType: "script",
1285                 cache: !0,
1286                 scriptCharset: "utf-8"
1287             })
1288         },
1289         renderRecoFittingsHTML: function() {
1290             var t = G.sku,
1291                 e = 6728 == G.cat[0] || 653 == G.cat[1] || 830 == G.cat[1],
1292                 i = "-672-6864-1105-717-720-718-719-798-",
1293                 s = RegExp("-" + G.cat[2] + "-").test(i);
1294             return !G.isJd && e ? !1 : (655 == G.cat[2] ? $.ajax({
1295                 url: "http://rs.jd.com/accessorie/newServiceWhite.jsonp?sku=" + G.sku + "&callback=Recommend.cbNewFittings",
1296                 dataType: "script",
1297                 cache: !0,
1298                 scriptCharset: "utf-8"
1299             }) : 830 == G.cat[1] ? $.ajax({
1300                 url: "http://rs.jd.com/accessorie/accessoryByAccessory.jsonp?sku=" + G.sku + "&callback=Recommend.cbNewFittings",
1301                 dataType: "script",
1302                 cache: !0,
1303                 scriptCharset: "utf-8"
1304             }) : G.cat[2] > 830 && 835 > G.cat[2] || 5012 === G.cat[2] ? $.ajax({
1305                 url: "http://misc.360buyimg.com/product/js/2012/fittingsCamera.js?ver=20140424",
1306                 dataType: "script",
1307                 cache: !0,
1308                 success: function() {
1309                     fittingsCamera.init(pageConfig.product.skuid, pageConfig.product.cat[2], 1)
1310                 }
1311             }) : s ? $.ajax({
1312                 url: "http://misc.360buyimg.com/product/js/2012/fittingsCamera.js?ver=20140424",
1313                 dataType: "script",
1314                 cache: !0,
1315                 success: function() {
1316                     fittingsCamera.init(pageConfig.product.skuid, pageConfig.product.cat[2], 2)
1317                 }
1318             }) : 6728 == G.cat[0] && G.isJd ? $.ajax({
1319                 url: "http://misc.360buyimg.com/product/js/2012/fittingsAuto.js?ver=20140424",
1320                 dataType: "script",
1321                 cache: !0
1322             }) : $.getJSONP("http://d.360buy.com/fittingInfo/get?skuId=" + t + "&callback=Recommend.cbRecoFittings"), void 0)
1323         },
1324         cbNewFittings: function(t) {
1325             var e = $("#tab-reco"),
1326                 i = {
1327                     accessoryList: []
1328                 },
1329                 s = {
1330                     tabs: '<div class="tab-cat stab">    <ul>        {if pageConfig.product.cat[1]!=830}            <li id="tab-cat-0" class="fl scurr" data-widget="tab-item" data-cat="\u914d\u4ef6\u9009\u8d2d\u4e2d\u5fc3|3">\u7cbe\u9009\u914d\u4ef6</li>            {for tab in accessoryList}            <li id="tab-cat-${parseInt(tab_index)+1}" class="fl" data-widget="tab-item" data-cat="${tab.thirdName}|${tab.thirdTypeId}">${tab.thirdName}</li>            {/for}        {else}            {for tab in accessoryList}            <li id="tab-cat-${parseInt(tab_index)+1}" class="{if Number(tab_index)==0}scurr{/if} fl" data-widget="tab-item" data-cat="${tab.thirdName}|${tab.thirdTypeId}">${tab.thirdName}</li>            {/for}        {/if}    </ul></div>',
1331                     cons: '<div id="newFittign-tab"  data-widget="tabs"><div class="master">    <s></s>    <div class="p-img">        <a href="http://item.jd.com/${mainproduct.sku}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(mainproduct.sku)}n4/${mainproduct.imageUrl}" height="100" width="100"></a>    </div>    <div class="p-name">        <a href="http://item.jd.com/${mainproduct.sku}.html" target="_blank">${mainproduct.name}</a>    </div>    <div class="p-price"><input id="inp_${mainproduct.sku}_reco" type="checkbox" onclick="return false;" onchange="return false" wmeprice="{if mainproduct.price==""}0.00{else}${mainproduct.price}{/if}" wmaprice="${mainproduct.maPrice}" skuid="${mainproduct.sku}" checked/> ${mainproduct.price}</div></div><div class="suits" style="width:${pageConfig.wideVersion&&pageConfig.compatible?(4*165-40):(3*128)}px;overflow-x:{if G.cat[1]!=830}auto{else}hidden{/if};overflow-y:hidden;">    {for tab in accessoryList}    <ul id="newFitting-${parseInt(tab_index)+1}" data-cat="${tab.thirdName}" style="width:${G.cat[1]==830?165*tab.accessoryList.length:660}px;" class="{if G.cat[1]==830}{if Number(tab_index)!=0}hide{/if}{else}hide{/if} lh" data-widget="tab-content">        {if G.cat[1]==830}            {for list in tab.accessoryList}            <li data-push="${pageConfig.product.cbNewFittings.push(list.sku)}" {if (parseInt(list_index)+1)==tab.accessoryList.length} class="last_item"{/if} onclick=\'${pageConfig.setFittingsClk(G.cat[2], G.sku, list.sku, 50, list_index, "rodGlobalTrack")}\'>                <s></s>                <div class="p-img">                    <a href="http://item.jd.com/${list.sku}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(list.sku)}n4/${list.imageUrl}" alt="" height="100" width="100"></a>                </div>                <div class="p-name">                    <a href="http://item.jd.com/${list.sku}.html" target="_blank">${list.name}</a>                </div>                <div class="choose">                    <input type="checkbox" id="inp_${list.sku}" onclick="G.calculatePrice(this, \'#tab-reco\')" wmaprice="${list.maPrice}" wmeprice="${list.price}" skuid="${list.sku}" />                    <label for="inp_${list.sku}" class="p-price">                        <strong class="J-p-${list.sku}"></strong>                    </label>                </div>            </li>            {/for}        {else}            <div class="iloading">\u52a0\u8f7d\u4e2d...</div>        {/if}    </ul>    {/for}</div><div class="infos">    {if pageConfig.product.cat[1]!=830}<div id="more-fitting-link"><a class="hl_link" href="http://rs.jd.com/accessorie/center.html?sku=${G.sku}&thirdTypeId=3" target="_blank">\u8fdb\u5165\u914d\u4ef6\u9009\u8d2d\u4e2d\u5fc3</a><span>&gt;<b></b></span></div>{/if}    <s></s>    <div class="p-name">        <em>\u5df2\u9009\u62e9<span>0</span>\u4e2a\u914d\u4ef6</em>    </div>    <div class="p-price">\u642d&nbsp;&nbsp;\u914d&nbsp;&nbsp;\u4ef7\uff1a        <strong class="res-jdprice">{if mainproduct.price==""}\u6682\u65e0\u62a5\u4ef7{else}\uffe5 ${mainproduct.price.toFixed(2)}{/if}</strong>    </div>    <div class="p-saving">\u53c2&nbsp;&nbsp;\u8003&nbsp;&nbsp;\u4ef7\uff1a        <span class="res-totalprice">\uffe5 ${mainproduct.maPrice.toFixed(2)}</span>    </div>    <div class="btns">        <a class="btn-buy" href="http://jd2008.jd.com/purchase/OrderFlowService.aspx?action=AddSkus&wids=${G.sku}">\u7acb\u5373\u8d2d\u4e70</a>    </div></div></div>',
1332                     item: '{for item in accessoryList}<li data-push="${pageConfig.product.cbNewFittings.push(item.sku)}" {if (parseInt(item_index)+1)==accessoryList.length} class="last_item"{/if}  onclick=\'${pageConfig.setFittingsClk(G.cat[2], G.sku, item.sku, 34, item_index)};\'>    <s></s>    <div class="p-img">        <a href="http://item.jd.com/${item.sku}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(item.sku)}n4/${item.imageUrl}" alt="" height="100" skuidth="100"></a>    </div>    <div class="p-name">        <a href="http://item.jd.com/${item.sku}.html" target="_blank">${item.name}</a>    </div>    <div class="choose">        <input type="checkbox" id="inp_m_${item.sku}" onclick="G.calculatePrice(this, \'#tab-reco\')" wmaprice="${item.maPrice}" wmeprice="${item.price}" skuid="${item.sku}" />        <label for="inp_m_${item.sku}" class="p-price">            <strong class="J-p-${item.sku}"></strong>        </label>    </div>    {if isExtra==true}    <div class="p-more{if (parseInt(item_index)+1)!==accessoryList.length} hide{/if}"><a class="hl_link" href="http://rs.jd.com/accessorie/center.html?sku=${G.sku}&thirdTypeId=${item.thirdType}" target="_blank"></a></div>    {else}    <div class="p-more"><a class="hl_link" href="http://rs.jd.com/accessorie/center.html?sku=${G.sku}&thirdTypeId=${item.thirdType}" target="_blank">\u66f4\u591a${item.thirdName}</a></div>    {/if}</li>{/for}'
1333                 };
1334             if (pageConfig.product.cbNewFittings = [pageConfig.product.skuid], pageConfig.setFittingsClk = function(t, e, i, s, a) {
1335                 var n = {
1336                     cid: t,
1337                     mainSku: e,
1338                     itemSku: i,
1339                     id: s,
1340                     ind: a,
1341                     str: "rodGlobalTrack"
1342                 };
1343                 return 830 === G.cat[1] && (n.cid = "", n.mainSku = ""), n.rid = 830 === G.cat[1] ? 402002 : 402001, 'clsClickLog("${cid}", "${mainSku}", "${itemSku}", ${id}, "${ind}", "${str}");G.clsLog(${rid}, "1", ${G.sku}, ${itemSku}, ${ind});'.process(n)
1344             }, 655 == G.cat[2] ? (clsPVAndShowLog("655", G.sku, 34, "p"), G.clsLog(402001, "0", G.sku, pageConfig.product.cbNewFittings.join(","))) : G.clsLog(402002, "0", G.sku, pageConfig.product.cbNewFittings.join(",")), t.accessoryByAccessList && (t.accessoryList = t.accessoryByAccessList, t.accessoryByAccessList = null), t && t.accessoryList && t.accessoryList.length > 0) {
1345                 if (e.attr("loaded", "true").html(s.cons.process(t)), 830 != pageConfig.product.cat[1]) {
1346                     for (var a = 0; t.accessoryList.length > a; a++) t.accessoryList[a].accessoryList.length = 4, t.accessoryList[a].accessoryList[0].thirdType = t.accessoryList[a].thirdTypeId, t.accessoryList[a].accessoryList[0].thirdName = t.accessoryList[a].thirdName, i.accessoryList.push(t.accessoryList[a].accessoryList[0]), i.isExtra = !1;
1347                     $("#newFittign-tab .suits").prepend('<ul id="newFitting-0" class="lh" data-widget="tab-content" style="width:' + 165 * i.accessoryList.length + 'px">' + s.item.process(i) + "</ul>")
1348                 }
1349                 $("#newFittign-tab").prepend(s.tabs.process(t)).Jtab({
1350                     event: "click",
1351                     compatible: !0,
1352                     currClass: "scurr"
1353                 }, function(t, i, a) {
1354                     var n = $("#newFittign-tab .suits"),
1355                         o = $("#tab-cat-" + a).attr("data-cat").split("|")[1],
1356                         r = $("#tab-cat-" + a).attr("data-cat").split("|")[0],
1357                         c = $("#more-fitting-link a");
1358                     if (830 != G.cat[1])
1359                         if (c.attr("href", "http://rs.jd.com/accessorie/center.html?sku=" + G.sku + "&thirdTypeId=" + o).html("\u8fdb\u5165" + r), n.scrollLeft(0), 0 !== a) {
1360                             if ("1" == $("#newFitting-" + a).attr("loaded")) return;
1361                             window.fetchJSON_fittingExtra = function(t) {
1362                                 var i = pageConfig.wideVersion && pageConfig.compatible ? 4 : 3;
1363                                 t.isExtra = !0, t.accessoryList = t.accessoryList.slice(0, i), $("#newFitting-" + a).html(s.item.process(t)).attr("loaded", "1"), $("#newFitting-" + a).find(".hl_link").html("\u66f4\u591a" + $("#tab-cat-" + a).html());
1364                                 try {
1365                                     delete window.fetchJSON_fittingExtra
1366                                 } catch (n) {}
1367                                 G.getPriceNum(pageConfig.product.cbNewFittings, readCookie("ipLoc-djd"), e, null, function(t, i) {
1368                                     e.find('input[skuid="' + t + '"]').attr("wmeprice", i.p), e.find('input[skuid="' + t + '"]').attr("wmaprice", i.m), G.calculatePrice($("#tab-reco .master input")[0], "#tab-reco")
1369                                 })
1370                             }, $.ajax({
1371                                 url: "http://rs.jd.com/accessorie/newServiceList.jsonp?sku=" + G.sku + "&thirdTypeId=" + o + "&callback=fetchJSON_fittingExtra",
1372                                 dataType: "script",
1373                                 cache: "true",
1374                                 scriptCharset: "utf-8"
1375                             }), $("#newFittign-tab .suits").removeAttr("style").css({
1376                                 width: pageConfig.wideVersion && pageConfig.compatible ? 620 : 384,
1377                                 overflow: pageConfig.wideVersion && pageConfig.compatible ? "hidden" : "auto"
1378                             })
1379                         } else $("#newFittign-tab .suits").removeAttr("style").css({
1380                             width: pageConfig.wideVersion && pageConfig.compatible ? 620 : 384,
1381                             overflowX: "auto"
1382                         })
1383                 }), clsPVAndShowLog("655", G.sku, 34, "s"), this.switchTab("#th-fitting"), G.removeLastAdd(), $("#tab-reco .master input").attr("skuid", pageConfig.product.skuid), G.getPriceNum(pageConfig.product.cbNewFittings, readCookie("ipLoc-djd"), e, null, function(t, i) {
1384                     e.find('input[skuid="' + t + '"]').attr("wmeprice", i.p), e.find('input[skuid="' + t + '"]').attr("wmaprice", i.m), G.calculatePrice($("#tab-reco .master input")[0], "#tab-reco")
1385                 })
1386             }
1387         },
1388         renderHTML: function() {
1389             switch (1 == this.type ? new Grecommend(G.sku, 105e3, readCookie("ipLoc-djd"), $("#browse-browse .mc")) : new Grecommend(G.sku, 102004, readCookie("ipLoc-djd"), $("#browse-browse .mc")), this.type) {
1390                 case 1:
1391                     new Grecommend(G.sku, 103002, readCookie("ipLoc-djd"), $("#buy-buy .mc")), new Grecommend(G.sku, 103001, readCookie("ipLoc-djd"), $("#view-buy .mc")), new Grecommend(G.sku, 103003, readCookie("ipLoc-djd"), $("#tab-hot"));
1392                     break;
1393                 case 2:
1394                     new Grecommend(G.sku, 102002, readCookie("ipLoc-djd"), $("#buy-buy .mc")), new Grecommend(G.sku, 102003, readCookie("ipLoc-djd"), $("#view-buy .mc")), 1315 == G.cat[0] || 11729 == G.cat[0] ? new Grecommend(G.sku, 102001, readCookie("ipLoc-djd"), $("#tab-hot"), 12) : new Grecommend(G.sku, 102001, readCookie("ipLoc-djd"), $("#tab-hot"), 12);
1395                     break;
1396                 default:
1397             }
1398         },
1399         getDaPeiGou: function(t, e) {
1400             var t = t || G.sku,
1401                 i = this,
1402                 s = '<ul class="lh">    {for list in cbList}    <li class="fore${parseInt(list_index)+1}" clstag="shangpin|keycount|product|dapeip${parseInt(list_index)+1}">        <div class="p-img">            <a target="_blank" title="${list.title}" href="http://dapeigou.jd.com/collocateDetail.html?cid=${list.c_id}&s=${list.sku_ids.join(\',\')}">                <img height="130" width="130" alt="" src="${list.url}">            </a>        </div>        <div class="p-name ac">            <a target="_blank" title="${list.title}" href="http://dapeigou.jd.com/collocateDetail.html?cid=${list.c_id}&s=${list.sku_ids.join(\',\')}">${list.title}</a>        </div>    </li>    {/for}</ul>';
1403             $.ajax({
1404                 url: "http://rs.jd.com/collocationBuy/service.jsonp?sku=" + t + "&venderId=" + e,
1405                 dataType: "jsonp",
1406                 success: function(t) {
1407                     t && t.cbList && t.cbList.length > 0 ? ($("#tab-dpg").html(s.process(t)), i.switchTab("#th-dpg")) : $("#tab-dpg .iloading").removeClass("iloading").html("\u6682\u65e0\u6570\u636e")
1408                 }
1409             })
1410         },
1411         switchTab: function(t) {
1412             var e = $(t),
1413                 i = $("#recommend"),
1414                 s = $('#recommend .mc[loaded="true"]'),
1415                 a = s.length > 0;
1416             i.show(), e.show(), "#th-service" != t ? e.trigger("click") : a || e.trigger("click")
1417         },
1418         cbRecoFittings: function(t) {
1419             var e = $("#tab-reco");
1420             pageConfig.product.cbRecoFittings = [pageConfig.product.skuid], t && t.fittings && t.fittings.length > 0 && (e.attr("loaded", "true").html('<ul class="stab lh">' + recoFittings_TPL.tabs.process(t) + '</ul><div class="stabcon">' + recoFittings_TPL.cons.process(t) + "</div>"), this.switchTab("#th-fitting"), G.removeLastAdd(), G.getPriceNum(pageConfig.product.cbRecoFittings, readCookie("ipLoc-djd"), e, null, function(t, i) {
1421                 e.find('input[skuid="' + t + '"]').attr("wmeprice", i.p), e.find('input[skuid="' + t + '"]').attr("wmaprice", i.m), G.calculatePrice($("#tab-reco .master input")[0], "#tab-reco", 1)
1422             }), G.getNewCLK({
1423                 name: "tjpj",
1424                 action: "0",
1425                 csku: pageConfig.product.cbRecoFittings,
1426                 sku: G.sku
1427             }))
1428         }
1429     },
1430     setAmount = {
1431         min: 1,
1432         max: 199,
1433         count: 1,
1434         countEl: $("#buy-num"),
1435         buyLink: $("#choose-btn-append .btn-append"),
1436         targetLink: $("#choose-btn-append .btn-append"),
1437         matchCountKey: ["pcount", "pCount", "num"],
1438         add: function() {
1439             return this.count >= this.max ? !1 : (this.count++, this.countEl.val(this.count), this.setBuyLink(), void 0)
1440         },
1441         reduce: function() {
1442             return this.count <= this.min ? !1 : (this.count--, this.countEl.val(this.count), this.setBuyLink(), void 0)
1443         },
1444         modify: function() {
1445             var t = parseInt(this.countEl.val(), 10);
1446             return "" == this.countEl.val() ? !1 : isNaN(t) || this.min > t || t > this.max ? (this.countEl.val(this.count), !1) : (this.count = t, this.setBuyLink(), void 0)
1447         },
1448         setBuyLink: function() {
1449             var t = this;
1450             t.targetLink.each(function() {
1451                 var e, i, s = $(this),
1452                     a = s.attr("href"),
1453                     n = a.split("?")[1];
1454                 (function() {
1455                     for (var o = 0; t.matchCountKey.length > o; o++)
1456                         if (i = RegExp(t.matchCountKey[o] + "=\\d+"), i.test(n)) return e = a.replace(i, t.matchCountKey[o] + "=" + t.count), s.attr("href", e), !1
1457                 })()
1458             }), window.getPOPDeliveCash && getPOPDeliveCash(), onNumChange()
1459         }
1460     };
1461 $.extend(jdModelCallCenter, {
1462     usefulComment: function(t) {
1463         $.login({
1464             modal: !0,
1465             complete: function(e) {
1466                 if (e.IsAuthenticated) {
1467                     var i = t.parent().attr("id"),
1468                         s = "agree" == t.attr("name");
1469                     "true" != t.attr("enabled") ? $.ajax({
1470                         type: "GET",
1471                         url: "http://club.jd.com/index.php",
1472                         data: {
1473                             mod: "ProductComment",
1474                             action: "saveCommentUserfulVote",
1475                             commentId: i,
1476                             isUseful: s
1477                         },
1478                         dataType: "jsonp",
1479                         success: function(e) {
1480                             if (t.attr("enabled", "true"), 1 == e.status) {
1481                                 var i = parseInt(t.attr("title")) + 1;
1482                                 t.attr("title", i), s ? t.html("\u6709\u7528(" + i + ")") : t.html("\u6ca1\u7528(" + i + ")")
1483                             } else alert("\u4e00\u4e2a\u8bc4\u4ef7\u53ea\u80fd\u70b9\u4e00\u6b21\u5466")
1484                         }
1485                     }) : alert("\u4e00\u4e2a\u8bc4\u4ef7\u53ea\u80fd\u70b9\u4e00\u6b21\u5466")
1486                 }
1487             }
1488         }), mark(G.sku, 5)
1489     }
1490 }), $(".btn-agree,.btn-oppose").livequery("click", function() {
1491     var t = $(this);
1492     $.extend(jdModelCallCenter.settings, {
1493         object: t,
1494         fn: function() {
1495             jdModelCallCenter.usefulComment(this.object)
1496         }
1497     }), jdModelCallCenter.settings.fn()
1498 });
1499 var consultationServiceUrl = "http://club.jd.com/newconsultationservice.aspx?callback=?";
1500 $("#btnReferSearch").livequery("click", function() {
1501     Consult.search(G.sku, $("#txbReferSearch").val(), 1, 6)
1502 }), $("#txbReferSearch").livequery("keydown", function(t) {
1503     13 == t.keyCode && Consult.search(G.sku, $("#txbReferSearch").val(), 1, 6)
1504 }), $("#backConsultations").livequery("click", function() {
1505     $("#consult .tab li.curr").trigger("click")
1506 }), $("#login").livequery("click", function() {
1507     $.login()
1508 });
1509 var Refresh = {
1510         init: function() {
1511             return G.isCellphone ? !1 : ("undefined" != typeof Promotions ? (Promotions.init(), pageConfig.promotionInited = !0) : pageConfig.promotionInited = !1, this.rFittings(), this.rCombine(), void 0)
1512         },
1513         rFittings: function() {
1514             var t, e = $("#tab-reco");
1515             pageConfig.product.cbNewFittings !== void 0 && (t = pageConfig.product.cbNewFittings), pageConfig.product.fittingsAuto !== void 0 && (t = pageConfig.product.fittingsAuto), pageConfig.product.cbRecoFittings !== void 0 && (t = pageConfig.product.cbRecoFittings), t !== void 0 && t.length > 1 && (t.push(pageConfig.product.skuid), $("#recommend .master input").attr("skuid", pageConfig.product.skuid), G.getPriceNum(t, readCookie("ipLoc-djd"), null, null, function(t, i) {
1516                 e.find('input[skuid="' + t + '"]').attr("wmeprice", i.p), e.find('input[skuid="' + t + '"]').attr("wmaprice", i.m), G.calculatePrice($("#tab-reco .master input")[0], "#tab-reco")
1517             }))
1518         },
1519         rCombine: function() {
1520             var t = $("#tab-hot");
1521             pageConfig.product.cbCombineBuying !== void 0 && (pageConfig.product.cbCombineBuying.push(pageConfig.product.skuid), G.getPriceNum(pageConfig.product.cbCombineBuying, readCookie("ipLoc-djd"), null, null, function(e, i) {
1522                 t.find('input[skuid="' + e + '"]').attr("wmeprice", i.p), t.find('input[skuid="' + e + '"]').attr("wmaprice", i.m), G.calculatePrice($("#tab-hot .master input")[0], "#tab-hot")
1523             }))
1524         }
1525     },
1526     CommentListNew = {
1527         loadFirstPage: !1,
1528         init: function(t) {
1529             var e = $("#comments-list").find(".mt"),
1530                 i = '<div id="comment-sort" class="extra"> <select > <option value="3">\u70ed\u5ea6\u6392\u5e8f</option> <option value="1">\u65f6\u95f4\u6392\u5e8f</option> </select> </div>';
1531             1 > $("#comment-sort").length && e.append(i), this.commList = $("#comments-list"), this.commRate = $("#comment"), this.wrap = $("#comment-0"), this.sku = t || G.sku, this.bindSelect(e), this.commList.find(".tab li em").html("(0)")
1532         },
1533         bindSelect: function(t) {
1534             var e = this;
1535             t.find("select").change(function() {
1536                 var t = parseInt($(this).val(), 10);
1537                 e.sort !== t && (e.sort = t, e.getData(e.wrap, e.type, e.page))
1538             })
1539         },
1540         bindHover: function() {
1541             this.commList.find(".item-reply").hover(function() {
1542                 $(this).find(".reply-meta a").css("visibility", "visible")
1543             }, function() {
1544                 "none" === $(this).find(".replay-form").css("display") && $(this).find(".reply-meta a").css("visibility", "hidden")
1545             })
1546         },
1547         bindReply: function() {
1548             var t = this;
1549             this.commList.find(".btn-toggle").unbind("click").bind("click", function() {
1550                 var e = $(this),
1551                     i = e.parents(".i-item"),
1552                     s = e.attr("data-id");
1553                 e.hasClass("btn-toggle") && $("#btn-toggle-" + t.type + "-" + s).toggle().find("input")[0].focus(), e.hasClass("btn-reply") && "true" === i.attr("data-top") && i.find(".hide-default").toggle()
1554             }), this.bindHover(), this.commList.find(".reply-btn").unbind("click").bind("click", function(e) {
1555                 var i = $(e.target),
1556                     s = i.attr("data-guid"),
1557                     a = i.attr("data-replyId"),
1558                     n = i.attr("data-nickname"),
1559                     o = i.parents(".reply-input").find("input").val(),
1560                     r = {};
1561                 if (i.hasClass("reply-btn")) return t.currReply = i, o = o.replace(/</g, "<").replace(/>/g, ">"), a = i.hasClass("reply-btn-lz") ? "" : a, r = {
1562                     guid: s,
1563                     content: o,
1564                     replyId: a,
1565                     nickname: n
1566                 }, "" === o.replace(/\s+/, "") ? (alert("\u8bf7\u8f93\u5165\u56de\u590d\u5185\u5bb9"), void 0) : (G.checkLogin(function(e) {
1567                     e.IsAuthenticated ? t.reply(r) : (jdModelCallCenter.settings.fn = function() {
1568                         G.checkLogin(function(e) {
1569                             e.IsAuthenticated && t.reply(r)
1570                         })
1571                     }, jdModelCallCenter.login())
1572                 }), void 0)
1573             })
1574         },
1575         reply: function(t) {
1576             var e = this,
1577                 i = {
1578                     mod: "Club2013.ProductCommentReply",
1579                     action: "saveProductCommentReply",
1580                     commentId: t.guid,
1581                     content: t.content,
1582                     parentId: t.replyId
1583                 },
1584                 s = t.content.replace(/[\u4e00-\u9fa5]/g, "XX");
1585             return "" === t.content.replace(/\s+/, "") ? (alert("\u8bf7\u8f93\u5165\u56de\u590d\u5185\u5bb9"), !1) : 1 > s.length || s.length > 800 ? (alert("\u56de\u590d\u5185\u5bb9\u5e94\u57281~400\u4e2a\u5b57\u4ee5\u5185"), !1) : ($.ajax({
1586                 url: "http://club.jd.com/index.php?",
1587                 data: i,
1588                 dataType: "jsonp",
1589                 success: function(i) {
1590                     1 === i.status ? (i.data.nickname = t.nickname, e.setReplyItem(i.data)) : i.info && alert(i.info)
1591                 }
1592             }), void 0)
1593         },
1594         setReplyItem: function(t) {
1595             var e, i = this,
1596                 s = i.currReply.parents(".i-item").eq(0),
1597                 a = s.find(".reply-lz"),
1598                 n = i.currReply.parents(".reply-list").eq(0),
1599                 o = n.find(".parentReplyFrom"),
1600                 r = this.currReply.parents(".item-reply").eq(0),
1601                 c = a.next();
1602             t._type = this.type, t.commentReply.guid = s.attr("data-guid"), t.commentReply.index = e = c.length > 0 ? parseInt(c.attr("data-index"), 10) + 1 : 1, t.toname = r.attr("data-name"), t.touid = r.attr("data-uid"), o.length > 0 && (t.replyHTML = $("<div>").append(o.clone()).html());
1603             var d = '<div class="item-reply hide-default" data-index="${commentReply.index}" data-name="${commentReply.nickname}" data-uid="${commentReply.uid}">          <strong>${commentReply.index}</strong>          <div class="reply-list">              <div class="reply-con">                  <span class="u-name">                      <a href="http://club.jd.com/userreview/${commentReply.uid}-1-1.html" target="_blank">${commentReply.nickname}{if commentReply.userClient==99}<b></b>{/if}</a>                      {if parseInt(commentReply.parentId, 10)>0}                          <em>\u56de\u590d</em>                          {if typeof replyHTML!=="undefined"}                              ${replyHTML}                          {else}                              <a class="parentReplyTo" target="_blank" href="http://club.jd.com/userreview/${touid}-1-1.html">{if parseInt(commentReply.parentId, 10)<0}{else}${toname}{/if}</a>                          {/if}                      {/if}\uff1a                  </span>                  <span class="u-con">${commentReply.content}</span>              </div>              <div class="reply-meta">                  <span class="reply-left fl">${commentReply.creationTimeString.replace(/:[0-9][0-9]$/, "")}</span>                  <a class="btn-toggle p-bfc" data-id="${commentReply.id}" href="#none">\u56de\u590d</a>              </div>              <div id="btn-toggle-${_type}-${commentReply.id}" class="replay-form none">                  <div class="arrow">                      <em>\u25c6</em><span>\u25c6</span>                  </div>                  <div class="reply-wrap">                      <p><em>\u56de\u590d</em> <span class="u-name">${commentReply.nickname}\uff1a</span></p>                      <div class="reply-input">                          <div class="fl"><input type="text" /></div>                          <a href="#none" class="reply-btn btn-gray p-bfc" data-guid="${commentReply.guid}" data-replyId="${commentReply.id}">\u56de\u590d</a>                          <div class="clr"></div>                      </div>                  </div>              </div>          </div>      </div>';
1604             a.after($(d.process(t)).fadeIn()), s.find(".btns .btn-reply em").html(e), this.currReply.hasClass("reply-btn-lz") || this.currReply.parents(".replay-form").eq(0).hide(), this.currReply.parents(".reply-input").find("input").val(""), this.bindReply()
1605         },
1606         getData: function(t, e, i, s) {
1607             var a = this;
1608             this.wrap = t, this.type = e || 0, this.page = i, this.sType = s || 3, this.commRateLoaded = !1, this.url = "http://club.jd.com/productpage/p-{skuId}-s-{commType}-t-{sortType}-p-{currPage}.html", this.url = this.url.replace("{skuId}", this.sku).replace("{commType}", this.type).replace("{sortType}", this.sType).replace("{currPage}", this.page), $.ajax({
1609                 url: this.url,
1610                 dataType: "jsonp",
1611                 success: function(t) {
1612                     a.setData(t)
1613                 }
1614             })
1615         },
1616         setABTest: function(t) {
1617             var e = document.getElementsByTagName("head")[0],
1618                 i = document.createElement("script");
1619             t && t.jwotest_product !== void 0 && (1 > $("#gemini_comment_sort" + t.jwotest_product).length && $("body").append('<div id="gemini_comment_sort' + t.jwotest_product + '"></div>'), i.type = "text/javascript", i.async = !0, i.id = "gemini_divide_script", i.setAttribute("param", "[{t:24}]"), i.setAttribute("cTime", "1387864948704"), i.src = "http://api.gemini.jd.com/gemini/gemini_v1.0.js", e.appendChild(i))
1620         },
1621         setData: function(t) {
1622             return t || (this.wrap.html("\u3000\u6682\u65e0\u8bc4\u8bba"), this.commRate.find(".mc").html("\u3000\u6682\u65e0\u8bc4\u8bba")), t.comments === void 0 ? (this.wrap.html('<div class="norecode"> \u6682\u65e0\u5546\u54c1\u8bc4\u4ef7\uff01</div>'), void 0) : (this.commRateLoaded === !1 && this.setCommRate($("#comment"), t), t._type = this.type, this.setCommentCount(t), this.wrap.html(newCommentList_TPL.process(t)), this.bindReply(), this.setPageNav(t), this.loadFirstPage = !0, void 0)
1623         },
1624         setPageNav: function(t) {
1625             var e = this,
1626                 i = "";
1627             switch (this.type) {
1628                 case 0:
1629                     i = "commentCount";
1630                     break;
1631                 case 1:
1632                     i = "poorCount";
1633                     break;
1634                 case 2:
1635                     i = "generalCount";
1636                     break;
1637                 case 3:
1638                     i = "goodCount";
1639                     break;
1640                 case 4:
1641                     i = "showCount";
1642                     break;
1643                 default:
1644                     i = "commentCount"
1645             }
1646             $("#commentsPage" + t.score).pagination(t.productCommentSummary[i], {
1647                 items_per_page: 10,
1648                 num_display_entries: 5,
1649                 current_page: e.page,
1650                 num_edge_entries: 2,
1651                 link_to: "#comments-list",
1652                 prev_text: "\u4e0a\u4e00\u9875",
1653                 next_text: "\u4e0b\u4e00\u9875",
1654                 ellipse_text: "...",
1655                 prev_show_always: !1,
1656                 next_show_always: !1,
1657                 callback: function(i) {
1658                     e.getData(e.wrap, t.score, i, e.sType)
1659                 }
1660             })
1661         },
1662         setCommentCount: function(t) {
1663             var e = this.commList.find(".tab li em"),
1664                 i = t.productCommentSummary;
1665             e.eq(0).html("(" + i.commentCount + ")"), e.eq(1).html("(" + i.goodCount + ")"), e.eq(2).html("(" + i.generalCount + ")"), e.eq(3).html("(" + i.poorCount + ")"), e.eq(4).html("(" + i.showCount + ")")
1666         },
1667         setCommRate: function(t, e) {
1668             t.find(".mc").html(newCommentRate_TPL.process(e)), this.commRateLoaded = !0
1669         }
1670     },
1671     Discuss = {
1672         getData: function(t, e) {
1673             var i = this,
1674                 s = "http://club.jd.com/clubservice/newcomment-",
1675                 a = "",
1676                 n = e;
1677             switch (this.obj = n, t) {
1678                 case 0:
1679                     a = "Club";
1680                     break;
1681                 case 1:
1682                     a = "Order";
1683                     break;
1684                 case 2:
1685                     a = "User";
1686                     break;
1687                 case 3:
1688                     a = "Question";
1689                     break;
1690                 case 4:
1691                     a = "Friend"
1692             }
1693             window.fetchJSON_Discuss = function(t) {
1694                 n.html(discuss_TPL.process(t)), i.getDiscussComment()
1695             }, $.getJSONP(s + a + "-" + G.orginSku + ".html?callback=fetchJSON_Discuss")
1696         },
1697         getDiscussComment: function() {
1698             var t = this,
1699                 e = "http://club.jd.com/clubservice/newcomment-Commp." + G.cat[2] + "-" + G.sku + ".html";
1700             $.ajax({
1701                 url: e,
1702                 dataType: "jsonp",
1703                 success: function(e) {
1704                     e.discussComments && e.discussComments.Comments && e.discussComments.Comments.length && t.setDiscussComment(e.discussComments)
1705                 }
1706             })
1707         },
1708         setDiscussComment: function(t) {
1709             var e = $("#discuss-comment"),
1710                 i = '<tbody>    {for item in Comments}    <tr>        <td class="col1">            <div class="topic">                <b class="icon lun"></b>                <a href="http://club.jd.com/CommunityGroupDetail/${item.id}_1.html" target="_blank">${item.title}</a>            </div>        </td>        <td class="col2">${item.replyCount}/${item.viewCount}</td>        <td class="col3">            <div class="u-name">                <a target="_blank" title="${comment.uRemark}" href="http://me.jd.com/${item.uid}.html">{if item.uRemark}${item.uRemark}{else}${item.nickname}{/if}</a>            </div>        </td>        <td class="col4">${item.creationTime}</td>    </tr>    {/for}</tbody>';
1711             e.html(i.process(t)), this.obj.find(".norecode").hide(), this.obj.find(".total span").html("\u5171" + (this.count + t.CommentCount) + "\u4e2a\u8bdd\u9898")
1712         }
1713     },
1714     Consult = {
1715         getData: function(t, e) {
1716             window.fetchJSON_Consult = function(t) {
1717                 if (e.html(consult_TPL.process(t)), void 0 !== pageConfig.im) {
1718                     var i = pageConfig.im,
1719                         s = i.code,
1720                         a = i.seller;
1721                     if (1 == s) $("#j-im-extra").css("display", "inline-block"), $("#j-im-extra").attr("title", a + " \u8054\u7cfb\u5ba2\u670d"), $("#j-im-extra").click(function() {
1722                         onlineService(1, a, i.chatDomain)
1723                     });
1724                     else if (2 == s) {
1725                         $("#j-im-extra").css("display", "inline-block");
1726                         var n = pid.length >= 10 ? " \u5ba2\u670d\u76ee\u524d\u4e0d\u5728\u7ebf\uff01\u8d2d\u4e70\u4e4b\u524d\uff0c\u5982\u6709\u95ee\u9898\uff0c\u8bf7\u5728\u6b64\u9875\u201c\u5168\u90e8\u8d2d\u4e70\u54a8\u8be2\u201d\u4e2d\u5411\u4eac\u4e1c\u5ba2\u670d\u53d1\u8d77\u54a8\u8be2" : " \u5382\u5546\u552e\u524d\u54a8\u8be2\u76ee\u524d\u4e0d\u5728\u7ebf\uff01\u8d2d\u4e70\u4e4b\u524d\uff0c\u5982\u6709\u95ee\u9898\uff0c\u8bf7\u5728\u6b64\u9875\u201c\u5168\u90e8\u8d2d\u4e70\u54a8\u8be2\u201d\u4e2d\u5411\u4eac\u4e1c\u5ba2\u670d\u53d1\u8d77\u54a8\u8be2";
1727                         $("#j-im-extra").addClass("d-offline").html("<b>\u7559\u8a00\u54a8\u8be2</b>").attr("title", a + n).unbind("click")
1728                     } else(3 == s || 9 == s) && ($("#j-im-extra").css("display", "inline-block").find("b").html("\u7ed9\u5ba2\u670d\u7559\u8a00"), $("#j-im-extra").addClass("d-offline").html("<b>\u7559\u8a00\u54a8\u8be2</b>").attr("title", a + " \u5ba2\u670d\u76ee\u524d\u4e0d\u5728\u7ebf\uff0c\u60a8\u53ef\u4ee5\u70b9\u51fb\u6b64\u5904\u7ed9\u5546\u5bb6\u7559\u8a00\uff0c\u5e76\u5728\u3010\u6211\u7684\u4eac\u4e1c->\u6d88\u606f\u7cbe\u7075\u3011\u4e2d\u67e5\u770b\u56de\u590d").click(function() {
1729                         onlineService(3, a, i.chatDomain)
1730                     }))
1731                 }
1732             }, $.getJSONP("http://club.jd.com/clubservice/newconsulation-" + G.orginSku + "-" + (t + 1) + ".html?callback=fetchJSON_Consult")
1733         },
1734         setExtraData: function(t, e) {
1735             $.jmsajax({
1736                 url: "/newsserver.asmx",
1737                 method: "PayExplain",
1738                 data: {
1739                     id: "A-product-0" + (t - 3)
1740                 },
1741                 success: function(i) {
1742                     if (null != i) {
1743                         var s = pageConfig.compatible && pageConfig.wideVersion ? 770 : 1450;
1744                         6 === t ? $("#consult-6").html('<iframe src="http://help.jd.com/help/deliveryService.html" style="margin-top:10px;width:100%;height:' + s + 'px;border:none;"></iframe>') : e.html(i)
1745                     }
1746                 }
1747             })
1748         },
1749         search: function(t, e, i) {
1750             var s = "http://search.jd.com/sayword?",
1751                 i = i || 0,
1752                 t = t || G.orginSku,
1753                 a = this;
1754             $.ajax({
1755                 url: s,
1756                 dataType: "jsonp",
1757                 data: {
1758                     wid: t,
1759                     keyword: encodeURI(e),
1760                     page: i,
1761                     ps: 5
1762                 },
1763                 success: function(t) {
1764                     var e = '<div class="clb"><div id="ReferPagenation" class="pagin fr none"></div></div>';
1765                     if (t.length > 0) {
1766                         var s = 0 >= t[0].list.length || 0 >= t[0].total ? "\uff0c\u8bd5\u8bd5\u66f4\u7b80\u77ed\u7684\u5173\u952e\u8bcd\u6216\u66f4\u6362\u5173\u952e\u8bcd" : "",
1767                             n = '<div id="consult-result" class="result clearfix"><div class="fl">\u5171\u641c\u7d22\u5230<strong>' + t[0].total + "</strong>\u6761\u76f8\u5173\u54a8\u8be2" + s + '\u3000<a id="backConsultations" href="#none">\u8fd4\u56de</a></div><div class="fr"><em>\u58f0\u660e\uff1a\u4ee5\u4e0b\u56de\u590d\u4ec5\u5bf9\u63d0\u95ee\u80053\u5929\u5185\u6709\u6548\uff0c\u5176\u4ed6\u7f51\u53cb\u4ec5\u4f9b\u53c2\u8003\uff01</em></div></div>';
1768                         if ($("#consult .tabcon:visible").html(n + "" + consult_search_TPL.process(t[0]) + e), 0 >= t[0].list.length || 0 >= t[0].total) return !1;
1769                         $("#ReferPagenation").show().pagination(t[0].total, {
1770                             items_per_page: 5,
1771                             num_display_entries: 5,
1772                             current_page: i - 1,
1773                             num_edge_entries: 0,
1774                             link_to: "#consult",
1775                             prev_text: "\u4e0a\u4e00\u9875",
1776                             next_text: "\u4e0b\u4e00\u9875",
1777                             ellipse_text: "...",
1778                             prev_show_always: !1,
1779                             next_show_always: !1,
1780                             callback: function(t) {
1781                                 a.search(G.orginSku, $("#txbReferSearch").val(), t + 1, 6)
1782                             }
1783                         })
1784                     }
1785                 }
1786             })
1787         }
1788     },
1789     Repository = {
1790         init: function(t) {
1791             var t = t || G.sku;
1792             this.t = null, this.getKeywords(), this.content = $(".detail-content").eq(0)
1793         },
1794         setKeywords: function(t) {
1795             var e = (this.content.html(), $("body").eq(0)),
1796                 i = '<b class="wiki-arr">\u25c7</b><div class="wiki-inner">  <dl><dt>${keyword}</dt>      <dd>${description}</dd>  </dl>  <div class="wiki-more"><a href="${href}" clstag="shangpin|keycount|product|xxjs" target="_blank">\u67e5\u770b\u8be6\u7ec6\u4ecb\u7ecd</a></div></div>',
1797                 s = "";
1798             if (null !== t && t.length > 0) {
1799                 for (var a = 0; t.length > a; a++) t[a].id = "wiki-keyword-" + a, this.content.html($(".detail-content").eq(0).html().replace(RegExp(t[a].keyword), '<span data-id="' + t[a].knid + '" class="wiki-words" id="' + "wiki-keyword-" + a + '" style="border-bottom:1px dotted;padding-bottom:2px;">' + t[a].keyword + "</span>")), s = i.process(t[a]), e.append($('<div class="wiki-pop hide" id="des-wiki-keyword-' + a + '">' + s + "</div>"));
1800                 $("img[data-lazyload]").Jlazyload({
1801                     type: "image",
1802                     placeholderClass: "err-product"
1803                 }), this.keyWordHover()
1804             }
1805         },
1806         log: function(t) {
1807             $.ajax({
1808                 url: "http://wiki.jd.com/statistics/termFloat.action?",
1809                 data: {
1810                     id: t,
1811                     t: +new Date
1812                 },
1813                 dataType: "script",
1814                 cache: !0
1815             })
1816         },
1817         keyWordHover: function() {
1818             var t = this,
1819                 e = $(".detail-content .wiki-words");
1820             $(".wiki-pop dl"), e.each(function() {
1821                 var e = this.id,
1822                     i = $(this).attr("data-id"),
1823                     s = $(this);
1824                 s.hover(function() {
1825                     var s = $("#product-detail"),
1826                         a = s.offset().left,
1827                         n = s.outerWidth(),
1828                         o = $(this).offset().left,
1829                         r = o - a > n / 2 ? 310 : 110,
1830                         c = o - a > n / 2 ? o - 300 : o - 100,
1831                         d = $(this).offset().top,
1832                         l = $(this).outerHeight();
1833                     $("#des-" + e).length > 0 && ($("#des-" + e).show().css({
1834                         left: c,
1835                         top: d + l - 1
1836                     }), $("#des-" + e).find("b").css({
1837                         marginLeft: r
1838                     })), t.t = setTimeout(function() {
1839                         t.log(i)
1840                     }, 500)
1841                 }, function(e) {
1842                     var i = this.id,
1843                         s = e.relatedTarget;
1844                     return s.id == "des-" + i ? !1 : ($("#des-" + i).hide(), clearTimeout(t.t), void 0)
1845                 }), $("#des-" + e).hover(function() {}, function(t) {
1846                     var i = t.relatedTarget;
1847                     return i.id == "des-" + e ? !1 : ($(this).hide(), void 0)
1848                 })
1849             })
1850         },
1851         getKeywords: function() {
1852             var t = this;
1853             $.ajax({
1854                 url: "http://wiki.jd.com/product/" + G.sku + "/keywords.html",
1855                 dataType: "jsonp",
1856                 success: function(e) {
1857                     t.setKeywords(e)
1858                 }
1859             })
1860         }
1861     },
1862     EvaluateGradeNew = {
1863         init: function(t) {
1864             var e = this;
1865             return e.popInfo = t, G.isJd ? !1 : (e.getGradeDetail(t.vid), e.getAddress(t.vid), e.setShopInfo(t), e.setGlobalBuy(t), void 0)
1866         },
1867         bindEvent: function() {
1868             return $("#evaluate s").click(function() {
1869                 $(this).toggleClass("fold"), $("#evaluate-detail").toggle()
1870             }), this
1871         },
1872         getAddress: function(t) {
1873             $.getJSONP("http://rms.shop.jd.com/json/pop/popcompany.action?callback=EvaluateGradeNew.setAddress&venderID=" + t)
1874         },
1875         setAddress: function(t) {
1876             var e = $("#online-service");
1877             t && (t.companyName || t.firstAddr || t.secAddr) && (e.after('<dl id="pop-company"><dt>\u516c\u53f8\u540d\u79f0\uff1a</dt><dd></dd></dl><dl id="pop-address"><dt>\u6240&nbsp;\u5728&nbsp;\u5730\uff1a</dt><dd></dd></dl>'), $("#pop-company dd").html(t.companyName), $("#pop-address dd").html(t.firstAddr + "&nbsp;" + t.secAddr), pageConfig.wideVersion && pageConfig.compatible && $("#online-service dt").css("margin-bottom", 10))
1878         },
1879         setGlobalBuy: function(t) {
1880             var e = $("#brand-bar-pop");
1881             t.vid && 7 == ("" + t.vid).length && e.prepend('<div id="global-buy"><em><img src="http://misc.360buyimg.com/product/skin/2012/i/haiwai.gif" alt="\u6d77\u5916\u8d2d\u8ba4\u8bc1\u5546\u5bb6" /></em></div>')
1882         },
1883         getGrade: function() {
1884             var t = $(".evaluate-grade"),
1885                 e = $(".heart-red");
1886             return window.fetchJSON_Eva = function(i) {
1887                 e.removeClass("h4").addClass("h" + Math.round(parseFloat(i.result))), t.html(parseFloat(i.result) + "\u5206")
1888             }, $.getJSONP("http://club.jd.com/clubservice/merchantcomment/" + G.sku + ".html?callback=fetchJSON_Eva"), this
1889         },
1890         getGradeDetail: function(t) {
1891             $.getJSONP("http://rms.shop.jd.com/json/popscore/scorefact.action?callback=EvaluateGradeNew.setGradeDetail&venderID=" + t)
1892         },
1893         calcTrends: function(t) {
1894             var e = "",
1895                 i = "",
1896                 s = this.data;
1897             return 1 === t && (s.f20 === s.f35 && (e = "eva-eq"), s.f20 > s.f35 && (e = "eva-up", i = "\u8ba1\u7b97\u89c4\u5219\uff1a\uff08\u5546\u5bb6\u5f97\u5206-\u540c\u884c\u4e1a\u5e73\u5747\u5206\uff09/\uff08\u540c\u884c\u4e1a\u5546\u5bb6\u6700\u9ad8\u5f97\u5206-\u540c\u884c\u4e1a\u5e73\u5747\u5206\uff09"), s.f20 < s.f35 && (e = "eva-down", i = "\u8ba1\u7b97\u89c4\u5219\uff1a\uff08\u540c\u884c\u4e1a\u5e73\u5747\u5206-\u5546\u5bb6\u5f97\u5206\uff09/\uff08\u540c\u884c\u4e1a\u5e73\u5747\u5206-\u540c\u884c\u4e1a\u5546\u5bb6\u6700\u4f4e\u5f97\u5206\uff09")), 2 === t && (s.f21 === s.f36 && (e = "eva-eq"), s.f21 > s.f36 && (e = "eva-up", i = "\u8ba1\u7b97\u89c4\u5219\uff1a\uff08\u5546\u5bb6\u5f97\u5206-\u540c\u884c\u4e1a\u5e73\u5747\u5206\uff09/\uff08\u540c\u884c\u4e1a\u5546\u5bb6\u6700\u9ad8\u5f97\u5206-\u540c\u884c\u4e1a\u5e73\u5747\u5206\uff09"), s.f21 < s.f36 && (e = "eva-down", i = "\u8ba1\u7b97\u89c4\u5219\uff1a\uff08\u540c\u884c\u4e1a\u5e73\u5747\u5206-\u5546\u5bb6\u5f97\u5206\uff09/\uff08\u540c\u884c\u4e1a\u5e73\u5747\u5206-\u540c\u884c\u4e1a\u5546\u5bb6\u6700\u4f4e\u5f97\u5206\uff09")), 3 === t && (s.f22 === s.f37 && (e = "eva-eq"), s.f22 > s.f37 && (e = "eva-up", i = "\u8ba1\u7b97\u89c4\u5219\uff1a\uff08\u5546\u5bb6\u5f97\u5206-\u540c\u884c\u4e1a\u5e73\u5747\u5206\uff09/\uff08\u540c\u884c\u4e1a\u5546\u5bb6\u6700\u9ad8\u5f97\u5206-\u540c\u884c\u4e1a\u5e73\u5747\u5206\uff09"), s.f22 < s.f37 && (e = "eva-down", i = "\u8ba1\u7b97\u89c4\u5219\uff1a\uff08\u540c\u884c\u4e1a\u5e73\u5747\u5206-\u5546\u5bb6\u5f97\u5206\uff09/\uff08\u540c\u884c\u4e1a\u5e73\u5747\u5206-\u540c\u884c\u4e1a\u5546\u5bb6\u6700\u4f4e\u5f97\u5206\uff09")), {
1898                 trends: e,
1899                 title: i
1900             }
1901         },
1902         setGradeDetail: function(t) {
1903             this.data = t;
1904             var e = '<div id="evaluate-detail" class="m">    {if f23<1}        <div style="padding-bottom:10px">\u5356\u5bb6\u6682\u672a\u6536\u5230\u4efb\u4f55\u8bc4\u4ef7</div><style type="text/css">#brand-bar-pop #online-service{border-top:1px solid #ddd;}</style>    {else}        <div class="mt"><style type="text/css">#brand-bar-pop #evaluate{display:block;}</style>            <div class="fl">\u8bc4\u5206\u660e\u7ec6</div>            <div class="p-bfc">\u4e0e\u884c\u4e1a\u76f8\u6bd4</div>        </div>        <div class="mc">            <dl>                <dt>\u5546\u54c1\u8bc4\u5206\uff1a</dt>                <dd>                    <span class="eva-grade" title="${f20}">${f20.toFixed(10).substr(0,4)}<b>\u5206</b></span>                    <span class="eva-percent ${EvaluateGradeNew.calcTrends(1).trends}" title="${EvaluateGradeNew.calcTrends(1).title}"><s></s>{if EvaluateGradeNew.calcTrends(1)=="eva-eq"}-----{else}${(f46*100).toFixed(10).substr(0,4)}%{/if}</span>                </dd>            </dl>            <dl>                <dt>\u670d\u52a1\u8bc4\u5206\uff1a</dt>                <dd>                    <span class="eva-grade" title="${f21}">${f21.toFixed(10).substr(0,4)}<b>\u5206</b></span>                    <span class="eva-percent ${EvaluateGradeNew.calcTrends(2).trends}" title="${EvaluateGradeNew.calcTrends(2).title}"><s></s>{if EvaluateGradeNew.calcTrends(2)=="eva-eq"}-----{else}${(f47*100).toFixed(10).substr(0,4)}%{/if}</span>                </dd>            </dl>            <dl>                <dt>\u65f6\u6548\u8bc4\u5206\uff1a</dt>                <dd>                    <span class="eva-grade" title="${f22}">${f22.toFixed(10).substr(0,4)}<b>\u5206</b></span>                    <span class="eva-percent ${EvaluateGradeNew.calcTrends(3).trends}" title="${EvaluateGradeNew.calcTrends(3).title}"><s></s>{if EvaluateGradeNew.calcTrends(3)=="eva-eq"}-----{else}${(f48*100).toFixed(10).substr(0,4)}%{/if}</span>                </dd>            </dl><div class="line"></div>        </div>    {/if}</div>';
1905             if (null !== t) {
1906                 1 > $("#evaluate s").length && $("#evaluate").append("<s></s>"), this.bindEvent();
1907                 var i = this.popInfo ? "http://mall.jd.com/shopLevel-" + this.popInfo.id + ".html" : "#none";
1908                 $("#evaluate").after(e.process(t)).find("dt").html("\u7efc\u5408\u8bc4\u5206\uff1a"), $(".evaluate-grade strong").html('<a href="' + i + '" target="_blank">' + t.f23.toFixed(10).substr(0, 3) + "</a>").attr("title", t.f23), $(".heart-red").removeClass("h5").addClass("h" + parseInt(t.f23)), pageConfig.product.isFlashPurchase && ($("#evaluate,#evaluate-detail,#enter-shop a").hide(), $("#seller dd").html($("#seller dd").text()))
1909             }
1910         },
1911         setShopInfo: function(t) {
1912             t.vender && t.url && $("#seller dd a").html(t.vender).attr({
1913                 href: t.url,
1914                 title: t.vender
1915             }), $("#enter-shop a").attr("href", t.url).attr("clstag", "shangpin|keycount|product|pop-01"), t.linkphone && "" == $("#hotline dd").html() && ($("#hotline dd").html(t.linkphone), $("#hotline").show())
1916         }
1917     },
1918     JdService = {
1919         init: function(t, e, i) {
1920             this.sku = t, this.resObj = {}, this.currSku = null, this.obj = e || $("#choose-service .dd"), this.fn = i || function() {}, this.url = "", this.typeMap = {
1921                 t2: "ycbs",
1922                 t3: "ycbs",
1923                 t4: "ycbs",
1924                 t6: "ywbh",
1925                 t7: "ywbh",
1926                 t9: "yhdx"
1927             }, this.itemTPL = '<div class="item">    {if arguments[2][0]&&arguments[2][1]==0}        <ins class="yb-item-more">\u66f4\u591a</ins>    {/if}    <b></b>    <a class="yb-link" href="http://fuwu.jd.com" target="_blank"><i class="yb-ico"></i></a>    <a href="#none" class="yb-item {if arguments[2][0]&&arguments[2][1]==0} yb-item-first{/if}" id="yb-pid-${platformPid}" data-type="${sortId}" data-sku="${platformPid}" title="${G.showServiceDesc(sortId)}">${sortName} \uffe5${price}</a></div>', this.TPL = '<div class="service-type-yb">    {if r1.length>0}        <div class="yb-item-cat yb-item-cat-r1">            ${JdService.itemTPL.process(r1[0], [r1.length>1, 0])}            <div class="yb-item-hide">                {for item in r1}                    {if item_index!=0}${JdService.itemTPL.process(item, [r1.length>1])}{/if}                {/for}            </div>        </div>    {/if}    {if r2.length>0}        <div class="yb-item-cat yb-item-cat-r2">            ${JdService.itemTPL.process(r2[0], [r2.length>1, 0])}            <div class="yb-item-hide">                {for item in r2}                    {if item_index!=0}${JdService.itemTPL.process(item, [r2.length>1])}{/if}                {/for}            </div>        </div>    {/if}    {if r3.length>0}        <div class="yb-item-cat yb-item-cat-r3">            ${JdService.itemTPL.process(r3[0], [r3.length>1, 0])}            <div class="yb-item-hide">                {for item in r3}                    {if item_index!=0}${JdService.itemTPL.process(item, [r3.length>1])}{/if}                {/for}            </div>        </div>    {/if}    {if r4.length>0}        <div class="yb-item-cat yb-item-cat-r4">            ${JdService.itemTPL.process(r4[0], [r4.length>1, 0])}            <div class="yb-item-hide">                {for item in r4}                    {if item_index!=0}${JdService.itemTPL.process(item, [r4.length>1])}{/if}                {/for}            </div>        </div>    {/if}    {if r5.length>0}        <div class="yb-item-cat yb-item-cat-r5">            ${JdService.itemTPL.process(r5[0], [r5.length>1, 0])}            <div class="yb-item-hide">                {for item in r5}                    {if item_index!=0}${JdService.itemTPL.process(item, [r5.length>1])}{/if}                {/for}            </div>        </div>    {/if}    <div class="yb-item-cat yb-item-detail"><a class="hl_blue" target="_blank" href="http://sale.jd.com/act/1pChm0RcanBPYXIS.html?erpad_source=erpad">\u8be6\u60c5</a></div></div>', this.get()
1928         },
1929         bindEvent: function() {
1930             var t = this;
1931             this.obj.find(".service-type-yb .item a").bind("click", function() {
1932                 var e = $(this),
1933                     i = e.attr("data-sku"),
1934                     s = (e.attr("data-type"), e.parent(".item")),
1935                     a = e.parents(".yb-item-cat");
1936                 s.hasClass("selected") ? s.removeClass("selected") : (a.find(".item").removeClass("selected"), s.addClass("selected")), t.currSku = i, t.currEl = e, t.calResult()
1937             })
1938         },
1939         addCurrStyle: function(t) {
1940             var e = t.parents(".service-type").eq(0),
1941                 i = e.find(".item");
1942             i.removeClass("selected"), t.parent(".item").eq(0).addClass("selected")
1943         },
1944         removeCurrStyle: function(t) {
1945             t.parent(".item").eq(0).removeClass("selected")
1946         },
1947         get: function() {
1948             var t = this;
1949             $.ajax({
1950                 url: "http://d.360buy.com/yanbao2/get?skuId=" + this.sku,
1951                 dataType: "jsonp",
1952                 success: function(e) {
1953                     e && t.set(e)
1954                 }
1955             })
1956         },
1957         set: function(t) {
1958             var e, i, s = {
1959                     list: t
1960                 },
1961                 a = {
1962                     r1: [],
1963                     r2: [],
1964                     r3: [],
1965                     r4: [],
1966                     r5: []
1967                 },
1968                 n = t.length;
1969             for (e = 0; n > e; e++) i = RegExp("-" + t[e].sortId + "-"), i.test("-2-3-4-44-49-") ? a.r1.push(t[e]) : i.test("-6-7-41-47-52-53-54-57-58-59-") ? a.r2.push(t[e]) : i.test("-9-48-") ? a.r3.push(t[e]) : i.test("-11-50-") ? a.r4.push(t[e]) : i.test("-15-16-17-18-45-46-") ? a.r5.push(t[e]) : a.r1.push(t[e]);
1970             if (s.list.length > 0) {
1971                 this.obj.html(this.TPL.process(a)).parent().show(), pageConfig.product.hasYbInfo = !0;
1972                 var o = this.obj.find(".yb-item-cat");
1973                 o.hover(function() {
1974                     $(this).addClass("yb-item-hover")
1975                 }, function() {
1976                     $(this).removeClass("yb-item-hover")
1977                 }), o.each(function() {
1978                     var t = $(this).width();
1979                     $(this).find(".item").css("width", t)
1980                 })
1981             } else this.obj.parent().hide();
1982             this.bindEvent(), this.itemCount = s.list.length
1983         },
1984         addItem: function(t) {
1985             this.resObj["p" + t] = t
1986         },
1987         removeItem: function(t) {
1988             this.resObj["p" + t] = null
1989         },
1990         calResult: function() {
1991             var t = this.obj.find(".selected"),
1992                 e = [];
1993             return t.each(function() {
1994                 var t = $(this).find(".yb-item"),
1995                     i = t.attr("data-sku");
1996                 i && e.push(i)
1997             }), "function" == typeof this.fn ? this.fn.apply(this, [e, this.currSku, this.currEl]) : void 0
1998         }
1999     },
2000     NotifyPop = {
2001         _saleNotify: "http://skunotify." + pageConfig.FN_getDomain() + "/pricenotify.html?",
2002         _stockNotify: "http://skunotify." + pageConfig.FN_getDomain() + "/storenotify.html?",
2003         init: function(t, e, i) {
2004             var s, a = this,
2005                 n = G.serializeUrl(location.href),
2006                 o = /from=weibo/.test(location.href) ? location.search.replace(/\?/, "") : "";
2007             /from=weibo/.test(location.href) && (s = n.param.type, this.setThickBox(s, o)), $(t + "," + e + "," + i).livequery("click", function() {
2008                 var t, e = $(this).attr("id");
2009                 return t = "notify-btn" == e || "notify-stock" == e ? 2 : 1, G.checkLogin(function(e) {
2010                     e.IsAuthenticated ? (a._userPin = e.Name, a.setThickBox(t, o)) : (jdModelCallCenter.settings.fn = function() {
2011                         G.checkLogin(function(e) {
2012                             e.IsAuthenticated && (a._userPin = e.Name, a.setThickBox(t, o))
2013                         })
2014                     }, jdModelCallCenter.login())
2015                 }), !1
2016             }).attr("href", "#none").removeAttr("target")
2017         },
2018         setThickBox: function(t, e) {
2019             var i, s, a, n = {
2020                     skuId: pageConfig.product.skuid,
2021                     pin: this._userPin,
2022                     webSite: 1,
2023                     origin: 1,
2024                     source: 1
2025                 },
2026                 o = G.serializeUrl(location.href);
2027             /blogPin/.test(location.href) && (n.blogPin = o.param.blogPin), 1 == t && (i = "\u964d\u4ef7\u901a\u77e5", s = this._saleNotify, a = 250), 2 == t && (i = "\u5230\u8d27\u901a\u77e5", s = this._stockNotify, a = 210, n.storeAddressId = readCookie("ipLoc-djd")), s += e ? e : $.param(n), $.jdThickBox({
2028                 type: "iframe",
2029                 source: decodeURIComponent(s) + "&nocache=" + +new Date,
2030                 width: 500,
2031                 height: a,
2032                 title: i,
2033                 _box: "notify_box",
2034                 _con: "notify_con",
2035                 _title: "notify_title"
2036             })
2037         }
2038     };
2039 (function() {
2040     var t = $("#choose-color .selected a,#choose-version .selected a"),
2041         e = $("#choose-result .dd"),
2042         i = [];
2043     1 > t.length || $("#product-intro").hasClass("product-intro-noitem") ? $("#choose-result").hide() : (t.each(function() {
2044         1 == !!$(this).attr("title") && i.push("<strong>\u201c" + $(this).attr("title") + "\u201d</strong>")
2045     }), i.length > 0 && (e.prepend("<em>\u5df2\u9009\u62e9</em>" + i.join("\uff0c")), $("#choose-result").show()))
2046 })(),
2047 function() {
2048     var t = "-4835-4836-4833-7073-9393-12276-12278-12279-",
2049         e = G.cat[2];
2050     RegExp("-" + e + "-").test(t) && $("#choose-amount").hide(), (4835 == e || 4836 == e) && (setAmount.urlPerfix = "http://card.jd.com/order/order_place.action?", setAmount.data = null, setAmount.data = {
2051         skuId: G.sku
2052     }), 4833 == e && (setAmount.urlPerfix = "http://chongzhi.jd.com/order/order_place.action?", setAmount.data = null, setAmount.data = {
2053         skuId: G.sku
2054     })
2055 }(), G.onAttr("HYKHSP", function() {
2056         var t = "http://eve.jd.com/redirect.action?wid=" + G.sku + "&btype=0&r=" + Math.random(),
2057             e = $("#InitCartUrl");
2058         e.attr({
2059             href: t,
2060             "data-origin": encodeURIComponent(t)
2061         })
2062     }), G.onAttr("isSelfService_17", function() {
2063         var t = $("#buy-num");
2064         t.attr("disabled", "true"), setAmount = {}
2065     }),
2066     function() {
2067         var t = function() {
2068             var t = "";
2069             try {
2070                 t = window.top.document.referrer
2071             } catch (e) {
2072                 if (window.parent) try {
2073                     t = window.parent.document.referrer
2074                 } catch (i) {
2075                     t = ""
2076                 }
2077             }
2078             return "" === t && (t = document.referrer), t
2079         };
2080         JDS = window.JDS || {}, JDS.strpos = function(t, e, i) {
2081             var s = (t + "").indexOf(e, i || 0);
2082             return -1 === s ? !1 : s
2083         }, JDS.uri = function(t) {
2084             this.components = {}, this.options = {
2085                 strictMode: !1,
2086                 key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
2087                 q: {
2088                     name: "queryKey",
2089                     parser: /(?:^|&)([^&=]*)=?([^&]*)/g
2090                 },
2091                 parser: {
2092                     strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
2093                     loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
2094                 }
2095             }, t && (this.components = this.parseUri(t))
2096         }, JDS.uri.prototype = {
2097             parseUri: function(t) {
2098                 for (var e = this.options, i = e.parser[e.strictMode ? "strict" : "loose"].exec(t), s = {}, a = 14; a--;) s[e.key[a]] = i[a] || "";
2099                 return s[e.q.name] = {}, s[e.key[12]].replace(e.q.parser, function(t, i, a) {
2100                     i && (s[e.q.name][i] = a)
2101                 }), s
2102             },
2103             getHost: function() {
2104                 return this.components.hasOwnProperty("host") ? this.components.host : void 0
2105             },
2106             getQueryParam: function(t) {
2107                 return this.components.hasOwnProperty("queryKey") && this.components.queryKey.hasOwnProperty(t) ? this.components.queryKey[t] : void 0
2108             },
2109             isQueryParam: function(t) {
2110                 return this.components.hasOwnProperty("queryKey") && this.components.queryKey.hasOwnProperty(t) ? !0 : !1
2111             }
2112         };
2113         var e = [{
2114                 d: "baidu",
2115                 q: "wd"
2116             }, {
2117                 d: "google",
2118                 q: "q"
2119             }, {
2120                 d: "images.google",
2121                 q: "q"
2122             }, {
2123                 d: "images.search.yahoo.com",
2124                 q: "p"
2125             }, {
2126                 d: "sogou",
2127                 q: "query"
2128             }, {
2129                 d: "soso",
2130                 q: "w"
2131             }, {
2132                 d: "bing",
2133                 q: "q"
2134             }, {
2135                 d: "youdao",
2136                 q: "q"
2137             }, {
2138                 d: "114so",
2139                 q: "kw"
2140             }, {
2141                 d: "zhongsou",
2142                 q: "w"
2143             }, {
2144                 d: "yisou",
2145                 q: "q"
2146             }, {
2147                 d: "lycos",
2148                 q: "query"
2149             }, {
2150                 d: "lycos",
2151                 q: "word"
2152             }, {
2153                 d: "yahoo",
2154                 q: "q"
2155             }, {
2156                 d: "yahoo",
2157                 q: "p"
2158             }, {
2159                 d: "search",
2160                 q: "q"
2161             }, {
2162                 d: "live",
2163                 q: "q"
2164             }, {
2165                 d: "aol",
2166                 q: "query"
2167             }, {
2168                 d: "aol",
2169                 q: "encquery"
2170             }, {
2171                 d: "aol",
2172                 q: "q"
2173             }, {
2174                 d: "ask",
2175                 q: "q"
2176             }, {
2177                 d: "cnn",
2178                 q: "query"
2179             }, {
2180                 d: "teoma",
2181                 q: "q"
2182             }, {
2183                 d: "yandex",
2184                 q: "text"
2185             }],
2186             i = function(t) {
2187                 for (var i = 0, s = e.length; s > i; i++) {
2188                     var a = e[i].d,
2189                         n = e[i].q,
2190                         o = t.getHost(),
2191                         r = t.getQueryParam(n);
2192                     if (!JDS.strpos(o, "360buy") && JDS.strpos(o, a) && t.isQueryParam(n)) return {
2193                         d: a,
2194                         q: n,
2195                         k: r
2196                     }
2197                 }
2198             };
2199         window.jdSref = t(), window.jdSuri = new JDS.uri(window.jdSref), window.searchEngineSource = i(window.jdSuri)
2200     }(), CombineShare.prototype = {
2201         init: function() {
2202             var t = this;
2203             this.$el.bind("click", function() {
2204                 $.login({
2205                     modal: !0,
2206                     complete: function(e) {
2207                         e && e.IsAuthenticated && e.IsAuthenticated && t.getThickBox(1)
2208                     }
2209                 })
2210             })
2211         },
2212         getThickBox: function(t, e) {
2213             function i() {
2214                 var t = a.imgs,
2215                     e = "";
2216                 if (1 > t.length) return !1;
2217                 for (var i = 0; t.length > i; i++) e += '<li class="' + (0 === i ? "selected" : "") + '"><a href="#none"><img src="' + t[i].replace(/\/n\d/, "/n4") + '" alt="" /><s></s></a></li>';
2218                 return e
2219             }
2220 
2221             function s() {
2222                 var t = a.shareMap,
2223                     e = "";
2224                 for (var i in t) e += '<label title="' + t[i].text + '" for="share-' + t[i].name + '"><input value="' + i.replace("T", "") + '" id="share-' + t[i].name + '" type="checkbox"><em id="share-ico-' + t[i].name + '">' + t[i].text + "</em></label>";
2225                 return e
2226             }
2227             var a = this,
2228                 n = {};
2229             n.T1 = '<div id="cb-share1" class="combine-share">    <div class="mt">        <dl>            <dt class="fl">\u5206\u4eab\u5230\uff1a</dt>            <dd class="lh">{SHARELIST}</dd>        </dl>    </div>    <div class="mc">        <textarea id="share-text" name="" cols="30" rows="10" placeholder="\u8bf4\u70b9\u4ec0\u4e48\u5427...">{TEXT}</textarea>        <div class="share-meta clearfix">            <div class="share-link fl"><a class="s-btn s-btn-gray" href="{LINK}" target="_blank"><b class="s-btn"></b>\u5206\u4eab\u94fe\u63a5</a></div>            <div class="share-count lh ar">\u8fd8\u53ef\u4ee5\u8f93\u5165<em>100</em>\u5b57</div>        </div>        {IMGWRAP}    </div>    <div class="mb">        <div class="share-btn">            <a href="#none" class="s-btn s-btn-ok share-btn-ok">\u5206\u4eab</a>        </div>    </div></div>', n.T2 = '<div id="cb-share2" class="combine-share share-msg">    <dl>        <dd class="ld"><h5 class="ac"><strong><s class="share-ico"></s>\u6210\u529f\u5206\u4eab\u5230 {EXT}</strong></h5></dd>    </dl>    <div class="share-btn"><a href="#none" class="s-btn s-btn-gray" onclick="jdThickBoxclose();">\u786e\u5b9a</a></div></div>', n.T3 = '<div id="cb-share3" class="combine-share share-msg share-warning">    <dl>        <dt class="fl share-ico"></dt>        <dd class="ld"><h5>\u5206\u4eab\u5931\u8d25\uff0c\u8bf7\u91cd\u65b0\u64cd\u4f5c\u3002</h5></dd>    </dl>    <div class="share-btn"><a href="#none" class="s-btn s-btn-gray share-btn-fail">\u786e\u5b9a</a></div></div>', n.T4 = '<div id="cb-share4" class="combine-share share-msg share-warning">    <dl>        <dt class="fl share-ico"></dt>        <dd class="ld"><h5>\u5b57\u6570\u8d85\u51fa\u9650\u5236\u8bf7\u91cd\u65b0\u8f93\u5165</h5></dd>    </dl>    <div class="share-btn"><a href="#none" class="s-btn s-btn-gray share-btn-fail">\u786e\u5b9a</a></div></div>', n.T5 = '<div id="cb-share5" class="combine-share share-warning">    <dl>        <dt class="fl share-ico"></dt>        <dd class="ld"><h5>\u8bf7\u5148\u7ed1\u5b9a\u5206\u4eab\u5e73\u53f0\u8d26\u53f7\u518d\u8fdb\u884c\u5206\u4eab</h5></dd>    </dl>    <div class="share-btn"><a href="#none" class="s-btn s-btn-gray share-btn-rebind">\u786e\u5b9a</a></div></div>', n.IMG = '<p>\u9009\u62e9\u914d\u56fe\uff1a</p><div class="share-imgScroll">    <a id="share-img-prev" class="share-controls s-btn s-btn-gray" href="#none"><s></s></a>    <a id="share-img-next" class="share-controls s-btn s-btn-gray" href="#none"><s></s></a>    <div class="share-img-wrap">        <ul class="lh">{IMGS}</ul>    </div></div>', this.onbeforeOpen && this.onbeforeOpen(this);
2230             var o = i(),
2231                 r = s(),
2232                 c = "";
2233             c = o ? n["T" + t].replace("{IMGWRAP}", n.IMG).replace("{IMGS}", i()) : n["T" + t].replace("{IMGWRAP}", ""), c = c.replace("{LINK}", this.shareParam.url), c = c.replace("{SHARELIST}", r), this.textNumOverflow && (this.shareParam.content = this.cacheText), this.jp && (this.shareParam.content = this.shareParam.content.replace("{PRICE}", this.jp)), c = c.replace("{TEXT}", this.shareParam.content), e !== void 0 && (c = c.replace("{EXT}", e)), jdThickBoxclose && jdThickBoxclose(), 1 === t && $.jdThickBox({
2234                 title: "\u5206\u4eab\u7ed9\u597d\u53cb",
2235                 width: 520,
2236                 height: o ? 340 : 200,
2237                 source: c
2238             }, function() {
2239                 a.getBindStatus()
2240             }), 2 === t && $.jdThickBox({
2241                 title: "\u5206\u4eab\u7ed9\u597d\u53cb",
2242                 width: 520,
2243                 height: 100,
2244                 source: c
2245             }), 3 === t && $.jdThickBox({
2246                 title: "\u5206\u4eab\u7ed9\u597d\u53cb",
2247                 width: 400,
2248                 height: 100,
2249                 source: c
2250             }), 4 === t && $.jdThickBox({
2251                 title: "\u63d0\u793a",
2252                 width: 400,
2253                 height: 100,
2254                 source: c
2255             }), 5 === t && $.jdThickBox({
2256                 title: "\u8d26\u53f7\u7ed1\u5b9a",
2257                 width: 400,
2258                 height: 100,
2259                 source: c
2260             }), this.wrap = $("#cb-share" + t), 1 === t && this.updateCount(), this.bindEvent()
2261         },
2262         bindEvent: function() {
2263             var t = this,
2264                 e = this.wrap,
2265                 i = e.find(".share-btn-ok"),
2266                 s = e.find(".share-btn-fail,.share-btn-rebind"),
2267                 a = e.find(".share-img-wrap"),
2268                 n = $("#share-img-prev"),
2269                 o = $("#share-img-next"),
2270                 r = a.find("li");
2271             r.bind("click", function() {
2272                 r.removeClass("selected"), $(this).addClass("selected")
2273             }), e.find(".mt input").unbind("click").bind("click", function() {
2274                 var e = $(this).val();
2275                 $(this).next().hasClass("actived") || ($(this).next().addClass("actived"), window.open(t.shareMap["T" + e].url))
2276             }), e.find(".mc textarea").bind("keyup change", function() {
2277                 t.updateCount($(this)), t.cacheText = $(this).val()
2278             }), i.bind("click", function() {
2279                 t.wrap.find("textarea");
2280                 var e = t.wrap.find(".share-count").hasClass("overflow");
2281                 e ? (t.getThickBox(4), t.textNumOverflow = !0) : (t.goShare(), t.textNumOverflow = !1)
2282             }), s.unbind("click").bind("click", function() {
2283                 t.getThickBox(1)
2284             }), a.imgScroll({
2285                 visible: 4,
2286                 step: 4,
2287                 prev: n,
2288                 next: o,
2289                 showControl: !0
2290             })
2291         },
2292         updateCount: function(t) {
2293             t = t || this.wrap.find("textarea");
2294             var e = t.val(),
2295                 i = e.replace(/[\u4e00-\u9fa5]/g, "jd").length,
2296                 s = this.wrap.find(".share-count"),
2297                 a = s.find("em"),
2298                 n = 100;
2299             0 > n - Math.ceil(i / 2) ? a.html("0") : a.html(n - Math.ceil(i / 2) + ""), Math.ceil(i / 2) > n ? s.addClass("overflow") : s.removeClass("overflow")
2300         },
2301         getBindStatus: function() {
2302             var t = this;
2303             $.ajax({
2304                 url: "http://share.jd.com/share/getBindStatus.action",
2305                 dataType: "jsonp",
2306                 success: function(e) {
2307                     e && e.length && t.setBindStatus(e)
2308                 }
2309             })
2310         },
2311         setBindStatus: function(t) {
2312             for (var e, i, s, a = 0; t.length > a; a++) e = t[a].name, i = t[a].status, s = t[a].type, 1 === i && (this.wrap.find("#share-ico-" + e).addClass("actived"), this.wrap.find("#share-" + e).attr("checked", !0))
2313         },
2314         goShare: function() {
2315             var t = this,
2316                 e = this.wrap.find("dd input:checked"),
2317                 i = this.wrap.find(".share-img-wrap .selected img").attr("src"),
2318                 s = this.wrap.find("#share-text").val(),
2319                 a = [],
2320                 n = this.shareParam;
2321             n.content = s, n.imgUrl = i, e.each(function() {
2322                 var t = $(this).val();
2323                 t && a.push(t)
2324             }), a.length && (n.type = a.join(","), $.ajax({
2325                 url: "http://share.jd.com/share/shareItem.action",
2326                 dataType: "jsonp",
2327                 data: n,
2328                 success: function(e) {
2329                     var i = [],
2330                         s = [];
2331                     if (e && e.code !== void 0 && (-1 === e.code && t.getThickBox(3), 0 === e.code)) {
2332                         i = e.status.split(",");
2333                         for (var a = 0; i.length > a; a++) s.push(t.shareMap["T" + i[a]].text);
2334                         t.getThickBox(2, s.join(","))
2335                     }
2336                 }
2337             }))
2338         }
2339     }, G.onAttr("isOnlyIOUsPay", function() {
2340         function t() {
2341             /debug/.test(location.href) && prompt("\u9875\u9762\u5c06\u8df3\u8f6c\u5230\uff1a", i.replace(/nums=\d+/, "nums=" + $("#buy-num").val()) + "&r=" + Math.random()), location.href = i.replace(/nums=\d+/, "nums=" + $("#buy-num").val()) + "&r=" + Math.random()
2342         }
2343         var e, i = "http://cart.jd.com/cart/dynamic/gateForSubFlow.action?wids=" + G.sku + "&nums=1&subType=25",
2344             s = $("#choose-btns"),
2345             a = s.find("#choose-btn-easybuy,#choose-btn-divide"),
2346             n = s.find("#choose-btn-append"),
2347             o = $("#nav-minicart"),
2348             r = '        <div id="choose-btn-baitiao" class="btn">            <a href="#none" class="btn-baitiao" clstag="shangpin|keycount|product|btn-dbt">\u6253\u767d\u6761<b></b></a>        </div>        <div id="choose-btn-baitiao-n" class="btn">            <a href="#none" class="btn-baitiao-n" onclick="showNaBaitiao(\'#Fqfk_Tip\')" clstag="shangpin|keycount|product|btn-dbt">\u62ff\u767d\u6761<b></b></a>        </div>';
2349         s.prepend(r), e = s.find("#choose-btn-baitiao"), a.remove(), n.hide(), o.addClass("nav-minicart-baitiao"), pageConfig.serviceYB = "disabled", pageConfig.btnBaiTiaoFq = "disabled", o.find("a").attr("href", "#none").addClass("btn-baitiao"), jdModelCallCenter.settings.fn = t, $(".btn-baitiao").click(function() {
2350             $(this).attr("href", "#none"), pageConfig.product.havestock && $.login({
2351                 modal: !0,
2352                 complete: function(e) {
2353                     e && e.IsAuthenticated && e.IsAuthenticated && t()
2354                 }
2355             })
2356         })
2357     }), G.onAttr("is7ToReturn-0", function() {
2358         var t = $("#summary-tips .dd"),
2359             e = $("#is7ToReturn-0");
2360         e.length || (t.append('<div id="is7ToReturn-0" class="hl_red">\u8be5\u5546\u54c1\u4e0d\u652f\u63017\u5929\u65e0\u7406\u7531\u9000\u8d27</div>'), t.parent().show())
2361     }), G.onAttr("isOverseaPurchase-2", function() {
2362         var t = $("#brand-bar-pop");
2363         t.prepend('<div id="oversea-purchase" class="m"><em><img src="http://misc.360buyimg.com/product/skin/2012/i/oversea-purchase.png" alt="\u6d77\u5916\u76f4\u8d2d-\u8ba4\u8bc1\u5546\u5bb6" /></em></div>')
2364     }),
2365     function() {
2366         function t() {
2367             var t = $("#choose-btn-easybuy,#choose-btn-baitiao-fq,#nav-minicart");
2368             pageConfig.product.specialAttrs.join("^"), $("#choose-btn-append").addClass("disabled"), t.remove(), pageConfig.product.isWeChatStock = !0
2369         }
2370         pageConfig.product.isClosePCShow && t()
2371     }(),
2372     function() {
2373         var t = $("#choose-btn-easybuy"),
2374             e = '        <div id="choose-btn-baitiao-fq" clstag="shangpin|keycount|product|baitiao" class="btn">            <a href="#none" class="btn-baitiao-fq" style="width:100px" onclick="showBaitiaoFq(\'#Fqfk_Tip\')" clstag="shangpin|keycount|product|btn-dbt">\u767d\u6761/\u5206\u671f<b style="background:url(http://img10.360buyimg.com/da/jfs/t187/274/284523263/8856/bceb4ca8/5385bac9Nbc69d7f7.png) no-repeat"></b></a>        </div>';
2375         G.isJd && "enabled" == pageConfig.btnBaiTiaoFq && t.after(e)
2376     }(), $(function() {
2377         var addToCartBtnWrap = $("#choose-btn-append"),
2378             addToCartBtn = $("#InitCartUrl"),
2379             recoTab = $("#recommend .tab"),
2380             disabled = "",
2381             orginGiftLink = "";
2382         pageConfig.product.havestock === void 0 ? (disabled = "", orginGiftLink = "http://cart.gift.jd.com/cart/addGiftToCart.action?pid=" + pageConfig.product.skuid + "&pcount=" + $("#buy-num").val() + "&ptype=1") : (disabled = pageConfig.product.havestock ? "" : "disabled", pageConfig.product.havestock ? (disabled = "", orginGiftLink = "http://cart.gift.jd.com/cart/addGiftToCart.action?pid=" + pageConfig.product.skuid + "&pcount=" + $("#buy-num").val() + "&ptype=1") : (disabled = "disabled", orginGiftLink = "#none")), 6980 == G.cat[2] && $('#product-detail [data-widget="tab-item"]').eq(3).hide(), $("#online-service").find("b").html("\u8054\u7cfb\u5ba2\u670d"), $("#comments-list li").eq(4).html('<a href="javascript:;">\u6709\u6652\u5355\u7684\u8bc4\u4ef7<em>(0)</em></a>'), $("body").addClass("cat-1-" + G.cat[0] + " cat-2-" + G.cat[1] + " cat-3-" + G.cat[2] + " item-" + G.sku),
2383             function() {
2384                 var t = $("#product-detail .mt").eq(0).find("li");
2385                 t.eq(0).attr("id", "p-con-detail"), t.eq(1).attr("id", "p-con-attr"), t.eq(2).attr("id", "p-con-list"), t.eq(3).attr("id", "p-con-comm"), t.eq(4).attr("id", "p-con-guar"), t.eq(5).attr("id", "p-con-wiki")
2386             }(), recoTab.find("li").eq(0).attr("id", "th-fitting"), recoTab.find("li").eq(1).attr("id", "th-hot"), recoTab.find("li").eq(2).attr("id", "th-service").hide(), $("#th-fitting a").eq(0).text("\u63a8\u8350\u914d\u4ef6"), $("#summary-grade .dd a").attr("clstag", "shangpin|keycount|product|pingjiabtn"), $("#store-selector").attr("clstag", "shangpin|keycount|product|quyuxuanze"), $("#choose-btn-coll a").attr("clstag", "shangpin|keycount|product|btn-guanzhu"), $("#choose-btn-easybuy").attr("clstag", "shangpin|keycount|product|btn-easybuy"), 1 > $("#th-suits").length && ($("#th-fitting").after('<li data-widget="tab-item" class="none" id="th-suits"><a href="javascript:;">\u4f18\u60e0\u5957\u88c5</a></li>'), $("#tab-reco").after('<div id="tab-suits" class="mc none" data-widget="tab-content"> <div class="iloading">\u6b63\u5728\u52a0\u8f7d\u4e2d\uff0c\u8bf7\u7a0d\u5019...</div> </div>')), 1 > $("#th-dpg").length && ($("#th-service").before('<li data-widget="tab-item" class="none" id="th-dpg"><a href="javascript:;">\u76f8\u5173\u4e3b\u9898\u642d\u914d</a></li>'), $("#tab-services").before('<div id="tab-dpg" class="mc none" data-widget="tab-content"> <div class="iloading">\u6b63\u5728\u52a0\u8f7d\u4e2d\uff0c\u8bf7\u7a0d\u5019...</div> </div>')), $("#j-im").addClass("djd-im").attr("href", "#none"), $("#btnReferSearch").attr("clstag", "shangpin|keycount|product|consult9"), $("#consult .tab li").each(function(t) {
2387                 $(this).attr("clstag", "shangpin|keycount|product|consult0" + (t + 1))
2388             }), G.isJd && $("body").addClass("JD"), G.isPop && $("body").addClass("POP"), "" != $.trim($("#product-detail-6").html()) && ($("#p-con-wiki").show(), $("#practical-guide").Jtab({
2389                 event: "click",
2390                 hookKey: "data-subtab",
2391                 hookItemVal: "subtab-item",
2392                 hookContentVal: "subtab-content",
2393                 compatible: !0
2394             })), /gift=true/.test(location.href) && ($("#choose-btns").prepend('<div id="choose-btn-gift" class="btn ' + disabled + '"><a href="' + orginGiftLink + '" class="btn-gift"><b></b>\u9009\u4f5c\u793c\u7269\u8d2d\u4e70</a></div>'), setAmount.targetLink = $("#choose-btn-append .btn-append,#choose-btn-gift .btn-gift")), (938747 == G.sku || 938749 == G.sku) && (addToCartBtnWrap.addClass("disabled"), addToCartBtn.attr("href", "#none")), $("#view-bigimg").after('<div id="compare" clstag="shangpin|keycount|product|jiaruduibi"><a class="btn-compare btn-compare-s" href="#none" id="comp_{sku}" skuid="{sku}"><span>\u5bf9\u6bd4</span></a></div>'.replace(/{sku}/g, G.sku)), $("#view-bigimg").attr("clstag", "shangpin|keycount|product|chakandatu"), pageConfig.FN_InitContrast(), G.getCommentNum(G.orginSku, function(t) {
2395                 var e = $("#summary-grade .star"),
2396                     i = $("#summary-grade .dd>a").eq(0),
2397                     s = $("#p-con-comm");
2398                 if (t && t.CommentCount !== void 0) {
2399                     if (e.removeClass("sa0").addClass("sa" + t.AverageScore), 6980 === G.cat[2]) return !1;
2400                     i.html("(\u5df2\u6709" + t.CommentCount + "\u4eba\u8bc4\u4ef7)").css("float", "left"), t.CommentCount > 0 && s.find("a").append('<span class="hl_blue"> (' + t.CommentCount + ") </span>")
2401                 } else e.removeClass("sa0").addClass("sa5"), i.html("(\u5df2\u67090\u4eba\u8bc4\u4ef7)").css("float", "left")
2402             }),
2403             function() {
2404                 if ("disabled" == pageConfig.serviceYB) return !1;
2405                 $("#choose-result").length > 0 ? $("#choose-result").before('<li id="choose-service" class="hide"><div class="dt">\u4eac\u4e1c\u670d\u52a1\uff1a</div><div class="dd"></div></li>') : $("#choose-btns").length > 0 && $("#choose-btns").before('<li id="choose-service" class="hide"><div class="dt">\u4eac\u4e1c\u670d\u52a1\uff1a</div><div class="dd"></div></li>');
2406                 var t = $("#choose-btn-append a"),
2407                     e = t.attr("href"),
2408                     i = $("#choose-result .dd"),
2409                     s = $("#choose-result .dd").html(),
2410                     a = !1;
2411                 JdService.init(G.sku, $("#choose-service .dd"), function(n) {
2412                     var o = "&ybId=" + n.join(","),
2413                         r = $("#buy-num").val(),
2414                         c = [],
2415                         d = $("#choose-btn-qiang a");
2416                     if (n.length > 0) {
2417                         t.attr("href", e.replace(/pcount=\d+/, "pcount=" + r) + o), i.parent().show();
2418                         for (var l = 0; n.length > l; l++) c.push("<strong>\u201c" + $("#yb-pid-" + n[l]).text() + "\u201d</strong>");
2419                         i.html((s ? s + "\uff0c" : "") + c.join("\uff0c"))
2420                     } else t.attr("href", e.replace(/pcount=\d+/, "pcount=" + r)), i.html(s);
2421                     d.length && !a && (a = d.attr("href")), d.length && (n.length > 0 ? d.attr("href", a + o) : d.attr("href", a))
2422                 })
2423             }(), $(".jqzoom").jqueryzoom({
2424                 xzoom: 400,
2425                 yzoom: 400,
2426                 offset: 10,
2427                 position: "left",
2428                 preload: 1,
2429                 lens: 1
2430             }), $("#summary-grade .dd").click(function() {
2431                 var t = $("#comment");
2432                 "true" !== $("#comment").attr("nodata") ? t.show() : $(document).scrollTop($("#comments-list").offset().top + $("#comments-list .mt").height())
2433             }),
2434             function() {
2435                 var t = $("#spec-list li");
2436                 t.mouseover(function() {
2437                     var e = $(this).find("img"),
2438                         i = e.attr("src");
2439                     t.index($(this)), $("#spec-list img").removeClass("img-hover"), e.addClass("img-hover"), $("#spec-n1 img").eq(0).attr({
2440                         src: i.replace("/n5/", "/n1/"),
2441                         jqimg: i.replace("/n5/", "/n0/")
2442                     })
2443                 })
2444             }(), G.isPop && $.getJSONP("http://st.3.cn/gvi.html?callback=setPopInfo&type=popdeliver&skuid=" + G.sku), CommentListNew.init(G.sku), Recommend.init(pageConfig.product.type), NotifyPop.init("#summary-price .dd a", "#notify-stock", ".btn-notice"), $(".spec-items").imgScroll({
2445                 visible: 5,
2446                 speed: 200,
2447                 step: 1,
2448                 loop: !1,
2449                 prev: "#spec-forward",
2450                 next: "#spec-backward",
2451                 disableClass: "disabled"
2452             }), $("#recommend").Jtab({
2453                 event: "click",
2454                 compatible: !0
2455             }), $("#product-detail").Jtab({
2456                 event: "click",
2457                 compatible: !0
2458             }, function(t, e, i) {
2459                 if ($("#product-detail .mt").removeClass("nav-fixed"), $("#product-detail .mt").removeClass("nav-fixed").floatNav({
2460                     fixedClass: "nav-fixed",
2461                     targetEle: "#consult",
2462                     anchor: "#product-detail",
2463                     range: 30,
2464                     onStart: function() {
2465                         $("#nav-minicart").show()
2466                     },
2467                     onEnd: function() {
2468                         restoreDetailListTab()
2469                     }
2470                 }), 3 == i) {
2471                     if (e.css("height", 5).html("<div>a</div>"), $("#promises,#state").hide(), Consult.getData(0, $("#consult-0")), !CommentListNew.loadFirstPage) {
2472                         var s = pageConfig.product.isFlashPurchase ? 2 : isAreaProduct ? 1 : 3;
2473                         CommentListNew.getData($("#comment-0"), 0, 0, s)
2474                     }
2475                     $("#product-detail .mt").floatNav({
2476                         fixedClass: "nav-fixed",
2477                         targetEle: "#consult",
2478                         anchor: "#product-detail",
2479                         range: 0,
2480                         onStart: function() {
2481                             $("#nav-minicart").show()
2482                         },
2483                         onEnd: function() {
2484                             restoreDetailListTab()
2485                         }
2486                     })
2487                 } else $("#promises,#state").show();
2488                 0 === i ? setDetailListTab() : destroyDetailListTab()
2489             }), $("#comments-list").Jtab({
2490                 event: "click",
2491                 compatible: !0
2492             }, function(t, e, i) {
2493                 var s = 0;
2494                 s = 1 === i ? 3 : 3 === i ? 1 : i;
2495                 var a = pageConfig.product.isFlashPurchase ? 2 : isAreaProduct ? 1 : 0;
2496                 CommentListNew.getData(e, s, 0, a)
2497             }), $("#discuss").Jtab({
2498                 event: "click",
2499                 compatible: !0
2500             }, function(t, e, i) {
2501                 Discuss.getData(i, e)
2502             }), $("#consult").Jtab({
2503                 event: "click",
2504                 compatible: !0
2505             }, function(t, e, i) {
2506                 4 >= i ? Consult.getData(i, e) : Consult.setExtraData(i, e)
2507             }), $("#ranklist .mc").Jtab({
2508                 compatible: !0
2509             }, function(t, e) {
2510                 var i = e.find("img");
2511                 i.each(function() {
2512                     var t = $(this).attr("data-src");
2513                     t && $(this).attr("src", t).removeAttr("data-src")
2514                 })
2515             });
2516         var destroyDetailListTab = function() {},
2517             setDetailListTab = function() {},
2518             restoreDetailListTab = function() {},
2519             openDetailListTab = function() {},
2520             closeDetailListTab = function() {};
2521         if ($('#product-detail [data-widget="tab-item"]').find("a").addClass("toggle-link"), function() {
2522             function t(t) {
2523                 var e = $(window).height(),
2524                     i = $("body").scrollTop() || $("html").scrollTop(),
2525                     s = t.offset().top;
2526                 return e + i > s && s > i
2527             }
2528             var e, i, s = $(".detail-content"),
2529                 a = s.find('[name^="detail-tag-id-"]'),
2530                 n = [],
2531                 o = $('#product-detail [data-widget="tab-item"]'),
2532                 r = o.eq(0);
2533             return 1 > a.length ? !1 : (o.find("a").addClass("toggle-link"), setDetailListTab = function() {
2534                 return 1 > a.length ? !1 : (r.addClass("p-tab"), 1 > r.find("a>s").length && r.find("a").append("<s></s>"), r.mouseover(function() {
2535                     $(this).addClass("hover")
2536                 }), 1 > r.find(".sub-item").length && (a.each(function() {
2537                     var t = $(this).attr("id"),
2538                         e = $(this).attr("text");
2539                     n.push('<li data-id="' + t + '"><a data-id="#' + t + '" href="#' + t + '">' + e + "</a></li>")
2540                 }), r.append('<ul class="hide sub-item">' + n.join("") + "</ul>"), e = r.children(), i = r.find("li"), r.find(".sub-item a").unbind("click").bind("click", function(t) {
2541                     $(this).text();
2542                     var e = $(this).attr("data-id");
2543                     $("body,html").scrollTop($(e).offset().top - 35), i.remove("hl_red"), $(this).parent().addClass("hl_red"), t.preventDefault(), t.stopPropagation()
2544                 })), void 0)
2545             }, destroyDetailListTab = function() {
2546                 r.unbind("mouseover mouseenter mouseout").removeClass("hover"), r.children("a").html("\u5546\u54c1\u4ecb\u7ecd<s></s>"), pageConfig.detailListInited = !1
2547             }, restoreDetailListTab = function() {
2548                 r.find(".toggle-link").eq(0).html("\u5546\u54c1\u4ecb\u7ecd<s></s>")
2549             }, openDetailListTab = function() {
2550                 r.addClass("hover")
2551             }, closeDetailListTab = function() {
2552                 r.removeClass("hover")
2553             }, setDetailListTab(), $("body").scroller({
2554                 onScroll: function(e) {
2555                     e.$o;
2556                     var s = [];
2557                     if (a.each(function() {
2558                         var e = $(this);
2559                         t(e) && s.push(e)
2560                     }), s.length > 0) {
2561                         var n = s[0].attr("id").replace("detail-tag-id-", "");
2562                         i.removeClass("hl_red"), i.filter('[data-id="detail-tag-id-' + n + '"]').addClass("hl_red")
2563                     } else i.removeClass("hl_red")
2564                 }
2565             }), $("#product-detail").scroller({
2566                 startThrehold: 110,
2567                 onStart: function() {
2568                     openDetailListTab()
2569                 },
2570                 onEnd: function() {
2571                     closeDetailListTab()
2572                 }
2573             }), void 0)
2574         }(), mlazyload({
2575             defObj: "#consult",
2576             defHeight: 0,
2577             fn: function() {
2578                 Consult.getData(0, $("#consult-0"))
2579             }
2580         }), mlazyload({
2581             defObj: "#comments-list",
2582             defHeight: 0,
2583             fn: function() {
2584                 if (!CommentListNew.loadFirstPage) {
2585                     var t = pageConfig.product.isFlashPurchase ? 2 : isAreaProduct ? 1 : 0;
2586                     CommentListNew.getData($("#comment-0"), 0, 0, t)
2587                 }
2588             }
2589         }), mlazyload({
2590             defObj: "#discuss",
2591             defHeight: 0,
2592             fn: function() {
2593                 Discuss.getData(0, $("#discuss-1"))
2594             }
2595         }), mlazyload({
2596             defObj: "#comments",
2597             defHeight: 0,
2598             fn: function() {
2599                 if (!CommentListNew.loadFirstPage) {
2600                     var t = pageConfig.product.isFlashPurchase ? 2 : isAreaProduct ? 1 : 0;
2601                     CommentListNew.getData($("#comment-0"), 0, 0, t)
2602                 }
2603             }
2604         }), mlazyload({
2605             defObj: "#product-track",
2606             defHeight: 100,
2607             fn: function() {
2608                 $.ajax({
2609                     url: "http://misc.360buyimg.com/product/js/2012/footprint.js?ver=20140724",
2610                     dataType: "script",
2611                     cache: !0
2612                 })
2613             }
2614         }), mlazyload({
2615             defObj: "#product-detail",
2616             defHeight: 0,
2617             fn: function() {
2618                 Repository.init(G.sku)
2619             }
2620         }), mlazyload({
2621             defObj: "#ranklist",
2622             defHeight: 0,
2623             fn: function() {
2624                 var t = [],
2625                     e = $("#ranklist");
2626                 e.find(".p-price strong").each(function() {
2627                     var e = $(this),
2628                         i = e.attr("class");
2629                     i && t.push(i.replace("J-p-", ""))
2630                 }), G.getPriceNum(t, null, e)
2631             }
2632         }), $("#product-detail .mt").floatNav({
2633             fixedClass: "nav-fixed",
2634             targetEle: "#consult",
2635             anchor: "#product-detail",
2636             range: 30,
2637             onStart: function() {
2638                 var t = $(".nav-minicart-buynow");
2639                 t.length > 0 && t.find("a").html("\u7acb\u5373\u8d2d\u4e70"), $("#nav-minicart").show()
2640             },
2641             onEnd: function() {
2642                 restoreDetailListTab()
2643             }
2644         }), $("#nav-minicart").Jdropdown(function(t) {
2645             var e = pageConfig.product.priceImg || "http://jprice.360buyimg.com/price/gp" + G.sku + "-1-1-1.png";
2646             t.find(".nav-minicart-btn a").attr("href", $("#choose-btn-append .btn-append").attr("href")), t.find(".p-img img").attr("src", pageConfig.FN_GetImageDomain(G.sku) + "n4/" + pageConfig.product.src), t.find(".p-name").html(G.name), t.find(".p-price img").attr("src", e)
2647         }), $("#store-selector").Jdropdown(), $(".share-ft").click(function() {
2648             $(this).toggleClass("share-ft-open"), $(this).parents("#share-list").toggleClass("share-list-open"), $(".share-list-item").toggleClass("share-list-item-all")
2649         }), $("#comments-list .tab").append('<li class="tab-last"></li>'), renew(), /from=email/.test(location.href) && $.ajax({
2650             url: "http://misc.360buyimg.com/product/js/2012/notify.js",
2651             dataType: "script",
2652             cache: !0,
2653             success: function() {
2654                 Notify && Notify.init("#summary-price .dd a", "#notify-stock")
2655             }
2656         }), $(".btn-pleased,.btn-unpleased").livequery("click", function() {
2657             var t = $(this);
2658             $.login({
2659                 complete: function(e) {
2660                     if (null != e.IsAuthenticated && e.IsAuthenticated) {
2661                         var i = parseInt($.query.get("id"));
2662                         if (isNaN(i) || 0 == i) {
2663                             var e = location.href.match(/(\d+)(.html)/);
2664                             null != e && (i = parseInt(e[1]))
2665                         }
2666                         var s = $(t).parent().attr("id"),
2667                             a = parseInt($(t).attr("name"));
2668                         i > 0 && $.getJSON(consultationServiceUrl, {
2669                             method: "VoteForConsultation",
2670                             productId: i,
2671                             consultationId: s,
2672                             score: a
2673                         }, function(e) {
2674                             e.Result ? ($(t).text("\u5df2\u6295\u7968"), $(t).next("span").text(parseInt($(t).next("span").text()) + 1)) : $(t).text("\u5df2\u6295\u7968")
2675                         })
2676                     }
2677                 }
2678             }), mark(location.href.match(/(\d+).html/)[1], 5)
2679         }), $("#site-qq,#site-msn,#site-email").parent().remove(), window.pageConfig) {
2680             var sidePanle = new pageConfig.FN_InitSidebar,
2681                 surveyId = "98523";
2682             832 === G.cat[2] && (surveyId = "737542"), sidePanle.addItem('<a class="research" target="_blank" href="http://surveys.jd.com/index.php?r=survey/index/sid/' + surveyId + '/lang/zh-Hans"><b></b>\u8c03\u67e5\u95ee\u5377</a>'), sidePanle.setTop(), sidePanle.scroll()
2683         }
2684         if (setImButton(G.sku), 1319 === G.cat[0] && $.ajax({
2685             url: "http://misc.360buyimg.com/product/js/2012/item.baby.js?ver=20140123",
2686             cache: !0,
2687             dataType: "script",
2688             scriptCharset: "gb2312"
2689         }), jdSref && searchEngineSource) {
2690             var charset = "&encode=utf-8";
2691             if ("baidu" == searchEngineSource.d) {
2692                 var refer = document.referrer;
2693                 charset = /ie=utf-8/.test(refer) ? "&encode=utf-8" : "&encode=gbk"
2694             } else charset = RegExp(searchEngineSource.d).test("soso#sogou") ? "&encode=gbk" : "&encode=utf-8";
2695             pageConfig.disabledSeoBanner = !0, seoBanner(searchEngineSource, charset)
2696         }(function() {
2697             var t = ["2_163_817", "2_163_818", "2_232_3431", "2_163_3743"];
2698             pageConfig.disabledSeoBanner || (t.push("2_163_5395"), t.push("2_163_5394")), 1315 === G.cat[0] && $("#Ad2_100_2272").length > 0 && t.push("2_100_2272"), G.isPop && t.push("2_601_3951"), $.ajax({
2699                 url: "http://fa.jd.com/loadFa_toJson.js?aid=" + t.join("-") + "&ver=20131107",
2700                 dataType: "script",
2701                 cache: !0
2702             }), insertScript("http://static.360buyimg.com/gemini/gemini/gemini_v2.2.1.js", {
2703                 id: "1399174259281",
2704                 name: "gemini_divide_script",
2705                 charset: "utf-8",
2706                 divideType: "MODULE_INJECT",
2707                 param: "[{t:'xiaoyumi'}]"
2708             })
2709         })(), mark(G.sku, 1), clsPVAndShowLog("", "", 3, "p"), clsPVAndShowLog("", "", 2, "p"), $("#choose-btn-append .btn-append b").livequery("click", function() {
2710             JA && JA.tracker.ngloader("item.010002", {
2711                 sku: G.sku,
2712                 jp: pageConfig.product.jp
2713             })
2714         }), $("#choose-btn-coll b").click(function() {
2715             JA && JA.tracker.ngloader("item.010003", {
2716                 sku: G.sku
2717             })
2718         });
2719         var adultCat = 1468 === G.cat[1] || 1587 === G.cat[1] || 1586 === G.cat[1] || 1588 === G.cat[1] || 7058 === G.cat[2] || 1550 === G.cat[2] || 6320 === G.cat[2] || 500 === G.cat[2] || 5e3 === G.cat[2] || 1345 === G.cat[1] || 1385 === G.cat[1] || 1467 === G.cat[1];
2720         adultCat || setTimeout(function() {
2721                 var t = document.createElement("img"),
2722                     e = "http://c.x.jd.com/set/lsku?",
2723                     i = {
2724                         skuid: G.sku,
2725                         sortId: G.cat[2],
2726                         p: $("#jd-price").text().replace("\uffe5", ""),
2727                         name: G.name
2728                     };
2729                 t.src = e + $.param(i) + "&img=" + G.src, t = null
2730             }, 1e3),
2731             function() {
2732                 var slideWrap = $(".w .left").eq(0),
2733                     slideItemTPL = '<div id="last-item-1" class="m">    <a  href="${link}" onclick="${onclick}" target="_blank"><img data-img="2" data-lazyload="${pageConfig.FN_GetImageDomain(skuid)}n7/${imageurl}" width="211" alt="${name}"></a></div>';
2734                 $.ajax({
2735                     url: "http://autorank.jd.com/v2.php?ad_type=6&ad_ids=9&sku_id=" + G.sku,
2736                     dataType: "jsonp",
2737                     success: function(r) {
2738                         if (!G.isNothing(r) && r && r.pos.Pos_9.length) {
2739                             var res = G.getRandomArray(r.pos.Pos_9);
2740                             1 > $("#last-item-1").length && slideWrap.append(slideItemTPL.process(res[0])), r.onload && eval(r.onload), $("#last-item-1 img").Jlazyload({
2741                                 type: "image"
2742                             })
2743                         }
2744                     }
2745                 })
2746             }(),
2747             function() {
2748                 var t = pageConfig.product.videoPath,
2749                     e = $(".detail-content"),
2750                     i = $("#letv");
2751                 if (t && 1 > i.length) {
2752                     var s = "http://yuntv.letv.com/bcloud.html?uu=abcde12345&vu=" + t + "&pu=12345abcde&auto_play=0&width=750&height=422";
2753                     e.before('<div id="letv"><iframe id="le-video" data-lazyload="' + s + '" frameborder="0" scrolling="no" style="display:block; width:750px; height:422px; margin:0 auto;"></iframe></div>'), $("#letv iframe").Jlazyload({
2754                         type: "image"
2755                     })
2756                 }
2757             }(),
2758             function() {
2759                 var t = $("#itemover-related-list"),
2760                     e = pageConfig.compatible && pageConfig.wideVersion ? 12 : 9;
2761                 if ("undefined" != typeof warestatus && 0 === warestatus) {
2762                     t.show(), t.find("p").html("\u7c7b\u4f3c\u5546\u54c1");
2763                     var i = '<div class="w">    <div id="out-of-stock" class="m m2 hide">        <div class="mt">            <h2>\u642d\u914d\u63a8\u8350</h2>        </div>        <div class="mc">            <div id="noitem-related-list">                <div class="noitem-related-list">                    <a href="javascript:;" class="spec-control disabled" id="noitem-forward"></a>                    <a href="javascript:;" class="spec-control" id="noitem-backward"></a>                    <div id="noitem-list">                            <div class="iloading">\u6b63\u5728\u52a0\u8f7d\u4e2d\uff0c\u8bf7\u7a0d\u5019...</div>                    </div>                </div>            </div>        </div>    </div></div>';
2764                     $("#product-intro").parent().after(i), new Grecommend(G.sku, 902011, readCookie("ipLoc-djd"), t, e), new Grecommend(G.sku, 902018, readCookie("ipLoc-djd"), $("#out-of-stock #noitem-list"), 20)
2765                 }
2766             }(),
2767             function() {
2768                 var t = $("#preview .spec-items li img"),
2769                     e = [],
2770                     i = $("#share-list li");
2771                 t.each(function() {
2772                     var t = $(this).attr("src");
2773                     e.push(t)
2774                 });
2775                 var s = "\u6211\u5728@\u4eac\u4e1c \u53d1\u73b0\u4e86\u4e00\u4e2a\u975e\u5e38\u4e0d\u9519\u7684\u5546\u54c1\uff1a" + G.name + "\uff0c\u4eac\u4e1c\u4ef7\uff1a\uffe5 {PRICE}\u3002 \u611f\u89c9\u4e0d\u9519\uff0c\u5206\u4eab\u4e00\u4e0b";
2776                 new CombineShare({
2777                     sid: 3,
2778                     rid: G.sku,
2779                     $el: i,
2780                     title: s,
2781                     content: s,
2782                     url: location.href,
2783                     imgs: e,
2784                     onbeforeOpen: function(t) {
2785                         t.jp = pageConfig.product.jp
2786                     }
2787                 }), i.attr("clstag", "shangpin|keycount|product|fenxiang")
2788             }(),
2789             function() {
2790                 var t = $("#consult-search .form"),
2791                     e = $("#consult"),
2792                     i = pageConfig.wideVersion && pageConfig.compatible,
2793                     s = '            <div id="consult-wrap" class="consult-search">                <b></b>                <div class="consult-pop">                    <input type="text" id="txbReferSearch" placeholder="\u8bf7\u8f93\u5165\u5173\u952e\u8bcd" />                    <input type="button" value="\u641c\u7d22" id="btnReferSearch" class="btn-search" clstag="shangpin|keycount|product|consult9">                    <a class="consult-close hl_blue" href="#none" onclick="closeCounsultSearch()">\u53d6\u6d88</a>                </div>            </div>            <div class="consult-pub">                <a class="css3-btn" target="_blank" href="http://club.jd.com/allconsultations/' + G.sku + '-1-1.html#form1">\u53d1\u8868\u54a8\u8be2</a>            </div>';
2794                 t.remove(), e.addClass("consult-2014"), e.find(".mt").append(s), window.closeCounsultSearch = function() {
2795                     $("#consult-wrap").removeClass("hover"), pageConfig.onConsultSearch = !1
2796                 }, i || (e.find(".consult-search").hover(function() {
2797                     var t = $(this);
2798                     setTimeout(function() {
2799                         t.addClass("hover")
2800                     }, 500)
2801                 }, function() {
2802                     pageConfig.onConsultSearch || $(this).removeClass("hover")
2803                 }).bind("click", function() {
2804                     return $(this).is(".consult-close") ? void 0 : !1
2805                 }), e.find("b").bind("click", function() {
2806                     return $(this).addClass("hover"), pageConfig.onConsultSearch = !0, !1
2807                 }), $("body").bind("click", function() {
2808                     closeCounsultSearch()
2809                 }))
2810             }()
2811     });
2812 var geminiCustomizedDot = geminiCustomizedDot || [],
2813     MBuy = {
2814         init: function() {
2815             this.chooseBtn = $("#choose-btns"), this.setQrcode()
2816         },
2817         setQrcode: function() {
2818             var t = this,
2819                 e = '<div id="m-buy" clstag="shangpin|keycount|product|btn-erweima">    <div class="mt">\u5ba2\u6237\u7aef\u9996\u6b21\u4e0b\u5355</div>    <div id="m-countdown">        <strong class="hl_red">\u90015\u5143\u4eac\u5238</strong>    </div>    <div id="m-qrcode" class="hide">        <span class="close" onclick="$(\'#m-buy\').removeClass(\'hover\')"></span>        <span class="arr"></span>        <div class="m-qrcode-wrap">            <strong>\u5ba2\u6237\u7aef\u9996\u5355\u6ee159\u90015\u5143\u4eac\u5238\u4f4e\u4ef7\u79d2\u6740\u5546\u54c1\u62a2\u4e0d\u505c</strong>            <div id="m-qrcode-box">                <img src="http://misc.360buyimg.com/lib/img/e/blank.gif" width="155" height="155" />            </div>        </div>    </div></div>';
2820             return $("#m-buy").length > 0 ? !1 : (this.chooseBtn.append(e), this.mBuy = $("#m-buy"), this.mt = this.mBuy.find(".mt"), this.mBuy.Jdropdown({
2821                 delay: 200,
2822                 event: "click"
2823             }, function() {
2824                 "true" !== t.mBuy.attr("loaded") && ($.ajax({
2825                     url: "http://misc.360buyimg.com/product/js/2012/qrcode.js?ver=20140527",
2826                     dataType: "script",
2827                     scriptCharset: "gb2312",
2828                     cache: !0
2829                 }), t.mBuy.attr("loaded", "true"))
2830             }), void 0)
2831         },
2832         setProm: function(t) {
2833             var e = this.mBuy.find("#m-countdown");
2834             if (!(t && t.indexOf(".") > -1)) return this.mt.html("\u5ba2\u6237\u7aef\u9996\u6b21\u4e0b\u5355"), e.html('<strong class="hl_red">\u90015\u5143\u4eac\u5238</strong>'), void 0;
2835             t = t.split(",");
2836             var i = isNaN(Number(t[1])) ? 0 : Number(t[1]) / 1e3;
2837             Math.floor(i / 86400) > 7 ? (this.mt.html("\u5ba2\u6237\u7aef\u9996\u6b21\u4e0b\u5355"), e.html('<strong class="hl_red">\u90015\u5143\u4eac\u5238</strong>')) : (this.mt.html('<strong class="hl_red">\u624b\u673a\u4e13\u4eab\u4ef7\uff1a' + t[0] + "\u5143</strong>"), i >= 0 && G.Countdown.init(i, function(t) {
2838                 e.html("\u8fd8\u5269\uff1a" + t.d + "\u5929" + t.h + "\u5c0f\u65f6" + t.m + "\u5206")
2839             }))
2840         }
2841     };
2842 (function() {
2843     var t = RegExp("-" + G.cat[2] + "-"),
2844         e = "-1195-6980-6151-6152-1444-7052-7054-7057-9435-";
2845     t.test(e) ? MBuy.setProm = function() {} : MBuy.init()
2846 })();

 

posted on 2014-08-12 01:24  davidkam  阅读(5452)  评论(0编辑  收藏  举报