/
respond.min.js
6 lines (5 loc) · 3.82 KB
/
respond.min.js
1
2
3
4
5
6
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */
window.matchMedia=window.matchMedia||(function(e,f){var c,a=e.documentElement,b=a.firstElementChild||a.firstChild,d=e.createElement("body"),g=e.createElement("div");g.id="mq-test-1";g.style.cssText="position:absolute;top:-100em";d.appendChild(g);return function(h){g.innerHTML='­<style media="'+h+'"> #mq-test-1 { width: 42px; }</style>';a.insertBefore(d,b);c=g.offsetWidth==42;a.removeChild(d);return{matches:c,media:h}}})(document);
/*! Respond.js v1.0.1: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
(function(f){f.respond={};respond.update=function(){};respond.mediaQueriesSupported=f.matchMedia&&f.matchMedia("only all").matches;if(respond.mediaQueriesSupported){return}var w=f.document,t=w.documentElement,j=t.firstElementChild||t.firstChild,c=!w.body,h=w.body||w.createElement("body"),k=[],m=[],r=[],q={},i=30,g=w.getElementsByTagName("head")[0]||t,b=g.getElementsByTagName("link"),e=[],a=function(){var D=b,y=D.length,B=0,A,z,C,x;for(;B<y;B++){A=D[B],z=A.href,C=A.media,x=A.rel&&A.rel.toLowerCase()==="stylesheet";if(!!z&&x&&!q[z]){if(A.styleSheet&&A.styleSheet.rawCssText){o(A.styleSheet.rawCssText,z,C);q[z]=true}else{if(!/^([a-zA-Z]+?:(\/\/)?)/.test(z)||z.replace(RegExp.$1,"").split("/")[0]===f.location.host){e.push({href:z,media:C})}}}}v()},v=function(){if(e.length){var x=e.shift();p(x.href,function(y){o(y,x.href,x.media);q[x.href]=true;v()})}},o=function(I,x,z){var G=I.match(/@media[^\{]+\{([^\{\}]+\{[^\}\{]+\})+/gi),J=G&&G.length||0,x=x.substring(0,x.lastIndexOf("/")),y=function(K){return K.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+x+"$2$3")},A=!J&&z,D=0,C,E,F,B,H;if(x.length){x+="/"}if(A){J=1}for(;D<J;D++){C=0;if(A){E=z;m.push(y(I))}else{E=G[D].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1;m.push(RegExp.$2&&y(RegExp.$2))}B=E.split(",");H=B.length;for(;C<H;C++){F=B[C];k.push({media:F.match(/(only\s+)?([a-zA-Z]+)(\sand)?/)&&RegExp.$2,rules:m.length-1,minw:F.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:F.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}}l()},n,s,l=function(G){var x="clientWidth",z=t[x],F=w.compatMode==="CSS1Compat"&&z||w.body[x]||z,C={},E=b[b.length-1],y=(new Date()).getTime(),J=(function(){var L;var M=w.createElement("div");M.id="mq-test-1";M.style.cssText="position:absolute;top:-99em;width:1em";h.appendChild(M);if(c){t.insertBefore(h,j)}L=M.offsetWidth;if(c){t.removeChild(h)}h.removeChild(M);return parseFloat(L)})();if(G&&n&&y-n<i){clearTimeout(s);s=setTimeout(l,i);return}else{n=y}for(var B in k){var I=k[B],A=I.minw,H=I.maxw;if(!!A){A=parseFloat(A)*(/em/i.test(A)?J:1)}if(!!H){H=parseFloat(H)*(/em/i.test(H)?J:1)}if(!A&&!H||(!A||A&&F>=A)&&(!H||H&&F<=H)){if(!C[I.media]){C[I.media]=[]}C[I.media].push(m[I.rules])}}for(var B in r){if(r[B]&&r[B].parentNode===g){g.removeChild(r[B])}}for(var B in C){var K=w.createElement("style"),D=C[B].join("\n");K.type="text/css";K.media=B;g.insertBefore(K,E.nextSibling);if(K.styleSheet){K.styleSheet.cssText=D}else{K.appendChild(w.createTextNode(D))}r.push(K)}},p=function(x,z){var y=d();if(!y){return}y.open("GET",x,true);y.onreadystatechange=function(){if(y.readyState!=4||y.status!=200&&y.status!=304){return}z(y.responseText)};if(y.readyState==4){return}y.send(null)},d=(function(){var x=false;try{x=new XMLHttpRequest()}catch(y){x=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return x}})();a();respond.update=a;function u(){l(true)}if(f.addEventListener){f.addEventListener("resize",u,false)}else{if(f.attachEvent){f.attachEvent("onresize",u)}}})(this);