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