02.lib-v1.js

   1 /*
   2  Date: 2014-07-29 4:06:07 [PM] 
   3  */
   4 function StringBuilder() {
   5     this.strings = new Array, this.length = 0
   6 }
   7 
   8 function jdThickBoxclose() {
   9     $(".thickclose").trigger("click")
  10 }
  11 
  12 function getparam() {
  13     var a = "",
  14         b = "";
  15     new Object;
  16     for (var c = location.search.substring(1), d = c.split("&"), e = 0; e < d.length; e++) {
  17         var f = d[e].indexOf("="); - 1 != f && (d[e].substring(0, f), "sid" == d[e].substring(0, f) && (a = unescape(d[e].substring(f + 1))), "t" == d[e].substring(0, f) && (b = unescape(d[e].substring(f + 1))))
  18     }
  19     return "" != a || "" != b ? "&sid=" + escape(a) + "&t=" + escape(b) : ""
  20 }
  21 
  22 function mlazyload(a) {
  23         var b = {
  24             defObj: null,
  25             defHeight: 0,
  26             fn: null
  27         };
  28         b = $.extend(b, a || {});
  29         var c = (b.defHeight, "object" == typeof b.defObj ? b.defObj : $(b.defObj));
  30         if (!(c.length < 1)) {
  31             var d = function() {
  32                     var a = document,
  33                         c = "ipad" == navigator.userAgent.toLowerCase().match(/iPad/i) ? window.pageYOffset : Math.max(a.documentElement.scrollTop, a.body.scrollTop);
  34                     return a.documentElement.clientHeight + c - b.defHeight
  35                 },
  36                 e = function() {
  37                     c.offset().top <= d() && !c.attr("load") && (c.attr("load", "true"), b.fn && b.fn())
  38                 };
  39             e(), $(window).bind("scroll", function() {
  40                 e()
  41             })
  42         }
  43     }! function() {
  44         var a = document.getElementById("nav-dapeigou");
  45         a && (a.innerHTML = '\u4eac\u4e1c\u8d85\u5e02')
  46     }(), "undefined" == typeof pageConfig.FN_getDomain && (pageConfig.FN_getDomain = function() {
  47         var a = location.hostname;
  48         return /360buy.com/.test(a) ? "360buy.com" : "jd.com"
  49     }),
  50     function() {
  51         var a = $("#service-2013 a[href='http://en.360buy.com/']");
  52         a.length && a.attr("href", "http://help.en.360buy.com/help/question-2.html")
  53     }(),
  54     function() {
  55         var a = $("#footer-2013 a[href='http://about.58.com/fqz/index.html']");
  56         a.length && a.attr("href", "http://www.bj.cyberpolice.cn/index.do")
  57     }(), "object" != typeof JSON && (JSON = {}),
  58     function() {
  59         function f(a) {
  60             return 10 > a ? "0" + a : a
  61         }
  62 
  63         function quote(a) {
  64             return escapable.lastIndex = 0, escapable.test(a) ? '"' + a.replace(escapable, function(a) {
  65                 var b = meta[a];
  66                 return "string" == typeof b ? b : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)
  67             }) + '"' : '"' + a + '"'
  68         }
  69 
  70         function str(a, b) {
  71             var c, d, e, f, g, h = gap,
  72                 i = b[a];
  73             switch (i && "object" == typeof i && "function" == typeof i.toJSON && (i = i.toJSON(a)), "function" == typeof rep && (i = rep.call(b, a, i)), typeof i) {
  74                 case "string":
  75                     return quote(i);
  76                 case "number":
  77                     return isFinite(i) ? String(i) : "null";
  78                 case "boolean":
  79                 case "null":
  80                     return String(i);
  81                 case "object":
  82                     if (!i) return "null";
  83                     if (gap += indent, g = [], "[object Array]" === Object.prototype.toString.apply(i)) {
  84                         for (f = i.length, c = 0; f > c; c += 1) g[c] = str(c, i) || "null";
  85                         return e = 0 === g.length ? "[]" : gap ? "[\n" + gap + g.join(",\n" + gap) + "\n" + h + "]" : "[" + g.join(",") + "]", gap = h, e
  86                     }
  87                     if (rep && "object" == typeof rep)
  88                         for (f = rep.length, c = 0; f > c; c += 1) "string" == typeof rep[c] && (d = rep[c], e = str(d, i), e && g.push(quote(d) + (gap ? ": " : ":") + e));
  89                     else
  90                         for (d in i) Object.prototype.hasOwnProperty.call(i, d) && (e = str(d, i), e && g.push(quote(d) + (gap ? ": " : ":") + e));
  91                     return e = 0 === g.length ? "{}" : gap ? "{\n" + gap + g.join(",\n" + gap) + "\n" + h + "}" : "{" + g.join(",") + "}", gap = h, e
  92             }
  93         }
  94         "function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function() {
  95             return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null
  96         }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() {
  97             return this.valueOf()
  98         });
  99         var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
 100             escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
 101             gap, indent, meta = {
 102                 "\b": "\\b",
 103                 "    ": "\\t",
 104                 "\n": "\\n",
 105                 "\f": "\\f",
 106                 "\r": "\\r",
 107                 '"': '\\"',
 108                 "\\": "\\\\"
 109             },
 110             rep;
 111         "function" != typeof JSON.stringify && (JSON.stringify = function(a, b, c) {
 112             var d;
 113             if (gap = "", indent = "", "number" == typeof c)
 114                 for (d = 0; c > d; d += 1) indent += " ";
 115             else "string" == typeof c && (indent = c); if (rep = b, b && "function" != typeof b && ("object" != typeof b || "number" != typeof b.length)) throw new Error("JSON.stringify");
 116             return str("", {
 117                 "": a
 118             })
 119         }), "function" != typeof JSON.parse && (JSON.parse = function(text, reviver) {
 120             function walk(a, b) {
 121                 var c, d, e = a[b];
 122                 if (e && "object" == typeof e)
 123                     for (c in e) Object.prototype.hasOwnProperty.call(e, c) && (d = walk(e, c), void 0 !== d ? e[c] = d : delete e[c]);
 124                 return reviver.call(a, b, e)
 125             }
 126             var j;
 127             if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function(a) {
 128                 return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)
 129             })), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({
 130                 "": j
 131             }, "") : j;
 132             throw new SyntaxError("JSON.parse")
 133         })
 134     }(), eval(function(a, b, c, d, e, f) {
 135         if (e = function(a) {
 136             return (b > a ? "" : e(parseInt(a / b))) + ((a %= b) > 35 ? String.fromCharCode(a + 29) : a.toString(36))
 137         }, !"".replace(/^/, String)) {
 138             for (; c--;) f[e(c)] = d[c] || e(c);
 139             d = [
 140                 function(a) {
 141                     return f[a]
 142                 }
 143             ], e = function() {
 144                 return "\\w+"
 145             }, c = 1
 146         }
 147         for (; c--;) d[c] && (a = a.replace(new RegExp("\\b" + e(c) + "\\b", "g"), d[c]));
 148         return a
 149     }("(4($){$.R($.7,{3:4(c,b,d){9 e=2,q;5($.O(c))d=b,b=c,c=z;$.h($.3.j,4(i,a){5(e.8==a.8&&e.g==a.g&&c==a.m&&(!b||b.$6==a.7.$6)&&(!d||d.$6==a.o.$6))l(q=a)&&v});q=q||Y $.3(2.8,2.g,c,b,d);q.u=v;$.3.s(q.F);l 2},T:4(c,b,d){9 e=2;5($.O(c))d=b,b=c,c=z;$.h($.3.j,4(i,a){5(e.8==a.8&&e.g==a.g&&(!c||c==a.m)&&(!b||b.$6==a.7.$6)&&(!d||d.$6==a.o.$6)&&!2.u)$.3.y(a.F)});l 2}});$.3=4(e,c,a,b,d){2.8=e;2.g=c||S;2.m=a;2.7=b;2.o=d;2.t=[];2.u=v;2.F=$.3.j.K(2)-1;b.$6=b.$6||$.3.I++;5(d)d.$6=d.$6||$.3.I++;l 2};$.3.p={y:4(){9 b=2;5(2.m)2.t.16(2.m,2.7);E 5(2.o)2.t.h(4(i,a){b.o.x(a)});2.t=[];2.u=Q},s:4(){5(2.u)l;9 b=2;9 c=2.t,w=$(2.8,2.g),H=w.11(c);2.t=w;5(2.m){H.10(2.m,2.7);5(c.C>0)$.h(c,4(i,a){5($.B(a,w)<0)$.Z.P(a,b.m,b.7)})}E{H.h(4(){b.7.x(2)});5(2.o&&c.C>0)$.h(c,4(i,a){5($.B(a,w)<0)b.o.x(a)})}}};$.R($.3,{I:0,j:[],k:[],A:v,D:X,N:4(){5($.3.A&&$.3.k.C){9 a=$.3.k.C;W(a--)$.3.j[$.3.k.V()].s()}},U:4(){$.3.A=v},M:4(){$.3.A=Q;$.3.s()},L:4(){$.h(G,4(i,n){5(!$.7[n])l;9 a=$.7[n];$.7[n]=4(){9 r=a.x(2,G);$.3.s();l r}})},s:4(b){5(b!=z){5($.B(b,$.3.k)<0)$.3.k.K(b)}E $.h($.3.j,4(a){5($.B(a,$.3.k)<0)$.3.k.K(a)});5($.3.D)1j($.3.D);$.3.D=1i($.3.N,1h)},y:4(b){5(b!=z)$.3.j[b].y();E $.h($.3.j,4(a){$.3.j[a].y()})}});$.3.L('1g','1f','1e','1b','1a','19','18','17','1c','15','1d','P');$(4(){$.3.M()});9 f=$.p.J;$.p.J=4(a,c){9 r=f.x(2,G);5(a&&a.8)r.g=a.g,r.8=a.8;5(14 a=='13')r.g=c||S,r.8=a;l r};$.p.J.p=$.p})(12);", 62, 82, "||this|livequery|function|if|lqguid|fn|selector|var|||||||context|each||queries|queue|return|type||fn2|prototype|||run|elements|stopped|false|els|apply|stop|undefined|running|inArray|length|timeout|else|id|arguments|nEls|guid|init|push|registerPlugin|play|checkQueue|isFunction|remove|true|extend|document|expire|pause|shift|while|null|new|event|bind|not|jQuery|string|typeof|toggleClass|unbind|addClass|removeAttr|attr|wrap|before|removeClass|empty|after|prepend|append|20|setTimeout|clearTimeout".split("|"), 0, {})), new function(a) {
 150         var b = a.separator || "&",
 151             c = a.spaces === !1 ? !1 : !0;
 152         a.suffix === !1 ? "" : "[]";
 153         var d = a.prefix === !1 ? !1 : !0,
 154             e = d ? a.hash === !0 ? "#" : "?" : "",
 155             f = a.numbers === !1 ? !1 : !0;
 156         jQuery.query = new function() {
 157             var a = function(a, b) {
 158                     return void 0 != a && null !== a && (b ? a.constructor == b : !0)
 159                 },
 160                 d = function(a) {
 161                     for (var b, c = /\[([^[]*)\]/g, d = /^(\S+?)(\[\S*\])?$/.exec(a), e = d[1], f = []; b = c.exec(d[2]);) f.push(b[1]);
 162                     return [e, f]
 163                 },
 164                 g = function(b, c, d) {
 165                     var e = c.shift();
 166                     if ("object" != typeof b && (b = null), "" === e)
 167                         if (b || (b = []), a(b, Array)) b.push(0 == c.length ? d : g(null, c.slice(0), d));
 168                         else if (a(b, Object)) {
 169                         for (var f = 0; null != b[f++];);
 170                         b[--f] = 0 == c.length ? d : g(b[f], c.slice(0), d)
 171                     } else b = [], b.push(0 == c.length ? d : g(null, c.slice(0), d));
 172                     else if (e && e.match(/^\s*[0-9]+\s*$/)) {
 173                         var h = parseInt(e, 10);
 174                         b || (b = []), b[h] = 0 == c.length ? d : g(b[h], c.slice(0), d)
 175                     } else {
 176                         if (!e) return d;
 177                         var h = e.replace(/^\s*|\s*$/g, "");
 178                         if (b || (b = {}), a(b, Array)) {
 179                             for (var i = {}, f = 0; f < b.length; ++f) i[f] = b[f];
 180                             b = i
 181                         }
 182                         b[h] = 0 == c.length ? d : g(b[h], c.slice(0), d)
 183                     }
 184                     return b
 185                 },
 186                 h = function(a) {
 187                     var b = this;
 188                     return b.keys = {}, a.queryObject ? jQuery.each(a.get(), function(a, c) {
 189                         b.SET(a, c)
 190                     }) : jQuery.each(arguments, function() {
 191                         var a = "" + this;
 192                         a = a.replace(/^[?#]/, ""), a = a.replace(/[;&]$/, ""), c && (a = a.replace(/[+]/g, " ")), jQuery.each(a.split(/[&;]/), function() {
 193                             try {
 194                                 var a = decodeURIComponent(this.split("=")[0]),
 195                                     c = decodeURIComponent(encodeURIComponent(this.split("=")[1]))
 196                             } catch (d) {}
 197                             a && (f && (/^[+-]?[0-9]+\.[0-9]*$/.test(c) ? c = parseFloat(c) : /^[+-]?[0-9]+$/.test(c) && (c = parseInt(c, 10))), c = c || 0 === c ? c : !0, c !== !1 && c !== !0 && "number" != typeof c && (c = c), b.SET(a, c))
 198                         })
 199                     }), b
 200                 };
 201             return h.prototype = {
 202                 queryObject: !0,
 203                 has: function(b, c) {
 204                     var d = this.get(b);
 205                     return a(d, c)
 206                 },
 207                 GET: function(b) {
 208                     if (!a(b)) return this.keys;
 209                     for (var c = d(b), e = c[0], f = c[1], g = this.keys[e]; null != g && 0 != f.length;) g = g[f.shift()];
 210                     return "number" == typeof g ? g : g || ""
 211                 },
 212                 get: function(b) {
 213                     var c = this.GET(b);
 214                     return a(c, Object) ? jQuery.extend(!0, {}, c) : a(c, Array) ? c.slice(0) : c
 215                 },
 216                 SET: function(b, c) {
 217                     var e = a(c) ? c : null,
 218                         f = d(b),
 219                         h = f[0],
 220                         i = f[1],
 221                         j = this.keys[h];
 222                     return this.keys[h] = g(j, i.slice(0), e), this
 223                 },
 224                 set: function(a, b) {
 225                     return this.copy().SET(a, b)
 226                 },
 227                 REMOVE: function(a) {
 228                     return this.SET(a, null).COMPACT()
 229                 },
 230                 remove: function(a) {
 231                     return this.copy().REMOVE(a)
 232                 },
 233                 EMPTY: function() {
 234                     var a = this;
 235                     return jQuery.each(a.keys, function(b) {
 236                         delete a.keys[b]
 237                     }), a
 238                 },
 239                 load: function(a) {
 240                     var b = a.replace(/^.*?[#](.+?)(?:\?.+)?$/, "$1"),
 241                         c = a.replace(/^.*?[?](.+?)(?:#.+)?$/, "$1");
 242                     return new h(a.length == c.length ? "" : c, a.length == b.length ? "" : b)
 243                 },
 244                 empty: function() {
 245                     return this.copy().EMPTY()
 246                 },
 247                 copy: function() {
 248                     return new h(this)
 249                 },
 250                 COMPACT: function() {
 251                     function b(c) {
 252                         function d(b, c, d) {
 253                             a(b, Array) ? b.push(d) : b[c] = d
 254                         }
 255                         var e = "object" == typeof c ? a(c, Array) ? [] : {} : c;
 256                         return "object" == typeof c && jQuery.each(c, function(c, f) {
 257                             return a(f) ? (d(e, c, b(f)), void 0) : !0
 258                         }), e
 259                     }
 260                     return this.keys = b(this.keys), this
 261                 },
 262                 compact: function() {
 263                     return this.copy().COMPACT()
 264                 },
 265                 toString: function() {
 266                     var c = [],
 267                         d = [],
 268                         f = function(b, c, d) {
 269                             if (a(d) && d !== !1) {
 270                                 var e = [encodeURIComponent(c)];
 271                                 d !== !0 && (e.push("="), e.push(encodeURIComponent(d))), b.push(e.join(""))
 272                             }
 273                         },
 274                         g = function(a, b) {
 275                             var c = function(a) {
 276                                 return b && "" != b ? [b, "[", a, "]"].join("") : [a].join("")
 277                             };
 278                             jQuery.each(a, function(a, b) {
 279                                 "object" == typeof b ? g(b, c(a)) : f(d, c(a), b)
 280                             })
 281                         };
 282                     return g(this.keys), d.length > 0 && c.push(e), c.push(d.join(b)), c.join("")
 283                 }
 284             }, new h(location.search, location.hash)
 285         }
 286     }(jQuery.query || {}), eval(function(a, b, c, d, e, f) {
 287         if (e = function(a) {
 288             return (b > a ? "" : e(parseInt(a / b))) + ((a %= b) > 35 ? String.fromCharCode(a + 29) : a.toString(36))
 289         }, !"".replace(/^/, String)) {
 290             for (; c--;) f[e(c)] = d[c] || e(c);
 291             d = [
 292                 function(a) {
 293                     return f[a]
 294                 }
 295             ], e = function() {
 296                 return "\\w+"
 297             }, c = 1
 298         }
 299         for (; c--;) d[c] && (a = a.replace(new RegExp("\\b" + e(c) + "\\b", "g"), d[c]));
 300         return a
 301     }("n.5=v(a,b,c){4(7 b!='w'){c=c||{};4(b===o){b='';c.3=-1}2 d='';4(c.3&&(7 c.3=='p'||c.3.q)){2 e;4(7 c.3=='p'){e=x y();e.z(e.A()+(c.3*B*r*r*C))}s{e=c.3}d=';3='+e.q()}2 f=c.8?';8='+(c.8):'';2 g=c.9?';9='+(c.9):'';2 h=c.t?';t':'';6.5=[a,'=',D(b),d,f,g,h].E('')}s{2 j=o;4(6.5&&6.5!=''){2 k=6.5.F(';');G(2 i=0;ifunction(a) {
 302         var b = a;
 303         return b.original || (b.original = this), b
 304     }, Date.prototype.toString = Date.prototype.toString.overwrite(function(a) {
 305         var b = new String;
 306         return "string" == typeof a && (b = a, b = b.replace(/yyyy|YYYY/, this.getFullYear()), b = b.replace(/yy|YY/, this.getFullYear().toString().substr(2, 2)), b = b.replace(/MM/, this.getMonth() >= 9 ? this.getMonth() + 1 : "0" + (this.getMonth() + 1)), b = b.replace(/M/, this.getMonth()), b = b.replace(/dd|DD/, this.getDate() > 9 ? this.getDate() : "0" + this.getDate()), b = b.replace(/d|D/, this.getDate()), b = b.replace(/hh|HH/, this.getHours() > 9 ? this.getHours() : "0" + this.getHours()), b = b.replace(/h|H/, this.getHours()), b = b.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes() : "0" + this.getMinutes()), b = b.replace(/m/, this.getMinutes()), b = b.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds() : "0" + this.getSeconds()), b = b.replace(/s|S/, this.getSeconds())), b
 307     }), String.prototype.format = function() {
 308         var a = this;
 309         return arguments.length > 0 && (parameters = $.makeArray(arguments), $.each(parameters, function(b, c) {
 310             a = a.replace(new RegExp("\\{" + b + "\\}", "g"), c)
 311         })), a
 312     }, StringBuilder.prototype.append = function(a) {
 313         this.strings.push(a), this.length += a.length
 314     }, StringBuilder.prototype.toString = function(a, b) {
 315         return this.strings.join("").substr(a, b)
 316     },
 317     function($) {
 318         $.jmsajax = function(a) {
 319             var b = {
 320                     type: "POST",
 321                     dataType: "msjson",
 322                     data: {},
 323                     beforeSend: function(a) {
 324                         a.setRequestHeader("Content-type", "application/json; charset=utf-8")
 325                     },
 326                     contentType: "application/json; charset=utf-8",
 327                     error: function(a) {
 328                         alert("Status: " + (a.statusText ? a.statusText : "Unknown") + "\nMessage: " + msJSON.parse(a.responseText ? a.responseText : "Unknown").Message)
 329                     }
 330                 },
 331                 a = $.extend(b, a);
 332             if (a.method && (a.url += "/" + a.method), a.data)
 333                 if ("GET" == a.type) {
 334                     var c = "";
 335                     for (var d in a.data) "" != c && (c += "&"), c += d + "=" + msJSON.stringify(a.data[d]);
 336                     a.url += "?" + c, c = null, a.data = "{}"
 337                 } else "POST" == a.type && (a.data = msJSON.stringify(a.data));
 338             if (a.success && a.dataType && "msjson" == a.dataType) {
 339                 var e = a.success;
 340                 a.success = function(b, c) {
 341                     var d = dateparse(b);
 342                     a.version ? a.version >= 3.5 && (d = d.d) : 0 == b.indexOf('{"d":') && (d = d.d), e(d, c)
 343                 }
 344             }
 345             return $.ajax(a)
 346         }, dateparse = function(a) {
 347             try {
 348                 return msJSON.parse(a, function(a, b) {
 349                     var c;
 350                     return "string" == typeof b && b.indexOf("Date") >= 0 && (c = /^\/Date\(([0-9]+)\)\/$/.exec(b)) ? new Date(parseInt(c[1], 10)) : b
 351                 })
 352             } catch (b) {
 353                 return null
 354             }
 355         }, msJSON = function() {
 356             function f(a) {
 357                 return 10 > a ? "0" + a : a
 358             }
 359 
 360             function quote(a) {
 361                 return escapeable.lastIndex = 0, escapeable.test(a) ? '"' + a.replace(escapeable, function(a) {
 362                     var b = meta[a];
 363                     return "string" == typeof b ? b : "\\u" + ("0000" + (+a.charCodeAt(0)).toString(16)).slice(-4)
 364                 }) + '"' : '"' + a + '"'
 365             }
 366 
 367             function str(a, b) {
 368                 var c, d, e, f, g, h = gap,
 369                     i = b[a];
 370                 switch (i && "object" == typeof i && "function" == typeof i.toJSON && (i = i.toJSON(a)), "function" == typeof rep && (i = rep.call(b, a, i)), typeof i) {
 371                     case "string":
 372                         return quote(i);
 373                     case "number":
 374                         return isFinite(i) ? String(i) : "null";
 375                     case "boolean":
 376                     case "null":
 377                         return String(i);
 378                     case "object":
 379                         if (!i) return "null";
 380                         if (i.toUTCString) return '"\\/Date(' + i.getTime() + ')\\/"';
 381                         if (gap += indent, g = [], "number" == typeof i.length && !i.propertyIsEnumerable("length")) {
 382                             for (f = i.length, c = 0; f > c; c += 1) g[c] = str(c, i) || "null";
 383                             return e = 0 === g.length ? "[]" : gap ? "[\n" + gap + g.join(",\n" + gap) + "\n" + h + "]" : "[" + g.join(",") + "]", gap = h, e
 384                         }
 385                         if (rep && "object" == typeof rep)
 386                             for (f = rep.length, c = 0; f > c; c += 1) d = rep[c], "string" == typeof d && (e = str(d, i, rep), e && g.push(quote(d) + (gap ? ": " : ":") + e));
 387                         else
 388                             for (d in i) Object.hasOwnProperty.call(i, d) && (e = str(d, i, rep), e && g.push(quote(d) + (gap ? ": " : ":") + e));
 389                         return e = 0 === g.length ? "{}" : gap ? "{\n" + gap + g.join(",\n" + gap) + "\n" + h + "}" : "{" + g.join(",") + "}", gap = h, e
 390                 }
 391             }
 392             var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
 393                 escapeable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
 394                 gap, indent, meta = {
 395                     "\b": "\\b",
 396                     "    ": "\\t",
 397                     "\n": "\\n",
 398                     "\f": "\\f",
 399                     "\r": "\\r",
 400                     '"': '\\"',
 401                     "\\": "\\\\"
 402                 },
 403                 rep;
 404             return {
 405                 stringify: function(a, b, c) {
 406                     var d;
 407                     if (gap = "", indent = "", "number" == typeof c)
 408                         for (d = 0; c > d; d += 1) indent += " ";
 409                     else "string" == typeof c && (indent = c); if (rep = b, b && "function" != typeof b && ("object" != typeof b || "number" != typeof b.length)) throw new Error("JSON.stringify");
 410                     return str("", {
 411                         "": a
 412                     })
 413                 },
 414                 parse: function(text, reviver) {
 415                     function walk(a, b) {
 416                         var c, d, e = a[b];
 417                         if (e && "object" == typeof e)
 418                             for (c in e) Object.hasOwnProperty.call(e, c) && (d = walk(e, c), void 0 !== d ? e[c] = d : delete e[c]);
 419                         return reviver.call(a, b, e)
 420                     }
 421                     var j;
 422                     if (cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function(a) {
 423                         return "\\u" + ("0000" + (+a.charCodeAt(0)).toString(16)).slice(-4)
 424                     })), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({
 425                         "": j
 426                     }, "") : j;
 427                     throw new SyntaxError("JSON.parse")
 428                 }
 429             }
 430         }()
 431     }(jQuery);
 432 var TrimPath;
 433 ! function() {
 434     null == TrimPath && (TrimPath = new Object), null == TrimPath.evalEx && (TrimPath.evalEx = function(src) {
 435         return eval(src)
 436     });
 437     var UNDEFINED;
 438     null == Array.prototype.pop && (Array.prototype.pop = function() {
 439         return 0 === this.length ? UNDEFINED : this[--this.length]
 440     }), null == Array.prototype.push && (Array.prototype.push = function() {
 441         for (var a = 0; a < arguments.length; ++a) this[this.length] = arguments[a];
 442         return this.length
 443     }), TrimPath.parseTemplate = function(a, b, c) {
 444         null == c && (c = TrimPath.parseTemplate_etc);
 445         var d = parse(a, b, c),
 446             e = TrimPath.evalEx(d, b, 1);
 447         return null != e ? new c.Template(b, a, d, e, c) : null
 448     };
 449     try {
 450         String.prototype.process = function(a, b) {
 451             var c = TrimPath.parseTemplate(this, null);
 452             return null != c ? c.process(a, b) : this
 453         }
 454     } catch (e) {}
 455     TrimPath.parseTemplate_etc = {}, TrimPath.parseTemplate_etc.statementTag = "forelse|for|if|elseif|else|var|macro", TrimPath.parseTemplate_etc.statementDef = {
 456         "if": {
 457             delta: 1,
 458             prefix: "if (",
 459             suffix: ") {",
 460             paramMin: 1
 461         },
 462         "else": {
 463             delta: 0,
 464             prefix: "} else {"
 465         },
 466         elseif: {
 467             delta: 0,
 468             prefix: "} else if (",
 469             suffix: ") {",
 470             paramDefault: "true"
 471         },
 472         "/if": {
 473             delta: -1,
 474             prefix: "}"
 475         },
 476         "for": {
 477             delta: 1,
 478             paramMin: 3,
 479             prefixFunc: function(a, b, c, d) {
 480                 if ("in" != a[2]) throw new d.ParseError(c, b.line, "bad for loop statement: " + a.join(" "));
 481                 var e = a[1],
 482                     f = "__LIST__" + e;
 483                 return ["var ", f, " = ", a[3], ";", "var __LENGTH_STACK__;", "if (typeof(__LENGTH_STACK__) == 'undefined' || !__LENGTH_STACK__.length) __LENGTH_STACK__ = new Array();", "__LENGTH_STACK__[__LENGTH_STACK__.length] = 0;", "if ((", f, ") != null) { ", "var ", e, "_ct = 0;", "for (var ", e, "_index in ", f, ") { ", e, "_ct++;", "if (typeof(", f, "[", e, "_index]) == 'function') {continue;}", "__LENGTH_STACK__[__LENGTH_STACK__.length - 1]++;", "var ", e, " = ", f, "[", e, "_index];"].join("")
 484             }
 485         },
 486         forelse: {
 487             delta: 0,
 488             prefix: "} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (",
 489             suffix: ") {",
 490             paramDefault: "true"
 491         },
 492         "/for": {
 493             delta: -1,
 494             prefix: "} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];"
 495         },
 496         "var": {
 497             delta: 0,
 498             prefix: "var ",
 499             suffix: ";"
 500         },
 501         macro: {
 502             delta: 1,
 503             prefixFunc: function(a) {
 504                 var b = a[1].split("(")[0];
 505                 return ["var ", b, " = function", a.slice(1).join(" ").substring(b.length), "{ var _OUT_arr = []; var _OUT = { write: function(m) { if (m) _OUT_arr.push(m); } }; "].join("")
 506             }
 507         },
 508         "/macro": {
 509             delta: -1,
 510             prefix: " return _OUT_arr.join(''); };"
 511         }
 512     }, TrimPath.parseTemplate_etc.modifierDef = {
 513         eat: function() {
 514             return ""
 515         },
 516         escape: function(a) {
 517             return String(a).replace(/&/g, "&").replace(//g, ">")
 518         },
 519         capitalize: function(a) {
 520             return String(a).toUpperCase()
 521         },
 522         "default": function(a, b) {
 523             return null != a ? a : b
 524         }
 525     }, TrimPath.parseTemplate_etc.modifierDef.h = TrimPath.parseTemplate_etc.modifierDef.escape, TrimPath.parseTemplate_etc.Template = function(a, b, c, d, e) {
 526         this.process = function(a, b) {
 527             null == a && (a = {}), null == a._MODIFIERS && (a._MODIFIERS = {}), null == a.defined && (a.defined = function(b) {
 528                 return void 0 != a[b]
 529             });
 530             for (var c in e.modifierDef) null == a._MODIFIERS[c] && (a._MODIFIERS[c] = e.modifierDef[c]);
 531             null == b && (b = {});
 532             var f = [],
 533                 g = {
 534                     write: function(a) {
 535                         f.push(a)
 536                     }
 537                 };
 538             try {
 539                 d(g, a, b)
 540             } catch (h) {
 541                 if (1 == b.throwExceptions) throw h;
 542                 var i = new String(f.join("") + "[ERROR: " + h.toString() + (h.message ? "; " + h.message : "") + "]");
 543                 return i.exception = h, i
 544             }
 545             return f.join("")
 546         }, this.name = a, this.source = b, this.sourceFunc = c, this.toString = function() {
 547             return "TrimPath.Template [" + a + "]"
 548         }
 549     }, TrimPath.parseTemplate_etc.ParseError = function(a, b, c) {
 550         this.name = a, this.line = b, this.message = c
 551     }, TrimPath.parseTemplate_etc.ParseError.prototype.toString = function() {
 552         return "TrimPath template ParseError in " + this.name + ": line " + this.line + ", " + this.message
 553     };
 554     var parse = function(a, b, c) {
 555             a = cleanWhiteSpace(a);
 556             for (var d = ["var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {"], e = {
 557                 stack: [],
 558                 line: 1
 559             }, f = -1; f + 1 < a.length;) {
 560                 var g = f;
 561                 for (g = a.indexOf("{", g + 1); g >= 0;) {
 562                     var h = a.indexOf("}", g + 1),
 563                         i = a.substring(g, h),
 564                         j = i.match(/^\{(cdata|minify|eval)/);
 565                     if (j) {
 566                         var k = j[1],
 567                             l = g + k.length + 1,
 568                             m = a.indexOf("}", l);
 569                         if (m >= 0) {
 570                             var n;
 571                             n = 0 >= m - l ? "{/" + k + "}" : a.substring(l + 1, m);
 572                             var o = a.indexOf(n, m + 1);
 573                             if (o >= 0) {
 574                                 emitSectionText(a.substring(f + 1, g), d);
 575                                 var p = a.substring(m + 1, o);
 576                                 "cdata" == k ? emitText(p, d) : "minify" == k ? emitText(scrubWhiteSpace(p), d) : "eval" == k && null != p && p.length > 0 && d.push("_OUT.write( (function() { " + p + " })() );"), g = f = o + n.length - 1
 577                             }
 578                         }
 579                     } else if ("$" != a.charAt(g - 1) && "\\" != a.charAt(g - 1)) {
 580                         var q = "/" == a.charAt(g + 1) ? 2 : 1;
 581                         if (0 == a.substring(g + q, g + 10 + q).search(TrimPath.parseTemplate_etc.statementTag)) break
 582                     }
 583                     g = a.indexOf("{", g + 1)
 584                 }
 585                 if (0 > g) break;
 586                 var h = a.indexOf("}", g + 1);
 587                 if (0 > h) break;
 588                 emitSectionText(a.substring(f + 1, g), d), emitStatement(a.substring(g, h + 1), e, d, b, c), f = h
 589             }
 590             if (emitSectionText(a.substring(f + 1), d), 0 != e.stack.length) throw new c.ParseError(b, e.line, "unclosed, unmatched statement(s): " + e.stack.join(","));
 591             return d.push("}}; TrimPath_Template_TEMP"), d.join("")
 592         },
 593         emitStatement = function(a, b, c, d, e) {
 594             var f = a.slice(1, -1).split(" "),
 595                 g = e.statementDef[f[0]];
 596             if (null == g) return emitSectionText(a, c), void 0;
 597             if (g.delta < 0) {
 598                 if (b.stack.length <= 0) throw new e.ParseError(d, b.line, "close tag does not match any previous statement: " + a);
 599                 b.stack.pop()
 600             }
 601             if (g.delta > 0 && b.stack.push(a), null != g.paramMin && g.paramMin >= f.length) throw new e.ParseError(d, b.line, "statement needs more parameters: " + a);
 602             if (null != g.prefixFunc ? c.push(g.prefixFunc(f, b, d, e)) : c.push(g.prefix), null != g.suffix) {
 603                 if (f.length <= 1) null != g.paramDefault && c.push(g.paramDefault);
 604                 else
 605                     for (var h = 1; h < f.length; h++) h > 1 && c.push(" "), c.push(f[h]);
 606                 c.push(g.suffix)
 607             }
 608         },
 609         emitSectionText = function(a, b) {
 610             if (!(a.length <= 0)) {
 611                 for (var c = 0, d = a.length - 1; c < a.length && "\n" == a.charAt(c);) c++;
 612                 for (; d >= 0 && (" " == a.charAt(d) || "    " == a.charAt(d));) d--;
 613                 if (c > d && (d = c), c > 0) {
 614                     b.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');
 615                     var e = a.substring(0, c).replace("\n", "\\n");
 616                     "\n" == e.charAt(e.length - 1) && (e = e.substring(0, e.length - 1)), b.push(e), b.push('");')
 617                 }
 618                 for (var f = a.substring(c, d + 1).split("\n"), g = 0; g < f.length; g++) emitSectionTextLine(f[g], b), g < f.length - 1 && b.push('_OUT.write("\\n");\n');
 619                 if (d + 1 < a.length) {
 620                     b.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');
 621                     var e = a.substring(d + 1).replace("\n", "\\n");
 622                     "\n" == e.charAt(e.length - 1) && (e = e.substring(0, e.length - 1)), b.push(e), b.push('");')
 623                 }
 624             }
 625         },
 626         emitSectionTextLine = function(a, b) {
 627             for (var c = "}", d = -1; d + c.length < a.length;) {
 628                 var e = "${",
 629                     f = "}",
 630                     g = a.indexOf(e, d + c.length);
 631                 if (0 > g) break;
 632                 "%" == a.charAt(g + 2) && (e = "${%", f = "%}");
 633                 var h = a.indexOf(f, g + e.length);
 634                 if (0 > h) break;
 635                 emitText(a.substring(d + c.length, g), b);
 636                 var i = a.substring(g + e.length, h).replace(/\|\|/g, "#@@#").split("|");
 637                 for (var j in i) i[j].replace && (i[j] = i[j].replace(/#@@#/g, "||"));
 638                 b.push("_OUT.write("), emitExpression(i, i.length - 1, b), b.push(");"), d = h, c = f
 639             }
 640             emitText(a.substring(d + c.length), b)
 641         },
 642         emitText = function(a, b) {
 643             null == a || a.length <= 0 || (a = a.replace(/\\/g, "\\\\"), a = a.replace(/\n/g, "\\n"), a = a.replace(/"/g, '\\"'), b.push('_OUT.write("'), b.push(a), b.push('");'))
 644         },
 645         emitExpression = function(a, b, c) {
 646             var d = a[b];
 647             if (0 >= b) return c.push(d), void 0;
 648             var e = d.split(":");
 649             c.push('_MODIFIERS["'), c.push(e[0]), c.push('"]('), emitExpression(a, b - 1, c), e.length > 1 && (c.push(","), c.push(e[1])), c.push(")")
 650         },
 651         cleanWhiteSpace = function(a) {
 652             return a = a.replace(/\t/g, "    "), a = a.replace(/\r\n/g, "\n"), a = a.replace(/\r/g, "\n"), a = a.replace(/^(\s*\S*(\s+\S+)*)\s*$/, "$1")
 653         },
 654         scrubWhiteSpace = function(a) {
 655             return a = a.replace(/^\s+/g, ""), a = a.replace(/\s+$/g, ""), a = a.replace(/\s+/g, " "), a = a.replace(/^(\s*\S*(\s+\S+)*)\s*$/, "$1")
 656         };
 657     TrimPath.parseDOMTemplate = function(a, b, c) {
 658         null == b && (b = document);
 659         var d = b.getElementById(a),
 660             e = d.value;
 661         return null == e && (e = d.innerHTML), e = e.replace(//g, ">"), TrimPath.parseTemplate(e, a, c)
 662     }, TrimPath.processDOMTemplate = function(a, b, c, d, e) {
 663         return TrimPath.parseDOMTemplate(a, d, e).process(b, c)
 664     }
 665 }(),
 666 function($) {
 667     $.extend({
 668         _jsonp: {
 669             scripts: {},
 670             counter: 1,
 671             charset: "gb2312",
 672             head: document.getElementsByTagName("head")[0],
 673             name: function(callback) {
 674                 var name = "_jsonp_" + (new Date).getTime() + "_" + this.counter;
 675                 this.counter++;
 676                 var cb = function(json) {
 677                     eval("delete " + name), callback(json), $._jsonp.head.removeChild($._jsonp.scripts[name]), delete $._jsonp.scripts[name]
 678                 };
 679                 return eval(name + " = cb"), name
 680             },
 681             load: function(a, b) {
 682                 var c = document.createElement("script");
 683                 c.type = "text/javascript", c.charset = this.charset, c.src = a, this.head.appendChild(c), this.scripts[b] = c
 684             }
 685         },
 686         getJSONP: function(a, b) {
 687             var c = $._jsonp.name(b),
 688                 a = a.replace(/{callback};/, c);
 689             return $._jsonp.load(a, c), this
 690         }
 691     })
 692 }(jQuery),
 693 function(a) {
 694     a.fn.Jdropdown = function(b, c) {
 695         if (this.length) {
 696             "function" == typeof b && (c = b, b = {});
 697             var d = a.extend({
 698                     event: "mouseover",
 699                     current: "hover",
 700                     delay: 0
 701                 }, b || {}),
 702                 e = "mouseover" == d.event ? "mouseout" : "mouseleave";
 703             a.each(this, function() {
 704                 var b = null,
 705                     f = null,
 706                     g = !1;
 707                 a(this).bind(d.event, function() {
 708                     if (g) clearTimeout(f);
 709                     else {
 710                         var e = a(this);
 711                         b = setTimeout(function() {
 712                             e.addClass(d.current), g = !0, c && c(e)
 713                         }, d.delay)
 714                     }
 715                 }).bind(e, function() {
 716                     if (g) {
 717                         var c = a(this);
 718                         f = setTimeout(function() {
 719                             c.removeClass(d.current), g = !1
 720                         }, d.delay)
 721                     } else clearTimeout(b)
 722                 })
 723             })
 724         }
 725     }
 726 }(jQuery),
 727 function(a) {
 728     a.fn.dropdown = function(b, c) {
 729         var b = a.extend({
 730             className: "item",
 731             current: "hover",
 732             enterDelay: 10,
 733             leaveDelay: 300,
 734             onmouseleave: null
 735         }, b);
 736         a.each(this, function() {
 737             function d() {
 738                 function a(a, b) {
 739                     return (b.y - a.y) / (b.x - a.x)
 740                 }
 741                 var b = g.offset(),
 742                     c = {
 743                         x: b.left,
 744                         y: b.top
 745                     },
 746                     d = {
 747                         x: b.left + g.outerWidth(),
 748                         y: c.y
 749                     },
 750                     e = {
 751                         x: b.left,
 752                         y: b.top + g.outerHeight()
 753                     },
 754                     f = {
 755                         x: b.left + g.outerWidth(),
 756                         y: e.y
 757                     };
 758                 if (loc = i[i.length - 1], prevLoc = i[0], !loc) return 0;
 759                 if (prevLoc || (prevLoc = loc), prevLoc.x < b.left || prevLoc.x > f.x || prevLoc.y < b.top || prevLoc.y > f.y) return 0;
 760                 if (j && loc.x == j.x && loc.y == j.y) return 0;
 761                 var h = d,
 762                     k = f,
 763                     l = a(loc, h),
 764                     m = a(prevLoc, h),
 765                     n = a(loc, k),
 766                     o = a(prevLoc, k);
 767                 return m > l && n > o ? prevLoc.x - c.x < 25 ? 0 : (j = loc, 300) : (j = null, 0)
 768             }
 769             var e, f, g = a(this),
 770                 h = g.find("." + b.className),
 771                 i = [],
 772                 j = null,
 773                 k = 3,
 774                 l = !1;
 775             g.bind("mouseenter", function() {
 776                 clearTimeout(e)
 777             });
 778             var m = null,
 779                 n = null;
 780             g.bind("mouseleave", function() {
 781                 l && (e = setTimeout(function() {
 782                     h.removeClass(b.current)
 783                 }, b.leaveDelay)), b.onmouseleave && b.onmouseleave(), m = null
 784             }), h.bind("mouseenter", function() {
 785                 var e = a(this),
 786                     g = this,
 787                     i = function() {
 788                         m = jQuery.inArray(g, h), h.removeClass(b.current), e.addClass(b.current), l = !0, c && c(e)
 789                     };
 790                 f = setTimeout(function() {
 791                     0 == d(e) && (i(), clearTimeout(n))
 792                 }, b.enterDelay), n = setTimeout(function() {
 793                     m != jQuery.inArray(g, h) && i()
 794                 }, 700)
 795             }), h.bind("mouseleave", function() {
 796                 a(this), clearTimeout(f), clearTimeout(n)
 797             }), a(document).mousemove(function(a) {
 798                 i.push({
 799                     x: a.pageX,
 800                     y: a.pageY
 801                 }), i.length > k && i.shift()
 802             })
 803         })
 804     }
 805 }(jQuery),
 806 function(a) {
 807     a.fn.Jtab = function(b, c) {
 808         if (this.length) {
 809             "function" == typeof b && (c = b, b = {});
 810             var d = a.extend({
 811                     type: "static",
 812                     auto: !1,
 813                     event: "mouseover",
 814                     currClass: "curr",
 815                     source: "data-tag",
 816                     hookKey: "data-widget",
 817                     hookItemVal: "tab-item",
 818                     hookContentVal: "tab-content",
 819                     stay: 5e3,
 820                     delay: 100,
 821                     threshold: null,
 822                     mainTimer: null,
 823                     subTimer: null,
 824                     index: 0,
 825                     compatible: !1
 826                 }, b || {}),
 827                 e = a(this).find("*[" + d.hookKey + "=" + d.hookItemVal + "]"),
 828                 f = a(this).find("*[" + d.hookKey + "=" + d.hookContentVal + "]"),
 829                 g = d.source.toLowerCase().match(/http:\/\/|\d|\.aspx|\.ascx|\.asp|\.php|\.html\.htm|.shtml|.js/g);
 830             if (e.length != f.length) return !1;
 831             var h = function(a, b) {
 832                     d.subTimer = setTimeout(function() {
 833                         e.eq(d.index).removeClass(d.currClass), d.compatible && f.eq(d.index).hide(), b ? (d.index++, d.index == e.length && (d.index = 0)) : d.index = a, d.type = null != e.eq(d.index).attr(d.source) ? "dynamic" : "static", j()
 834                     }, d.delay)
 835                 },
 836                 i = function() {
 837                     d.mainTimer = setInterval(function() {
 838                         h(d.index, !0)
 839                     }, d.stay)
 840                 },
 841                 j = function() {
 842                     switch (e.eq(d.index).addClass(d.currClass), d.compatible && f.eq(d.index).show(), d.type) {
 843                         default:
 844                             case "static":
 845                             var a = "";
 846                         break;
 847                         case "dynamic":
 848                             var a = g ? d.source : e.eq(d.index).attr(d.source);
 849                             e.eq(d.index).removeAttr(d.source)
 850                     }
 851                     c && c(a, f.eq(d.index), d.index)
 852                 };
 853             e.each(function(b) {
 854                 a(this).bind(d.event, function() {
 855                     clearTimeout(d.subTimer), clearInterval(d.mainTimer), h(b, !1)
 856                 }).bind("mouseleave", function() {
 857                     d.auto && i()
 858                 })
 859             }), "dynamic" == d.type && h(d.index, !1), d.auto && i()
 860         }
 861     }
 862 }(jQuery),
 863 function(a) {
 864     a.fn.Jlazyload = function(b, c) {
 865         if (this.length) {
 866             var d, e, f = a.extend({
 867                     type: null,
 868                     offsetParent: null,
 869                     source: "data-lazyload",
 870                     placeholderImage: "http://misc.360buyimg.com/lib/img/e/blank.gif",
 871                     placeholderClass: "loading-style2",
 872                     threshold: 200
 873                 }, b || {}),
 874                 g = this,
 875                 h = function(a) {
 876                     for (var b = a.scrollLeft, c = a.scrollTop, d = a.offsetWidth, e = a.offsetHeight; a.offsetParent;) b += a.offsetLeft, c += a.offsetTop, a = a.offsetParent;
 877                     return {
 878                         left: b,
 879                         top: c,
 880                         width: d,
 881                         height: e
 882                     }
 883                 },
 884                 i = function() {
 885                     var a = document.documentElement,
 886                         b = document.body,
 887                         c = window.pageXOffset ? window.pageXOffset : a.scrollLeft || b.scrollLeft,
 888                         d = window.pageYOffset ? window.pageYOffset : a.scrollTop || b.scrollTop,
 889                         e = a.clientWidth,
 890                         f = a.clientHeight;
 891                     return {
 892                         left: c,
 893                         top: d,
 894                         width: e,
 895                         height: f
 896                     }
 897                 },
 898                 j = function(a, b) {
 899                     var c, d, e, g, h, i, j = f.threshold ? parseInt(f.threshold) : 0;
 900                     return c = a.left + a.width / 2, d = b.left + b.width / 2, e = a.top + a.height / 2, g = b.top + b.height / 2, h = (a.width + b.width) / 2, i = (a.height + b.height) / 2, Math.abs(c - d) < h + j && Math.abs(e - g) < i + j
 901                 },
 902                 k = function(a, b, d) {
 903                     f.placeholderImage && f.placeholderClass && d.attr("src", f.placeholderImage).addClass(f.placeholderClass), a && (d.attr("src", b).removeAttr(f.source), c && c(b, d))
 904                 },
 905                 l = function(b, d, e) {
 906                     if (b) {
 907                         var g = a("#" + d);
 908                         g.html(e.val()).removeAttr(f.source), e.remove(), c && c(d, e)
 909                     }
 910                 },
 911                 m = function(a, b, d) {
 912                     a && (d.removeAttr(f.source), c && c(b, d))
 913                 },
 914                 n = function() {
 915                     e = i(), g = g.filter(function() {
 916                         return a(this).attr(f.source)
 917                     }), a.each(g, function() {
 918                         var b = a(this).attr(f.source);
 919                         if (b) {
 920                             var c = f.offsetParent ? h(a(f.offsetParent).get(0)) : e,
 921                                 d = h(this),
 922                                 g = j(c, d);
 923                             switch (f.type) {
 924                                 case "image":
 925                                     k(g, b, a(this));
 926                                     break;
 927                                 case "textarea":
 928                                     l(g, b, a(this));
 929                                     break;
 930                                 case "module":
 931                                     m(g, b, a(this))
 932                             }
 933                         }
 934                     })
 935                 },
 936                 o = function() {
 937                     g.length > 0 && (clearTimeout(d), d = setTimeout(function() {
 938                         n()
 939                     }, 10))
 940                 };
 941             n(), f.offsetParent ? a(f.offsetParent).bind("scroll", function() {
 942                 o()
 943             }) : a(window).bind("scroll", function() {
 944                 o()
 945             }).bind("reset", function() {
 946                 o()
 947             })
 948         }
 949     }
 950 }(jQuery),
 951 function(a) {
 952     a.Jtimer = function(b, c) {
 953         var d = a.extend({
 954                 pids: null,
 955                 template: null,
 956                 reset: null,
 957                 mainPlaceholder: "timed",
 958                 subPlaceholder: "timer",
 959                 resetPlaceholder: "reset",
 960                 iconPlaceholder: "icon",
 961                 finishedClass: "",
 962                 timer: []
 963             }, b || {}),
 964             e = function(a) {
 965                 var b = a.split(" "),
 966                     c = b[0].split("-"),
 967                     d = b[1].split(":");
 968                 return new Date(c[0], c[1] - 1, c[2], d[0], d[1], d[2])
 969             },
 970             f = function(a) {
 971                 return String(a).length < 2 && (a = "0" + a), a
 972             },
 973             g = function(b, c) {
 974                 if (c != {} && c && c.start && c.end) {
 975                     var g, h, i, j = e(c.start),
 976                         k = e(c.server),
 977                         l = e(c.end),
 978                         m = (j - k) / 1e3,
 979                         n = (l - k) / 1e3,
 980                         o = "#" + d.mainPlaceholder + b,
 981                         p = "#" + d.subPlaceholder + c.qid,
 982                         q = "#" + d.resetPlaceholder + c.qid;
 983                     if (0 >= m) {
 984                         var r = d.template.process(c);
 985                         a(o).html(r)
 986                     }
 987                     d.timer[c.qid] = setInterval(function() {
 988                         return m > 0 ? (clearInterval(d.timer[c.qid]), void 0) : (n > 0 ? (g = Math.floor(n / 3600), h = Math.floor((n - 3600 * g) / 60), i = (n - 3600 * g) % 60, a(p).html("\u5269\u4f59" + f(g) + "\u5c0f\u65f6" + f(h) + "\u5206" + f(i) + "\u79d2"), n--) : (a(p).html("\u62a2\u8d2d\u7ed3\u675f\uff01"), d.iconPlaceholder && (iconElement = "#" + d.iconPlaceholder + c.qid, a(iconElement).attr("class", d.finishedClass).html("\u62a2\u5b8c")), d.reset && (a(p).append('\u5237\u65b0'), a(q).bind("click", function() {
 989                             a.each(d.timer, function() {
 990                                 clearInterval(this)
 991                             }), d.reset()
 992                         })), clearInterval(d.timer[c.qid])), void 0)
 993                     }, 1e3)
 994                 }
 995             },
 996             h = function(a, b) {
 997                 return e(a.end) - e(a.server) - (e(b.end) - e(b.server))
 998             };
 999         a.ajax({
1000             url: "http://qiang.jd.com/HomePageNewLimitBuy.ashx?callback=?",
1001             data: {
1002                 ids: d.pids
1003             },
1004             dataType: "jsonp",
1005             success: function(b) {
1006                 b && b.data && (b.data.sort(h), a.each(b.data, function(a) {
1007                     g(a + 1, b.data[a])
1008                 })), c && c()
1009             }
1010         })
1011     }
1012 }(jQuery),
1013 function(a) {
1014     a.fn.Jslider = function(b, c) {
1015         if (this.length) {
1016             "function" == typeof b && (c = b, b = {});
1017             var d = a.extend({
1018                     auto: !1,
1019                     reInit: !1,
1020                     data: [],
1021                     defaultIndex: 0,
1022                     slideWidth: 0,
1023                     slideHeight: 0,
1024                     slideDirection: 1,
1025                     speed: "normal",
1026                     stay: 5e3,
1027                     delay: 150,
1028                     maxAmount: null,
1029                     template: null,
1030                     showControls: !0
1031                 }, b || {}),
1032                 e = a(this),
1033                 f = null,
1034                 g = null,
1035                 h = null,
1036                 i = null,
1037                 j = null,
1038                 k = function() {
1039                     var a;
1040                     d.maxAmount && d.maxAmount < d.data.length && d.data.splice(d.maxAmount, d.data.length - d.maxAmount), "object" == typeof d.data && (d.data.length ? (a = {}, a.json = d.data) : a = d.data);
1041                     var b = d.template;
1042                     if (d.reInit) {
1043                         var i, j = b.controlsContent.process(a);
1044                         a.json = a.json.slice(1), i = b.itemsContent.process(a), e.find(".slide-items").eq(0).append(i), e.find(".slide-controls").eq(0).html(j)
1045                     } else {
1046                         var k = b.itemsWrap.replace("{innerHTML}", b.itemsContent) + b.controlsWrap.replace("{innerHTML}", b.controlsContent),
1047                             m = k.process(a);
1048                         e.html(m)
1049                     }
1050                     f = e.find(".slide-items"), g = e.find(".slide-controls"), h = g.find("span"), l(), n(), c && c(e)
1051                 },
1052                 l = function() {
1053                     h.bind("mouseover", function() {
1054                         var a = h.index(this);
1055                         a != d.defaultIndex && (clearTimeout(j), clearInterval(i), j = setTimeout(function() {
1056                             m(a)
1057                         }, d.delay))
1058                     }).bind("mouseleave", function() {
1059                         clearTimeout(j), clearInterval(i), n()
1060                     }), f.bind("mouseover", function() {
1061                         clearTimeout(j), clearInterval(i)
1062                     }).bind("mouseleave", function() {
1063                         n()
1064                     })
1065                 },
1066                 m = function(b) {
1067                     h.each(function(c) {
1068                         c == b ? a(this).addClass("curr") : a(this).removeClass("curr")
1069                     });
1070                     var c = 0,
1071                         e = 0;
1072                     if (3 == d.slideDirection) {
1073                         var g = f.children(),
1074                             i = g.eq(d.defaultIndex),
1075                             j = g.eq(b);
1076                         i.css({
1077                             zIndex: 0
1078                         }), j.css({
1079                             zIndex: 1
1080                         }), i.fadeOut("fast"), j.fadeIn("slow"), d.defaultIndex = b
1081                     } else 1 == d.slideDirection ? (f.css({
1082                         width: d.slideWidth * d.data.length
1083                     }), c = -d.slideWidth * b) : e = -d.slideHeight * b, f.animate({
1084                         top: e + "px",
1085                         left: c + "px"
1086                     }, d.speed, function() {
1087                         d.defaultIndex = b
1088                     })
1089                 },
1090                 n = function() {
1091                     d.auto && (i = setInterval(function() {
1092                         var a = d.defaultIndex;
1093                         a++, a == d.data.length && (a = 0), m(a)
1094                     }, d.stay))
1095                 };
1096             k()
1097         }
1098     }
1099 }(jQuery), jQuery.fn.pagination = function(a, b) {
1100         return b = jQuery.extend({
1101             items_per_page: 10,
1102             num_display_entries: 10,
1103             current_page: 0,
1104             num_edge_entries: 0,
1105             link_to: "#",
1106             prev_text: "Prev",
1107             next_text: "Next",
1108             ellipse_text: "...",
1109             prev_show_always: !0,
1110             next_show_always: !0,
1111             callback: function() {
1112                 return !1
1113             }
1114         }, b || {}), this.each(function() {
1115             function c() {
1116                 return Math.ceil(a / b.items_per_page)
1117             }
1118 
1119             function d() {
1120                 var a = Math.ceil(b.num_display_entries / 2),
1121                     d = c(),
1122                     e = d - b.num_display_entries,
1123                     f = g > a ? Math.max(Math.min(g - a, e), 0) : 0,
1124                     h = g > a ? Math.min(g + a, d) : Math.min(b.num_display_entries, d);
1125                 return [f, h]
1126             }
1127 
1128             function e(a, c) {
1129                 g = a, f();
1130                 var d = b.callback(a, h);
1131                 return d || (c.stopPropagation ? c.stopPropagation() : c.cancelBubble = !0), d
1132             }
1133 
1134             function f() {
1135                 h.empty();
1136                 var a = d(),
1137                     f = c();
1138                 1 == f && $(".Pagination").css({
1139                     display: "none"
1140                 });
1141                 var i = function(a) {
1142                         return function(b) {
1143                             return e(a, b)
1144                         }
1145                     },
1146                     j = function(a, c) {
1147                         if (a = 0 > a ? 0 : f > a ? a : f - 1, c = jQuery.extend({
1148                             text: a + 1,
1149                             classes: ""
1150                         }, c || {}), a == g) var d = $("" + c.text + "");
1151                         else var d = $("" + c.text + "").bind("click", i(a)).attr("href", b.link_to.replace(/__id__/, a));
1152                         c.classes && d.addClass(c.classes), h.append(d)
1153                     };
1154                 if (b.prev_text && (g > 0 || b.prev_show_always) && j(g - 1, {
1155                     text: b.prev_text,
1156                     classes: "prev"
1157                 }), a[0] > 0 && b.num_edge_entries > 0) {
1158                     for (var k = Math.min(b.num_edge_entries, a[0]), l = 0; k > l; l++) j(l);
1159                     b.num_edge_entries < a[0] && b.ellipse_text && jQuery("" + b.ellipse_text + "").appendTo(h)
1160                 }
1161                 for (var l = a[0]; l < a[1]; l++) j(l);
1162                 if (a[1] < f && b.num_edge_entries > 0) {
1163                     f - b.num_edge_entries > a[1] && b.ellipse_text && jQuery("" + b.ellipse_text + "").appendTo(h);
1164                     for (var m = Math.max(f - b.num_edge_entries, a[1]), l = m; f > l; l++) j(l)
1165                 }
1166                 b.next_text && (f - 1 > g || b.next_show_always) && j(g + 1, {
1167                     text: b.next_text,
1168                     classes: "next"
1169                 })
1170             }
1171             var g = b.current_page;
1172             a = !a || 0 > a ? 1 : a, b.items_per_page = !b.items_per_page || b.items_per_page < 0 ? 1 : b.items_per_page;
1173             var h = jQuery(this);
1174             this.selectPage = function(a) {
1175                 e(a)
1176             }, this.prevPage = function() {
1177                 return g > 0 ? (e(g - 1), !0) : !1
1178             }, this.nextPage = function() {
1179                 return g < c() - 1 ? (e(g + 1), !0) : !1
1180             }, f()
1181         })
1182     },
1183     function(a) {
1184         a.extend(a.browser, {
1185             client: function() {
1186                 return {
1187                     width: document.documentElement.clientWidth,
1188                     height: document.documentElement.clientHeight,
1189                     bodyWidth: document.body.clientWidth,
1190                     bodyHeight: document.body.clientHeight
1191                 }
1192             },
1193             scroll: function() {
1194                 var a = document.documentElement.scrollTop,
1195                     b = document.body.scrollTop,
1196                     c = document.documentElement.scrollLeft,
1197                     d = document.body.scrollLeft,
1198                     e = a ? a : b,
1199                     f = c ? c : d;
1200                 return {
1201                     width: document.documentElement.scrollWidth,
1202                     height: document.documentElement.scrollHeight,
1203                     bodyWidth: document.body.scrollWidth,
1204                     bodyHeight: document.body.scrollHeight,
1205                     left: f,
1206                     top: e
1207                 }
1208             },
1209             screen: function() {
1210                 return {
1211                     width: window.screen.width,
1212                     height: window.screen.height
1213                 }
1214             },
1215             isIE6: a.browser.msie && 6 == a.browser.version,
1216             isMinW: function(b) {
1217                 return Math.min(a.browser.client().bodyWidth, a.browser.client().width) <= b
1218             },
1219             isMinH: function(b) {
1220                 return a.browser.client().height <= b
1221             }
1222         })
1223     }(jQuery),
1224     function(a) {
1225         a.fn.jdPosition = function(b) {
1226             var c = a.extend({
1227                 mode: null
1228             }, b || {});
1229             switch (c.mode) {
1230                 default:
1231                     case "center":
1232                     var d = a(this).outerWidth(),
1233                     e = a(this).outerHeight(),
1234                     f = (a.browser.isMinW(d), a.browser.isMinH(e));
1235                 a(this).css({
1236                     left: a.browser.scroll().left + Math.max((a.browser.client().width - d) / 2, 0) + "px",
1237                     top: a.browser.isIE6 ? a.browser.scroll().top <= a.browser.client().bodyHeight - e ? a.browser.scroll().top + Math.max((a.browser.client().height - e) / 2, 0) + "px" : (a.browser.client().height - e) / 2 + "px" : f ? a.browser.scroll().top : a.browser.scroll().top + Math.max((a.browser.client().height - e) / 2, 0) + "px"
1238                 });
1239                 break;
1240                 case "auto":
1241                     break;
1242                 case "fixed":
1243             }
1244         }
1245     }(jQuery),
1246     function(a) {
1247         a.fn.jdThickBox = function(b, c) {
1248             "function" == typeof b && (c = b, b = {});
1249             var d, e = a.extend({
1250                     type: "text",
1251                     source: null,
1252                     width: null,
1253                     height: null,
1254                     title: null,
1255                     _frame: "",
1256                     _div: "",
1257                     _box: "",
1258                     _con: "",
1259                     _loading: "thickloading",
1260                     close: !1,
1261                     _close: "",
1262                     _fastClose: !1,
1263                     _close_val: "\xd7",
1264                     _titleOn: !0,
1265                     _title: "",
1266                     _autoReposi: !1,
1267                     _countdown: !1,
1268                     _thickPadding: 10,
1269                     _wrapBorder: 1
1270                 }, b || {}),
1271                 f = "function" != typeof this ? a(this) : null,
1272                 g = function() {
1273                     clearInterval(d), a(".thickframe").add(".thickdiv").remove(), a(".thickbox").empty().remove(), e._autoReposi && a(window).unbind("resize.jdThickBox").unbind("scroll.jdThickBox")
1274                 };
1275             if (e.close) return g(), !1;
1276             var h = function(a) {
1277                     return "" != a ? a.match(/\w+/) : ""
1278                 },
1279                 i = function(b) {
1280                     0 == a(".thickframe").length || 0 == a(".thickdiv").length ? (a("").appendTo(a(document.body)), a("
").appendTo(a(document.body))) : a(".thickframe").add(".thickdiv").show(), a("
").appendTo(a(document.body)), a(".thickwrap") && (a(".thickwrap").css("width", e.width + 2 * e._thickPadding), e._wrapBorder = 1), e._titleOn && k(b), a("
").appendTo(a(".thickwrap")), e._countdown && j(), a(".thickcon").addClass(e._loading), n(), l(), m(b), e._autoReposi && a(window).bind("resize.jdThickBox", n).bind("scroll.jdThickBox", n), e._fastClose && a(document.body).bind("click.jdThickBox", function(b) { 1281 b = b ? b : window.event; 1282 var c = b.srcElement ? b.srcElement : b.target; 1283 "thickdiv" == c.className && (a(this).unbind("click.jdThickBox"), g()) 1284 }) 1285 }, 1286 j = function() { 1287 var b = e._countdown; 1288 a("
" + b + "\u79d2\u540e\u81ea\u52a8\u5173\u95ed
").appendTo(a(".thickwrap")), d = setInterval(function() { 1289 b--, a("#jd-countdown").html(b), 0 == b && (b = e._countdown, g()) 1290 }, 1e3) 1291 }, 1292 k = function(b) { 1293 e.title = null == e.title && b ? b.attr("title") : e.title, a("
" + e.title + "
").appendTo(a(".thickwrap")) 1294 }, 1295 l = function() { 1296 null != e._close && (a("" + e._close_val + "").appendTo(a(".thickwrap")), a(".thickclose").one("click", function() { 1297 return g(), !1 1298 })) 1299 }, 1300 m = function(b) { 1301 switch (e.source = null == e.source ? b.attr("href") : e.source, e.type) { 1302 default: 1303 case "text": 1304 a(".thickcon").html(e.source), 1305 a(".thickcon").removeClass(e._loading), 1306 c && c(); 1307 break; 1308 case "html": 1309 a(e.source).clone().appendTo(a(".thickcon")).show(), a(".thickcon").removeClass(e._loading), c && c(); 1310 break; 1311 case "image": 1312 e._index = null == e._index ? f.index(b) : e._index, a(".thickcon").append(""), e.source = null, a(".thickcon").removeClass(e._loading), c && c(); 1313 break; 1314 case "ajax": 1315 case "json": 1316 c && c(e.source, a(".thickcon"), function() { 1317 a(".thickcon").removeClass(e._loading) 1318 }); 1319 break; 1320 case "iframe": 1321 a("").appendTo(a(".thickcon")), a(".thickcon").removeClass(e._loading), c && c() 1322 } 1323 }, 1324 n = function() { 1325 var b = 2 * e._thickPadding + parseInt(e.width); 1326 if (a(".thickcon").css({ 1327 width: e.width, 1328 height: e.height, 1329 paddingLeft: e._thickPadding, 1330 paddingRight: e._thickPadding 1331 }), setTimeout(function() { 1332 a(".thickbox").css({ 1333 width: b + 2 * e._wrapBorder, 1334 height: parseInt(e._titleOn ? a(".thicktitle").outerHeight() : 0) + parseInt(a(".thickcon").outerHeight()) + 2 * e._wrapBorder 1335 }) 1336 }, 100), a(".thickbox").jdPosition({ 1337 mode: "center" 1338 }), a.browser.isIE6) { 1339 var c = a(".thickbox").outerWidth(), 1340 d = a(".thickbox").outerHeight(), 1341 f = a.browser.isMinW(c); 1342 a.browser.isMinH(d), a(".thickframe").add(".thickdiv").css({ 1343 width: f ? c : "100%", 1344 height: Math.max(a.browser.client().height, a.browser.client().bodyHeight) + "px" 1345 }) 1346 } 1347 }; 1348 null != f ? f.click(function() { 1349 return i(a(this)), !1 1350 }) : i() 1351 }, a.jdThickBox = a.fn.jdThickBox 1352 }(jQuery), 1353 function(a) { 1354 a.fn.jdMarquee = function(b, c) { 1355 "function" == typeof b && (c = b, b = {}); 1356 var d, e = a.extend({ 1357 deriction: "up", 1358 speed: 10, 1359 auto: !1, 1360 width: null, 1361 height: null, 1362 step: 1, 1363 control: !1, 1364 _front: null, 1365 _back: null, 1366 _stop: null, 1367 _continue: null, 1368 wrapstyle: "", 1369 stay: 5e3, 1370 delay: 20, 1371 dom: "div>ul>li".split(">"), 1372 mainTimer: null, 1373 subTimer: null, 1374 tag: !1, 1375 convert: !1, 1376 btn: null, 1377 disabled: "disabled", 1378 pos: { 1379 ojbect: null, 1380 clone: null 1381 } 1382 }, b || {}), 1383 f = this.find(e.dom[1]), 1384 g = this.find(e.dom[2]); 1385 if ("up" == e.deriction || "down" == e.deriction) { 1386 var h = f.eq(0).outerHeight(), 1387 i = e.step * g.eq(0).outerHeight(); 1388 f.css({ 1389 width: e.width + "px", 1390 overflow: "hidden" 1391 }) 1392 } 1393 if ("left" == e.deriction || "right" == e.deriction) { 1394 var j = g.length * g.eq(0).outerWidth(); 1395 f.css({ 1396 width: j + "px", 1397 overflow: "hidden" 1398 }); 1399 var i = e.step * g.eq(0).outerWidth() 1400 } 1401 var k = function() { 1402 var a = "
"; 1403 switch (f.css({ 1404 position: "absolute", 1405 left: 0, 1406 top: 0 1407 }).wrap(a), e.pos.object = 0, d = f.clone(), f.after(d), e.deriction) { 1408 default: 1409 case "up": 1410 f.css({ 1411 marginLeft: 0, 1412 marginTop: 0 1413 }), 1414 d.css({ 1415 marginLeft: 0, 1416 marginTop: h + "px" 1417 }), 1418 e.pos.clone = h; 1419 break; 1420 case "down": 1421 f.css({ 1422 marginLeft: 0, 1423 marginTop: 0 1424 }), d.css({ 1425 marginLeft: 0, 1426 marginTop: -h + "px" 1427 }), e.pos.clone = -h; 1428 break; 1429 case "left": 1430 f.css({ 1431 marginTop: 0, 1432 marginLeft: 0 1433 }), d.css({ 1434 marginTop: 0, 1435 marginLeft: j + "px" 1436 }), e.pos.clone = j; 1437 break; 1438 case "right": 1439 f.css({ 1440 marginTop: 0, 1441 marginLeft: 0 1442 }), d.css({ 1443 marginTop: 0, 1444 marginLeft: -j + "px" 1445 }), e.pos.clone = -j 1446 } 1447 e.auto && (l(), f.hover(function() { 1448 n(e.mainTimer) 1449 }, function() { 1450 l() 1451 }), d.hover(function() { 1452 n(e.mainTimer) 1453 }, function() { 1454 l() 1455 })), c && c(), e.control && p() 1456 }, 1457 l = function(a) { 1458 n(e.mainTimer), e.stay = a ? a : e.stay, e.mainTimer = setInterval(function() { 1459 m() 1460 }, e.stay) 1461 }, 1462 m = function() { 1463 n(e.subTimer), e.subTimer = setInterval(function() { 1464 s() 1465 }, e.delay) 1466 }, 1467 n = function(a) { 1468 null != a && clearInterval(a) 1469 }, 1470 o = function(b) { 1471 b ? (a(e._front).unbind("click"), a(e._back).unbind("click"), a(e._stop).unbind("click"), a(e._continue).unbind("click")) : p() 1472 }, 1473 p = function() { 1474 null != e._front && a(e._front).click(function() { 1475 a(e._front).addClass(e.disabled), o(!0), n(e.mainTimer), e.convert = !0, e.btn = "front", m(), e.auto || (e.tag = !0), q() 1476 }), null != e._back && a(e._back).click(function() { 1477 a(e._back).addClass(e.disabled), o(!0), n(e.mainTimer), e.convert = !0, e.btn = "back", m(), e.auto || (e.tag = !0), q() 1478 }), null != e._stop && a(e._stop).click(function() { 1479 n(e.mainTimer) 1480 }), null != e._continue && a(e._continue).click(function() { 1481 l() 1482 }) 1483 }, 1484 q = function() { 1485 e.tag && e.convert && (e.convert = !1, "front" == e.btn && ("down" == e.deriction && (e.deriction = "up"), "right" == e.deriction && (e.deriction = "left")), "back" == e.btn && ("up" == e.deriction && (e.deriction = "down"), "left" == e.deriction && (e.deriction = "right")), e.auto ? l() : l(4 * e.delay)) 1486 }, 1487 r = function(a, b, c) { 1488 c ? (n(e.subTimer), e.pos.object = a, e.pos.clone = b, e.tag = !0) : e.tag = !1, e.tag && (e.convert ? q() : e.auto || n(e.mainTimer)), ("up" == e.deriction || "down" == e.deriction) && (f.css({ 1489 marginTop: a + "px" 1490 }), d.css({ 1491 marginTop: b + "px" 1492 })), ("left" == e.deriction || "right" == e.deriction) && (f.css({ 1493 marginLeft: a + "px" 1494 }), d.css({ 1495 marginLeft: b + "px" 1496 })) 1497 }, 1498 s = function() { 1499 var b = "up" == e.deriction || "down" == e.deriction ? parseInt(f.get(0).style.marginTop) : parseInt(f.get(0).style.marginLeft), 1500 c = "up" == e.deriction || "down" == e.deriction ? parseInt(d.get(0).style.marginTop) : parseInt(d.get(0).style.marginLeft), 1501 g = Math.max(Math.abs(b - e.pos.object), Math.abs(c - e.pos.clone)), 1502 k = Math.ceil((i - g) / e.speed); 1503 switch (e.deriction) { 1504 case "up": 1505 g == i ? (r(b, c, !0), a(e._front).removeClass(e.disabled), o(!1)) : (-h >= b && (b = c + h, e.pos.object = b), -h >= c && (c = b + h, e.pos.clone = c), r(b - k, c - k)); 1506 break; 1507 case "down": 1508 g == i ? (r(b, c, !0), a(e._back).removeClass(e.disabled), o(!1)) : (b >= h && (b = c - h, e.pos.object = b), c >= h && (c = b - h, e.pos.clone = c), r(b + k, c + k)); 1509 break; 1510 case "left": 1511 g == i ? (r(b, c, !0), a(e._front).removeClass(e.disabled), o(!1)) : (-j >= b && (b = c + j, e.pos.object = b), -j >= c && (c = b + j, e.pos.clone = c), r(b - k, c - k)); 1512 break; 1513 case "right": 1514 g == i ? (r(b, c, !0), a(e._back).removeClass(e.disabled), o(!1)) : (b >= j && (b = c - j, e.pos.object = b), c >= j && (c = b - j, e.pos.clone = c), r(b + k, c + k)) 1515 } 1516 }; 1517 ("up" == e.deriction || "down" == e.deriction) && h >= e.height && h >= e.step && k(), ("left" == e.deriction || "right" == e.deriction) && j >= e.width && j >= e.step && k() 1518 } 1519 }(jQuery), $.login = function(a) { 1520 a = $.extend({ 1521 loginService: "http://passport." + pageConfig.FN_getDomain() + "/loginservice.aspx?callback=?", 1522 loginMethod: "Login", 1523 loginUrl: "https://passport." + pageConfig.FN_getDomain() + "/new/login.aspx", 1524 returnUrl: location.href, 1525 automatic: !0, 1526 complete: null, 1527 modal: !1 1528 }, a || {}), "" != a.loginService && "" != a.loginMethod && $.getJSON(a.loginService, { 1529 method: a.loginMethod 1530 }, function(b) { 1531 null != b && (null != a.complete && a.complete(b.Identity), !b.Identity.IsAuthenticated && a.automatic && "" != a.loginUrl && (a.modal ? jdModelCallCenter.login() : location.href = a.loginUrl + "?ReturnUrl=" + escape(a.returnUrl))) 1532 }) 1533 }, 1534 function(a) { 1535 a.jdCalcul = function(b) { 1536 var c = null, 1537 b = b.join(","), 1538 d = "http://qiang.jd.com/HomePageNewLimitBuy.ashx?callback=?&ids=" + b, 1539 e = "http://item.jd.com/", 1540 f = function(b) { 1541 var c = a.extend({ 1542 contentid: "#limit", 1543 clockid: "#clock", 1544 rankid: "#rank", 1545 limitid: "#limitbuy" 1546 }, b || {}); 1547 if (!(b == {} || "" == b || null == c.start || "" == c.start || null == c.end || "" == c.end || c.pros.length < 1)) { 1548 c.start = g(c.start), c.start = a.browser.mozzia ? Date.parse(c.start) : c.start, c.server = g(c.server), c.server = a.browser.mozzia ? Date.parse(c.server) : c.server, c.end = g(c.end), c.end = a.browser.mozzia ? Date.parse(c.end) : c.end, c.contentid = a(c.contentid + c.qid), c.clockid = a(c.clockid + c.qid), c.rankid = a(c.rankid + c.qid), c.limitid = a(c.limitid + c.qid); 1549 var d, f, h, i, j = (c.start - c.server) / 1e3, 1550 k = (c.end - c.server) / 1e3, 1551 l = function() { 1552 var b = '
  • {2}
    \u62a2\u8d2d\u4ef7\uff1a{4}{5}
  • ', 1553 d = "
      "; 1554 a.each(c.pros, function(a) { 1555 var f = c.pros[a].id, 1556 g = c.pros[a].tp, 1557 h = "
      ", 1558 i = unescape(c.pros[a].mc), 1559 j = c.pros[a].qg, 1560 k = "(" + c.pros[a].zk + "\u6298)"; 1561 d += b.replace(/\{0\}/g, f).replace("{1}", g).replace("{2}", h).replace("{3}", i).replace("{4}", j).replace("{5}", k).replace(/\{6\}/g, e) 1562 }), d += "
    ", c.contentid.html(d) 1563 }, 1564 m = function() { 1565 j > 0 || (k > 0 ? (d = Math.floor(k / 3600), f = Math.floor((k - 3600 * d) / 60), h = (k - 3600 * d) % 60, c.clockid.html("\u5269\u4f59" + d + "\u5c0f\u65f6" + f + "\u5206" + h + "\u79d2"), k--) : (c.clockid.html("\u62a2\u8d2d\u7ed3\u675f"), clearInterval(i), c.limitid.hide(), c.rankid.length > 0 && c.rankid.show())) 1566 }; 1567 0 >= j && k > 0 && (l(), c.rankid.length > 0 && c.rankid.hide(), c.limitid.show()), m(), i = setInterval(function() { 1568 m() 1569 }, 1e3) 1570 } 1571 }, 1572 g = function(a) { 1573 var b = a.split(" "), 1574 c = b[0].split("-"), 1575 d = b[1].split(":"); 1576 return new Date(c[0], c[1] - 1, c[2], d[0], d[1], d[2]) 1577 }; 1578 a.ajax({ 1579 url: d, 1580 dataType: "jsonp", 1581 success: function(b) { 1582 b && (c = b.data, a.each(c, function(a) { 1583 f(c[a]) 1584 })) 1585 } 1586 }) 1587 } 1588 }(jQuery); 1589 var jdRecent = { 1590 element: $("#recent ul"), 1591 jsurl: "http://www.jd.com/lishiset.aspx?callback=jdRecent.setData&id=", 1592 cookiename: "_recent", 1593 list: $.cookie("_recent"), 1594 url: location.href, 1595 init: function() { 1596 var a = this.url.match(/\/(\d{6}).html/), 1597 b = null != a && -1 != a[0].indexOf("html") ? a[1] : ""; 1598 if (this.list && null != this.list && "" != this.list) "" == b || -1 != this.list.indexOf(b) ? this.list = this.list : (this.list.split(".").length >= 10 && (this.list = this.list.replace(/.\d+$/, "")), this.list = b + "." + this.list); 1599 else { 1600 if ("" == b) return this.getData(0); 1601 this.list = b 1602 } 1603 $.cookie(this.cookiename, this.list, { 1604 expires: 7, 1605 path: "/", 1606 domain: "jd.com", 1607 secure: !1 1608 }), this.getData(this.list) 1609 }, 1610 clear: function() { 1611 $.cookie(this.cookiename, "", { 1612 expires: 7, 1613 path: "/", 1614 domain: "jd.com", 1615 secure: !1 1616 }) 1617 }, 1618 getData: function(a) { 1619 if (0 == a) return this.element.html("
  • \u6682\u65e0\u8bb0\u5f55!
  • "), void 0; 1620 var b = a.split("."); 1621 for (i in b) 0 == i && this.element.empty(), $.getJSONP(this.jsurl + b[i], this.setData) 1622 }, 1623 setData: function(a) { 1624 this.element.append("
  • ") 1625 } 1626 }; 1627 $("#clearRec").click(function() { 1628 jdRecent.clear(), jdRecent.getData(0) 1629 }), mlazyload({ 1630 defObj: "#recent", 1631 defHeight: 50, 1632 fn: function() { 1633 1 == jdRecent.element.length && jdRecent.init() 1634 } 1635 }); 1636 var jdModelCallCenter = { 1637 settings: { 1638 clstag1: 0, 1639 clstag2: 0 1640 }, 1641 tbClose: function() { 1642 0 != $(".thickbox").length && jdThickBoxclose() 1643 }, 1644 login: function() { 1645 this.tbClose(); 1646 var a = this, 1647 b = navigator.userAgent.toLowerCase(), 1648 c = "ucweb" == b.match(/ucweb/i) || "rv:1.2.3.4" == b.match(/rv:1.2.3.4/i); 1649 return c ? (location.href = "https://passport." + pageConfig.FN_getDomain() + "/new/login.aspx?ReturnUrl=" + escape(location.href), void 0) : (setTimeout(function() { 1650 $.jdThickBox({ 1651 type: "iframe", 1652 title: "\u60a8\u5c1a\u672a\u767b\u5f55", 1653 source: "http://passport.jd.com/uc/popupLogin2013?clstag1=" + a.settings.clstag1 + "&clstag2=" + a.settings.clstag2 + "&r=" + Math.random(), 1654 width: 390, 1655 height: 450, 1656 _title: "thicktitler", 1657 _close: "thickcloser", 1658 _con: "thickconr" 1659 }) 1660 }, 20), void 0) 1661 }, 1662 regist: function() { 1663 var a = this; 1664 this.tbClose(), setTimeout(function() { 1665 $.jdThickBox({ 1666 type: "iframe", 1667 title: "\u60a8\u5c1a\u672a\u767b\u5f55", 1668 source: "http://reg.jd.com/reg/popupPerson?clstag1=" + a.settings.clstag1 + "&clstag2=" + a.settings.clstag2 + "&r=" + Math.random(), 1669 width: 390, 1670 height: 450, 1671 _title: "thicktitler", 1672 _close: "thickcloser", 1673 _con: "thickconr" 1674 }) 1675 }, 20) 1676 }, 1677 init: function() { 1678 var a = this; 1679 $.ajax({ 1680 url: ("https:" == document.location.protocol ? "https://" : "http://") + "passport." + pageConfig.FN_getDomain() + "/new/helloService.ashx?m=ls&sso=0", 1681 dataType: "jsonp", 1682 success: function(b) { 1683 a.tbClose(), b && b.info && $("#loginbar").html(b.info), a.settings.fn() 1684 } 1685 }) 1686 } 1687 }; 1688 $.extend(jdModelCallCenter, { 1689 autoLocation: function(a) { 1690 $.login({ 1691 modal: !0, 1692 complete: function(b) { 1693 null != b && null != b.IsAuthenticated && b.IsAuthenticated && (window.location = a) 1694 } 1695 }) 1696 } 1697 }), $.extend(jdModelCallCenter, { 1698 doAttention: function(a) { 1699 var b = "http://t.jd.com/product/followProduct.action?productId=" + a; 1700 $.login({ 1701 modal: !0, 1702 complete: function(c) { 1703 if (null != c && null != c.IsAuthenticated && c.IsAuthenticated) { 1704 var d = 510, 1705 e = 440; 1706 $.jdThickBox({ 1707 type: "iframe", 1708 source: b + "&t=" + Math.random(), 1709 width: d, 1710 height: e, 1711 title: "\u63d0\u793a", 1712 _box: "attboxr", 1713 _con: "attconr", 1714 _countdown: !1 1715 }, function() { 1716 var b = window._mvq = window._mvq || []; 1717 b.push(["$setGeneral", "concern", "", "", ""]), b.push(["$addItem", "", a, "", "", ""]), b.push(["$logData"]) 1718 }) 1719 } 1720 } 1721 }) 1722 } 1723 }), $(".btn-coll").livequery("click", function() { 1724 var a = $(this), 1725 b = parseInt(a.attr("id").replace("coll", "")); 1726 $.extend(jdModelCallCenter.settings, { 1727 clstag1: "login|keycount|5|3", 1728 clstag2: "login|keycount|5|4", 1729 id: b, 1730 fn: function() { 1731 jdModelCallCenter.doAttention(this.id) 1732 } 1733 }), jdModelCallCenter.settings.fn() 1734 }), "undefined" != typeof pageConfig && (pageConfig.isHome = function() { 1735 return pageConfig.navId && "home" == pageConfig.navId && location.href.indexOf("www.jd.com") >= 0 1736 }()), $.bigiframe = function(a, b, c) { 1737 if (a && $.browser.msie && 6 == $.browser.version) { 1738 if ("undefined" == typeof b) var b = a.outerWidth(); 1739 if ("undefined" == typeof c) var c = a.outerHeight(); 1740 var d = '', 2073 TPL_NoGoods: '
    \u8d2d\u7269\u8f66\u4e2d\u8fd8\u6ca1\u6709\u5546\u54c1\uff0c\u8d76\u7d27\u9009\u8d2d\u5427\uff01
    ', 2074 TPL_List: { 2075 wrap: '

    \u6700\u65b0\u52a0\u5165\u7684\u5546\u54c1

    \u5171${Num}\u4ef6\u5546\u54c1\u3000\u5171\u8ba1\uffe5 ${TotalPromotionPrice.toFixed(2)}
    \u53bb\u8d2d\u7269\u8f66\u7ed3\u7b97
    ', 2076 sigle: '
      {for list in TheSkus}
    • \uffe5${list.PromotionPrice.toFixed(2)}\xd7${list.Num}
      {if parseInt(list.FanPrice)>0} \u8fd4\u73b0\uff1a\uffe5${list.FanPrice}
      {/if} {if parseInt(list.Score)>0} \u9001\u4eac\u8c46\uff1a${list.Score}
      {/if} \u5220\u9664
      {for jq in list.CouponAD}
      [\u8d60\u5238] \u8d60\u9001${jq.Jing}\u4eac\u5238 ${jq.LimitAd}
      {/for}
    • {/for}
    ', 2077 gift: '', 2078 suit: '{for suit in TheSuit}
    • [\u5957\u88c5] ${suit.Name}
      \u5c0f\u8ba1\uff1a\uffe5${(suit.PromotionPrice*suit.Num).toFixed(2)}
    • {for list in suit.Skus}
    • \uffe5${list.PromotionPrice.toFixed(2)}\xd7${list.Num}
      {if parseInt(list.FanPrice)>0} \u8fd4\u73b0\uff1a\uffe5${list.FanPrice}
      {/if} {if parseInt(list.Score)>0} \u9001\u4eac\u8c46\uff1a${list.Score}
      {/if} \u5220\u9664
      {for gift in list.Gifts} {/for} {for jq in list.CouponAD}
      [\u8d60\u5238] \u8d60\u9001${jq.Jing}\u5143\u4eac\u5238 ${jq.LimitAd}
      {/for}
    • {/for}
    {/for}', 2079 mj: '{for mj in ManJian}
    • \u6ee1\u51cf{if mj.ManFlag} \u5df2\u8d2d\u6ee1{if mj.ManNum>0}${mj.ManNum}\u4ef6{else}${mj.ManPrice}\u5143{/if}\uff0c\u5df2\u51cf${mj.JianPrice}\u5143{else}\u8d2d\u6ee1{if mj.ManNum>0}${mj.ManNum}\u4ef6{else}${mj.ManPrice}\u5143{/if}\uff0c\u5373\u53ef\u4eab\u53d7\u6ee1\u51cf\u4f18\u60e0{/if}
      \u5c0f\u8ba1\uff1a\uffe5${(mj.PromotionPrice*mj.Num).toFixed(2)}
    • {for list in mj.Skus}
    • \uffe5${list.PromotionPrice.toFixed(2)}\xd7${list.Num}
      {if parseInt(list.FanPrice)>0} \u8fd4\u73b0\uff1a\uffe5${list.FanPrice}
      {/if} {if parseInt(list.Score)>0} \u9001\u4eac\u8c46\uff1a${list.Score}
      {/if} \u5220\u9664
      {for gift in list.Gifts} {/for} {for jq in list.CouponAD}
      [\u8d60\u5238] \u8d60\u9001${jq.Jing}\u5143\u4eac\u5238 ${jq.LimitAd}
      {/for}
    • {/for}
    {/for}', 2080 mz: '{for mz in ManZeng}
    • \u6ee1\u8d60 {if mz.ManFlag} \u5df2\u8d2d\u6ee1${mz.ManPrice}\u5143\uff0c\u60a8{if mz.ManGifts.length>0}\u5df2{else}\u53ef{/if}\u9886\u8d60\u54c1 {else} \u8d2d\u6ee1${mz.ManPrice}\u5143\uff0c\u5373\u53ef\u9886\u53d6\u8d60\u54c1 {/if}
      \u5c0f\u8ba1\uff1a\uffe5${(mz.PromotionPrice*mz.Num).toFixed(2)}
    • {for gift in mz.ManGifts}
    • [\u8d60\u54c1]${gift.Name}\xd7${gift.Num}
    • {/for} {for list in mz.Skus}
    • \uffe5${list.PromotionPrice.toFixed(2)}\xd7${list.Num}
      {if parseInt(list.FanPrice)>0} \u8fd4\u73b0\uff1a\uffe5${list.FanPrice}
      {/if} {if parseInt(list.Score)>0} \u9001\u4eac\u8c46\uff1a${list.Score}
      {/if} \u5220\u9664
      {for gift in list.Gifts} {/for} {for jq in list.CouponAD}
      [\u8d60\u5238] \u8d60\u9001${jq.Jing}\u5143\u4eac\u5238 ${jq.LimitAd}
      {/for}
    • {/for}
    {/for}' 2081 }, 2082 FN_BindEvents: function() { 2083 var a = this; 2084 $("#settleup-content .delete").bind("click", function() { 2085 var b = $(this).attr("data-id").split("|"), 2086 c = $(this).attr("data-type"), 2087 d = { 2088 method: c, 2089 cartId: b[0] 2090 }; 2091 b && (b.length > 1 && b[1] && (d.targetId = b[1]), $.ajax({ 2092 url: MCART.URL_Serv, 2093 data: d, 2094 dataType: "jsonp", 2095 success: function(b) { 2096 b.Result && a.FN_Refresh() 2097 } 2098 })) 2099 }) 2100 }, 2101 FN_Refresh: function() { 2102 var a = document.getElementById("settleup") ? $("#settleup dl") : $("#settleup-2013 dl"), 2103 b = a.find("dd").eq(0), 2104 c = function(a) { 2105 var c = a.Cart, 2106 d = c.TheSkus.length + c.TheSuit.length + c.TheGifts.length + c.ManJian.length + c.ManZeng.length, 2107 e = MCART.TPL_List.sigle.process(a.Cart), 2108 f = MCART.TPL_List.gift.process(a.Cart), 2109 g = MCART.TPL_List.suit.process(a.Cart), 2110 h = MCART.TPL_List.mz.process(a.Cart), 2111 i = MCART.TPL_List.mj.process(a.Cart); 2112 if (d > 0 ? (b.html(MCART.TPL_List.wrap.process(a.Cart)), b.find("#settleup-content .smc").html(e + f + g + i + h), $("#settleup-url").attr("href", "http://cart.jd.com/cart/cart.html?r=" + +new Date)) : b.html(MCART.TPL_NoGoods), $.browser.msie && 6 == $.browser.version) { 2113 var j = $("#settleup-content"); 2114 j.before(MCART.TPL_Iframe); 2115 var k = $("#settleup-iframe"); 2116 k.height(j.height()) 2117 } 2118 MCART.FN_BindEvents() 2119 }; 2120 $.ajax({ 2121 url: MCART.URL_Serv, 2122 data: { 2123 method: "GetCart" 2124 }, 2125 dataType: "jsonp", 2126 success: function(a) { 2127 c(a) 2128 } 2129 }), MCART.DATA_Amount = readCookie(MCART.DATA_Cookie), null != MCART.DATA_Amount && $("#shopping-amount").html(MCART.DATA_Amount).parent().show() 2130 } 2131 }, 2132 NotifyPop = { 2133 _saleNotify: "http://skunotify." + pageConfig.FN_getDomain() + "/pricenotify.html?", 2134 _stockNotify: "http://skunotify." + pageConfig.FN_getDomain() + "/storenotify.html?", 2135 init: function(a) { 2136 var b, c = this, 2137 d = this.serializeUrl(location.href), 2138 e = /from=weibo/.test(location.href) ? location.search.replace(/\?/, "") : ""; 2139 /from=weibo/.test(location.href) && (b = d.param.type, this.setThickBox(b, e)), a.livequery("click", function() { 2140 var a = ($(this).attr("id"), $(this).attr("data-type") || 2); 2141 return c.sku = $(this).attr("data-sku"), c.checkLogin(function(b) { 2142 b.IsAuthenticated ? (c._userPin = b.Name, c.setThickBox(a, e)) : (jdModelCallCenter.settings.fn = function() { 2143 c.checkLogin(function(b) { 2144 b.IsAuthenticated && (c._userPin = b.Name, c.setThickBox(a, e)) 2145 }) 2146 }, jdModelCallCenter.login()) 2147 }), !1 2148 }).attr("href", "#none").removeAttr("target") 2149 }, 2150 serializeUrl: function(a) { 2151 var b, c, d, e, f = a.indexOf("?"), 2152 g = a.substr(0, f), 2153 h = a.substr(f + 1), 2154 i = h.split("&"), 2155 j = i.length, 2156 k = {}; 2157 for (b = 0; j > b; b++) c = i[b].split("="), d = c[0], e = c[1], k[d] = e; 2158 return { 2159 url: g, 2160 param: k 2161 } 2162 }, 2163 checkLogin: function(a) { 2164 "function" == typeof a && $.getJSON("http://passport." + pageConfig.FN_getDomain() + "/loginservice.aspx?method=Login&callback=?", function(b) { 2165 b.Identity && a(b.Identity) 2166 }) 2167 }, 2168 setThickBox: function(a, b) { 2169 var c, d, e, f = { 2170 skuId: this.sku, 2171 pin: this._userPin, 2172 webSite: 1, 2173 origin: 1, 2174 source: 1 2175 }, 2176 g = this.serializeUrl(location.href); 2177 /blogPin/.test(location.href) && (f.blogPin = g.param.blogPin), 1 == a && (c = "\u964d\u4ef7\u901a\u77e5", d = this._saleNotify, e = 250), 2 == a && (c = "\u5230\u8d27\u901a\u77e5", d = this._stockNotify, e = 210, f.storeAddressId = readCookie("ipLoc-djd") || "0-0-0"), d += b ? b : $.param(f), $.jdThickBox({ 2178 type: "iframe", 2179 source: decodeURIComponent(d) + "&nocache=" + +new Date, 2180 width: 500, 2181 height: e, 2182 title: c, 2183 _box: "notify_box", 2184 _con: "notify_con", 2185 _title: "notify_title" 2186 }) 2187 } 2188 }; 2189 ! function() { 2190 pageConfig.FN_ImgError(document), $("img[data-lazyload]").Jlazyload({ 2191 type: "image", 2192 placeholderClass: "err-product" 2193 }), category.FN_Init(), document.getElementById("shortcut") ? $("#shortcut .menu").Jdropdown({ 2194 delay: 50 2195 }) : ($("#biz-service").Jdropdown({ 2196 delay: 50 2197 }, function() { 2198 $.ajax({ 2199 url: "http://www.jd.com/hotwords.aspx?position=new-index-002", 2200 dataType: "script", 2201 scriptCharset: "gb2312", 2202 cache: !0 2203 }) 2204 }), $("#site-nav").Jdropdown({ 2205 delay: 50 2206 }, function() { 2207 $.ajax({ 2208 url: "http://www.jd.com/hotwords.aspx?position=new-index-003", 2209 dataType: "script", 2210 scriptCharset: "gb2312", 2211 cache: !0 2212 }) 2213 })), document.getElementById("navitems") ? $("#navitems li").Jdropdown() : $("#navitems-2013 li").Jdropdown(), $.ajax({ 2214 url: ("https:" == document.location.protocol ? "https://" : "http://") + "passport." + pageConfig.FN_getDomain() + "/new/helloService.ashx?m=ls", 2215 dataType: "jsonp", 2216 scriptCharset: "gb2312", 2217 success: function(a) { 2218 a && a.info && $("#loginbar").html(a.info), a && a.sso && $.each(a.sso, function() { 2219 $.getJSON(this) 2220 }) 2221 } 2222 }), document.getElementById("settleup") ? (null != MCART.DATA_Amount && ($("#settleup s").eq(0).addClass("shopping"), $("#shopping-amount").html(MCART.DATA_Amount)), $("#settleup dl").Jdropdown({ 2223 delay: 200 2224 }, function() { 2225 MCART.FN_Refresh(), $("#settleup-url").attr("href", "http://cart.jd.com/cart/cart.html?r=" + +new Date) 2226 })) : (null != MCART.DATA_Amount && $("#shopping-amount").html(MCART.DATA_Amount), $("#settleup-2013 dl").Jdropdown({ 2227 delay: 200 2228 }, function() { 2229 MCART.FN_Refresh(), $("#settleup-url").attr("href", "http://cart.jd.com/cart/cart.html?r=" + +new Date) 2230 })); 2231 var a = document.getElementById("my360buy") ? $("#my360buy") : $("#my360buy-2013"); 2232 a.find("dl").Jdropdown({ 2233 delay: 100 2234 }, function(a) { 2235 a.attr("load") || $.login({ 2236 automatic: !1, 2237 complete: function(b) { 2238 if (b) { 2239 var c = a.find("dd").eq(0), 2240 d = "", 2241 e = readCookie(UC.DATA_Cookie); 2242 b.IsAuthenticated ? (d += UC.TPL_Regist.process(b), d += UC.TPL_OList.placeholder, d += UC.TPL_UList) : (d += UC.TPL_UnRegist, d += UC.TPL_UList), e && (d += UC.TPL_VList.placeholder), c.html(d), a.attr("load", "1"), setTimeout(function() { 2243 a.removeAttr("load") 2244 }, 6e4), /\[\{/.test(e) ? UC.FN_InitVList(e) : UC.FN_InitNewVList(e), UC.FN_InitOList() 2245 } 2246 } 2247 }) 2248 }), document.onkeyup = function(a) { 2249 var b = document.activeElement.tagName.toLowerCase(); 2250 if ("input" != b && "textarea" != b) { 2251 var a = a ? a : window.event, 2252 c = a.keyCode || a.which; 2253 switch (c) { 2254 case 68: 2255 window.pageConfig.clientViewTop || (window.pageConfig.clientViewTop = 0), window.pageConfig.clientViewTop += document.documentElement.clientHeight, window.scrollTo(0, pageConfig.clientViewTop); 2256 break; 2257 case 83: 2258 window.scrollTo(0, 0), window.pageConfig.clientViewTop = 0, document.getElementById("key").focus(); 2259 break; 2260 case 84: 2261 window.scrollTo(0, 0), window.pageConfig.clientViewTop = 0 2262 } 2263 } 2264 } 2265 }(); 2266 var $o = function() { 2267 function a() { 2268 this.length = 0, this.index = -1, this.iLastModified = 0, this.lastKeyword = !1 2269 } 2270 var b = {}; 2271 b.replace = function(a, b) { 2272 return a.replace(/#{(.*?)}/g, function() { 2273 var a = arguments[1]; 2274 return "undefined" != typeof b[a] ? b[a] : arguments[0] 2275 }) 2276 }, String.prototype.isEmpty = function() { 2277 return 0 == this.length 2278 }; 2279 var c = '\u5220\u9664', 2280 d = "\u641c\u7d22\u5386\u53f2", 2281 e = '
  • #{keyword}
    ' + d + "
  • ", 2282 f = '
  • #{keyword}
    \u7ea6#{amount}\u4e2a\u5546\u54c1
  • ', 2283 g = '
    \u5728#{cname}\u5206\u7c7b\u4e2d\u641c\u7d22
    \u7ea6#{amount}\u4e2a\u5546\u54c1
    #{categorys}', 2284 h = '
  • #{keyword}
    \u7ea6#{amount}\u4e2a\u5546\u54c1
    #{categorys}
  • ', 2285 i = "http://dd.search.jd.com/?key=#{keyword}", 2286 j = "#FFDFC6", 2287 k = "#FFF", 2288 l = $("#key"), 2289 m = $("#shelper"); 2290 a.prototype.init = function() { 2291 this.length = 0, this.index = -1, this.click = !1 2292 }, a.prototype.hideTip = function() { 2293 this.init(), this.lastKeyword = !1, m.html("").hide() 2294 }, a.prototype.clickItem = function(a) { 2295 var b = a.getAttribute("cid"); 2296 search.cid = null != b && "" != b ? b : null; 2297 var c = a.getAttribute("cLevel"); 2298 search.cLevel = null != c && "" != c ? c : null; 2299 var d = a.getAttribute("ev_val"); 2300 search.ev_val = null == d || $.trim(d).isEmpty() ? null : d; 2301 var e = a.getAttribute("title"); 2302 null == e || $.trim(e).isEmpty() || l.val(e), search.additinal = "&suggest=" + a.getAttribute("suggest-pos"), this.click = a.id.substr(2) - m.find("li[history='1']").length, search("key") 2303 }, a.prototype.mouseenter = function(a) { 2304 var a = $(a); 2305 a.attr("history") && a.find(".search-count").html(c), a.css("background", j); 2306 var b = a.attr("id").split("_"), 2307 e = parseInt(b[1], 10); 2308 if (e != this.index) { 2309 if (this.index > -1) { 2310 var f = $("#d_" + this.index); 2311 f.css("background", k), f.attr("history") && f.find(".search-count").html(d) 2312 } 2313 this.index = e 2314 } 2315 }, a.prototype.mouseleave = function(a) { 2316 a.css("background", k), a.attr("history") && a.find(".search-count").html(d) 2317 }, a.prototype.selectItemNode = function(a) { 2318 var b = this, 2319 e = $("#d_" + b.index + ":visible"); 2320 e.css("background-color", k), e.attr("history") && e.find(".search-count").html(d), -1 == b.index && -1 == a && (a = 0), b.index = (b.length + b.index + a) % b.length; 2321 var f = $("#d_" + b.index); 2322 if (f.length > 0) { 2323 f.attr("history") && f.find(".search-count").html(c), f.css("background-color", j); 2324 var g = f.attr("title"); 2325 null == g || $.trim(g).isEmpty() || l.val(g); 2326 var h = f.attr("cid"); 2327 search.cid = null != h && "" != h ? h : null; 2328 var i = f.attr("cLevel"); 2329 search.cLevel = null != i && "" != i ? i : null, search.ev_val = null, search.additinal = "&suggest=" + f.attr("suggest-pos"), b.click = b.index - m.find("li[history='1']").length 2330 } 2331 }, a.prototype.input = function() { 2332 var a = this; 2333 a.timeoutId && clearTimeout(a.timeoutId), a.timeoutId = setTimeout(function() { 2334 var c = $.trim(l.val()); 2335 if (c === a.lastKeyword || !(c || readCookie("pin") || readCookie("_tp"))) return !1; 2336 a.lastKeyword = c; 2337 var d = b.replace(i, { 2338 keyword: encodeURIComponent(c) 2339 }); 2340 $.ajax({ 2341 url: d, 2342 dataType: "jsonp", 2343 scriptCharset: "utf-8", 2344 jsonp: "callback", 2345 success: function(b) { 2346 return function(c) { 2347 a.iLastModified > b || (a.iLastModified = b, a.onloadItems(c)) 2348 } 2349 }((new Date).getTime()) 2350 }) 2351 }, 150) 2352 }, a.prototype.keydown_up = function(a) { 2353 var b = this, 2354 c = a || window.event; 2355 0 == l.length && (l = $("#key")), 0 == m.length && (m = $("tie")); 2356 var d = c.keyCode; 2357 switch (d) { 2358 case 38: 2359 b.selectItemNode(-1); 2360 break; 2361 case 40: 2362 b.selectItemNode(1); 2363 break; 2364 case 27: 2365 b.hideTip(); 2366 break; 2367 case 37: 2368 break; 2369 case 39: 2370 break; 2371 default: 2372 $.browser.mozilla || b.input() 2373 } 2374 }, a.prototype.onloadItems = function(a) { 2375 if (0 == a.length) return this.hideTip(), void 0; 2376 var c = this; 2377 c.init(); 2378 var d = "", 2379 i = 0; 2380 window.pageConfig && window.pageConfig.searchType && (i = window.pageConfig.searchType); 2381 for (var j = 0, k = "", n = !1, o = 0, p = $.trim(l.val()), q = 0, r = a.length; r > q; q++) { 2382 var s = a[q]; 2383 if (s) { 2384 var t = $.trim(s.keyword), 2385 u = t.toLowerCase().indexOf(p.toLowerCase()), 2386 v = t; 2387 if (0 == u && (v = p + "" + t.substring(u + p.length) + ""), "string" != typeof s.cid || $.trim(s.cid).isEmpty()) { 2388 var w = ""; 2389 k += 0 == s.amount ? b.replace(e, { 2390 id: o, 2391 title: s.keyword, 2392 keyword: v, 2393 amount: s.amount, 2394 suggest_pos: j 2395 }) : b.replace(f, { 2396 id: o, 2397 title: s.keyword, 2398 keyword: v, 2399 amount: s.amount, 2400 suggest_pos: j, 2401 style: w 2402 }), o++, j++ 2403 } else { 2404 if (0 == n) { 2405 n = !0; 2406 var w = 'style="visibility:hidden"', 2407 x = 0; 2408 s.oamount && s.oamount > 0 && (x = s.oamount, w = ""), k += b.replace(h, { 2409 id: o, 2410 title: s.keyword, 2411 keyword: v, 2412 amount: x, 2413 suggest_pos: j, 2414 style: w 2415 }), o++, j++ 2416 } 2417 if ("string" == typeof s.cname && $.trim(s.cname).isEmpty()) continue; 2418 var y = s.level; 2419 if (!y) continue; 2420 if (0 == i) { 2421 if ("string" == typeof y && /^[1-8]4$/.test(y)) continue 2422 } else if (5 == i) { 2423 if ("string" == typeof y && !/^[5-8]2$/.test(y)) continue 2424 } else if (1 == i || 2 == i || 3 == i || 4 == i) continue; 2425 var z = "item1", 2426 A = b.replace(g, { 2427 id: o, 2428 title: s.keyword, 2429 cid: s.cid, 2430 cLevel: s.level, 2431 className: z, 2432 cname: s.cname, 2433 amount: s.amount, 2434 suggest_pos: j - 1 2435 }); 2436 k = b.replace(k, { 2437 categorys: A 2438 }), o++ 2439 } 2440 } 2441 } 2442 c.length = o, d = b.replace(k, { 2443 categorys: "" 2444 }), "" != d ? (d += '
  • \u5173\u95ed
  • ', m.html(d).show(), m.find('[id^="d_"]').bind("mouseleave", function() { 2445 c.mouseleave($(this)) 2446 }).bind("mouseenter", function() { 2447 c.mouseenter($(this)) 2448 })) : m.html("").hide() 2449 }, a.prototype.bind_input = function() { 2450 $.browser.mozilla ? (l.bind("keydown", function(a) { 2451 n.keydown_up(a) 2452 }), l.bind("input", function(a) { 2453 n.input(a) 2454 })) : l.bind("keyup", function(a) { 2455 n.keydown_up(a) 2456 }), l.focus(function() { 2457 setTimeout(function() { 2458 n.input() 2459 }, 10) 2460 }), m.parent().bind("mouseenter", function() { 2461 n.e_position = !0, n.timeoutId && clearTimeout(n.timeoutId) 2462 }).bind("mouseleave", function() { 2463 n.e_position = !1, n.timeoutId = setTimeout(function() { 2464 n.hideTip() 2465 }, 500) 2466 }), $(document).click(function() { 2467 n.e_position || n.hideTip() 2468 }) 2469 }, a.prototype.del = function(a) { 2470 var b = this; 2471 a = a ? a : window.event, window.event ? (a.cancelBubble = !0, a.returnValue = !1) : (a.stopPropagation(), a.preventDefault()); 2472 var c = $(a.srcElement ? a.srcElement : a.target), 2473 d = c.parent().parent().attr("title"); 2474 $.ajax({ 2475 url: "http://search.jd.com/suggest.php?op=del&callback=?&key=" + encodeURIComponent(d), 2476 dataType: "jsonp", 2477 scriptCharset: "utf-8", 2478 beforeSend: function() { 2479 c.parent().parent().hide() 2480 }, 2481 success: function() { 2482 b.lastKeyword = !1, l.focus() 2483 } 2484 }) 2485 }; 2486 var n = new a; 2487 return n.bind_input(), n 2488 }(); 2489 pageConfig.FN_InitSidebar = function() { 2490 $("#toppanel").length || $(document.body).prepend('
    '), $("#toppanel").append('
    '); 2491 var a = $("#sidepanel"); 2492 this.scroll = function() { 2493 var b = this; 2494 $(window).bind("scroll", function() { 2495 var b = document.body.scrollTop || document.documentElement.scrollTop; 2496 0 == b ? a.hide() : a.show() 2497 }), b.initCss(), $(window).bind("resize", function() { 2498 b.initCss() 2499 }) 2500 }, this.initCss = function() { 2501 var b, c = pageConfig.compatible ? 1210 : 990; 2502 screen.width >= 1210 && (b = $.browser.msie && $.browser.version <= 6 ? { 2503 right: "-26px" 2504 } : { 2505 right: (document.documentElement.clientWidth - c) / 2 - 26 + "px" 2506 }, a.css(b)) 2507 }, this.addCss = function(b) { 2508 a.css(b) 2509 }, this.addItem = function(b) { 2510 a.append(b) 2511 }, this.setTop = function() { 2512 this.addItem("\u8fd4\u56de\u9876\u90e8") 2513 } 2514 }, pageConfig.FN_InitContrast = function(a, b, c) { 2515 var a = a || "_contrast", 2516 c = c || "list", 2517 b = b || "http://misc.360buyimg.com/contrast/js/contrast.js?ver=" + +new Date, 2518 d = readCookie(a + "_status"); 2519 return pageConfig.isInitContrast ? !1 : ("show" != d && "side" != d || 1 != !!readCookie(a) ? $(".btn-compare").bind("click", function() { 2520 var d = this.getAttribute("skuid"); 2521 $.getScript(b, function() { 2522 Contrast && Contrast.init(c, a).showPopWin(d) 2523 }) 2524 }) : $.getScript(b, function() { 2525 Contrast && Contrast.init(c, a) 2526 }), pageConfig.isInitContrast = 1, void 0) 2527 }, /debug=global/.test(location.href) || $.ajax({ 2528 url: "http://fa.360buy.com/loadFa_toJson.js?aid=2_601_5095", 2529 dataType: "script", 2530 scriptCharset: "gbk", 2531 cache: !0 2532 });

     

    转载于:https://www.cnblogs.com/tonykan/p/3906187.html

    你可能感兴趣的:(02.lib-v1.js)