css3-mediaqueries.js 13 KB

12345678910111213141516171819202122232425262728
  1. "function"!==typeof Object.create&&(Object.create=function(j){function m(){}m.prototype=j;return new m});var ua={toString:function(){return navigator.userAgent},test:function(j){return this.toString().toLowerCase().indexOf(j.toLowerCase())>-1}};ua.version=(ua.toString().toLowerCase().match(/[\s\S]+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1];ua.webkit=ua.test("webkit");ua.gecko=ua.test("gecko")&&!ua.webkit;ua.opera=ua.test("opera");ua.ie=ua.test("msie")&&!ua.opera;
  2. ua.ie6=ua.ie&&document.compatMode&&"undefined"===typeof document.documentElement.style.maxHeight;ua.ie7=ua.ie&&document.documentElement&&"undefined"!==typeof document.documentElement.style.maxHeight&&"undefined"===typeof XDomainRequest;ua.ie8=ua.ie&&"undefined"!==typeof XDomainRequest;
  3. var domReady=function(){var j=[],m=function(){if(!arguments.callee.done){arguments.callee.done=true;for(var m=0;m<j.length;m++)j[m]()}};document.addEventListener&&document.addEventListener("DOMContentLoaded",m,false);if(ua.ie){(function(){try{document.documentElement.doScroll("left");document.body.length}catch(j){setTimeout(arguments.callee,50);return}m()})();document.onreadystatechange=function(){if(document.readyState==="complete"){document.onreadystatechange=null;m()}}}ua.webkit&&document.readyState&&
  4. function(){document.readyState!=="loading"?m():setTimeout(arguments.callee,10)}();window.onload=m;return function(q){typeof q==="function"&&(m.done?q():j[j.length]=q);return q}}(),cssHelper=function(){var j=/[^\s{][^{]*\{(?:[^{}]*\{[^{}]*\}[^{}]*|[^{}]*)*\}/g,m=/[^\s{][^{]*\{[^{}]*\}/g,q=/url\(['"]?([^\/\)'"][^:\)'"]+)['"]?\)/g,y=/(?:\/\*([^*\\\\]|\*(?!\/))+\*\/|@import[^;]+;|@-moz-document\s*url-prefix\(\)\s*{(([^{}])+{([^{}])+}([^{}])+)+})/g,z=/\s*(,|:|;|\{|\})\s*/g,r=/\s{2,}/g,v=/;\}/g,w=/\S+/g,
  5. o,t=false,s=[],u=function(a){typeof a==="function"&&(s[s.length]=a)},n={},e=function(a,c){if(n[a]){var f=n[a].listeners;if(f)for(var b=0;b<f.length;b++)f[b](c)}},h=function(a){a=a.replace(y,"");a=a.replace(z,"$1");a=a.replace(r," ");return a=a.replace(v,"}")},c={mediaQueryList:function(a){for(var b={},f=a.indexOf("{"),k=a.substring(0,f),a=a.substring(f+1,a.length-1),e=[],d=[],p=k.toLowerCase().substring(7).split(","),f=0;f<p.length;f++)e[e.length]=c.mediaQuery(p[f],b);p=a.match(m);if(p!==null)for(f=
  6. 0;f<p.length;f++)d[d.length]=c.rule(p[f],b);b.getMediaQueries=function(){return e};b.getRules=function(){return d};b.getListText=function(){return k};b.getCssText=function(){return a};return b},mediaQuery:function(a,c){for(var f=false,b,e=[],d=(a||"").match(w),p=0;p<d.length;p++){var g=d[p];if(!b&&(g==="not"||g==="only"))g==="not"&&(f=true);else if(b){if(g.charAt(0)==="("){g=g.substring(1,g.length-1).split(":");e[e.length]={mediaFeature:g[0],value:g[1]||null}}}else b=g}return{getList:function(){return c||
  7. null},getValid:function(){return true},getNot:function(){return f},getMediaType:function(){return b},getExpressions:function(){return e}}},rule:function(a,b){for(var f={},k=a.indexOf("{"),e=a.substring(0,k),g=e.split(","),d=[],k=a.substring(k+1,a.length-1).split(";"),h=0;h<k.length;h++)d[d.length]=c.declaration(k[h],f);f.getMediaQueryList=function(){return b||null};f.getSelectors=function(){return g};f.getSelectorText=function(){return e};f.getDeclarations=function(){return d};f.getPropertyValue=
  8. function(a){for(var f=0;f<d.length;f++)if(d[f].getProperty()===a)return d[f].getValue();return null};return f},declaration:function(a,b){var f=a.indexOf(":"),c=a.substring(0,f),e=a.substring(f+1);return{getRule:function(){return b||null},getProperty:function(){return c},getValue:function(){return e}}}},d=function(a){if(typeof a.cssHelperText==="string"){var b={mediaQueryLists:[],rules:[],selectors:{},declarations:[],properties:{}},f=b.mediaQueryLists,k=b.rules,e=a.cssHelperText.match(j);if(e!==null)for(var d=
  9. 0;d<e.length;d++)if(e[d].substring(0,7)==="@media "){f[f.length]=c.mediaQueryList(e[d]);k=b.rules=k.concat(f[f.length-1].getRules())}else k[k.length]=c.rule(e[d]);f=b.selectors;for(d=0;d<k.length;d++)for(var e=k[d],g=e.getSelectors(),h=0;h<g.length;h++){var i=g[h];f[i]||(f[i]=[]);f[i][f[i].length]=e}f=b.declarations;for(d=0;d<k.length;d++)f=b.declarations=f.concat(k[d].getDeclarations());k=b.properties;for(d=0;d<f.length;d++){e=f[d].getProperty();k[e]||(k[e]=[]);k[e][k[e].length]=f[d]}a.cssHelperParsed=
  10. b;o[o.length]=a;return b}},l=function(a,b){a.cssHelperText=h(b||a.innerHTML);return d(a)},g={mediaQueryLists:"array",rules:"array",selectors:"object",declarations:"array",properties:"object"},b={mediaQueryLists:null,rules:null,selectors:null,declarations:null,properties:null},i=function(a,c){if(b[a]!==null){if(g[a]==="array")return b[a]=b[a].concat(c);var f=b[a],e;for(e in c)c.hasOwnProperty(e)&&(f[e]=f[e]?f[e].concat(c[e]):c[e]);return f}},x=function(a){b[a]=g[a]==="array"?[]:{};for(var c=0;c<o.length;c++)i(a,
  11. o[c].cssHelperParsed[a]);return b[a]};domReady(function(){for(var a=document.body.getElementsByTagName("*"),b=0;b<a.length;b++)a[b].checkedByCssHelper=true;document.implementation.hasFeature("MutationEvents","2.0")||window.MutationEvent?document.body.addEventListener("DOMNodeInserted",function(a){a=a.target;if(a.nodeType===1){e("DOMElementInserted",a);a.checkedByCssHelper=true}},false):setInterval(function(){for(var a=document.body.getElementsByTagName("*"),b=0;b<a.length;b++)if(!a[b].checkedByCssHelper){e("DOMElementInserted",
  12. a[b]);a[b].checkedByCssHelper=true}},1E3)});var A=function(a){if(typeof window.innerWidth!="undefined")return window["inner"+a];if(typeof document.documentElement!="undefined"&&typeof document.documentElement.clientWidth!="undefined"&&document.documentElement.clientWidth!=0)return document.documentElement["client"+a]};return{addStyle:function(a,b){var c;if(null!==document.getElementById("css-mediaqueries-js"))c=document.getElementById("css-mediaqueries-js");else{c=document.createElement("style");
  13. c.setAttribute("type","text/css");c.setAttribute("id","css-mediaqueries-js");document.getElementsByTagName("head")[0].appendChild(c)}c.styleSheet?c.styleSheet.cssText=c.styleSheet.cssText+a:c.appendChild(document.createTextNode(a));c.addedWithCssHelper=true;typeof b==="undefined"||b===true?cssHelper.parsed(function(){var b=l(c,a),d;for(d in b)b.hasOwnProperty(d)&&i(d,b[d]);e("newStyleParsed",c)}):c.parsingDisallowed=true;return c},removeStyle:function(a){if(a.parentNode)return a.parentNode.removeChild(a)},
  14. parsed:function(a){if(t)u(a);else if(typeof o!=="undefined")typeof a==="function"&&a(o);else{u(a);t=true;o=[];for(var b=[],c=function(){for(var a=0;a<b.length;a++)d(b[a]);for(var c=document.getElementsByTagName("style"),a=0;a<c.length;a++)l(c[a]);t=false;for(a=0;a<s.length;a++)s[a](o)},e=document.getElementsByTagName("link"),a=0;a<e.length;a++){var g=e[a];g.getAttribute("rel").indexOf("style")>-1&&(g.href&&g.href.length!==0&&!g.disabled)&&(b[b.length]=g)}if(b.length>0)for(var i=0,e=function(a){var e=
  15. a.href;a:{if(ua.ie&&!window.XMLHttpRequest)window.XMLHttpRequest=function(){return new ActiveXObject("Microsoft.XMLHTTP")};if(XMLHttpRequest){var d=new XMLHttpRequest;try{d.open("get",e,true);d.setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest")}catch(g){i++;i===b.length&&c();break a}var k=false;setTimeout(function(){k=true},5E3);document.documentElement.style.cursor="progress";d.onreadystatechange=function(){if(d.readyState===4&&!k){if(!d.status&&location.protocol==="file:"||d.status>=200&&d.status<
  16. 300||d.status===304||navigator.userAgent.indexOf("Safari")>-1&&typeof d.status==="undefined"){var g=d.responseText,g=h(g).replace(q,"url("+e.substring(0,e.lastIndexOf("/"))+"/$1)");a.cssHelperText=g}i++;i===b.length&&c();document.documentElement.style.cursor="";d=null}};d.send("")}}},a=0;a<b.length;a++)e(b[a]);else c()}},mediaQueryLists:function(a){cssHelper.parsed(function(){a(b.mediaQueryLists||x("mediaQueryLists"))})},rules:function(a){cssHelper.parsed(function(){a(b.rules||x("rules"))})},selectors:function(a){cssHelper.parsed(function(){a(b.selectors||
  17. x("selectors"))})},declarations:function(a){cssHelper.parsed(function(){a(b.declarations||x("declarations"))})},properties:function(a){cssHelper.parsed(function(){a(b.properties||x("properties"))})},broadcast:e,addListener:function(a,b){if(typeof b==="function"){n[a]||(n[a]={listeners:[]});n[a].listeners[n[a].listeners.length]=b}},removeListener:function(a,b){if(typeof b==="function"&&n[a])for(var c=n[a].listeners,d=0;d<c.length;d++)if(c[d]===b){c.splice(d,1);d=d-1}},getViewportWidth:function(){return A("Width")},
  18. getViewportHeight:function(){return A("Height")}}}();
  19. domReady(function(){var j,m=/[0-9]+(em|ex|px|in|cm|mm|pt|pc)$/,q=/[0-9]+(dpi|dpcm)$/,y=/^[0-9]+\/[0-9]+$/,z=/^[0-9]*(\.[0-9]+)*$/,r=[],v=function(){var e=document.createElement("div");e.id="css3-mediaqueries-test";var h=cssHelper.addStyle("@media all and (width) { #css3-mediaqueries-test { width: 1px !important; } }",false);document.body.appendChild(e);var c=e.offsetWidth===1;h.parentNode.removeChild(h);e.parentNode.removeChild(e);v=function(){return c};return c},w=function(e){j.style.width=e;e=j.offsetWidth;
  20. j.style.width="";return e},o=function(e,h){var c=e.length,d=e.substring(0,4)==="min-",l=!d&&e.substring(0,4)==="max-";if(h!==null){var g,b;if(m.exec(h)){g="length";b=w(h)}else if(q.exec(h)){g="resolution";b=parseInt(h,10);var i=h.substring((b+"").length)}else if(y.exec(h)){g="aspect-ratio";b=h.split("/")}else if(z){g="absolute";b=h}else g="unknown"}if("device-width"===e.substring(c-12,c)){c=screen.width;return h!==null?g==="length"?d&&c>=b||l&&c<b||!d&&!l&&c===b:false:c>0}if("device-height"===e.substring(c-
  21. 13,c)){i=screen.height;return h!==null?g==="length"?d&&i>=b||l&&i<b||!d&&!l&&i===b:false:i>0}if("width"===e.substring(c-5,c)){c=document.documentElement.clientWidth||document.body.clientWidth;return h!==null?g==="length"?d&&c>=b||l&&c<b||!d&&!l&&c===b:false:c>0}if("height"===e.substring(c-6,c)){i=document.documentElement.clientHeight||document.body.clientHeight;return h!==null?g==="length"?d&&i>=b||l&&i<b||!d&&!l&&i===b:false:i>0}if("orientation"===e.substring(c-11,c)){c=document.documentElement.clientWidth||
  22. document.body.clientWidth;i=document.documentElement.clientHeight||document.body.clientHeight;return g==="absolute"?b==="portrait"?c<=i:c>i:false}if("aspect-ratio"===e.substring(c-12,c)){c=document.documentElement.clientWidth||document.body.clientWidth;i=document.documentElement.clientHeight||document.body.clientHeight;c=c/i;b=b[1]/b[0];return g==="aspect-ratio"?d&&c>=b||l&&c<b||!d&&!l&&c===b:false}if("device-aspect-ratio"===e.substring(c-19,c))return g==="aspect-ratio"&&screen.width*b[1]===screen.height*
  23. b[0];if("color-index"===e.substring(c-11,c)){c=Math.pow(2,screen.colorDepth);return h!==null?g==="absolute"?d&&c>=b||l&&c<b||!d&&!l&&c===b:false:c>0}if("color"===e.substring(c-5,c)){c=screen.colorDepth;return h!==null?g==="absolute"?d&&c>=b||l&&c<b||!d&&!l&&c===b:false:c>0}if("resolution"===e.substring(c-10,c)){c=i==="dpcm"?w("1cm"):w("1in");return h!==null?g==="resolution"?d&&c>=b||l&&c<b||!d&&!l&&c===b:false:c>0}return false},t=function(e){for(var h=0;h<e.length;h++){for(var c=e[h],d=c.getMediaQueries(),
  24. l={},g=0;g<d.length;g++){var b;var i=d[g];b=i.getValid();var j=i.getExpressions(),m=j.length;if(m>0){for(var a=0;a<m&&b;a++)b=o(j[a].mediaFeature,j[a].value);i=i.getNot();b=b&&!i||i&&!b}else b=void 0;b&&(l[d[g].getMediaType()]=true)}d=[];g=0;b=void 0;for(b in l)if(l.hasOwnProperty(b)){g>0&&(d[g++]=",");d[g++]=b}d.length>0&&(r[r.length]=cssHelper.addStyle("@media "+d.join("")+"{"+c.getCssText()+"}",false))}if(ua.ie){document.documentElement.style.display="block";setTimeout(function(){document.documentElement.style.display=
  25. ""},0);setTimeout(function(){cssHelper.broadcast("cssMediaQueriesTested")},100)}else cssHelper.broadcast("cssMediaQueriesTested")},s=function(){for(var e=0;e<r.length;e++)cssHelper.removeStyle(r[e]);r=[];cssHelper.mediaQueryLists(t)},u=0,n=document.documentElement;n.style.marginLeft="-32767px";setTimeout(function(){n.style.marginTop=""},2E4);return function(){if(v())n.style.marginLeft="";else{cssHelper.addListener("newStyleParsed",function(c){t(c.cssHelperParsed.mediaQueryLists)});cssHelper.addListener("cssMediaQueriesTested",
  26. function(){if(ua.ie)n.style.width="1px";setTimeout(function(){n.style.width="";n.style.marginLeft=""},0);cssHelper.removeListener("cssMediaQueriesTested",arguments.callee)});j=document.createElement("div");j.style.cssText="position:absolute;top:-9999em;left:-9999em;margin:0;border:none;padding:0;width:1em;font-size:1em;";document.body.appendChild(j);if(j.offsetWidth!==16)j.style.fontSize=16/j.offsetWidth+"em";j.style.width="";s()}var e=cssHelper.getViewportWidth(),h=cssHelper.getViewportHeight();
  27. if(ua.ie){var c=document.createElement("div");c.style.width="100px";c.style.height="100px";c.style.position="absolute";c.style.top="-9999em";c.style.overflow="scroll";document.body.appendChild(c);u=c.offsetWidth-c.clientWidth;document.body.removeChild(c)}var d,l=window.onresize||function(){};window.onresize=function(){l();var c=cssHelper.getViewportWidth(),b=cssHelper.getViewportHeight();if(Math.abs(c-e)>u||Math.abs(b-h)>u){e=c;h=b;clearTimeout(d);d=setTimeout(function(){v()?cssHelper.broadcast("cssMediaQueriesTested"):
  28. s()},500)}}}}());try{document.execCommand("BackgroundImageCache",!1,!0)}catch(e$$3){};