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">×</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'> </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 \u88c5 \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 \u914d \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  \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></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>></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 <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> <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> <a target="_blank" href="http://club.jd.com/bbs/${referenceId}-1-0-${ReferenceType}.html">\u6d4f\u89c8\u5168\u90e8\u8bdd\u9898>></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 <a href="http://club.jd.com/allconsultations/${SearchParameter.ProductId}-1-1.html" target="_blank">\u6d4f\u89c8\u6240\u6709\u54a8\u8be2\u4fe1\u606f>></a> </div> <div class="join"> \u8d2d\u4e70\u4e4b\u524d\uff0c\u5982\u6709\u95ee\u9898\uff0c\u8bf7{if $("#j-im").length}\u54a8\u8be2 <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"><</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">></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>><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 \u914d \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 \u8003 \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 \u5728 \u5730\uff1a</dt><dd></dd></dl>'), $("#pop-company dd").html(t.companyName), $("#pop-address dd").html(t.firstAddr + " " + 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 })();