(function(){var n,t;this.Harvey=function(){function i(){}return i.states={},i.attach=function(t,i){var r;return this.states.hasOwnProperty(t)||(this.states[t]=[],this._add_css_for(t)),r=new n(t,i!=null?i.setup:void 0,i!=null?i.on:void 0,i!=null?i.off:void 0),this.states[t].length||this._watch_query(t),this.states[t].push(r),this._window_matchmedia(t).matches&&this._update_states([r],!0),r},i.detach=function(n){var t,r,u,e,f,i;for(f=this.states[n.condition],i=[],t=u=0,e=f.length;u<e;t=++u)r=f[t],n===r?i.push(this.states[r.condition][t]=void 0):i.push(void 0);return i},i._watch_query=function(n){var t=this;return this._window_matchmedia(n).addListener(function(i){return t._update_states(t.states[n],i.matches)})},i._update_states=function(n,t){var u,i,f,r;for(r=[],i=0,f=n.length;i<f;i++)u=n[i],t?r.push(u.activate()):r.push(u.deactivate());return r},i._mediaList={},i._window_matchmedia=function(n){return window.matchMedia&&"addListener"in window.matchMedia("all")?(n in this._mediaList||(this._mediaList[n]=window.matchMedia(n)),this._mediaList[n]):(this._listening||this._listen(),n in this._mediaList||(this._mediaList[n]=new t(n)),this._mediaList[n])},i._listen=function(){var n,t=this;return n=window.addEventListener||window.attachEvent,n("resize",function(){var r,u,n,i;n=t._mediaList,i=[];for(u in n)r=n[u],i.push(r._process());return i}),n("orientationChange",function(){var r,u,n,i;n=t._mediaList,i=[];for(u in n)r=n[u],i.push(r._process());return i}),this._listening=!0},i._add_css_for=function(n){return this.style||(this.style=document.createElement("style"),this.style.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(this.style)),n="@media "+n+" {.harvey-test{}}",this.style.styleSheet?void 0:this.style.appendChild(document.createTextNode(n))},i}(),n=function(){function n(n,t,i,r){this.condition=n,this.setup=t,this.on=i,this.off=r}return n.prototype.active=!1,n.prototype.is_setup=!1,n.prototype.activate=function(){if(!this.active)return this.is_setup||(typeof this.setup=="function"&&this.setup(),this.is_setup=!0),typeof this.on=="function"&&this.on(),this.active=!0},n.prototype.deactivate=function(){if(this.active)return typeof this.off=="function"&&this.off(),this.active=!1},n}(),t=function(){function n(n){this.media=n,this._listeners=[],this.matches=this._matches()}return n.prototype.addListener=function(n){return this._listeners.push(n),void 0},n.prototype._process=function(){var u,t,n,f,i,r;if(t=this._matches(),this.matches!==t){for(this.matches=t,i=this._listeners,r=[],n=0,f=i.length;n<f;n++)u=i[n],r.push(u(this));return r}},n.prototype._matches=function(){return this._tester||this._get_tester(),this._tester.innerHTML='&shy;<style media="'+this.media+'">#harvey-mq-test{width:42px;}<\/style>',this._tester.removeChild(this._tester.firstChild),this._tester.offsetWidth===42},n.prototype._get_tester=function(){return this._tester=document.getElementById("harvey-mq-test"),this._tester?void 0:this._build_tester()},n.prototype._build_tester=function(){return this._tester=document.createElement("div"),this._tester.id="harvey-mq-test",this._tester.style.cssText="position:absolute;top:-100em",document.body.insertBefore(this._tester,document.body.firstChild)},n}()}).call(this)