/*
 Date: 2014-07-15 5:29:41 [PM]
 */
function StringBuilder() {
    this.strings = new Array,
        this.length = 0
}
function jdThickBoxclose() {
    $(".thickclose").trigger("click")
}
function getparam() {
    var a = "",
        b = "";
    new Object;
    for (var c = location.search.substring(1), d = c.split("&"), e = 0; e < d.length; e++) {
        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))))
    }
    return "" != a || "" != b ? "&sid=" + escape(a) + "&t=" + escape(b) : ""
}
function mlazyload(a) {
    var b = {
        defObj: null,
        defHeight: 0,
        fn: null
    };
    b = $.extend(b, a || {});
    var c = (b.defHeight, "object" == typeof b.defObj ? b.defObj: $(b.defObj));
    if (! (c.length < 1)) {
        var d = function() {
                var a = document,
                    c = "ipad" == navigator.userAgent.toLowerCase().match(/iPad/i) ? window.pageYOffset: Math.max(a.documentElement.scrollTop, a.body.scrollTop);
                return a.documentElement.clientHeight + c - b.defHeight
            },
            e = function() {
                c.offset().top <= d() && !c.attr("load") && (c.attr("load", "true"), b.fn && b.fn())
            };
        e(),
            $(window).bind("scroll",
                function() {
                    e()
                })
    }
} !
    function() {
        var a = document.getElementById("nav-dapeigou");
        a && (a.innerHTML = '<a href="http://channel.jd.com/chaoshi.html">\u4eac\u4e1c\u8d85\u5e02</a>')
    } (),
"undefined" == typeof pageConfig.FN_getDomain && (pageConfig.FN_getDomain = function() {
    var a = location.hostname;
    return /360buy.com/.test(a) ? "360buy.com": "jd.com"
}),
    function() {
        var a = $("#service-2013 a[href='http://en.360buy.com/']");
        a.length && a.attr("href", "http://help.en.360buy.com/help/question-2.html")
    } (),
    function() {
        var a = $("#footer-2013 a[href='http://about.58.com/fqz/index.html']");
        a.length && a.attr("href", "http://www.bj.cyberpolice.cn/index.do")
    } (),
"object" != typeof JSON && (JSON = {}),
    function() {
        function f(a) {
            return 10 > a ? "0" + a: a
        }
        function quote(a) {
            return escapable.lastIndex = 0,
                escapable.test(a) ? '"' + a.replace(escapable,
                    function(a) {
                        var b = meta[a];
                        return "string" == typeof b ? b: "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice( - 4)
                    }) + '"': '"' + a + '"'
        }
        function str(a, b) {
            var c, d, e, f, g, h = gap,
                i = b[a];
            switch (i && "object" == typeof i && "function" == typeof i.toJSON && (i = i.toJSON(a)), "function" == typeof rep && (i = rep.call(b, a, i)), typeof i) {
                case "string":
                    return quote(i);
                case "number":
                    return isFinite(i) ? String(i) : "null";
                case "boolean":
                case "null":
                    return String(i);
                case "object":
                    if (!i) return "null";
                    if (gap += indent, g = [], "[object Array]" === Object.prototype.toString.apply(i)) {
                        for (f = i.length, c = 0; f > c; c += 1) g[c] = str(c, i) || "null";
                        return e = 0 === g.length ? "[]": gap ? "[\n" + gap + g.join(",\n" + gap) + "\n" + h + "]": "[" + g.join(",") + "]",
                            gap = h,
                            e
                    }
                    if (rep && "object" == typeof rep) 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));
                    else for (d in i) Object.prototype.hasOwnProperty.call(i, d) && (e = str(d, i), e && g.push(quote(d) + (gap ? ": ": ":") + e));
                    return e = 0 === g.length ? "{}": gap ? "{\n" + gap + g.join(",\n" + gap) + "\n" + h + "}": "{" + g.join(",") + "}",
                        gap = h,
                        e
            }
        }
        "function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function() {
            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
        },
            String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() {
                return this.valueOf()
            });
        var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
            escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
            gap, indent, meta = {
                "\b": "\\b",
                "	": "\\t",
                "\n": "\\n",
                "\f": "\\f",
                "\r": "\\r",
                '"': '\\"',
                "\\": "\\\\"
            },
            rep;
        "function" != typeof JSON.stringify && (JSON.stringify = function(a, b, c) {
            var d;
            if (gap = "", indent = "", "number" == typeof c) for (d = 0; c > d; d += 1) indent += " ";
            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");
            return str("", {
                "": a
            })
        }),
        "function" != typeof JSON.parse && (JSON.parse = function(text, reviver) {
            function walk(a, b) {
                var c, d, e = a[b];
                if (e && "object" == typeof e) for (c in e) Object.prototype.hasOwnProperty.call(e, c) && (d = walk(e, c), void 0 !== d ? e[c] = d: delete e[c]);
                return reviver.call(a, b, e)
            }
            var j;
            if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx,
                function(a) {
                    return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice( - 4)
                })), /^[\],:{}\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({
                        "": j
                    },
                    "") : j;
            throw new SyntaxError("JSON.parse")
        })
    } (),
    eval(function(a, b, c, d, e, f) {
        if (e = function(a) {
            return (b > a ? "": e(parseInt(a / b))) + ((a %= b) > 35 ? String.fromCharCode(a + 29) : a.toString(36))
        },
            !"".replace(/^/, String)) {
            for (; c--;) f[e(c)] = d[c] || e(c);
            d = [function(a) {
                return f[a]
            }],
                e = function() {
                    return "\\w+"
                },
                c = 1
        }
        for (; c--;) d[c] && (a = a.replace(new RegExp("\\b" + e(c) + "\\b", "g"), d[c]));
        return a
    } ("(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) {
        var b = a.separator || "&",
            c = a.spaces === !1 ? !1 : !0;
        a.suffix === !1 ? "": "[]";
        var d = a.prefix === !1 ? !1 : !0,
            e = d ? a.hash === !0 ? "#": "?": "",
            f = a.numbers === !1 ? !1 : !0;
        jQuery.query = new
        function() {
            var a = function(a, b) {
                    return void 0 != a && null !== a && (b ? a.constructor == b: !0)
                },
                d = function(a) {
                    for (var b, c = /\[([^[]*)\]/g,
                             d = /^(\S+?)(\[\S*\])?$/.exec(a), e = d[1], f = []; b = c.exec(d[2]);) f.push(b[1]);
                    return [e, f]
                },
                g = function(b, c, d) {
                    var e = c.shift();
                    if ("object" != typeof b && (b = null), "" === e) if (b || (b = []), a(b, Array)) b.push(0 == c.length ? d: g(null, c.slice(0), d));
                    else if (a(b, Object)) {
                        for (var f = 0; null != b[f++];);
                        b[--f] = 0 == c.length ? d: g(b[f], c.slice(0), d)
                    } else b = [],
                        b.push(0 == c.length ? d: g(null, c.slice(0), d));
                    else if (e && e.match(/^\s*[0-9]+\s*$/)) {
                        var h = parseInt(e, 10);
                        b || (b = []),
                            b[h] = 0 == c.length ? d: g(b[h], c.slice(0), d)
                    } else {
                        if (!e) return d;
                        var h = e.replace(/^\s*|\s*$/g, "");
                        if (b || (b = {}), a(b, Array)) {
                            for (var i = {},
                                     f = 0; f < b.length; ++f) i[f] = b[f];
                            b = i
                        }
                        b[h] = 0 == c.length ? d: g(b[h], c.slice(0), d)
                    }
                    return b
                },
                h = function(a) {
                    var b = this;
                    return b.keys = {},
                        a.queryObject ? jQuery.each(a.get(),
                            function(a, c) {
                                b.SET(a, c)
                            }) : jQuery.each(arguments,
                            function() {
                                var a = "" + this;
                                a = a.replace(/^[?#]/, ""),
                                    a = a.replace(/[;&]$/, ""),
                                c && (a = a.replace(/[+]/g, " ")),
                                    jQuery.each(a.split(/[&;]/),
                                        function() {
                                            try {
                                                var a = decodeURIComponent(this.split("=")[0]),
                                                    c = decodeURIComponent(encodeURIComponent(this.split("=")[1]))
                                            } catch(d) {}
                                            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))
                                        })
                            }),
                        b
                };
            return h.prototype = {
                queryObject: !0,
                has: function(b, c) {
                    var d = this.get(b);
                    return a(d, c)
                },
                GET: function(b) {
                    if (!a(b)) return this.keys;
                    for (var c = d(b), e = c[0], f = c[1], g = this.keys[e]; null != g && 0 != f.length;) g = g[f.shift()];
                    return "number" == typeof g ? g: g || ""
                },
                get: function(b) {
                    var c = this.GET(b);
                    return a(c, Object) ? jQuery.extend(!0, {},
                        c) : a(c, Array) ? c.slice(0) : c
                },
                SET: function(b, c) {
                    var e = a(c) ? c: null,
                        f = d(b),
                        h = f[0],
                        i = f[1],
                        j = this.keys[h];
                    return this.keys[h] = g(j, i.slice(0), e),
                        this
                },
                set: function(a, b) {
                    return this.copy().SET(a, b)
                },
                REMOVE: function(a) {
                    return this.SET(a, null).COMPACT()
                },
                remove: function(a) {
                    return this.copy().REMOVE(a)
                },
                EMPTY: function() {
                    var a = this;
                    return jQuery.each(a.keys,
                        function(b) {
                            delete a.keys[b]
                        }),
                        a
                },
                load: function(a) {
                    var b = a.replace(/^.*?[#](.+?)(?:\?.+)?$/, "$1"),
                        c = a.replace(/^.*?[?](.+?)(?:#.+)?$/, "$1");
                    return new h(a.length == c.length ? "": c, a.length == b.length ? "": b)
                },
                empty: function() {
                    return this.copy().EMPTY()
                },
                copy: function() {
                    return new h(this)
                },
                COMPACT: function() {
                    function b(c) {
                        function d(b, c, d) {
                            a(b, Array) ? b.push(d) : b[c] = d
                        }
                        var e = "object" == typeof c ? a(c, Array) ? [] : {}: c;
                        return "object" == typeof c && jQuery.each(c,
                            function(c, f) {
                                return a(f) ? (d(e, c, b(f)), void 0) : !0
                            }),
                            e
                    }
                    return this.keys = b(this.keys),
                        this
                },
                compact: function() {
                    return this.copy().COMPACT()
                },
                toString: function() {
                    var c = [],
                        d = [],
                        f = function(b, c, d) {
                            if (a(d) && d !== !1) {
                                var e = [encodeURIComponent(c)];
                                d !== !0 && (e.push("="), e.push(encodeURIComponent(d))),
                                    b.push(e.join(""))
                            }
                        },
                        g = function(a, b) {
                            var c = function(a) {
                                return b && "" != b ? [b, "[", a, "]"].join("") : [a].join("")
                            };
                            jQuery.each(a,
                                function(a, b) {
                                    "object" == typeof b ? g(b, c(a)) : f(d, c(a), b)
                                })
                        };
                    return g(this.keys),
                    d.length > 0 && c.push(e),
                        c.push(d.join(b)),
                        c.join("")
                }
            },
                new h(location.search, location.hash)
        }
    } (jQuery.query || {}),
    eval(function(a, b, c, d, e, f) {
        if (e = function(a) {
            return (b > a ? "": e(parseInt(a / b))) + ((a %= b) > 35 ? String.fromCharCode(a + 29) : a.toString(36))
        },
            !"".replace(/^/, String)) {
            for (; c--;) f[e(c)] = d[c] || e(c);
            d = [function(a) {
                return f[a]
            }],
                e = function() {
                    return "\\w+"
                },
                c = 1
        }
        for (; c--;) d[c] && (a = a.replace(new RegExp("\\b" + e(c) + "\\b", "g"), d[c]));
        return a
    } ("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;i<k.m;i++){2 l=n.H(k[i]);4(l.u(0,a.m+1)==(a+'=')){j=I(l.u(a.m+1));J}}}K j}};", 47, 47, "||var|expires|if|cookie|document|typeof|path|domain|||||||||||||length|jQuery|null|number|toUTCString|60|else|secure|substring|function|undefined|new|Date|setTime|getTime|24|1000|encodeURIComponent|join|split|for|trim|decodeURIComponent|break|return".split("|"), 0, {})),
    Function.prototype.overwrite = function(a) {
        var b = a;
        return b.original || (b.original = this),
            b
    },
    Date.prototype.toString = Date.prototype.toString.overwrite(function(a) {
        var b = new String;
        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
    }),
    String.prototype.format = function() {
        var a = this;
        return arguments.length > 0 && (parameters = $.makeArray(arguments), $.each(parameters,
            function(b, c) {
                a = a.replace(new RegExp("\\{" + b + "\\}", "g"), c)
            })),
            a
    },
    StringBuilder.prototype.append = function(a) {
        this.strings.push(a),
            this.length += a.length
    },
    StringBuilder.prototype.toString = function(a, b) {
        return this.strings.join("").substr(a, b)
    },
    function($) {
        $.jmsajax = function(a) {
            var b = {
                    type: "POST",
                    dataType: "msjson",
                    data: {},
                    beforeSend: function(a) {
                        a.setRequestHeader("Content-type", "application/json; charset=utf-8")
                    },
                    contentType: "application/json; charset=utf-8",
                    error: function(a) {
                        alert("Status: " + (a.statusText ? a.statusText: "Unknown") + "\nMessage: " + msJSON.parse(a.responseText ? a.responseText: "Unknown").Message)
                    }
                },
                a = $.extend(b, a);
            if (a.method && (a.url += "/" + a.method), a.data) if ("GET" == a.type) {
                var c = "";
                for (var d in a.data)"" != c && (c += "&"),
                    c += d + "=" + msJSON.stringify(a.data[d]);
                a.url += "?" + c,
                    c = null,
                    a.data = "{}"
            } else "POST" == a.type && (a.data = msJSON.stringify(a.data));
            if (a.success && a.dataType && "msjson" == a.dataType) {
                var e = a.success;
                a.success = function(b, c) {
                    var d = dateparse(b);
                    a.version ? a.version >= 3.5 && (d = d.d) : 0 == b.indexOf('{"d":') && (d = d.d),
                        e(d, c)
                }
            }
            return $.ajax(a)
        },
            dateparse = function(a) {
                try {
                    return msJSON.parse(a,
                        function(a, b) {
                            var c;
                            return "string" == typeof b && b.indexOf("Date") >= 0 && (c = /^\/Date\(([0-9]+)\)\/$/.exec(b)) ? new Date(parseInt(c[1], 10)) : b
                        })
                } catch(b) {
                    return null
                }
            },
            msJSON = function() {
                function f(a) {
                    return 10 > a ? "0" + a: a
                }
                function quote(a) {
                    return escapeable.lastIndex = 0,
                        escapeable.test(a) ? '"' + a.replace(escapeable,
                            function(a) {
                                var b = meta[a];
                                return "string" == typeof b ? b: "\\u" + ("0000" + ( + a.charCodeAt(0)).toString(16)).slice( - 4)
                            }) + '"': '"' + a + '"'
                }
                function str(a, b) {
                    var c, d, e, f, g, h = gap,
                        i = b[a];
                    switch (i && "object" == typeof i && "function" == typeof i.toJSON && (i = i.toJSON(a)), "function" == typeof rep && (i = rep.call(b, a, i)), typeof i) {
                        case "string":
                            return quote(i);
                        case "number":
                            return isFinite(i) ? String(i) : "null";
                        case "boolean":
                        case "null":
                            return String(i);
                        case "object":
                            if (!i) return "null";
                            if (i.toUTCString) return '"\\/Date(' + i.getTime() + ')\\/"';
                            if (gap += indent, g = [], "number" == typeof i.length && !i.propertyIsEnumerable("length")) {
                                for (f = i.length, c = 0; f > c; c += 1) g[c] = str(c, i) || "null";
                                return e = 0 === g.length ? "[]": gap ? "[\n" + gap + g.join(",\n" + gap) + "\n" + h + "]": "[" + g.join(",") + "]",
                                    gap = h,
                                    e
                            }
                            if (rep && "object" == typeof rep) 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));
                            else for (d in i) Object.hasOwnProperty.call(i, d) && (e = str(d, i, rep), e && g.push(quote(d) + (gap ? ": ": ":") + e));
                            return e = 0 === g.length ? "{}": gap ? "{\n" + gap + g.join(",\n" + gap) + "\n" + h + "}": "{" + g.join(",") + "}",
                                gap = h,
                                e
                    }
                }
                var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
                    escapeable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
                    gap, indent, meta = {
                        "\b": "\\b",
                        "	": "\\t",
                        "\n": "\\n",
                        "\f": "\\f",
                        "\r": "\\r",
                        '"': '\\"',
                        "\\": "\\\\"
                    },
                    rep;
                return {
                    stringify: function(a, b, c) {
                        var d;
                        if (gap = "", indent = "", "number" == typeof c) for (d = 0; c > d; d += 1) indent += " ";
                        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");
                        return str("", {
                            "": a
                        })
                    },
                    parse: function(text, reviver) {
                        function walk(a, b) {
                            var c, d, e = a[b];
                            if (e && "object" == typeof e) for (c in e) Object.hasOwnProperty.call(e, c) && (d = walk(e, c), void 0 !== d ? e[c] = d: delete e[c]);
                            return reviver.call(a, b, e)
                        }
                        var j;
                        if (cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx,
                            function(a) {
                                return "\\u" + ("0000" + ( + a.charCodeAt(0)).toString(16)).slice( - 4)
                            })), /^[\],:{}\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({
                                    "": j
                                },
                                "") : j;
                        throw new SyntaxError("JSON.parse")
                    }
                }
            } ()
    } (jQuery);
var TrimPath; !
    function() {
        null == TrimPath && (TrimPath = new Object),
        null == TrimPath.evalEx && (TrimPath.evalEx = function(src) {
            return eval(src)
        });
        var UNDEFINED;
        null == Array.prototype.pop && (Array.prototype.pop = function() {
            return 0 === this.length ? UNDEFINED: this[--this.length]
        }),
        null == Array.prototype.push && (Array.prototype.push = function() {
            for (var a = 0; a < arguments.length; ++a) this[this.length] = arguments[a];
            return this.length
        }),
            TrimPath.parseTemplate = function(a, b, c) {
                null == c && (c = TrimPath.parseTemplate_etc);
                var d = parse(a, b, c),
                    e = TrimPath.evalEx(d, b, 1);
                return null != e ? new c.Template(b, a, d, e, c) : null
            };
        try {
            String.prototype.process = function(a, b) {
                var c = TrimPath.parseTemplate(this, null);
                return null != c ? c.process(a, b) : this
            }
        } catch(e) {}
        TrimPath.parseTemplate_etc = {},
            TrimPath.parseTemplate_etc.statementTag = "forelse|for|if|elseif|else|var|macro",
            TrimPath.parseTemplate_etc.statementDef = {
                "if": {
                    delta: 1,
                    prefix: "if (",
                    suffix: ") {",
                    paramMin: 1
                },
                "else": {
                    delta: 0,
                    prefix: "} else {"
                },
                elseif: {
                    delta: 0,
                    prefix: "} else if (",
                    suffix: ") {",
                    paramDefault: "true"
                },
                "/if": {
                    delta: -1,
                    prefix: "}"
                },
                "for": {
                    delta: 1,
                    paramMin: 3,
                    prefixFunc: function(a, b, c, d) {
                        if ("in" != a[2]) throw new d.ParseError(c, b.line, "bad for loop statement: " + a.join(" "));
                        var e = a[1],
                            f = "__LIST__" + e;
                        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("")
                    }
                },
                forelse: {
                    delta: 0,
                    prefix: "} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (",
                    suffix: ") {",
                    paramDefault: "true"
                },
                "/for": {
                    delta: -1,
                    prefix: "} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];"
                },
                "var": {
                    delta: 0,
                    prefix: "var ",
                    suffix: ";"
                },
                macro: {
                    delta: 1,
                    prefixFunc: function(a) {
                        var b = a[1].split("(")[0];
                        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("")
                    }
                },
                "/macro": {
                    delta: -1,
                    prefix: " return _OUT_arr.join(''); };"
                }
            },
            TrimPath.parseTemplate_etc.modifierDef = {
                eat: function() {
                    return ""
                },
                escape: function(a) {
                    return String(a).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")
                },
                capitalize: function(a) {
                    return String(a).toUpperCase()
                },
                "default": function(a, b) {
                    return null != a ? a: b
                }
            },
            TrimPath.parseTemplate_etc.modifierDef.h = TrimPath.parseTemplate_etc.modifierDef.escape,
            TrimPath.parseTemplate_etc.Template = function(a, b, c, d, e) {
                this.process = function(a, b) {
                    null == a && (a = {}),
                    null == a._MODIFIERS && (a._MODIFIERS = {}),
                    null == a.defined && (a.defined = function(b) {
                        return void 0 != a[b]
                    });
                    for (var c in e.modifierDef) null == a._MODIFIERS[c] && (a._MODIFIERS[c] = e.modifierDef[c]);
                    null == b && (b = {});
                    var f = [],
                        g = {
                            write: function(a) {
                                f.push(a)
                            }
                        };
                    try {
                        d(g, a, b)
                    } catch(h) {
                        if (1 == b.throwExceptions) throw h;
                        var i = new String(f.join("") + "[ERROR: " + h.toString() + (h.message ? "; " + h.message: "") + "]");
                        return i.exception = h,
                            i
                    }
                    return f.join("")
                },
                    this.name = a,
                    this.source = b,
                    this.sourceFunc = c,
                    this.toString = function() {
                        return "TrimPath.Template [" + a + "]"
                    }
            },
            TrimPath.parseTemplate_etc.ParseError = function(a, b, c) {
                this.name = a,
                    this.line = b,
                    this.message = c
            },
            TrimPath.parseTemplate_etc.ParseError.prototype.toString = function() {
                return "TrimPath template ParseError in " + this.name + ": line " + this.line + ", " + this.message
            };
        var parse = function(a, b, c) {
                a = cleanWhiteSpace(a);
                for (var d = ["var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {"], e = {
                        stack: [],
                        line: 1
                    },
                         f = -1; f + 1 < a.length;) {
                    var g = f;
                    for (g = a.indexOf("{", g + 1); g >= 0;) {
                        var h = a.indexOf("}", g + 1),
                            i = a.substring(g, h),
                            j = i.match(/^\{(cdata|minify|eval)/);
                        if (j) {
                            var k = j[1],
                                l = g + k.length + 1,
                                m = a.indexOf("}", l);
                            if (m >= 0) {
                                var n;
                                n = 0 >= m - l ? "{/" + k + "}": a.substring(l + 1, m);
                                var o = a.indexOf(n, m + 1);
                                if (o >= 0) {
                                    emitSectionText(a.substring(f + 1, g), d);
                                    var p = a.substring(m + 1, o);
                                    "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
                                }
                            }
                        } else if ("$" != a.charAt(g - 1) && "\\" != a.charAt(g - 1)) {
                            var q = "/" == a.charAt(g + 1) ? 2 : 1;
                            if (0 == a.substring(g + q, g + 10 + q).search(TrimPath.parseTemplate_etc.statementTag)) break
                        }
                        g = a.indexOf("{", g + 1)
                    }
                    if (0 > g) break;
                    var h = a.indexOf("}", g + 1);
                    if (0 > h) break;
                    emitSectionText(a.substring(f + 1, g), d),
                        emitStatement(a.substring(g, h + 1), e, d, b, c),
                        f = h
                }
                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(","));
                return d.push("}}; TrimPath_Template_TEMP"),
                    d.join("")
            },
            emitStatement = function(a, b, c, d, e) {
                var f = a.slice(1, -1).split(" "),
                    g = e.statementDef[f[0]];
                if (null == g) return emitSectionText(a, c),
                    void 0;
                if (g.delta < 0) {
                    if (b.stack.length <= 0) throw new e.ParseError(d, b.line, "close tag does not match any previous statement: " + a);
                    b.stack.pop()
                }
                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);
                if (null != g.prefixFunc ? c.push(g.prefixFunc(f, b, d, e)) : c.push(g.prefix), null != g.suffix) {
                    if (f.length <= 1) null != g.paramDefault && c.push(g.paramDefault);
                    else for (var h = 1; h < f.length; h++) h > 1 && c.push(" "),
                        c.push(f[h]);
                    c.push(g.suffix)
                }
            },
            emitSectionText = function(a, b) {
                if (! (a.length <= 0)) {
                    for (var c = 0,
                             d = a.length - 1; c < a.length && "\n" == a.charAt(c);) c++;
                    for (; d >= 0 && (" " == a.charAt(d) || "	" == a.charAt(d));) d--;
                    if (c > d && (d = c), c > 0) {
                        b.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');
                        var e = a.substring(0, c).replace("\n", "\\n");
                        "\n" == e.charAt(e.length - 1) && (e = e.substring(0, e.length - 1)),
                            b.push(e),
                            b.push('");')
                    }
                    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');
                    if (d + 1 < a.length) {
                        b.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');
                        var e = a.substring(d + 1).replace("\n", "\\n");
                        "\n" == e.charAt(e.length - 1) && (e = e.substring(0, e.length - 1)),
                            b.push(e),
                            b.push('");')
                    }
                }
            },
            emitSectionTextLine = function(a, b) {
                for (var c = "}",
                         d = -1; d + c.length < a.length;) {
                    var e = "${",
                        f = "}",
                        g = a.indexOf(e, d + c.length);
                    if (0 > g) break;
                    "%" == a.charAt(g + 2) && (e = "${%", f = "%}");
                    var h = a.indexOf(f, g + e.length);
                    if (0 > h) break;
                    emitText(a.substring(d + c.length, g), b);
                    var i = a.substring(g + e.length, h).replace(/\|\|/g, "#@@#").split("|");
                    for (var j in i) i[j].replace && (i[j] = i[j].replace(/#@@#/g, "||"));
                    b.push("_OUT.write("),
                        emitExpression(i, i.length - 1, b),
                        b.push(");"),
                        d = h,
                        c = f
                }
                emitText(a.substring(d + c.length), b)
            },
            emitText = function(a, b) {
                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('");'))
            },
            emitExpression = function(a, b, c) {
                var d = a[b];
                if (0 >= b) return c.push(d),
                    void 0;
                var e = d.split(":");
                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(")")
            },
            cleanWhiteSpace = function(a) {
                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")
            },
            scrubWhiteSpace = function(a) {
                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")
            };
        TrimPath.parseDOMTemplate = function(a, b, c) {
            null == b && (b = document);
            var d = b.getElementById(a),
                e = d.value;
            return null == e && (e = d.innerHTML),
                e = e.replace(/</g, "<").replace(/>/g, ">"),
                TrimPath.parseTemplate(e, a, c)
        },
            TrimPath.processDOMTemplate = function(a, b, c, d, e) {
                return TrimPath.parseDOMTemplate(a, d, e).process(b, c)
            }
    } (),
    function($) {
        $.extend({
            _jsonp: {
                scripts: {},
                counter: 1,
                charset: "gb2312",
                head: document.getElementsByTagName("head")[0],
                name: function(callback) {
                    var name = "_jsonp_" + (new Date).getTime() + "_" + this.counter;
                    this.counter++;
                    var cb = function(json) {
                        eval("delete " + name),
                            callback(json),
                            $._jsonp.head.removeChild($._jsonp.scripts[name]),
                            delete $._jsonp.scripts[name]
                    };
                    return eval(name + " = cb"),
                        name
                },
                load: function(a, b) {
                    var c = document.createElement("script");
                    c.type = "text/javascript",
                        c.charset = this.charset,
                        c.src = a,
                        this.head.appendChild(c),
                        this.scripts[b] = c
                }
            },
            getJSONP: function(a, b) {
                var c = $._jsonp.name(b),
                    a = a.replace(/{callback};/, c);
                return $._jsonp.load(a, c),
                    this
            }
        })
    } (jQuery),
    function(a) {
        a.fn.Jdropdown = function(b, c) {
            if (this.length) {
                "function" == typeof b && (c = b, b = {});
                var d = a.extend({
                        event: "mouseover",
                        current: "hover",
                        delay: 0
                    },
                    b || {}),
                    e = "mouseover" == d.event ? "mouseout": "mouseleave";
                a.each(this,
                    function() {
                        var b = null,
                            f = null,
                            g = !1;
                        a(this).bind(d.event,
                            function() {
                                if (g) clearTimeout(f);
                                else {
                                    var e = a(this);
                                    b = setTimeout(function() {
                                            e.addClass(d.current),
                                                g = !0,
                                            c && c(e)
                                        },
                                        d.delay)
                                }
                            }).bind(e,
                            function() {
                                if (g) {
                                    var c = a(this);
                                    f = setTimeout(function() {
                                            c.removeClass(d.current),
                                                g = !1
                                        },
                                        d.delay)
                                } else clearTimeout(b)
                            })
                    })
            }
        }
    } (jQuery),
    function(a) {
        a.fn.dropdown = function(b, c) {
            var b = a.extend({
                    className: "item",
                    current: "hover",
                    enterDelay: 10,
                    leaveDelay: 300,
                    onmouseleave: null
                },
                b);
            a.each(this,
                function() {
                    function d() {
                        function a(a, b) {
                            return (b.y - a.y) / (b.x - a.x)
                        }
                        var b = g.offset(),
                            c = {
                                x: b.left,
                                y: b.top
                            },
                            d = {
                                x: b.left + g.outerWidth(),
                                y: c.y
                            },
                            e = {
                                x: b.left,
                                y: b.top + g.outerHeight()
                            },
                            f = {
                                x: b.left + g.outerWidth(),
                                y: e.y
                            };
                        if (loc = i[i.length - 1], prevLoc = i[0], !loc) return 0;
                        if (prevLoc || (prevLoc = loc), prevLoc.x < b.left || prevLoc.x > f.x || prevLoc.y < b.top || prevLoc.y > f.y) return 0;
                        if (j && loc.x == j.x && loc.y == j.y) return 0;
                        var h = d,
                            k = f,
                            l = a(loc, h),
                            m = a(prevLoc, h),
                            n = a(loc, k),
                            o = a(prevLoc, k);
                        return m > l && n > o ? prevLoc.x - c.x < 25 ? 0 : (j = loc, 300) : (j = null, 0)
                    }
                    var e, f, g = a(this),
                        h = g.find("." + b.className),
                        i = [],
                        j = null,
                        k = 3,
                        l = !1;
                    g.bind("mouseenter",
                        function() {
                            clearTimeout(e)
                        });
                    var m = null,
                        n = null;
                    g.bind("mouseleave",
                        function() {
                            l && (e = setTimeout(function() {
                                    h.removeClass(b.current)
                                },
                                b.leaveDelay)),
                            b.onmouseleave && b.onmouseleave(),
                                m = null
                        }),
                        h.bind("mouseenter",
                            function() {
                                var e = a(this),
                                    g = this,
                                    i = function() {
                                        m = jQuery.inArray(g, h),
                                            h.removeClass(b.current),
                                            e.addClass(b.current),
                                            l = !0,
                                        c && c(e)
                                    };
                                f = setTimeout(function() {
                                        0 == d(e) && (i(), clearTimeout(n))
                                    },
                                    b.enterDelay),
                                    n = setTimeout(function() {
                                            m != jQuery.inArray(g, h) && i()
                                        },
                                        700)
                            }),
                        h.bind("mouseleave",
                            function() {
                                a(this),
                                    clearTimeout(f),
                                    clearTimeout(n)
                            }),
                        a(document).mousemove(function(a) {
                            i.push({
                                x: a.pageX,
                                y: a.pageY
                            }),
                            i.length > k && i.shift()
                        })
                })
        }
    } (jQuery),
    function(a) {
        a.fn.Jtab = function(b, c) {
            if (this.length) {
                "function" == typeof b && (c = b, b = {});
                var d = a.extend({
                        type: "static",
                        auto: !1,
                        event: "mouseover",
                        currClass: "curr",
                        source: "data-tag",
                        hookKey: "data-widget",
                        hookItemVal: "tab-item",
                        hookContentVal: "tab-content",
                        stay: 5e3,
                        delay: 100,
                        threshold: null,
                        mainTimer: null,
                        subTimer: null,
                        index: 0,
                        compatible: !1
                    },
                    b || {}),
                    e = a(this).find("*[" + d.hookKey + "=" + d.hookItemVal + "]"),
                    f = a(this).find("*[" + d.hookKey + "=" + d.hookContentVal + "]"),
                    g = d.source.toLowerCase().match(/http:\/\/|\d|\.aspx|\.ascx|\.asp|\.php|\.html\.htm|.shtml|.js/g);
                if (e.length != f.length) return ! 1;
                var h = function(a, b) {
                        d.subTimer = setTimeout(function() {
                                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()
                            },
                            d.delay)
                    },
                    i = function() {
                        d.mainTimer = setInterval(function() {
                                h(d.index, !0)
                            },
                            d.stay)
                    },
                    j = function() {
                        switch (e.eq(d.index).addClass(d.currClass), d.compatible && f.eq(d.index).show(), d.type) {
                            default:
                            case "static":
                                var a = "";
                                break;
                            case "dynamic":
                                var a = g ? d.source: e.eq(d.index).attr(d.source);
                                e.eq(d.index).removeAttr(d.source)
                        }
                        c && c(a, f.eq(d.index), d.index)
                    };
                e.each(function(b) {
                    a(this).bind(d.event,
                        function() {
                            clearTimeout(d.subTimer),
                                clearInterval(d.mainTimer),
                                h(b, !1)
                        }).bind("mouseleave",
                        function() {
                            d.auto && i()
                        })
                }),
                "dynamic" == d.type && h(d.index, !1),
                d.auto && i()
            }
        }
    } (jQuery),
    function(a) {
        a.fn.Jlazyload = function(b, c) {
            if (this.length) {
                var d, e, f = a.extend({
                        type: null,
                        offsetParent: null,
                        source: "data-lazyload",
                        placeholderImage: "http://misc.360buyimg.com/lib/img/e/blank.gif",
                        placeholderClass: "loading-style2",
                        threshold: 200
                    },
                    b || {}),
                    g = this,
                    h = function(a) {
                        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;
                        return {
                            left: b,
                            top: c,
                            width: d,
                            height: e
                        }
                    },
                    i = function() {
                        var a = document.documentElement,
                            b = document.body,
                            c = window.pageXOffset ? window.pageXOffset: a.scrollLeft || b.scrollLeft,
                            d = window.pageYOffset ? window.pageYOffset: a.scrollTop || b.scrollTop,
                            e = a.clientWidth,
                            f = a.clientHeight;
                        return {
                            left: c,
                            top: d,
                            width: e,
                            height: f
                        }
                    },
                    j = function(a, b) {
                        var c, d, e, g, h, i, j = f.threshold ? parseInt(f.threshold) : 0;
                        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
                    },
                    k = function(a, b, d) {
                        f.placeholderImage && f.placeholderClass && d.attr("src", f.placeholderImage).addClass(f.placeholderClass),
                        a && (d.attr("src", b).removeAttr(f.source), c && c(b, d))
                    },
                    l = function(b, d, e) {
                        if (b) {
                            var g = a("#" + d);
                            g.html(e.val()).removeAttr(f.source),
                                e.remove(),
                            c && c(d, e)
                        }
                    },
                    m = function(a, b, d) {
                        a && (d.removeAttr(f.source), c && c(b, d))
                    },
                    n = function() {
                        e = i(),
                            g = g.filter(function() {
                                return a(this).attr(f.source)
                            }),
                            a.each(g,
                                function() {
                                    var b = a(this).attr(f.source);
                                    if (b) {
                                        var c = f.offsetParent ? h(a(f.offsetParent).get(0)) : e,
                                            d = h(this),
                                            g = j(c, d);
                                        switch (f.type) {
                                            case "image":
                                                k(g, b, a(this));
                                                break;
                                            case "textarea":
                                                l(g, b, a(this));
                                                break;
                                            case "module":
                                                m(g, b, a(this))
                                        }
                                    }
                                })
                    },
                    o = function() {
                        g.length > 0 && (clearTimeout(d), d = setTimeout(function() {
                                n()
                            },
                            10))
                    };
                n(),
                    f.offsetParent ? a(f.offsetParent).bind("scroll",
                        function() {
                            o()
                        }) : a(window).bind("scroll",
                        function() {
                            o()
                        }).bind("reset",
                        function() {
                            o()
                        })
            }
        }
    } (jQuery),
    function(a) {
        a.Jtimer = function(b, c) {
            var d = a.extend({
                    pids: null,
                    template: null,
                    reset: null,
                    mainPlaceholder: "timed",
                    subPlaceholder: "timer",
                    resetPlaceholder: "reset",
                    iconPlaceholder: "icon",
                    finishedClass: "",
                    timer: []
                },
                b || {}),
                e = function(a) {
                    var b = a.split(" "),
                        c = b[0].split("-"),
                        d = b[1].split(":");
                    return new Date(c[0], c[1] - 1, c[2], d[0], d[1], d[2])
                },
                f = function(a) {
                    return String(a).length < 2 && (a = "0" + a),
                        a
                },
                g = function(b, c) {
                    if (c != {} && c && c.start && c.end) {
                        var g, h, i, j = e(c.start),
                            k = e(c.server),
                            l = e(c.end),
                            m = (j - k) / 1e3,
                            n = (l - k) / 1e3,
                            o = "#" + d.mainPlaceholder + b,
                            p = "#" + d.subPlaceholder + c.qid,
                            q = "#" + d.resetPlaceholder + c.qid;
                        if (0 >= m) {
                            var r = d.template.process(c);
                            a(o).html(r)
                        }
                        d.timer[c.qid] = setInterval(function() {
                                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<b>" + f(g) + "</b>\u5c0f\u65f6<b>" + f(h) + "</b>\u5206<b>" + f(i) + "</b>\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('<a href="javascript:void(0)" id="' + q.substring(1) + '">\u5237\u65b0</a>'), a(q).bind("click",
                                    function() {
                                        a.each(d.timer,
                                            function() {
                                                clearInterval(this)
                                            }),
                                            d.reset()
                                    })), clearInterval(d.timer[c.qid])), void 0)
                            },
                            1e3)
                    }
                },
                h = function(a, b) {
                    return e(a.end) - e(a.server) - (e(b.end) - e(b.server))
                };
            a.ajax({
                url: "http://qiang.jd.com/HomePageNewLimitBuy.ashx?callback=?",
                data: {
                    ids: d.pids
                },
                dataType: "jsonp",
                success: function(b) {
                    b && b.data && (b.data.sort(h), a.each(b.data,
                        function(a) {
                            g(a + 1, b.data[a])
                        })),
                    c && c()
                }
            })
        }
    } (jQuery),
    function(a) {
        a.fn.Jslider = function(b, c) {
            if (this.length) {
                "function" == typeof b && (c = b, b = {});
                var d = a.extend({
                        auto: !1,
                        reInit: !1,
                        data: [],
                        defaultIndex: 0,
                        slideWidth: 0,
                        slideHeight: 0,
                        slideDirection: 1,
                        speed: "normal",
                        stay: 5e3,
                        delay: 150,
                        maxAmount: null,
                        template: null,
                        showControls: !0
                    },
                    b || {}),
                    e = a(this),
                    f = null,
                    g = null,
                    h = null,
                    i = null,
                    j = null,
                    k = function() {
                        var a;
                        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);
                        var b = d.template;
                        if (d.reInit) {
                            var i, j = b.controlsContent.process(a);
                            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)
                        } else {
                            var k = b.itemsWrap.replace("{innerHTML}", b.itemsContent) + b.controlsWrap.replace("{innerHTML}", b.controlsContent),
                                m = k.process(a);
                            e.html(m)
                        }
                        f = e.find(".slide-items"),
                            g = e.find(".slide-controls"),
                            h = g.find("span"),
                            l(),
                            n(),
                        c && c(e)
                    },
                    l = function() {
                        h.bind("mouseover",
                            function() {
                                var a = h.index(this);
                                a != d.defaultIndex && (clearTimeout(j), clearInterval(i), j = setTimeout(function() {
                                        m(a)
                                    },
                                    d.delay))
                            }).bind("mouseleave",
                            function() {
                                clearTimeout(j),
                                    clearInterval(i),
                                    n()
                            }),
                            f.bind("mouseover",
                                function() {
                                    clearTimeout(j),
                                        clearInterval(i)
                                }).bind("mouseleave",
                                function() {
                                    n()
                                })
                    },
                    m = function(b) {
                        h.each(function(c) {
                            c == b ? a(this).addClass("curr") : a(this).removeClass("curr")
                        });
                        var c = 0,
                            e = 0;
                        if (3 == d.slideDirection) {
                            var g = f.children(),
                                i = g.eq(d.defaultIndex),
                                j = g.eq(b);
                            i.css({
                                zIndex: 0
                            }),
                                j.css({
                                    zIndex: 1
                                }),
                                i.fadeOut("fast"),
                                j.fadeIn("slow"),
                                d.defaultIndex = b
                        } else 1 == d.slideDirection ? (f.css({
                            width: d.slideWidth * d.data.length
                        }), c = -d.slideWidth * b) : e = -d.slideHeight * b,
                            f.animate({
                                    top: e + "px",
                                    left: c + "px"
                                },
                                d.speed,
                                function() {
                                    d.defaultIndex = b
                                })
                    },
                    n = function() {
                        d.auto && (i = setInterval(function() {
                                var a = d.defaultIndex;
                                a++,
                                a == d.data.length && (a = 0),
                                    m(a)
                            },
                            d.stay))
                    };
                k()
            }
        }
    } (jQuery),
    jQuery.fn.pagination = function(a, b) {
        return b = jQuery.extend({
                items_per_page: 10,
                num_display_entries: 10,
                current_page: 0,
                num_edge_entries: 0,
                link_to: "#",
                prev_text: "Prev",
                next_text: "Next",
                ellipse_text: "...",
                prev_show_always: !0,
                next_show_always: !0,
                callback: function() {
                    return ! 1
                }
            },
            b || {}),
            this.each(function() {
                function c() {
                    return Math.ceil(a / b.items_per_page)
                }
                function d() {
                    var a = Math.ceil(b.num_display_entries / 2),
                        d = c(),
                        e = d - b.num_display_entries,
                        f = g > a ? Math.max(Math.min(g - a, e), 0) : 0,
                        h = g > a ? Math.min(g + a, d) : Math.min(b.num_display_entries, d);
                    return [f, h]
                }
                function e(a, c) {
                    g = a,
                        f();
                    var d = b.callback(a, h);
                    return d || (c.stopPropagation ? c.stopPropagation() : c.cancelBubble = !0),
                        d
                }
                function f() {
                    h.empty();
                    var a = d(),
                        f = c();
                    1 == f && $(".Pagination").css({
                        display: "none"
                    });
                    var i = function(a) {
                            return function(b) {
                                return e(a, b)
                            }
                        },
                        j = function(a, c) {
                            if (a = 0 > a ? 0 : f > a ? a: f - 1, c = jQuery.extend({
                                    text: a + 1,
                                    classes: ""
                                },
                                c || {}), a == g) var d = $("<a href='javascript:void(0)' class='current'>" + c.text + "</a>");
                            else var d = $("<a>" + c.text + "</a>").bind("click", i(a)).attr("href", b.link_to.replace(/__id__/, a));
                            c.classes && d.addClass(c.classes),
                                h.append(d)
                        };
                    if (b.prev_text && (g > 0 || b.prev_show_always) && j(g - 1, {
                        text: b.prev_text,
                        classes: "prev"
                    }), a[0] > 0 && b.num_edge_entries > 0) {
                        for (var k = Math.min(b.num_edge_entries, a[0]), l = 0; k > l; l++) j(l);
                        b.num_edge_entries < a[0] && b.ellipse_text && jQuery("<span>" + b.ellipse_text + "</span>").appendTo(h)
                    }
                    for (var l = a[0]; l < a[1]; l++) j(l);
                    if (a[1] < f && b.num_edge_entries > 0) {
                        f - b.num_edge_entries > a[1] && b.ellipse_text && jQuery("<span>" + b.ellipse_text + "</span>").appendTo(h);
                        for (var m = Math.max(f - b.num_edge_entries, a[1]), l = m; f > l; l++) j(l)
                    }
                    b.next_text && (f - 1 > g || b.next_show_always) && j(g + 1, {
                        text: b.next_text,
                        classes: "next"
                    })
                }
                var g = b.current_page;
                a = !a || 0 > a ? 1 : a,
                    b.items_per_page = !b.items_per_page || b.items_per_page < 0 ? 1 : b.items_per_page;
                var h = jQuery(this);
                this.selectPage = function(a) {
                    e(a)
                },
                    this.prevPage = function() {
                        return g > 0 ? (e(g - 1), !0) : !1
                    },
                    this.nextPage = function() {
                        return g < c() - 1 ? (e(g + 1), !0) : !1
                    },
                    f()
            })
    },
    function(a) {
        a.extend(a.browser, {
            client: function() {
                return {
                    width: document.documentElement.clientWidth,
                    height: document.documentElement.clientHeight,
                    bodyWidth: document.body.clientWidth,
                    bodyHeight: document.body.clientHeight
                }
            },
            scroll: function() {
                var a = document.documentElement.scrollTop,
                    b = document.body.scrollTop,
                    c = document.documentElement.scrollLeft,
                    d = document.body.scrollLeft,
                    e = a ? a: b,
                    f = c ? c: d;
                return {
                    width: document.documentElement.scrollWidth,
                    height: document.documentElement.scrollHeight,
                    bodyWidth: document.body.scrollWidth,
                    bodyHeight: document.body.scrollHeight,
                    left: f,
                    top: e
                }
            },
            screen: function() {
                return {
                    width: window.screen.width,
                    height: window.screen.height
                }
            },
            isIE6: a.browser.msie && 6 == a.browser.version,
            isMinW: function(b) {
                return Math.min(a.browser.client().bodyWidth, a.browser.client().width) <= b
            },
            isMinH: function(b) {
                return a.browser.client().height <= b
            }
        })
    } (jQuery),
    function(a) {
        a.fn.jdPosition = function(b) {
            var c = a.extend({
                    mode: null
                },
                b || {});
            switch (c.mode) {
                default:
                case "center":
                    var d = a(this).outerWidth(),
                        e = a(this).outerHeight(),
                        f = (a.browser.isMinW(d), a.browser.isMinH(e));
                    a(this).css({
                        left: a.browser.scroll().left + Math.max((a.browser.client().width - d) / 2, 0) + "px",
                        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"
                    });
                    break;
                case "auto":
                    break;
                case "fixed":
            }
        }
    } (jQuery),
    function(a) {
        a.fn.jdThickBox = function(b, c) {
            "function" == typeof b && (c = b, b = {});
            var d, e = a.extend({
                    type: "text",
                    source: null,
                    width: null,
                    height: null,
                    title: null,
                    _frame: "",
                    _div: "",
                    _box: "",
                    _con: "",
                    _loading: "thickloading",
                    close: !1,
                    _close: "",
                    _fastClose: !1,
                    _close_val: "\xd7",
                    _titleOn: !0,
                    _title: "",
                    _autoReposi: !1,
                    _countdown: !1,
                    _thickPadding: 10,
                    _wrapBorder: 1
                },
                b || {}),
                f = "function" != typeof this ? a(this) : null,
                g = function() {
                    clearInterval(d),
                        a(".thickframe").add(".thickdiv").remove(),
                        a(".thickbox").empty().remove(),
                    e._autoReposi && a(window).unbind("resize.jdThickBox").unbind("scroll.jdThickBox")
                };
            if (e.close) return g(),
                !1;
            var h = function(a) {
                    return "" != a ? a.match(/\w+/) : ""
                },
                i = function(b) {
                    0 == a(".thickframe").length || 0 == a(".thickdiv").length ? (a("<iframe class='thickframe' id='" + h(e._frame) + "' marginwidth='0' marginheight='0' frameborder='0' scrolling='no'></iframe>").appendTo(a(document.body)), a("<div class='thickdiv' id='" + h(e._div) + "'></div>").appendTo(a(document.body))) : a(".thickframe").add(".thickdiv").show(),
                        a("<div class='thickbox' id='" + h(e._box) + "'><div class='thickwrap'></div></div>").appendTo(a(document.body)),
                    a(".thickwrap") && (a(".thickwrap").css("width", e.width + 2 * e._thickPadding), e._wrapBorder = 1),
                    e._titleOn && k(b),
                        a("<div class='thickcon' id='" + h(e._con) + "' style='width:" + e.width + "px;height:" + e.height + "px;'></div>").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) {
                            b = b ? b: window.event;
                            var c = b.srcElement ? b.srcElement: b.target;
                            "thickdiv" == c.className && (a(this).unbind("click.jdThickBox"), g())
                        })
                },
                j = function() {
                    var b = e._countdown;
                    a("<div class='thickcountdown' style='width:" + e.width + "'><span id='jd-countdown'>" + b + "</span>\u79d2\u540e\u81ea\u52a8\u5173\u95ed</div>").appendTo(a(".thickwrap")),
                        d = setInterval(function() {
                                b--,
                                    a("#jd-countdown").html(b),
                                0 == b && (b = e._countdown, g())
                            },
                            1e3)
                },
                k = function(b) {
                    e.title = null == e.title && b ? b.attr("title") : e.title,
                        a("<div class='thicktitle' id='" + h(e._title) + "' style='width:" + e.width + "'><span>" + e.title + "</span></div>").appendTo(a(".thickwrap"))
                },
                l = function() {
                    null != e._close && (a("<a href='#' class='thickclose' id='" + h(e._close) + "'>" + e._close_val + "</a>").appendTo(a(".thickwrap")), a(".thickclose").one("click",
                        function() {
                            return g(),
                                !1
                        }))
                },
                m = function(b) {
                    switch (e.source = null == e.source ? b.attr("href") : e.source, e.type) {
                        default:
                        case "text":
                            a(".thickcon").html(e.source),
                                a(".thickcon").removeClass(e._loading),
                            c && c();
                            break;
                        case "html":
                            a(e.source).clone().appendTo(a(".thickcon")).show(),
                                a(".thickcon").removeClass(e._loading),
                            c && c();
                            break;
                        case "image":
                            e._index = null == e._index ? f.index(b) : e._index,
                                a(".thickcon").append("<img src='" + e.source + "' width='" + e.width + "' height='" + e.height + "'>"),
                                e.source = null,
                                a(".thickcon").removeClass(e._loading),
                            c && c();
                            break;
                        case "ajax":
                        case "json":
                            c && c(e.source, a(".thickcon"),
                                function() {
                                    a(".thickcon").removeClass(e._loading)
                                });
                            break;
                        case "iframe":
                            a("<iframe src='" + e.source + "' marginwidth='0' marginheight='0' frameborder='0' scrolling='no' style='width:" + e.width + "px;height:" + e.height + "px;border:0;'></iframe>").appendTo(a(".thickcon")),
                                a(".thickcon").removeClass(e._loading),
                            c && c()
                    }
                },
                n = function() {
                    var b = 2 * e._thickPadding + parseInt(e.width);
                    if (a(".thickcon").css({
                        width: e.width,
                        height: e.height,
                        paddingLeft: e._thickPadding,
                        paddingRight: e._thickPadding
                    }), setTimeout(function() {
                            a(".thickbox").css({
                                width: b + 2 * e._wrapBorder,
                                height: parseInt(e._titleOn ? a(".thicktitle").outerHeight() : 0) + parseInt(a(".thickcon").outerHeight()) + 2 * e._wrapBorder
                            })
                        },
                        100), a(".thickbox").jdPosition({
                        mode: "center"
                    }), a.browser.isIE6) {
                        var c = a(".thickbox").outerWidth(),
                            d = a(".thickbox").outerHeight(),
                            f = a.browser.isMinW(c);
                        a.browser.isMinH(d),
                            a(".thickframe").add(".thickdiv").css({
                                width: f ? c: "100%",
                                height: Math.max(a.browser.client().height, a.browser.client().bodyHeight) + "px"
                            })
                    }
                };
            null != f ? f.click(function() {
                return i(a(this)),
                    !1
            }) : i()
        },
            a.jdThickBox = a.fn.jdThickBox
    } (jQuery),
    function(a) {
        a.fn.jdMarquee = function(b, c) {
            "function" == typeof b && (c = b, b = {});
            var d, e = a.extend({
                    deriction: "up",
                    speed: 10,
                    auto: !1,
                    width: null,
                    height: null,
                    step: 1,
                    control: !1,
                    _front: null,
                    _back: null,
                    _stop: null,
                    _continue: null,
                    wrapstyle: "",
                    stay: 5e3,
                    delay: 20,
                    dom: "div>ul>li".split(">"),
                    mainTimer: null,
                    subTimer: null,
                    tag: !1,
                    convert: !1,
                    btn: null,
                    disabled: "disabled",
                    pos: {
                        ojbect: null,
                        clone: null
                    }
                },
                b || {}),
                f = this.find(e.dom[1]),
                g = this.find(e.dom[2]);
            if ("up" == e.deriction || "down" == e.deriction) {
                var h = f.eq(0).outerHeight(),
                    i = e.step * g.eq(0).outerHeight();
                f.css({
                    width: e.width + "px",
                    overflow: "hidden"
                })
            }
            if ("left" == e.deriction || "right" == e.deriction) {
                var j = g.length * g.eq(0).outerWidth();
                f.css({
                    width: j + "px",
                    overflow: "hidden"
                });
                var i = e.step * g.eq(0).outerWidth()
            }
            var k = function() {
                    var a = "<div style='position:relative;overflow:hidden;z-index:1;width:" + e.width + "px;height:" + e.height + "px;" + e.wrapstyle + "'></div>";
                    switch (f.css({
                        position: "absolute",
                        left: 0,
                        top: 0
                    }).wrap(a), e.pos.object = 0, d = f.clone(), f.after(d), e.deriction) {
                        default:
                        case "up":
                            f.css({
                                marginLeft:
                                    0,
                                marginTop: 0
                            }),
                                d.css({
                                    marginLeft: 0,
                                    marginTop: h + "px"
                                }),
                                e.pos.clone = h;
                            break;
                        case "down":
                            f.css({
                                marginLeft:
                                    0,
                                marginTop: 0
                            }),
                                d.css({
                                    marginLeft: 0,
                                    marginTop: -h + "px"
                                }),
                                e.pos.clone = -h;
                            break;
                        case "left":
                            f.css({
                                marginTop:
                                    0,
                                marginLeft: 0
                            }),
                                d.css({
                                    marginTop: 0,
                                    marginLeft: j + "px"
                                }),
                                e.pos.clone = j;
                            break;
                        case "right":
                            f.css({
                                marginTop:
                                    0,
                                marginLeft: 0
                            }),
                                d.css({
                                    marginTop: 0,
                                    marginLeft: -j + "px"
                                }),
                                e.pos.clone = -j
                    }
                    e.auto && (l(), f.hover(function() {
                            n(e.mainTimer)
                        },
                        function() {
                            l()
                        }), d.hover(function() {
                            n(e.mainTimer)
                        },
                        function() {
                            l()
                        })),
                    c && c(),
                    e.control && p()
                },
                l = function(a) {
                    n(e.mainTimer),
                        e.stay = a ? a: e.stay,
                        e.mainTimer = setInterval(function() {
                                m()
                            },
                            e.stay)
                },
                m = function() {
                    n(e.subTimer),
                        e.subTimer = setInterval(function() {
                                s()
                            },
                            e.delay)
                },
                n = function(a) {
                    null != a && clearInterval(a)
                },
                o = function(b) {
                    b ? (a(e._front).unbind("click"), a(e._back).unbind("click"), a(e._stop).unbind("click"), a(e._continue).unbind("click")) : p()
                },
                p = function() {
                    null != e._front && a(e._front).click(function() {
                        if(t>0){
                            t--;

                        }else{
                            alert('å·²ç»æ˜¯æœ€åŽä¸€å¼ ');
                            return false;
                        }
                        a(e._front).addClass(e.disabled),
                            o(!0),
                            n(e.mainTimer),
                            e.convert = !0,
                            e.btn = "front",
                            m(),
                        e.auto || (e.tag = !0),
                            q()
                    }),
                    null != e._back && a(e._back).click(function() {
                        if(t<ta){
                            t++;

                        }else{
                            alert('å·²ç»æ˜¯ç¬¬ä¸€å¼ ');
                            return false;
                        }
                        a(e._back).addClass(e.disabled),
                            o(!0),
                            n(e.mainTimer),
                            e.convert = !0,
                            e.btn = "back",
                            m(),
                        e.auto || (e.tag = !0),
                            q()
                    }),
                    null != e._stop && a(e._stop).click(function() {
                        n(e.mainTimer)
                    }),
                    null != e._continue && a(e._continue).click(function() {
                        l()
                    })
                },
                q = function() {
                    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))
                },
                r = function(a, b, c) {
                    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({
                        marginTop: a + "px"
                    }), d.css({
                        marginTop: b + "px"
                    })),
                    ("left" == e.deriction || "right" == e.deriction) && (f.css({
                        marginLeft: a + "px"
                    }), d.css({
                        marginLeft: b + "px"
                    }))
                },
                s = function() {
                    var b = "up" == e.deriction || "down" == e.deriction ? parseInt(f.get(0).style.marginTop) : parseInt(f.get(0).style.marginLeft),
                        c = "up" == e.deriction || "down" == e.deriction ? parseInt(d.get(0).style.marginTop) : parseInt(d.get(0).style.marginLeft),
                        g = Math.max(Math.abs(b - e.pos.object), Math.abs(c - e.pos.clone)),
                        k = Math.ceil((i - g) / e.speed);
                    switch (e.deriction) {
                        case "up":
                            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));
                            break;
                        case "down":
                            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));
                            break;
                        case "left":
                            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));
                            break;
                        case "right":
                            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))
                    }
                }; ("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()
        }
    } (jQuery),
    $.login = function(a) {
        a = $.extend({
                loginService: "http://passport." + pageConfig.FN_getDomain() + "/loginservice.aspx?callback=?",
                loginMethod: "Login",
                loginUrl: "https://passport." + pageConfig.FN_getDomain() + "/new/login.aspx",
                returnUrl: location.href,
                automatic: !0,
                complete: null,
                modal: !1
            },
            a || {}),
        "" != a.loginService && "" != a.loginMethod && $.getJSON(a.loginService, {
                method: a.loginMethod
            },
            function(b) {
                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)))
            })
    },
    function(a) {
        a.jdCalcul = function(b) {
            var c = null,
                b = b.join(","),
                d = "http://qiang.jd.com/HomePageLimitBuy.ashx?callback=?&ids=" + b,
                e = "http://item.jd.com/",
                f = function(b) {
                    var c = a.extend({
                            contentid: "#limit",
                            clockid: "#clock",
                            rankid: "#rank",
                            limitid: "#limitbuy"
                        },
                        b || {});
                    if (! (b == {} || "" == b || null == c.start || "" == c.start || null == c.end || "" == c.end || c.pros.length < 1)) {
                        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);
                        var d, f, h, i, j = (c.start - c.server) / 1e3,
                            k = (c.end - c.server) / 1e3,
                            l = function() {
                                var b = '<li><div class="p-img"><a href="{6}{0}.html" target="_blank"><img src="{1}" width="100" height="100" /></a>{2}</div><div class="p-name"><a href="{6}{0}.html" target="_blank">{3}</a></div><div class="p-price">\u62a2\u8d2d\u4ef7\uff1a<strong>{4}</strong>{5}</div></li>',
                                    d = "<ul>";
                                a.each(c.pros,
                                    function(a) {
                                        var f = c.pros[a].id,
                                            g = c.pros[a].tp,
                                            h = 1 == c.pros[a].zt ? "<div class='pi9'></div>": "<div class='pi10'></div>",
                                            i = unescape(c.pros[a].mc),
                                            j = c.pros[a].qg,
                                            k = "(" + c.pros[a].zk + "\u6298)";
                                        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)
                                    }),
                                    d += "</ul>",
                                    c.contentid.html(d)
                            },
                            m = function() {
                                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<b>" + d + "</b>\u5c0f\u65f6<b>" + f + "</b>\u5206<b>" + h + "</b>\u79d2"), k--) : (c.clockid.html("\u62a2\u8d2d\u7ed3\u675f"), clearInterval(i), c.limitid.hide(), c.rankid.length > 0 && c.rankid.show()))
                            };
                        0 >= j && k > 0 && (l(), c.rankid.length > 0 && c.rankid.hide(), c.limitid.show()),
                            m(),
                            i = setInterval(function() {
                                    m()
                                },
                                1e3)
                    }
                },
                g = function(a) {
                    var b = a.split(" "),
                        c = b[0].split("-"),
                        d = b[1].split(":");
                    return new Date(c[0], c[1] - 1, c[2], d[0], d[1], d[2])
                };
            a.ajax({
                url: d,
                dataType: "jsonp",
                success: function(b) {
                    b && (c = b.data, a.each(c,
                        function(a) {
                            f(c[a])
                        }))
                }
            })
        }
    } (jQuery);
var jdRecent = {
    element: $("#recent ul"),
    jsurl: "http://www.jd.com/lishiset.aspx?callback=jdRecent.setData&id=",
    cookiename: "_recent",
    list: $.cookie("_recent"),
    url: location.href,
    init: function() {
        var a = this.url.match(/\/(\d{6}).html/),
            b = null != a && -1 != a[0].indexOf("html") ? a[1] : "";
        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);
        else {
            if ("" == b) return this.getData(0);
            this.list = b
        }
        $.cookie(this.cookiename, this.list, {
            expires: 7,
            path: "/",
            domain: "jd.com",
            secure: !1
        }),
            this.getData(this.list)
    },
    clear: function() {
        $.cookie(this.cookiename, "", {
            expires: 7,
            path: "/",
            domain: "jd.com",
            secure: !1
        })
    },
    getData: function(a) {
        if (0 == a) return this.element.html("<li><div class='norecode'>\u6682\u65e0\u8bb0\u5f55!</div></li>"),
            void 0;
        var b = a.split(".");
        for (i in b) 0 == i && this.element.empty(),
            $.getJSONP(this.jsurl + b[i], this.setData)
    },
    setData: function(a) {
        this.element.append("<li><div class='p-img'><a href='" + a.url + "'><img src='" + a.img + "' /></a></div><div class='p-name'><a href='" + a.url + "'>" + decodeURIComponent(a.name) + "</a></div></li>")
    }
};
$("#clearRec").click(function() {
    jdRecent.clear(),
        jdRecent.getData(0)
}),
    mlazyload({
        defObj: "#recent",
        defHeight: 50,
        fn: function() {
            1 == jdRecent.element.length && jdRecent.init()
        }
    });
var jdModelCallCenter = {
    settings: {
        clstag1: 0,
        clstag2: 0
    },
    tbClose: function() {
        0 != $(".thickbox").length && jdThickBoxclose()
    },
    login: function() {
        this.tbClose();
        var a = this,
            b = navigator.userAgent.toLowerCase(),
            c = "ucweb" == b.match(/ucweb/i) || "rv:1.2.3.4" == b.match(/rv:1.2.3.4/i);
        return c ? (location.href = "https://passport." + pageConfig.FN_getDomain() + "/new/login.aspx?ReturnUrl=" + escape(location.href), void 0) : (setTimeout(function() {
                $.jdThickBox({
                    type: "iframe",
                    title: "\u60a8\u5c1a\u672a\u767b\u5f55",
                    source: "http://passport.jd.com/uc/popupLogin2013?clstag1=" + a.settings.clstag1 + "&clstag2=" + a.settings.clstag2 + "&r=" + Math.random(),
                    width: 390,
                    height: 450,
                    _title: "thicktitler",
                    _close: "thickcloser",
                    _con: "thickconr"
                })
            },
            20), void 0)
    },
    regist: function() {
        var a = this;
        this.tbClose(),
            setTimeout(function() {
                    $.jdThickBox({
                        type: "iframe",
                        title: "\u60a8\u5c1a\u672a\u767b\u5f55",
                        source: "http://reg.jd.com/reg/popupPerson?clstag1=" + a.settings.clstag1 + "&clstag2=" + a.settings.clstag2 + "&r=" + Math.random(),
                        width: 390,
                        height: 450,
                        _title: "thicktitler",
                        _close: "thickcloser",
                        _con: "thickconr"
                    })
                },
                20)
    },
    init: function() {
        var a = this;
        $.ajax({
            url: ("https:" == document.location.protocol ? "https://": "http://") + "passport." + pageConfig.FN_getDomain() + "/new/helloService.ashx?m=ls&sso=0",
            dataType: "jsonp",
            success: function(b) {
                a.tbClose(),
                b && b.info && $("#loginbar").html(b.info),
                    a.settings.fn()
            }
        })
    }
};
$.extend(jdModelCallCenter, {
    autoLocation: function(a) {
        $.login({
            modal: !0,
            complete: function(b) {
                null != b && null != b.IsAuthenticated && b.IsAuthenticated && (window.location = a)
            }
        })
    }
}),
    $.extend(jdModelCallCenter, {
        doAttention: function(a) {
            var b = "http://t.jd.com/product/followProduct.action?productId=" + a;
            $.login({
                modal: !0,
                complete: function(c) {
                    if (null != c && null != c.IsAuthenticated && c.IsAuthenticated) {
                        var d = 510,
                            e = 440;
                        $.jdThickBox({
                                type: "iframe",
                                source: b + "&t=" + Math.random(),
                                width: d,
                                height: e,
                                title: "\u63d0\u793a",
                                _box: "attboxr",
                                _con: "attconr",
                                _countdown: !1
                            },
                            function() {
                                var b = window._mvq = window._mvq || [];
                                b.push(["$setGeneral", "concern", "", "", ""]),
                                    b.push(["$addItem", "", a, "", "", ""]),
                                    b.push(["$logData"])
                            })
                    }
                }
            })
        }
    }),
    $(".btn-coll").livequery("click",
        function() {
            var a = $(this),
                b = parseInt(a.attr("id").replace("coll", ""));
            $.extend(jdModelCallCenter.settings, {
                clstag1: "login|keycount|5|3",
                clstag2: "login|keycount|5|4",
                id: b,
                fn: function() {
                    jdModelCallCenter.doAttention(this.id)
                }
            }),
                jdModelCallCenter.settings.fn()
        }),
"undefined" != typeof pageConfig && (pageConfig.isHome = function() {
    return pageConfig.navId && "home" == pageConfig.navId && location.href.indexOf("www.jd.com") >= 0
} ()),
    $.bigiframe = function(a, b, c) {
        if (a && $.browser.msie && 6 == $.browser.version) {
            if ("undefined" == typeof b) var b = a.outerWidth();
            if ("undefined" == typeof c) var c = a.outerHeight();
            var d = '<iframe src="javascript:false;" frameBorder="0" style="width:' + b + "px;height:" + c + 'px;position:absolute;z-index:-1;opacity:0;filter:alpha(opacity=0);top:0;left:0;" id="bigiframe">';
            a.append(d),
                a.bind("mouseenter",
                    function() {
                        a.find("#bigiframe").show()
                    }).bind("mouseleave",
                    function() {
                        a.find("#bigiframe").hide()
                    })
        }
    };
var category = {
        OBJ: $("#_JD_ALLSORT"),
        URL_Serv: "http://d.360buy.com/configs/get?type=JSON",
        URL_BrandsServ: "http://d.360buy.com/brandVclist/get?callback=category.getBrandService&ids=a,915,925^b,916,926^c,917,927^d,918,928^e,919,929^f,920,930^g,921,931^h,922,932^i,923,933^j,924,934^k,2096,2097^l,3512,3513^m,5274,5275^p,6211,6212",
        FN_GetLink: function(a, b) {
            var c, d;
            switch (a) {
                case 1:
                    c = b.u,
                        d = b.n;
                    break;
                case 2:
                    c = b.split("|")[0],
                        d = b.split("|")[1]
            }
            return "" == c ? d: (/^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-.\/?%&=]*)?$/.test(c) || (c = c.replace(/-000$/, ""), c = c.match(/^\d*-\d*$/) ? "http://channel.jd.com/" + c + ".html": "http://list.jd.com/" + c + ".html"), '<a href="' + c + '">' + d + "</a>")
        },
        FN_SetLink: function(a) {
            var b = "",
                c = pageConfig.isHome ? 'clstag="homepage|keycount|home2013|0604e"': "",
                d = pageConfig.isHome ? 'clstag="homepage|keycount|home2013|0603e"': "",
                e = pageConfig.isHome ? 'clstag="homepage|keycount|home2013|0605e"': "";
            switch (a) {
                case "c":
                    b = '<div class="categorys-links" id="categorys-links-diy" ' + c + '><a href="http://diy.jd.com/" target="_blank">DIY\u88c5\u673a\u5927\u5e08</a></div>';
                    break;
                case "b":
                    b = '<div class="categorys-links" id="categorys-links-cellphone" ' + d + '><a href="http://sale.jd.com/act/UaSsnjAKQNeyiY.html" target="_blank">JDPhone\u8ba1\u5212</a></div>';
                    break;
                case "d":
                    b = '<div class="categorys-links" id="categorys-links-jzc" ' + e + '><a href="http://channel.jd.com/jiazhuang.html" target="_blank">\u5bb6\u88c5\u57ce</a></div>'
            }
            return b
        },
        DATA_Simple: {
            1 : [{
                l: "http://book.jd.com/",
                n: "\u56fe\u4e66"
            },
                {
                    l: "http://mvd.jd.com/",
                    n: "\u97f3\u50cf"
                },
                {
                    l: "http://e.jd.com/",
                    n: "\u6570\u5b57\u5546\u54c1"
                }],
            2 : [{
                l: "http://channel.jd.com/electronic.html",
                n: "\u5bb6\u7528\u7535\u5668"
            }],
            3 : [{
                l: "http://shouji.jd.com/",
                n: "\u624b\u673a"
            },
                {
                    l: "http://channel.jd.com/digital.html",
                    n: "\u6570\u7801"
                },
                {
                    l: "http://mobile.jd.com/index.do",
                    n: "\u4eac\u4e1c\u901a\u4fe1"
                }],
            4 : [{
                l: "http://channel.jd.com/computer.html",
                n: "\u7535\u8111\u3001\u529e\u516c"
            }],
            5 : [{
                l: "http://channel.jd.com/home.html",
                n: "\u5bb6\u5c45"
            },
                {
                    l: "http://channel.jd.com/furniture.html",
                    n: "\u5bb6\u5177"
                },
                {
                    l: "http://channel.jd.com/decoration.html",
                    n: "\u5bb6\u88c5"
                },
                {
                    l: "http://channel.jd.com/kitchenware.html",
                    n: "\u53a8\u5177"
                }],
            6 : [{
                l: "http://channel.jd.com/clothing.html",
                n: "\u670d\u9970\u5185\u8863"
            },
                {
                    l: "http://channel.jd.com/jewellery.html",
                    n: "\u73e0\u5b9d\u9996\u9970"
                }],
            7 : [{
                l: "http://channel.jd.com/beauty.html",
                n: "\u4e2a\u62a4\u5316\u5986"
            }],
            8 : [{
                l: "http://channel.jd.com/shoes.html",
                n: "\u978b\u9774"
            },
                {
                    l: "http://channel.jd.com/bag.html",
                    n: "\u7bb1\u5305"
                },
                {
                    l: "http://channel.jd.com/watch.html",
                    n: "\u949f\u8868"
                },
                {
                    l: "http://channel.jd.com/1672-2615.html",
                    n: "\u5962\u4f88\u54c1"
                }],
            9 : [{
                l: "http://channel.jd.com/sports.html",
                n: "\u8fd0\u52a8\u6237\u5916"
            }],
            10 : [{
                l: "http://channel.jd.com/auto.html",
                n: "\u6c7d\u8f66\u7528\u54c1"
            }],
            11 : [{
                l: "http://channel.jd.com/baby.html",
                n: "\u6bcd\u5a74"
            },
                {
                    l: "http://channel.jd.com/toys.html",
                    n: "\u73a9\u5177\u4e50\u5668"
                }],
            12 : [{
                l: "http://channel.jd.com/food.html",
                n: "\u98df\u54c1\u996e\u6599"
            },
                {
                    l: "http://channel.jd.com/wine.html",
                    n: "\u9152\u7c7b"
                },
                {
                    l: "http://channel.jd.com/freshfood.html",
                    n: "\u751f\u9c9c"
                }],
            13 : [{
                l: "http://channel.jd.com/health.html",
                n: "\u8425\u517b\u4fdd\u5065"
            }],
            14 : [{
                l: "http://caipiao.jd.com/",
                n: "\u5f69\u7968"
            },
                {
                    l: "http://trip.jd.com/",
                    n: "\u65c5\u884c"
                },
                {
                    l: "http://chongzhi.jd.com/",
                    n: "\u5145\u503c"
                },
                {
                    l: "http://piao.jd.com/",
                    n: "\u7968\u52a1"
                }]
        },
        TPL_Simple: '{for item in data}<div class="item fore${parseInt(item_index)}">    <span data-split="1" {if pageConfig.isHome} clstag="homepage|keycount|home2013|06{if parseInt(item_index)+1>9}${parseInt(item_index)+1}{else}0${parseInt(item_index)+1}{/if}a"{/if}>        <h3>{for sItem in item}{if sItem_index!=0}\u3001{/if}<a href="${sItem.l}">${sItem.n}</a>{/for}</h3>        <s></s>    </span></div>{/for}<div class="extra"><a href="http://www.jd.com/allSort.aspx">\u5168\u90e8\u5546\u54c1\u5206\u7c7b</a></div>',
        FN_InitSimple: function() {
            var a, b = {},
                c = $("#categorys-2013");
            b.data = this.DATA_Simple,
                c.addClass("categorys-2014"),
                a = this.TPL_Simple.process(b);
            var d = $("#_JD_ALLSORT");
            d.html(a),
                $.bigiframe(d)
        },
        FN_GetData: function() {
            $.getJSONP(this.URL_Serv, category.getDataService)
        },
        FN_GetBrands: function() {
            $.getJSONP(this.URL_BrandsServ, category.getBrandService)
        },
        FN_RefactorJSON: function(a, b) {
            for (var c = a.length / b,
                     d = [], e = 0; c > e; e++) d.push({
                tabs: [],
                increment: null,
                count: b,
                skuids: []
            });
            for (var f = 0,
                     g = 0; g < a.length; g++) 0 == g % b && f++,
                d[f - 1].tabs.push(a[g]),
                d[f - 1].increment = f,
                d[f - 1].skuids.push(a[g].wid);
            return d
        },
        renderItem: function(a) {
            var b = '<div class="item fore${index+1}">    <span data-split="1" {if pageConfig.isHome}clstag="homepage|keycount|home2013|0${601+parseInt(index)}a"{/if}><h3>${n}</h3><s></s></span>    <div class="i-mc">        <div onclick="$(this).parent().parent().removeClass(\'hover\')" class="close">\xd7</div>        <div class="subitem" {if pageConfig.isHome}clstag="homepage|keycount|home2013|0${601+parseInt(index)}b"{/if}>            {for subitem in i}            <dl class="fore${parseInt(subitem_index)+1}">                <dt>${category.FN_GetLink(1,subitem)}</dt>                <dd>{for link in subitem.i}<em>${category.FN_GetLink(2,link)}</em>{/for}</dd>            </dl>            {/for}        </div>        <div class="cat-right-con fr" id="JD_sort_${t}"><div class="loading-style1"><b></b>\u52a0\u8f7d\u4e2d\uff0c\u8bf7\u7a0d\u5019...</div></div>    </div></div>',
                c = '<div class="item item-col2 fore${index+1}">    <span data-split="1" {if pageConfig.isHome}clstag="homepage|keycount|home2013|0${601+parseInt(index)}a"{/if}><h3>${n}</h3><s></s></span>    <div class="i-mc">        <ul class="title-list lh">            <li class="fore1"><a href="http://chongzhi.jd.com/">\u5145\u503c\u7f34\u8d39</a></li>            <li class="fore2"><a href="http://caipiao.jd.com/">\u4eac\u4e1c\u5f69\u7968</a></li>            <li class="fore3"><a href="http://channel.jd.com/4938-12316.html">\u57f9\u8bad\u6559\u80b2</a></li>            <li class="fore4"><a href="http://jipiao.jd.com/ticketquery/flightHotcity.action">\u4f18\u9009\u673a\u7968</a></li>            <li class="fore5"><a href="http://channel.jd.com/4938-12300.html">\u65c5\u884c\u7b7e\u8bc1</a></li>        </ul>        <div onclick="$(this).parent().parent().removeClass(\'hover\')" class="close">\xd7</div>        <div class="subitem" {if pageConfig.isHome}clstag="homepage|keycount|home2013|0${601+parseInt(index)}b"{/if}>            {for item in i}            <div class="sub-item-col sub-item-col${item_index} fl">                {for subitem in item.tabs}                <dl class="fore${parseInt(subitem_index)+1}">                    <dt>${category.FN_GetLink(1,subitem)}</dt>                    <dd>{for link in subitem.i}<em>${category.FN_GetLink(2,link)}</em>{/for}</dd>                </dl>                {/for}            </div>            {/for}        </div>    </div></div>';
            return "l" == a.t ? c.process(a) : b.process(a)
        },
        FN_GetBrands: function() {
            $.getJSONP(this.URL_BrandsServ, category.getBrandService)
        },
        getDataService: function(a) {
            var b = [],
                c = this;
            $.each(a.data,
                function(a) {
                    this.index = a,
                    "l" == this.t && (this.i = c.FN_RefactorJSON(this.i, 7)),
                        b.push(c.renderItem(this, a))
                }),
                b.push('<div class="extra"><a {if pageConfig.isHome}clstag="homepage|keycount|home2013|0614a"{/if} href="http://www.jd.com/allSort.aspx">\u5168\u90e8\u5546\u54c1\u5206\u7c7b</a></div>'),
                this.OBJ.attr("load", "1").html(b.join("")),
                $.bigiframe(this.OBJ),
                this.FN_GetBrands();
            var d = this,
                e = this.OBJ.outerWidth(),
                f = this.OBJ.outerHeight();
            $("#_JD_ALLSORT").dropdown({
                    delay: 0,
                    onmouseleave: function() {
                        $("#_JD_ALLSORT .item").removeClass("hover")
                    }
                },
                function(a) {
                    var b, c, g = document.documentElement.scrollTop + document.body.scrollTop,
                        h = $("#nav-2013").offset().top + 39;
                    h >= g ? (c = a.hasClass("fore13") ? 3 : 3, g = c) : (b = a.offset().top, g = g > b - 5 ? b - h - 10 : Math.max(3, g - h));
                    var i = a.find(".i-mc");
                    if (i.css({
                        top: g + "px"
                    }), d.OBJ.find("iframe")) {
                        var j = i.outerWidth() + e,
                            k = i.outerHeight() > f ? i.outerHeight() : f;
                        d.OBJ.find("iframe").css({
                            width: j,
                            height: k,
                            top: g
                        })
                    }
                })
        },
        getRightAreaTPL: function(a) {
            var b = "",
                c = "",
                d = "",
                e = "";
            return b = this.FN_SetLink(a),
                c = '{if p.length!=0}<dl class="categorys-promotions">    <dd>        <ul>            {for item in p}            <li>                <a href="${item.u}" target="_blank">                {if item.i}                    <img src="${item.i}" width="194" height="70" title="${item.n}" />                {else}                    ${item.n}                {/if}                </a>            </li>            {/for}        </ul>    </dd></dl>{/if}',
                d = '{if b.length!=0}<dl class="categorys-brands">    {if id=="k"}        <dt>\u63a8\u8350\u54c1\u724c\u51fa\u7248\u5546/\u4e66\u5e97</dt>    {else}        {if id=="l"}        <dt>\u63a8\u8350\u4ea7\u54c1</dt>        {else}        <dt>\u63a8\u8350\u54c1\u724c</dt>        {/if}    {/if}    <dd>        <ul>            {for item in b} <li><a href="${item.u}" target="_blank">${item.n}</a></li> {/for}        </ul>    </dd></dl>{/if}',
                e = /c|b|d/.test(a) ? b + d + c: b + c + d
        },
        getBrandService: function(a) {
            var b = this,
                c = a.data;
            this.OBJ.attr("load", "2"),
                $.each(c,
                    function() {
                        var a = this.id,
                            c = b.getRightAreaTPL(a);
                        "l" !== a && $("#JD_sort_" + a).html(c.process(this))
                    }),
                $(".cat-right-con").each(function(a) {
                    pageConfig.isHome && ($(this).find(".categorys-promotions").attr("clstag", "homepage|keycount|home2013|0" + (601 + a) + "c"), $(this).find(".categorys-brands").attr("clstag", "homepage|keycount|home2013|0" + (601 + a) + "d"))
                })
        },
        FN_Init: function() {
            if (this.OBJ.length) {
                this.OBJ.attr("load") || (window.pageConfig && 0 != window.pageConfig.pageId && this.FN_InitSimple(), $("#categorys").length ? $("#categorys").Jdropdown({
                    delay: 200
                }) : $("#categorys-2013").Jdropdown({
                    delay: 200
                }));
                var a = this;
                this.OBJ.one("mouseover",
                    function() {
                        var b = a.OBJ.attr("load");
                        if (b) {
                            if (1 != b) return;
                            a.FN_GetBrands()
                        } else a.FN_GetData()
                    })
            }
        }
    },
    UC = {
        DATA_Cookie: "aview",
        TPL_UnRegist: '<div class="prompt">            <span class="fl">\u60a8\u597d\uff0c\u8bf7<a href="javascript:login()" clstag="homepage|keycount|home2013|04a">\u767b\u5f55</a></span>            <span class="fr"></span>        </div>',
        TPL_Regist: '<div class="prompt">                <span class="fl"><strong>${Name}</strong></span>                <span class="fr"><a href="http://home.jd.com/">\u53bb\u6211\u7684\u4eac\u4e1c\u9996\u9875&nbsp;&gt;</a></span>            </div>',
        TPL_OList: {
            placeholder: '<div id="jduc-orderlist"></div>',
            fragment: '<div class="orderlist">                <div class="smt">                    <h4>\u6700\u65b0\u8ba2\u5355\u72b6\u6001\uff1a</h4>                    <div class="extra"><a href="http://jd2008.jd.com/JdHome/OrderList.aspx" target="_blank">\u67e5\u770b\u6240\u6709\u8ba2\u5355&nbsp;&gt;</a></div>                </div>                <div class="smc">                    <ul>                        {for item in orderList}                        <li class="fore${parseInt(item_index)+1}">                            <div class="p-img fl">                                {for image in item.OrderDetail}                                    {if image_index<2}                                        <a href="http://www.jd.com/product/${image.ProductId}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(image.ProductId)}n5/${image.ImgUrl}" width="50" height="50" alt="${image.ProductName}" /></a>                                    {/if}                                {/for}                                {if item.OrderDetail.length>2}                                    <a href="${item.passKeyUrl}" target="_blank" class="more">\u66f4\u591a</a>                                {/if}                            </div>                            <div class="p-detail fr">                                \u8ba2\u5355\u53f7\uff1a${item.OrderId}<br />                                \u72b6\u3000\u6001\uff1a<span>${UC.FN_SetState(item.OrderState)}</span><br />                                \u3000\u3000\u3000\u3000<a href="${item.passKeyUrl}">\u67e5\u770b\u8be6\u60c5</a>                            </div>                        </li>                        {/for}                    </ul>                </div>            </div>'
        },
        TPL_UList: '<div class="uclist">                <ul class="fore1 fl">                    <li><a target="_blank" clstag="homepage|keycount|home2013|04b" href="http://jd2008.jd.com/JdHome/OrderList.aspx">\u5f85\u5904\u7406\u8ba2\u5355<span id="num-unfinishedorder"></span></a></li>                    <li><a target="_blank" clstag="homepage|keycount|home2013|04c" href="http://jd2008.jd.com/user_spzx.aspx">\u54a8\u8be2\u56de\u590d<span id="num-consultation"></span></a></li>                    <li><a target="_blank" clstag="homepage|keycount|home2013|04d" href="http://t.jd.com/product/followProductList.action?isReduce=true">\u964d\u4ef7\u5546\u54c1<span id="num-reduction"></span></a></li>                    <li><a target="_blank" clstag="homepage|keycount|home2013|shouhou" href="http://myjd.jd.com/repair/orderlist.action">\u8fd4\u4fee\u9000\u6362\u8d27</a></li>                    <li><a target="_blank" clstag="homepage|keycount|home2013|04e" href="http://quan.jd.com/user_quan.action">\u4f18\u60e0\u5238<span id="num-ticket"></span></a></li>                </ul>                <ul class="fore2 fl">                    <li><a target="_blank" clstag="homepage|keycount|home2013|04i" href="http://t.jd.com/home/follow">\u6211\u7684\u5173\u6ce8&nbsp;&gt;</a></li>                    <li><a target="_blank" clstag="homepage|keycount|home2013|04g" href="http://bean.jd.com/myJingBean/list">\u6211\u7684\u4eac\u8c46&nbsp;&gt;</a></li>                    <li><a target="_blank" clstag="homepage|keycount|home2013|licai" href="http://trade.jr.jd.com/centre/browse.action">\u6211\u7684\u7406\u8d22&nbsp;&gt;</a></li>                    <li><a target="_blank" clstag="homepage|keycount|home2013|baitiao" href="http://baitiao.jd.com/creditUser/list">\u6211\u7684\u767d\u6761&nbsp;&gt;</a></li>                </ul>            </div>',
        TPL_VList: {
            placeholder: '<div class="viewlist">                <div class="smt" clstag="homepage|keycount|home2013|04k">                    <h4>\u6700\u8fd1\u6d4f\u89c8\u7684\u5546\u54c1\uff1a</h4>                    <div style="float:right;padding-right:9px;"><a style="border:0;color:#005EA7" href="http://my.jd.com/history/list.html" target="_blank">\u67e5\u770b\u6d4f\u89c8\u5386\u53f2&nbsp;&gt;</a></div>                </div>                <div class="smc" id="jduc-viewlist" clstag="homepage|keycount|home2013|04j">                    <div class="loading-style1"><b></b>\u52a0\u8f7d\u4e2d\uff0c\u8bf7\u7a0d\u5019...</div>                    <ul class="lh hide"></ul>                </div>            </div>',
            fragment: '{for item in list}<li><a href="http://item.jd.com/${item.wid}.html" target="_blank" title="${item.wname}"><img src="${pageConfig.FN_GetImageDomain(item.wid)}n5/${item.imgUrl}" width="50" height="50" alt="${item.wname}" /></a></li>{/for}'
        },
        FN_SetState: function(a) {
            var a = a;
            return a.length > 4 && (a = "<span title=" + a + ">" + a.substr(0, 4) + "...</span>"),
                a
        },
        FN_InitNewVList: function(a) {
            for (var b, c = a ? a.split("|") : [], d = c.length, e = [], f = 0; d > f;) e.push(c[f].split(".")[1]),
                f++;
            b = e.join(","),
                $.getJSONP("http://my.jd.com/product/info.html?ids=" + b + "&jsoncallback=UC.FN_ShowVList")
        },
        FN_InitVList: function(a) {
            for (var b = JSON.parse(a), c = b.length, d = ",", e = 0; c > e; e++) new RegExp(b[e].s).test(d) || (d += b[e].s + ",");
            d = d.replace(/(^,*)|(,*$)/g, ""),
                $.getJSONP("http://my.jd.com/product/info.html?ids=" + d + "&jsoncallback=UC.FN_ShowVList")
        },
        FN_ShowVList: function(a) {
            if (a) {
                var b = $("#jduc-viewlist").find(".loading-style1");
                a.length = a.length > 5 ? 5 : a.length;
                var c = {
                    list: a
                };
                b.length > 0 && b.hide();
                var d = this.TPL_VList.fragment.process(c);
                $("#jduc-viewlist").find("ul").eq(0).html(d).show()
            }
        },
        FN_setWords: function(a) {
            var b = '<font style="color:{0}">({1})</font>',
                c = "";
            return c = 0 == a ? "#ccc": "#c00",
                pageConfig.FN_StringFormat(b, c, a)
        },
        FN_InitOList: function() {
            $.ajax({
                url: "http://minijd.360buy.com/getOrderList",
                dataType: "jsonp",
                success: function(a) {
                    if (a && 0 == a.error && a.orderList) {
                        var b = UC.TPL_OList.fragment.process(a);
                        $("#jduc-orderlist").html(b)
                    }
                }
            }),
                $.ajax({
                    url: "http://minijd.360buy.com/getHomeCount",
                    dataType: "jsonp",
                    success: function(a) {
                        a && 0 == a.error && $("#num-unfinishedorder").html(UC.FN_setWords(a.orderCount))
                    }
                }),
                $.ajax({
                    url: "http://comm.360buy.com/index.php?mod=Consultation&action=havingReplyCount",
                    dataType: "jsonp",
                    success: function(a) {
                        a && $("#num-consultation").html(UC.FN_setWords(a.cnt))
                    }
                }),
                $.ajax({
                    url: "http://follow.soa.jd.com/product/queryForReduceProductCount.action?",
                    dataType: "jsonp",
                    success: function(a) {
                        a && a.data > 0 && $("#num-reduction").html(UC.FN_setWords(a.data))
                    }
                }),
                $.ajax({
                    url: "http://quan.jd.com/getcouponcount.action",
                    dataType: "jsonp",
                    success: function(a) {
                        a && $("#num-ticket").html(UC.FN_setWords(a.CouponCount))
                    }
                })
        }
    },
    MCART = {
        DATA_Cookie: "cn",
        DATA_Amount: readCookie("cn") || "0",
        URL_Serv: "http://cart.jd.com/cart/miniCartServiceNew.action",
        TPL_Iframe: '<iframe scrolling="no" frameborder="0" marginheight="0" marginwidth="0" id="settleup-iframe"></iframe>',
        TPL_NoGoods: '<div class="prompt"><div class="nogoods"><b></b>\u8d2d\u7269\u8f66\u4e2d\u8fd8\u6ca1\u6709\u5546\u54c1\uff0c\u8d76\u7d27\u9009\u8d2d\u5427\uff01</div></div>',
        TPL_List: {
            wrap: '<div id="settleup-content"><div class="smt"><h4 class="fl">\u6700\u65b0\u52a0\u5165\u7684\u5546\u54c1</h4></div><div class="smc"></div><div class="smb ar">\u5171<b>${Num}</b>\u4ef6\u5546\u54c1\u3000\u5171\u8ba1<strong>\uffe5 ${TotalPromotionPrice.toFixed(2)}</strong><br><a href="http://cart.jd.com/cart/cart.html?r=${+new Date}" title="\u53bb\u8d2d\u7269\u8f66\u7ed3\u7b97" id="btn-payforgoods">\u53bb\u8d2d\u7269\u8f66\u7ed3\u7b97</a></div></div>',
            sigle: '<ul id="mcart-sigle">{for list in TheSkus}  <li>      <div class="p-img fl"><a href="http://item.jd.com/${list.Id}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(list.Id)}n5/${list.ImgUrl}" width="50" height="50" alt=""></a></div>      <div class="p-name fl"><a href="http://item.jd.com/${list.Id}.html" title="${list.Name}" target="_blank">${list.Name}</a></div>      <div class="p-detail fr ar">          <span class="p-price"><strong>\uffe5${list.PromotionPrice.toFixed(2)}</strong>\xd7${list.Num}</span>          <br>          {if parseInt(list.FanPrice)>0}          <span class="hl-green">\u8fd4\u73b0\uff1a\uffe5<em>${list.FanPrice}</em></span>          <br>          {/if}          {if parseInt(list.Score)>0}          <span class="hl-orange">\u9001\u4eac\u8c46\uff1a<em>${list.Score}</em></span>          <br>          {/if}          <a class="delete" data-id="${list.Id}" data-type="RemoveProduct" href="#delete">\u5220\u9664</a>      </div>      {for jq in list.CouponAD}      <div class="gift-jq">[\u8d60\u5238] \u8d60\u9001${jq.Jing}\u4eac\u5238 ${jq.LimitAd}</a></div>      {/for}  </li>{/for}</ul>',
            gift: '<ul id="mcart-gift">{for list in TheGifts}  <li>      <div class="p-img fl"><a href="http://item.jd.com/${list.MainSKU.Id}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(list.MainSKU.Id)}n5/${list.MainSKU.ImgUrl}" width="50" height="50" alt=""></a></div>      <div class="p-name fl"><a href="http://item.jd.com/${list.MainSKU.Id}.html" title="${list.MainSKU.Name}" target="_blank">${list.MainSKU.Name}</a></div>      <div class="p-detail fr ar">          <span class="p-price"><strong>\uffe5${list.PromotionPrice.toFixed(2)}</strong>\xd7${list.Num}</span>          <br>          {if parseInt(list.FanPrice)>0}          <span class="hl-green">\u8fd4\u73b0\uff1a\uffe5<em>${list.FanPrice}</em></span>          <br>          {/if}          {if parseInt(list.Score)>0}          <span class="hl-orange">\u9001\u4eac\u8c46\uff1a<em>${list.Score}</em></span>          <br>          {/if}          <a class="delete" data-id="${list.MainSKU.Id}" data-type="RemoveProduct" href="#delete">\u5220\u9664</a>      </div>      {for gift in list.Skus}      <div class="gift"><a href="http://item.jd.com/${gift.Id}.html" target="_blank">[{if gift.Type==2}\u8d60\u54c1{/if}{if gift.Type==1}\u9644\u4ef6{/if}] ${gift.Name}</a></div>      {/for}      {for jq in list.CouponAD}      <div class="gift-jq">[\u8d60\u5238] \u8d60\u9001${jq.Jing}\u5143\u4eac\u5238 ${jq.LimitAd}</a></div>      {/for}  </li>  {/for}</ul>',
            suit: '{for suit in TheSuit}<ul id="mcart-suit">  <li class="dt">      <div class="fl"><span>[\u5957\u88c5]</span> ${suit.Name}</div>      <div class="fr"><em>\u5c0f\u8ba1\uff1a\uffe5${(suit.PromotionPrice*suit.Num).toFixed(2)}</em></div>      <div class="clr"></div>  </li>  {for list in suit.Skus}  <li>      <div class="p-img fl"><a href="http://item.jd.com/${list.Id}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(list.Id)}n5/${list.ImgUrl}" width="50" height="50" alt=""></a></div>      <div class="p-name fl"><span></span><a href="http://item.jd.com/${list.Id}.html" title="${list.Name}" target="_blank">${list.Name}</a></div>      <div class="p-detail fr ar">          <span class="p-price"><strong>\uffe5${list.PromotionPrice.toFixed(2)}</strong>\xd7${list.Num}</span>          <br>          {if parseInt(list.FanPrice)>0}          <span class="hl-green">\u8fd4\u73b0\uff1a\uffe5<em>${list.FanPrice}</em></span>          <br>          {/if}          {if parseInt(list.Score)>0}          <span class="hl-orange">\u9001\u4eac\u8c46\uff1a<em>${list.Score}</em></span>          <br>          {/if}          <a class="delete" data-id="${list.Id}|${suit.Id}" data-type="RemoveSuit" href="#delete">\u5220\u9664</a>      </div>      {for gift in list.Gifts}      <div class="gift"><a href="http://item.jd.com/${gift.Id}.html" target="_blank">[{if gift.Type==2}\u8d60\u54c1{/if}{if gift.Type==1}\u9644\u4ef6{/if}] ${gift.Name}</a></div>      {/for}      {for jq in list.CouponAD}      <div class="gift-jq">[\u8d60\u5238] \u8d60\u9001${jq.Jing}\u5143\u4eac\u5238 ${jq.LimitAd}</a></div>      {/for}  </li>  {/for}</ul>{/for}',
            mj: '{for mj in ManJian}<ul id="mcart-mj">  <li class="dt">      <div class="fl"><span class="hl-green">\u6ee1\u51cf</span>{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}</div>      <div class="fr"><em>\u5c0f\u8ba1\uff1a\uffe5${(mj.PromotionPrice*mj.Num).toFixed(2)}</em></div>      <div class="clr"></div>  </li>  {for list in mj.Skus}  <li>      <div class="p-img fl"><a href="http://item.jd.com/${list.Id}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(list.Id)}n5/${list.ImgUrl}" width="50" height="50" alt=""></a></div>      <div class="p-name fl"><span></span><a href="http://item.jd.com/${list.Id}.html" title="${list.Name}" target="_blank">${list.Name}</a></div>      <div class="p-detail fr ar">          <span class="p-price"><strong>\uffe5${list.PromotionPrice.toFixed(2)}</strong>\xd7${list.Num}</span>          <br>          {if parseInt(list.FanPrice)>0}          <span class="hl-green">\u8fd4\u73b0\uff1a\uffe5<em>${list.FanPrice}</em></span>          <br>          {/if}          {if parseInt(list.Score)>0}          <span class="hl-orange">\u9001\u4eac\u8c46\uff1a<em>${list.Score}</em></span>          <br>          {/if}          <a class="delete" data-id="${list.Id}|${mj.Id}" data-type="RemoveSuit" href="#delete">\u5220\u9664</a>      </div>      {for gift in list.Gifts}      <div class="gift"><a href="http://item.jd.com/${gift.Id}.html" target="_blank">[{if gift.Type==2}\u8d60\u54c1{/if}{if gift.Type==1}\u9644\u4ef6{/if}] ${gift.Name}</a></div>      {/for}      {for jq in list.CouponAD}      <div class="gift-jq">[\u8d60\u5238] \u8d60\u9001${jq.Jing}\u5143\u4eac\u5238 ${jq.LimitAd}</a></div>      {/for}  </li>  {/for}</ul>{/for}',
            mz: '{for mz in ManZeng}<ul id="mcart-mz">  <li class="dt">      <div class="fl"><span class="hl-orange">\u6ee1\u8d60</span>          {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}      </div>      <div class="fr"><em>\u5c0f\u8ba1\uff1a\uffe5${(mz.PromotionPrice*mz.Num).toFixed(2)}</em></div>      <div class="clr"></div>  </li>  {for gift in mz.ManGifts}<li class="dt-mz"><a href="${gift.Id}" target="_blank">[\u8d60\u54c1]${gift.Name}</a>\xd7${gift.Num}</li>{/for}  {for list in mz.Skus}  <li>      <div class="p-img fl"><a href="http://item.jd.com/${list.Id}.html" target="_blank"><img src="${pageConfig.FN_GetImageDomain(list.Id)}n5/${list.ImgUrl}" width="50" height="50" alt=""></a></div>      <div class="p-name fl"><span></span><a href="http://item.jd.com/${list.Id}.html" title="${list.Name}" target="_blank">${list.Name}</a></div>      <div class="p-detail fr ar">          <span class="p-price"><strong>\uffe5${list.PromotionPrice.toFixed(2)}</strong>\xd7${list.Num}</span>          <br>          {if parseInt(list.FanPrice)>0}          <span class="hl-green">\u8fd4\u73b0\uff1a\uffe5<em>${list.FanPrice}</em></span>          <br>          {/if}          {if parseInt(list.Score)>0}          <span class="hl-orange">\u9001\u4eac\u8c46\uff1a<em>${list.Score}</em></span>          <br>          {/if}          <a class="delete" data-id="${list.Id}|${mz.Id}" data-type="RemoveSuit" href="#delete">\u5220\u9664</a>      </div>      {for gift in list.Gifts}      <div class="gift"><a href="http://item.jd.com/${gift.Id}.html" target="_blank">[{if gift.Type==2}\u8d60\u54c1{/if}{if gift.Type==1}\u9644\u4ef6{/if}] ${gift.Name}</a></div>      {/for}      {for jq in list.CouponAD}      <div class="gift-jq">[\u8d60\u5238] \u8d60\u9001${jq.Jing}\u5143\u4eac\u5238 ${jq.LimitAd}</a></div>      {/for}  </li>  {/for}</ul>{/for}'
        },
        FN_BindEvents: function() {
            var a = this;
            $("#settleup-content .delete").bind("click",
                function() {
                    var b = $(this).attr("data-id").split("|"),
                        c = $(this).attr("data-type"),
                        d = {
                            method: c,
                            cartId: b[0]
                        };
                    b && (b.length > 1 && b[1] && (d.targetId = b[1]), $.ajax({
                        url: MCART.URL_Serv,
                        data: d,
                        dataType: "jsonp",
                        success: function(b) {
                            b.Result && a.FN_Refresh()
                        }
                    }))
                })
        },
        FN_Refresh: function() {
            var a = document.getElementById("settleup") ? $("#settleup dl") : $("#settleup-2013 dl"),
                b = a.find("dd").eq(0),
                c = function(a) {
                    var c = a.Cart,
                        d = c.TheSkus.length + c.TheSuit.length + c.TheGifts.length + c.ManJian.length + c.ManZeng.length,
                        e = MCART.TPL_List.sigle.process(a.Cart),
                        f = MCART.TPL_List.gift.process(a.Cart),
                        g = MCART.TPL_List.suit.process(a.Cart),
                        h = MCART.TPL_List.mz.process(a.Cart),
                        i = MCART.TPL_List.mj.process(a.Cart);
                    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) {
                        var j = $("#settleup-content");
                        j.before(MCART.TPL_Iframe);
                        var k = $("#settleup-iframe");
                        k.height(j.height())
                    }
                    MCART.FN_BindEvents()
                };
            $.ajax({
                url: MCART.URL_Serv,
                data: {
                    method: "GetCart"
                },
                dataType: "jsonp",
                success: function(a) {
                    c(a)
                }
            }),
                MCART.DATA_Amount = readCookie(MCART.DATA_Cookie),
            null != MCART.DATA_Amount && $("#shopping-amount").html(MCART.DATA_Amount).parent().show()
        }
    },
    NotifyPop = {
        _saleNotify: "http://skunotify." + pageConfig.FN_getDomain() + "/pricenotify.html?",
        _stockNotify: "http://skunotify." + pageConfig.FN_getDomain() + "/storenotify.html?",
        init: function(a) {
            var b, c = this,
                d = this.serializeUrl(location.href),
                e = /from=weibo/.test(location.href) ? location.search.replace(/\?/, "") : "";
            /from=weibo/.test(location.href) && (b = d.param.type, this.setThickBox(b, e)),
                a.livequery("click",
                    function() {
                        var a = ($(this).attr("id"), $(this).attr("data-type") || 2);
                        return c.sku = $(this).attr("data-sku"),
                            c.checkLogin(function(b) {
                                b.IsAuthenticated ? (c._userPin = b.Name, c.setThickBox(a, e)) : (jdModelCallCenter.settings.fn = function() {
                                    c.checkLogin(function(b) {
                                        b.IsAuthenticated && (c._userPin = b.Name, c.setThickBox(a, e))
                                    })
                                },
                                    jdModelCallCenter.login())
                            }),
                            !1
                    }).attr("href", "#none").removeAttr("target")
        },
        serializeUrl: function(a) {
            var b, c, d, e, f = a.indexOf("?"),
                g = a.substr(0, f),
                h = a.substr(f + 1),
                i = h.split("&"),
                j = i.length,
                k = {};
            for (b = 0; j > b; b++) c = i[b].split("="),
                d = c[0],
                e = c[1],
                k[d] = e;
            return {
                url: g,
                param: k
            }
        },
        checkLogin: function(a) {
            "function" == typeof a && $.getJSON("http://passport." + pageConfig.FN_getDomain() + "/loginservice.aspx?method=Login&callback=?",
                function(b) {
                    b.Identity && a(b.Identity)
                })
        },
        setThickBox: function(a, b) {
            var c, d, e, f = {
                    skuId: this.sku,
                    pin: this._userPin,
                    webSite: 1,
                    origin: 1,
                    source: 1
                },
                g = this.serializeUrl(location.href);
            /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({
                    type: "iframe",
                    source: decodeURIComponent(d) + "&nocache=" + +new Date,
                    width: 500,
                    height: e,
                    title: c,
                    _box: "notify_box",
                    _con: "notify_con",
                    _title: "notify_title"
                })
        }
    }; !
    function() {
        pageConfig.FN_ImgError(document),
            $("img[data-lazyload]").Jlazyload({
                type: "image",
                placeholderClass: "err-product"
            }),
            category.FN_Init(),
            document.getElementById("shortcut") ? $("#shortcut .menu").Jdropdown({
                delay: 50
            }) : ($("#biz-service").Jdropdown({
                    delay: 50
                },
                function() {
                    $.ajax({
                        url: "http://www.jd.com/hotwords.aspx?position=new-index-002",
                        dataType: "script",
                        scriptCharset: "gb2312",
                        cache: !0
                    })
                }), $("#site-nav").Jdropdown({
                    delay: 50
                },
                function() {
                    $.ajax({
                        url: "http://www.jd.com/hotwords.aspx?position=new-index-003",
                        dataType: "script",
                        scriptCharset: "gb2312",
                        cache: !0
                    })
                })),
            document.getElementById("navitems") ? $("#navitems li").Jdropdown() : $("#navitems-2013 li").Jdropdown(),
            $.ajax({
                url: ("https:" == document.location.protocol ? "https://": "http://") + "passport." + pageConfig.FN_getDomain() + "/new/helloService.ashx?m=ls",
                dataType: "jsonp",
                scriptCharset: "gb2312",
                success: function(a) {
                    a && a.info && $("#loginbar").html(a.info),
                    a && a.sso && $.each(a.sso,
                        function() {
                            $.getJSON(this)
                        })
                }
            }),
            document.getElementById("settleup") ? (null != MCART.DATA_Amount && ($("#settleup s").eq(0).addClass("shopping"), $("#shopping-amount").html(MCART.DATA_Amount)), $("#settleup dl").Jdropdown({
                    delay: 200
                },
                function() {
                    MCART.FN_Refresh(),
                        $("#settleup-url").attr("href", "http://cart.jd.com/cart/cart.html?r=" + +new Date)
                })) : (null != MCART.DATA_Amount && $("#shopping-amount").html(MCART.DATA_Amount), $("#settleup-2013 dl").Jdropdown({
                    delay: 200
                },
                function() {
                    MCART.FN_Refresh(),
                        $("#settleup-url").attr("href", "http://cart.jd.com/cart/cart.html?r=" + +new Date)
                }));
        var a = document.getElementById("my360buy") ? $("#my360buy") : $("#my360buy-2013");
        a.find("dl").Jdropdown({
                delay: 100
            },
            function(a) {
                a.attr("load") || $.login({
                    automatic: !1,
                    complete: function(b) {
                        if (b) {
                            var c = a.find("dd").eq(0),
                                d = "",
                                e = readCookie(UC.DATA_Cookie);
                            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() {
                                        a.removeAttr("load")
                                    },
                                    6e4),
                                /\[\{/.test(e) ? UC.FN_InitVList(e) : UC.FN_InitNewVList(e),
                                UC.FN_InitOList()
                        }
                    }
                })
            }),
            document.onkeyup = function(a) {
                var b = document.activeElement.tagName.toLowerCase();
                if ("input" != b && "textarea" != b) {
                    var a = a ? a: window.event,
                        c = a.keyCode || a.which;
                    switch (c) {
                        case 68:
                            window.pageConfig.clientViewTop || (window.pageConfig.clientViewTop = 0),
                                window.pageConfig.clientViewTop += document.documentElement.clientHeight,
                                window.scrollTo(0, pageConfig.clientViewTop);
                            break;
                        case 83:
                            window.scrollTo(0, 0),
                                window.pageConfig.clientViewTop = 0,
                                document.getElementById("key").focus();
                            break;
                        case 84:
                            window.scrollTo(0, 0),
                                window.pageConfig.clientViewTop = 0
                    }
                }
            }
    } ();
var $o = function() {
    function a() {
        this.length = 0,
            this.index = -1,
            this.iLastModified = 0,
            this.lastKeyword = !1
    }
    var b = {};
    b.replace = function(a, b) {
        return a.replace(/#{(.*?)}/g,
            function() {
                var a = arguments[1];
                return "undefined" != typeof b[a] ? b[a] : arguments[0]
            })
    },
        String.prototype.isEmpty = function() {
            return 0 == this.length
        };
    var c = '<a style="color:#005AA0" onclick="$o.del(event)">\u5220\u9664</a>',
        d = "\u641c\u7d22\u5386\u53f2",
        e = '<li id="d_#{id}" suggest-pos="#{suggest_pos}" title="#{title}" onclick="$o.clickItem(this)" history="1"><div class="search-item" style="color:#005AA0">#{keyword}</div><div class="search-count">' + d + "</div></li>",
        f = '<li id="d_#{id}" suggest-pos="#{suggest_pos}" title="#{title}" onclick="$o.clickItem(this)"><div class="search-item">#{keyword}</div><div class="search-count">\u7ea6#{amount}\u4e2a\u5546\u54c1</div></li>',
        g = '<div id="d_#{id}" suggest-pos="#{suggest_pos}" class="#{className}" title="#{title}" cid="#{cid}" cLevel="#{cLevel}" onclick="$o.clickItem(this)"><div class="search-item">\u5728<strong>#{cname}</strong>\u5206\u7c7b\u4e2d\u641c\u7d22</div><div class="search-count">\u7ea6#{amount}\u4e2a\u5546\u54c1</div></div>#{categorys}',
        h = '<li class="fore1"><div id="d_#{id}" suggest-pos="#{suggest_pos}" class="fore1" title="#{title}" onclick="$o.clickItem(this)"><div class="search-item">#{keyword}</div><div class="search-count" #{style}>\u7ea6#{amount}\u4e2a\u5546\u54c1</div></div>#{categorys}</li>',
        i = "http://dd.search.jd.com/?key=#{keyword}",
        j = "#FFDFC6",
        k = "#FFF",
        l = $("#key"),
        m = $("#shelper");
    a.prototype.init = function() {
        this.length = 0,
            this.index = -1,
            this.click = !1
    },
        a.prototype.hideTip = function() {
            this.init(),
                this.lastKeyword = !1,
                m.html("").hide()
        },
        a.prototype.clickItem = function(a) {
            var b = a.getAttribute("cid");
            search.cid = null != b && "" != b ? b: null;
            var c = a.getAttribute("cLevel");
            search.cLevel = null != c && "" != c ? c: null;
            var d = a.getAttribute("ev_val");
            search.ev_val = null == d || $.trim(d).isEmpty() ? null: d;
            var e = a.getAttribute("title");
            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")
        },
        a.prototype.mouseenter = function(a) {
            var a = $(a);
            a.attr("history") && a.find(".search-count").html(c),
                a.css("background", j);
            var b = a.attr("id").split("_"),
                e = parseInt(b[1], 10);
            if (e != this.index) {
                if (this.index > -1) {
                    var f = $("#d_" + this.index);
                    f.css("background", k),
                    f.attr("history") && f.find(".search-count").html(d)
                }
                this.index = e
            }
        },
        a.prototype.mouseleave = function(a) {
            a.css("background", k),
            a.attr("history") && a.find(".search-count").html(d)
        },
        a.prototype.selectItemNode = function(a) {
            var b = this,
                e = $("#d_" + b.index + ":visible");
            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;
            var f = $("#d_" + b.index);
            if (f.length > 0) {
                f.attr("history") && f.find(".search-count").html(c),
                    f.css("background-color", j);
                var g = f.attr("title");
                null == g || $.trim(g).isEmpty() || l.val(g);
                var h = f.attr("cid");
                search.cid = null != h && "" != h ? h: null;
                var i = f.attr("cLevel");
                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
            }
        },
        a.prototype.input = function() {
            var a = this;
            a.timeoutId && clearTimeout(a.timeoutId),
                a.timeoutId = setTimeout(function() {
                        var c = $.trim(l.val());
                        if (c === a.lastKeyword || !(c || readCookie("pin") || readCookie("_tp"))) return ! 1;
                        a.lastKeyword = c;
                        var d = b.replace(i, {
                            keyword: encodeURIComponent(c)
                        });
                        $.ajax({
                            url: d,
                            dataType: "jsonp",
                            scriptCharset: "utf-8",
                            jsonp: "callback",
                            success: function(b) {
                                return function(c) {
                                    a.iLastModified > b || (a.iLastModified = b, a.onloadItems(c))
                                }
                            } ((new Date).getTime())
                        })
                    },
                    150)
        },
        a.prototype.keydown_up = function(a) {
            var b = this,
                c = a || window.event;
            0 == l.length && (l = $("#key")),
            0 == m.length && (m = $("tie"));
            var d = c.keyCode;
            switch (d) {
                case 38:
                    b.selectItemNode( - 1);
                    break;
                case 40:
                    b.selectItemNode(1);
                    break;
                case 27:
                    b.hideTip();
                    break;
                case 37:
                    break;
                case 39:
                    break;
                default:
                    $.browser.mozilla || b.input()
            }
        },
        a.prototype.onloadItems = function(a) {
            if (0 == a.length) return this.hideTip(),
                void 0;
            var c = this;
            c.init();
            var d = "",
                i = 0;
            window.pageConfig && window.pageConfig.searchType && (i = window.pageConfig.searchType);
            for (var j = 0,
                     k = "",
                     n = !1,
                     o = 0,
                     p = $.trim(l.val()), q = 0, r = a.length; r > q; q++) {
                var s = a[q];
                if (s) {
                    var t = $.trim(s.keyword),
                        u = t.toLowerCase().indexOf(p.toLowerCase()),
                        v = t;
                    if (0 == u && (v = p + "<strong>" + t.substring(u + p.length) + "</strong>"), "string" != typeof s.cid || $.trim(s.cid).isEmpty()) {
                        var w = "";
                        k += 0 == s.amount ? b.replace(e, {
                            id: o,
                            title: s.keyword,
                            keyword: v,
                            amount: s.amount,
                            suggest_pos: j
                        }) : b.replace(f, {
                            id: o,
                            title: s.keyword,
                            keyword: v,
                            amount: s.amount,
                            suggest_pos: j,
                            style: w
                        }),
                            o++,
                            j++
                    } else {
                        if (0 == n) {
                            n = !0;
                            var w = 'style="visibility:hidden"',
                                x = 0;
                            s.oamount && s.oamount > 0 && (x = s.oamount, w = ""),
                                k += b.replace(h, {
                                    id: o,
                                    title: s.keyword,
                                    keyword: v,
                                    amount: x,
                                    suggest_pos: j,
                                    style: w
                                }),
                                o++,
                                j++
                        }
                        if ("string" == typeof s.cname && $.trim(s.cname).isEmpty()) continue;
                        var y = s.level;
                        if (!y) continue;
                        if (0 == i) {
                            if ("string" == typeof y && /^[1-8]4$/.test(y)) continue
                        } else if (5 == i) {
                            if ("string" == typeof y && !/^[5-8]2$/.test(y)) continue
                        } else if (1 == i || 2 == i || 3 == i || 4 == i) continue;
                        var z = "item1",
                            A = b.replace(g, {
                                id: o,
                                title: s.keyword,
                                cid: s.cid,
                                cLevel: s.level,
                                className: z,
                                cname: s.cname,
                                amount: s.amount,
                                suggest_pos: j - 1
                            });
                        k = b.replace(k, {
                            categorys: A
                        }),
                            o++
                    }
                }
            }
            c.length = o,
                d = b.replace(k, {
                    categorys: ""
                }),
                "" != d ? (d += '<li class="close" onclick="$o.hideTip()">\u5173\u95ed</li>', m.html(d).show(), m.find('[id^="d_"]').bind("mouseleave",
                    function() {
                        c.mouseleave($(this))
                    }).bind("mouseenter",
                    function() {
                        c.mouseenter($(this))
                    })) : m.html("").hide()
        },
        a.prototype.bind_input = function() {
            $.browser.mozilla ? (l.bind("keydown",
                function(a) {
                    n.keydown_up(a)
                }), l.bind("input",
                function(a) {
                    n.input(a)
                })) : l.bind("keyup",
                function(a) {
                    n.keydown_up(a)
                }),
                l.focus(function() {
                    setTimeout(function() {
                            n.input()
                        },
                        10)
                }),
                m.parent().bind("mouseenter",
                    function() {
                        n.e_position = !0,
                        n.timeoutId && clearTimeout(n.timeoutId)
                    }).bind("mouseleave",
                    function() {
                        n.e_position = !1,
                            n.timeoutId = setTimeout(function() {
                                    n.hideTip()
                                },
                                500)
                    }),
                $(document).click(function() {
                    n.e_position || n.hideTip()
                })
        },
        a.prototype.del = function(a) {
            var b = this;
            a = a ? a: window.event,
                window.event ? (a.cancelBubble = !0, a.returnValue = !1) : (a.stopPropagation(), a.preventDefault());
            var c = $(a.srcElement ? a.srcElement: a.target),
                d = c.parent().parent().attr("title");
            $.ajax({
                url: "http://search.jd.com/suggest.php?op=del&callback=?&key=" + encodeURIComponent(d),
                dataType: "jsonp",
                scriptCharset: "utf-8",
                beforeSend: function() {
                    c.parent().parent().hide()
                },
                success: function() {
                    b.lastKeyword = !1,
                        l.focus()
                }
            })
        };
    var n = new a;
    return n.bind_input(),
        n
} ();
pageConfig.FN_InitSidebar = function() {
    $("#toppanel").length || $(document.body).prepend('<div class="w ld" id="toppanel"></div>'),
        $("#toppanel").append('<div id="sidepanel" class="hide"></div>');
    var a = $("#sidepanel");
    this.scroll = function() {
        var b = this;
        $(window).bind("scroll",
            function() {
                var b = document.body.scrollTop || document.documentElement.scrollTop;
                0 == b ? a.hide() : a.show()
            }),
            b.initCss(),
            $(window).bind("resize",
                function() {
                    b.initCss()
                })
    },
        this.initCss = function() {
            var b, c = pageConfig.compatible ? 1210 : 990;
            screen.width >= 1210 && (b = $.browser.msie && $.browser.version <= 6 ? {
                right: "-26px"
            }: {
                right: (document.documentElement.clientWidth - c) / 2 - 26 + "px"
            },
                a.css(b))
        },
        this.addCss = function(b) {
            a.css(b)
        },
        this.addItem = function(b) {
            a.append(b)
        },
        this.setTop = function() {
            this.addItem("<a href='#' class='gotop' title='\u4f7f\u7528\u5feb\u6377\u952eT\u4e5f\u53ef\u8fd4\u56de\u9876\u90e8\u54e6\uff01'><b></b>\u8fd4\u56de\u9876\u90e8</a>")
        }
},
    pageConfig.FN_InitContrast = function(a, b, c) {
        var a = a || "_contrast",
            c = c || "list",
            b = b || "http://misc.360buyimg.com/contrast/js/contrast.js?ver=" + +new Date,
            d = readCookie(a + "_status");
        return pageConfig.isInitContrast ? !1 : ("show" != d && "side" != d || 1 != !!readCookie(a) ? $(".btn-compare").bind("click",
            function() {
                var d = this.getAttribute("skuid");
                $.getScript(b,
                    function() {
                        Contrast && Contrast.init(c, a).showPopWin(d)
                    })
            }) : $.getScript(b,
            function() {
                Contrast && Contrast.init(c, a)
            }), pageConfig.isInitContrast = 1, void 0)
    },
/debug=global/.test(location.href) || $.ajax({
    url: "http://fa.360buy.com/loadFa_toJson.js?aid=2_601_5095",
    dataType: "script",
    scriptCharset: "gbk",
    cache: !0
});