/** THEORY **/ ;var theory=theory||null;if(theory){root.init()}else{ theory=(function(b,c,fn){ function theory(b,c){ var a = (function(b,c){ var a = a||theory, l = arguments.length; if(l == 1){ if(a.text.is(b)){ return a.obj.get(a,b); } } if(l == 2){ if(a.text.is(c)){ return a.obj.get(b,c); } } }); if(this && theory.bi.is(this)){ return theorize(a) } return a(b,c); } var $, _; function theorize(a){ var $=undefined,_=undefined; a.log = (function(s){ //console.log(s); return a.log; }); a.fns = (function(){ function fns($){ fns.$_ = $ !== undefined? $ : _; return fns; } var $; fns.is = (function(fn){ $ = fns.$_;fns.$_=_;fn = $||fn; return (fn instanceof Function)? true : false; }); fns.flow = (function(s,f){ // TODO: BUG: Seriously reconsider then().done() because they fail on .end() after a synchronous callback, provide no doc or support for it until you do. var t = (function(){ var args = a.list.slit.call(arguments,0), n; args.push(t); n = (function(){ (t.list[t.i++] || t.end).apply(t,args); })(); return t; }), list = a.list.is(s)? s : a.list.is(f)? f : 0; f = a.fns.is(f)? f : a.fns.is(s)? s : function(){}; t.end = list? f : function(){}; // TODO: Receives `next` as param, is this desirable? t.then = (function(fn){ if(a.fns.is(fn)){ t.list.push(fn) } return t; }); t.done = (function(fn){ t.end = a.fns.is(fn)? fn : t.end; return t; }); t.list = list || []; t.i = 0; if(list){ t() } else{ f(t) } return t; }); fns.sort = (function(args){ if(!args){ return {e:"Empty"} } var args = a.list.slit.call(args, 0), r = {b:[],n:[],t:[],l:[],o:[],f:[]}; for(var i = 0; i < args.length; i++){ if (fns.is(args[i])){ r.f.push(args[i]); } else if(a.list.is(args[i])){ r.l.push(args[i]); } else if(a.obj.is(args[i])){ r.o.push(args[i]); } else if(a.num.is(args[i])){ r.n.push(args[i]); } else if(a.text.is(args[i])){ r.t.push(args[i]); } else if(a.bi.is(args[i])){ r.b.push(args[i]); } } return r; }); fns.$ = (function(t,v){ v = t.$; t.$=_; return v; }); fns.pass = (function(fn,o){ $ = fns.$_;fns.$_=_;if($){ o=fn;fn=$ } if(a.text.is(o)){ var tmp = a(fn,o); o = fn; fn = tmp } if(!fns.is(fn)){ return _ } return (function(){ return fn.apply(o, a.list.slit.call(arguments)); }); }); return fns; })(); a.list = (function(){ function list($){ list.$ = $ !== undefined? $ : _; return list; } var $; list.is = (function(l){ l = a.fns.$(list)||l; return (l instanceof Array)? true : false; }); list.slit = Array.prototype.slice; list.at = (function(l,i,opt){ var r; if($=a.fns.$(list)){ opt=i;i=l;l=$ } if(!l||!i){ return undefined } if(a.text.is(l)){ l = l.split('') } if(i < 0){ r = l.slice().reverse(); i = Math.abs(i); } opt = opt || {}; if(opt.ebb){ for(--i; 0 <= i; i--){ // upgrade to functionalize if(r && r[i] !== undefined){ return r[i] } else if(l[i] !== undefined){ return l[i] } } return undefined; } return (r||l)[--i]; }); list.ify = (function(l,opt){ if($=a.fns.$(list)){ opt=l;l=$ } opt=opt||{}; opt.wedge = opt.wedge||':'; opt.split = opt.split||','; var r = []; if(a.list.is(l)){ return l; } else if(a.text.is(l)){ var r = new RegExp("\\s*\\"+opt.split+"\\s*",'ig'); return l.split(r); } else if(a.obj.is(l)){ a.obj(l).each(function(v,i){ r.push(i+opt.wedge+(a.obj.is(v)? a.text.ify(v) : v)); }); } return r; }); list.fuse = (function(l){ var args = a.list.slit.call(arguments, 0), ll; l = ($=a.fns.$(list))||l; ll = $? a.fns.sort(args).l : a.fns.sort(args).l.slice(1); return Array.prototype.concat.apply(l,ll); }); list.union = list.u = (function(l,ll){ //[1,2,3,4,5] u [3,5,6,7,8] = [1,2,3,4,5,6,7,8] return not_implemented_yet; if($=a.fns.$(list)){ ll=l;l=$ } // yeaaah, try again. return r; }); list.intersect = list.n = (function(l,ll){ //[1,2,3,4,5] n [3,5,6,7,8] = [3,5] return not_implemented_yet; if($=a.fns.$(list)){ ll=l;l=$ } // yeaah, try again. }); list.less = (function(l,s){ // ToDo: Add ability to use a function to determine what is removed. var args = a.list.slit.call(arguments, 0), sl = s, ls = l; l = ($=a.fns.$(list))||l; s = $? args : args.slice(1); if($ === args.length){ l=ls;s=sl } sl = s.length; return a.list(l).each(function(v,i,t){ if(1 == sl && a.test.is(v,s[0])){ return } else if(a.list(s).each(function(w,j){ if(a.test.is(v,w)){ return true } })){ return } t(v); })||[]; }); list.each = list.find = (function(l,c,t){ if($=a.fns.$(list)){ t=c;c=l;l=$ } return a.obj.each(l,c,t); }); list.copy = (function(l){ return a.obj.copy( ($=a.fns.$(list))||l ); }); list.index = 1; return list; })(); a.obj = (function(){ function obj($){ obj.$ = $ !== undefined? $ : _; return obj; } var $; obj.is = (function(o){ o = a.fns.$(obj)||o; return (o instanceof Object && !a.list.is(o) && !a.fns.is(o))? true : false; }); obj.ify = (function(o){ o = a.fns.$(obj)||o; if(a.obj.is(o)){ return o } try{ o = JSON.parse(o); }catch(e){o={}}; return o; }); obj.empty = (function(o){ if(!(o = a.fns.$(obj)||o)){ return true } return obj.each(o,function(v,i){ if(i){ return true } })? false : true; }); obj.copy = (function(o,r,l){ if(!r){ o = a.fns.$(obj) || o; } l = a.list.is(o); if(r && !a.obj.is(o) && !l){ return o } r = {}; o = a.obj.each(o,function(v,i,t){ l? t(obj.copy(v,true)) : (r[i] = obj.copy(v,true)); })||[]; return l? o : r; }); obj.union = obj.u = (function(x,y){ var args = a.list.slit.call(arguments, 0), r = {}; if($=a.fns.$(obj)){ y=x;x=$ } if(a.list.is(x)){ y = x } else if(a.list.is(y)){ } else { y = $? args : args.slice(1); y.splice(0,0,x); } a.list(y).each(function(v,i){ a.obj(v).each(function(w,j){ if(a.obj(r).has(j)){ return } r[j] = w; }); }); return r; }); obj.has = (function(o,k){ if($=a.fns.$(obj)){ k=o;o=$ } return Object.prototype.hasOwnProperty.call(o, k); }); obj.each = (function(l,c,_){ if($=a.fns.$(obj)){ _=c;c=l;l=$ } var i = 0, ii = 0, x, r, rr, f = a.fns.is(c), t = (function(k,v){ if(v !== undefined){ rr = rr || {}; rr[k] = v; return; } rr = rr || []; rr.push(k); }); if(a.list.is(l)){ x = l.length; for(;i < x; i++){ ii = (i + a.list.index); if(f){ r = _? c.call(_, l[i], ii, t) : c(l[i], ii, t); if(r !== undefined){ return r } } else { if(a.test.is(c,l[i])){ return ii } } } } else if(a.obj.is(l)){ for(i in l){ if(f){ if(a.obj(l).has(i)){ r = _? c.call(_, l[i], i, t) : c(l[i], i, t); if(r !== undefined){ return r } } } else { if(a.test.is(c,l[i])){ return i } } } } return f? rr : a.list.index? 0 : -1; }); obj.get = (function(o,l,opt,f){ if($=a.fns.$(obj)){ l=o;o=$ } if(a.num.is(l)){ l = a.text.ify(l) } if(a.list.is(l)){ l = l.join('.') } if(a.text.is(l)){ f = (l.length == (l = l.replace(a.text.find.__.fn,'')).length)? undefined : function(){}; l = l.split(a.text.find.__.dot); } if(!l){ return } var x = (l||[]).length, r, deep = (function(o,v){ return a.list(o).each(function(w,j){ if(a.obj(w||{}).has(v)){ return w } if(a.list.is(w)){ return deep(w,v) } }); }), get = (function(v,i,t,n){ if(a.list.is(o)){ if(/^\-?\d+$/.test(v)){ n = a.list.index; v = a.num.ify(v); } else { o = deep(o,v); } } if(n || a.obj(o||{}).has(v)){ o = n? a.list(o).at(v) : o[v]; if(i === x - (a.list.index? 0 : 1)){ return f? a.fns.is(o)? o : f : o; } return; } return f || a.test.nil; }); r = a.list(l).each(get); return r === a.test.nil? undefined : r; }); return obj; })(); a.text = (function(){ function text($){ text.$ = $ !== undefined? $ : _; return text; } var $; text.is = (function(t){ t = (($=a.fns.$(text))!==_)?$:t; return typeof t == 'string'?true:false; }); text.get = (function(q){ return }); text.ify = (function(t){ t = (($=a.fns.$(text))!==_)?$:t; if(JSON){ return JSON.stringify(t) } return t.toString? t.toString():t; }); text.random = text.r = (function(l,c){ if($=a.fns.$(text)){ c=l;l=$ } var $ = $||l, s = ''; l = a.num.is($)? $ : a.num.is(c)? c : 16; c = a.text.is($)? $ : a.text.is(c)? c : '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'; while(l>0){ s += c.charAt(Math.floor(Math.random()*c.length)); l-- } return s; }); text.clip = (function(t,r,s,e){ if($=a.fns.$(text)){ e=s;s=r;r=t;t=$ } // IE6 fails if e === undefined with Mocha return t = (t||'').split(r), t=a.num.is(e)?t.slice(s,e):t.slice(s), t.join(r); }); text.find = (function(t){ var regex = {}; a.log(regex.name = t.name+'.find'); regex.is = /[\.\\\?\*\[\]\{\}\(\)\^\$\+\|\,]/ig regex.special = {'.':1,'\\':1,'?':1,'*':1,'[':1,']':1,'{':1,'}':1,'(':1,')':1,'^':1,'$':1,'+':1,'|':1,',':1} regex.mail = /^(("[\w-\s]+")|([\w-]+(?:[\.\+][\w-]+)*)|("[\w-\s]+")([\w-]+(?:[\.\+][\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i; regex.base64 = new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$"); regex.list = /(,\s|;\s|,|;|\s)/ig; regex.css = /(.+?):(.+?);/ig; regex.url = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi; regex.ext = /\.([^\.]+)$/i; regex.ws_ = /\-/ig; regex.space = /\s/ig; regex.num = /(\-\d+\.\d+|\d+\.\d+|\-\d+|\d+)/g; regex['int'] = /(\-\d+|\d+)/g; regex.__ = { fn: /\-\>$/, dot: /\./ }; return regex; })(text); text.caps = (function(t){ t = a.fns.$(text)||t; t = (text.is(t))?t:""; return t.toUpperCase(); }); text.low = (function(t){ t = a.fns.$(text)||t; t = (text.is(t))?t:""; return t.toLowerCase(); }); return text; })(); a.num = (function(){ function num($){ num.$ = ($ !== undefined? $ : _); return num; } var $; num.is = (function(n){ n = (($=a.fns.$(num))!==_)?$:n; return ( (n===0)? true : (!isNaN(n) && !a.bi.is(n) && !a.list.is(n) && !a.text.is(n))? true : false); }); num.i = (function(n){return parseInt(a.fns.$(num)||n,10)}); num.dec = (function(n){return parseFloat(a.fns.$(num)||n)}); num.ify = (function(n,o){ if(($=a.fns.$(num))!==_){ o=n;n=$ } var r, l = a.list.is(o); if(a.list.is(o)){ if(a.num.is(n)){ return [n]; } if(a.text.is(n)){ r = n.match(a.text.find.num) || []; return a.list(r).each(function(v,i,t){ t(a.num.ify(v)); }); } } r = num.dec(n); if(a.num.is(r)){ return r } if(!n){ return } if(a.text.is(n)){ return a.num.ify( (n.match(a.text.find.num)||[])[0] ); } }); num.random = num.r = (function(l){ l = ((($=a.fns.$(num))!==_)?$:l)||6; if(a.list.is(l)){ return (Math.floor(Math.random() * (l[1] - l[0] + 1)) + l[0]) } l = (l<=14)? l : 14; var n = '9'; for(var i = 0; i < l-1; i++){ n += '0' } n = a.num.ify(n); var r = function(){return Math.floor(Math.random()*10)||(l==1?0:r())}; n = Math.floor(r() + Math.pow(Math.random(),Math.random()) * (n)); if(n.toString().length != l){ return num.r(l) } return n; }); return num; })(); a.bi = (function(){ function bi($){ bi.$ = $ !== undefined? $ : _; return bi; } var $; bi.is = (function(b){ b = (($=a.fns.$(bi))!==_)?$:b; return (b instanceof Boolean || typeof b == 'boolean')?true:false; }); return bi; })(); a.on = (function(){ function on($){ on.$ = $ !== undefined? $ : _; return on; } var $, events = {}, sort = (function(A,B){ if(!A || !B){ return 0 } A = A.i; B = B.i; if(A < B){ return -1 }else if(A > B){ return 1 } else { return 0 } }); on.emit = (function(){ if(!a.text.is($ = a.fns.$(on))) return; var e = events[$] = events[$] || (events[$] = []), args = arguments; if(!(events[$] = a.list(e).each(function(hear, i, t){ if(!hear.fn) return; t(hear); hear.fn.apply(hear, args); }))){ delete events[$]; } }); on.event = (function(fn, i){ if(!a.text.is($ = a.fns.$(on))) return; var $ = events[$] = events[$] || (events[$] = []) , e = {fn: fn, i: i || 0, off: function(){ return !(e.fn = false); }}; return $.push(e), $.sort(sort), e; }); return on; })(); a.time = (function(){ function time($){ time.$ = $ !== undefined? $ : _; return time; } time.is = (function(t){ t = ($=a.fns.$(time))||t; return t? t instanceof Date : (+new Date().getTime()); }); time.now = (function(){ var n = a.num.ify((a.time.is().toString())+'.'+a.num.r(4)); return (theory.time.now.last||0) < n? (theory.time.now.last = n) : time.now(); }); time.loop = (function(fn,d){ var args = a.fns.sort(a.list.slit.call(arguments, 0)); return (args.f.length)?setInterval(a.list(args.f).at(1),a.list(args.n).at(1)):_; }); time.wait = (function(fn,d){ var args = a.fns.sort(a.list.slit.call(arguments, 0)); return (args.f.length)?setTimeout(a.list(args.f).at(1),a.list(args.n).at(1)):_; }); time.stop = (function(i){ i = ($=a.fns.$(time))||i; return (clearTimeout(i)&&clearInterval(i))||true; }); return time; })(); a.com = (function($){ var com = a.com; com.$ = $ !== undefined? $ : _; com.way = com.way||$;$=_; com.queue = []; theory.com.queue = theory.com.queue||[]; com.dc = [theory.time.now()]; com.node = (function(opt){ if(!process._events){ process._events = {} } if(process.send && !process._events.theory){ process._events.theory = (function(m){ com.msg(a.obj.ify(m)); }); process.on('message',process._events.theory); process.send({onOpen:{readyState:(process.readyState = 1)},mod:module.theory[opt.way]}); com.wire = process; return; } }); com.page = (function(){ com.src = com.src||(window.location.protocol +'//'+ window.location.hostname) + ((window.location.port)?':'+window.location.port:'') + (com.path||'/com'); var municate = (function(){ if(!window.SockJS){ return } theory.com.wire = new window.SockJS(com.src); theory.com.wire.onopen = function(){ theory.com.open&&theory.com.open(); console.log("Communication initiated at "+com.src+" with "+com.wire.protocol+"."); com.drain(); }; theory.com.wire.onmessage = theory.com.municate||function(m){ var fn, m = a.obj.ify(m.data||m); if(fn = theory.com.asked[m.when]){ if(a.fns.is(fn)){ fn(m) } delete theory.com.asked[m.when]; return; } com.msg(m); }; theory.com.wire.onclose = function(m){ console.log('close'); theory.com.close&&theory.com.close(m); }; }); if(theory.com.off || root.opts.com === false){ return } if(window.SockJS){ municate(); } else { module.ajax.load(com.url||(location.local+'//cdn.sockjs.org/sockjs-0.3.min.js') ,function(d){municate()}); } }); com.drain = (function(){ while(theory.com.queue.length > 0){ com.write(theory.com.queue.shift()); } }); com.write = (function(m,c){ c = c||theory.com.wire; if(!c || c.readyState !== 1){ theory.com.queue.push(m); return; } if(a.obj.is(m)){ m = a.text(m).ify(); } //console.log("send --> "+m); c.send(m); }); com.init = (function(c){ if(root.node){ com.node({way:c}) } if(c){ return } if(root.page){ com.page() } return com; }); /** Helpers **/ com.msg = (function(m,c){ theory.obj.get(theory,theory.obj.get(m,'how.way')+'->')(m,c); }); com.ways = (function(m,w){ var way = w||a.obj.get(m,'how.way')||com.way; if($=a.fns.$(com)){ way = ($.charAt(0)=='.')?com.way+$:$; } return m = com.meta(m,way); }); com.ask = (function(m,f){ if(!a.fns.is(f)){ return } m = com.ways(m); delete m.where; theory.com.asked[m.when] = f; com.write(m); });theory.com.asked = theory.com.asked||{}; com.reply = (function(m){ m = com.ways(m); if(m.how.web){ m.how.way = 'web.reply'; } m.who = m.who||{}; m.who.to = m.who.to||m.who.tid; com.write(m); }); com.send = (function(m){ m = com.ways(m); com.write(m); }); com.meta = (function(m,opt){ if(!a.obj.is(m)){ m = {what:m} } var n = {what: (m.what = m.what||{}) }; opt = opt||{c:{}}; if(a.text.is(opt)){ opt = {w:opt,c:{}} } if(opt.protocol){ opt.c = opt } a.obj(m).each(function(v,i){ if( i == 'how' || i == 'who' || i == 'what' || i == 'when'|| i == 'where'){ return } n.what[i] = m.what[i] = v; delete m[i]; }); if(!m.how){ n.how={way: opt.w||com.way} }else{ n.how = m.how; n.how.way = opt.w||m.how.way||com.way; delete m.how; } m.how = n.how; if(!m.when){ n.when=a.time.now() }else{ n.when = m.when; delete m.when; } m.when = n.when; if(!m.who){ if(root.page && !com.who){ n.who = { tid: (com.who=root.who) } } if(root.node){ n.who = {} } }else{ if(a.obj.is(m.who)){ n.who=m.who }else{ n.who = {to: m.who} } if(root.node){ } if(root.page && !com.who){ n.who.tid = com.who = root.who; } delete m.who; } m.who = n.who; if(!m.where){ if(root.page){ if(a.text.is(m.where)){}else{}; } if(root.node){ n.where={pid: process.pid} } }else{ if(a.obj.is(m.where)){ n.where = m.where }else{ n.where = {at: m.where}; } if(root.node){ if(!a.obj(m.where).has('pid')){ n.where.pid=process.pid } } delete m.where; } m.where = n.where; return n; }); /** END HELPERS **/ return com; }); a.test = (function(){ function test($){ if($===undefined && a.fns.is(test.$)){ try{return test.$()}catch(e){return e} } test.$ = arguments.length? $ : test.nil; return test; } test.nil = test.$ = 'ThEoRy.TeSt.NiL-VaLuE'; test._ = (function(r){ r = a.fns.$(test); test.$ = test.nil; return r; }); test.of = (function(t,f){ if(($=test._()) !== test.nil){ f=t;t=$ } return t instanceof f; }); test.is = (function(a, b, aStack, bStack){ // modified Underscore's to fix flaws if(($=test._()) !== test.nil){ b=a;a=$ } var _ = {isFunction:theory.fns.is ,has:theory.obj.has}, eq = test.is; aStack = aStack||[]; bStack = bStack||[]; // Identical objects are equal. `0 === -0`, but they aren't identical. if(a === b){ return a !== 0 || 1 / a == 1 / b } if(a == null || b == null){ return a === b } var className = Object.prototype.toString.apply(a); if(className != Object.prototype.toString.apply(b)){ return false } switch(className){ case '[object String]': return a == String(b); case '[object Number]': return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b); case '[object Function]': return a.name === b.name && a.toString() === b.toString(); case '[object Date]': case '[object Boolean]': return +a == +b; case '[object RegExp]': return a.source == b.source && a.global == b.global && a.multiline == b.multiline && a.ignoreCase == b.ignoreCase; } if(typeof a != 'object' || typeof b != 'object'){ return false } var length = aStack.length; while(length--){ if(aStack[length] == a){ return bStack[length] == b} } aStack.push(a); bStack.push(b); var size = 0, result = true; if(className == '[object Array]'){ size = a.length; result = size == b.length; if(result){ while(size--){ if(!(result = eq(a[size], b[size], aStack, bStack))){ break } } } }else{ var aCtor = a.constructor, bCtor = b.constructor; if(aCtor !== bCtor && !(_.isFunction(aCtor) && (aCtor instanceof aCtor) && _.isFunction(bCtor) && (bCtor instanceof bCtor))){ return false } for(var key in a){ if(_.has(a, key)){ size++; if(!(result = _.has(b, key) && eq(a[key], b[key], aStack, bStack))){ break } } } if(result){ for(key in b){ if(_.has(b, key) && !(size--)){ break } } result = !size; } } aStack.pop(); bStack.pop(); return result; }); return test; })(); return a; } theory.Name = 'theory'; theory.version = 2.5; theorize(theory); return theory; })(true); /** BASE **/ (function(r){ var root = root||{}, a = theory; root.opts = root.opts || {}; root.deps = {loaded:{},alias:{},all:{},wait:{}}; root.pollute = ((typeof GLOBAL !== 'undefined' && GLOBAL.global && GLOBAL.process && GLOBAL.process.env && GLOBAL.process.pid && GLOBAL.process.execPath)? (function(){ global.node = root.node = true; global.opts = root.opts; global.theory = theory; module.theory = module.theory||{} process.env.totheory = __filename; if(process.env.NODE_ENV==='production'){process.env.LIVE = true}; module.path = require('path'); require.sep = module.path.sep; module.exports=(function(cb,deps,name){ if(!arguments.length) return theory; var args = a.fns.sort(a.list.slit.call(arguments, 0)), r ,m = util.require.apply({},arguments); args.file = root.submodule||(module.parent||{}).filename; global.aname = global.aname||m.name; a.obj(util.deps(m.dependencies,{flat:{},src:args.file})).each(function(name,path){ var p = require(root.submodule=path=util.resolve(path,path)); m.theory[name] = (theory.obj.is(p) && theory.obj.empty(p))? undefined : p; }); module.theory[m.name] = a.obj.ify(a.text.ify(m)); var mod = (theory[m.name] = m.init(m.theory)); if(global.aname === m.name && theory.com) theory.com(theory.Name).init(m.name); return mod; }); return; }) : (function(){ root = window.root = window.root||root; root.page = true; root.who = root.who||a.list((document.cookie+';').match(/tid=(.+?);/)||[]).at(-1)||''; window.console = window.console||{log:function(s){return s}}; console.saw = (function(s){console.log(a.text(s).ify())}); location.local=(location.protocol==='file:'?'http:':''); var noConflict={__dirname: window.__dirname,module:window.module,exports:window.exports,require:window.require}; window.__dirname = ''; window.module = {exports: (window.exports = {})}; window.module.ajax = {load:(function(b,c){ var d=document,j="script",s=d.createElement(j); module.sync=(s.onload===null||!s.readyState)?0:1; // IE6+ var e=2166136261,g=b.length,h=c,i=/=\?/,w=window.setTimeout,x,y,a=function(z){ document.body&&(z=z||x)&&s&&document.body[z]?document.body[y=z](s):w(a,0); };if(i.test(b)){for(;g--;)e=e*16777619^b.charCodeAt(g); window[j+=e<0?-e:e]=function(){h.apply(h,arguments);delete window[j]};b=b.replace(i,"="+j);c=0 };s.onload=s.onreadystatechange=function(){if(y&&/de|m/.test(s.readyState||"m")){ c&&c();a(x='removeChild');try{for(c in s)delete s[c]}catch(b){} }};s.src=b;c&&a(x='appendChild'); })};module.ajax.load('#'); window.module.ajax.code = util.load; window.onerror = (function(e,w,l){ console.log(e + " at line "+ l +" on "+ w); //if(theory.com){ theory.com.send({e:e,url:w,line:l}) } }); window.require = module.require = function require(p){ if(!p){ return require } if(util.stripify(p) == util.stripify(theory.Name)){ return util.require; } var fn, c = 0, cb = function(f){ fn = f; }; theory.list((p = theory.list.is(p)? p : [p])).each(function(v){ window.module.ajax.code(v,function(d){++c && (p.length <= c) && fn && fn(d)}); }); return cb; }; window.require.sep = '/'; require.resolve = util.resolve; require.cache = {}; util.init(); if(root.opts.amd === false){theory.obj(noConflict).each(function(v,i){window[i]=v});} if(theory.com){ theory.com(theory.Name).init() } }) ); var util = {}; util.theorize = (function(mod){ mod.theory = theory.call(true); if(mod.theory.com){ mod.theory.com(mod.name) } return mod.theory; }); util.require = (function(){ var mod, args = a.fns.sort(a.list.slit.call(arguments,0)) , fail = {name:'fail',init:(function(){console.log('module failed to load')})}; if(args.o.length === 1 && !args.t.length && !args.l.length){ mod = a.list(args.o).at(1); } else { if(args.f.length){ mod = { name: a.list(args.t).at(1) ,init: a.list(args.f).at(1) ,dependencies: a.list(args.l).at(1) || a.list(args.o).at(1) } } } mod.name = mod.name||fail.name; mod.init = mod.init||mod.main||mod.start||mod.boot||mod.cb||mod.fn||fail.init; mod.dependencies = mod.dependencies||mod.require||mod.deps||mod.dep; mod.dependencies = a.list.is(mod.dependencies)? a.list(mod.dependencies).each(function(v,i,t){t(v,1)}) : mod.dependencies; mod.theory = util.theorize(mod); if(root.node){ return mod } args = {cb:function(p, opt){ if(args.launched || a.list(util.deps(mod.dependencies,{flat:{}})).each(function(v,j){ if(!(i = root.deps.loaded[j])){ return true } if(i === 2){ return true } if(i && i.launch && a.text.is(v) && mod.theory[v] === undefined){ mod.theory[v] = i.launch; } })){ return } args.on.off(); args.launched = {launch: (theory[mod.name] = mod.init(mod.theory||theory)), n:mod.name}; module.exports = exports = args.launched.launch; if(mod.src){ root.deps.loaded[mod.src] = args.launched; theory.on('ThEoRy_DePs').emit(); } return args.launched.launch; }}; args.on = theory.on('ThEoRy_DePs').event(args.cb); args.start = function(){util.deps(mod.dependencies,args); return args.cb()} args.name = function(src){ module.on = args.name = false; root.deps.alias[args.src = mod.src = src] = mod.name; if((root.deps.all[src] = mod.dependencies)){ root.deps.loaded[src] = 2; } if(!window.JSON){module.ajax.load(root.opts.JSON||location.local // JSON shim when needed +"//ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js",args.start) } else { return args.start() }; }; module.on = (!(require||{}).ing)? args.name(util.src(1))||false : args.name; }); util.deps = (function(deps, opt){ opt = opt || {}; a.obj(deps).each(function(v,i){ var path = i, dopt = {p:i}; if(opt.src){ delete deps[i]; deps[path = util.resolve(opt.src, util.pathify(path))] = v; } if(a.list.is(v)){ delete deps[i]; v = deps[path] = a.list(v).each(function(w,i,t){t(util.resolve(opt.src,util.pathify(w)),1)}) } if(a.obj.is(v)){ dopt.defer = v; opt.flat && util.deps(v,{flat: opt.flat}); } if(v && a.text.is(v)){ dopt.name = v; } if(opt.flat){ var url = util.urlify(util.pathify(path)); if((i = opt.flat[url]) && i !== 1){ return } opt.flat[url] = (opt.sub? 1 : dopt.name) || util.stripify(path); if(i !== 1 && url && a.text.is(url) && (v = root.deps.all[url])){ (a.obj.is(v) || a.list.is(v)) && util.deps(v,{flat: opt.flat, sub:1}); } return; } return util.load(path, dopt); }); return opt.flat; }); util.urlify = (function(url){ // via SO, IE6+ safe if(!root.page){ return url; } var el= document.createElement('div'); el.innerHTML= 'x'; return el.firstChild.href; }); util.pathify = (function(p){ if(!root.page){ return p; } return p = (/\.js$/i.test(p))? p : p+'.js'; }); util.stripify = (function(p){ if(!a.text.is(p)){ return ''; } p=p.replace(/^\./,''); return (p.split(require.sep).reverse()[0]).replace(/\.js$/i,''); }); util.resolve = (function(p1, p2){ // via browserify if('.' != p2.charAt(0)){ return p2.replace('/',require.sep) } var path = p1.replace('/',require.sep).split(require.sep) , segs = p2.replace('/',require.sep).split(require.sep) path.pop(); for(var i=0;i