From 0c3b699af570d52bf9f36bc3ac6d9c18bd205ea4 Mon Sep 17 00:00:00 2001 From: Alex Xu Date: Fri, 14 Feb 2014 16:53:39 -0500 Subject: implant Modernizr --- .gitmodules | 3 + Makefile | 9 ++- Modernizr | 1 + config-all.json | 129 ++++++++++++++++++++++++++++++++++++++ www/js/lib/Modernizr | 1 + www/js/lib/modernizr-build.min.js | 2 - www/js/lib/spin.js | 2 +- 7 files changed, 141 insertions(+), 6 deletions(-) create mode 160000 Modernizr create mode 100644 config-all.json create mode 120000 www/js/lib/Modernizr delete mode 100644 www/js/lib/modernizr-build.min.js diff --git a/.gitmodules b/.gitmodules index 7a6f1c8..644e7f3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "spin.js"] path = spin.js url = https://github.com/fgnass/spin.js.git +[submodule "Modernizr"] + path = Modernizr + url = https://github.com/Modernizr/Modernizr.git diff --git a/Makefile b/Makefile index fe52e4d..011a004 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,8 @@ all: .modules video audio images js # === GIT SUBMODULES === .modules: .gitmodules git submodule update --init + ln -fs ../../config-all.json Modernizr/lib/config-all.json + cd Modernizr && npm update && grunt build touch .modules # === VIDEO === @@ -123,14 +125,15 @@ $(DUMP)/ui/ctc_anim.webp: $(CTC_ANIM_TMP_WEBP) # === JS === MYJS := www/js/html5ks.js www/js/menu.js www/js/api.js www/js/characters.js www/js/imachine.js www/js/i18n.js -JSLIBS := www/js/lib/when/when.js www/js/lib/fastclick/lib/fastclick.js www/js/lib/modernizr-build.min.js www/js/lib/spin.js/spin.js +JSLIBS := www/js/lib/when/when.js www/js/lib/fastclick/lib/fastclick.js \ + www/js/lib/Modernizr/dist/modernizr-build.js www/js/lib/spin.js/spin.js JSDATA := www/js/play.js www/js/images.js JS := $(JSLIBS) $(MYJS) $(JSDATA) js: www/js/all.min.js -www/js/all.min.js: $(JS) - $(UGLIFYJS) $^ -o "$@" --source-map "$@".map --source-map-url ./all.min.js.map -p 2 -m -c drop_debugger=false +www/js/all.min.js: $(JS) .modules + $(UGLIFYJS) $(JS) -o "$@" --source-map "$@".map --source-map-url ./all.min.js.map -p 2 -m -c drop_debugger=false # === MISC === diff --git a/Modernizr b/Modernizr new file mode 160000 index 0000000..218adca --- /dev/null +++ b/Modernizr @@ -0,0 +1 @@ +Subproject commit 218adcaddb5ea496e49263dd1911193a8cfa938a diff --git a/config-all.json b/config-all.json new file mode 100644 index 0000000..77947b9 --- /dev/null +++ b/config-all.json @@ -0,0 +1,129 @@ +{ + "classPrefix": "", + "options": [ + "setClasses", + "testProp", + "fnBind" + ], + "feature-detects": [ + "test/applicationcache", + "test/audio/loop", + "test/audio", + "test/canvas/todataurl", + "test/canvas", + "test/canvastext", + "test/contextmenu", + "test/cookies", + "test/css/animations", + "test/css/backgroundposition-shorthand", + "test/css/backgroundposition-xy", + "test/css/backgroundrepeat", + "test/css/backgroundsize", + "test/css/backgroundsizecover", + "test/css/borderimage", + "test/css/borderradius", + "test/css/boxshadow", + "test/css/boxsizing", + "test/css/calc", + "test/css/checked", + "test/css/columns", + "test/css/cubicbezierrange", + "test/css/ellipsis", + "test/css/filters", + "test/css/fontface", + "test/css/gradients", + "test/css/hsla", + "test/css/hyphens", + "test/css/lastchild", + "test/css/mask", + "test/css/mediaqueries", + "test/css/multiplebgs", + "test/css/nthchild", + "test/css/objectfit", + "test/css/opacity", + "test/css/overflow-scrolling", + "test/css/pointerevents", + "test/css/positionsticky", + "test/css/pseudoanimations", + "test/css/pseudotransitions", + "test/css/reflections", + "test/css/resize", + "test/css/rgba", + "test/css/scrollbars", + "test/css/subpixelfont", + "test/css/textshadow", + "test/css/transforms", + "test/css/transforms3d", + "test/css/transformstylepreserve3d", + "test/css/transitions", + "test/css/userselect", + "test/dom/classlist", + "test/dom/createElement-attrs", + "test/dom/dataset", + "test/dom/documentfragment", + "test/elem/output", + "test/elem/progress-meter", + "test/elem/time", + "test/es5/array", + "test/es5/date", + "test/es5/function", + "test/es5/object", + "test/es5/strictmode", + "test/es5/string", + "test/es6/contains", + "test/es6/promises", + "test/es6/generators", + "test/event/oninput", + "test/flash", + "test/fullscreen-api", + "test/hashchange", + "test/history", + "test/ie8compat", + "test/img/apng", + "test/img/webp-lossless", + "test/img/webp-alpha", + "test/img/webp-animation", + "test/img/webp", + "test/input", + "test/inputtypes", + "test/json", + "test/network/xhr-responsetype-json", + "test/network/xhr-responsetype-text", + "test/network/xhr-responsetype", + "test/notification", + "test/pagevisibility-api", + "test/performance", + "test/pointerevents", + "test/pointerlock-api", + "test/postmessage", + "test/quota-management-api", + "test/requestanimationframe", + "test/script/async", + "test/script/defer", + "test/storage/localstorage", + "test/storage/sessionstorage", + "test/style/scoped", + "test/svg/asimg", + "test/svg/clippaths", + "test/svg/filters", + "test/svg/inline", + "test/svg", + "test/touchevents", + "test/typed-arrays", + "test/unicode", + "test/unicode-range", + "test/url/data-uri", + "test/userdata", + "test/video/autoplay", + "test/video/loop", + "test/video/preload", + "test/video", + "test/webanimations", + "test/webgl/extensions", + "test/webgl", + "test/window/framed", + "test/workers/dataworkers", + "test/workers/sharedworkers", + "test/workers/webworkers" + ] +} diff --git a/www/js/lib/Modernizr b/www/js/lib/Modernizr new file mode 120000 index 0000000..06b5670 --- /dev/null +++ b/www/js/lib/Modernizr @@ -0,0 +1 @@ +../../../Modernizr \ No newline at end of file diff --git a/www/js/lib/modernizr-build.min.js b/www/js/lib/modernizr-build.min.js deleted file mode 100644 index 19f042d..0000000 --- a/www/js/lib/modernizr-build.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! modernizr 3.0.0pre (Custom Build) | MIT */!function(a,b,c){function d(a,b){return typeof a===b}function e(){var a,b,c,e,f,g,h;for(var i in q){if(a=[],b=q[i],b.name&&(a.push(b.name.toLowerCase()),b.options&&b.options.aliases&&b.options.aliases.length))for(c=0;c',a,""].join(""),k.id=j,(l.fake?l:k).innerHTML+=e,l.appendChild(k),l.fake&&(l.style.background="",l.style.overflow="hidden",i=t.style.overflow,t.style.overflow="hidden",t.appendChild(l)),f=b(k,a),l.fake?(l.parentNode.removeChild(l),t.style.overflow=i,t.offsetHeight):k.parentNode.removeChild(k),!!f}function j(a){return a.replace(/([A-Z])/g,function(a,b){return"-"+b.toLowerCase()}).replace(/^ms-/,"-ms-")}function k(b,d){var e=b.length;if("CSS"in a&&"supports"in a.CSS){for(;e--;)if(a.CSS.supports(j(b[e]),d))return!0;return!1}if("CSSSupportsRule"in a){for(var f=[];e--;)f.push("("+j(b[e])+":"+d+")");return f=f.join(" or "),i("@supports ("+f+") { #modernizr { position: absolute; } }",function(b){return"absolute"==(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position})}return c}function l(a,b,e,f){function h(){j&&(delete w.style,delete w.modElem)}if(f=d(f,"undefined")?!1:f,!d(e,"undefined")){var i=k(a,e);if(!d(i,"undefined"))return i}var j,l,m,n;w.style||(j=!0,w.modElem=u("modernizr"),w.style=w.modElem.style);for(l in a)if(m=a[l],n=w.style[m],!g(m,"-")&&w.style[m]!==c){if(f||d(e,"undefined"))return h(),"pfx"==b?m:!0;try{w.style[m]=e}catch(o){}if(w.style[m]!=n)return h(),"pfx"==b?m:!0}return h(),!1}function m(a,b,c){var e;for(var f in a)if(a[f]in b)return c===!1?a[f]:(e=b[a[f]],d(e,"function")&&"bind"in e?e.bind(c||b):e);return!1}function n(a,b,c,e,f){var g=a.charAt(0).toUpperCase()+a.slice(1),h=(a+" "+B.join(g+" ")+g).split(" ");return d(b,"string")||d(b,"undefined")?l(h,b,e,f):(h=(a+" "+C.join(g+" ")+g).split(" "),m(h,b,c))}function o(a,b,d){return n(a,c,c,b,d)}function p(a,b){if("object"==typeof a)for(var c in a)G(a,c)&&p(c,a[c]);else{a=a.toLowerCase();var d=a.split("."),e=Modernizr[d[0]];if(2==d.length&&(e=e[d[1]]),"undefined"!=typeof e)return Modernizr;b="function"==typeof b?b():b,1==d.length?Modernizr[d[0]]=b:2==d.length&&(Modernizr[d[0]][d[1]]=b),f([(b?"":"no-")+d.join("-")]),Modernizr._trigger(a,b)}return Modernizr}var q=[],r={_version:"v3.0.0pre",_config:{classPrefix:"",enableClasses:!0,usePrefixes:!0},_q:[],on:function(a,b){setTimeout(function(){b(this[a])},0)},addTest:function(a,b,c){q.push({name:a,fn:b,options:c})},addAsyncTest:function(a){q.push({name:null,fn:a})}},Modernizr=function(){};Modernizr.prototype=r,Modernizr=new Modernizr;var s=[],t=b.documentElement,u=function(){return b.createElement.apply(b,arguments)},v={elem:u("modernizr")};Modernizr._q.push(function(){delete v.elem});var w={style:v.elem.style};Modernizr._q.unshift(function(){delete w.style});var x=r.testProp=function(a,b,d){return l([a],c,b,d)},y=s.slice;Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if("function"!=typeof b)throw new TypeError;var c=y.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(y.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(y.call(arguments)))};return d}),Modernizr.addTest("applicationcache","applicationCache"in a),Modernizr.addTest("audioloop","loop"in u("audio")),Modernizr.addTest("audio",function(){var a=u("audio"),b=!1;try{(b=!!a.canPlayType)&&(b=new Boolean(b),b.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),b.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),b.opus=a.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),b.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),b.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(c){}return b}),Modernizr.addTest("canvas",function(){var a=u("canvas");return!(!a.getContext||!a.getContext("2d"))});var z=u("canvas");Modernizr.addTest("todataurljpeg",function(){return!!Modernizr.canvas&&0===z.toDataURL("image/jpeg").indexOf("data:image/jpeg")}),Modernizr.addTest("todataurlpng",function(){return!!Modernizr.canvas&&0===z.toDataURL("image/png").indexOf("data:image/png")}),Modernizr.addTest("todataurlwebp",function(){return!!Modernizr.canvas&&0===z.toDataURL("image/webp").indexOf("data:image/webp")}),Modernizr.addTest("canvastext",function(){return Modernizr.canvas===!1?!1:"function"==typeof u("canvas").getContext("2d").fillText}),Modernizr.addTest("contextmenu","contextMenu"in t&&"HTMLMenuItemElement"in a),Modernizr.addTest("cookies",function(){try{b.cookie="cookietest=1";var a=-1!=b.cookie.indexOf("cookietest=");return b.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",a}catch(c){return!1}});var A="Webkit Moz O ms",B=r._config.usePrefixes?A.split(" "):[];r._cssomPrefixes=B;var C=r._config.usePrefixes?A.toLowerCase().split(" "):[];r._domPrefixes=C,r.testAllProps=n,r.testAllProps=o,Modernizr.addTest("cssanimations",o("animationName","a",!0)),Modernizr.addTest("bgpositionshorthand",function(){var a=u("a"),b=a.style,c="right 10px bottom 10px";return b.cssText="background-position: "+c+";",b.backgroundPosition===c}),Modernizr.addTest("bgpositionxy",function(){return o("backgroundPositionX","3px",!0)&&o("backgroundPositionY","5px",!0)}),Modernizr.addTest("bgrepeatround",o("backgroundRepeat","round")),Modernizr.addTest("bgrepeatspace",o("backgroundRepeat","space")),Modernizr.addTest("backgroundsize",o("backgroundSize","100%",!0)),Modernizr.addTest("bgsizecover",o("backgroundSize","cover")),Modernizr.addTest("borderimage",o("borderImage","url() 1",!0)),Modernizr.addTest("borderradius",o("borderRadius","0px",!0)),Modernizr.addTest("boxshadow",o("boxShadow","1px 1px",!0)),Modernizr.addTest("boxsizing",o("boxSizing","border-box",!0)&&(b.documentMode===c||b.documentMode>7));var D=r._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):[];r._prefixes=D,Modernizr.addTest("csscalc",function(){var a="width:",b="calc(10px);",c=u("div");return c.style.cssText=a+D.join(b+a),!!c.style.length});var E=r.testStyles=i;Modernizr.addTest("checked",function(){return E("#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;display:block}",function(a){var b=u("input");return b.setAttribute("type","checkbox"),b.setAttribute("checked","checked"),a.appendChild(b),20===b.offsetLeft})}),function(){Modernizr.addTest("csscolumns",function(){var a=!1,b=o("columnCount");try{(a=!!b)&&(a=new Boolean(a))}catch(c){}return a});for(var a,b,c=["Width","Span","Fill","Gap","Rule","RuleColor","RuleStyle","RuleWidth","BreakBefore","BreakAfter","BreakInside"],d=0;d9)});var F=function(){var a=navigator.userAgent,b=a.match(/applewebkit\/([0-9]+)/gi)&&parseFloat(RegExp.$1),c=a.match(/w(eb)?osbrowser/gi),d=a.match(/windows phone/gi)&&a.match(/iemobile\/([0-9])+/gi)&&parseFloat(RegExp.$1)>=9,e=533>b&&a.match(/android/gi);return c||e||d}();F?Modernizr.addTest("fontface",!1):E('@font-face {font-family:"font";src:url("https://")}',function(a,c){var d=b.getElementById("smodernizr"),e=d.sheet||d.styleSheet,f=e?e.cssRules&&e.cssRules[0]?e.cssRules[0].cssText:e.cssText||"":"",g=/src/i.test(f)&&0===f.indexOf(c.split(" ")[0]);Modernizr.addTest("fontface",g)}),Modernizr.addTest("cssgradients",function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);",d=(a+"-webkit- ".split(" ").join(b+a)+D.join(c+a)).slice(0,-a.length),e=u("div"),f=e.style;return f.cssText=d,(""+f.backgroundImage).indexOf("gradient")>-1}),Modernizr.addTest("hsla",function(){var a=u("div"),b=a.style;return b.cssText="background-color:hsla(120,40%,100%,.5)",g(b.backgroundColor,"rgba")||g(b.backgroundColor,"hsla")});var G;!function(){var a={}.hasOwnProperty;G=d(a,"undefined")||d(a.call,"undefined")?function(a,b){return b in a&&d(a.constructor.prototype[b],"undefined")}:function(b,c){return a.call(b,c)}}(),r._l={},r.on=function(a,b){this._l[a]||(this._l[a]=[]),this._l[a].push(b),Modernizr.hasOwnProperty(a)&&setTimeout(function(){Modernizr._trigger(a,Modernizr[a])},0)},r._trigger=function(a,b){if(this._l[a]){var c=this._l[a];setTimeout(function(){var a,d;for(a=0;ag,c?(e.innerHTML="m
m",g=e.offsetWidth,e.innerHTML="m"+a+"m",j=e.offsetWidth>g):j=!0,i===!0&&j===!0&&(h=!0),b.body.removeChild(d),d.removeChild(e),h}catch(l){return!1}}function g(c){try{var d,e=u("input"),f=u("div"),g="lebowski",h=!1,i=b.body.firstElementChild||b.body.firstChild;if(f.innerHTML=g+c+g,b.body.insertBefore(f,i),b.body.insertBefore(e,f),e.setSelectionRange?(e.focus(),e.setSelectionRange(0,0)):e.createTextRange&&(d=e.createTextRange(),d.collapse(!0),d.moveEnd("character",0),d.moveStart("character",0),d.select()),a.find)h=a.find(g+g);else try{d=a.self.document.body.createTextRange(),h=d.findText(g+g)}catch(j){h=!1}return b.body.removeChild(f),b.body.removeChild(e),h}catch(j){return!1}}return b.body||b.getElementsByTagName("body")[0]?(p("csshyphens",function(){if(!o("hyphens","auto",!0))return!1;try{return e()}catch(a){return!1}}),p("softhyphens",function(){try{return f("­",!0)&&f("​",!1)}catch(a){return!1}}),void p("softhyphensfind",function(){try{return g("­")&&g("​")}catch(a){return!1}})):void setTimeout(c,d)}var d=300;setTimeout(c,d)}),E("#modernizr div {width:100px} #modernizr :last-child{width:200px;display:block}",function(a){Modernizr.addTest("lastchild",a.lastChild.offsetWidth>a.firstChild.offsetWidth)},2),Modernizr.addTest("cssmask",o("maskRepeat","repeat-x",!0));var H=function(){var b=a.matchMedia||a.msMatchMedia;return b?function(a){var c=b(a);return c&&c.matches||!1}:function(b){var c=!1;return i("@media "+b+" { #modernizr { position: absolute; } }",function(b){c="absolute"==(a.getComputedStyle?a.getComputedStyle(b,null):b.currentStyle).position}),c}}(),I=r.mq=H;Modernizr.addTest("mediaqueries",I("only all")),Modernizr.addTest("multiplebgs",function(){var a=u("div"),b=a.style;return b.cssText="background:url(https://),url(https://),red url(https://)",/(url\s*\(.*?){3}/.test(b.background)}),E("#modernizr div {width:1px} #modernizr div:nth-child(2n) {width:2px;}",function(a){Modernizr.addTest("nthchild",function(){for(var b=a.getElementsByTagName("div"),c=!0,d=0;5>d;d++)c=c&&b[d].offsetWidth===d%2+1;return c})},5);var J=r.prefixed=function(a,b,c){return b?n(a,b,c):n(a,"pfx")};Modernizr.addTest("objectfit",!!J("objectFit"),{aliases:["object-fit"]}),Modernizr.addTest("opacity",function(){var a=u("div"),b=a.style;return b.cssText=D.join("opacity:.55;"),/^0.55$/.test(b.opacity)}),Modernizr.addTest("overflowscrolling",o("overflowScrolling","touch",!0)),Modernizr.addTest("csspointerevents",function(){var a=u("x");return a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}),Modernizr.addTest("csspositionsticky",function(){var a="position:",b="sticky",c=u("modernizr"),d=c.style;return d.cssText=a+D.join(b+";"+a).slice(0,-a.length),-1!==d.position.indexOf(b)}),Modernizr.addTest("csspseudoanimations",function(){var b=!1;if(!Modernizr.cssanimations||!a.getComputedStyle)return b;var c=["@",Modernizr._prefixes.join("keyframes csspseudoanimations { from { font-size: 10px; } }@").replace(/\@$/,""),'#modernizr:before { content:" "; font-size:5px;',Modernizr._prefixes.join("animation:csspseudoanimations 1ms infinite;"),"}"].join("");return Modernizr.testStyles(c,function(c){b="10px"===a.getComputedStyle(c,":before").getPropertyValue("font-size")}),b}),Modernizr.addTest("csstransitions",o("transition","all",!0)),Modernizr.addTest("csspseudotransitions",function(){var b=!1;if(!Modernizr.csstransitions||!a.getComputedStyle)return b;var c='#modernizr:before { content:" "; font-size:5px;'+Modernizr._prefixes.join("transition:0s 100s;")+"}#modernizr.trigger:before { font-size:10px; }";return Modernizr.testStyles(c,function(c){a.getComputedStyle(c,":before").getPropertyValue("font-size"),c.className+="trigger",b="5px"===a.getComputedStyle(c,":before").getPropertyValue("font-size")}),b}),Modernizr.addTest("cssreflections",o("boxReflect","above",!0)),Modernizr.addTest("cssresize",o("resize","both",!0)),Modernizr.addTest("rgba",function(){var a=u("div"),b=a.style;return b.cssText="background-color:rgba(150,255,150,.5)",(""+b.backgroundColor).indexOf("rgba")>-1}),E("#modernizr{overflow: scroll; width: 40px; height: 40px; }#"+D.join("scrollbar{width:0px} #modernizr::").split("#").slice(1).join("#")+"scrollbar{width:0px}",function(a){Modernizr.addTest("cssscrollbar",40==a.scrollWidth)}),E("#modernizr{position: absolute; top: -10em; visibility:hidden; font: normal 10px arial;}#subpixel{float: left; font-size: 33.3333%;}",function(b){var c=b.firstChild;c.innerHTML="This is a text written in Arial",Modernizr.addTest("subpixelfont",a.getComputedStyle?"44px"!==a.getComputedStyle(c,null).getPropertyValue("width"):!1)},1,["subpixel"]),Modernizr.addTest("textshadow",x("textShadow","1px 1px")),Modernizr.addTest("csstransforms",o("transform","scale(1)",!0)),Modernizr.addTest("csstransforms3d",function(){var a=!!o("perspective","1px",!0);return a&&"webkitPerspective"in t.style&&E("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:5px;margin:0;padding:0;border:0}}",function(b){a=9===b.offsetLeft&&5===b.offsetHeight}),a}),Modernizr.addTest("preserve3d",o("transformStyle","preserve-3d")),Modernizr.addTest("userselect",o("userSelect","none",!0)),Modernizr.addTest("classlist","classList"in t),Modernizr.addTest("createelementattrs",function(){try{return"test"==u('').getAttribute("name")}catch(a){return!1}},{aliases:["createelement-attrs"]}),Modernizr.addTest("dataset",function(){var a=u("div");return a.setAttribute("data-a-b","c"),!(!a.dataset||"c"!==a.dataset.aB)}),Modernizr.addTest("documentfragment",function(){return"createDocumentFragment"in b&&"appendChild"in t}),Modernizr.addTest("outputelem","value"in u("output")),Modernizr.addTest("progressbar",u("progress").max!==c),Modernizr.addTest("meter",u("meter").max!==c),Modernizr.addTest("time","valueAsDate"in u("time")),Modernizr.addTest("es5array",function(){return!!(Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray)}),Modernizr.addTest("es5date",function(){var a="2013-04-12T06:06:37.307Z",b=!1;try{b=!!Date.parse(a)}catch(c){}return!!(Date.now&&Date.prototype&&Date.prototype.toISOString&&Date.prototype.toJSON&&b)}),Modernizr.addTest("es5function",function(){return!(!Function.prototype||!Function.prototype.bind)}),Modernizr.addTest("es5object",function(){return!!(Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions)}),Modernizr.addTest("strictmode",function(){return!this}()),Modernizr.addTest("es5string",function(){return!(!String.prototype||!String.prototype.trim)}),Modernizr.addTest("contains",d(String.prototype.contains,"function")),Modernizr.addTest("promises",function(){return"Promise"in a&&"cast"in a.Promise&&"resolve"in a.Promise&&"reject"in a.Promise&&"all"in a.Promise&&"race"in a.Promise&&function(){var b;return new a.Promise(function(a){b=a}),"function"==typeof b}()}),Modernizr.addAsyncTest(function(){var b,c,d=function(a,b){var c=!!a;c&&(c=new Boolean(c),c.blocked="blocked"===a),p("flash",function(){return c}),b&&t.removeChild(b)};try{c="Pan"in new a.ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}if(b=!("plugins"in navigator&&"Shockwave Flash"in navigator.plugins||c))d(!1);else{var f,g=u("embed");if(g.type="application/x-shockwave-flash",t.appendChild(g),!("Pan"in g||c))return void d("blocked",g);setTimeout(function(){return t.contains(g)?(f=g.style.cssText,""!==f?void d("blocked",g):void d(!0,g)):void d("blocked")},10)}}),Modernizr.addTest("fullscreen",!(!J("exitFullscreen",b,!1)&&!J("cancelFullScreen",b,!1)));var K=function(a){function c(b,c){var e;return b?(c&&"string"!=typeof c||(c=u(c||"div")),b="on"+b,e=b in c,!e&&d&&(c.setAttribute||(c=u("div")),c.setAttribute&&c.removeAttribute&&(c.setAttribute(b,""),e="function"==typeof c[b],c[b]!==a&&(c[b]=a),c.removeAttribute(b))),e):!1}var d=!("onblur"in b.documentElement);return c}(),L=r.hasEvent=K;Modernizr.addTest("hashchange",function(){return L("hashchange",a)===!1?!1:b.documentMode===c||b.documentMode>7}),Modernizr.addTest("history",function(){var b=navigator.userAgent;return-1!==b.indexOf("Android 2.")&&-1!==b.indexOf("Mobile Safari")&&-1===b.indexOf("Chrome")?!1:a.history&&"pushState"in a.history}),Modernizr.addTest("ie8compat",!a.addEventListener&&!!b.documentMode&&7===b.documentMode),Modernizr.addAsyncTest(function(){if(!Modernizr.canvas)return!1;var a=new Image,b=u("canvas"),c=b.getContext("2d");a.onload=function(){p("apng",function(){return"undefined"==typeof b.getContext?!1:(c.drawImage(a,0,0),0===c.getImageData(0,0,1,1).data[3])})},a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACGFjVEwAAAABAAAAAcMq2TYAAAANSURBVAiZY2BgYPgPAAEEAQB9ssjfAAAAGmZjVEwAAAAAAAAAAQAAAAEAAAAAAAAAAAD6A+gBAbNU+2sAAAARZmRBVAAAAAEImWNgYGBgAAAABQAB6MzFdgAAAABJRU5ErkJggg=="}),Modernizr.addAsyncTest(function(){var a=new Image;a.onerror=function(){p("webplossless",!1,{aliases:["webp-lossless"]})},a.onload=function(){p("webplossless",1==a.width,{aliases:["webp-lossless"]})},a.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA="}),Modernizr.addAsyncTest(function(){var a=new Image;a.onerror=function(){p("webpalpha",!1,{aliases:["webp-alpha"]})},a.onload=function(){p("webpalpha",1==a.width,{aliases:["webp-alpha"]})},a.src="data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA=="}),Modernizr.addAsyncTest(function(){var a=new Image;a.onerror=function(){p("webpanimation",!1,{aliases:["webp-animation"]})},a.onload=function(){p("webpanimation",1==a.width,{aliases:["webp-animation"]})},a.src="data:image/webp;base64,UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"}),Modernizr.addAsyncTest(function(){var a=new Image;a.onerror=function(){p("webp",!1)},a.onload=function(){p("webp",1==a.width)},a.src="data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA/vuUAAA="});var M={},N="autocomplete autofocus list placeholder max min multiple pattern required step".split(" "),O=u("input");Modernizr.input=function(b){for(var c=0,d=b.length;d>c;c++)M[b[c]]=!!(b[c]in O);return M.list&&(M.list=!(!u("datalist")||!a.HTMLDataListElement)),M}(N);var P="search tel url email datetime date month week time datetime-local number range color".split(" "),Q={},R=":)";Modernizr.inputtypes=function(a){for(var d,e,f,g=a.length,h=0;g>h;h++)O.setAttribute("type",e=a[h]),d="text"!==O.type,d&&(O.value=R,O.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&O.style.WebkitAppearance!==c?(t.appendChild(O),f=b.defaultView,d=f.getComputedStyle&&"textfield"!==f.getComputedStyle(O,null).WebkitAppearance&&0!==O.offsetHeight,t.removeChild(O)):/^(search|tel)$/.test(e)||(d=/^(url|email)$/.test(e)?O.checkValidity&&O.checkValidity()===!1:O.value!=R)),Q[a[h]]=!!d;return Q}(P),Modernizr.addTest("json","JSON"in a&&"parse"in JSON);var S=function(a){if("undefined"==typeof XMLHttpRequest)return!1;var b=new XMLHttpRequest;b.open("get","/",!0);try{b.responseType=a}catch(c){return!1}return"response"in b&&b.responseType==a};Modernizr.addTest("xhrresponsetypejson",S("json")),Modernizr.addTest("xhrresponsetypetext",S("text")),Modernizr.addTest("xhrresponsetype",function(){if("undefined"==typeof XMLHttpRequest)return!1;var a=new XMLHttpRequest;return a.open("get","/",!0),"response"in a}()),Modernizr.addTest("notification","Notification"in a&&"permission"in a.Notification&&"requestPermission"in a.Notification),Modernizr.addTest("pagevisibility",!!J("hidden",b,!1)),Modernizr.addTest("performance",!!J("performance",a)),Modernizr.addTest("pointerevents",function(){var a=!1,b=C.length;for(a=Modernizr.hasEvent("pointerdown");b--&&!a;)L(C[b]+"pointerdown")&&(a=!0);return a}),Modernizr.addTest("pointerlock",!!J("exitPointerLock",b)),Modernizr.addTest("postmessage","postMessage"in a),Modernizr.addTest("quotamanagement",function(){var a=J("temporaryStorage",navigator),b=J("persistentStorage",navigator);return!(!a||!b)}),Modernizr.addTest("requestanimationframe",!!J("requestAnimationFrame",a),{aliases:["raf"]}),Modernizr.addTest("scriptasync","async"in u("script")),Modernizr.addTest("scriptdefer","defer"in u("script")),Modernizr.addTest("localstorage",function(){var a="modernizr";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(b){return!1}}),Modernizr.addTest("sessionstorage",function(){var a="modernizr";try{return sessionStorage.setItem(a,a),sessionStorage.removeItem(a),!0}catch(b){return!1}}),Modernizr.addTest("stylescoped","scoped"in u("style")),Modernizr.addTest("svgasimg",b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1"));var T={}.toString;Modernizr.addTest("svgclippaths",function(){return!!b.createElementNS&&/SVGClipPath/.test(T.call(b.createElementNS("http://www.w3.org/2000/svg","clipPath")))}),Modernizr.addTest("svgfilters",function(){var b=!1;try{b="SVGFEColorMatrixElement"in a&&2==SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE}catch(c){}return b}),Modernizr.addTest("inlinesvg",function(){var a=u("div");return a.innerHTML="","http://www.w3.org/2000/svg"==(a.firstChild&&a.firstChild.namespaceURI)}),Modernizr.addTest("svg",!!b.createElementNS&&!!b.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect),Modernizr.addTest("touchevents",function(){var c;if("ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch)c=!0;else{var d=["@media (",D.join("touch-enabled),("),"heartz",")","{#modernizr{top:9px;position:absolute}}"].join("");E(d,function(a){c=9===a.offsetTop})}return c}),Modernizr.addTest("typedarrays","ArrayBuffer"in a),Modernizr.addTest("unicode",function(){var a,c=u("span"),d=b.createElement("span");return E("#modernizr{font-family:Arial,sans;font-size:300em;}",function(b){c.innerHTML="ᝣ",d.innerHTML="☆",b.appendChild(c),b.appendChild(d),a="offsetWidth"in c&&c.offsetWidth!==d.offsetWidth}),a}),Modernizr.addTest("unicoderange",function(){return Modernizr.testStyles('@font-face{font-family:"unicodeRange";src:local("Arial");unicode-range:U+002E}#modernizr span{font-size:10px;display:inline-block;font-family:"unicodeRange",monospace}#modernizr .mono{font-family:monospace}',function(a){for(var b=[".",".","m","m"],c=0;c