modernizr.min.js 6.99 KB
window.Modernizr = function (e, t, n) {
    function r(e) {
        v.cssText = e
    }

    function o(e, t) {
        return r(E.join(e + ";") + (t || ""))
    }

    function i(e, t) {
        return typeof e === t
    }

    function a(e, t) {
        return !!~("" + e).indexOf(t)
    }

    function c(e, t) {
        for (var r in e) {
            var o = e[r];
            if (!a(o, "-") && v[o] !== n)return "pfx" == t ? o : !0
        }
        return !1
    }

    function s(e, t, r) {
        for (var o in e) {
            var a = t[e[o]];
            if (a !== n)return r === !1 ? e[o] : i(a, "function") ? a.bind(r || t) : a
        }
        return !1
    }

    function l(e, t, n) {
        var r = e.charAt(0).toUpperCase() + e.slice(1), o = (e + " " + w.join(r + " ") + r).split(" ");
        return i(t, "string") || i(t, "undefined") ? c(o, t) : (o = (e + " " + C.join(r + " ") + r).split(" "), s(o, t, n))
    }

    var u = "2.6.2", f = {}, d = !0, m = t.documentElement, p = "modernizr", h = t.createElement(p), v = h.style, y, g = {}.toString, E = " -webkit- -moz- -o- -ms- ".split(" "), b = "Webkit Moz O ms", w = b.split(" "), C = b.toLowerCase().split(" "), F = {}, x = {}, N = {}, S = [], j = S.slice, k, M = function (e, n, r, o) {
        var i, a, c, s, l = t.createElement("div"), u = t.body, f = u || t.createElement("body");
        if (parseInt(r, 10))for (; r--;)c = t.createElement("div"), c.id = o ? o[r] : p + (r + 1), l.appendChild(c);
        return i = ["&#173;", '<style id="s', p, '">', e, "</style>"].join(""), l.id = p, (u ? l : f).innerHTML += i, f.appendChild(l), u || (f.style.background = "", f.style.overflow = "hidden", s = m.style.overflow, m.style.overflow = "hidden", m.appendChild(f)), a = n(l, e), u ? l.parentNode.removeChild(l) : (f.parentNode.removeChild(f), m.style.overflow = s), !!a
    }, T = {}.hasOwnProperty, z;
    z = i(T, "undefined") || i(T.call, "undefined") ? function (e, t) {
        return t in e && i(e.constructor.prototype[t], "undefined")
    } : function (e, t) {
        return T.call(e, t)
    }, Function.prototype.bind || (Function.prototype.bind = function (e) {
        var t = this;
        if ("function" != typeof t)throw new TypeError;
        var n = j.call(arguments, 1), r = function () {
            if (this instanceof r) {
                var o = function () {
                };
                o.prototype = t.prototype;
                var i = new o, a = t.apply(i, n.concat(j.call(arguments)));
                return Object(a) === a ? a : i
            }
            return t.apply(e, n.concat(j.call(arguments)))
        };
        return r
    }), F.csstransforms3d = function () {
        var e = !!l("perspective");
        return e && "webkitPerspective" in m.style && M("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function (t, n) {
            e = 9 === t.offsetLeft && 3 === t.offsetHeight
        }), e
    }, F.csstransitions = function () {
        return l("transition")
    };
    for (var D in F)z(F, D) && (k = D.toLowerCase(), f[k] = F[D](), S.push((f[k] ? "" : "no-") + k));
    return f.addTest = function (e, t) {
        if ("object" == typeof e)for (var r in e)z(e, r) && f.addTest(r, e[r]); else {
            if (e = e.toLowerCase(), f[e] !== n)return f;
            t = "function" == typeof t ? t() : t, "undefined" != typeof d && d && (m.className += " " + (t ? "" : "no-") + e), f[e] = t
        }
        return f
    }, r(""), h = y = null, function (e, t) {
        function n(e, t) {
            var n = e.createElement("p"), r = e.getElementsByTagName("head")[0] || e.documentElement;
            return n.innerHTML = "x<style>" + t + "</style>", r.insertBefore(n.lastChild, r.firstChild)
        }

        function r() {
            var e = y.elements;
            return "string" == typeof e ? e.split(" ") : e
        }

        function o(e) {
            var t = h[e[m]];
            return t || (t = {}, p++, e[m] = p, h[p] = t), t
        }

        function i(e, n, r) {
            if (n || (n = t), v)return n.createElement(e);
            r || (r = o(n));
            var i;
            return i = r.cache[e] ? r.cache[e].cloneNode() : f.test(e) ? (r.cache[e] = r.createElem(e)).cloneNode() : r.createElem(e), i.canHaveChildren && !u.test(e) ? r.frag.appendChild(i) : i
        }

        function a(e, n) {
            if (e || (e = t), v)return e.createDocumentFragment();
            n = n || o(e);
            for (var i = n.frag.cloneNode(), a = 0, c = r(), s = c.length; s > a; a++)i.createElement(c[a]);
            return i
        }

        function c(e, t) {
            t.cache || (t.cache = {}, t.createElem = e.createElement, t.createFrag = e.createDocumentFragment, t.frag = t.createFrag()), e.createElement = function (n) {
                return y.shivMethods ? i(n, e, t) : t.createElem(n)
            }, e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + r().join().replace(/\w+/g, function (e) {
                    return t.createElem(e), t.frag.createElement(e), 'c("' + e + '")'
                }) + ");return n}")(y, t.frag)
        }

        function s(e) {
            e || (e = t);
            var r = o(e);
            return y.shivCSS && !d && !r.hasCSS && (r.hasCSS = !!n(e, "article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")), v || c(e, r), e
        }

        var l = e.html5 || {}, u = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, f = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, d, m = "_html5shiv", p = 0, h = {}, v;
        !function () {
            try {
                var e = t.createElement("a");
                e.innerHTML = "<xyz></xyz>", d = "hidden" in e, v = 1 == e.childNodes.length || function () {
                        t.createElement("a");
                        var e = t.createDocumentFragment();
                        return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement
                    }()
            } catch (n) {
                d = !0, v = !0
            }
        }();
        var y = {
            elements: l.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",
            shivCSS: l.shivCSS !== !1,
            supportsUnknownElements: v,
            shivMethods: l.shivMethods !== !1,
            type: "default",
            shivDocument: s,
            createElement: i,
            createDocumentFragment: a
        };
        e.html5 = y, s(t)
    }(this, t), f._version = u, f._prefixes = E, f._domPrefixes = C, f._cssomPrefixes = w, f.testProp = function (e) {
        return c([e])
    }, f.testAllProps = l, f.testStyles = M, m.className = m.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (d ? " js " + S.join(" ") : ""), f
}(this, this.document);