// LAB.js (LABjs :: Loading And Blocking JavaScript) | v1.0.1 (c) Kyle Simpson | MIT License
(function(c){var f="string",i="head",r="body",O="script",H="readyState",K="preloaddone",A="loadtrigger",F="srcuri",C="preload",s="complete",e="done",b="which",m="onreadystatechange",G="onload",D="hasOwnProperty",v=null,B=true,w=false,l=c.document,I=l.location,M=c.ActiveXObject,d=c.setTimeout,z=c.clearTimeout,N=function(P){return l.getElementsByTagName(P)},p=Object.prototype.toString,q=function(){},t={},x={},a=/^[^?#]*\//.exec(I.href)[0],u=/^\w+\:\/\/\/?[^\/]+/.exec(a)[0],L=N(O),n=c.opera&&p.call(c.opera)=="[object Opera]",o=(function(P){P[P]=P+"";return P[P]!=P+""})(new String("__count__")),k={cache:!(o||n),order:o||n,xhr:B,dupe:B,preserve:w,base:"",which:i};k[C]=B;t[i]=N(i);t[r]=N(r);function J(P){return p.call(P)==="[object Function]"}function y(S,R){var Q=/^\w+\:\/\//,P;if(typeof S!==f){S=""}if(typeof R!==f){R=""}P=(Q.test(S)?"":R)+S;return((Q.test(P)?"":(P.charAt(0)==="/"?u:a))+P)}function E(P){return(y(P).indexOf(u)===0)}function g(R){var Q=0,P;while(P=L[Q++]){if(typeof P.src===f&&R===y(P.src)&&P.getAttribute("rel")!==C){return B}}return w}function j(at,ah){at=!(!at);if(ah==v){ah=k}var ag=w,aa=at&&ah[C],an=aa&&ah.cache,ap=aa&&ah.order,T=aa&&ah.xhr,aq=ah.preserve,S=ah.which,ak=ah.base,U=q,aj=w,ad,X=B,Y={},ao=[],ab=null;aa=an||T||ap;function ar(av,au){if((av[H]&&av[H]!==s&&av[H]!=="loaded")||au[e]){return w}av[G]=av[m]=v;return B}function R(aw,av,ax){ax=!(!ax);if(!ax&&!(ar(aw,av))){return}av[e]=B;for(var au in Y){if(Y[D](au)&&!(Y[au][e])){return}}ag=B;U()}function ac(au){if(J(au[A])){au[A]();au[A]=v}}function Z(av,au){if(!ar(av,au)){return}au[K]=B;d(function(){t[au[b]][0].removeChild(av);ac(au)},0)}function P(av,au){if(av[H]===4){av[m]=q;au[K]=B;d(function(){ac(au)},0)}}function am(aw,az,ax,aA,au,ay,av){d(function(){if(t[aw[b]][0]===v){d(arguments.callee,25);return}var aB=l.createElement(O),aC=function(aD,aE){aB.setAttribute(aD,aE)};aC("type",ax);aC("rel",au);if(typeof aA===f){aC("charset",aA)}if(J(ay)){aB[G]=aB[m]=function(){ay(aB,aw)};aC("src",az)}t[aw[b]][0].appendChild(aB);if(typeof av===f){aB.text=av;R(aB,aw,B)}},0)}function af(au,aw,av,ax){x[au[F]]=B;am(au,aw,av,ax,"",R)}function al(av,ax,aw,ay){var au=arguments;if(X&&av[K]==v){av[K]=w;am(av,ax,"text/html",ay,C,Z)}else{if(!X&&av[K]!=v&&!av[K]){av[A]=function(){al.apply(v,au)}}else{if(!X){af.apply(v,au)}}}}function Q(av,ay,aw,az){var au=arguments,ax;if(X&&av[K]==v){av[K]=w;ax=av.xhr=(M?new M("Microsoft.XMLHTTP"):new c.XMLHttpRequest());ax[m]=function(){P(ax,av)};ax.open("GET",ay);ax.send("")}else{if(!X&&av[K]!=v&&!av[K]){av[A]=function(){Q.apply(v,au)}}else{if(!X){x[av[F]]=B;am(av,ay,aw,az,"",v,av.xhr.responseText);av.xhr=v}}}}function ae(aA){if(aA.allowDup==v){aA.allowDup=ah.dupe}var az=aA.src,ax=aA.type,aB=aA.charset,av=aA.allowDup,au=y(az,ak),aw,ay=E(au);if(typeof ax!==f){ax="text/javascript"}if(typeof aB!==f){aB=v}av=!(!av);if(!av&&((x[au]!=v)||(X&&Y[au])||g(au))){if(Y[au]!=v&&Y[au][K]&&!Y[au][e]&&ay){R(v,Y[au],B)}return}if(Y[au]==v){Y[au]={}}aw=Y[au];if(aw[b]==v){aw[b]=S}aw[e]=w;aw[F]=au;aj=B;if(!ap&&T&&ay){Q(aw,au,ax,aB)}else{if(!ap&&an){al(aw,au,ax,aB)}else{af(aw,au,ax,aB)}}}function W(au){ao.push(au)}function V(au){if(at&&!ap){W(au)}if(!at||aa){au()}}function ai(av){var au=[],aw;for(aw=0;aw<av.length;aw++){if(p.call(av[aw])==="[object Array]"){au=au.concat(ai(av[aw]))}else{au[au.length]=av[aw]}}return au}ad={script:function(){z(ab);var av=ai(arguments),au=ad;if(aq){for(var aw=0;aw<av.length;aw++){if(aw===0){V(function(){ae((typeof av[0]===f)?{src:av[0]}:av[0])})}else{au=au.script(av[aw])}au=au.wait()}}else{V(function(){for(var ax=0;ax<av.length;ax++){ae((typeof av[ax]===f)?{src:av[ax]}:av[ax])}})}ab=d(function(){X=w},5);return au},wait:function(ax){z(ab);X=w;if(!J(ax)){ax=q}var ay=j(B,ah),au=ay.trigger,aw=function(){try{ax()}catch(az){}au()};delete ay.trigger;var av=function(){if(aj&&!ag){U=aw}else{d(aw,0)}};if(at&&!aj){W(av)}else{V(av)}return ay}};ad.block=ad.wait;if(at){ad.trigger=function(){var au=0,av;while(av=ao[au++]){av()}ao=[]}}return ad}function h(T){var P,R={},Q={UseCachePreload:"cache",UseLocalXHR:"xhr",UsePreloading:C,AlwaysPreserveOrder:"preserve",AllowDuplicates:"dupe"},S={AppendTo:"which",BasePath:"base"};for(P in Q){S[P]=Q[P]}R.order=!(!k.order);for(P in S){if(S[D](P)&&k[S[P]]!=v){R[S[P]]=(T[P]!=v)?T[P]:k[S[P]]}}for(P in Q){if(Q[D](P)){R[Q[P]]=!(!R[Q[P]])}}if(!R[C]){R.cache=R.order=R.xhr=w}R.which=(R.which===i||R.which===r)?R.which:i;return R}c.$LAB={setGlobalDefaults:function(P){k=h(P)},setOptions:function(P){return j(w,h(P))},script:function(){return j().script.apply(v,arguments)},wait:function(){return j().wait.apply(v,arguments)}};c.$LAB.block=c.$LAB.wait;(function(R,P,Q){if(l[H]==v&&l[R]){l[H]="loading";l[R](P,Q=function(){l.removeEventListener(P,Q,w);l[H]=s},w)}})("addEventListener","DOMContentLoaded")})(window);