window.Modernizr = (function (e, t, n) {
|
|
function r(e) {
|
|
b.cssText = e;
|
|
}
|
|
function o(e, t) {
|
|
return r(S.join(e + ";") + (t || ""));
|
|
}
|
|
function a(e, t) {
|
|
return typeof e === t;
|
|
}
|
|
function i(e, t) {
|
|
return !!~("" + e).indexOf(t);
|
|
}
|
|
function c(e, t) {
|
|
for (var r in e) {
|
|
var o = e[r];
|
|
if (!i(o, "-") && b[o] !== n) return "pfx" == t ? o : !0;
|
|
}
|
|
return !1;
|
|
}
|
|
function s(e, t, r) {
|
|
for (var o in e) {
|
|
var i = t[e[o]];
|
|
if (i !== n)
|
|
return r === !1 ? e[o] : a(i, "function") ? i.bind(r || t) : i;
|
|
}
|
|
return !1;
|
|
}
|
|
function u(e, t, n) {
|
|
var r = e.charAt(0).toUpperCase() + e.slice(1),
|
|
o = (e + " " + k.join(r + " ") + r).split(" ");
|
|
return a(t, "string") || a(t, "undefined")
|
|
? c(o, t)
|
|
: ((o = (e + " " + T.join(r + " ") + r).split(" ")), s(o, t, n));
|
|
}
|
|
function l() {
|
|
(p.input = (function (n) {
|
|
for (var r = 0, o = n.length; o > r; r++) j[n[r]] = !!(n[r] in E);
|
|
return (
|
|
j.list &&
|
|
(j.list = !(!t.createElement("datalist") || !e.HTMLDataListElement)),
|
|
j
|
|
);
|
|
})(
|
|
"autocomplete autofocus list placeholder max min multiple pattern required step".split(
|
|
" "
|
|
)
|
|
)),
|
|
(p.inputtypes = (function (e) {
|
|
for (var r, o, a, i = 0, c = e.length; c > i; i++)
|
|
E.setAttribute("type", (o = e[i])),
|
|
(r = "text" !== E.type),
|
|
r &&
|
|
((E.value = x),
|
|
(E.style.cssText = "position:absolute;visibility:hidden;"),
|
|
/^range$/.test(o) && E.style.WebkitAppearance !== n
|
|
? (g.appendChild(E),
|
|
(a = t.defaultView),
|
|
(r =
|
|
a.getComputedStyle &&
|
|
"textfield" !==
|
|
a.getComputedStyle(E, null).WebkitAppearance &&
|
|
0 !== E.offsetHeight),
|
|
g.removeChild(E))
|
|
: /^(search|tel)$/.test(o) ||
|
|
(r = /^(url|email)$/.test(o)
|
|
? E.checkValidity && E.checkValidity() === !1
|
|
: E.value != x)),
|
|
(P[e[i]] = !!r);
|
|
return P;
|
|
})(
|
|
"search tel url email datetime date month week time datetime-local number range color".split(
|
|
" "
|
|
)
|
|
));
|
|
}
|
|
var d,
|
|
f,
|
|
m = "2.8.3",
|
|
p = {},
|
|
h = !0,
|
|
g = t.documentElement,
|
|
v = "modernizr",
|
|
y = t.createElement(v),
|
|
b = y.style,
|
|
E = t.createElement("input"),
|
|
x = ":)",
|
|
w = {}.toString,
|
|
S = " -webkit- -moz- -o- -ms- ".split(" "),
|
|
C = "Webkit Moz O ms",
|
|
k = C.split(" "),
|
|
T = C.toLowerCase().split(" "),
|
|
N = { svg: "http://www.w3.org/2000/svg" },
|
|
M = {},
|
|
P = {},
|
|
j = {},
|
|
$ = [],
|
|
D = $.slice,
|
|
F = function (e, n, r, o) {
|
|
var a,
|
|
i,
|
|
c,
|
|
s,
|
|
u = t.createElement("div"),
|
|
l = t.body,
|
|
d = l || t.createElement("body");
|
|
if (parseInt(r, 10))
|
|
for (; r--; )
|
|
(c = t.createElement("div")),
|
|
(c.id = o ? o[r] : v + (r + 1)),
|
|
u.appendChild(c);
|
|
return (
|
|
(a = ["­", '<style id="s', v, '">', e, "</style>"].join("")),
|
|
(u.id = v),
|
|
((l ? u : d).innerHTML += a),
|
|
d.appendChild(u),
|
|
l ||
|
|
((d.style.background = ""),
|
|
(d.style.overflow = "hidden"),
|
|
(s = g.style.overflow),
|
|
(g.style.overflow = "hidden"),
|
|
g.appendChild(d)),
|
|
(i = n(u, e)),
|
|
l
|
|
? u.parentNode.removeChild(u)
|
|
: (d.parentNode.removeChild(d), (g.style.overflow = s)),
|
|
!!i
|
|
);
|
|
},
|
|
z = function (t) {
|
|
var n = e.matchMedia || e.msMatchMedia;
|
|
if (n) return (n(t) && n(t).matches) || !1;
|
|
var r;
|
|
return (
|
|
F(
|
|
"@media " + t + " { #" + v + " { position: absolute; } }",
|
|
function (t) {
|
|
r =
|
|
"absolute" ==
|
|
(e.getComputedStyle ? getComputedStyle(t, null) : t.currentStyle)
|
|
.position;
|
|
}
|
|
),
|
|
r
|
|
);
|
|
},
|
|
A = (function () {
|
|
function e(e, o) {
|
|
(o = o || t.createElement(r[e] || "div")), (e = "on" + e);
|
|
var i = e in o;
|
|
return (
|
|
i ||
|
|
(o.setAttribute || (o = t.createElement("div")),
|
|
o.setAttribute &&
|
|
o.removeAttribute &&
|
|
(o.setAttribute(e, ""),
|
|
(i = a(o[e], "function")),
|
|
a(o[e], "undefined") || (o[e] = n),
|
|
o.removeAttribute(e))),
|
|
(o = null),
|
|
i
|
|
);
|
|
}
|
|
var r = {
|
|
select: "input",
|
|
change: "input",
|
|
submit: "form",
|
|
reset: "form",
|
|
error: "img",
|
|
load: "img",
|
|
abort: "img",
|
|
};
|
|
return e;
|
|
})(),
|
|
L = {}.hasOwnProperty;
|
|
(f =
|
|
a(L, "undefined") || a(L.call, "undefined")
|
|
? function (e, t) {
|
|
return t in e && a(e.constructor.prototype[t], "undefined");
|
|
}
|
|
: function (e, t) {
|
|
return L.call(e, t);
|
|
}),
|
|
Function.prototype.bind ||
|
|
(Function.prototype.bind = function (e) {
|
|
var t = this;
|
|
if ("function" != typeof t) throw new TypeError();
|
|
var n = D.call(arguments, 1),
|
|
r = function () {
|
|
if (this instanceof r) {
|
|
var o = function () {};
|
|
o.prototype = t.prototype;
|
|
var a = new o(),
|
|
i = t.apply(a, n.concat(D.call(arguments)));
|
|
return Object(i) === i ? i : a;
|
|
}
|
|
return t.apply(e, n.concat(D.call(arguments)));
|
|
};
|
|
return r;
|
|
}),
|
|
(M.flexbox = function () {
|
|
return u("flexWrap");
|
|
}),
|
|
(M.flexboxlegacy = function () {
|
|
return u("boxDirection");
|
|
}),
|
|
(M.canvas = function () {
|
|
var e = t.createElement("canvas");
|
|
return !(!e.getContext || !e.getContext("2d"));
|
|
}),
|
|
(M.canvastext = function () {
|
|
return !(
|
|
!p.canvas ||
|
|
!a(t.createElement("canvas").getContext("2d").fillText, "function")
|
|
);
|
|
}),
|
|
(M.webgl = function () {
|
|
return !!e.WebGLRenderingContext;
|
|
}),
|
|
(M.touch = function () {
|
|
var n;
|
|
return (
|
|
"ontouchstart" in e || (e.DocumentTouch && t instanceof DocumentTouch)
|
|
? (n = !0)
|
|
: F(
|
|
[
|
|
"@media (",
|
|
S.join("touch-enabled),("),
|
|
v,
|
|
")",
|
|
"{#modernizr{top:9px;position:absolute}}",
|
|
].join(""),
|
|
function (e) {
|
|
n = 9 === e.offsetTop;
|
|
}
|
|
),
|
|
n
|
|
);
|
|
}),
|
|
(M.geolocation = function () {
|
|
return "geolocation" in navigator;
|
|
}),
|
|
(M.postmessage = function () {
|
|
return !!e.postMessage;
|
|
}),
|
|
(M.websqldatabase = function () {
|
|
return !!e.openDatabase;
|
|
}),
|
|
(M.indexedDB = function () {
|
|
return !!u("indexedDB", e);
|
|
}),
|
|
(M.hashchange = function () {
|
|
return A("hashchange", e) && (t.documentMode === n || t.documentMode > 7);
|
|
}),
|
|
(M.history = function () {
|
|
return !(!e.history || !history.pushState);
|
|
}),
|
|
(M.draganddrop = function () {
|
|
var e = t.createElement("div");
|
|
return "draggable" in e || ("ondragstart" in e && "ondrop" in e);
|
|
}),
|
|
(M.websockets = function () {
|
|
return "WebSocket" in e || "MozWebSocket" in e;
|
|
}),
|
|
(M.rgba = function () {
|
|
return (
|
|
r("background-color:rgba(150,255,150,.5)"), i(b.backgroundColor, "rgba")
|
|
);
|
|
}),
|
|
(M.hsla = function () {
|
|
return (
|
|
r("background-color:hsla(120,40%,100%,.5)"),
|
|
i(b.backgroundColor, "rgba") || i(b.backgroundColor, "hsla")
|
|
);
|
|
}),
|
|
(M.multiplebgs = function () {
|
|
return (
|
|
r("background:url(https://),url(https://),red url(https://)"),
|
|
/(url\s*\(.*?){3}/.test(b.background)
|
|
);
|
|
}),
|
|
(M.backgroundsize = function () {
|
|
return u("backgroundSize");
|
|
}),
|
|
(M.borderimage = function () {
|
|
return u("borderImage");
|
|
}),
|
|
(M.borderradius = function () {
|
|
return u("borderRadius");
|
|
}),
|
|
(M.boxshadow = function () {
|
|
return u("boxShadow");
|
|
}),
|
|
(M.textshadow = function () {
|
|
return "" === t.createElement("div").style.textShadow;
|
|
}),
|
|
(M.opacity = function () {
|
|
return o("opacity:.55"), /^0.55$/.test(b.opacity);
|
|
}),
|
|
(M.cssanimations = function () {
|
|
return u("animationName");
|
|
}),
|
|
(M.csscolumns = function () {
|
|
return u("columnCount");
|
|
}),
|
|
(M.cssgradients = function () {
|
|
var e = "background-image:",
|
|
t = "gradient(linear,left top,right bottom,from(#9f9),to(white));",
|
|
n = "linear-gradient(left top,#9f9, white);";
|
|
return (
|
|
r(
|
|
(e + "-webkit- ".split(" ").join(t + e) + S.join(n + e)).slice(
|
|
0,
|
|
-e.length
|
|
)
|
|
),
|
|
i(b.backgroundImage, "gradient")
|
|
);
|
|
}),
|
|
(M.cssreflections = function () {
|
|
return u("boxReflect");
|
|
}),
|
|
(M.csstransforms = function () {
|
|
return !!u("transform");
|
|
}),
|
|
(M.csstransforms3d = function () {
|
|
var e = !!u("perspective");
|
|
return (
|
|
e &&
|
|
"webkitPerspective" in g.style &&
|
|
F(
|
|
"@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",
|
|
function (t) {
|
|
e = 9 === t.offsetLeft && 3 === t.offsetHeight;
|
|
}
|
|
),
|
|
e
|
|
);
|
|
}),
|
|
(M.csstransitions = function () {
|
|
return u("transition");
|
|
}),
|
|
(M.fontface = function () {
|
|
var e;
|
|
return (
|
|
F(
|
|
'@font-face {font-family:"font";src:url("https://")}',
|
|
function (n, r) {
|
|
var o = t.getElementById("smodernizr"),
|
|
a = o.sheet || o.styleSheet,
|
|
i = a
|
|
? a.cssRules && a.cssRules[0]
|
|
? a.cssRules[0].cssText
|
|
: a.cssText || ""
|
|
: "";
|
|
e = /src/i.test(i) && 0 === i.indexOf(r.split(" ")[0]);
|
|
}
|
|
),
|
|
e
|
|
);
|
|
}),
|
|
(M.generatedcontent = function () {
|
|
var e;
|
|
return (
|
|
F(
|
|
[
|
|
"#",
|
|
v,
|
|
"{font:0/0 a}#",
|
|
v,
|
|
':after{content:"',
|
|
x,
|
|
'";visibility:hidden;font:3px/1 a}',
|
|
].join(""),
|
|
function (t) {
|
|
e = t.offsetHeight >= 3;
|
|
}
|
|
),
|
|
e
|
|
);
|
|
}),
|
|
(M.video = function () {
|
|
var e = t.createElement("video"),
|
|
n = !1;
|
|
try {
|
|
(n = !!e.canPlayType) &&
|
|
((n = new Boolean(n)),
|
|
(n.ogg = e
|
|
.canPlayType('video/ogg; codecs="theora"')
|
|
.replace(/^no$/, "")),
|
|
(n.h264 = e
|
|
.canPlayType('video/mp4; codecs="avc1.42E01E"')
|
|
.replace(/^no$/, "")),
|
|
(n.webm = e
|
|
.canPlayType('video/webm; codecs="vp8, vorbis"')
|
|
.replace(/^no$/, "")));
|
|
} catch (r) {}
|
|
return n;
|
|
}),
|
|
(M.audio = function () {
|
|
var e = t.createElement("audio"),
|
|
n = !1;
|
|
try {
|
|
(n = !!e.canPlayType) &&
|
|
((n = new Boolean(n)),
|
|
(n.ogg = e
|
|
.canPlayType('audio/ogg; codecs="vorbis"')
|
|
.replace(/^no$/, "")),
|
|
(n.mp3 = e.canPlayType("audio/mpeg;").replace(/^no$/, "")),
|
|
(n.wav = e.canPlayType('audio/wav; codecs="1"').replace(/^no$/, "")),
|
|
(n.m4a = (
|
|
e.canPlayType("audio/x-m4a;") || e.canPlayType("audio/aac;")
|
|
).replace(/^no$/, "")));
|
|
} catch (r) {}
|
|
return n;
|
|
}),
|
|
(M.localstorage = function () {
|
|
try {
|
|
return localStorage.setItem(v, v), localStorage.removeItem(v), !0;
|
|
} catch (e) {
|
|
return !1;
|
|
}
|
|
}),
|
|
(M.sessionstorage = function () {
|
|
try {
|
|
return sessionStorage.setItem(v, v), sessionStorage.removeItem(v), !0;
|
|
} catch (e) {
|
|
return !1;
|
|
}
|
|
}),
|
|
(M.webworkers = function () {
|
|
return !!e.Worker;
|
|
}),
|
|
(M.applicationcache = function () {
|
|
return !!e.applicationCache;
|
|
}),
|
|
(M.svg = function () {
|
|
return (
|
|
!!t.createElementNS && !!t.createElementNS(N.svg, "svg").createSVGRect
|
|
);
|
|
}),
|
|
(M.inlinesvg = function () {
|
|
var e = t.createElement("div");
|
|
return (
|
|
(e.innerHTML = "<svg/>"),
|
|
(e.firstChild && e.firstChild.namespaceURI) == N.svg
|
|
);
|
|
}),
|
|
(M.smil = function () {
|
|
return (
|
|
!!t.createElementNS &&
|
|
/SVGAnimate/.test(w.call(t.createElementNS(N.svg, "animate")))
|
|
);
|
|
}),
|
|
(M.svgclippaths = function () {
|
|
return (
|
|
!!t.createElementNS &&
|
|
/SVGClipPath/.test(w.call(t.createElementNS(N.svg, "clipPath")))
|
|
);
|
|
});
|
|
for (var H in M)
|
|
f(M, H) &&
|
|
((d = H.toLowerCase()), (p[d] = M[H]()), $.push((p[d] ? "" : "no-") + d));
|
|
return (
|
|
p.input || l(),
|
|
(p.addTest = function (e, t) {
|
|
if ("object" == typeof e) for (var r in e) f(e, r) && p.addTest(r, e[r]);
|
|
else {
|
|
if (((e = e.toLowerCase()), p[e] !== n)) return p;
|
|
(t = "function" == typeof t ? t() : t),
|
|
"undefined" != typeof h &&
|
|
h &&
|
|
(g.className += " " + (t ? "" : "no-") + e),
|
|
(p[e] = t);
|
|
}
|
|
return p;
|
|
}),
|
|
r(""),
|
|
(y = E = 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 = v[e[h]];
|
|
return t || ((t = {}), g++, (e[h] = g), (v[g] = t)), t;
|
|
}
|
|
function a(e, n, r) {
|
|
if ((n || (n = t), l)) return n.createElement(e);
|
|
r || (r = o(n));
|
|
var a;
|
|
return (
|
|
(a = r.cache[e]
|
|
? r.cache[e].cloneNode()
|
|
: p.test(e)
|
|
? (r.cache[e] = r.createElem(e)).cloneNode()
|
|
: r.createElem(e)),
|
|
!a.canHaveChildren || m.test(e) || a.tagUrn
|
|
? a
|
|
: r.frag.appendChild(a)
|
|
);
|
|
}
|
|
function i(e, n) {
|
|
if ((e || (e = t), l)) return e.createDocumentFragment();
|
|
n = n || o(e);
|
|
for (
|
|
var a = n.frag.cloneNode(), i = 0, c = r(), s = c.length;
|
|
s > i;
|
|
i++
|
|
)
|
|
a.createElement(c[i]);
|
|
return a;
|
|
}
|
|
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 ? a(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 ||
|
|
u ||
|
|
r.hasCSS ||
|
|
(r.hasCSS = !!n(
|
|
e,
|
|
"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}"
|
|
)),
|
|
l || c(e, r),
|
|
e
|
|
);
|
|
}
|
|
var u,
|
|
l,
|
|
d = "3.7.0",
|
|
f = e.html5 || {},
|
|
m =
|
|
/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
|
|
p =
|
|
/^(?: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,
|
|
h = "_html5shiv",
|
|
g = 0,
|
|
v = {};
|
|
!(function () {
|
|
try {
|
|
var e = t.createElement("a");
|
|
(e.innerHTML = "<xyz></xyz>"),
|
|
(u = "hidden" in e),
|
|
(l =
|
|
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) {
|
|
(u = !0), (l = !0);
|
|
}
|
|
})();
|
|
var y = {
|
|
elements:
|
|
f.elements ||
|
|
"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",
|
|
version: d,
|
|
shivCSS: f.shivCSS !== !1,
|
|
supportsUnknownElements: l,
|
|
shivMethods: f.shivMethods !== !1,
|
|
type: "default",
|
|
shivDocument: s,
|
|
createElement: a,
|
|
createDocumentFragment: i,
|
|
};
|
|
(e.html5 = y), s(t);
|
|
})(this, t),
|
|
(p._version = m),
|
|
(p._prefixes = S),
|
|
(p._domPrefixes = T),
|
|
(p._cssomPrefixes = k),
|
|
(p.mq = z),
|
|
(p.hasEvent = A),
|
|
(p.testProp = function (e) {
|
|
return c([e]);
|
|
}),
|
|
(p.testAllProps = u),
|
|
(p.testStyles = F),
|
|
(p.prefixed = function (e, t, n) {
|
|
return t ? u(e, t, n) : u(e, "pfx");
|
|
}),
|
|
(g.className =
|
|
g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") +
|
|
(h ? " js " + $.join(" ") : "")),
|
|
p
|
|
);
|
|
})(this, this.document);
|