remove lab.js since it is not used at the moment

This commit is contained in:
Fabian Jakobs 2010-04-28 11:25:27 +02:00
commit 0f1f666672
2 changed files with 0 additions and 193 deletions

View file

@ -1,2 +0,0 @@
// LAB.js (LABjs :: Loading And Blocking JavaScript) | v1.0.2rc1 (c) Kyle Simpson | MIT License
(function(j){var p="string",w="head",H="body",Y="script",t="readyState",k="preloaddone",y="loadtrigger",I="srcuri",D="preload",Z="complete",z="done",A="which",J="preserve",E="onreadystatechange",ba="onload",K="hasOwnProperty",bb="script/cache",L="[object ",bv=L+"Function]",bw=L+"Array]",e=null,h=true,i=false,s=j.document,bx=j.location,bc=j.ActiveXObject,B=j.setTimeout,bd=j.clearTimeout,M=function(a){return s.getElementsByTagName(a)},N=Object.prototype.toString,O=function(){},q={},P={},be=/^[^?#]*\//.exec(bx.href)[0],bf=/^\w+\:\/\/\/?[^\/]+/.exec(be)[0],by=M(Y),bg=j.opera&&N.call(j.opera)==L+"Opera]",bh=(function(a){a[a]=a+"";return a[a]!=a+""})(new String("__count__")),u={cache:!(bh||bg),order:bh||bg,xhr:h,dupe:h,base:"",which:w};u[J]=i;u[D]=h;q[w]=M(w);q[H]=M(H);function Q(a){return N.call(a)===bv}function R(a,b){var c=/^\w+\:\/\//,d;if(typeof a!==p)a="";if(typeof b!==p)b="";d=(c.test(a)?"":b)+a;return((c.test(d)?"":(d.charAt(0)==="/"?bf:be))+d)}function bz(a){return(R(a).indexOf(bf)===0)}function bA(a){var b,c=-1;while(b=by[++c]){if(typeof b.src===p&&a===R(b.src)&&b.type!==bb)return h}return i}function F(v,l){v=!(!v);if(l==e)l=u;var bi=i,C=v&&l[D],bj=C&&l.cache,G=C&&l.order,bk=C&&l.xhr,bB=l[J],bC=l.which,bD=l.base,bl=O,S=i,x,r=h,m={},T=[],U=e;C=bj||bk||G;function bm(a,b){if((a[t]&&a[t]!==Z&&a[t]!=="loaded")||b[z]){return i}a[ba]=a[E]=e;return h}function V(a,b,c){c=!(!c);if(!c&&!(bm(a,b)))return;b[z]=h;for(var d in m){if(m[K](d)&&!(m[d][z]))return}bi=h;bl()}function bn(a){if(Q(a[y])){a[y]();a[y]=e}}function bE(a,b){if(!bm(a,b))return;b[k]=h;B(function(){q[b[A]].removeChild(a);bn(b)},0)}function bF(a,b){if(a[t]===4){a[E]=O;b[k]=h;B(function(){bn(b)},0)}}function W(b,c,d,g,f,n){var o=b[A];B(function(){if("item"in q[o]){if(!q[o][0]){B(arguments.callee,25);return}q[o]=q[o][0]}var a=s.createElement(Y);a.type=d;if(typeof g===p)a.charset=g;if(Q(f)){a[ba]=a[E]=function(){f(a,b)};a.src=c}q[o].insertBefore(a,(o===w?q[o].firstChild:e));if(typeof n===p){a.text=n;V(a,b,h)}},0)}function bo(a,b,c,d){P[a[I]]=h;W(a,b,c,d,V)}function bp(a,b,c,d){var g=arguments;if(r&&a[k]==e){a[k]=i;W(a,b,bb,d,bE)}else if(!r&&a[k]!=e&&!a[k]){a[y]=function(){bp.apply(e,g)}}else if(!r){bo.apply(e,g)}}function bq(a,b,c,d){var g=arguments,f;if(r&&a[k]==e){a[k]=i;f=a.xhr=(bc?new bc("Microsoft.XMLHTTP"):new j.XMLHttpRequest());f[E]=function(){bF(f,a)};f.open("GET",b);f.send("")}else if(!r&&a[k]!=e&&!a[k]){a[y]=function(){bq.apply(e,g)}}else if(!r){P[a[I]]=h;W(a,b,c,d,e,a.xhr.responseText);a.xhr=e}}function br(a){if(a.allowDup==e)a.allowDup=l.dupe;var b=a.src,c=a.type,d=a.charset,g=a.allowDup,f=R(b,bD),n,o=bz(f);if(typeof c!==p)c="text/javascript";if(typeof d!==p)d=e;g=!(!g);if(!g&&((P[f]!=e)||(r&&m[f])||bA(f))){if(m[f]!=e&&m[f][k]&&!m[f][z]&&o){V(e,m[f],h)}return}if(m[f]==e)m[f]={};n=m[f];if(n[A]==e)n[A]=bC;n[z]=i;n[I]=f;S=h;if(!G&&bk&&o)bq(n,f,c,d);else if(!G&&bj)bp(n,f,c,d);else bo(n,f,c,d)}function bs(a){T.push(a)}function X(a){if(v&&!G)bs(a);if(!v||C)a()}function bt(a){var b=[],c;for(c=-1;++c<a.length;){if(N.call(a[c])===bw)b=b.concat(bt(a[c]));else b[b.length]=a[c]}return b}x={script:function(){bd(U);var a=bt(arguments),b=x,c;if(bB){for(c=-1;++c<a.length;){if(c===0){X(function(){br((typeof a[0]===p)?{src:a[0]}:a[0])})}else b=b.script(a[c]);b=b.wait()}}else{X(function(){for(c=-1;++c<a.length;){br((typeof a[c]===p)?{src:a[c]}:a[c])}})}U=B(function(){r=i},5);return b},wait:function(a){bd(U);r=i;if(!Q(a))a=O;var b=F(h,l),c=b.trigger,d=function(){try{a()}catch(err){}c()};delete b.trigger;var g=function(){if(S&&!bi)bl=d;else d()};if(v&&!S)bs(g);else X(g);return b}};x.block=x.wait;if(v){x.trigger=function(){var a,b=-1;while(a=T[++b])a();T=[]}}return x}function bu(a){var b,c={},d={"UseCachePreload":"cache","UseLocalXHR":"xhr","UsePreloading":D,"AlwaysPreserveOrder":J,"AllowDuplicates":"dupe"},g={"AppendTo":A,"BasePath":"base"};for(b in d)g[b]=d[b];c.order=!(!u.order);for(b in g){if(g[K](b)&&u[g[b]]!=e)c[g[b]]=(a[b]!=e)?a[b]:u[g[b]]}for(b in d){if(d[K](b))c[d[b]]=!(!c[d[b]])}if(!c[D])c.cache=c.order=c.xhr=i;c.which=(c.which===w||c.which===H)?c.which:w;return c}j.$LAB={setGlobalDefaults:function(a){u=bu(a)},setOptions:function(a){return F(i,bu(a))},script:function(){return F().script.apply(e,arguments)},wait:function(){return F().wait.apply(e,arguments)}};j.$LAB.block=j.$LAB.wait;(function(a,b,c){if(s[t]==e&&s[a]){s[t]="loading";s[a](b,c=function(){s.removeEventListener(b,c,i);s[t]=Z},i)}})("addEventListener","DOMContentLoaded")})(window);

View file

@ -1,191 +0,0 @@
// fLAB.js (file:// protocol adapter for LABjs 1.0+)
// v0.2 (c) Kyle Simpson
// MIT License
(function(global){
var orig_$LAB = global.$LAB,
oDOC = global.document,
oDOCLOC = oDOC.location,
local_filesystem = (oDOCLOC.protocol === "file:")
;
if (!orig_$LAB || !local_filesystem) return; // only adapt LABjs with fLABjs wrapper if LABjs exists and we're currently in local filesystem
var sUNDEF = "undefined", // constants used for compression optimization
sSTRING = "string",
sHEAD = "head",
sBODY = "body",
sFUNCTION = "function",
sSCRIPT = "script",
sSRCURI = "srcuri",
sDONE = "done",
sWHICH = "which",
bTRUE = true,
bFALSE = false,
fSETTIMEOUT = global.setTimeout,
fGETELEMENTSBYTAGNAME = function(tn){return oDOC.getElementsByTagName(tn);},
fOBJTOSTRING = Object.prototype.toString,
fNOOP = function(){},
append_to = {},
all_scripts = {},
PAGEROOT = /^[^?#]*\//.exec(oDOCLOC.href)[0],
DOCROOT = /^file:\/\/(localhost)?(\/[a-z]:)?/i.exec(PAGEROOT)[0],
docScripts = fGETELEMENTSBYTAGNAME(sSCRIPT),
is_ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
sync_script_loading = is_ie, // only IE is currently known to do synchronous loading of file:// scripts, others require core LABjs async functionality
global_defs = {
dupe:bFALSE, // allow duplicate scripts?
preserve:bFALSE, // preserve execution order of all loaded scripts (regardless of preloading)
base:"", // base path to prepend to all non-absolute-path scripts
which:sHEAD // which DOM object ("head" or "body") to append scripts to
}
;
append_to[sHEAD] = fGETELEMENTSBYTAGNAME(sHEAD);
append_to[sBODY] = fGETELEMENTSBYTAGNAME(sBODY);
function canonicalScriptURI(src,base_path) {
if (typeof src !== sSTRING) src = "";
if (typeof base_path !== sSTRING) base_path = "";
var ret = (/^file\:\/\//.test(src) ? "" : base_path) + src;
return ((/^file\:\/\//.test(ret) ? "" : (ret.charAt(0) === "/" ? DOCROOT : PAGEROOT)) + ret);
}
function scriptTagExists(uri) { // checks if a script uri has ever been loaded into this page's DOM
var i = 0, script;
while (script = docScripts[i++]) {
if (typeof script.src === sSTRING && uri === canonicalScriptURI(script.src)) return bTRUE;
}
return bFALSE;
}
function engine(opts) {
if (typeof opts === sUNDEF) opts = global_defs;
var ready = bFALSE,
_which = opts.which,
_base_path = opts.base,
waitFunc = fNOOP,
scripts_loading = bFALSE,
publicAPI,
scripts = {},
orig_engine = null
;
function createScriptTag(scriptentry,src,type,charset) {
if (append_to[scriptentry[sWHICH]][0] === null) { // append_to object not yet ready
fSETTIMEOUT(arguments.callee,25);
return;
}
var scriptElem = oDOC.createElement(sSCRIPT), fSETATTRIBUTE = function(attr,val){scriptElem.setAttribute(attr,val);};
fSETATTRIBUTE("type",type);
if (typeof charset === sSTRING) fSETATTRIBUTE("charset",charset);
fSETATTRIBUTE("src",src);
append_to[scriptentry[sWHICH]][0].appendChild(scriptElem);
}
function loadScript(o) {
if (typeof o.allowDup === sUNDEF) o.allowDup = opts.dupe;
var src = o.src, type = o.type, charset = o.charset, allowDup = o.allowDup,
src_uri = canonicalScriptURI(src,_base_path), scriptentry;
if (typeof type !== sSTRING) type = "text/javascript";
if (typeof charset !== sSTRING) charset = null;
allowDup = !(!allowDup);
if (!allowDup &&
(
(typeof all_scripts[src_uri] !== sUNDEF && all_scripts[src_uri] !== null) ||
scriptTagExists(src_uri)
)
) {
return;
}
if (typeof scripts[src_uri] === sUNDEF) scripts[src_uri] = {};
scriptentry = scripts[src_uri];
if (typeof scriptentry[sWHICH] === sUNDEF) scriptentry[sWHICH] = _which;
scriptentry[sDONE] = bFALSE;
scriptentry[sSRCURI] = src_uri;
scripts_loading = bTRUE;
all_scripts[scriptentry[sSRCURI]] = bTRUE;
createScriptTag(scriptentry,src_uri,type,charset);
}
function serializeArgs(args) {
var sargs = [], i;
for (i=0; i<args.length; i++) {
if (fOBJTOSTRING.call(args[i]) === "[object Array]") sargs = sargs.concat(serializeArgs(args[i]));
else sargs[sargs.length] = args[i];
}
return sargs;
}
publicAPI = {
script:function() {
var args = serializeArgs(arguments), use_engine, i;
for (i=0; i<args.length; i++) {
if (typeof args[i] === sSTRING) args[i] = {src:canonicalScriptURI(args[i])};
else if (typeof args[i].src !== sUNDEF) args[i].src = canonicalScriptURI(args[i].src);
}
if (sync_script_loading) { // handle without core LABjs since we're sync loading
use_engine = publicAPI;
for (i=0; i<args.length; i++) loadScript(args[i]);
}
else { // pass off to core LABjs to handle async loading
if (orig_engine === null) orig_engine = orig_$LAB.setOptions(opts.pubMap);
use_engine = orig_engine = orig_engine.script.apply(null,args);
}
return use_engine;
},
wait:function(func) {
var use_engine;
if (typeof func !== sFUNCTION) func = fNOOP;
if (sync_script_loading) { // execute immediately since we're sync loading
use_engine = publicAPI;
fSETTIMEOUT(func,0);
}
else { // pass off to core LABjs to handle since we're async loading
if (orig_engine === null) orig_engine = orig_$LAB.setOptions(opts.pubMap);
use_engine = orig_engine = orig_engine.wait(func);
}
return use_engine;
}
};
publicAPI.block = publicAPI.wait; // alias "block" to "wait" -- "block" is now deprecated
return publicAPI;
}
function processOpts(opts) {
var k, newOpts = {},
boolOpts = {"AlwaysPreserveOrder":"preserve","AllowDuplicates":"dupe"},
allOpts = {"AppendTo":"which","BasePath":"base"}
;
for (k in boolOpts) allOpts[k] = boolOpts[k];
for (k in allOpts) {
if (allOpts.hasOwnProperty(k) && typeof global_defs[allOpts[k]] !== sUNDEF) newOpts[allOpts[k]] = (typeof opts[k] !== sUNDEF) ? opts[k] : global_defs[allOpts[k]];
}
for (k in boolOpts) { // normalize bool props to actual boolean values if not already
if (boolOpts.hasOwnProperty(k)) newOpts[boolOpts[k]] = !(!newOpts[boolOpts[k]]);
}
newOpts.preload = newOpts.cache = newOpts.order = newOpts.xhr = bFALSE; // don't use any preloading techniques if working in file:///
newOpts.which = (newOpts.which === sHEAD || newOpts.which === sBODY) ? newOpts.which : sHEAD;
newOpts.pubMap = {};
for (k in allOpts) {
if (allOpts.hasOwnProperty(k)) newOpts.pubMap[k] = newOpts[allOpts[k]]; // create a hash of reverse mappings back to the public names, suitable to pass along to orig_$LAB.setOptions()
}
return newOpts;
}
global.$LAB = {
setGlobalDefaults:function(gdefs) { // intentionally does not return an "engine" instance -- must call as stand-alone function call on $LAB
global_defs = processOpts(gdefs);
},
setOptions:function(opts){ // set options per chain
return engine(processOpts(opts));
},
script:function(){ // will load one or more scripts
return engine().script.apply(null,arguments);
},
wait:function(){ // will ensure that the chain's previous scripts are executed before execution of scripts in subsequent chain links
return engine().wait.apply(null,arguments);
}
};
global.$LAB.block = global.$LAB.wait; // alias "block" to "wait" -- "block" is now deprecated
})(window);