var T, baidu = T = baidu || {
    version: "1.3.9"
};
baidu.guid = "$BAIDU$";
window[baidu.guid] = window[baidu.guid] || {};
baidu.ajax = baidu.ajax || {};
baidu.fn = baidu.fn || {};
baidu.fn.blank = function() {};
baidu.ajax.request = function(e, q) {
    var n = "Content-Type",
    f = "failure",
    b = q || {},
    j = b.data || "",
    h = !(b.async === false),
    o = b.username || "",
    r = b.password || "",
    i = (b.method || "GET").toUpperCase(),
    g = b.headers || {},
    p = b.timeout || 0,
    m = {},
    k,
    d,
    a;
    function l() {
        if (a.readyState == 4) {
            try {
                var b = a.status
            } catch(d) {
                c(f);
                return
            }
            c(b);
            if (b >= 200 && b < 300 || b == 304 || b == 1223) c("success");
            else c(f);
            window.setTimeout(function() {
                a.onreadystatechange = baidu.fn.blank;
                if (h) a = null
            },
            0)
        }
    }
    function s() {
        if (window.ActiveXObject) try {
            return new ActiveXObject("Msxml2.XMLHTTP")
        } catch(a) {
            try {
                return new ActiveXObject("Microsoft.XMLHTTP")
            } catch(a) {}
        }
        if (window.XMLHttpRequest) return new XMLHttpRequest
    }
    function c(b) {
        var c = "onsuccess";
        b = "on" + b;
        var d = m[b],
        e = baidu.ajax[b];
        if (d) {
            k && clearTimeout(k);
            if (b != c) d(a);
            else {
                try {
                    a.responseText
                } catch(f) {
                    return d(a)
                }
                d(a, a.responseText)
            }
        } else if (e) {
            if (b == c) return;
            e(a)
        }
    }
    for (d in b) m[d] = b[d];
    g["X-Requested-With"] = "XMLHttpRequest";
    try {
        a = s();
        if (i == "GET") {
            if (j) {
                e += (e.indexOf("?") >= 0 ? "&": "?") + j;
                j = null
            }
            if (b["noCache"]) e += (e.indexOf("?") >= 0 ? "&": "?") + "b" + +new Date + "=1"
        }
        if (o) a.open(i, e, h, o, r);
        else a.open(i, e, h);
        if (h) a.onreadystatechange = l;
        i == "POST" && a.setRequestHeader(n, g[n] || "application/x-www-form-urlencoded");
        for (d in g) g.hasOwnProperty(d) && a.setRequestHeader(d, g[d]);
        c("beforerequest");
        if (p) k = setTimeout(function() {
            a.onreadystatechange = baidu.fn.blank;
            a.abort();
            c("timeout")
        },
        p);
        a.send(j); ! h && l()
    } catch(t) {
        c(f)
    }
    return a
};
baidu.ajax.form = function(f, d) {
    d = d || {};
    var k = f.elements,
    q = k.length,
    s = f.getAttribute("method"),
    r = f.getAttribute("action"),
    m = d.replacer ||
    function(a) {
        return a
    },
    e = {},
    o = [],
    a,
    b,
    l,
    c,
    j,
    i,
    g,
    p,
    h;
    function n(b, a) {
        o.push(b + "=" + a)
    }
    for (a in d) if (d.hasOwnProperty(a)) e[a] = d[a];
    for (a = 0; a < q; a++) {
        b = k[a];
        c = b.name;
        if (!b.disabled && c) {
            l = b.type;
            j = b.value;
            switch (l) {
            case "radio":
            case "checkbox":
                if (!b.checked) break;
            case "textarea":
            case "text":
            case "password":
            case "hidden":
            case "select-one":
                n(c, m(j, c));
                break;
            case "select-multiple":
                i = b.options;
                p = i.length;
                for (g = 0; g < p; g++) {
                    h = i[g];
                    h.selected && n(c, m(h.value, c))
                }
            }
        }
    }
    e.data = o.join("&");
    e.method = f.getAttribute("method") || "GET";
    return baidu.ajax.request(r, e)
};
baidu.ajax.get = function(b, a) {
    return baidu.ajax.request(b, {
        onsuccess: a
    })
};
baidu.ajax.post = function(c, b, a) {
    return baidu.ajax.request(c, {
        onsuccess: a,
        method: "POST",
        data: b
    })
};
baidu.array = baidu.array || {};
baidu.array.indexOf = function(b, c, a) {
    var d = b.length,
    e = c;
    a = a | 0;
    if (a < 0) a = Math.max(0, d + a);
    for (; a < d; a++) if (a in b && b[a] === c) return a;
    return - 1
};
baidu.array.contains = function(a, b) {
    return baidu.array.indexOf(a, b) >= 0
};
baidu.each = baidu.array.forEach = baidu.array.each = function(b, d, f) {
    var c, e, a, g = b.length;
    if ("function" == typeof d) for (a = 0; a < g; a++) {
        e = b[a];
        c = d.call(f || b, e, a);
        if (c === false) break
    }
    return b
};
baidu.array.empty = function(a) {
    a.length = 0
};
baidu.array.every = function(b, d, c) {
    for (var a = 0,
    e = b.length; a < e; a++) if (a in b && !d.call(c || b, b[a], a)) return false;
    return true
};
baidu.array.filter = function(b, d, g) {
    var e = [],
    f = 0,
    h = b.length,
    c,
    a;
    if ("function" == typeof d) for (a = 0; a < h; a++) {
        c = b[a];
        if (true === d.call(g || b, c, a)) e[f++] = c
    }
    return e
};
baidu.array.find = function(b, d) {
    var c, a, e = b.length;
    if ("function" == typeof d) for (a = 0; a < e; a++) {
        c = b[a];
        if (true === d.call(b, c, a)) return c
    }
    return null
};
baidu.array.hash = function(c, b) {
    for (var e = {},
    d = b && b.length,
    a = 0,
    f = c.length; a < f; a++) e[c[a]] = d && d > a ? b[a] : true;
    return e
};
baidu.array.lastIndexOf = function(b, d, a) {
    var c = b.length;
    a = a | 0;
    if (!a || a >= c) a = c - 1;
    if (a < 0) a += c;
    for (; a >= 0; a--) if (a in b && b[a] === d) return a;
    return - 1
};
baidu.array.map = function(b, e, d) {
    for (var c = [], a = 0, f = b.length; a < f; a++) c[a] = e.call(d || b, b[a], a);
    return c
};
baidu.array.reduce = function(b, f, c) {
    var a = 0,
    e = b.length,
    d = 0;
    if (arguments.length < 3) {
        for (; a < e; a++) {
            c = b[a++];
            d = 1;
            break
        }
        if (!d) return
    }
    for (; a < e; a++) if (a in b) c = f(c, b[a], a, b);
    return c
};
baidu.array.remove = function(a, c) {
    var b = a.length;
    while (b--) b in a && a[b] === c && a.splice(b, 1);
    return a
};
baidu.array.removeAt = function(a, b) {
    return a.splice(b, 1)[0]
};
baidu.array.some = function(b, d, c) {
    for (var a = 0,
    e = b.length; a < e; a++) if (a in b && d.call(c || b, b[a], a)) return true;
    return false
};
baidu.array.unique = function(e, c) {
    var b = e.length,
    a = e.slice(0),
    d,
    f;
    if ("function" != typeof c) c = function(a, b) {
        return a === b
    };
    while (--b > 0) {
        f = a[b];
        d = b;
        while (d--) if (c(f, a[d])) {
            a.splice(b, 1);
            break
        }
    }
    return a
};
baidu.async = baidu.async || {};
baidu.object = baidu.object || {};
baidu.extend = baidu.object.extend = function(c, a) {
    for (var b in a) if (a.hasOwnProperty(b)) c[b] = a[b];
    return c
};
baidu.lang = baidu.lang || {};
baidu.lang.isFunction = function(a) {
    return "[object Function]" == Object.prototype.toString.call(a)
};
baidu.async._isDeferred = function(a) {
    var b = baidu.lang.isFunction;
    return a && b(a.success) && b(a.then) && b(a.fail) && b(a.cancel)
};
baidu.async.Deferred = function() {
    var a = this;
    baidu.extend(a, {
        _fired: 0,
        _firing: 0,
        _cancelled: 0,
        _resolveChain: [],
        _rejectChain: [],
        _result: [],
        _isError: 0
    });
    function b() {
        if (a._cancelled || a._firing) return;
        if (a._nextDeferred) {
            a._nextDeferred.then(a._resolveChain[0], a._rejectChain[0]);
            return
        }
        a._firing = 1;
        var c = a._isError ? a._rejectChain: a._resolveChain,
        e = a._result[a._isError ? 1 : 0];
        while (c[0] && !a._cancelled) try {
            var b = c.shift().call(a, e);
            if (baidu.async._isDeferred(b)) {
                a._nextDeferred = b; [].push.apply(b._resolveChain, a._resolveChain); [].push.apply(b._rejectChain, a._rejectChain);
                c = a._resolveChain = [];
                a._rejectChain = []
            }
        } catch(d) {
            throw d
        } finally {
            a._fired = 1;
            a._firing = 0
        }
    }
    a.resolve = a.fireSuccess = function(c) {
        a._result[0] = c;
        b();
        return a
    };
    a.reject = a.fireFail = function(c) {
        a._result[1] = c;
        a._isError = 1;
        b();
        return a
    };
    a.then = function(c, d) {
        a._resolveChain.push(c);
        a._rejectChain.push(d);
        a._fired && b();
        return a
    };
    a.success = function(b) {
        return a.then(b, baidu.fn.blank)
    };
    a.fail = function(b) {
        return a.then(baidu.fn.blank, b)
    };
    a.cancel = function() {
        a._cancelled = 1
    }
};
baidu.async.get = function(b) {
    var a = new baidu.async.Deferred;
    baidu.ajax.request(b, {
        onsuccess: function(c, b) {
            a.resolve({
                xhr: c,
                responseText: b
            })
        },
        onfailure: function(b) {
            a.reject({
                xhr: b
            })
        }
    });
    return a
};
baidu.async.post = function(c, b) {
    var a = new baidu.async.Deferred;
    baidu.ajax.request(c, {
        method: "POST",
        data: b,
        onsuccess: function(c, b) {
            a.resolve({
                xhr: c,
                responseText: b
            })
        },
        onfailure: function(b) {
            a.reject({
                xhr: b
            })
        }
    });
    return a
};
baidu.async.when = function(a, b, d) {
    if (baidu.async._isDeferred(a)) {
        a.then(b, d);
        return a
    }
    var c = new baidu.async.Deferred;
    c.then(b, d).resolve(a);
    return c
};
baidu.browser = baidu.browser || {};
baidu.browser.chrome = /chrome\/(\d+\.\d+)/i.test(navigator.userAgent) ? +RegExp["$1"] : undefined;
baidu.browser.firefox = /firefox\/(\d+\.\d+)/i.test(navigator.userAgent) ? +RegExp["$1"] : undefined;
baidu.browser.ie = baidu.ie = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? document.documentMode || +RegExp["$1"] : undefined;
baidu.browser.isGecko = /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent);
baidu.browser.isStrict = document.compatMode == "CSS1Compat";
baidu.browser.isWebkit = /webkit/i.test(navigator.userAgent);
try {
    if (/(\d+\.\d+)/.test(external.max_version)) baidu.browser.maxthon = +RegExp["$1"]
} catch(e) {}
baidu.browser.opera = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i.test(navigator.userAgent) ? +(RegExp["$6"] || RegExp["$2"]) : undefined; (function() {
    var a = navigator.userAgent;
    baidu.browser.safari = /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(a) && !/chrome/i.test(a) ? +(RegExp["$1"] || RegExp["$2"]) : undefined
})();
baidu.cookie = baidu.cookie || {};
baidu.cookie._isValidKey = function(a) {
    return (new RegExp('^[^\\x00-\\x20\\x7f\\(\\)<>@,;:\\\\\\"\\[\\]\\?=\\{\\}\\/\\u0080-\\uffff]+$')).test(a)
};
baidu.cookie.getRaw = function(b) {
    if (baidu.cookie._isValidKey(b)) {
        var c = new RegExp("(^| )" + b + "=([^;]*)(;|$)"),
        a = c.exec(document.cookie);
        if (a) return a[2] || null
    }
    return null
};
baidu.cookie.get = function(b) {
    var a = baidu.cookie.getRaw(b);
    if ("string" == typeof a) {
        a = decodeURIComponent(a);
        return a
    }
    return null
};
baidu.cookie.setRaw = function(c, d, a) {
    if (!baidu.cookie._isValidKey(c)) return;
    a = a || {};
    var b = a.expires;
    if ("number" == typeof a.expires) {
        b = new Date;
        b.setTime(b.getTime() + a.expires)
    }
    document.cookie = c + "=" + d + (a.path ? "; path=" + a.path: "") + (b ? "; expires=" + b.toGMTString() : "") + (a.domain ? "; domain=" + a.domain: "") + (a.secure ? "; secure": "")
};
baidu.cookie.remove = function(b, a) {
    a = a || {};
    a.expires = new Date(0);
    baidu.cookie.setRaw(b, "", a)
};
baidu.cookie.set = function(c, b, a) {
    baidu.cookie.setRaw(c, encodeURIComponent(b), a)
};
baidu.date = baidu.date || {};
baidu.number = baidu.number || {};
baidu.number.pad = function(c, b) {
    var d = "",
    e = c < 0,
    a = String(Math.abs(c));
    if (a.length < b) d = (new Array(b - a.length + 1)).join("0");
    return (e ? "-": "") + d + a
};
baidu.date.format = function(c, d) {
    if ("string" != typeof d) return c.toString();
    function a(a, b) {
        d = d.replace(a, b)
    }
    var b = baidu.number.pad,
    j = c.getFullYear(),
    i = c.getMonth() + 1,
    h = c.getDate(),
    e = c.getHours(),
    f = c.getMinutes(),
    g = c.getSeconds();
    a(/yyyy/g, b(j, 4));
    a(/yy/g, b(parseInt(j.toString().slice(2), 10), 2));
    a(/MM/g, b(i, 2));
    a(/M/g, i);
    a(/dd/g, b(h, 2));
    a(/d/g, h);
    a(/HH/g, b(e, 2));
    a(/H/g, e);
    a(/hh/g, b(e % 12, 2));
    a(/h/g, e % 12);
    a(/mm/g, b(f, 2));
    a(/m/g, f);
    a(/ss/g, b(g, 2));
    a(/s/g, g);
    return d
};
baidu.date.parse = function(a) {
    var e = new RegExp("^\\d+(\\-|\\/)\\d+(\\-|\\/)\\d+$");
    if ("string" == typeof a) if (e.test(a) || isNaN(Date.parse(a))) {
        var d = a.split(/ |T/),
        c = d.length > 1 ? d[1].split(/[^\d]/) : [0, 0, 0],
        b = d[0].split(/[^\d]/);
        return new Date(b[0] - 0, b[1] - 1, b[2] - 0, c[0] - 0, c[1] - 0, c[2] - 0)
    } else return new Date(a);
    return new Date
};
baidu.dom = baidu.dom || {};
baidu.dom._NAME_ATTRS = function() {
    var b = "className",
    a = {
        cellpadding: "cellPadding",
        cellspacing: "cellSpacing",
        colspan: "colSpan",
        rowspan: "rowSpan",
        valign: "vAlign",
        usemap: "useMap",
        frameborder: "frameBorder"
    };
    if (baidu.browser.ie < 8) {
        a["for"] = "htmlFor";
        a["class"] = b
    } else {
        a["htmlFor"] = "for";
        a[b] = "class"
    }
    return a
} ();
baidu.lang.isString = function(a) {
    return "[object String]" == Object.prototype.toString.call(a)
};
baidu.isString = baidu.lang.isString;
baidu.dom._g = function(a) {
    if (baidu.lang.isString(a)) return document.getElementById(a);
    return a
};
baidu._g = baidu.dom._g;
baidu.dom.g = function(a) {
    if ("string" == typeof a || a instanceof String) return document.getElementById(a);
    else if (a && a.nodeName && (a.nodeType == 1 || a.nodeType == 9)) return a;
    return null
};
baidu.g = baidu.G = baidu.dom.g;
baidu.dom._matchNode = function(b, c, d) {
    b = baidu.dom.g(b);
    for (var a = b[d]; a; a = a[c]) if (a.nodeType == 1) return a;
    return null
};
baidu.dom._styleFilter = baidu.dom._styleFilter || [];
baidu.dom._styleFilter[baidu.dom._styleFilter.length] = {
    "get": function(e, a) {
        if (/color/i.test(e) && a.indexOf("rgb(") != -1) {
            var d = a.split(",");
            a = "#";
            for (var c = 0,
            b; b = d[c]; c++) {
                b = parseInt(b.replace(/[^\d]/gi, ""), 10).toString(16);
                a += b.length == 1 ? "0" + b: b
            }
            a = a.toUpperCase()
        }
        return a
    }
};
baidu.dom._styleFilter.filter = function(f, b, e) {
    for (var c = 0,
    d = baidu.dom._styleFilter,
    a; a = d[c]; c++) if (a = a[e]) b = a(f, b);
    return b
};
baidu.dom._styleFilter[baidu.dom._styleFilter.length] = {
    "set": function(b, a) {
        if (a.constructor == Number && !/zIndex|fontWeight|opacity|zoom|lineHeight/i.test(b)) a = a + "px";
        return a
    }
};
baidu.dom._styleFixer = baidu.dom._styleFixer || {};
baidu.dom._styleFixer.display = baidu.browser.ie && baidu.browser.ie < 8 ? {
    "set": function(a, b) {
        a = a.style;
        if (b == "inline-block") {
            a.display = "inline";
            a.zoom = 1
        } else a.display = b
    }
}: baidu.browser.firefox && baidu.browser.firefox < 3 ? {
    "set": function(b, a) {
        b.style.display = a == "inline-block" ? "-moz-inline-box": a
    }
}: null;
baidu.dom._styleFixer["float"] = baidu.browser.ie ? "styleFloat": "cssFloat";
baidu.dom._styleFixer.opacity = baidu.browser.ie ? {
    "get": function(b) {
        var a = b.style.filter;
        return a && a.indexOf("opacity=") >= 0 ? parseFloat(a.match(/opacity=([^)]*)/)[1]) / 100 + "": "1"
    },
    "set": function(c, b) {
        var a = c.style;
        a.filter = (a.filter || "").replace(/alpha\([^\)]*\)/gi, "") + (b == 1 ? "": "alpha(opacity=" + b * 100 + ")");
        a.zoom = 1
    }
}: null;
baidu.dom.getDocument = function(a) {
    a = baidu.dom.g(a);
    return a.nodeType == 9 ? a: a.ownerDocument || a.document
};
baidu.dom.getComputedStyle = function(a, d) {
    a = baidu.dom._g(a);
    var c = baidu.dom.getDocument(a),
    b;
    if (c.defaultView && c.defaultView.getComputedStyle) {
        b = c.defaultView.getComputedStyle(a, null);
        if (b) return b[d] || b.getPropertyValue(d)
    }
    return ""
};
baidu.string = baidu.string || {};
baidu.string.toCamelCase = function(a) {
    if (a.indexOf("-") < 0 && a.indexOf("_") < 0) return a;
    return a.replace(/[-_][^-_]/g,
    function(a) {
        return a.charAt(1).toUpperCase()
    })
};
baidu.dom.getStyle = function(a, b) {
    var e = baidu.dom;
    a = e.g(a);
    b = baidu.string.toCamelCase(b);
    var d = a.style[b] || (a.currentStyle ? a.currentStyle[b] : "") || e.getComputedStyle(a, b);
    if (!d) {
        var c = e._styleFixer[b];
        if (c) d = c.get ? c.get(a) : baidu.dom.getStyle(a, c)
    }
    if (c = e._styleFilter) d = c.filter(b, d, "get");
    return d
};
baidu.getStyle = baidu.dom.getStyle;
baidu.dom._styleFixer.textOverflow = function() {
    var b = {};
    function d(b) {
        var a = b.length;
        if (a > 0) {
            a = b[a - 1];
            b.length--
        } else a = null;
        return a
    }
    function a(a, b) {
        a[baidu.browser.firefox ? "textContent": "innerText"] = b
    }
    function c(h, i, l) {
        var e = baidu.browser.ie ? h.currentStyle || h.style: getComputedStyle(h, null),
        o = e.fontWeight,
        m = "font-family:" + e.fontFamily + ";font-size:" + e.fontSize + ";word-spacing:" + e.wordSpacing + ";font-weight:" + ((parseInt(o) || 0) == 401 ? 700 : o) + ";font-style:" + e.fontStyle + ";font-variant:" + e.fontVariant,
        g = b[m];
        if (!g) {
            e = h.appendChild(document.createElement("div"));
            e.style.cssText = "float:left;" + m;
            g = b[m] = [];
            for (var j = 0; j < 256; j++) {
                j == 32 ? (e.innerHTML = "&nbsp;") : a(e, String.fromCharCode(j));
                g[j] = e.offsetWidth
            }
            a(e, "\u4e00");
            g[256] = e.offsetWidth;
            a(e, "\u4e00\u4e00");
            g[257] = e.offsetWidth - g[256] * 2;
            g[258] = g[".".charCodeAt(0)] * 3 + g[257] * 3;
            h.removeChild(e)
        }
        for (var f = h.firstChild,
        r = g[256], q = g[257], n = g[258], k = [], l = l ? n: 0; f; f = f.nextSibling) if (i < l) h.removeChild(f);
        else if (f.nodeType == 3) for (var j = 0,
        p = f.nodeValue,
        s = p.length; j < s; j++) {
            e = p.charCodeAt(j);
            k[k.length] = [i, f, j];
            i -= (j ? q: 0) + (e < 256 ? g[e] : r);
            if (i < l) break
        } else {
            e = f.tagName;
            if (e == "IMG" || e == "TABLE") {
                e = f;
                f = f.previousSibling;
                h.removeChild(e)
            } else {
                k[k.length] = [i, f];
                i -= f.offsetWidth
            }
        }
        if (i < l) {
            while (e = d(k)) {
                i = e[0];
                f = e[1];
                e = e[2];
                if (f.nodeType == 3) if (i >= n) {
                    f.nodeValue = f.nodeValue.substring(0, e) + "...";
                    return true
                } else ! e && h.removeChild(f);
                else if (c(f, i, true)) return true;
                else h.removeChild(f)
            }
            h.innerHTML = ""
        }
    }
    return {
        "get": function(c) {
            var b = baidu.browser,
            a = dom.getStyle;
            return (b.opera ? a("OTextOverflow") : b.firefox ? c._baiduOverflow: a("textOverflow")) || "clip"
        },
        "set": function(a, d) {
            var e = baidu.browser;
            if (a.tagName == "TD" || a.tagName == "TH" || e.firefox) {
                a._baiduHTML && (a.innerHTML = a._baiduHTML);
                if (d == "ellipsis") {
                    a._baiduHTML = a.innerHTML;
                    var b = document.createElement("div"),
                    f = a.appendChild(b).offsetWidth;
                    a.removeChild(b);
                    c(a, f)
                } else a._baiduHTML = ""
            }
            b = a.style;
            e.opera ? (b.OTextOverflow = d) : e.firefox ? (a._baiduOverflow = d) : (b.textOverflow = d)
        }
    }
} (); (function() {
    var a = new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)", "g");
    baidu.string.trim = function(b) {
        return String(b).replace(a, "")
    }
})();
baidu.trim = baidu.string.trim;
baidu.dom.addClass = function(a, f) {
    a = baidu.dom.g(a);
    for (var d = f.split(/\s+/), b = a.className, e = " " + b + " ", c = 0, g = d.length; c < g; c++) if (e.indexOf(" " + d[c] + " ") < 0) b += (b ? " ": "") + d[c];
    a.className = b;
    return a
};
baidu.addClass = baidu.dom.addClass;
baidu.dom.children = function(b) {
    b = baidu.dom.g(b);
    for (var c = [], a = b.firstChild; a; a = a.nextSibling) a.nodeType == 1 && c.push(a);
    return c
};
baidu.dom.contains = function(a, b) {
    var c = baidu.dom._g;
    a = c(a);
    b = c(b);
    return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16)
};
baidu.dom.setAttr = function(a, b, c) {
    a = baidu.dom.g(a);
    if ("style" == b) a.style.cssText = c;
    else {
        b = baidu.dom._NAME_ATTRS[b] || b;
        a.setAttribute(b, c)
    }
    return a
};
baidu.setAttr = baidu.dom.setAttr;
baidu.dom.setAttrs = function(a, b) {
    a = baidu.dom.g(a);
    for (var c in b) baidu.dom.setAttr(a, c, b[c]);
    return a
};
baidu.setAttrs = baidu.dom.setAttrs;
baidu.dom.create = function(c, a) {
    var d = document.createElement(c),
    b = a || {};
    return baidu.dom.setAttrs(d, b)
}; (function() {
    var a = window[baidu.guid];
    baidu.lang.guid = function() {
        return "TANGRAM__" + (a._counter++).toString(36)
    };
    a._counter = a._counter || 1
})();
window[baidu.guid]._instances = window[baidu.guid]._instances || {};
baidu.lang.Class = function(a) {
    this.guid = a || baidu.lang.guid();
    window[baidu.guid]._instances[this.guid] = this
};
window[baidu.guid]._instances = window[baidu.guid]._instances || {};
baidu.lang.Class.prototype.dispose = function() {
    var a = this;
    delete window[baidu.guid]._instances[a.guid];
    for (var b in a) if (!baidu.lang.isFunction(a[b])) delete a[b];
    a.disposed = true
};
baidu.lang.Class.prototype.toString = function() {
    return "[object " + (this._className || "Object") + "]"
};
baidu.lang.Event = function(c, b) {
    var a = this;
    a.type = c;
    a.returnValue = true;
    a.target = b || null;
    a.currentTarget = null
};
baidu.lang.Class.prototype.addEventListener = function(a, d, b) {
    if (!baidu.lang.isFunction(d)) return; ! this.__listeners && (this.__listeners = {});
    var e = this.__listeners,
    c;
    if (typeof b == "string" && b) if (/[^\w\-]/.test(b)) throw "nonstandard key:" + b;
    else {
        d.hashCode = b;
        c = b
    }
    a.indexOf("on") != 0 && (a = "on" + a);
    typeof e[a] != "object" && (e[a] = {});
    c = c || baidu.lang.guid();
    d.hashCode = c;
    e[a][c] = d
};
baidu.lang.Class.prototype.removeEventListener = function(b, a) {
    var d = "undefined";
    if (typeof a != d) if (baidu.lang.isFunction(a) && !(a = a.hashCode) || !baidu.lang.isString(a)) return; ! this.__listeners && (this.__listeners = {});
    b.indexOf("on") != 0 && (b = "on" + b);
    var c = this.__listeners;
    if (!c[b]) return;
    if (typeof a != d) c[b][a] && delete c[b][a];
    else for (var e in c[b]) delete c[b][e]
};
baidu.lang.Class.prototype.dispatchEvent = function(b, d) {
    var a = this;
    if (baidu.lang.isString(b)) b = new baidu.lang.Event(b); ! a.__listeners && (a.__listeners = {});
    d = d || {};
    for (var e in d) b[e] = d[e];
    var e, f = a.__listeners,
    c = b.type;
    b.target = b.target || a;
    b.currentTarget = a;
    c.indexOf("on") != 0 && (c = "on" + c);
    baidu.lang.isFunction(a[c]) && a[c].apply(a, arguments);
    if (typeof f[c] == "object") for (e in f[c]) f[c][e].apply(a, arguments);
    return b.returnValue
};
baidu.lang.createSingle = function(a) {
    var c = new baidu.lang.Class;
    for (var b in a) c[b] = a[b];
    return c
};
baidu.dom.ddManager = baidu.lang.createSingle({
    _targetsDroppingOver: {}
});
baidu.event = baidu.event || {};
baidu.event._listeners = baidu.event._listeners || [];
baidu.event.on = function(a, b, g) {
    b = b.replace(/^on/i, "");
    a = baidu.dom._g(a);
    var c = function(b) {
        g.call(a, b)
    },
    h = baidu.event._listeners,
    f = baidu.event._eventFilter,
    e,
    d = b;
    b = b.toLowerCase();
    if (f && f[b]) {
        e = f[b](a, b, c);
        d = e.type;
        c = e.listener
    }
    if (a.addEventListener) a.addEventListener(d, c, false);
    else a.attachEvent && a.attachEvent("on" + d, c);
    h[h.length] = [a, b, g, c, d];
    return a
};
baidu.on = baidu.event.on;
baidu.event.un = function(a, e, h) {
    a = baidu.dom._g(a);
    e = e.replace(/^on/i, "").toLowerCase();
    var g = baidu.event._listeners,
    f = g.length,
    i = !h,
    b, d, c;
    while (f--) {
        b = g[f];
        if (b[1] === e && b[0] === a && (i || b[2] === h)) {
            d = b[4];
            c = b[3];
            if (a.removeEventListener) a.removeEventListener(d, c, false);
            else a.detachEvent && a.detachEvent("on" + d, c);
            g.splice(f, 1)
        }
    }
    return a
};
baidu.un = baidu.event.un;
baidu.event.preventDefault = function(a) {
    if (a.preventDefault) a.preventDefault();
    else a.returnValue = false
};
baidu.page = baidu.page || {};
baidu.page.getScrollTop = function() {
    var a = document;
    return window.pageYOffset || a.documentElement.scrollTop || a.body.scrollTop
};
baidu.page.getScrollLeft = function() {
    var a = document;
    return window.pageXOffset || a.documentElement.scrollLeft || a.body.scrollLeft
}; (function() {
    baidu.page.getMousePosition = function() {
        return {
            x: baidu.page.getScrollLeft() + a.x,
            y: baidu.page.getScrollTop() + a.y
        }
    };
    var a = {
        x: 0,
        y: 0
    };
    baidu.event.on(document, "onmousemove",
    function(b) {
        b = window.event || b;
        a.x = b.clientX;
        a.y = b.clientY
    })
})();
baidu.dom.getPosition = function(d) {
    var k = "absolute",
    g = "position";
    d = baidu.dom.g(d);
    var c = baidu.dom.getDocument(d),
    e = baidu.browser,
    f = baidu.dom.getStyle,
    n = e.isGecko > 0 && c.getBoxObjectFor && f(d, g) == k && (d.style.top === "" || d.style.left === ""),
    b = {
        left: 0,
        top: 0
    },
    m = e.ie && !e.isStrict ? c.body: c.documentElement,
    a,
    h;
    if (d == m) return b;
    if (d.getBoundingClientRect) {
        h = d.getBoundingClientRect();
        b.left = Math.floor(h.left) + Math.max(c.documentElement.scrollLeft, c.body.scrollLeft);
        b.top = Math.floor(h.top) + Math.max(c.documentElement.scrollTop, c.body.scrollTop);
        b.left -= c.documentElement.clientLeft;
        b.top -= c.documentElement.clientTop;
        var l = c.body,
        i = parseInt(f(l, "borderLeftWidth")),
        j = parseInt(f(l, "borderTopWidth"));
        if (e.ie && !e.isStrict) {
            b.left -= isNaN(i) ? 2 : i;
            b.top -= isNaN(j) ? 2 : j
        }
    } else {
        a = d;
        do {
            b.left += a.offsetLeft;
            b.top += a.offsetTop;
            if (e.isWebkit > 0 && f(a, g) == "fixed") {
                b.left += c.body.scrollLeft;
                b.top += c.body.scrollTop;
                break
            }
            a = a.offsetParent
        } while ( a && a != d );
        if (e.opera > 0 || e.isWebkit > 0 && f(d, g) == k) b.top -= c.body.offsetTop;
        a = d.offsetParent;
        while (a && a != c.body) {
            b.left -= a.scrollLeft;
            if (!e.opera || a.tagName != "TR") b.top -= a.scrollTop;
            a = a.offsetParent
        }
    }
    return b
}; (function() {
    var e = "selectstart",
    c = "mouseup",
    b, a, m, n, l, k, o, f, g, j = baidu.lang.isFunction,
    q, h, i;
    baidu.dom.drag = function(u, v) {
        g = f = null;
        if (! (b = baidu.dom.g(u))) return false;
        a = baidu.object.extend({
            autoStop: true,
            capture: true,
            interval: 16,
            handler: b
        },
        v);
        h = baidu.dom.getPosition(b.offsetParent);
        i = baidu.dom.getPosition(b);
        if (baidu.getStyle(b, "position") == "absolute") {
            l = i.top - (b.offsetParent == document.body ? 0 : h.top);
            k = i.left - (b.offsetParent == document.body ? 0 : h.left)
        } else {
            l = parseFloat(baidu.getStyle(b, "top")) || -parseFloat(baidu.getStyle(b, "bottom")) || 0;
            k = parseFloat(baidu.getStyle(b, "left")) || -parseFloat(baidu.getStyle(b, "right")) || 0
        }
        if (a.mouseEvent) {
            m = baidu.page.getScrollLeft() + a.mouseEvent.clientX;
            n = baidu.page.getScrollTop() + a.mouseEvent.clientY
        } else {
            var t = baidu.page.getMousePosition();
            m = t.x;
            n = t.y
        }
        a.autoStop && baidu.event.on(a.handler, c, d);
        a.autoStop && baidu.event.on(window, c, d);
        baidu.event.on(document, e, p);
        if (a.capture && a.handler.setCapture) a.handler.setCapture();
        else a.capture && window.captureEvents && window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
        o = document.body.style.MozUserSelect;
        document.body.style.MozUserSelect = "none";
        j(a.ondragstart) && a.ondragstart(b, a);
        q = setInterval(r, a.interval);
        return {
            stop: d,
            update: s
        }
    };
    function s(b) {
        baidu.extend(a, b)
    }
    function d() {
        clearInterval(q);
        if (a.capture && a.handler.releaseCapture) a.handler.releaseCapture();
        else a.capture && window.releaseEvents && window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP);
        document.body.style.MozUserSelect = o;
        baidu.event.un(document, e, p);
        a.autoStop && baidu.event.un(a.handler, c, d);
        a.autoStop && baidu.event.un(window, c, d);
        j(a.ondragend) && a.ondragend(b, a)
    }
    function r() {
        var e = a.range,
        h = baidu.page.getMousePosition(),
        c = k + h.x - m,
        d = l + h.y - n;
        if (typeof e == "object" && e && e.length == 4) {
            c = Math.max(e[3], c);
            c = Math.min(e[1] - b.offsetWidth, c);
            d = Math.max(e[0], d);
            d = Math.min(e[2] - b.offsetHeight, d)
        }
        b.style.top = d + "px";
        b.style.left = c + "px";
        if ((f !== c || g !== d) && (f !== null || g !== null)) j(a.ondrag) && a.ondrag(b, a);
        f = c;
        g = d
    }
    function p(a) {
        return baidu.event.preventDefault(a, false)
    }
})();
baidu.dom.setStyle = function(b, c, d) {
    var e = baidu.dom,
    a;
    b = e.g(b);
    c = baidu.string.toCamelCase(c);
    if (a = e._styleFilter) d = a.filter(c, d, "set");
    a = e._styleFixer[c];
    a && a.set ? a.set(b, d) : (b.style[a || c] = d);
    return b
};
baidu.setStyle = baidu.dom.setStyle;
baidu.dom.draggable = function(b, a) {
    var e = "onmousedown";
    a = baidu.object.extend({
        toggle: function() {
            return true
        }
    },
    a || {});
    a.autoStop = true;
    b = baidu.dom.g(b);
    a.handler = a.handler || b;
    var i, j = ["ondragstart", "ondrag", "ondragend"],
    g = j.length - 1,
    f,
    c,
    d = {
        dispose: function() {
            c && c.stop();
            baidu.event.un(a.handler, e, h);
            baidu.lang.Class.prototype.dispose.call(d)
        }
    },
    k = this;
    if (i = baidu.dom.ddManager) for (; g >= 0; g--) {
        f = j[g];
        a[f] = function(c) {
            var d = a[c];
            return function() {
                baidu.lang.isFunction(d) && d.apply(k, arguments);
                i.dispatchEvent(c, {
                    DOM: b
                })
            }
        } (f)
    }
    if (b) {
        function h(g) {
            var e = "position",
            f = a.mouseEvent = window.event || g;
            if (f.button > 1 || baidu.lang.isFunction(a.toggle) && !a.toggle()) return;
            baidu.dom.getStyle(b, e) == "static" && baidu.dom.setStyle(b, e, "relative");
            baidu.lang.isFunction(a.onbeforedragstart) && a.onbeforedragstart(b);
            c = baidu.dom.drag(b, a);
            d.stop = c.stop;
            d.update = c.update;
            baidu.event.preventDefault(f)
        }
        baidu.event.on(a.handler, e, h)
    }
    return {
        cancel: function() {
            d.dispose()
        }
    }
};
baidu.dom.intersect = function(a, b) {
    var h = baidu.dom.g,
    e = baidu.dom.getPosition,
    f = Math.max,
    g = Math.min;
    a = h(a);
    b = h(b);
    var c = e(a),
    d = e(b);
    return f(c.left, d.left) <= g(c.left + a.offsetWidth, d.left + b.offsetWidth) && f(c.top, d.top) <= g(c.top + a.offsetHeight, d.top + b.offsetHeight)
};
baidu.dom.droppable = function(i, b) {
    var f = "ondragend",
    d = "function";
    b = b || {};
    var a = baidu.dom.ddManager,
    c = baidu.dom.g(i),
    e = baidu.lang.guid(),
    g = function(h) {
        var f = a._targetsDroppingOver,
        g = {
            trigger: h.DOM,
            reciever: c
        };
        if (baidu.dom.intersect(c, h.DOM)) {
            if (!f[e]) {
                typeof b.ondropover == d && b.ondropover.call(c, g);
                a.dispatchEvent("ondropover", g);
                f[e] = true
            }
        } else {
            if (f[e]) {
                typeof b.ondropout == d && b.ondropout.call(c, g);
                a.dispatchEvent("ondropout", g)
            }
            delete f[e]
        }
    },
    h = function(g) {
        var f = {
            trigger: g.DOM,
            reciever: c
        };
        if (baidu.dom.intersect(c, g.DOM)) {
            typeof b.ondrop == d && b.ondrop.call(c, f);
            a.dispatchEvent("ondrop", f)
        }
        delete a._targetsDroppingOver[e]
    };
    a.addEventListener("ondrag", g);
    a.addEventListener(f, h);
    return {
        cancel: function() {
            a.removeEventListener("ondrag", g);
            a.removeEventListener(f, h)
        }
    }
};
baidu.dom.empty = function(a) {
    a = baidu.dom.g(a);
    while (a.firstChild) a.removeChild(a.firstChild);
    return a
};
baidu.dom.first = function(a) {
    return baidu.dom._matchNode(a, "nextSibling", "firstChild")
};
baidu.dom.getAttr = function(b, a) {
    b = baidu.dom.g(b);
    if ("style" == a) return b.style.cssText;
    a = baidu.dom._NAME_ATTRS[a] || a;
    return b.getAttribute(a)
};
baidu.getAttr = baidu.dom.getAttr;
baidu.dom.setStyles = function(a, b) {
    a = baidu.dom.g(a);
    for (var c in b) baidu.dom.setStyle(a, c, b[c]);
    return a
};
baidu.setStyles = baidu.dom.setStyles;
baidu.page.getViewHeight = function() {
    var a = document,
    b = a.compatMode == "BackCompat" ? a.body: a.documentElement;
    return b.clientHeight
};
baidu.page.getViewWidth = function() {
    var a = document,
    b = a.compatMode == "BackCompat" ? a.body: a.documentElement;
    return b.clientWidth
};
baidu.dom.fixable = function(x, h) {
    var b = "",
    c = "auto",
    j = "position",
    i = "static",
    e = "left",
    d = "top",
    a = baidu.g(x),
    k = baidu.browser.ie && baidu.browser.ie <= 7 ? true: false,
    r = h.vertival || d,
    n = h.horizontal || e,
    w = typeof h.autofix != "undefined" ? h.autofix: true,
    f,
    g,
    m = false,
    p = h.onrender || new Function,
    q = h.onupdate || new Function,
    o = h.onrelease || new Function;
    if (!a) return;
    f = t();
    g = {
        y: k ? f.position == i ? baidu.dom.getPosition(a).top: baidu.dom.getPosition(a).top - baidu.dom.getPosition(a.parentNode).top: a.offsetTop,
        x: k ? f.position == i ? baidu.dom.getPosition(a).left: baidu.dom.getPosition(a).left - baidu.dom.getPosition(a.parentNode).left: a.offsetLeft
    };
    baidu.extend(g, h.offset || {});
    w && s();
    function v() {
        return {
            top: r == d ? g.y: baidu.page.getViewHeight() - g.y - f.height,
            left: n == e ? g.x: baidu.page.getViewWidth() - g.x - f.width
        }
    }
    function u() {
        var b = ") + 'px'",
        c = v();
        a.style.setExpression(e, "eval((document.body.scrollLeft || document.documentElement.scrollLeft) + " + c.left + b);
        a.style.setExpression(d, "eval((document.body.scrollTop || document.documentElement.scrollTop) + " + c.top + b)
    }
    function t() {
        var b = {
            position: baidu.getStyle(a, j),
            height: function() {
                var b = baidu.getStyle(a, "height");
                return b != c ? /\d+/.exec(b)[0] : a.offsetHeight
            } (),
            width: function() {
                var b = baidu.getStyle(a, "width");
                return b != c ? /\d+/.exec(b)[0] : a.offsetWidth
            } ()
        };
        l(d, b);
        l(e, b);
        l("bottom", b);
        l("right", b);
        return b
    }
    function l(d, e) {
        var f;
        if (e.position == i) e[d] = b;
        else {
            f = baidu.getStyle(a, d);
            if (f == c || f == "0px") e[d] = b;
            else e[d] = f
        }
    }
    function s() {
        if (m) return;
        baidu.setStyles(a, {
            top: b,
            left: b,
            bottom: b,
            right: b
        });
        if (!k) {
            var c = {
                position: "fixed"
            };
            c[r == d ? d: "bottom"] = g.y + "px";
            c[n == e ? e: "right"] = g.x + "px";
            baidu.setStyles(a, c)
        } else {
            baidu.setStyle(a, j, "absolute");
            u()
        }
        p();
        m = true
    }
    function y() {
        if (!m) return;
        var g = {
            position: f.position,
            left: f.left == b ? c: f.left,
            top: f.top == b ? c: f.top,
            bottom: f.bottom == b ? c: f.bottom,
            right: f.right == b ? c: f.right
        };
        if (k) {
            a.style.removeExpression(e);
            a.style.removeExpression(d)
        }
        baidu.setStyles(a, g);
        o();
        m = false
    }
    function z(a) {
        if (!a) return;
        p = a.onrender || p;
        q = a.onupdate || q;
        o = a.onrelease || o;
        r = a.vertival || d;
        n = a.horizontal || e;
        baidu.extend(g, a.offset || {});
        q()
    }
    return {
        render: s,
        update: z,
        release: y
    }
};
baidu.dom.getAncestorBy = function(a, b) {
    a = baidu.dom.g(a);
    while ((a = a.parentNode) && a.nodeType == 1) if (b(a)) return a;
    return null
};
baidu.dom.getAncestorByClass = function(a, b) {
    a = baidu.dom.g(a);
    b = new RegExp("(^|\\s)" + baidu.string.trim(b) + "(\\s|$)");
    while ((a = a.parentNode) && a.nodeType == 1) if (b.test(a.className)) return a;
    return null
};
baidu.dom.getAncestorByTag = function(a, b) {
    a = baidu.dom.g(a);
    b = b.toUpperCase();
    while ((a = a.parentNode) && a.nodeType == 1) if (a.tagName == b) return a;
    return null
};
baidu.dom.getParent = function(a) {
    a = baidu.dom._g(a);
    return a.parentElement || a.parentNode || null
};
baidu.dom.getText = function(a) {
    var c = "",
    b, d = 0,
    e;
    a = baidu._g(a);
    if (a.nodeType === 3 || a.nodeType === 4) c += a.nodeValue;
    else if (a.nodeType !== 8) {
        b = a.childNodes;
        for (e = b.length; d < e; d++) c += baidu.dom.getText(b[d])
    }
    return c
};
baidu.dom.getWindow = function(a) {
    a = baidu.dom.g(a);
    var b = baidu.dom.getDocument(a);
    return b.parentWindow || b.defaultView || null
};
baidu.dom.hasAttr = function(a, c) {
    a = baidu.g(a);
    var b = a.attributes.getNamedItem(c);
    return !! (b && b.specified)
};
baidu.dom.hasClass = function(b, a) {
    b = baidu.dom.g(b);
    var c = baidu.string.trim(a).split(/\s+/),
    d = c.length;
    a = b.className.split(/\s+/).join(" ");
    while (d--) if (! (new RegExp("(^| )" + c[d] + "( |$)")).test(a)) return false;
    return true
};
baidu.dom.hide = function(a) {
    a = baidu.dom.g(a);
    a.style.display = "none";
    return a
};
baidu.hide = baidu.dom.hide;
baidu.dom.insertAfter = function(b, a) {
    var d, c;
    d = baidu.dom._g;
    b = d(b);
    a = d(a);
    c = a.parentNode;
    c && c.insertBefore(b, a.nextSibling);
    return b
};
baidu.dom.insertBefore = function(b, a) {
    var d, c;
    d = baidu.dom._g;
    b = d(b);
    a = d(a);
    c = a.parentNode;
    c && c.insertBefore(b, a);
    return b
};
baidu.dom.insertHTML = function(a, b, f) {
    var e = "AFTERBEGIN";
    a = baidu.dom.g(a);
    var c, d;
    if (a.insertAdjacentHTML && !baidu.browser.opera) a.insertAdjacentHTML(b, f);
    else {
        c = a.ownerDocument.createRange();
        b = b.toUpperCase();
        if (b == e || b == "BEFOREEND") {
            c.selectNodeContents(a);
            c.collapse(b == e)
        } else {
            d = b == "BEFOREBEGIN";
            c[d ? "setStartBefore": "setEndAfter"](a);
            c.collapse(d)
        }
        c.insertNode(c.createContextualFragment(f))
    }
    return a
};
baidu.insertHTML = baidu.dom.insertHTML;
baidu.dom.last = function(a) {
    return baidu.dom._matchNode(a, "previousSibling", "lastChild")
};
baidu.dom.next = function(b) {
    var a = "nextSibling";
    return baidu.dom._matchNode(b, a, a)
};
baidu.dom.prev = function(b) {
    var a = "previousSibling";
    return baidu.dom._matchNode(b, a, a)
};
baidu.string.escapeReg = function(a) {
    return String(a).replace(new RegExp("([.*+?^=!:${}()|[\\]/\\\\])", "g"), "\\$1")
};
baidu.dom.q = function(e, a, c) {
    var d = [],
    i = baidu.string.trim,
    h,
    b,
    f,
    g;
    if (! (e = i(e))) return d;
    if ("undefined" == typeof a) a = document;
    else {
        a = baidu.dom.g(a);
        if (!a) return d
    }
    c && (c = i(c).toUpperCase());
    if (a.getElementsByClassName) {
        f = a.getElementsByClassName(e);
        h = f.length;
        for (b = 0; b < h; b++) {
            g = f[b];
            if (c && g.tagName != c) continue;
            d[d.length] = g
        }
    } else {
        e = new RegExp("(^|\\s)" + baidu.string.escapeReg(e) + "(\\s|$)");
        f = c ? a.getElementsByTagName(c) : a.all || a.getElementsByTagName("*");
        h = f.length;
        for (b = 0; b < h; b++) {
            g = f[b];
            e.test(g.className) && (d[d.length] = g)
        }
    }
    return d
};
baidu.q = baidu.Q = baidu.dom.q;
baidu.dom.query = function() {
    var n = "#{X}",
    w = "])break;#{N}H[",
    i = " ",
    a = null,
    d = "",
    c = "*",
    h = true,
    g = false,
    f = document;
    f._Q_rev = 0;
    var D = g,
    I = function() {
        f._Q_rev++;
        D = h
    };
    if (f.addEventListener) {
        f.addEventListener("DOMNodeInserted", I, g);
        f.addEventListener("DOMNodeRemoved", I, g)
    }
    var F, B, q = window.ActiveXObject && !f.addEventListener; (function() {
        var a = f.createElement("div");
        a.innerHTML = '<a name="d"></a><div id="d"></div>';
        F = a.getElementsByTagName(c)["d"] === a.lastChild;
        a.innerHTML = '<div class="t e"></div><div class="t"></div>';
        a.lastChild.className = "e";
        B = a.getElementsByClassName && a.getElementsByClassName("e").length == 2
    })();
    var cb = !!f.getElementsByName,
    k = typeof f.documentElement.nextElementSibling !== "undefined",
    M = !!f.documentElement.children,
    K = M && !!f.documentElement.children.tags,
    fb = /(?:\s*([ ~+>,])\s*)?(?:([:.#]?)((?:[\w\u00A1-\uFFFF-]|\\.)+|\*)|\[\s*((?:[\w\u00A1-\uFFFF-]|\\.)+)(?:\s*([~^$|*!]?=)\s*((['"]).*?\7|[^\]]*))?\s*\])/g;
    function pb(a) {
        return a.replace(/^\s*|\s*$/, d)
    }
    function m(b, a) {
        return a.kind = b,
        a
    }
    var lb = function() {
        var e, b;
        function h(c) {
            var d = (c.lastIndex = b, c.exec(e));
            return d && d.index == b ? (b = c.lastIndex, d) : a
        }
        function g(a) {
            var b = a.charAt(0);
            return b == '"' || b == "'" ? a.slice(1, -1) : a
        }
        function f() {
            throw ["ParseError", e, b]
        }
        function i() {
            var a, j, l = [],
            n = [l],
            o = [n];
            while (a = h(fb)) {
                if (a[1]) {
                    a[1] == "," && o.push(n = []);
                    l.length && n.push(l = []);
                    if (a[1] != ",") l.comb = a[1]
                }
                j = [a[4] || a[3]];
                a[6] && j.push(g(a[6]));
                j.kind = a[5] || (a[4] ? "[": a[2] || "T");
                j[0] == c && j.kind != "T" && f();
                if (a[2] == ":") {
                    j.kind = ":" + a[3];
                    if (e.charAt(b) == "(") {
                        b++;
                        if (a[3] == "not" || a[3] == "has") {
                            var p = b;
                            j[0] = i();
                            j[1] = e.slice(p, b);
                            if (e.charAt(b) == ")") b++;
                            else f()
                        } else {
                            var m = e.indexOf(")", b);
                            if (m != -1) {
                                j[0] = pb(e.slice(b, m));
                                b = m + 1
                            } else f();
                            if (a[3].indexOf("nth") == 0) {
                                var k = j[0];
                                k = (k == "even" ? "2n": k == "odd" ? "2n+1": (k.indexOf("n") == -1 ? "0n": d) + k.replace(/\s*/g, d)).split("n");
                                j[0] = !k[0] ? 1 : Number(k[0]) | 0;
                                j[1] = Number(k[1]) | 0
                            } else if (a[3] == "contains") j[0] = g(j[0])
                        }
                    }
                }
                l.push(j)
            }
            return o
        }
        return function(a) {
            return (e = a, b = 0, a = i(), h(/\s*/g), b < e.length) ? f() : a
        }
    } (),
    kb = {
        "#": 9,
        N: cb ? 7 : 0,
        ".": B ? 6 : 0,
        T: 5
    },
    ob = {
        "#": 9,
        "=": 9,
        "[": 8,
        N: 9,
        T: 8,
        ".": 5,
        "~=": 3,
        "|=": 3,
        "*=": 3,
        ":not": 6,
        ":has": 1,
        ":contains": 3,
        ":nth-child": 2,
        ":nth-last-child": 2,
        ":first-child": 3,
        ":last-child": 3,
        ":only-child": 3,
        ":not-ex": 7
    },
    H = {
        id: "#",
        name: "N"
    },
    L = function(a, b) {
        return a.tR - b.tR
    },
    ib = /:(nth|eq|gt|lt|first|last|even|odd)$/;
    function gb(b) {
        var e, d, f = b.length;
        while (f--) {
            var a = b[f];
            if (a.kind == ":html") a = m("T", "html");
            if (a.kind == "=") {
                if (H[a[0]]) a = m(H[a[0]], [a[1]])
            } else if (a.kind == "~=" && a[0] == "className") a = m(".", [a[1]]);
            if (a.kind == "T") {
                if (a[0] == c) a.kind = c;
                else b.tag = a;
                d = a[0].toLowerCase()
            } else if (a.kind == ".") if (!b.classes) b.classes = a;
            else {
                b.classes.push(a[0]);
                a.kind = c
            }
            if (a.kind == ":not" && !((d = a[0], d.length == 1) && (d = d[0], d.length == 1))) a.kind = ":not-ex";
            if (ib.test(a.kind)) {
                a[0] = Number(a[0]) | 0;
                var g = m(a.kind, a.slice(0));
                a.kind = c;
                if (!b.allPoses) b.allPoses = [g];
                else b.allPoses.push(g)
            }
            a.fR = kb[a.kind] | 0;
            a.tR = ob[a.kind] | 0;
            if (a.fR && (!e || a.fR > e.fR)) e = a;
            b[f] = a
        }
        b.sort(L);
        b.$ = e;
        return b
    }
    function nb(f) {
        var b = [],
        e = [b],
        j = f.length;
        while (j--) {
            var d = f[j];
            d = gb(d);
            d.N = "node" + j;
            if (d.allPoses) {
                if (!f.allPoses) f.allPoses = [];
                f.allPoses.push.apply(f.allPoses, d.allPoses)
            }
            if (d.$ && (!b.fR || d.$.fR > b.fR || d.$.fR == b.fR && e.length == 1)) {
                b.fR = d.$.fR;
                b.fI = b.length
            }
            b.push(d);
            if (d.comb == i && j && b.fI != a) {
                e.push(b = []);
                b.fR = 0
            }
            if (j == f.length - 1 && d.tag) f.tag = d.tag
        }
        for (var h = 0; h < e.length; h++) {
            b = e[h];
            var g = e[h + 1];
            if (g != a) if (b.fR > g.fR || b.fR == g.fR && g.fI != 0) {
                e.splice(h + 1, 1);
                b.push.apply(b, g);
                h--
            } else b.R = g[0].N;
            else b.R = "root"
        }
        if (e[0].fI == a) {
            e[0].fI = 0;
            e[0][0].$ = m(c, [c])
        }
        return e
    }
    function e(c, b) {
        return c.replace(/#\{([^}]+)\}/g,
        function(e, c) {
            return b[c] == a ? e: b[c] + d
        })
    }
    var C = 0,
    p = "/*^var doc=root.ownerDocument||root;^*/",
    A = p + "/*^var xhtml=Q._isXHTML(doc);^*/",
    v = q ? "#{0}.contains(#{1})": "#{0}.compareDocumentPosition(#{1})&16",
    l = "#{N}._Q_id||(#{N}._Q_id=++qid)",
    o = {
        "#": 'var #{N}=Q._byId("#{P}", #{R});if(#{N}){#{X}}',
        N: p + 'var #{N}A=doc.getElementsByName("#{P}");for(var #{N}I=0,#{N};#{N}=#{N}A[#{N}I];#{N}I++){if(#{R}===doc||' + e(v, ["#{R}", "#{N}"]) + "){#{X}}}",
        T: 'var #{N}A=#{R}.getElementsByTagName("#{P}");for(var #{N}I=0,#{N};#{N}=#{N}A[#{N}I];#{N}I++){#{X}}',
        ".": 'var #{N}A=#{R}.getElementsByClassName("#{P}");for(var #{N}I=0,#{N};#{N}=#{N}A[#{N}I];#{N}I++){#{X}}',
        "*": 'var #{N}A=#{R}.getElementsByTagName("*");for(var #{N}I=0,#{N};#{N}=#{N}A[#{N}I];#{N}I++){#{X}}',
        "+": k ? "/*^var #{N};^*/if(#{N}=#{R}.nextElementSibling){#{X}}": "var #{N}=#{R};while(#{N}=#{N}.nextSibling){if(#{N}.nodeType==1){#{X}break;}}",
        "~": k ? "/*^var #{N}H={};^*/var #{N}=#{R};while(#{N}=#{N}.nextElementSibling){if(#{N}H[" + l + w + l + "]=1;#{X}}": "/*^var #{N}H={};^*/var #{N}=#{R};while(#{N}=#{N}.nextSibling){if(#{N}.nodeType==1){if(#{N}H[" + l + w + l + "]=1;#{X}}}",
        ">": "var #{N}A=#{R}.children||#{R}.childNodes;for(var #{N}I=0,#{N};#{N}=#{N}A[#{N}I];#{N}I++){if(#{N}.nodeType==1){#{X}}}",
        ">T": 'var #{N}A=#{R}.children.tags("#{P}");for(var #{N}I=0,#{N};#{N}=#{N}A[#{N}I];#{N}I++){#{X}}'
    },
    Y = "var #{R}V={_:false};NP_#{R}:{P_#{R}:{#{X}break NP_#{R};}#{R}V._=true;#{Y}}",
    s = "if(t=#{N}H[" + l + "]){if(t._){break P_#{R};}else{break NP_#{R};}}#{N}H[" + l + "]=#{R}V;#{X}",
    u = e(s, {
        X: "if(#{N}!==#{R}){#{X}}"
    }),
    U = "break P_#{R};",
    ab = {
        ">": "/*^var #{N}H={};^*/var #{N}=#{C}.parentNode;" + u,
        " ": "/*^var #{N}H={};^*/var #{N}=#{C};while(#{N}=#{N}.parentNode){" + u + "}",
        "+": k ? "/*^var #{N}H={};var #{N};^*/if(#{N}=#{C}.previousElementSibling){#{X}}": "/*^var #{N}H={};^*/var #{N}=#{C};while(#{N}=#{N}.previousSibling){#{X}break;}",
        "~": k ? "/*^var #{N}H={};^*/var #{N}=#{C};while(#{N}=#{N}.previousElementSibling){" + s + "}": "/*^var #{N}H={};^*/var #{N}=#{C};while(#{N}=#{N}.previousSibling){" + s + "}"
    },
    Z = "function(root){var result=[];var qid=Q.qid,t,l=result.length;BQ:{#{X}}Q.qid=qid;return result;}",
    X = "/*^var #{N}L;^*/if(!#{N}L||!(" + e(v, ["#{N}L", "#{N}"]) + ")){#{X}#{N}L=#{N};}",
    E = "result[l++]=#{N};",
    j = A + '/*^var input_t=!xhtml?"INPUT":"input";^*/',
    hb = "/*^var pos=-1;^*/",
    bb = {
        T: A + '/*^var #{N}T=!xhtml?("#{0}").toUpperCase():"#{0}";^*/#{N}.nodeName==#{N}T',
        "#": '#{N}.id=="#{0}"',
        N: '#{N}.name=="#{0}"',
        "[": q ? '(t=#{N}.getAttributeNode("#{0}"))&&(t.specified)': '#{N}.hasAttribute("#{0}")',
        "=": '#{A}=="#{1}"',
        "!=": '#{A}!="#{1}"',
        "^=": '(t=#{A})&&t.slice(0,#{L})=="#{1}"',
        "$=": '(t=#{A})&&t.slice(-#{L})=="#{1}"',
        "*=": '(t=#{A})&&t.indexOf("#{1}")!==-1',
        "|=": '(t=#{A})&&(t=="#{1}"||t.slice(0,#{L})=="#{P}")',
        "~=": '(t=#{A})&&(" "+t+" ").indexOf("#{P}")!==-1',
        ":element": "#{N}.nodeType==1",
        ":contains": '(#{N}.textContent||#{N}.innerText).indexOf("#{0}")!==-1',
        ":first-child": k ? "#{N}.parentNode.firstElementChild===#{N}": "Q._isFirstChild(#{N})",
        ":nth-child": p + "/*^var rev=doc._Q_rev||(doc._Q_rev=Q.qid++);^*/Q._index(#{N},#{0},#{1},rev)",
        ":last-child": k ? "#{N}.parentNode.lastElementChild===#{N}": "Q._isLastChild(#{N})",
        ":only-child": k ? "(t=#{N}.parentNode)&&(t.firstElementChild===#{N}&&t.lastElementChild===#{N})": "Q._isOnlyChild(#{N})",
        ":not-ex": '/*^var _#{G}=Q._hash(Q("#{1}",root));qid=Q.qid;^*/!_#{G}[' + l + "]",
        ":has": '(t=Q("#{1}", #{N}),qid=Q.qid,t.length>0)',
        ":parent": "!!#{N}.firstChild",
        ":empty": "!#{N}.firstChild",
        ":header": "/h\\d/i.test(#{N}.nodeName)",
        ":input": "/input|select|textarea|button/i.test(#{N}.nodeName)",
        ":enabled": '#{N}.disabled===false&&#{N}.type!=="hidden"',
        ":disabled": "#{N}.disabled===true",
        ":checked": "#{N}.checked===true",
        ":selected": "(#{N}.parentNode.selectedIndex,#{N}.selected===true)",
        ":focus": p + "#{N}===doc.activeElement",
        ":button": j + '#{N}.nodeName==="button"||(#{N}.nodeName===input_t&&#{N}.type==="button")',
        ":submit": j + '#{N}.nodeName===input_t&&#{N}.type==="submit"',
        ":reset": j + '#{N}.nodeName===input_t&&#{N}.type==="reset"',
        ":text": j + '#{N}.nodeName===input_t&&#{N}.type==="text"&&(t=#{N}.getAttribute("type"),t==="text"||t===null)',
        ":radio": j + '#{N}.nodeName===input_t&&#{N}.type==="radio"',
        ":checkbox": j + '#{N}.nodeName===input_t&&#{N}.type==="checkbox"',
        ":file": j + '#{N}.nodeName===input_t&&#{N}.type==="file"',
        ":password": j + '#{N}.nodeName===input_t&&#{N}.type==="password"',
        ":image": j + '#{N}.nodeName===input_t&&#{N}.type==="image"'
    };
    function N(a) {
        if (a == "for") return "#{N}.htmlFor";
        if (a == "class") return "#{N}.className";
        if (a == "type") return '#{N}.getAttribute("type")';
        if (a == "href") return '#{N}.getAttribute("href",2)';
        return '(#{N}["' + a + '"]||#{N}.getAttribute("' + a + '"))'
    }
    function S(a) {
        if (a.kind.indexOf("=") !== -1) a.A = N(a[0]);
        var b;
        switch (a.kind) {
        case ".":
            var g = a.length,
            f = [];
            while (g--) f.push('t.indexOf(" #{' + g + '} ")!==-1');
            return e('(t=#{N}.className)&&((t=" "+t+" "),(' + f.join(" && ") + "))", a);
        case "^=":
        case "$=":
            a.L = a[1].length;
            break;
        case "|=":
            a.L = a[1].length + 1;
            a.P = a[1] + "-";
            break;
        case "~=":
            a.P = i + a[1] + i;
            break;
        case ":nth-child":
            if (a[0] == 1 && a[1] == 0) return d;
            break;
        case ":not":
            b = x(a[0][0][0]);
            return b ? "!(" + b + ")": "false";
        case ":not-ex":
        case ":has":
            a.G = C++;
            break;
        case c:
            return d
        }
        return e(bb[a.kind], a)
    }
    function x(c) {
        var a = [],
        d = c.length,
        b;
        while (d--) {
            var e = c[d]; (b = S(e)) && a.push(b)
        }
        return a.join(" && ")
    }
    function z(b) {
        var a = x(b);
        return a ? e("if(" + a + "){#{X}}", {
            N: b.N
        }) : n
    }
    var J = {
        "#": 1,
        T: 1,
        ".": 1,
        N: 1,
        ":element": 1
    };
    function y(a, g, d) {
        d = d || a.comb;
        var f;
        if (d == i) {
            var b = a.$;
            if (b) {
                f = o[b.kind];
                b.kind = c
            } else {
                f = o[c];
                q && !J[a[a.length - 1].kind] && a.push(m(":element", []))
            }
        } else if (K && d == ">" && a.tag) {
            f = o[">T"];
            b = a.tag;
            a.tag.kind = c
        } else f = o[d];
        return e(f, {
            P: b && (b.kind == "." ? b.join(i) : b[0]),
            N: a.N,
            R: g,
            X: z(a)
        })
    }
    function P(b, f) {
        var a = n,
        c = b.fI;
        while (c--) a = e(a, {
            X: y(b[c], b[c + 1].N)
        });
        var d;
        if (!f) {
            if (b.fI == 0 && (c = b[0].$.kind) && (c != "S" && c != "#")) {
                d = e(X, {
                    N: b[0].N
                });
                a = e(a, {
                    X: d
                })
            }
        } else {
            d = e(f, {
                N: b[0].N
            });
            a = e(a, {
                X: d
            })
        }
        return a
    }
    function R(a, c, b) {
        return e(ab[b], {
            N: a.N,
            C: c,
            X: z(a)
        })
    }
    function O(b) {
        for (var a = Y,
        c = b.fI + 1,
        g = b.length; c < g; c++) {
            var f = b[c],
            d = b[c - 1];
            a = e(a, {
                X: R(f, d.N, b[c - 1].comb)
            })
        }
        a = e(a, {
            X: U
        });
        a = e(a, {
            R: b.R
        });
        return a
    }
    function Q(a, d) {
        var f = y(a[a.fI], a.R, i),
        b = P(a, d);
        if (a.fI < a.length - 1) {
            var c = O(a);
            b = e(c, {
                Y: b
            })
        }
        return e(f, {
            X: b
        })
    }
    function T(f) {
        var b = {},
        g = f.length;
        while (g--) {
            var c = f[g];
            if (c.kind == ":first") c = m(":nth", [0]);
            else if (c.kind == ":last") b.last = 1;
            if (c.kind == ":lt") b.lt = b.lt === undefined ? c[0] : Math.min(b.lt, c[0]);
            else if (c.kind == ":gt") b.gt = b.gt === undefined ? c[0] : Math.max(b.gt, c[0]);
            else if (c.kind == ":eq" || c.kind == ":nth") if (b.eq && b.eq !== c[0]) b.no = h;
            else b.eq = c[0];
            else if (c.kind == ":even" || c.kind == ":odd") b[c.kind.slice(1)] = 1
        }
        if (b.lt != a && b.eq != a && b.eq >= b.lt || b.lt != a && b.gt != a && b.lt <= b.gt || b.even && b.odd) b.no = 1;
        if (b.no) return "/*^break BQ;^*/";
        var e = [];
        if (b.even) e.push("pos%2===0");
        else b.odd && e.push("pos%2===1");
        var d = b.eq == a ? E: "if(pos===" + b.eq + "){result=[#{N}];break BQ;}";
        b.gt != a && e.push("pos>" + b.gt);
        d = e.length ? "if (" + e.join("&&") + "){" + d + "}": d;
        d = b.lt != a ? "if (pos<" + b.lt + "){" + d + "}else break BQ;": d;
        if (b.last) d += "/*$result=result.slice(-1);$*/";
        return d
    }
    function eb(a) {
        var d = nb(a),
        f = a.allPoses ? hb + "pos++;" + T(a.allPoses) : E;
        C = 0;
        var b = n,
        c = d.length;
        while (c--) {
            var h = d[c];
            b = e(b, {
                X: Q(h, c == 0 ? f: g)
            })
        }
        return b
    }
    var r;
    if (f.documentElement.sourceIndex) r = function(a, b) {
        return a === b ? 0 : a.sourceIndex - b.sourceIndex
    };
    else if (f.compareDocumentPosition) r = function(a, b) {
        return a === b ? 0 : b.compareDocumentPosition(a) & 2 ? -1 : 1
    };
    function V(a, f) {
        if (!a.length) return a;
        a.sort(r);
        if (f) return a;
        for (var b = [a[0]], d, e = 0, c = 1, g = a.length; c < g; c++) if (b[e] !== (d = a[c])) b[++e] = d;
        return b
    }
    function db(m) {
        var c = lb(m),
        g = {},
        j = c.length;
        while (j--) {
            var h = c[j],
            f = eb(h);
            if (g && h.tag && !g[h.tag[0]]) g[h.tag[0]] = 1;
            else g = a;
            var i = {},
            l = [],
            k = [];
            f = f.replace(/\/\*\^(.*?)\^\*\//g,
            function(b, a) {
                return i[a] || (i[a] = l.push(a)),
                d
            });
            f = f.replace(/\/\*\$(.*?)\$\*\//g,
            function(b, a) {
                return i[a] || (i[a] = k.push(a)),
                d
            });
            f = e(Z, {
                X: l.join(d) + f + k.join(d)
            });
            c[j] = new Function("Q", "return(" + f + ")")(b)
        }
        if (c.length == 1) return c[0];
        return function(e) {
            var d = c.length,
            b = [];
            while (d--) b.push.apply(b, c[d](e));
            return V(b, g != a)
        }
    }
    b._hash = function(c) {
        var d = c._Q_hash;
        if (d == a) {
            d = c._Q_hash = {};
            var g = c.length,
            e = b.qid;
            while (g--) {
                var f = c[g];
                d[f._Q_id || (f._Q_id = ++e)] = 1
            }
            b.qid = e
        }
        return d
    };
    var jb = Array.prototype.slice;
    b._toArray1 = function(b) {
        var a = b.length,
        c = new Array(a);
        while (a--) c[a] = b[a];
        return c
    };
    b._toArray = function(a) {
        try {
            return jb.call(a, 0)
        } catch(c) {}
        return (b._toArray = b._toArray1)(a)
    };
    function W() {
        throw ["NotImpl"]
    }
    var G = {},
    t = g;
    function mb(a, c) {
        var d = c.ownerDocument || c,
        e;
        if (!d.getElementById) return W(a, c);
        if (c === d && d.querySelectorAll && !/#/.test(a)) try {
            return b._toArray(d.querySelectorAll(a))
        } catch(i) {}
        var f = G[a] || (G[a] = db(a));
        if (!t) {
            t = h;
            if (!D) d._Q_rev = b.qid++;
            e = f(c);
            t = g
        } else e = f(c);
        return e
    }
    b.qid = 1;
    b._byId = function(f, e) {
        if (F) return e.getElementsByTagName(c)[f];
        var g = e.ownerDocument || e,
        d = g.getElementById(f);
        if (d && (e === g || b.contains(e, d)) && (!q || (d.id === f || d.getAttributeNode("id").nodeValue === f))) return d;
        return a
    };
    b._in = function(d, f) {
        for (var g = b._hash(f), e = [], c = 0; c < d.length; c++) {
            var a = d[c];
            g[a._Q_id || (a._Q_id = ++b.qid)] && e.push(a)
        }
        return e
    };
    b.matches = function(c, d) {
        return b(c, a, a, d)
    };
    b.contains = f.documentElement.contains ?
    function(a, b) {
        return a !== b && a.contains(b)
    }: function(a, b) {
        return a !== b && a.compareDocumentPosition(b) & 16
    };
    b._has = function(d, c) {
        for (var e = 0,
        a; a = c[e++];) if (!b.contains(d, a)) return g;
        return h
    };
    b._index = function(d, f, g, e) {
        var b = d.parentNode;
        if (b._Q_magic !== e) {
            var a, c = 1;
            if (k) {
                a = b.firstElementChild;
                while (a) {
                    a._Q_index = c++;
                    a = a.nextElementSibling
                }
            } else for (var i = b.children || b.childNodes,
            h = 0; a = i[h]; h++) {
                if (a.nodeType == 1) a._Q_index = c++;
                a = a.nextSibling
            }
            b._Q_count1 = c;
            b._Q_magic = e
        }
        return f ? (d._Q_index - g) % f == 0 : d._Q_index == g
    };
    b._isOnlyChild = function(a) {
        return b._isFirstChild(a) && b._isLastChild(a)
    };
    b._isFirstChild = function(a) {
        while (a = a.previousSibling) if (a.nodeType == 1) return g;
        return h
    };
    b._isLastChild = function(a) {
        while (a = a.nextSibling) if (a.nodeType == 1) return g;
        return h
    };
    b._isXHTML = function(a) {
        return a.documentElement.nodeName == "html"
    };
    function b(g, d, c, e) {
        d = d || f;
        var a = mb(g, d);
        if (e) a = b._in(e, a);
        if (c) a.push.apply(c, a);
        else c = a;
        return c
    }
    return b
} (); (function() {
    var a = false,
    b = baidu.dom.ready = function() {
        var e = "onreadystatechange",
        d = "DOMContentLoaded",
        h = a,
        f = [],
        c;
        if (document.addEventListener) c = function() {
            document.removeEventListener(d, c, a);
            b()
        };
        else if (document.attachEvent) c = function() {
            if (document.readyState === "complete") {
                document.detachEvent(e, c);
                b()
            }
        };
        function b() {
            if (!b.isReady) {
                b.isReady = true;
                for (var a = 0,
                c = f.length; a < c; a++) f[a]()
            }
        }
        function g() {
            try {
                document.documentElement.doScroll("left")
            } catch(a) {
                setTimeout(g, 1);
                return
            }
            b()
        }
        function i() {
            if (h) return;
            h = true;
            if (document.addEventListener) {
                document.addEventListener(d, c, a);
                window.addEventListener("load", b, a)
            } else if (document.attachEvent) {
                document.attachEvent(e, c);
                window.attachEvent("onload", b);
                var f = a;
                try {
                    f = window.frameElement == null
                } catch(i) {}
                document.documentElement.doScroll && f && g()
            }
        }
        i();
        return function(a) {
            b.isReady ? a() : f.push(a)
        }
    } ();
    b.isReady = a
})();
baidu.dom.remove = function(a) {
    a = baidu.dom._g(a);
    var b = a.parentNode;
    b && b.removeChild(a)
};
baidu.dom.removeClass = function(a, g) {
    a = baidu.dom.g(a);
    for (var c = a.className.split(/\s+/), e = g.split(/\s+/), f, h = e.length, b, d = 0; d < h; ++d) for (b = 0, f = c.length; b < f; ++b) if (c[b] == e[d]) {
        c.splice(b, 1);
        break
    }
    a.className = c.join(" ");
    return a
};
baidu.removeClass = baidu.dom.removeClass;
baidu.dom.removeStyle = function() {
    var a = document.createElement("DIV"),
    b,
    c = baidu.dom._g;
    if (a.style.removeProperty) b = function(a, b) {
        a = c(a);
        a.style.removeProperty(b);
        return a
    };
    else if (a.style.removeAttribute) b = function(a, b) {
        a = c(a);
        a.style.removeAttribute(baidu.string.toCamelCase(b));
        return a
    };
    a = null;
    return b
} ();
baidu.object.each = function(a, d) {
    var c, b, e;
    if ("function" == typeof d) for (b in a) if (a.hasOwnProperty(b)) {
        e = a[b];
        c = d.call(a, e, b);
        if (c === false) break
    }
    return a
};
baidu.lang.isNumber = function(a) {
    return "[object Number]" == Object.prototype.toString.call(a) && isFinite(a)
};
baidu.event.getTarget = function(a) {
    return a.target || a.srcElement
};
baidu.dom.setBorderBoxSize = function(a, d) {
    var b = {};
    d.width && (b.width = parseFloat(d.width));
    d.height && (b.height = parseFloat(d.height));
    function c(a, b) {
        return parseFloat(baidu.getStyle(a, b)) || 0
    }
    if (baidu.browser.isStrict) {
        if (d.width) {
            b.width = parseFloat(d.width) - c(a, "paddingLeft") - c(a, "paddingRight") - c(a, "borderLeftWidth") - c(a, "borderRightWidth");
            b.width < 0 && (b.width = 0)
        }
        if (d.height) {
            b.height = parseFloat(d.height) - c(a, "paddingTop") - c(a, "paddingBottom") - c(a, "borderTopWidth") - c(a, "borderBottomWidth");
            b.height < 0 && (b.height = 0)
        }
    }
    return baidu.dom.setStyles(a, b)
};
baidu.dom.setOuterHeight = baidu.dom.setBorderBoxHeight = function(a, b) {
    return baidu.dom.setBorderBoxSize(a, {
        height: b
    })
};
baidu.dom.setOuterWidth = baidu.dom.setBorderBoxWidth = function(a, b) {
    return baidu.dom.setBorderBoxSize(a, {
        width: b
    })
};
baidu.dom.resizable = function(A, B) {
    var i = "selectstart",
    h = "mousedown",
    l = "absolute",
    e = "cursor",
    k = "position",
    g = false,
    a, b, d = {},
    E, c = {},
    f, r, s, x, j, q, v, m = g,
    w = {
        direction: ["e", "s", "se"],
        minWidth: 16,
        minHeight: 16,
        classPrefix: "tangram",
        directionHandlePosition: {}
    };
    if (! (a = baidu.dom.g(A)) && baidu.getStyle(a, k) == "static") return g;
    x = a.offsetParent;
    var z = baidu.getStyle(a, k);
    b = baidu.extend(w, B);
    baidu.each(["minHeight", "minWidth", "maxHeight", "maxWidth"],
    function(a) {
        b[a] && (b[a] = parseFloat(b[a]))
    });
    f = [b.minWidth || 0, b.maxWidth || Number.MAX_VALUE, b.minHeight || 0, b.maxHeight || Number.MAX_VALUE];
    o();
    function o() {
        var f = "16px",
        c = "1px",
        n = "7px",
        j = "0px",
        i = "-5px";
        q = baidu.extend({
            e: {
                right: i,
                top: j,
                width: n,
                height: a.offsetHeight
            },
            s: {
                left: j,
                bottom: i,
                height: n,
                width: a.offsetWidth
            },
            n: {
                left: j,
                top: i,
                height: n,
                width: a.offsetWidth
            },
            w: {
                left: i,
                top: j,
                height: a.offsetHeight,
                width: n
            },
            se: {
                right: c,
                bottom: c,
                height: f,
                width: f
            },
            sw: {
                left: c,
                bottom: c,
                height: f,
                width: f
            },
            ne: {
                right: c,
                top: c,
                height: f,
                width: f
            },
            nw: {
                left: c,
                top: c,
                height: f,
                width: f
            }
        },
        b.directionHandlePosition);
        baidu.each(b.direction,
        function(f) {
            var g = b.classPrefix.split(" ");
            g[0] = g[0] + "-resizable-" + f;
            var c = baidu.dom.create("div", {
                className: g.join(" ")
            }),
            i = q[f];
            i[e] = f + "-resize";
            i[k] = l;
            baidu.setStyles(c, i);
            c.key = f;
            c.style.MozUserSelect = "none";
            a.appendChild(c);
            d[f] = c;
            baidu.on(c, h, u)
        });
        m = g
    }
    function t() {
        j && p();
        baidu.object.each(d,
        function(a) {
            baidu.un(a, h, u);
            baidu.dom.remove(a)
        });
        m = true
    }
    function D(a) {
        if (!m) {
            b = baidu.extend(b, a || {});
            t();
            o()
        }
    }
    function u(f) {
        var a = baidu.event.getTarget(f),
        d = a.key;
        j = a;
        if (a.setCapture) a.setCapture();
        else window.captureEvents && window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
        s = baidu.getStyle(document.body, e);
        baidu.setStyle(document.body, e, d + "-resize");
        baidu.on(a, "mouseup", p);
        baidu.on(document.body, i, n);
        r = document.body.style.MozUserSelect;
        document.body.style.MozUserSelect = "none";
        var g = baidu.page.getMousePosition();
        c = y();
        v = setInterval(function() {
            C(d, g)
        },
        20);
        baidu.lang.isFunction(b.onresizestart) && b.onresizestart();
        baidu.event.preventDefault(f)
    }
    function p() {
        if (j.releaseCapture) j.releaseCapture();
        else window.releaseEvents && window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP);
        baidu.un(j, "mouseup", p);
        baidu.un(document, i, n);
        document.body.style.MozUserSelect = r;
        baidu.un(document.body, i, n);
        clearInterval(v);
        baidu.setStyle(document.body, e, s);
        j = null;
        baidu.lang.isFunction(b.onresizeend) && b.onresizeend()
    }
    function C(k, j) {
        var g = "height",
        e = "width",
        l = baidu.page.getMousePosition(),
        i = c[e],
        h = c[g],
        n = c["top"],
        m = c["left"],
        o;
        if (k.indexOf("e") >= 0) {
            i = Math.max(l.x - j.x + c[e], f[0]);
            i = Math.min(i, f[1])
        } else if (k.indexOf("w") >= 0) {
            i = Math.max(j.x - l.x + c[e], f[0]);
            i = Math.min(i, f[1]);
            m -= i - c[e]
        }
        if (k.indexOf("s") >= 0) {
            h = Math.max(l.y - j.y + c[g], f[2]);
            h = Math.min(h, f[3])
        } else if (k.indexOf("n") >= 0) {
            h = Math.max(j.y - l.y + c[g], f[2]);
            h = Math.min(h, f[3]);
            n -= h - c[g]
        }
        o = {
            width: i,
            height: h,
            top: n,
            left: m
        };
        baidu.dom.setOuterHeight(a, h);
        baidu.dom.setOuterWidth(a, i);
        baidu.setStyles(a, {
            top: n,
            left: m
        });
        d["n"] && baidu.setStyle(d["n"], e, i);
        d["s"] && baidu.setStyle(d["s"], e, i);
        d["e"] && baidu.setStyle(d["e"], g, h);
        d["w"] && baidu.setStyle(d["w"], g, h);
        baidu.lang.isFunction(b.onresize) && b.onresize({
            current: o,
            original: c
        })
    }
    function n(a) {
        return baidu.event.preventDefault(a, g)
    }
    function y() {
        var d = baidu.dom.getPosition(a.offsetParent),
        e = baidu.dom.getPosition(a),
        c,
        b;
        if (z == l) {
            c = e.top - (a.offsetParent == document.body ? 0 : d.top);
            b = e.left - (a.offsetParent == document.body ? 0 : d.left)
        } else {
            c = parseFloat(baidu.getStyle(a, "top")) || -parseFloat(baidu.getStyle(a, "bottom")) || 0;
            b = parseFloat(baidu.getStyle(a, "left")) || -parseFloat(baidu.getStyle(a, "right")) || 0
        }
        baidu.setStyles(a, {
            top: c,
            left: b
        });
        return {
            width: a.offsetWidth,
            height: a.offsetHeight,
            top: c,
            left: b
        }
    }
    return {
        cancel: t,
        update: D,
        enable: o
    }
};
baidu.dom.setPosition = function(a, b) {
    return baidu.dom.setStyles(a, {
        left: b.left - (parseFloat(baidu.dom.getStyle(a, "margin-left")) || 0),
        top: b.top - (parseFloat(baidu.dom.getStyle(a, "margin-top")) || 0)
    })
};
baidu.dom.show = function(a) {
    a = baidu.dom.g(a);
    a.style.display = "";
    return a
};
baidu.show = baidu.dom.show;
baidu.dom.toggle = function(a) {
    a = baidu.dom.g(a);
    a.style.display = a.style.display == "none" ? "": "none";
    return a
};
baidu.dom.toggleClass = function(b, a) {
    if (baidu.dom.hasClass(b, a)) baidu.dom.removeClass(b, a);
    else baidu.dom.addClass(b, a)
};
baidu.lang.isArray = function(a) {
    return "[object Array]" == Object.prototype.toString.call(a)
};
baidu.lang.toArray = function(a) {
    if (a === null || a === undefined) return [];
    if (baidu.lang.isArray(a)) return a;
    if (typeof a.length !== "number" || typeof a === "string" || baidu.lang.isFunction(a)) return [a];
    if (a.item) {
        var b = a.length,
        c = new Array(b);
        while (b--) c[b] = a[b];
        return c
    }
    return [].slice.call(a)
};
baidu.fn.methodize = function(b, a) {
    return function() {
        return b.apply(this, [a ? this[a] : this].concat([].slice.call(arguments)))
    }
};
baidu.fn.wrapReturnValue = function(c, b, a) {
    a = a | 0;
    return function() {
        var d = c.apply(this, arguments);
        if (a > 0) return new b(arguments[a - 1]);
        if (!a) return new b(d);
        return d
    }
};
baidu.fn.multize = function(b, d, c) {
    var a = function() {
        var g = arguments[0],
        k = d ? a: b,
        e = [],
        i = [].slice.call(arguments, 0),
        h = 0,
        j,
        f;
        if (g instanceof Array) {
            for (j = g.length; h < j; h++) {
                i[0] = g[h];
                f = k.apply(this, i);
                if (c) {
                    if (f) e = e.concat(f)
                } else e.push(f)
            }
            return e
        } else return b.apply(this, arguments)
    };
    return a
};
baidu.element = function(b) {
    var a = baidu._g(b);
    if (!a && baidu.dom.query) a = baidu.dom.query(b);
    return new baidu.element.Element(a)
};
baidu.e = baidu.element;
baidu.element.Element = function(a) {
    if (!baidu.element._init) {
        baidu.element._makeChain();
        baidu.element._init = true
    }
    this._dom = (a.tagName || "").toLowerCase() == "select" ? [a] : baidu.lang.toArray(a)
};
baidu.element.Element.prototype.each = function(a) {
    baidu.array.each(this._dom,
    function(b, c) {
        a.call(b, b, c)
    })
};
baidu.element._toChainFunction = function(b, a) {
    return baidu.fn.methodize(baidu.fn.wrapReturnValue(baidu.fn.multize(b, 0, 1), baidu.element.Element, a), "_dom")
};
baidu.element._makeChain = function() {
    var a = baidu.element.Element.prototype,
    b = baidu.element._toChainFunction;
    baidu.each("draggable droppable resizable fixable".split(" "),
    function(c) {
        a[c] = b(baidu.dom[c], 1)
    });
    baidu.each("remove getText contains getAttr getPosition getStyle hasClass intersect hasAttr getComputedStyle".split(" "),
    function(d) {
        a[d] = a[d.replace(/^get[A-Z]/g, c)] = b(baidu.dom[d], -1)
    });
    baidu.each("addClass empty hide show insertAfter insertBefore insertHTML removeClass setAttr setAttrs setStyle setStyles show toggleClass toggle next first getAncestorByClass getAncestorBy getAncestorByTag getDocument getParent getWindow last next prev g removeStyle setBorderBoxSize setOuterWidth setOuterHeight setBorderBoxWidth setBorderBoxHeight setPosition children query".split(" "),
    function(d) {
        a[d] = a[d.replace(/^get[A-Z]/g, c)] = b(baidu.dom[d], 0)
    });
    a["q"] = a["Q"] = b(function(a, b) {
        return baidu.dom.q.apply(this, [b, a].concat([].slice.call(arguments, 2)))
    },
    0);
    baidu.each("on un".split(" "),
    function(c) {
        a[c] = b(baidu.event[c], 0)
    });
    baidu.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
    function(b) {
        a[b] = function(a) {
            return this.on(b, a)
        }
    });
    function c(a) {
        return a.charAt(3).toLowerCase()
    }
};
baidu.element.extend = function(a) {
    var b = baidu.element;
    baidu.object.each(a,
    function(a, c) {
        b.Element.prototype[c] = baidu.element._toChainFunction(a, -1)
    })
};
baidu.event.EventArg = function(a, d) {
    var b = this;
    d = d || window;
    a = a || d.event;
    var c = d.document;
    b.target = a.target || a.srcElement;
    b.keyCode = a.which || a.keyCode;
    for (var f in a) {
        var e = a[f];
        if ("function" != typeof e) b[f] = e
    }
    if (!b.pageX && b.pageX !== 0) {
        b.pageX = (a.clientX || 0) + (c.documentElement.scrollLeft || c.body.scrollLeft);
        b.pageY = (a.clientY || 0) + (c.documentElement.scrollTop || c.body.scrollTop)
    }
    b._event = a
};
baidu.event.EventArg.prototype.preventDefault = function() {
    var a = this;
    if (a._event.preventDefault) a._event.preventDefault();
    else a._event.returnValue = false;
    return a
};
baidu.event.EventArg.prototype.stopPropagation = function() {
    var a = this;
    if (a._event.stopPropagation) a._event.stopPropagation();
    else a._event.cancelBubble = true;
    return a
};
baidu.event.EventArg.prototype.stop = function() {
    return this.stopPropagation().preventDefault()
};
baidu.event._eventFilter = baidu.event._eventFilter || {};
baidu.event._eventFilter._crossElementBoundary = function(d, c) {
    var a = c.relatedTarget,
    b = c.currentTarget;
    if (a === false || b == a || a && (a.prefix == "xul" || baidu.dom.contains(b, a))) return;
    return d.call(b, c)
};
baidu.fn.bind = function(a, b) {
    var c = arguments.length > 2 ? [].slice.call(arguments, 2) : null;
    return function() {
        var d = baidu.lang.isString(a) ? b[a] : a,
        e = c ? c.concat([].slice.call(arguments, 0)) : arguments;
        return d.apply(b || d, e)
    }
};
baidu.event._eventFilter.mouseenter = window.attachEvent ? null: function(b, c, a) {
    return {
        type: "mouseover",
        listener: baidu.fn.bind(baidu.event._eventFilter._crossElementBoundary, this, a)
    }
};
baidu.event._eventFilter.mouseleave = window.attachEvent ? null: function(b, c, a) {
    return {
        type: "mouseout",
        listener: baidu.fn.bind(baidu.event._eventFilter._crossElementBoundary, this, a)
    }
};
baidu.event._unload = function() {
    var d = baidu.event._listeners,
    c = d.length,
    e = !!window.removeEventListener,
    a, b;
    while (c--) {
        a = d[c];
        if (a[1] == "unload") continue;
        if (! (b = a[0])) continue;
        if (b.removeEventListener) b.removeEventListener(a[1], a[3], false);
        else b.detachEvent && b.detachEvent("on" + a[1], a[3])
    }
    if (e) window.removeEventListener("unload", baidu.event._unload, false);
    else window.detachEvent("onunload", baidu.event._unload)
};
if (window.attachEvent) window.attachEvent("onunload", baidu.event._unload);
else window.addEventListener("unload", baidu.event._unload, false);
baidu.object.values = function(a) {
    var c = [],
    d = 0,
    b;
    for (b in a) if (a.hasOwnProperty(b)) c[d++] = a[b];
    return c
}; (function() {
    var d = "UIEvents",
    c = "MouseEvents",
    b = "KeyEvents",
    l = "shiftKey",
    j = "view",
    f = "cancelable",
    e = "bubbles",
    m = baidu.browser,
    o = {
        keydown: 1,
        keyup: 1,
        keypress: 1
    },
    n = {
        click: 1,
        dblclick: 1,
        mousedown: 1,
        mousemove: 1,
        mouseup: 1,
        mouseover: 1,
        mouseout: 1
    },
    s = {
        abort: 1,
        blur: 1,
        change: 1,
        error: 1,
        focus: 1,
        load: m.ie ? 0 : 1,
        reset: 1,
        resize: 1,
        scroll: 1,
        select: 1,
        submit: 1,
        unload: m.ie ? 0 : 1
    },
    i = {
        scroll: 1,
        resize: 1,
        reset: 1,
        submit: 1,
        change: 1,
        select: 1,
        error: 1,
        abort: 1
    },
    g = {
        KeyEvents: [e, f, j, "ctrlKey", "altKey", l, "metaKey", "keyCode", "charCode"],
        MouseEvents: [e, f, j, "detail", "screenX", "screenY", "clientX", "clientY", "ctrlKey", "altKey", l, "metaKey", "button", "relatedTarget"],
        HTMLEvents: [e, f],
        UIEvents: [e, f, j, "detail"],
        Events: [e, f]
    };
    baidu.object.extend(i, o);
    baidu.object.extend(i, n);
    function h(b, c) {
        for (var a = 0,
        e = b.length,
        d = {}; a < e; a++) {
            d[b[a]] = c[b[a]];
            delete c[b[a]]
        }
        return d
    }
    function a(j, e, i) {
        i = baidu.object.extend({},
        i);
        var f = baidu.object.values(h(g[e], i)),
        a = document.createEvent(e);
        f.unshift(j);
        if (b == e) a.initKeyEvent.apply(a, f);
        else if (c == e) a.initMouseEvent.apply(a, f);
        else if (d == e) a.initUIEvent.apply(a, f);
        else a.initEvent.apply(a, f);
        baidu.object.extend(a, i);
        return a
    }
    function k(b) {
        var a;
        if (document.createEventObject) {
            a = document.createEventObject();
            baidu.object.extend(a, b)
        }
        return a
    }
    function r(f, c) {
        c = h(g[b], c);
        var e;
        if (document.createEvent) try {
            e = a(f, b, c)
        } catch(j) {
            try {
                e = a(f, "Events", c)
            } catch(i) {
                e = a(f, d, c)
            }
        } else {
            c.keyCode = c.charCode > 0 ? c.charCode: c.keyCode;
            e = k(c)
        }
        return e
    }
    function p(e, b) {
        b = h(g[c], b);
        var d;
        if (document.createEvent) {
            d = a(e, c, b);
            if (b.relatedTarget && !d.relatedTarget) if ("mouseout" == e.toLowerCase()) d.toElement = b.relatedTarget;
            else if ("mouseover" == e.toLowerCase()) d.fromElement = b.relatedTarget
        } else {
            b.button = b.button == 0 ? 1 : b.button == 1 ? 4 : baidu.lang.isNumber(b.button) ? b.button: 0;
            d = k(b)
        }
        return d
    }
    function q(f, b) {
        var e = "HTMLEvents";
        b.bubbles = i.hasOwnProperty(f);
        b = h(g[e], b);
        var c;
        if (document.createEvent) try {
            c = a(f, e, b)
        } catch(j) {
            try {
                c = a(f, d, b)
            } catch(l) {
                c = a(f, "Events", b)
            }
        } else c = k(b);
        return c
    }
    baidu.event.fire = function(c, a, e) {
        var b = false,
        d;
        a = a.replace(/^on/i, "");
        c = baidu.dom._g(c);
        e = baidu.object.extend({
            bubbles: true,
            cancelable: true,
            view: window,
            detail: 1,
            screenX: 0,
            screenY: 0,
            clientX: 0,
            clientY: 0,
            ctrlKey: b,
            altKey: b,
            shiftKey: b,
            metaKey: b,
            keyCode: 0,
            charCode: 0,
            button: 0,
            relatedTarget: null
        },
        e);
        if (o[a]) d = r(a, e);
        else if (n[a]) d = p(a, e);
        else if (s[a]) d = q(a, e);
        else throw new Error(a + " is not support!");
        if (d) if (c.dispatchEvent) c.dispatchEvent(d);
        else c.fireEvent && c.fireEvent("on" + a, d)
    }
})();
baidu.event.get = function(a, b) {
    return new baidu.event.EventArg(a, b)
};
baidu.event.getKeyCode = function(a) {
    return a.which || a.keyCode
};
baidu.event.getPageX = function(b) {
    var a = b.pageX,
    c = document;
    if (!a && a !== 0) a = (b.clientX || 0) + (c.documentElement.scrollLeft || c.body.scrollLeft);
    return a
};
baidu.event.getPageY = function(b) {
    var a = b.pageY,
    c = document;
    if (!a && a !== 0) a = (b.clientY || 0) + (c.documentElement.scrollTop || c.body.scrollTop);
    return a
};
baidu.event.once = function(a, c, d) {
    a = baidu.dom._g(a);
    function b(e) {
        d.call(a, e);
        baidu.event.un(a, c, b)
    }
    baidu.event.on(a, c, b);
    return a
};
baidu.event.stopPropagation = function(a) {
    if (a.stopPropagation) a.stopPropagation();
    else a.cancelBubble = true
};
baidu.event.stop = function(a) {
    var b = baidu.event;
    b.stopPropagation(a);
    b.preventDefault(a)
};
baidu.fn.abstractMethod = function() {
    throw Error("unimplemented abstract method")
};
baidu.json = baidu.json || {};
baidu.json.parse = function(a) {
    return new Function("return (" + a + ")")()
};
baidu.json.decode = baidu.json.parse;
baidu.json.stringify = function() {
    var c = "function",
    a = "undefined",
    g = {
        "\b": "\\b",
        "\t": "\\t",
        "\n": "\\n",
        "\f": "\\f",
        "\r": "\\r",
        '"': '\\"',
        "\\": "\\\\"
    };
    function d(a) {
        if (/["\\\x00-\x1f]/.test(a)) a = a.replace(/["\\\x00-\x1f]/g,
        function(b) {
            var a = g[b];
            if (a) return a;
            a = b.charCodeAt();
            return "\\u00" + Math.floor(a / 16).toString(16) + (a % 16).toString(16)
        });
        return '"' + a + '"'
    }
    function e(g) {
        for (var b = ["["], h = g.length, f, d, e = 0; e < h; e++) {
            d = g[e];
            switch (typeof d) {
            case a:
            case c:
            case "unknown":
                break;
            default:
                f && b.push(",");
                b.push(baidu.json.stringify(d));
                f = 1
            }
        }
        b.push("]");
        return b.join("")
    }
    function b(a) {
        return a < 10 ? "0" + a: a
    }
    function f(a) {
        return '"' + a.getFullYear() + "-" + b(a.getMonth() + 1) + "-" + b(a.getDate()) + "T" + b(a.getHours()) + ":" + b(a.getMinutes()) + ":" + b(a.getSeconds()) + '"'
    }
    return function(b) {
        switch (typeof b) {
        case a:
            return a;
        case "number":
            return isFinite(b) ? String(b) : "null";
        case "string":
            return d(b);
        case "boolean":
            return String(b);
        default:
            if (b === null) return "null";
            else if (b instanceof Array) return e(b);
            else if (b instanceof Date) return f(b);
            else {
                var g = ["{"],
                k = baidu.json.stringify,
                j,
                h;
                for (var i in b) if (Object.prototype.hasOwnProperty.call(b, i)) {
                    h = b[i];
                    switch (typeof h) {
                    case a:
                    case "unknown":
                    case c:
                        break;
                    default:
                        j && g.push(",");
                        j = 1;
                        g.push(k(i) + ":" + k(h))
                    }
                }
                g.push("}");
                return g.join("")
            }
        }
    }
} ();
baidu.json.encode = baidu.json.stringify;
baidu.lang.Class.prototype.addEventListeners = function(a, c) {
    if (typeof c == "undefined") for (var b in a) this.addEventListener(b, a[b]);
    else {
        a = a.split(",");
        for (var b = 0,
        d = a.length,
        e; b < d; b++) this.addEventListener(baidu.trim(a[b]), c)
    }
};
baidu.lang.createClass = function(f, a) {
    a = a || {};
    var c = a.superClass || baidu.lang.Class,
    b = function() {
        if (c != baidu.lang.Class) c.apply(this, arguments);
        else c.call(this);
        f.apply(this, arguments)
    };
    b.options = a.options || {};
    var g = function() {},
    d = f.prototype;
    g.prototype = c.prototype;
    var e = b.prototype = new g;
    for (var h in d) e[h] = d[h];
    typeof a.className == "string" && (e._className = a.className);
    e.constructor = d.constructor;
    b.extend = function(a) {
        for (var c in a) b.prototype[c] = a[c];
        return b
    };
    return b
};
baidu.lang.decontrol = function(b) {
    var a = window[baidu.guid];
    a._instances && delete a._instances[b]
};
baidu.lang.eventCenter = baidu.lang.eventCenter || baidu.lang.createSingle();
baidu.lang.getModule = function(e, c) {
    for (var d = e.split("."), a = c || window, b; b = d.shift();) if (a[b] != null) a = a[b];
    else return null;
    return a
};
baidu.lang.inherits = function(a, d, e) {
    var c, b, f = a.prototype,
    g = new Function;
    g.prototype = d.prototype;
    b = a.prototype = new g;
    for (c in f) b[c] = f[c];
    a.prototype.constructor = a;
    a.superClass = d.prototype;
    if ("string" == typeof e) b._className = e
};
baidu.inherits = baidu.lang.inherits;
baidu.lang.instance = function(a) {
    return window[baidu.guid]._instances[a] || null
};
baidu.lang.isBoolean = function(a) {
    return typeof a === "boolean"
};
baidu.lang.isDate = function(a) {
    return {}.toString.call(a) === "[object Date]" && a.toString() !== "Invalid Date" && !isNaN(a)
};
baidu.lang.isElement = function(a) {
    return !! (a && a.nodeName && a.nodeType == 1)
};
baidu.lang.isObject = function(a) {
    return "function" == typeof a || !!(a && "object" == typeof a)
};
baidu.isObject = baidu.lang.isObject;
baidu.lang.module = function(name, module, owner) {
    var packages = name.split("."),
    len = packages.length - 1,
    packageName,
    i = 0;
    if (!owner) try {
        if (! (new RegExp("^[a-zA-Z_$][a-zA-Z0-9_$]*$")).test(packages[0])) throw "";
        owner = eval(packages[0]);
        i = 1
    } catch(e) {
        owner = window
    }
    for (; i < len; i++) {
        packageName = packages[i];
        if (!owner[packageName]) owner[packageName] = {};
        owner = owner[packageName]
    }
    if (!owner[packages[len]]) owner[packages[len]] = module
};
baidu.number.comma = function(a, b) {
    if (!b || b < 1) b = 3;
    a = String(a).split(".");
    a[0] = a[0].replace(new RegExp("(\\d)(?=(\\d{" + b + "})+$)", "ig"), "$1,");
    return a.join(".")
};
baidu.number.randomInt = function(a, b) {
    return Math.floor(Math.random() * (b - a + 1) + a)
};
baidu.object.isPlain = function(a) {
    var d = "isPrototypeOf",
    b = Object.prototype.hasOwnProperty,
    c;
    if (!a || Object.prototype.toString.call(a) !== "[object Object]" || !(d in a)) return false;
    if (a.constructor && !b.call(a, "constructor") && !b.call(a.constructor.prototype, d)) return false;
    for (c in a);
    return c === undefined || b.call(a, c)
};
baidu.object.clone = function(a) {
    var c = a,
    b, d;
    if (!a || a instanceof Number || a instanceof String || a instanceof Boolean) return c;
    else if (baidu.lang.isArray(a)) {
        c = [];
        var e = 0;
        for (b = 0, d = a.length; b < d; b++) c[e++] = baidu.object.clone(a[b])
    } else if (baidu.object.isPlain(a)) {
        c = {};
        for (b in a) if (a.hasOwnProperty(b)) c[b] = baidu.object.clone(a[b])
    }
    return c
};
baidu.object.isEmpty = function(a) {
    for (var b in a) return false;
    return true
};
baidu.object.keys = function(c) {
    var b = [],
    d = 0,
    a;
    for (a in c) if (c.hasOwnProperty(a)) b[d++] = a;
    return b
};
baidu.object.map = function(b, d) {
    var c = {};
    for (var a in b) if (b.hasOwnProperty(a)) c[a] = d(b[a], a);
    return c
}; (function() {
    var b = function(a) {
        return baidu.lang.isObject(a) && !baidu.lang.isFunction(a)
    };
    function a(c, d, a, e, f) {
        if (d.hasOwnProperty(a)) if (f && b(c[a])) baidu.object.merge(c[a], d[a], {
            overwrite: e,
            recursive: f
        });
        else if (e || !(a in c)) c[a] = d[a]
    }
    baidu.object.merge = function(f, e, j) {
        var b = 0,
        d = j || {},
        g = d["overwrite"],
        c = d["whiteList"],
        h = d["recursive"],
        i;
        if (c && c.length) {
            i = c.length;
            for (; b < i; ++b) a(f, e, c[b], g, h)
        } else for (b in e) a(f, e, b, g, h);
        return f
    }
})();
baidu.page.createStyleSheet = function(e) {
    var b = e || {},
    c = b.document || document,
    d;
    if (baidu.browser.ie) {
        if (!b.url) b.url = "";
        return c.createStyleSheet(b.url, b.index)
    } else {
        d = "<style type='text/css'></style>";
        b.url && (d = "<link type='text/css' rel='stylesheet' href='" + b.url + "'/>");
        baidu.dom.insertHTML(c.getElementsByTagName("HEAD")[0], "beforeEnd", d);
        if (b.url) return null;
        var a = c.styleSheets[c.styleSheets.length - 1],
        f = a.rules || a.cssRules;
        return {
            self: a,
            rules: a.rules || a.cssRules,
            addRule: function(c, d, b) {
                if (a.addRule) return a.addRule(c, d, b);
                else if (a.insertRule) {
                    isNaN(b) && (b = f.length);
                    return a.insertRule(c + "{" + d + "}", b)
                }
            },
            removeRule: function(b) {
                if (a.removeRule) a.removeRule(b);
                else if (a.deleteRule) {
                    isNaN(b) && (b = 0);
                    a.deleteRule(b)
                }
            }
        }
    }
};
baidu.page.getHeight = function() {
    var a = document,
    b = a.body,
    d = a.documentElement,
    c = a.compatMode == "BackCompat" ? b: a.documentElement;
    return Math.max(d.scrollHeight, b.scrollHeight, c.clientHeight)
};
baidu.page.getWidth = function() {
    var a = document,
    b = a.body,
    d = a.documentElement,
    c = a.compatMode == "BackCompat" ? b: a.documentElement;
    return Math.max(d.scrollWidth, b.scrollWidth, c.clientWidth)
};
baidu.page.lazyLoadImage = function(a) {
    a = a || {};
    a.preloadHeight = a.preloadHeight || 0;
    baidu.dom.ready(function() {
        var e = document.getElementsByTagName("IMG"),
        d = e,
        g = e.length,
        c = 0,
        j = h(),
        f = "data-tangram-ori-src",
        b;
        if (a.className) {
            d = [];
            for (; c < g; ++c) baidu.dom.hasClass(e[c], a.className) && d.push(e[c])
        }
        function h() {
            return baidu.page.getScrollTop() + baidu.page.getViewHeight() + a.preloadHeight
        }
        for (c = 0, g = d.length; c < g; ++c) {
            b = d[c];
            if (baidu.dom.getPosition(b).top > j) {
                b.setAttribute(f, b.src);
                a.placeHolder ? (b.src = a.placeHolder) : b.removeAttribute("src")
            }
        }
        var i = function() {
            for (var j = h(), c, g = true, e = 0, k = d.length; e < k; ++e) {
                b = d[e];
                c = b.getAttribute(f);
                c && (g = false);
                if (baidu.dom.getPosition(b).top < j && c) {
                    b.src = c;
                    b.removeAttribute(f);
                    baidu.lang.isFunction(a.onlazyload) && a.onlazyload(b)
                }
            }
            g && baidu.un(window, "scroll", i)
        };
        baidu.on(window, "scroll", i)
    })
};
baidu.page.load = function(b, c, j) {
    var a = true;
    c = c || {};
    var d = baidu.page.load,
    f = d._cache = d._cache || {},
    e = d._loadingCache = d._loadingCache || {},
    h = c.parallel;
    function i() {
        for (var a = 0,
        d = b.length; a < d; ++a) if (!f[b[a].url]) {
            setTimeout(arguments.callee, 10);
            return
        }
        c.onload()
    }
    function k(g, h) {
        var c = "readystatechange",
        b, f, e;
        switch (g.type.toLowerCase()) {
        case "css":
            b = document.createElement("link");
            b.setAttribute("rel", "stylesheet");
            b.setAttribute("type", "text/css");
            break;
        case "js":
            b = document.createElement("script");
            b.setAttribute("type", "text/javascript");
            b.setAttribute("charset", g.charset || d.charset);
            break;
        case "html":
            b = document.createElement("iframe");
            b.frameBorder = "none";
            break;
        default:
            return
        }
        e = function() {
            if (!f && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
                f = a;
                baidu.un(b, "load", e);
                baidu.un(b, c, e);
                h.call(window, b)
            }
        };
        baidu.on(b, "load", e);
        baidu.on(b, c, e);
        g.type == "css" && (function() {
            if (f) return;
            try {
                b.sheet.cssRule
            } catch(c) {
                setTimeout(arguments.callee, 20);
                return
            }
            f = a;
            h.call(window, b)
        })();
        b.href = b.src = g.url;
        document.getElementsByTagName("head")[0].appendChild(b)
    }
    baidu.lang.isString(b) && (b = [{
        url: b
    }]);
    if (! (b && b.length)) return;
    function g(l) {
        var p = l.url,
        m = !!h,
        o, n = function(g) {
            f[l.url] = g;
            delete e[l.url];
            if (baidu.lang.isFunction(l.onload)) if (false === l.onload.call(window, g)) return; ! h && d(b.slice(1), c, a); ! j && baidu.lang.isFunction(c.onload) && i()
        };
        l.type = l.type || p.substr(p.lastIndexOf(".") + 1);
        l.requestType = l.requestType || (l.type == "html" ? "ajax": "dom");
        if (o = f[l.url]) {
            n(o);
            return m
        }
        if (!c.refresh && e[l.url]) {
            setTimeout(function() {
                g(l)
            },
            10);
            return m
        }
        e[l.url] = a;
        if (l.requestType.toLowerCase() == "dom") k(l, n);
        else baidu.ajax.get(l.url,
        function(b, a) {
            n(a)
        });
        return m
    }
    baidu.each(b, g)
};
baidu.page.load.charset = "UTF8";
baidu.page.loadCssFile = function(b) {
    var a = document.createElement("link");
    a.setAttribute("rel", "stylesheet");
    a.setAttribute("type", "text/css");
    a.setAttribute("href", b);
    document.getElementsByTagName("head")[0].appendChild(a)
};
baidu.page.loadJsFile = function(b) {
    var a = document.createElement("script");
    a.setAttribute("type", "text/javascript");
    a.setAttribute("src", b);
    a.setAttribute("defer", "defer");
    document.getElementsByTagName("head")[0].appendChild(a)
};
baidu.platform = baidu.platform || {};
baidu.platform.isAndroid = /android/i.test(navigator.userAgent);
baidu.platform.isIpad = /ipad/i.test(navigator.userAgent);
baidu.platform.isIphone = /iphone/i.test(navigator.userAgent);
baidu.platform.isMacintosh = /macintosh/i.test(navigator.userAgent);
baidu.platform.isWindows = /windows/i.test(navigator.userAgent);
baidu.platform.isX11 = /x11/i.test(navigator.userAgent);
baidu.sio = baidu.sio || {};
baidu.sio._createScriptTag = function(a, c, b) {
    a.setAttribute("type", "text/javascript");
    b && a.setAttribute("charset", b);
    a.setAttribute("src", c);
    document.getElementsByTagName("head")[0].appendChild(a)
};
baidu.sio._removeScriptTag = function(a) {
    if (a.clearAttributes) a.clearAttributes();
    else for (var b in a) if (a.hasOwnProperty(b)) delete a[b];
    a && a.parentNode && a.parentNode.removeChild(a);
    a = null
};
baidu.sio.callByBrowser = function(j, f, g) {
    var a = document.createElement("SCRIPT"),
    c = 0,
    b = g || {},
    i = b["charset"],
    h = f ||
    function() {},
    d = b["timeOut"] || 0,
    e;
    a.onload = a.onreadystatechange = function() {
        if (c) return;
        var b = a.readyState;
        if ("undefined" == typeof b || b == "loaded" || b == "complete") {
            c = 1;
            try {
                h();
                clearTimeout(e)
            } finally {
                a.onload = a.onreadystatechange = null;
                baidu.sio._removeScriptTag(a)
            }
        }
    };
    if (d) e = setTimeout(function() {
        a.onload = a.onreadystatechange = null;
        baidu.sio._removeScriptTag(a);
        b.onfailure && b.onfailure()
    },
    d);
    baidu.sio._createScriptTag(a, j, i)
};
baidu.sio.callByServer = function(b, d, l) {
    var k = document.createElement("SCRIPT"),
    n = "bd__cbs__",
    a,
    o,
    c = l || {},
    m = c["charset"],
    e = c["queryField"] || "callback",
    i = c["timeOut"] || 0,
    j,
    f = new RegExp("(\\?|&)" + e + "=([^&]*)"),
    h;
    if (baidu.lang.isFunction(d)) {
        a = n + Math.floor(Math.random() * 2147483648).toString(36);
        window[a] = g(0)
    } else if (baidu.lang.isString(d)) a = d;
    else if (h = f.exec(b)) a = h[2];
    if (i) j = setTimeout(g(1), i);
    b = b.replace(f, "$1" + e + "=" + a);
    if (b.search(f) < 0) b += (b.indexOf("?") < 0 ? "?": "&") + e + "=" + a;
    baidu.sio._createScriptTag(k, b, m);
    function g(b) {
        return function() {
            try {
                if (b) c.onfailure && c.onfailure();
                else {
                    d.apply(window, arguments);
                    clearTimeout(j)
                }
                window[a] = null;
                delete window[a]
            } catch(e) {} finally {
                baidu.sio._removeScriptTag(k)
            }
        }
    }
};
baidu.sio.log = function(c) {
    var a = new Image,
    b = "tangram_sio_log_" + Math.floor(Math.random() * 2147483648).toString(36);
    window[b] = a;
    a.onload = a.onerror = a.onabort = function() {
        a.onload = a.onerror = a.onabort = null;
        window[b] = null;
        a = null
    };
    a.src = c
};
baidu.string.decodeHTML = function(a) {
    var b = String(a).replace(/&quot;/g, '"').replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
    return b.replace(/&#([\d]+);/g,
    function(b, a) {
        return String.fromCharCode(parseInt(a, 10))
    })
};
baidu.decodeHTML = baidu.string.decodeHTML;
baidu.string.encodeHTML = function(a) {
    return String(a).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;")
};
baidu.encodeHTML = baidu.string.encodeHTML;
baidu.string.filterFormat = function(d, c) {
    var a = Array.prototype.slice.call(arguments, 1),
    b = Object.prototype.toString;
    if (a.length) {
        a = a.length == 1 ? c !== null && /\[object Array\]|\[object Object\]/.test(b.call(c)) ? c: a: a;
        return d.replace(/#\{(.+?)\}/g,
        function(j, i) {
            var e = "[object Function]",
            d, c, f, h, g;
            if (!a) return "";
            d = i.split("|");
            c = a[d[0]];
            if (e == b.call(c)) c = c(d[0]);
            for (f = 1, h = d.length; f < h; ++f) {
                g = baidu.string.filterFormat[d[f]];
                if (e == b.call(g)) c = g(c)
            }
            return "undefined" == typeof c || c === null ? "": c
        })
    }
    return d
};
baidu.string.filterFormat.escapeJs = function(a) {
    if (!a || "string" != typeof a) return a;
    var b, e, c, d = [];
    for (b = 0, e = a.length; b < e; ++b) {
        c = a.charCodeAt(b);
        if (c > 255) d.push(a.charAt(b));
        else d.push("\\x" + c.toString(16))
    }
    return d.join("")
};
baidu.string.filterFormat.js = baidu.string.filterFormat.escapeJs;
baidu.string.filterFormat.escapeString = function(a) {
    if (!a || "string" != typeof a) return a;
    return a.replace(/["'<>\\\/`]/g,
    function(a) {
        return "&#" + a.charCodeAt(0) + ";"
    })
};
baidu.string.filterFormat.e = baidu.string.filterFormat.escapeString;
baidu.string.filterFormat.toInt = function(a) {
    return parseInt(a, 10) || 0
};
baidu.string.filterFormat.i = baidu.string.filterFormat.toInt;
baidu.string.format = function(b, c) {
    b = String(b);
    var a = Array.prototype.slice.call(arguments, 1),
    d = Object.prototype.toString;
    if (a.length) {
        a = a.length == 1 ? c !== null && /\[object Array\]|\[object Object\]/.test(d.call(c)) ? c: a: a;
        return b.replace(/#\{(.+?)\}/g,
        function(e, c) {
            var b = a[c];
            if ("[object Function]" == d.call(b)) b = b(c);
            return "undefined" == typeof b ? "": b
        })
    }
    return b
};
baidu.format = baidu.string.format; (function() {
    var b = /^\#[\da-f]{6}$/i,
    c = /^rgb\((\d+), (\d+), (\d+)\)$/,
    a = {
        black: "#000000",
        silver: "#c0c0c0",
        gray: "#808080",
        white: "#ffffff",
        maroon: "#800000",
        red: "#ff0000",
        purple: "#800080",
        fuchsia: "#ff00ff",
        green: "#008000",
        lime: "#00ff00",
        olive: "#808000",
        yellow: "#ffff0",
        navy: "#000080",
        blue: "#0000ff",
        teal: "#008080",
        aqua: "#00ffff"
    };
    baidu.string.formatColor = function(d) {
        if (b.test(d)) return d;
        else if (c.test(d)) {
            for (var f, e = 1,
            d = "#"; e < 4; e++) {
                f = parseInt(RegExp["$" + e]).toString(16);
                d += ("00" + f).substr(f.length)
            }
            return d
        } else if (/^\#[\da-f]{3}$/.test(d)) {
            var g = d.charAt(1),
            h = d.charAt(2),
            i = d.charAt(3);
            return "#" + g + g + h + h + i + i
        } else if (a[d]) return a[d];
        return ""
    }
})();
baidu.string.getByteLength = function(a) {
    return String(a).replace(/[^\x00-\xff]/g, "ci").length
};
baidu.string.stripTags = function(a) {
    return String(a || "").replace(/<[^>]+>/g, "")
};
baidu.string.subByte = function(a, b, c) {
    a = String(a);
    c = c || "";
    if (b < 0 || baidu.string.getByteLength(a) <= b) return a + c;
    a = a.substr(0, b).replace(/([^\x00-\xff])/g, "$1 ").substr(0, b).replace(/[^\x00-\xff]$/, "").replace(/([^\x00-\xff]) /g, "$1");
    return a + c
};
baidu.string.toHalfWidth = function(a) {
    return String(a).replace(/[\uFF01-\uFF5E]/g,
    function(a) {
        return String.fromCharCode(a.charCodeAt(0) - 65248)
    }).replace(/\u3000/g, " ")
};
baidu.string.wbr = function(a) {
    return String(a).replace(/(?:<[^>]+>)|(?:&#?[0-9a-z]{2,6};)|(.{1})/gi, "$&<wbr>").replace(/><wbr>/g, ">")
};
baidu.swf = baidu.swf || {};
baidu.swf.getMovie = function(c) {
    var a = document[c],
    b;
    return baidu.browser.ie == 9 ? a && a.length ? (b = baidu.array.remove(baidu.lang.toArray(a),
    function(a) {
        return a.tagName.toLowerCase() != "embed"
    })).length == 1 ? b[0] : b: a: a || window[c]
};
baidu.swf.Proxy = function(e, b, a) {
    var f = this,
    d = this._flash = baidu.swf.getMovie(e),
    c;
    if (!b) return this;
    c = setInterval(function() {
        try {
            if (d[b]) {
                f._initialized = true;
                clearInterval(c);
                a && a()
            }
        } catch(e) {}
    },
    100)
};
baidu.swf.Proxy.prototype.getFlash = function() {
    return this._flash
};
baidu.swf.Proxy.prototype.isReady = function() {
    return !! this._initialized
};
baidu.swf.Proxy.prototype.call = function(b) {
    try {
        var a = this.getFlash(),
        c = Array.prototype.slice.call(arguments);
        c.shift();
        a[b] && a[b].apply(a, c)
    } catch(d) {}
};
baidu.swf.version = function() {
    var c = navigator;
    if (c.plugins && c.mimeTypes.length) {
        var a = c.plugins["Shockwave Flash"];
        if (a && a.description) return a.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s)+r/, ".") + ".0"
    } else if (window.ActiveXObject && !window.opera) for (var b = 12; b >= 2; b--) try {
        var d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + b);
        if (d) {
            var e = d.GetVariable("$version");
            return e.replace(/WIN/g, "").replace(/,/g, ".")
        }
    } catch(f) {}
} ();
baidu.swf.createHTML = function(a) {
    var r = "flashvars",
    l = "movie",
    k = "align",
    j = "codebase",
    i = "classid";
    a = a || {};
    var g = baidu.swf.version,
    m = a["ver"] || "6.0.0",
    o,
    p,
    d,
    c,
    u,
    b,
    s = {},
    f = baidu.string.encodeHTML;
    for (c in a) s[c] = a[c];
    a = s;
    if (g) {
        g = g.split(".");
        m = m.split(".");
        for (d = 0; d < 3; d++) {
            o = parseInt(g[d], 10);
            p = parseInt(m[d], 10);
            if (p < o) break;
            else if (p > o) return ""
        }
    } else return "";
    var h = a["vars"],
    q = [i, j, "id", "width", "height", k];
    a[k] = a[k] || "middle";
    a[i] = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
    a[j] = "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0";
    a[l] = a["url"] || "";
    delete a["vars"];
    delete a["url"];
    if ("string" == typeof h) a[r] = h;
    else {
        var t = [];
        for (c in h) {
            b = h[c];
            t.push(c + "=" + encodeURIComponent(b))
        }
        a[r] = t.join("&")
    }
    var e = ["<object "];
    for (d = 0, u = q.length; d < u; d++) {
        b = q[d];
        e.push(" ", b, '="', f(a[b]), '"')
    }
    e.push(">");
    var v = {
        wmode: 1,
        scale: 1,
        quality: 1,
        play: 1,
        loop: 1,
        menu: 1,
        salign: 1,
        bgcolor: 1,
        base: 1,
        allowscriptaccess: 1,
        allownetworking: 1,
        allowfullscreen: 1,
        seamlesstabbing: 1,
        devicefont: 1,
        swliveconnect: 1,
        flashvars: 1,
        movie: 1
    };
    for (c in a) {
        b = a[c];
        c = c.toLowerCase();
        v[c] && (b || b === false || b === 0) && e.push('<param name="' + c + '" value="' + f(b) + '" />')
    }
    a["src"] = a[l];
    a["name"] = a["id"];
    delete a["id"];
    delete a[l];
    delete a[i];
    delete a[j];
    a["type"] = "application/x-shockwave-flash";
    a["pluginspage"] = "http://www.macromedia.com/go/getflashplayer";
    e.push("<embed");
    var n;
    for (c in a) {
        b = a[c];
        if (b || b === false || b === 0) {
            if ((new RegExp("^salign$", "i")).test(c)) {
                n = b;
                continue
            }
            e.push(" ", c, '="', f(b), '"')
        }
    }
    n && e.push(' salign="', f(n), '"');
    e.push("></embed></object>");
    return e.join("")
};
baidu.swf.create = function(b, a) {
    b = b || {};
    var c = baidu.swf.createHTML(b) || b["errorMessage"] || "";
    if (a && "string" == typeof a) a = document.getElementById(a);
    if (a) a.innerHTML = c;
    else document.write(c)
};
baidu.url = baidu.url || {};
baidu.url.escapeSymbol = function(a) {
    return String(a).replace(/[#%&+=\/\\\ \\u3000\f\r\n\t]/g,
    function(a) {
        return "%" + (256 + a.charCodeAt()).toString(16).substring(1).toUpperCase()
    })
};
baidu.url.getQueryValue = function(d, b) {
    var c = new RegExp("(^|&|\\?|#)" + baidu.string.escapeReg(b) + "=([^&#]*)(&|$|#)", ""),
    a = d.match(c);
    if (a) return a[2];
    return null
};
baidu.url.jsonToQuery = function(e, d) {
    var b = [],
    a,
    c = d ||
    function(a) {
        return baidu.url.escapeSymbol(a)
    };
    baidu.object.each(e,
    function(d, e) {
        if (baidu.lang.isArray(d)) {
            a = d.length;
            while (a--) b.push(e + "=" + c(d[a], e))
        } else b.push(e + "=" + c(d, e))
    });
    return b.join("&")
};
baidu.url.queryToJson = function(h) {
    for (var i = h.substr(h.lastIndexOf("?") + 1), f = i.split("&"), j = f.length, b = {},
    e = 0, d, c, a, g; e < j; e++) {
        if (!f[e]) continue;
        g = f[e].split("=");
        d = g[0];
        c = g[1];
        a = b[d];
        if ("undefined" == typeof a) b[d] = c;
        else if (baidu.lang.isArray(a)) a.push(c);
        else b[d] = [a, c]
    }
    return b
}