/* Modernizr 2.6.2 (Custom Build) | MIT & BSD * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load */ window.Modernizr = function(e, t, n) { function r(e) { m.cssText = e } function o(e, t) { return typeof e === t } function i(e, t) { return !!~("" + e).indexOf(t) } function a(e, t) { for (var r in e) { var o = e[r]; if (!i(o, "-") && m[o] !== n) return "pfx" != t || o } return !1 } function c(e, t, r) { var i = e.charAt(0).toUpperCase() + e.slice(1), c = (e + " " + E.join(i + " ") + i).split(" "); return o(t, "string") || o(t, "undefined") ? a(c, t) : function(e, t, r) { for (var i in e) { var a = t[e[i]]; if (a !== n) return !1 === r ? e[i] : o(a, "function") ? a.bind(r || t) : a } return !1 }(c = (e + " " + w.join(i + " ") + i).split(" "), t, r) } var s, l, u = {}, f = t.documentElement, d = "modernizr", p = t.createElement(d), m = p.style, h = t.createElement("input"), g = ":)", v = {}.toString, y = " -webkit- -moz- -o- -ms- ".split(" "), b = "Webkit Moz O ms", E = b.split(" "), w = b.toLowerCase().split(" "), x = "http://www.w3.org/2000/svg", S = {}, C = {}, k = {}, T = [], j = T.slice, N = function(e, n, r, o) { var i, a, c, s, l = t.createElement("div"), u = t.body, p = u || t.createElement("body"); if (parseInt(r, 10)) for (; r--;) c = t.createElement("div"), c.id = o ? o[r] : d + (r + 1), l.appendChild(c); return i = ["­", '"].join(""), l.id = d, (u ? l : p).innerHTML += i, p.appendChild(l), u || (p.style.background = "", p.style.overflow = "hidden", s = f.style.overflow, f.style.overflow = "hidden", f.appendChild(p)), a = n(l, e), u ? l.parentNode.removeChild(l) : (p.parentNode.removeChild(p), f.style.overflow = s), !!a }, M = function() { var e = { select: "input", change: "input", submit: "form", reset: "form", error: "img", load: "img", abort: "img" }; return function(r, i) { i = i || t.createElement(e[r] || "div"); var a = (r = "on" + r) in i; return a || (i.setAttribute || (i = t.createElement("div")), i.setAttribute && i.removeAttribute && (i.setAttribute(r, ""), a = o(i[r], "function"), o(i[r], "undefined") || (i[r] = n), i.removeAttribute(r))), i = null, a } }(), P = {}.hasOwnProperty; l = o(P, "undefined") || o(P.call, "undefined") ? function(e, t) { return t in e && o(e.constructor.prototype[t], "undefined") } : function(e, t) { return P.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 }), S.flexbox = function() { return c("flexWrap") }, S.canvas = function() { var e = t.createElement("canvas"); return !!e.getContext && !!e.getContext("2d") }, S.canvastext = function() { return !!u.canvas && !!o(t.createElement("canvas").getContext("2d").fillText, "function") }, S.webgl = function() { return !!e.WebGLRenderingContext }, S.touch = function() { var n; return "ontouchstart" in e || e.DocumentTouch && t instanceof DocumentTouch ? n = !0 : N(["@media (", y.join("touch-enabled),("), d, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function(e) { n = 9 === e.offsetTop }), n }, S.geolocation = function() { return "geolocation" in navigator }, S.postmessage = function() { return !!e.postMessage }, S.websqldatabase = function() { return !!e.openDatabase }, S.indexedDB = function() { return !!c("indexedDB", e) }, S.hashchange = function() { return M("hashchange", e) && (t.documentMode === n || t.documentMode > 7) }, S.history = function() { return !!e.history && !!history.pushState }, S.draganddrop = function() { var e = t.createElement("div"); return "draggable" in e || "ondragstart" in e && "ondrop" in e }, S.websockets = function() { return "WebSocket" in e || "MozWebSocket" in e }, S.rgba = function() { return r("background-color:rgba(150,255,150,.5)"), i(m.backgroundColor, "rgba") }, S.hsla = function() { return r("background-color:hsla(120,40%,100%,.5)"), i(m.backgroundColor, "rgba") || i(m.backgroundColor, "hsla") }, S.multiplebgs = function() { return r("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(m.background) }, S.backgroundsize = function() { return c("backgroundSize") }, S.borderimage = function() { return c("borderImage") }, S.borderradius = function() { return c("borderRadius") }, S.boxshadow = function() { return c("boxShadow") }, S.textshadow = function() { return "" === t.createElement("div").style.textShadow }, S.opacity = function() { return e = "opacity:.55", r(y.join(e + ";") + (t || "")), /^0.55$/.test(m.opacity); var e, t }, S.cssanimations = function() { return c("animationName") }, S.csscolumns = function() { return c("columnCount") }, S.cssgradients = function() { var e = "background-image:"; return r((e + "-webkit- ".split(" ").join("gradient(linear,left top,right bottom,from(#9f9),to(white));" + e) + y.join("linear-gradient(left top,#9f9, white);" + e)).slice(0, -e.length)), i(m.backgroundImage, "gradient") }, S.cssreflections = function() { return c("boxReflect") }, S.csstransforms = function() { return !!c("transform") }, S.csstransforms3d = function() { var e = !!c("perspective"); return e && "webkitPerspective" in f.style && N("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function(t, n) { e = 9 === t.offsetLeft && 3 === t.offsetHeight }), e }, S.csstransitions = function() { return c("transition") }, S.fontface = function() { var e; return N('@font-face {font-family:"font";src:url("https://")}', function(n, r) { var o = t.getElementById("smodernizr"), i = o.sheet || o.styleSheet, a = i ? i.cssRules && i.cssRules[0] ? i.cssRules[0].cssText : i.cssText || "" : ""; e = /src/i.test(a) && 0 === a.indexOf(r.split(" ")[0]) }), e }, S.generatedcontent = function() { var e; return N(["#", d, "{font:0/0 a}#", d, ':after{content:"', g, '";visibility:hidden;font:3px/1 a}'].join(""), function(t) { e = t.offsetHeight >= 3 }), e }, S.video = function() { var e = t.createElement("video"), n = !1; try { (n = !!e.canPlayType) && ((n = new Boolean(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 (e) {} return n }, S.audio = function() { var e = t.createElement("audio"), n = !1; try { (n = !!e.canPlayType) && ((n = new Boolean(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 (e) {} return n }, S.localstorage = function() { try { return localStorage.setItem(d, d), localStorage.removeItem(d), !0 } catch (e) { return !1 } }, S.sessionstorage = function() { try { return sessionStorage.setItem(d, d), sessionStorage.removeItem(d), !0 } catch (e) { return !1 } }, S.webworkers = function() { return !!e.Worker }, S.applicationcache = function() { return !!e.applicationCache }, S.svg = function() { return !!t.createElementNS && !!t.createElementNS(x, "svg").createSVGRect }, S.inlinesvg = function() { var e = t.createElement("div"); return e.innerHTML = "", (e.firstChild && e.firstChild.namespaceURI) == x }, S.smil = function() { return !!t.createElementNS && /SVGAnimate/.test(v.call(t.createElementNS(x, "animate"))) }, S.svgclippaths = function() { return !!t.createElementNS && /SVGClipPath/.test(v.call(t.createElementNS(x, "clipPath"))) }; for (var A in S) l(S, A) && (s = A.toLowerCase(), u[s] = S[A](), T.push((u[s] ? "" : "no-") + s)); return u.input || (u.input = function(n) { for (var r = 0, o = n.length; r < o; r++) k[n[r]] = n[r] in h; return k.list && (k.list = !!t.createElement("datalist") && !!e.HTMLDataListElement), k }("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), u.inputtypes = function(e) { for (var r, o, i, a = 0, c = e.length; a < c; a++) h.setAttribute("type", o = e[a]), r = "text" !== h.type, r && (h.value = g, h.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(o) && h.style.WebkitAppearance !== n ? (f.appendChild(h), i = t.defaultView, r = i.getComputedStyle && "textfield" !== i.getComputedStyle(h, null).WebkitAppearance && 0 !== h.offsetHeight, f.removeChild(h)) : /^(search|tel)$/.test(o) || (r = /^(url|email)$/.test(o) ? h.checkValidity && !1 === h.checkValidity() : h.value != g)), C[e[a]] = !!r; return C }("search tel url email datetime date month week time datetime-local number range color".split(" "))), u.addTest = function(e, t) { if ("object" == typeof e) for (var r in e) l(e, r) && u.addTest(r, e[r]); else { if (e = e.toLowerCase(), u[e] !== n) return u; t = "function" == typeof t ? t() : t, f.className += " " + (t ? "" : "no-") + e, u[e] = t } return u }, r(""), p = h = null, function(e, t) { function n() { var e = m.elements; return "string" == typeof e ? e.split(" ") : e } function r(e) { var t = p[e[f]]; return t || (t = {}, d++, e[f] = d, p[d] = t), t } function o(e, n, o) { return n || (n = t), c ? n.createElement(e) : (o || (o = r(n)), (i = o.cache[e] ? o.cache[e].cloneNode() : u.test(e) ? (o.cache[e] = o.createElem(e)).cloneNode() : o.createElem(e)).canHaveChildren && !l.test(e) ? o.frag.appendChild(i) : i); var i } function i(e) { e || (e = t); var i, s, l, u, f, d, p = r(e); return m.shivCSS && !a && !p.hasCSS && (p.hasCSS = (u = "article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}", f = (l = e).createElement("p"), d = l.getElementsByTagName("head")[0] || l.documentElement, f.innerHTML = "x", !!d.insertBefore(f.lastChild, d.firstChild))), c || (i = e, (s = p).cache || (s.cache = {}, s.createElem = i.createElement, s.createFrag = i.createDocumentFragment, s.frag = s.createFrag()), i.createElement = function(e) { return m.shivMethods ? o(e, i, s) : s.createElem(e) }, i.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + n().join().replace(/\w+/g, function(e) { return s.createElem(e), s.frag.createElement(e), 'c("' + e + '")' }) + ");return n}")(m, s.frag)), e } var a, c, s = e.html5 || {}, l = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, u = /^(?: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, f = "_html5shiv", d = 0, p = {}; ! function() { try { var e = t.createElement("a"); e.innerHTML = "", a = "hidden" in e, c = 1 == e.childNodes.length || function() { t.createElement("a"); var e = t.createDocumentFragment(); return void 0 === e.cloneNode || void 0 === e.createDocumentFragment || void 0 === e.createElement }() } catch (e) { a = !0, c = !0 } }(); var m = { elements: s.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: !1 !== s.shivCSS, supportsUnknownElements: c, shivMethods: !1 !== s.shivMethods, type: "default", shivDocument: i, createElement: o, createDocumentFragment: function(e, o) { if (e || (e = t), c) return e.createDocumentFragment(); for (var i = (o = o || r(e)).frag.cloneNode(), a = 0, s = n(), l = s.length; a < l; a++) i.createElement(s[a]); return i } }; e.html5 = m, i(t) }(this, t), u._version = "2.6.2", u._prefixes = y, u._domPrefixes = w, u._cssomPrefixes = E, u.mq = function(t) { var n, r = e.matchMedia || e.msMatchMedia; return r ? r(t).matches : (N("@media " + t + " { #" + d + " { position: absolute; } }", function(t) { n = "absolute" == (e.getComputedStyle ? getComputedStyle(t, null) : t.currentStyle).position }), n) }, u.hasEvent = M, u.testProp = function(e) { return a([e]) }, u.testAllProps = c, u.testStyles = N, u.prefixed = function(e, t, n) { return t ? c(e, t, n) : c(e, "pfx") }, f.className = f.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + " js " + T.join(" "), u }(this, this.document), function(e, t, n) { function r(e) { return "[object Function]" == h.call(e) } function o(e) { return "string" == typeof e } function i() {} function a(e) { return !e || "loaded" == e || "complete" == e || "uninitialized" == e } function c() { var e = g.shift(); v = 1, e ? e.t ? p(function() { ("c" == e.t ? f.injectCss : f.injectJs)(e.s, 0, e.a, e.x, e.e, 1) }, 0) : (e(), c()) : v = 0 } function s(e, n, r, i, s) { return v = 0, n = n || "j", o(e) ? function(e, n, r, o, i, s, l) { function u(t) { if (!h && a(d.readyState) && (w.r = h = 1, !v && c(), d.onload = d.onreadystatechange = null, t)) { "img" != e && p(function() { E.removeChild(d) }, 50); for (var r in k[n]) k[n].hasOwnProperty(r) && k[n][r].onload() } } l = l || f.errorTimeout; var d = t.createElement(e), h = 0, y = 0, w = { t: r, s: n, e: i, a: s, x: l }; 1 === k[n] && (y = 1, k[n] = []), "object" == e ? d.data = n : (d.src = n, d.type = e), d.width = d.height = "0", d.onerror = d.onload = d.onreadystatechange = function() { u.call(this, y) }, g.splice(o, 0, w), "img" != e && (y || 2 === k[n] ? (E.insertBefore(d, b ? null : m), p(u, l)) : k[n].push(d)) }("c" == n ? x : w, e, n, this.i++, r, i, s) : (g.splice(this.i++, 0, e), 1 == g.length && c()), this } function l() { var e = f; return e.loader = { load: s, i: 0 }, e } var u, f, d = t.documentElement, p = e.setTimeout, m = t.getElementsByTagName("script")[0], h = {}.toString, g = [], v = 0, y = "MozAppearance" in d.style, b = y && !!t.createRange().compareNode, E = b ? d : m.parentNode, w = (d = e.opera && "[object Opera]" == h.call(e.opera), d = !!t.attachEvent && !d, y ? "object" : d ? "script" : "img"), x = d ? "script" : w, S = Array.isArray || function(e) { return "[object Array]" == h.call(e) }, C = [], k = {}, T = { timeout: function(e, t) { return t.length && (e.timeout = t[0]), e } }; (f = function(e) { function t(e, t, o, i, a) { var c = function(e) { e = e.split("!"); var t, n, r, o = C.length, i = e.pop(), a = e.length; for (i = { url: i, origUrl: i, prefixes: e }, n = 0; n < a; n++) r = e[n].split("="), (t = T[r.shift()]) && (i = t(i, r)); for (n = 0; n < o; n++) i = C[n](i); return i }(e), s = c.autoCallback; c.url.split(".").pop().split("?").shift(), c.bypass || (t && (t = r(t) ? t : t[e] || t[i] || t[e.split("/").pop().split("?")[0]]), c.instead ? c.instead(e, t, o, i, a) : (k[c.url] ? c.noexec = !0 : k[c.url] = 1, o.load(c.url, c.forceCSS || !c.forceJS && "css" == c.url.split(".").pop().split("?").shift() ? "c" : n, c.noexec, c.attrs, c.timeout), (r(t) || r(s)) && o.load(function() { l(), t && t(c.origUrl, a, i), s && s(c.origUrl, a, i), k[c.url] = 2 }))) } function a(e, n) { function a(e, i) { if (e) { if (o(e)) i || (f = function() { var e = [].slice.call(arguments); d.apply(this, e), p() }), t(e, f, n, 0, l); else if (Object(e) === e) for (s in c = function() { var t, n = 0; for (t in e) e.hasOwnProperty(t) && n++; return n }(), e) e.hasOwnProperty(s) && (!i && !--c && (r(f) ? f = function() { var e = [].slice.call(arguments); d.apply(this, e), p() } : f[s] = function(e) { return function() { var t = [].slice.call(arguments); e && e.apply(this, t), p() } }(d[s])), t(e[s], f, n, s, l)) } else !i && p() } var c, s, l = !!e.test, u = e.load || e.both, f = e.callback || i, d = f, p = e.complete || i; a(l ? e.yep : e.nope, !!u), u && a(u) } var c, s, u = this.yepnope.loader; if (o(e)) t(e, 0, u, 0); else if (S(e)) for (c = 0; c < e.length; c++) s = e[c], o(s) ? t(s, 0, u, 0) : S(s) ? f(s) : Object(s) === s && a(s, u); else Object(e) === e && a(e, u) }).addPrefix = function(e, t) { T[e] = t }, f.addFilter = function(e) { C.push(e) }, f.errorTimeout = 1e4, null == t.readyState && t.addEventListener && (t.readyState = "loading", t.addEventListener("DOMContentLoaded", u = function() { t.removeEventListener("DOMContentLoaded", u, 0), t.readyState = "complete" }, 0)), e.yepnope = l(), e.yepnope.executeStack = c, e.yepnope.injectJs = function(e, n, r, o, s, l) { var u, d, h = t.createElement("script"); o = o || f.errorTimeout; h.src = e; for (d in r) h.setAttribute(d, r[d]); n = l ? c : n || i, h.onreadystatechange = h.onload = function() { !u && a(h.readyState) && (u = 1, n(), h.onload = h.onreadystatechange = null) }, p(function() { u || (u = 1, n(1)) }, o), s ? h.onload() : m.parentNode.insertBefore(h, m) }, e.yepnope.injectCss = function(e, n, r, o, a, s) { var l; o = t.createElement("link"), n = s ? c : n || i; o.href = e, o.rel = "stylesheet", o.type = "text/css"; for (l in r) o.setAttribute(l, r[l]); a || (m.parentNode.insertBefore(o, m), p(n, 0)) } }(this, document), Modernizr.load = function() { yepnope.apply(window, [].slice.call(arguments, 0)) };