/*! LAB.js (LABjs :: Loading And Blocking JavaScript)
    v1.2.0 (c) Kyle Simpson
    MIT License
*/
(function(c){var h="string",l="head",u="body",V="script",P="readyState",S="preloaddone",E="loadtrigger",L="srcuri",I="preload",v="complete",f="done",b="which",w="preserve",p="onreadystatechange",M="onload",J="hasOwnProperty",F="script/cache",g="[object ",N=g+"Function]",G=g+"Array]",z=null,H=true,A=false,o=c.document,O=c.location,T=c.ActiveXObject,e=c.setTimeout,D=c.clearTimeout,U=function(W){return o.getElementsByTagName(W);},s=Object.prototype.toString,t=function(){},x={},B={},a=/^[^?#]*\//.exec(O.href)[0],y=/^\w+\:\/\/\/?[^\/]+/.exec(a)[0],R=U(V),q=c.opera&&s.call(c.opera)==g+"Opera]",r=("MozAppearance" in o.documentElement.style),d=(o.createElement(V).async===true),n={cache:!(r||q),order:r||q||d,xhr:H,dupe:H,base:"",which:l};n[w]=A;n[I]=H;x[l]=o.head||U(l);x[u]=U(u);function Q(W){return s.call(W)===N;}function C(Z,Y){var X=/^\w+\:\/\//,W;if(typeof Z!=h){Z="";}if(typeof Y!=h){Y="";}W=((/^\/\//.test(Z))?O.protocol:"")+Z;W=(X.test(W)?"":Y)+W;return((X.test(W)?"":(W.charAt(0)==="/"?y:a))+W);}function K(W){return(C(W).indexOf(y)===0);}function j(Y){var X,W=-1;while(X=R[++W]){if(typeof X.src==h&&Y===C(X.src)&&X.type!==F){return H;}}return A;}function m(az,an){az=!(!az);if(an==z){an=n;}var am=A,ag=az&&an[I],au=ag&&an.cache,aw=ag&&an.order,aa=ag&&an.xhr,ax=an[w],Z=an.which,aq=an.base,ab=t,ap=A,aj,ad=H,ae={},av=[],ah=z;ag=au||aa||aw;function ay(aB,aA){if((aB[P]&&aB[P]!==v&&aB[P]!=="loaded")||aA[f]){return A;}aB[M]=aB[p]=z;return H;}function Y(aC,aB,aD){aD=!(!aD);if(!aD&&!(ay(aC,aB))){return;}aB[f]=H;for(var aA in ae){if(ae[J](aA)&&!(ae[aA][f])){return;}}am=H;ab();}function ai(aA){if(Q(aA[E])){aA[E]();aA[E]=z;}}function af(aB,aA){if(!ay(aB,aA)){return;}aA[S]=H;e(function(){x[aA[b]].removeChild(aB);ai(aA);},0);}function W(aB,aA){if(aB[P]===4){aB[p]=t;aA[S]=H;e(function(){ai(aA);},0);}}function at(aC,aF,aD,aG,aE,aA){var aB=aC[b];e(function(){if("item" in x[aB]){if(!x[aB][0]){e(arguments.callee,25);return;}x[aB]=x[aB][0];}var aH=o.createElement(V);if(typeof aD==h){aH.type=aD;}if(typeof aG==h){aH.charset=aG;}if(Q(aE)){aH[M]=aH[p]=function(){aE(aH,aC);};aH.src=aF;if(d){aH.async=A;}}x[aB].insertBefore(aH,(aB===l?x[aB].firstChild:z));if(typeof aA==h){aH.text=aA;Y(aH,aC,H);}},0);}function al(aA,aC,aB,aD){B[aA[L]]=H;at(aA,aC,aB,aD,Y);}function ar(aB,aD,aC,aE){var aA=arguments;if(ad&&aB[S]==z){aB[S]=A;at(aB,aD,F,aE,af);}else{if(!ad&&aB[S]!=z&&!aB[S]){aB[E]=function(){ar.apply(z,aA);};}else{if(!ad){al.apply(z,aA);}}}}function X(aB,aE,aC,aF){var aA=arguments,aD;if(ad&&aB[S]==z){aB[S]=A;aD=aB.xhr=(T?new T("Microsoft.XMLHTTP"):new c.XMLHttpRequest());aD[p]=function(){W(aD,aB);};aD.open("GET",aE);aD.send("");}else{if(!ad&&aB[S]!=z&&!aB[S]){aB[E]=function(){X.apply(z,aA);};}else{if(!ad){B[aB[L]]=H;at(aB,aE,aC,aF,z,aB.xhr.responseText);aB.xhr=z;}}}}function ak(aG){if(typeof aG=="undefined"||!aG){return;}if(aG.allowDup==z){aG.allowDup=an.dupe;}var aF=aG.src,aD=aG.type,aH=aG.charset,aB=aG.allowDup,aA=C(aF,aq),aC,aE=K(aA);if(typeof aH!=h){aH=z;}aB=!(!aB);if(!aB&&((B[aA]!=z)||(ad&&ae[aA])||j(aA))){if(ae[aA]!=z&&ae[aA][S]&&!ae[aA][f]&&aE){Y(z,ae[aA],H);}return;}if(ae[aA]==z){ae[aA]={};}aC=ae[aA];if(aC[b]==z){aC[b]=Z;}aC[f]=A;aC[L]=aA;ap=H;if(!aw&&aa&&aE){X(aC,aA,aD,aH);}else{if(!aw&&au){ar(aC,aA,aD,aH);}else{al(aC,aA,aD,aH);}}}function ac(aA){if(az&&!aw){av.push(aA);}if(!az||ag){aA();}}function ao(aC){var aB=[],aA;for(aA=-1;++aA<aC.length;){if(s.call(aC[aA])===G){aB=aB.concat(ao(aC[aA]));}else{aB[aB.length]=aC[aA];}}return aB;}aj={script:function(){D(ah);var aC=ao(arguments),aB=aj,aA;if(ax){for(aA=-1;++aA<aC.length;){if(Q(aC[aA])){aC[aA]=aC[aA]();}if(aA===0){ac(function(){ak((typeof aC[0]==h)?{src:aC[0]}:aC[0]);});}else{aB=aB.script(aC[aA]);}aB=aB.wait();}}else{for(aA=-1;++aA<aC.length;){if(Q(aC[aA])){aC[aA]=aC[aA]();}}ac(function(){for(aA=-1;++aA<aC.length;){ak((typeof aC[aA]==h)?{src:aC[aA]}:aC[aA]);}});}ah=e(function(){ad=A;},5);return aB;},wait:function(aD){D(ah);ad=A;if(!Q(aD)){aD=t;}var aE=m(az||ap,an),aA=aE.trigger,aC=function(){try{aD();}catch(aF){}aA();};delete aE.trigger;var aB=function(){if(ap&&!am){ab=aC;}else{aC();}};if(az&&!ap){av.push(aB);}else{ac(aB);}return aE;}};if(az){aj.trigger=function(){var aB,aA=-1;while(aB=av[++aA]){aB();}av=[];};}else{aj.trigger=t;}return aj;}function k(aa){var W,Y={},X={"UseCachePreload":"cache","UseLocalXHR":"xhr","UsePreloading":I,"AlwaysPreserveOrder":w,"AllowDuplicates":"dupe"},Z={"AppendTo":b,"BasePath":"base"};for(W in X){Z[W]=X[W];}Y.order=!(!n.order);for(W in Z){if(Z[J](W)&&n[Z[W]]!=z){Y[Z[W]]=(aa[W]!=z)?aa[W]:n[Z[W]];}}for(W in X){if(X[J](W)){Y[X[W]]=!(!Y[X[W]]);}}if(!Y[I]){Y.cache=Y.order=Y.xhr=A;}Y.which=(Y.which===l||Y.which===u)?Y.which:l;return Y;}c.$LAB={setGlobalDefaults:function(W){n=k(W);},setOptions:function(W){return m(A,k(W));},script:function(){return m().script.apply(z,arguments);},wait:function(){return m().wait.apply(z,arguments);}};(function(Y,W,X){if(o[P]==z&&o[Y]){o[P]="loading";
o[Y](W,X=function(){o.removeEventListener(W,X,A);o[P]=v;},A);}})("addEventListener","DOMContentLoaded");})(window);if(typeof PUNBB==="undefined"||!PUNBB){var PUNBB={};}PUNBB.common=function(){var b=document.documentElement;function a(c){return document.getElementById(c);}return{init:function(){PUNBB.common.addClass(b,"js");PUNBB.common.attachWindowOpen();PUNBB.common.autoFocus();PUNBB.common.attachQuickjumpRedirect();PUNBB.common.attachCtrlEnterForm();if(!PUNBB.common.input_support_attr("required")){PUNBB.common.attachValidateForm();}var c=a("brd-messages");if(c){setTimeout(function(){c.style.visibility="hidden";},3000);}},addLoadEvent:function(d){var c=window.onload;window.onload=(c&&typeof c=="function")?function(){c();d();}:d;},hasClass:function(d,c){return(new RegExp("\\b"+c+"\\b")).test(d.className);},addClass:function(d,c){if(PUNBB.common.hasClass(d,c)){return false;}else{d.className+=" "+c;}return true;},removeClass:function(d,c){if(!PUNBB.common.hasClass(d,c)){return false;}c=new RegExp("\\s*\\b"+c+"\\b","g");d.className=d.className.replace(c,"");return true;},blink:function(e,d){if(typeof d=="undefined"){d=2;}var c=e.style.visibility;if(d&&c!="hidden"){e.style.visibility="hidden";setTimeout(function(){e.style.visibility=c;},200);setTimeout(function(){PUNBB.common.blink(e,d-1);},400);}},onScreen:function(k){function g(){var l=-1;if(self.pageYOffset){l=self.pageYOffset;}else{if(b&&b.scrollTop){l=b.scrollTop;}else{if(document.body){l=document.body.scrollTop;}}}return l;}function f(){var l=-1;if(self.innerHeight){l=self.innerHeight;}else{if(b&&b.clientHeight){l=b.clientHeight;}else{if(document.body){l=document.body.clientHeight;}}}return l;}function d(m){var l=m.offsetTop;m=m.offsetParent;return m?l+=d(m):l;}var c=g();var j=c+f();var e=d(k);var h=e+k.clientHeight;return e>=c&&h<j;},map:function(f,d){for(var e=0,c=d.length;e<c;e++){d[e]=f(d[e]);}return d;},find:function(f,d){for(var e=0,c=d.length;e<c;e++){if(f(d[e])){return e;}}return -1;},arrayOfMatched:function(f,d){matched=[];for(var e=0,c=d.length;e<c;e++){if(f(d[e])){matched.push(d[e]);}}return matched;},flatten:function(d){flt=[];for(var e=0,c=d.length;e<c;e++){if(typeof d[e]=="object"&&d.length){flt.concat(PUNBB.common.flatten(d[e]));}else{flt.push(d[e]);}}return flt;},validateForm:function(e){var g=e.elements;var d=function(k){return k.name&&k.name.indexOf("req_")==0;};var c=PUNBB.common.arrayOfMatched(d,g);d=function(k){return/^\s*$/.test(k.value);};var f=PUNBB.common.find(d,c);if(f>-1){if(PUNBB.common.find(d,c)>-1){var j=a("req-msg");PUNBB.common.removeClass(j,"req-warn");var h=PUNBB.common.addClass(j,"req-error");if(!PUNBB.common.onScreen(j)){j.scrollIntoView();setTimeout(function(){PUNBB.common.blink(j);},500);}else{if(!h){PUNBB.common.blink(j);}}if(PUNBB.common.onScreen(c[f])){c[f].focus();}return false;}}return true;},doQuickjumpRedirect:function(e,d){var c=a("qjump-select")[a("qjump-select").selectedIndex].value;e=e.replace("$1",c);e=e.replace("$2",d[c]);document.location=e;return false;},attachQuickjumpRedirect:function(){var d=a("qjump-select"),c=a("qjump-submit");if(d){d.onchange=function(){return PUNBB.common.doQuickjumpRedirect(forum_quickjump_url,sef_friendly_url_array);};}if(c){c.onclick=function(){return PUNBB.common.doQuickjumpRedirect(forum_quickjump_url,sef_friendly_url_array);};}},initToggleCheckboxes:function(){var e=document.getElementsByTagName("span");for(i=0,cl=e.length;i<cl;i++){var c=e[i];if(PUNBB.common.hasClass(c,"select-all")&&c.getAttribute("data-check-form")){var d=a(c.getAttribute("data-check-form"));if(d){c.onclick=function(){return PUNBB.common.toggleCheckboxes(d);};}}}},toggleCheckboxes:function(d){if(!d){return false;}var e=d.getElementsByTagName("input");for(i=0,cl=e.length;i<cl;i++){var c=e[i];if(c.getAttribute("data-no-select-all")){continue;}if(c.getAttribute("type")=="checkbox"&&c.disabled==false){c.checked=!c.checked;}}return false;},attachCtrlEnterForm:function(){var d=document.forms;for(var h=0,m=d.length;h<m;h++){var l=d[h];if(!PUNBB.common.hasClass(l,"frm-ctrl-submit")){continue;}var c=l.elements,n=function(f){return f.tagName.toUpperCase()=="TEXTAREA";};var e=PUNBB.common.arrayOfMatched(n,c);for(var g=0,k=e.length;g<k;g++){e[g].onkeypress=function(f){if(((f.keyCode==13)||(f.keyCode==10))&&(f.ctrlKey==true)){return l.submit();}};}}},attachValidateForm:function(){var e=document.forms;for(var f=0,c=e.length;f<c;f++){var h=e[f].elements,g=function(k){return k.name&&k.name.indexOf("req_")==0;};if(PUNBB.common.find(g,h)>-1){g=function(k){return k.type&&(k.type=="submit"&&k.name!="cancel");};var d=PUNBB.common.arrayOfMatched(g,h),j=e[f];g=function(){return PUNBB.common.validateForm(j);};d=PUNBB.common.map(function(k){k.onclick=g;},d);}}},attachWindowOpen:function(){if(!document.getElementsByTagName){return;}var c=document.getElementsByTagName("a");for(var d=0;d<c.length;d++){if(PUNBB.common.hasClass(c[d],"exthelp")){c[d].onclick=function(){window.open(this.href);return false;};}}},autoFocus:function(){var c=a("afocus");
if(!c||window.location.hash.replace(/#/g,"")){return;}c=c.all?c.all:c.getElementsByTagName("*");var d=function(f){return f.tagName.toUpperCase()=="TEXTAREA"||(f.tagName.toUpperCase()=="INPUT"&&(f.type=="text")||(f.type=="password")||(f.type=="email")||(f.type=="url")||(f.type=="number"));};var e=PUNBB.common.find(d,c);if(e>-1){c[e].focus();}},input_support_attr:function(c){var d=document.createElement("input");if(!c){return false;}return !!(c in d);}};}();PUNBB.common.addLoadEvent(PUNBB.common.init);
