// Modernizr v1.7  www.modernizr.com
window.Modernizr = function (a, b, c) {
  function G() {
    e.input = function (a) {
      for (var b = 0, c = a.length; b < c; b++) t[a[b]] = !! (a[b] in l);
      return t
    }("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), e.inputtypes = function (a) {
      for (var d = 0, e, f, h, i = a.length; d < i; d++) l.setAttribute("type", f = a[d]), e = l.type !== "text", e && (l.value = m, l.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(f) && l.style.WebkitAppearance !== c ? (g.appendChild(l), h = b.defaultView, e = h.getComputedStyle && h.getComputedStyle(l, null).WebkitAppearance !== "textfield" && l.offsetHeight !== 0, g.removeChild(l)) : /^(search|tel)$/.test(f) || (/^(url|email)$/.test(f) ? e = l.checkValidity && l.checkValidity() === !1 : /^color$/.test(f) ? (g.appendChild(l), g.offsetWidth, e = l.value != m, g.removeChild(l)) : e = l.value != m)), s[a[d]] = !! e;
      return s
    }("search tel url email datetime date month week time datetime-local number range color".split(" "))
  }
  function F(a, b) {
    var c = a.charAt(0).toUpperCase() + a.substr(1),
        d = (a + " " + p.join(c + " ") + c).split(" ");
    return !!E(d, b)
  }
  function E(a, b) {
    for (var d in a) if (k[a[d]] !== c && (!b || b(a[d], j))) return !0
  }
  function D(a, b) {
    return ("" + a).indexOf(b) !== -1
  }
  function C(a, b) {
    return typeof a === b
  }
  function B(a, b) {
    return A(o.join(a + ";") + (b || ""))
  }
  function A(a) {
    k.cssText = a
  }
  var d = "1.7",
      e = {},
      f = !0,
      g = b.documentElement,
      h = b.head || b.getElementsByTagName("head")[0],
      i = "modernizr",
      j = b.createElement(i),
      k = j.style,
      l = b.createElement("input"),
      m = ":)",
      n = Object.prototype.toString,
      o = " -webkit- -moz- -o- -ms- -khtml- ".split(" "),
      p = "Webkit Moz O ms Khtml".split(" "),
      q = {
      svg: "http://www.w3.org/2000/svg"
      },
      r = {},
      s = {},
      t = {},
      u = [],
      v, w = function (a) {
      var c = b.createElement("style"),
          d = b.createElement("div"),
          e;
      c.textContent = a + "{#modernizr{height:3px}}", h.appendChild(c), d.id = "modernizr", g.appendChild(d), e = d.offsetHeight === 3, c.parentNode.removeChild(c), d.parentNode.removeChild(d);
      return !!e
      },
      x = function () {
      function d(d, e) {
        e = e || b.createElement(a[d] || "div");
        var f = (d = "on" + d) in e;
        f || (e.setAttribute || (e = b.createElement("div")), e.setAttribute && e.removeAttribute && (e.setAttribute(d, ""), f = C(e[d], "function"), C(e[d], c) || (e[d] = c), e.removeAttribute(d))), e = null;
        return f
      }
      var a = {
        select: "input",
        change: "input",
        submit: "form",
        reset: "form",
        error: "img",
        load: "img",
        abort: "img"
      };
      return d
      }(),
      y = ({}).hasOwnProperty,
      z;
  C(y, c) || C(y.call, c) ? z = function (a, b) {
    return b in a && C(a.constructor.prototype[b], c)
  } : z = function (a, b) {
    return y.call(a, b)
  }, r.flexbox = function () {
    function c(a, b, c, d) {
      a.style.cssText = o.join(b + ":" + c + ";") + (d || "")
    }
    function a(a, b, c, d) {
      b += ":", a.style.cssText = (b + o.join(c + ";" + b)).slice(0, -b.length) + (d || "")
    }
    var d = b.createElement("div"),
        e = b.createElement("div");
    a(d, "display", "box", "width:42px;padding:0;"), c(e, "box-flex", "1", "width:10px;"), d.appendChild(e), g.appendChild(d);
    var f = e.offsetWidth === 42;
    d.removeChild(e), g.removeChild(d);
    return f
  }, r.canvas = function () {
    var a = b.createElement("canvas");
    return a.getContext && a.getContext("2d")
  }, r.canvastext = function () {
    return e.canvas && C(b.createElement("canvas").getContext("2d").fillText, "function")
  }, r.webgl = function () {
    return !!a.WebGLRenderingContext
  }, r.touch = function () {
    return "ontouchstart" in a || w("@media (" + o.join("touch-enabled),(") + "modernizr)")
  }, r.geolocation = function () {
    return !!navigator.geolocation
  }, r.postmessage = function () {
    return !!a.postMessage
  }, r.websqldatabase = function () {
    var b = !! a.openDatabase;
    return b
  }, r.indexedDB = function () {
    for (var b = -1, c = p.length; ++b < c;) {
      var d = p[b].toLowerCase();
      if (a[d + "_indexedDB"] || a[d + "IndexedDB"]) return !0
    }
    return !1
  }, r.hashchange = function () {
    return x("hashchange", a) && (b.documentMode === c || b.documentMode > 7)
  }, r.history = function () {
    return !!(a.history && history.pushState)
  }, r.draganddrop = function () {
    return x("dragstart") && x("drop")
  }, r.websockets = function () {
    return "WebSocket" in a
  }, r.rgba = function () {
    A("background-color:rgba(150,255,150,.5)");
    return D(k.backgroundColor, "rgba")
  }, r.hsla = function () {
    A("background-color:hsla(120,40%,100%,.5)");
    return D(k.backgroundColor, "rgba") || D(k.backgroundColor, "hsla")
  }, r.multiplebgs = function () {
    A("background:url(//:),url(//:),red url(//:)");
    return (new RegExp("(url\\s*\\(.*?){3}")).test(k.background)
  }, r.backgroundsize = function () {
    return F("backgroundSize")
  }, r.borderimage = function () {
    return F("borderImage")
  }, r.borderradius = function () {
    return F("borderRadius", "", function (a) {
      return D(a, "orderRadius")
    })
  }, r.boxshadow = function () {
    return F("boxShadow")
  }, r.textshadow = function () {
    return b.createElement("div").style.textShadow === ""
  }, r.opacity = function () {
    B("opacity:.55");
    return /^0.55$/.test(k.opacity)
  }, r.cssanimations = function () {
    return F("animationName")
  }, r.csscolumns = function () {
    return F("columnCount")
  }, r.cssgradients = function () {
    var a = "background-image:",
        b = "gradient(linear,left top,right bottom,from(#9f9),to(white));",
        c = "linear-gradient(left top,#9f9, white);";
    A((a + o.join(b + a) + o.join(c + a)).slice(0, -a.length));
    return D(k.backgroundImage, "gradient")
  }, r.cssreflections = function () {
    return F("boxReflect")
  }, r.csstransforms = function () {
    return !!E(["transformProperty", "WebkitTransform", "MozTransform", "OTransform", "msTransform"])
  }, r.csstransforms3d = function () {
    var a = !! E(["perspectiveProperty", "WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"]);
    a && "webkitPerspective" in g.style && (a = w("@media (" + o.join("transform-3d),(") + "modernizr)"));
    return a
  }, r.csstransitions = function () {
    return F("transitionProperty")
  }, r.fontface = function () {
    var a, c, d = h || g,
        e = b.createElement("style"),
        f = b.implementation || {
        hasFeature: function () {
          return !1
        }
        };
    e.type = "text/css", d.insertBefore(e, d.firstChild), a = e.sheet || e.styleSheet;
    var i = f.hasFeature("CSS2", "") ?
    function (b) {
      if (!a || !b) return !1;
      var c = !1;
      try {
        a.insertRule(b, 0), c = /src/i.test(a.cssRules[0].cssText), a.deleteRule(a.cssRules.length - 1)
      } catch (d) {}
      return c
    } : function (b) {
      if (!a || !b) return !1;
      a.cssText = b;
      return a.cssText.length !== 0 && /src/i.test(a.cssText) && a.cssText.replace(/\r+|\n+/g, "").indexOf(b.split(" ")[0]) === 0
    };
    c = i('@font-face { font-family: "font"; src: url(data:,); }'), d.removeChild(e);
    return c
  }, r.video = function () {
    var a = b.createElement("video"),
        c = !! a.canPlayType;
    if (c) {
      c = new Boolean(c), c.ogg = a.canPlayType('video/ogg; codecs="theora"');
      var d = 'video/mp4; codecs="avc1.42E01E';
      c.h264 = a.canPlayType(d + '"') || a.canPlayType(d + ', mp4a.40.2"'), c.webm = a.canPlayType('video/webm; codecs="vp8, vorbis"')
    }
    return c
  }, r.audio = function () {
    var a = b.createElement("audio"),
        c = !! a.canPlayType;
    c && (c = new Boolean(c), c.ogg = a.canPlayType('audio/ogg; codecs="vorbis"'), c.mp3 = a.canPlayType("audio/mpeg;"), c.wav = a.canPlayType('audio/wav; codecs="1"'), c.m4a = a.canPlayType("audio/x-m4a;") || a.canPlayType("audio/aac;"));
    return c
  }, r.localstorage = function () {
    try {
      return !!localStorage.getItem
    } catch (a) {
      return !1
    }
  }, r.sessionstorage = function () {
    try {
      return !!sessionStorage.getItem
    } catch (a) {
      return !1
    }
  }, r.webWorkers = function () {
    return !!a.Worker
  }, r.applicationcache = function () {
    return !!a.applicationCache
  }, r.svg = function () {
    return !!b.createElementNS && !! b.createElementNS(q.svg, "svg").createSVGRect
  }, r.inlinesvg = function () {
    var a = b.createElement("div");
    a.innerHTML = "<svg/>";
    return (a.firstChild && a.firstChild.namespaceURI) == q.svg
  }, r.smil = function () {
    return !!b.createElementNS && /SVG/.test(n.call(b.createElementNS(q.svg, "animate")))
  }, r.svgclippaths = function () {
    return !!b.createElementNS && /SVG/.test(n.call(b.createElementNS(q.svg, "clipPath")))
  };
  for (var H in r) z(r, H) && (v = H.toLowerCase(), e[v] = r[H](), u.push((e[v] ? "" : "no-") + v));
  e.input || G(), e.crosswindowmessaging = e.postmessage, e.historymanagement = e.history, e.addTest = function (a, b) {
    a = a.toLowerCase();
    if (!e[a]) {
      b = !! b(), g.className += " " + (b ? "" : "no-") + a, e[a] = b;
      return e
    }
  }, A(""), j = l = null, f && a.attachEvent &&
  function () {
    var a = b.createElement("div");
    a.innerHTML = "<elem></elem>";
    return a.childNodes.length !== 1
  }() &&
  function (a, b) {
    function p(a, b) {
      var c = -1,
          d = a.length,
          e, f = [];
      while (++c < d) e = a[c], (b = e.media || b) != "screen" && f.push(p(e.imports, b), e.cssText);
      return f.join("")
    }
    function o(a) {
      var b = -1;
      while (++b < e) a.createElement(d[b])
    }
    var c = "abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
        d = c.split("|"),
        e = d.length,
        f = new RegExp("(^|\\s)(" + c + ")", "gi"),
        g = new RegExp("<(/*)(" + c + ")", "gi"),
        h = new RegExp("(^|[^\\n]*?\\s)(" + c + ")([^\\n]*)({[\\n\\w\\W]*?})", "gi"),
        i = b.createDocumentFragment(),
        j = b.documentElement,
        k = j.firstChild,
        l = b.createElement("body"),
        m = b.createElement("style"),
        n;
    o(b), o(i), k.insertBefore(m, k.firstChild), m.media = "print", a.attachEvent("onbeforeprint", function () {
      var a = -1,
          c = p(b.styleSheets, "all"),
          k = [],
          o;
      n = n || b.body;
      while ((o = h.exec(c)) != null) k.push((o[1] + o[2] + o[3]).replace(f, "$1.iepp_$2") + o[4]);
      m.styleSheet.cssText = k.join("\n");
      while (++a < e) {
        var q = b.getElementsByTagName(d[a]),
            r = q.length,
            s = -1;
        while (++s < r) q[s].className.indexOf("iepp_") < 0 && (q[s].className += " iepp_" + d[a])
      }
      i.appendChild(n), j.appendChild(l), l.className = n.className, l.innerHTML = n.innerHTML.replace(g, "<$1font")
    }), a.attachEvent("onafterprint", function () {
      l.innerHTML = "", j.removeChild(l), j.appendChild(n), m.styleSheet.cssText = ""
    })
  }(a, b), e._enableHTML5 = f, e._version = d, g.className = g.className.replace(/\bno-js\b/, "") + " js " + u.join(" ");
  return e
}(this, this.document)
