/* JS FILES COMBINED:
/js/vne/labjs/LAB.js
/js/vne/labjs/LABqueue.js
/js/vne/labjs.yakabox.initializer.js
*/

(function(global){var sSTRING="string",sHEAD="head",sBODY="body",sSCRIPT="script",sREADYSTATE="readyState",sPRELOADDONE="preloaddone",sLOADTRIGGER="loadtrigger",sSRCURI="srcuri",sPRELOAD="preload",sCOMPLETE="complete",sDONE="done",sWHICH="which",sPRESERVE="preserve",sONREADYSTATECHANGE="onreadystatechange",sONLOAD="onload",sHASOWNPROPERTY="hasOwnProperty",sSCRIPTCACHE="script/cache",sTYPEOBJ="[object ",sTYPEFUNC=sTYPEOBJ+"Function]",sTYPEARRAY=sTYPEOBJ+"Array]",nNULL=null,bTRUE=true,bFALSE=false,oDOC=global.document,oWINLOC=global.location,oACTIVEX=global.ActiveXObject,fSETTIMEOUT=global.setTimeout,fCLEARTIMEOUT=global.clearTimeout,fGETELEMENTSBYTAGNAME=function(tn){return oDOC.getElementsByTagName(tn);},fOBJTOSTRING=Object.prototype.toString,fNOOP=function(){},append_to={},all_scripts={},PAGEROOT=/^[^?#]*\//.exec(oWINLOC.href)[0],DOCROOT=/^\w+\:\/\/\/?[^\/]+/.exec(PAGEROOT)[0],docScripts=fGETELEMENTSBYTAGNAME(sSCRIPT),is_opera=global.opera&&fOBJTOSTRING.call(global.opera)==sTYPEOBJ+"Opera]",is_gecko=("MozAppearance"in oDOC.documentElement.style),is_script_async=(oDOC.createElement(sSCRIPT).async===true),global_defs={cache:!(is_gecko||is_opera),order:is_gecko||is_opera||is_script_async,xhr:bTRUE,dupe:bTRUE,base:"",which:sHEAD};global_defs[sPRESERVE]=bFALSE;global_defs[sPRELOAD]=bTRUE;append_to[sHEAD]=oDOC.head||fGETELEMENTSBYTAGNAME(sHEAD);append_to[sBODY]=fGETELEMENTSBYTAGNAME(sBODY);function isFunc(func){return fOBJTOSTRING.call(func)===sTYPEFUNC;}
function canonicalScriptURI(src,base_path){var regex=/^\w+\:\/\//,ret;if(typeof src!=sSTRING)src="";if(typeof base_path!=sSTRING)base_path="";ret=((/^\/\//.test(src))?oWINLOC.protocol:"")+src;ret=(regex.test(ret)?"":base_path)+ret;return((regex.test(ret)?"":(ret.charAt(0)==="/"?DOCROOT:PAGEROOT))+ret);}
function sameDomain(src){return(canonicalScriptURI(src).indexOf(DOCROOT)===0);}
function scriptTagExists(uri){var script,idx=-1;while(script=docScripts[++idx]){if(typeof script.src==sSTRING&&uri===canonicalScriptURI(script.src)&&script.type!==sSCRIPTCACHE)return bTRUE;}
return bFALSE;}
function engine(queueExec,opts){queueExec=!(!queueExec);if(opts==nNULL)opts=global_defs;var ready=bFALSE,_use_preload=queueExec&&opts[sPRELOAD],_use_cache_preload=_use_preload&&opts.cache,_use_script_order=_use_preload&&opts.order,_use_xhr_preload=_use_preload&&opts.xhr,_auto_wait=opts[sPRESERVE],_which=opts.which,_base_path=opts.base,waitFunc=fNOOP,scripts_loading=bFALSE,publicAPI,first_pass=bTRUE,scripts={},exec=[],end_of_chain_check_interval=nNULL;_use_preload=_use_cache_preload||_use_xhr_preload||_use_script_order;function isScriptLoaded(elem,scriptentry){if((elem[sREADYSTATE]&&elem[sREADYSTATE]!==sCOMPLETE&&elem[sREADYSTATE]!=="loaded")||scriptentry[sDONE]){return bFALSE;}
elem[sONLOAD]=elem[sONREADYSTATECHANGE]=nNULL;return bTRUE;}
function handleScriptLoad(elem,scriptentry,skipReadyCheck){skipReadyCheck=!(!skipReadyCheck);if(!skipReadyCheck&&!(isScriptLoaded(elem,scriptentry)))return;scriptentry[sDONE]=bTRUE;for(var key in scripts){if(scripts[sHASOWNPROPERTY](key)&&!(scripts[key][sDONE]))return;}
ready=bTRUE;waitFunc();}
function loadTriggerExecute(scriptentry){if(isFunc(scriptentry[sLOADTRIGGER])){scriptentry[sLOADTRIGGER]();scriptentry[sLOADTRIGGER]=nNULL;}}
function handleScriptPreload(elem,scriptentry){if(!isScriptLoaded(elem,scriptentry))return;scriptentry[sPRELOADDONE]=bTRUE;fSETTIMEOUT(function(){append_to[scriptentry[sWHICH]].removeChild(elem);loadTriggerExecute(scriptentry);},0);}
function handleXHRPreload(xhr,scriptentry){if(xhr[sREADYSTATE]===4){xhr[sONREADYSTATECHANGE]=fNOOP;scriptentry[sPRELOADDONE]=bTRUE;fSETTIMEOUT(function(){loadTriggerExecute(scriptentry);},0);}}
function createScriptTag(scriptentry,src,type,charset,onload,scriptText){var _script_which=scriptentry[sWHICH];fSETTIMEOUT(function(){if("item"in append_to[_script_which]){if(!append_to[_script_which][0]){fSETTIMEOUT(arguments.callee,25);return;}
append_to[_script_which]=append_to[_script_which][0];}
var scriptElem=oDOC.createElement(sSCRIPT);if(typeof type==sSTRING)scriptElem.type=type;if(typeof charset==sSTRING)scriptElem.charset=charset;if(isFunc(onload)){scriptElem[sONLOAD]=scriptElem[sONREADYSTATECHANGE]=function(){onload(scriptElem,scriptentry);};scriptElem.src=src;if(is_script_async){scriptElem.async=bFALSE;}}
append_to[_script_which].insertBefore(scriptElem,(_script_which===sHEAD?append_to[_script_which].firstChild:nNULL));if(typeof scriptText==sSTRING){scriptElem.text=scriptText;handleScriptLoad(scriptElem,scriptentry,bTRUE);}},0);}
function loadScriptElem(scriptentry,src,type,charset){all_scripts[scriptentry[sSRCURI]]=bTRUE;createScriptTag(scriptentry,src,type,charset,handleScriptLoad);}
function loadScriptCache(scriptentry,src,type,charset){var args=arguments;if(first_pass&&scriptentry[sPRELOADDONE]==nNULL){scriptentry[sPRELOADDONE]=bFALSE;createScriptTag(scriptentry,src,sSCRIPTCACHE,charset,handleScriptPreload);}
else if(!first_pass&&scriptentry[sPRELOADDONE]!=nNULL&&!scriptentry[sPRELOADDONE]){scriptentry[sLOADTRIGGER]=function(){loadScriptCache.apply(nNULL,args);};}
else if(!first_pass){loadScriptElem.apply(nNULL,args);}}
function loadScriptXHR(scriptentry,src,type,charset){var args=arguments,xhr;if(first_pass&&scriptentry[sPRELOADDONE]==nNULL){scriptentry[sPRELOADDONE]=bFALSE;xhr=scriptentry.xhr=(oACTIVEX?new oACTIVEX("Microsoft.XMLHTTP"):new global.XMLHttpRequest());xhr[sONREADYSTATECHANGE]=function(){handleXHRPreload(xhr,scriptentry);};xhr.open("GET",src);xhr.send("");}
else if(!first_pass&&scriptentry[sPRELOADDONE]!=nNULL&&!scriptentry[sPRELOADDONE]){scriptentry[sLOADTRIGGER]=function(){loadScriptXHR.apply(nNULL,args);};}
else if(!first_pass){all_scripts[scriptentry[sSRCURI]]=bTRUE;createScriptTag(scriptentry,src,type,charset,nNULL,scriptentry.xhr.responseText);scriptentry.xhr=nNULL;}}
function loadScript(o){if(typeof o=="undefined"||!o)return;if(o.allowDup==nNULL)o.allowDup=opts.dupe;var src=o.src,type=o.type,charset=o.charset,allowDup=o.allowDup,src_uri=canonicalScriptURI(src,_base_path),scriptentry,same_domain=sameDomain(src_uri);if(typeof charset!=sSTRING)charset=nNULL;allowDup=!(!allowDup);if(!allowDup&&((all_scripts[src_uri]!=nNULL)||(first_pass&&scripts[src_uri])||scriptTagExists(src_uri))){if(scripts[src_uri]!=nNULL&&scripts[src_uri][sPRELOADDONE]&&!scripts[src_uri][sDONE]&&same_domain){handleScriptLoad(nNULL,scripts[src_uri],bTRUE);}
return;}
if(scripts[src_uri]==nNULL)scripts[src_uri]={};scriptentry=scripts[src_uri];if(scriptentry[sWHICH]==nNULL)scriptentry[sWHICH]=_which;scriptentry[sDONE]=bFALSE;scriptentry[sSRCURI]=src_uri;scripts_loading=bTRUE;if(!_use_script_order&&_use_xhr_preload&&same_domain)loadScriptXHR(scriptentry,src_uri,type,charset);else if(!_use_script_order&&_use_cache_preload)loadScriptCache(scriptentry,src_uri,type,charset);else loadScriptElem(scriptentry,src_uri,type,charset);}
function queueAndExecute(execBody){if(queueExec&&!_use_script_order)exec.push(execBody);if(!queueExec||_use_preload)execBody();}
function serializeArgs(args){var sargs=[],idx;for(idx=-1;++idx<args.length;){if(fOBJTOSTRING.call(args[idx])===sTYPEARRAY)sargs=sargs.concat(serializeArgs(args[idx]));else sargs[sargs.length]=args[idx];}
return sargs;}
publicAPI={script:function(){fCLEARTIMEOUT(end_of_chain_check_interval);var args=serializeArgs(arguments),use_engine=publicAPI,idx;if(_auto_wait){for(idx=-1;++idx<args.length;){if(isFunc(args[idx]))args[idx]=args[idx]();if(idx===0){queueAndExecute(function(){loadScript((typeof args[0]==sSTRING)?{src:args[0]}:args[0]);});}
else use_engine=use_engine.script(args[idx]);use_engine=use_engine.wait();}}
else{for(idx=-1;++idx<args.length;){if(isFunc(args[idx]))args[idx]=args[idx]();}
queueAndExecute(function(){for(idx=-1;++idx<args.length;){loadScript((typeof args[idx]==sSTRING)?{src:args[idx]}:args[idx]);}});}
end_of_chain_check_interval=fSETTIMEOUT(function(){first_pass=bFALSE;},5);return use_engine;},wait:function(func){fCLEARTIMEOUT(end_of_chain_check_interval);first_pass=bFALSE;if(!isFunc(func))func=fNOOP;var e=engine(queueExec||scripts_loading,opts),triggerNextChain=e.trigger,wfunc=function(){func();triggerNextChain();};delete e.trigger;var fn=function(){if(scripts_loading&&!ready)waitFunc=wfunc;else wfunc();};if(queueExec&&!scripts_loading)exec.push(fn);else queueAndExecute(fn);return e;}};if(queueExec){publicAPI.trigger=function(){var fn,idx=-1;while(fn=exec[++idx])fn();exec=[];};}
else publicAPI.trigger=fNOOP;return publicAPI;}
function processOpts(opts){var k,newOpts={},boolOpts={"UseCachePreload":"cache","UseLocalXHR":"xhr","UsePreloading":sPRELOAD,"AlwaysPreserveOrder":sPRESERVE,"AllowDuplicates":"dupe"},allOpts={"AppendTo":sWHICH,"BasePath":"base"};for(k in boolOpts)allOpts[k]=boolOpts[k];newOpts.order=!(!global_defs.order);for(k in allOpts){if(allOpts[sHASOWNPROPERTY](k)&&global_defs[allOpts[k]]!=nNULL)newOpts[allOpts[k]]=(opts[k]!=nNULL)?opts[k]:global_defs[allOpts[k]];}
for(k in boolOpts){if(boolOpts[sHASOWNPROPERTY](k))newOpts[boolOpts[k]]=!(!newOpts[boolOpts[k]]);}
if(!newOpts[sPRELOAD])newOpts.cache=newOpts.order=newOpts.xhr=bFALSE;newOpts.which=(newOpts.which===sHEAD||newOpts.which===sBODY)?newOpts.which:sHEAD;return newOpts;}
global.$LAB={setGlobalDefaults:function(gdefs){global_defs=processOpts(gdefs);},setOptions:function(opts){return engine(bFALSE,processOpts(opts));},script:function(){return engine().script.apply(nNULL,arguments);},wait:function(){return engine().wait.apply(nNULL,arguments);}};(function(addEvent,domLoaded,handler){if(oDOC[sREADYSTATE]==nNULL&&oDOC[addEvent]){oDOC[sREADYSTATE]="loading";oDOC[addEvent](domLoaded,handler=function(){oDOC.removeEventListener(domLoaded,handler,bFALSE);oDOC[sREADYSTATE]=sCOMPLETE;},bFALSE);}})("addEventListener","DOMContentLoaded");})(window);

$LAB._queue=[];$LAB.queue=function(){Array.prototype.push.apply($LAB._queue,arguments);return this;};$LAB.executeQueue=function(){var $L=$LAB;for(var i=0,len=$LAB._queue.length;i<len;i++){if(typeof $LAB._queue[0]=="string"){$L=$L.script($LAB._queue[0]);}
else if($LAB._queue[0]===false){$L=$L.wait();}
else{$L=$L.wait($LAB._queue[0]);}
$LAB._queue.shift();}
$LAB._queue=[];};

(function(global)
{var $LAB,origOnload;if(global.$LAB)
{$LAB=global.$LAB;$LAB.setGlobalDefaults({AlwaysPreserveOrder:true});origOnload=global.onload;global.onload=function()
{if(typeof origOnload==='function')
{$LAB.queue(origOnload);}
$LAB.executeQueue();}}}(window));

