# # # patch "ChangeLog" # from [015d7db885438b0af94e61594203f362e26735f6] # to [cbd1cfd71cca451ae75ac83a6315f783f1422de6] # # patch "static/MochiKit/MochiKit.js" # from [b2e5faf9283ed95c29bc154751b681e1ae82ed10] # to [32da8c6070b029251ef51bc3097460f296bcf7a1] # # patch "static/viewmtn.js" # from [0a5db3bc129d2c2a96cdbed2fb35dc7e065cfc17] # to [5ea878eedde809bf77a05cb33a4ed3277f4c93bc] # # patch "viewmtn.py" # from [a9a27961ccedb3d13dfd697b4c355d3c1ebba32d] # to [da104e5b02b48460051a6371cc78a0b71dcc9083] # ============================================================ --- ChangeLog 015d7db885438b0af94e61594203f362e26735f6 +++ ChangeLog cbd1cfd71cca451ae75ac83a6315f783f1422de6 @@ -1,5 +1,20 @@ 2007-03-30 Grahame Bowland + * upgrade to MochiKit development version (today's + subversion trunk) to resolve issues with Opera and + the elementPosition method. + * rework the javascript / JSON RPC popup code; + introduce one-second delay to dampen requests, + mouse must hover for one second over something + before a JSON request is actually made. + * fix problem where branchse with no heads got a + silly "branch changed by undefined" message + * clean up the logic of viewmtn.js, cancel + outstanding requests and correctly track + boundTo. + +2007-03-30 Grahame Bowland + * upgrade to web.py 0.2 2007-03-30 Grahame Bowland ============================================================ --- static/MochiKit/MochiKit.js b2e5faf9283ed95c29bc154751b681e1ae82ed10 +++ static/MochiKit/MochiKit.js 32da8c6070b029251ef51bc3097460f296bcf7a1 @@ -1,6 +1,6 @@ /*** - MochiKit.MochiKit 1.3.1 : PACKED VERSION + MochiKit.MochiKit 1.4 : PACKED VERSION THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please diff against the source tree, not this file. @@ -20,7 +20,10 @@ MochiKit.Base={}; if(typeof (MochiKit.Base)=="undefined"){ MochiKit.Base={}; } -MochiKit.Base.VERSION="1.3.1"; +if(typeof (MochiKit.__export__)=="undefined"){ +MochiKit.__export__=(MochiKit.__compat__||(typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")); +} +MochiKit.Base.VERSION="1.4"; MochiKit.Base.NAME="MochiKit.Base"; MochiKit.Base.update=function(_1,_2){ if(_1===null){ @@ -40,6 +43,13 @@ return this.__repr__(); return "["+this.NAME+" "+this.VERSION+"]"; },toString:function(){ return this.__repr__(); +},camelize:function(_6){ +var _7=_6.split("-"); +var cc=_7[0]; +for(var i=1;i<_7.length;i++){ +cc+=_7[i].charAt(0).toUpperCase()+_7[i].substring(1); +} +return cc; },counter:function(n){ if(arguments.length===0){ n=1; @@ -47,30 +57,42 @@ return n++; return function(){ return n++; }; -},clone:function(_7){ +},clone:function(_b){ var me=arguments.callee; if(arguments.length==1){ -me.prototype=_7; +me.prototype=_b; return new me(); } -},flattenArguments:function(_9){ +},_flattenArray:function(_d,_e){ +for(var i=0;i<_e.length;i++){ +var o=_e[i]; +if(o instanceof Array){ +arguments.callee(_d,o); +}else{ +_d.push(o); +} +} +return _d; +},flattenArray:function(lst){ +return MochiKit.Base._flattenArray([],lst); +},flattenArguments:function(lst){ var res=[]; var m=MochiKit.Base; -var _12=m.extend(null,arguments); -while(_12.length){ -var o=_12.shift(); +var _15=m.extend(null,arguments); +while(_15.length){ +var o=_15.shift(); if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){ for(var i=o.length-1;i>=0;i--){ -_12.unshift(o[i]); +_15.unshift(o[i]); } }else{ res.push(o); } } return res; -},extend:function(_13,obj,_15){ -if(!_15){ -_15=0; +},extend:function(_18,obj,_1a){ +if(!_1a){ +_1a=0; } if(obj){ var l=obj.length; @@ -82,68 +104,74 @@ throw new TypeError("Argument not an arr throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); } } -if(!_13){ -_13=[]; +if(!_18){ +_18=[]; } -for(var i=_15;il){ -_41=l; +if(_90===null||_90>l){ +_90=l; } } -_40=[]; -for(i=0;i<_41;i++){ -var _42=[]; +_8e=[]; +for(i=0;i<_90;i++){ +var _92=[]; for(var j=1;j=0;i--){ +_af=[_ab[i].apply(this,_af)]; +} +return _af[0]; +}; +},bind:function(_b1,_b2){ +if(typeof (_b1)=="string"){ +_b1=_b2[_b1]; +} +var _b3=_b1.im_func; +var _b4=_b1.im_preargs; +var _b5=_b1.im_self; var m=MochiKit.Base; -if(typeof (_51)=="function"&&typeof (_51.apply)=="undefined"){ -_51=m._wrapDumbFunction(_51); +if(typeof (_b1)=="function"&&typeof (_b1.apply)=="undefined"){ +_b1=m._wrapDumbFunction(_b1); } -if(typeof (_53)!="function"){ -_53=_51; +if(typeof (_b3)!="function"){ +_b3=_b1; } -if(typeof (_52)!="undefined"){ -_55=_52; +if(typeof (_b2)!="undefined"){ +_b5=_b2; } -if(typeof (_54)=="undefined"){ -_54=[]; +if(typeof (_b4)=="undefined"){ +_b4=[]; }else{ -_54=_54.slice(); +_b4=_b4.slice(); } -m.extend(_54,arguments,2); -var _56=function(){ -var _57=arguments; +m.extend(_b4,arguments,2); +var _b7=function(){ +var _b8=arguments; var me=arguments.callee; if(me.im_preargs.length>0){ -_57=m.concat(me.im_preargs,_57); +_b8=m.concat(me.im_preargs,_b8); } -var _52=me.im_self; -if(!_52){ -_52=this; +var _ba=me.im_self; +if(!_ba){ +_ba=this; } -return me.im_func.apply(_52,_57); +return me.im_func.apply(_ba,_b8); }; -_56.im_self=_55; -_56.im_func=_53; -_56.im_preargs=_54; -return _56; -},bindMethods:function(_58){ -var _59=MochiKit.Base.bind; -for(var k in _58){ -var _60=_58[k]; -if(typeof (_60)=="function"){ -_58[k]=_59(_60,_58); +_b7.im_self=_b5; +_b7.im_func=_b3; +_b7.im_preargs=_b4; +return _b7; +},bindMethods:function(_bb){ +var _bc=MochiKit.Base.bind; +for(var k in _bb){ +var _be=_bb[k]; +if(typeof (_be)=="function"){ +_bb[k]=_bc(_be,_bb); } } -},registerComparator:function(_61,_62,_63,_64){ -MochiKit.Base.comparatorRegistry.register(_61,_62,_63,_64); +},registerComparator:function(_bf,_c0,_c1,_c2){ +MochiKit.Base.comparatorRegistry.register(_bf,_c0,_c1,_c2); },_primitives:{"boolean":true,"string":true,"number":true},compare:function(a,b){ if(a==b){ return 0; } -var _65=(typeof (a)=="undefined"||a===null); -var _66=(typeof (b)=="undefined"||b===null); -if(_65&&_66){ +var _c5=(typeof (a)=="undefined"||a===null); +var _c6=(typeof (b)=="undefined"||b===null); +if(_c5&&_c6){ return 0; }else{ -if(_65){ +if(_c5){ return -1; }else{ -if(_66){ +if(_c6){ return 1; } } } var m=MochiKit.Base; -var _67=m._primitives; -if(!(typeof (a) in _67&&typeof (b) in _67)){ +var _c8=m._primitives; +if(!(typeof (a) in _c8&&typeof (b) in _c8)){ try{ return m.comparatorRegistry.match(a,b); } @@ -481,31 +544,31 @@ return 1; return 1; } } -var _68=m.repr; -throw new TypeError(_68(a)+" and "+_68(b)+" can not be compared"); +var _c9=m.repr; +throw new TypeError(_c9(a)+" and "+_c9(b)+" can not be compared"); },compareDateLike:function(a,b){ return MochiKit.Base.compare(a.getTime(),b.getTime()); },compareArrayLike:function(a,b){ -var _69=MochiKit.Base.compare; -var _70=a.length; -var _71=0; -if(_70>b.length){ -_71=1; -_70=b.length; +var _ce=MochiKit.Base.compare; +var _cf=a.length; +var _d0=0; +if(_cf>b.length){ +_d0=1; +_cf=b.length; }else{ -if(_70=0;i--){ +sum+=o[i]; +} +}else{ +sum+=o; +} +} +if(_113<=0){ +throw new TypeError("mean() requires at least one argument"); +} +return sum/_113; +},median:function(){ +var data=MochiKit.Base.flattenArguments(arguments); +if(data.length===0){ +throw new TypeError("median() requires at least one argument"); +} +data.sort(compare); +if(data.length%2==0){ +var _117=data.length/2; +return (data[_117]+data[_117-1])/2; +}else{ +return data[(data.length-1)/2]; +} +},findValue:function(lst,_119,_11a,end){ if(typeof (end)=="undefined"||end===null){ end=lst.length; } +if(typeof (_11a)=="undefined"||_11a===null){ +_11a=0; +} var cmp=MochiKit.Base.compare; -for(var i=(_105||0);i0))){ -var kv=MochiKit.DOM.formContents(_113); -_113=kv[0]; -_114=kv[1]; +},queryString:function(_127,_128){ +if(typeof (MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof (_127)=="string"||(typeof (_127.nodeType)!="undefined"&&_127.nodeType>0))){ +var kv=MochiKit.DOM.formContents(_127); +_127=kv[0]; +_128=kv[1]; }else{ if(arguments.length==1){ -var o=_113; -_113=[]; -_114=[]; +if(typeof (_127.length)=="number"&&_127.length==2){ +return arguments.callee(_127[0],_127[1]); +} +var o=_127; +_127=[]; +_128=[]; for(var k in o){ var v=o[k]; -if(typeof (v)!="function"){ -_113.push(k); -_114.push(v); +if(typeof (v)=="function"){ +continue; +}else{ +if(typeof (v)!="string"&&typeof (v.length)=="number"){ +for(var i=0;i=stop){ +if(_174>=stop){ throw self.StopIteration; } -_147+=step; +_174+=step; return rval; }}; },imap:function(fun,p,q){ var m=MochiKit.Base; var self=MochiKit.Iter; -var _151=m.map(self.iter,m.extend(null,arguments,1)); +var _17e=m.map(self.iter,m.extend(null,arguments,1)); var map=m.map; var next=self.next; return {repr:function(){ return "imap(...)"; },toString:m.forwardCall("repr"),next:function(){ -return fun.apply(this,map(next,_151)); +return fun.apply(this,map(next,_17e)); }}; },applymap:function(fun,seq,self){ seq=MochiKit.Iter.iter(seq); @@ -1089,23 +1213,23 @@ return self.iter(arguments[0]); if(arguments.length==1){ return self.iter(arguments[0]); } -var _153=m.map(self.iter,arguments); +var _189=m.map(self.iter,arguments); return {repr:function(){ return "chain(...)"; },toString:m.forwardCall("repr"),next:function(){ -while(_153.length>1){ +while(_189.length>1){ try{ -return _153[0].next(); +return _189[0].next(); } catch(e){ if(e!=self.StopIteration){ throw e; } -_153.shift(); +_189.shift(); } } -if(_153.length==1){ -var arg=_153.shift(); +if(_189.length==1){ +var arg=_189.shift(); this.next=m.bind("next",arg); return this.next(); } @@ -1142,58 +1266,61 @@ return rval; this.next=bind("next",seq); return rval; }}; -},_tee:function(_155,sync,_157){ -sync.pos[_155]=-1; +},_tee:function(_194,sync,_196){ +sync.pos[_194]=-1; var m=MochiKit.Base; -var _158=m.listMin; +var _198=m.listMin; return {repr:function(){ -return "tee("+_155+", ...)"; +return "tee("+_194+", ...)"; },toString:m.forwardCall("repr"),next:function(){ var rval; -var i=sync.pos[_155]; +var i=sync.pos[_194]; if(i==sync.max){ -rval=_157.next(); +rval=_196.next(); sync.deque.push(rval); sync.max+=1; -sync.pos[_155]+=1; +sync.pos[_194]+=1; }else{ rval=sync.deque[i-sync.min]; -sync.pos[_155]+=1; -if(i==sync.min&&_158(sync.pos)!=sync.min){ +sync.pos[_194]+=1; +if(i==sync.min&&_198(sync.pos)!=sync.min){ sync.min+=1; sync.deque.shift(); } } return rval; }}; -},tee:function(_159,n){ +},tee:function(_19b,n){ var rval=[]; var sync={"pos":[],"deque":[],"max":-1,"min":-1}; -if(arguments.length==1){ +if(arguments.length==1||typeof (n)=="undefined"||n===null){ n=2; } var self=MochiKit.Iter; -_159=self.iter(_159); +_19b=self.iter(_19b); var _tee=self._tee; for(var i=0;i0&&_165>=stop)||(step<0&&_165<=stop)){ +if((step>0&&_1ac>=stop)||(step<0&&_1ac<=stop)){ throw MochiKit.Iter.StopIteration; } -var rval=_165; -_165+=step; +var rval=_1ac; +_1ac+=step; return rval; },repr:function(){ -return "range("+[_165,stop,step].join(", ")+")"; +return "range("+[_1ac,stop,step].join(", ")+")"; },toString:MochiKit.Base.forwardCall("repr")}; -},sum:function(_166,_167){ -var x=_167||0; +},sum:function(_1b0,_1b1){ +if(typeof (_1b1)=="undefined"||_1b1===null){ +_1b1=0; +} +var x=_1b1; var self=MochiKit.Iter; -_166=self.iter(_166); +_1b0=self.iter(_1b0); try{ while(true){ -x+=_166.next(); +x+=_1b0.next(); } } catch(e){ @@ -1279,12 +1409,12 @@ return x; } } return x; -},exhaust:function(_168){ +},exhaust:function(_1b4){ var self=MochiKit.Iter; -_168=self.iter(_168); +_1b4=self.iter(_1b4); try{ while(true){ -_168.next(); +_1b4.next(); } } catch(e){ @@ -1292,15 +1422,15 @@ throw e; throw e; } } -},forEach:function(_169,func,self){ +},forEach:function(_1b6,func,self){ var m=MochiKit.Base; if(arguments.length>2){ func=m.bind(func,self); } -if(m.isArrayLike(_169)){ +if(m.isArrayLike(_1b6)){ try{ -for(var i=0;i<_169.length;i++){ -func(_169[i]); +for(var i=0;i<_1b6.length;i++){ +func(_1b6[i]); } } catch(e){ @@ -1310,12 +1440,12 @@ self=MochiKit.Iter; } }else{ self=MochiKit.Iter; -self.exhaust(self.imap(func,_169)); +self.exhaust(self.imap(func,_1b6)); } -},every:function(_171,func){ +},every:function(_1bb,func){ var self=MochiKit.Iter; try{ -self.ifilterfalse(func,_171).next(); +self.ifilterfalse(func,_1bb).next(); return false; } catch(e){ @@ -1324,21 +1454,21 @@ return true; } return true; } -},sorted:function(_172,cmp){ -var rval=MochiKit.Iter.list(_172); +},sorted:function(_1be,cmp){ +var rval=MochiKit.Iter.list(_1be); if(arguments.length==1){ cmp=MochiKit.Base.compare; } rval.sort(cmp); return rval; -},reversed:function(_173){ -var rval=MochiKit.Iter.list(_173); +},reversed:function(_1c1){ +var rval=MochiKit.Iter.list(_1c1); rval.reverse(); return rval; -},some:function(_174,func){ +},some:function(_1c3,func){ var self=MochiKit.Iter; try{ -self.ifilter(func,_174).next(); +self.ifilter(func,_1c3).next(); return true; } catch(e){ @@ -1347,17 +1477,17 @@ return false; } return false; } -},iextend:function(lst,_175){ -if(MochiKit.Base.isArrayLike(_175)){ -for(var i=0;i<_175.length;i++){ -lst.push(_175[i]); +},iextend:function(lst,_1c7){ +if(MochiKit.Base.isArrayLike(_1c7)){ +for(var i=0;i<_1c7.length;i++){ +lst.push(_1c7[i]); } }else{ var self=MochiKit.Iter; -_175=self.iter(_175); +_1c7=self.iter(_1c7); try{ while(true){ -lst.push(_175.next()); +lst.push(_1c7.next()); } } catch(e){ @@ -1367,33 +1497,34 @@ return lst; } } return lst; -},groupby:function(_176,_177){ +},groupby:function(_1ca,_1cb){ var m=MochiKit.Base; var self=MochiKit.Iter; if(arguments.length<2){ -_177=m.operator.identity; +_1cb=m.operator.identity; } -_176=self.iter(_176); +_1ca=self.iter(_1ca); var pk=undefined; var k=undefined; var v; function fetch(){ -v=_176.next(); -k=_177(v); +v=_1ca.next(); +k=_1cb(v); } function eat(){ var ret=v; v=undefined; return ret; } -var _180=true; +var _1d2=true; +var _1d3=m.compare; return {repr:function(){ return "groupby(...)"; },next:function(){ -while(k==pk){ +while(_1d3(k,pk)===0){ fetch(); -if(_180){ -_180=false; +if(_1d2){ +_1d2=false; break; } } @@ -1402,26 +1533,27 @@ fetch(); if(v==undefined){ fetch(); } -if(k!=pk){ +if(_1d3(k,pk)!==0){ throw self.StopIteration; } return eat(); }}]; }}; -},groupby_as_array:function(_181,_182){ +},groupby_as_array:function(_1d4,_1d5){ var m=MochiKit.Base; var self=MochiKit.Iter; if(arguments.length<2){ -_182=m.operator.identity; +_1d5=m.operator.identity; } -_181=self.iter(_181); -var _183=[]; -var _184=true; -var _185; +_1d4=self.iter(_1d4); +var _1d8=[]; +var _1d9=true; +var _1da; +var _1db=m.compare; while(true){ try{ -var _186=_181.next(); -var key=_182(_186); +var _1dc=_1d4.next(); +var key=_1d5(_1dc); } catch(e){ if(e==self.StopIteration){ @@ -1429,32 +1561,32 @@ throw e; } throw e; } -if(_184||key!=_185){ -var _187=[]; -_183.push([key,_187]); +if(_1d9||_1db(key,_1da)!==0){ +var _1de=[]; +_1d8.push([key,_1de]); } -_187.push(_186); -_184=false; -_185=key; +_1de.push(_1dc); +_1d9=false; +_1da=key; } -return _183; -},arrayLikeIter:function(_188){ +return _1d8; +},arrayLikeIter:function(_1df){ var i=0; return {repr:function(){ return "arrayLikeIter(...)"; },toString:MochiKit.Base.forwardCall("repr"),next:function(){ -if(i>=_188.length){ +if(i>=_1df.length){ throw MochiKit.Iter.StopIteration; } -return _188[i++]; +return _1df[i++]; }}; -},hasIterateNext:function(_189){ -return (_189&&typeof (_189.iterateNext)=="function"); -},iterateNextIter:function(_190){ +},hasIterateNext:function(_1e1){ +return (_1e1&&typeof (_1e1.iterateNext)=="function"); +},iterateNextIter:function(_1e2){ return {repr:function(){ return "iterateNextIter(...)"; },toString:MochiKit.Base.forwardCall("repr"),next:function(){ -var rval=_190.iterateNext(); +var rval=_1e2.iterateNext(); if(rval===null||rval===undefined){ throw MochiKit.Iter.StopIteration; } @@ -1465,7 +1597,11 @@ var m=MochiKit.Base; MochiKit.Iter.EXPORT=["StopIteration","registerIteratorFactory","iter","count","cycle","repeat","next","izip","ifilter","ifilterfalse","islice","imap","applymap","chain","takewhile","dropwhile","tee","list","reduce","range","sum","exhaust","forEach","every","sorted","reversed","some","iextend","groupby","groupby_as_array"]; MochiKit.Iter.__new__=function(){ var m=MochiKit.Base; +if(typeof (StopIteration)!="undefined"){ +this.StopIteration=StopIteration; +}else{ this.StopIteration=new m.NamedError("StopIteration"); +} this.iteratorRegistry=new m.AdapterRegistry(); this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter); this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter); @@ -1473,7 +1609,7 @@ MochiKit.Iter.__new__(); m.nameFunctions(this); }; MochiKit.Iter.__new__(); -if(!MochiKit.__compat__){ +if(MochiKit.__export__){ reduce=MochiKit.Iter.reduce; } MochiKit.Base._exportSymbols(this,MochiKit.Iter); @@ -1496,7 +1632,7 @@ MochiKit.Logging.NAME="MochiKit.Logging" MochiKit.Logging={}; } MochiKit.Logging.NAME="MochiKit.Logging"; -MochiKit.Logging.VERSION="1.3.1"; +MochiKit.Logging.VERSION="1.4"; MochiKit.Logging.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; @@ -1505,9 +1641,9 @@ MochiKit.Logging.EXPORT_OK=["logLevelAtL }; MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"]; MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"]; -MochiKit.Logging.LogMessage=function(num,_192,info){ +MochiKit.Logging.LogMessage=function(num,_1e6,info){ this.num=num; -this.level=_192; +this.level=_1e6; this.info=info; this.timestamp=new Date(); }; @@ -1515,22 +1651,22 @@ return "LogMessage("+m.map(m.repr,[this. var m=MochiKit.Base; return "LogMessage("+m.map(m.repr,[this.num,this.level,this.info]).join(", ")+")"; },toString:MochiKit.Base.forwardCall("repr")}; -MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_194){ +MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_1e9){ var self=MochiKit.Logging; -if(typeof (_194)=="string"){ -_194=self.LogLevel[_194]; +if(typeof (_1e9)=="string"){ +_1e9=self.LogLevel[_1e9]; } return function(msg){ -var _196=msg.level; -if(typeof (_196)=="string"){ -_196=self.LogLevel[_196]; +var _1ec=msg.level; +if(typeof (_1ec)=="string"){ +_1ec=self.LogLevel[_1ec]; } -return _196>=_194; +return _1ec>=_1e9; }; },isLogMessage:function(){ -var _197=MochiKit.Logging.LogMessage; +var _1ed=MochiKit.Logging.LogMessage; for(var i=0;i=0&&this._messages.length>this.maxSize){ this._messages.shift(); } -},getMessages:function(_206){ -var _207=0; -if(!(typeof (_206)=="undefined"||_206===null)){ -_207=Math.max(0,this._messages.length-_206); +},getMessages:function(_1ff){ +var _200=0; +if(!(typeof (_1ff)=="undefined"||_1ff===null)){ +_200=Math.max(0,this._messages.length-_1ff); } -return this._messages.slice(_207); -},getMessageText:function(_208){ -if(typeof (_208)=="undefined"||_208===null){ -_208=30; +return this._messages.slice(_200); +},getMessageText:function(_201){ +if(typeof (_201)=="undefined"||_201===null){ +_201=30; } -var _209=this.getMessages(_208); -if(_209.length){ +var _202=this.getMessages(_201); +if(_202.length){ var lst=map(function(m){ return "\n ["+m.num+"] "+m.level+": "+m.info.join(" "); -},_209); -lst.unshift("LAST "+_209.length+" MESSAGES:"); +},_202); +lst.unshift("LAST "+_202.length+" MESSAGES:"); return lst.join(""); } return ""; -},debuggingBookmarklet:function(_210){ +},debuggingBookmarklet:function(_205){ if(typeof (MochiKit.LoggingPane)=="undefined"){ alert(this.getMessageText()); }else{ -MochiKit.LoggingPane.createLoggingPane(_210||false); +MochiKit.LoggingPane.createLoggingPane(_205||false); } }}; MochiKit.Logging.__new__=function(){ this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10}; var m=MochiKit.Base; m.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage); -var _211=m.partial; -var _212=this.Logger; -var _213=_212.prototype.baseLog; -m.update(this.Logger.prototype,{debug:_211(_213,"DEBUG"),log:_211(_213,"INFO"),error:_211(_213,"ERROR"),fatal:_211(_213,"FATAL"),warning:_211(_213,"WARNING")}); +var _207=m.partial; +var _208=this.Logger; +var _209=_208.prototype.baseLog; +m.update(this.Logger.prototype,{debug:_207(_209,"DEBUG"),log:_207(_209,"INFO"),error:_207(_209,"ERROR"),fatal:_207(_209,"FATAL"),warning:_207(_209,"WARNING")}); var self=this; -var _214=function(name){ +var _20b=function(name){ return function(){ self.logger[name].apply(self.logger,arguments); }; }; -this.log=_214("log"); -this.logError=_214("error"); -this.logDebug=_214("debug"); -this.logFatal=_214("fatal"); -this.logWarning=_214("warning"); -this.logger=new _212(); +this.log=_20b("log"); +this.logError=_20b("error"); +this.logDebug=_20b("debug"); +this.logFatal=_20b("fatal"); +this.logWarning=_20b("warning"); +this.logger=new _208(); this.logger.useNativeConsole=true; this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); @@ -1662,7 +1806,7 @@ MochiKit.DateTime.NAME="MochiKit.DateTim MochiKit.DateTime={}; } MochiKit.DateTime.NAME="MochiKit.DateTime"; -MochiKit.DateTime.VERSION="1.3.1"; +MochiKit.DateTime.VERSION="1.4"; MochiKit.DateTime.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; @@ -1690,15 +1834,15 @@ return null; if(typeof (res)=="undefined"||res===null){ return null; } -var year,month,day,hour,min,sec,msec; +var year,_213,day,hour,min,sec,msec; year=parseInt(res[1],10); if(typeof (res[2])=="undefined"||res[2]===""){ return new Date(year); } -month=parseInt(res[2],10)-1; +_213=parseInt(res[2],10)-1; day=parseInt(res[3],10); if(typeof (res[4])=="undefined"||res[4]===""){ -return new Date(year,month,day); +return new Date(year,_213,day); } hour=parseInt(res[4],10); min=parseInt(res[5],10); @@ -1709,7 +1853,7 @@ if((typeof (res[8])=="undefined"||res[8] msec=0; } if((typeof (res[8])=="undefined"||res[8]==="")&&(typeof (res[9])=="undefined"||res[9]==="")){ -return new Date(year,month,day,hour,min,sec,msec); +return new Date(year,_213,day,hour,min,sec,msec); } var ofs; if(typeof (res[9])!="undefined"&&res[9]!==""){ @@ -1723,35 +1867,35 @@ ofs=0; }else{ ofs=0; } -return new Date(Date.UTC(year,month,day,hour,min,sec,msec)-ofs); +return new Date(Date.UTC(year,_213,day,hour,min,sec,msec)-ofs); }; -MochiKit.DateTime.toISOTime=function(date,_221){ +MochiKit.DateTime.toISOTime=function(date,_21b){ if(typeof (date)=="undefined"||date===null){ return null; } var hh=date.getHours(); var mm=date.getMinutes(); var ss=date.getSeconds(); -var lst=[((_221&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)]; +var lst=[((_21b&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)]; return lst.join(":"); }; -MochiKit.DateTime.toISOTimestamp=function(date,_225){ +MochiKit.DateTime.toISOTimestamp=function(date,_221){ if(typeof (date)=="undefined"||date===null){ return null; } -var sep=_225?"T":" "; -var foot=_225?"Z":""; -if(_225){ +var sep=_221?"T":" "; +var foot=_221?"Z":""; +if(_221){ date=new Date(date.getTime()+(date.getTimezoneOffset()*60000)); } -return MochiKit.DateTime.toISODate(date)+sep+MochiKit.DateTime.toISOTime(date,_225)+foot; +return MochiKit.DateTime.toISODate(date)+sep+MochiKit.DateTime.toISOTime(date,_221)+foot; }; MochiKit.DateTime.toISODate=function(date){ if(typeof (date)=="undefined"||date===null){ return null; } -var _228=MochiKit.DateTime._padTwo; -return [date.getFullYear(),_228(date.getMonth()+1),_228(date.getDate())].join("-"); +var _225=MochiKit.DateTime._padTwo; +return [date.getFullYear(),_225(date.getMonth()+1),_225(date.getDate())].join("-"); }; MochiKit.DateTime.americanDate=function(d){ d=d+""; @@ -1768,8 +1912,8 @@ return null; if(typeof (d)=="undefined"||d===null){ return null; } -var _230=MochiKit.DateTime._padTwo; -return [_230(d.getMonth()+1),_230(d.getDate()),d.getFullYear()].join("/"); +var _22a=MochiKit.DateTime._padTwo; +return [_22a(d.getMonth()+1),_22a(d.getDate()),d.getFullYear()].join("/"); }; MochiKit.DateTime.toAmericanDate=function(d){ if(typeof (d)=="undefined"||d===null){ @@ -1797,11 +1941,11 @@ MochiKit.Base._exportSymbols(this,MochiK if(typeof (MochiKit.Base)!="undefined"){ MochiKit.Base._exportSymbols(this,MochiKit.DateTime); }else{ -(function(_231,_232){ -if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(typeof (MochiKit.__compat__)=="boolean"&&MochiKit.__compat__)){ -var all=_232.EXPORT_TAGS[":all"]; +(function(_22f,_230){ +if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){ +var all=_230.EXPORT_TAGS[":all"]; for(var i=0;i_240){ -var i=_246.length-_240; -res=fmt.separator+_246.substring(i,_246.length)+res; -_246=_246.substring(0,i); +if(_23a){ +while(_242.length>_23a){ +var i=_242.length-_23a; +res=fmt.separator+_242.substring(i,_242.length)+res; +_242=_242.substring(0,i); } } -res=_246+res; +res=_242+res; if(_238>0){ -while(frac.length<_241){ +while(frac.length<_23b){ frac=frac+"0"; } res=res+fmt.decimal+frac; } -return _242+res+_243; +return _23d+res+_23e; }; }; -MochiKit.Format.numberFormatter=function(_248,_249,_250){ -if(typeof (_249)=="undefined"){ -_249=""; +MochiKit.Format.numberFormatter=function(_246,_247,_248){ +if(typeof (_247)=="undefined"){ +_247=""; } -var _251=_248.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/); -if(!_251){ +var _249=_246.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/); +if(!_249){ throw TypeError("Invalid pattern"); } -var _252=_248.substr(0,_251.index); -var _253=_248.substr(_251.index+_251[0].length); -if(_252.search(/-/)==-1){ -_252=_252+"-"; +var _24a=_246.substr(0,_249.index); +var _24b=_246.substr(_249.index+_249[0].length); +if(_24a.search(/-/)==-1){ +_24a=_24a+"-"; } -var _254=_251[1]; -var frac=(typeof (_251[2])=="string"&&_251[2]!="")?_251[2]:""; -var _255=(typeof (_251[3])=="string"&&_251[3]!=""); -var tmp=_254.split(/,/); -var _257; -if(typeof (_250)=="undefined"){ -_250="default"; +var _24c=_249[1]; +var frac=(typeof (_249[2])=="string"&&_249[2]!="")?_249[2]:""; +var _24e=(typeof (_249[3])=="string"&&_249[3]!=""); +var tmp=_24c.split(/,/); +var _250; +if(typeof (_248)=="undefined"){ +_248="default"; } if(tmp.length==1){ -_257=null; +_250=null; }else{ -_257=tmp[1].length; +_250=tmp[1].length; } -var _258=_254.length-_254.replace(/0/g,"").length; -var _259=frac.length-frac.replace(/0/g,"").length; -var _260=frac.length; -var rval=MochiKit.Format._numberFormatter(_249,_252,_253,_250,_255,_260,_258,_257,_259); +var _251=_24c.length-_24c.replace(/0/g,"").length; +var _252=frac.length-frac.replace(/0/g,"").length; +var _253=frac.length; +var rval=MochiKit.Format._numberFormatter(_247,_24a,_24b,_248,_24e,_253,_251,_250,_252); var m=MochiKit.Base; if(m){ var fn=arguments.callee; @@ -1907,33 +2051,33 @@ return rval; } return rval; }; -MochiKit.Format.formatLocale=function(_262){ -if(typeof (_262)=="undefined"||_262===null){ -_262="default"; +MochiKit.Format.formatLocale=function(_258){ +if(typeof (_258)=="undefined"||_258===null){ +_258="default"; } -if(typeof (_262)=="string"){ -var rval=MochiKit.Format.LOCALE[_262]; +if(typeof (_258)=="string"){ +var rval=MochiKit.Format.LOCALE[_258]; if(typeof (rval)=="string"){ rval=arguments.callee(rval); -MochiKit.Format.LOCALE[_262]=rval; +MochiKit.Format.LOCALE[_258]=rval; } return rval; }else{ -return _262; +return _258; } }; -MochiKit.Format.twoDigitAverage=function(_263,_264){ -if(_264){ -var res=_263/_264; +MochiKit.Format.twoDigitAverage=function(_25a,_25b){ +if(_25b){ +var res=_25a/_25b; if(!isNaN(res)){ -return MochiKit.Format.twoDigitFloat(_263/_264); +return MochiKit.Format.twoDigitFloat(_25a/_25b); } } return "0"; }; -MochiKit.Format.twoDigitFloat=function(_265){ -var sign=(_265<0?"-":""); -var s=Math.floor(Math.abs(_265)*100).toString(); +MochiKit.Format.twoDigitFloat=function(_25d){ +var sign=(_25d<0?"-":""); +var s=Math.floor(Math.abs(_25d)*100).toString(); if(s=="0"){ return s; } @@ -1955,45 +2099,45 @@ return head+"."+tail; } } }; -MochiKit.Format.lstrip=function(str,_270){ +MochiKit.Format.lstrip=function(str,_263){ str=str+""; if(typeof (str)!="string"){ return null; } -if(!_270){ +if(!_263){ return str.replace(/^\s+/,""); }else{ -return str.replace(new RegExp("^["+_270+"]+"),""); +return str.replace(new RegExp("^["+_263+"]+"),""); } }; -MochiKit.Format.rstrip=function(str,_271){ +MochiKit.Format.rstrip=function(str,_265){ str=str+""; if(typeof (str)!="string"){ return null; } -if(!_271){ +if(!_265){ return str.replace(/\s+$/,""); }else{ -return str.replace(new RegExp("["+_271+"]+$"),""); +return str.replace(new RegExp("["+_265+"]+$"),""); } }; -MochiKit.Format.strip=function(str,_272){ +MochiKit.Format.strip=function(str,_267){ var self=MochiKit.Format; -return self.rstrip(self.lstrip(str,_272),_272); +return self.rstrip(self.lstrip(str,_267),_267); }; -MochiKit.Format.truncToFixed=function(_273,_274){ -_273=Math.floor(_273*Math.pow(10,_274)); -var res=(_273*Math.pow(10,-_274)).toFixed(_274); +MochiKit.Format.truncToFixed=function(_269,_26a){ +_269=Math.floor(_269*Math.pow(10,_26a)); +var res=(_269*Math.pow(10,-_26a)).toFixed(_26a); if(res.charAt(0)=="."){ res="0"+res; } return res; }; -MochiKit.Format.roundToFixed=function(_275,_276){ -return MochiKit.Format.truncToFixed(_275+0.5*Math.pow(10,-_276),_276); +MochiKit.Format.roundToFixed=function(_26c,_26d){ +return MochiKit.Format.truncToFixed(_26c+0.5*Math.pow(10,-_26d),_26d); }; -MochiKit.Format.percentFormat=function(_277){ -return MochiKit.Format.twoDigitFloat(100*_277)+"%"; +MochiKit.Format.percentFormat=function(_26e){ +return MochiKit.Format.twoDigitFloat(100*_26e)+"%"; }; MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"]; MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},"default":"en_US"}; @@ -2026,11 +2170,11 @@ MochiKit.Base._exportSymbols(this,MochiK if(typeof (MochiKit.Base)!="undefined"){ MochiKit.Base._exportSymbols(this,MochiKit.Format); }else{ -(function(_278,_279){ -if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(typeof (MochiKit.__compat__)=="boolean"&&MochiKit.__compat__)){ -var all=_279.EXPORT_TAGS[":all"]; +(function(_273,_274){ +if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){ +var all=_274.EXPORT_TAGS[":all"]; for(var i=0;i=0)){ -this._fire(); -} -},_continue:function(res){ -this._resback(res); -this._unpause(); },_resback:function(res){ this.fired=((res instanceof Error)?1:0); this.results[this.fired]=res; @@ -2162,37 +2296,41 @@ return this; } return this; },_fire:function(){ -var _284=this.chain; -var _285=this.fired; -var res=this.results[_285]; +var _283=this.chain; +var _284=this.fired; +var res=this.results[_284]; var self=this; var cb=null; -while(_284.length>0&&this.paused===0){ -var pair=_284.shift(); -var f=pair[_285]; +while(_283.length>0&&this.paused===0){ +var pair=_283.shift(); +var f=pair[_284]; if(f===null){ continue; } try{ res=f(res); -_285=((res instanceof Error)?1:0); +_284=((res instanceof Error)?1:0); if(res instanceof MochiKit.Async.Deferred){ cb=function(res){ -self._continue(res); +self._resback(res); +self.paused--; +if((self.paused===0)&&(self.fired>=0)){ +self._fire(); +} }; -this._pause(); +this.paused++; } } catch(err){ -_285=1; +_284=1; if(!(err instanceof Error)){ err=new MochiKit.Async.GenericError(err); } res=err; } } -this.fired=_285; -this.results[_285]=res; +this.fired=_284; +this.results[_284]=res; if(cb&&this.paused){ res.addBoth(cb); res.chained=true; @@ -2200,18 +2338,18 @@ return eval("("+arguments[0].responseTex }}; MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(){ return eval("("+arguments[0].responseText+")"); -},succeed:function(_287){ +},succeed:function(_28b){ var d=new MochiKit.Async.Deferred(); d.callback.apply(d,arguments); return d; -},fail:function(_288){ +},fail:function(_28d){ var d=new MochiKit.Async.Deferred(); d.errback.apply(d,arguments); return d; },getXMLHttpRequest:function(){ var self=arguments.callee; if(!self.XMLHttpRequest){ -var _289=[function(){ +var _290=[function(){ return new XMLHttpRequest(); },function(){ return new ActiveXObject("Msxml2.XMLHTTP"); @@ -2222,8 +2360,8 @@ throw new MochiKit.Async.BrowserComplian },function(){ throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); }]; -for(var i=0;i<_289.length;i++){ -var func=_289[i]; +for(var i=0;i<_290.length;i++){ +var func=_290[i]; try{ self.XMLHttpRequest=func; return func(); @@ -2233,29 +2371,29 @@ return self.XMLHttpRequest(); } } return self.XMLHttpRequest(); -},_nothing:function(){ },_xhr_onreadystatechange:function(d){ +var m=MochiKit.Base; if(this.readyState==4){ try{ this.onreadystatechange=null; } catch(e){ try{ -this.onreadystatechange=MochiKit.Async._nothing; +this.onreadystatechange=m.noop; } catch(e){ } } -var _290=null; +var _295=null; try{ -_290=this.status; -if(!_290&&MochiKit.Base.isNotEmpty(this.responseText)){ -_290=304; +_295=this.status; +if(!_295&&m.isNotEmpty(this.responseText)){ +_295=304; } } catch(e){ } -if(_290==200||_290==304){ +if(_295==200||_295==201||_295==204||_295==304||_295==1223){ d.callback(this); }else{ var err=new MochiKit.Async.XMLHttpRequestError(this,"Request failed"); @@ -2272,22 +2410,22 @@ try{ } catch(e){ try{ -req.onreadystatechange=MochiKit.Async._nothing; +req.onreadystatechange=MochiKit.Base.noop; } catch(e){ } } req.abort(); -},sendXMLHttpRequest:function(req,_293){ -if(typeof (_293)=="undefined"||_293===null){ -_293=""; +},sendXMLHttpRequest:function(req,_299){ +if(typeof (_299)=="undefined"||_299===null){ +_299=""; } var m=MochiKit.Base; var self=MochiKit.Async; var d=new self.Deferred(m.partial(self._xhr_canceller,req)); try{ req.onreadystatechange=m.bind(self._xhr_onreadystatechange,req,d); -req.send(_293); +req.send(_299); } catch(e){ try{ @@ -2298,45 +2436,82 @@ return d; d.errback(e); } return d; -},doSimpleXMLHttpRequest:function(url){ +},doXHR:function(url,opts){ var self=MochiKit.Async; +return self.callLater(0,self._doXHR,url,opts); +},_doXHR:function(url,opts){ +var m=MochiKit.Base; +opts=m.update({method:"GET",sendContent:""},opts); +var self=MochiKit.Async; var req=self.getXMLHttpRequest(); +if(opts.queryString){ +var qs=m.queryString(opts.queryString); +if(qs){ +url+="?"+qs; +} +} +if("username" in opts){ +req.open(opts.method,url,true,opts.username,opts.password); +}else{ +req.open(opts.method,url,true); +} +if(req.overrideMimeType&&opts.mimeType){ +req.overrideMimeType(opts.mimeType); +} +if(opts.headers){ +var _2a6=opts.headers; +if(!m.isArrayLike(_2a6)){ +_2a6=m.items(_2a6); +} +for(var i=0;i<_2a6.length;i++){ +var _2a8=_2a6[i]; +var name=_2a8[0]; +var _2aa=_2a8[1]; +req.setRequestHeader(name,_2aa); +} +} +return self.sendXMLHttpRequest(req,opts.sendContent); +},_buildURL:function(url){ if(arguments.length>1){ var m=MochiKit.Base; var qs=m.queryString.apply(null,m.extend(null,arguments,1)); if(qs){ -url+="?"+qs; +return url+"?"+qs; } } -req.open("GET",url,true); -return self.sendXMLHttpRequest(req); +return url; +},doSimpleXMLHttpRequest:function(url){ +var self=MochiKit.Async; +url=self._buildURL.apply(self,arguments); +return self.doXHR(url); },loadJSONDoc:function(url){ var self=MochiKit.Async; -var d=self.doSimpleXMLHttpRequest.apply(self,arguments); +url=self._buildURL.apply(self,arguments); +var d=self.doXHR(url,{"mimeType":"text/plain","headers":[["Accept","application/json"]]}); d=d.addCallback(self.evalJSONRequest); return d; -},wait:function(_296,_297){ +},wait:function(_2b3,_2b4){ var d=new MochiKit.Async.Deferred(); var m=MochiKit.Base; -if(typeof (_297)!="undefined"){ +if(typeof (_2b4)!="undefined"){ d.addCallback(function(){ -return _297; +return _2b4; }); } -var _298=setTimeout(m.bind("callback",d),Math.floor(_296*1000)); +var _2b7=setTimeout(m.bind("callback",d),Math.floor(_2b3*1000)); d.canceller=function(){ try{ -clearTimeout(_298); +clearTimeout(_2b7); } catch(e){ } }; return d; -},callLater:function(_299,func){ +},callLater:function(_2b8,func){ var m=MochiKit.Base; -var _300=m.partial.apply(m,m.extend(null,arguments,1)); -return MochiKit.Async.wait(_299).addCallback(function(res){ -return _300(); +var _2bb=m.partial.apply(m,m.extend(null,arguments,1)); +return MochiKit.Async.wait(_2b8).addCallback(function(res){ +return _2bb(); }); }}); MochiKit.Async.DeferredLock=function(){ @@ -2345,7 +2520,7 @@ MochiKit.Async.DeferredLock.prototype={_ this.id=this._nextId(); }; MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){ -d=new MochiKit.Async.Deferred(); +var d=new MochiKit.Async.Deferred(); if(this.locked){ this.waiting.push(d); }else{ @@ -2363,48 +2538,44 @@ this.waiting.shift().callback(this); this.waiting.shift().callback(this); } },_nextId:MochiKit.Base.counter(),repr:function(){ -var _301; +var _2be; if(this.locked){ -_301="locked, "+this.waiting.length+" waiting"; +_2be="locked, "+this.waiting.length+" waiting"; }else{ -_301="unlocked"; +_2be="unlocked"; } -return "DeferredLock("+this.id+", "+_301+")"; +return "DeferredLock("+this.id+", "+_2be+")"; },toString:MochiKit.Base.forwardCall("repr")}; -MochiKit.Async.DeferredList=function(list,_303,_304,_305,_306){ +MochiKit.Async.DeferredList=function(list,_2c0,_2c1,_2c2,_2c3){ +MochiKit.Async.Deferred.apply(this,[_2c3]); this.list=list; -this.resultList=new Array(this.list.length); -this.chain=[]; -this.id=this._nextId(); -this.fired=-1; -this.paused=0; -this.results=[null,null]; -this.canceller=_306; -this.silentlyCancelled=false; -if(this.list.length===0&&!_303){ +var _2c4=[]; +this.resultList=_2c4; +this.finishedCount=0; +this.fireOnOneCallback=_2c0; +this.fireOnOneErrback=_2c1; +this.consumeErrors=_2c2; +var cb=MochiKit.Base.bind(this._cbDeferred,this); +for(var i=0;i=0){ var opt=elem.options[elem.selectedIndex]; -_339.push(name); -_340.push((opt.value)?opt.value:opt.text); +var v=opt.value; +if(!v){ +var h=opt.outerHTML; +if(h&&!h.match(/^[^>]+\svalue\s*=/i)){ +v=opt.text; +} +} +_2e3.push(name); +_2e4.push(v); return null; } -_339.push(name); -_340.push(""); +_2e3.push(name); +_2e4.push(""); return null; +}else{ +var opts=elem.options; +if(!opts.length){ +_2e3.push(name); +_2e4.push(""); +return null; } -if(_341=="FORM"||_341=="P"||_341=="SPAN"||_341=="DIV"){ +for(var i=0;i]+\svalue\s*=/i)){ +v=opt.text; +} +} +_2e3.push(name); +_2e4.push(v); +} +return null; +} +} +if(_2e9==="FORM"||_2e9==="P"||_2e9==="SPAN"||_2e9==="DIV"){ return elem.childNodes; } -_339.push(name); -_340.push(elem.value||""); +_2e3.push(name); +_2e4.push(elem.value||""); return null; } return elem.childNodes; }); -return [_339,_340]; +return [_2e3,_2e4]; },withDocument:function(doc,func){ var self=MochiKit.DOM; -var _344=self._document; +var _2f2=self._document; var rval; try{ self._document=doc; rval=func(); } catch(e){ -self._document=_344; +self._document=_2f2; throw e; } -self._document=_344; +self._document=_2f2; return rval; -},registerDOMConverter:function(name,_345,wrap,_346){ -MochiKit.DOM.domConverters.register(name,_345,wrap,_346); +},registerDOMConverter:function(name,_2f5,wrap,_2f7){ +MochiKit.DOM.domConverters.register(name,_2f5,wrap,_2f7); },coerceToDOM:function(node,ctx){ +var m=MochiKit.Base; var im=MochiKit.Iter; var self=MochiKit.DOM; +if(im){ var iter=im.iter; -var _350=im.repeat; -var imap=im.imap; -var _352=self.domConverters; -var _353=self.coerceToDOM; -var _354=MochiKit.Base.NotFound; +var _2fe=im.repeat; +var map=m.map; +} +var _300=self.domConverters; +var _301=arguments.callee; +var _302=m.NotFound; while(true){ if(typeof (node)=="undefined"||node===null){ return null; } +if(typeof (node)=="function"&&typeof (node.length)=="number"&&!(node instanceof Function)){ +node=im.list(node); +} if(typeof (node.nodeType)!="undefined"&&node.nodeType>0){ return node; } @@ -2754,38 +2816,62 @@ return self._document.createTextNode(nod if(typeof (node)=="string"){ return self._document.createTextNode(node); } -if(typeof (node.toDOM)=="function"){ -node=node.toDOM(ctx); +if(typeof (node.__dom__)=="function"){ +node=node.__dom__(ctx); continue; } +if(typeof (node.dom)=="function"){ +node=node.dom(ctx); +continue; +} if(typeof (node)=="function"){ -node=node(ctx); +node=node.apply(ctx,[ctx]); continue; } -var _355=null; +if(im){ +var _303=null; try{ -_355=iter(node); +_303=iter(node); } catch(e){ } -if(_355){ -return imap(_353,_355,_350(ctx)); +if(_303){ +return map(_301,_303,_2fe(ctx)); } +} try{ -node=_352.match(node,ctx); +node=_300.match(node,ctx); continue; } catch(e){ -if(e!=_354){ +if(e!=_302){ throw e; } } return self._document.createTextNode(node.toString()); } return undefined; -},setNodeAttribute:function(node,attr,_357){ +},isChildNode:function(node,_305){ +var self=MochiKit.DOM; +if(typeof (node)=="string"){ +node=self.getElement(node); +} +if(typeof (_305)=="string"){ +_305=self.getElement(_305); +} +if(node===_305){ +return true; +} +while(node&&node.tagName.toUpperCase()!="BODY"){ +node=node.parentNode; +if(node===_305){ +return true; +} +} +return false; +},setNodeAttribute:function(node,attr,_309){ var o={}; -o[attr]=_357; +o[attr]=_309; try{ return MochiKit.DOM.updateNodeAttributes(node,o); } @@ -2794,31 +2880,48 @@ var self=MochiKit.DOM; return null; },getNodeAttribute:function(node,attr){ var self=MochiKit.DOM; -var _358=self.attributeArray.renames[attr]; +var _30e=self.attributeArray.renames[attr]; node=self.getElement(node); try{ -if(_358){ -return node[_358]; +if(_30e){ +return node[_30e]; } return node.getAttribute(attr); } catch(e){ } return null; -},updateNodeAttributes:function(node,_359){ +},removeNodeAttribute:function(node,attr){ +var self=MochiKit.DOM; +var _312=self.attributeArray.renames[attr]; +node=self.getElement(node); +try{ +if(_312){ +return node[_312]; +} +return node.removeAttribute(attr); +} +catch(e){ +} +return null; +},updateNodeAttributes:function(node,_314){ var elem=node; var self=MochiKit.DOM; if(typeof (node)=="string"){ elem=self.getElement(node); } -if(_359){ -var _360=MochiKit.Base.updatetree; +if(_314){ +var _317=MochiKit.Base.updatetree; if(self.attributeArray.compliant){ -for(var k in _359){ -var v=_359[k]; +for(var k in _314){ +var v=_314[k]; if(typeof (v)=="object"&&typeof (elem[k])=="object"){ -_360(elem[k],v); +if(k=="style"&&MochiKit.Style){ +MochiKit.Style.setStyle(elem,v); }else{ +_317(elem[k],v); +} +}else{ if(k.substring(0,2)=="on"){ if(typeof (v)=="string"){ v=new Function(v); @@ -2830,19 +2933,23 @@ elem.setAttribute(k,v); } } }else{ -var _361=self.attributeArray.renames; -for(k in _359){ -v=_359[k]; -var _362=_361[k]; +var _31a=self.attributeArray.renames; +for(var k in _314){ +v=_314[k]; +var _31b=_31a[k]; if(k=="style"&&typeof (v)=="string"){ elem.style.cssText=v; }else{ -if(typeof (_362)=="string"){ -elem[_362]=v; +if(typeof (_31b)=="string"){ +elem[_31b]=v; }else{ if(typeof (elem[k])=="object"&&typeof (v)=="object"){ -_360(elem[k],v); +if(k=="style"&&MochiKit.Style){ +MochiKit.Style.setStyle(elem,v); }else{ +_317(elem[k],v); +} +}else{ if(k.substring(0,2)=="on"){ if(typeof (v)=="string"){ v=new Function(v); @@ -2864,20 +2971,53 @@ elem=self.getElement(node); if(typeof (node)=="string"){ elem=self.getElement(node); } -var _363=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; -var _364=MochiKit.Base.concat; -while(_363.length){ -var n=_363.shift(); +var _31f=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; +var _320=MochiKit.Base.concat; +while(_31f.length){ +var n=_31f.shift(); if(typeof (n)=="undefined"||n===null){ }else{ if(typeof (n.nodeType)=="number"){ elem.appendChild(n); }else{ -_363=_364(n,_363); +_31f=_320(n,_31f); } } } return elem; +},insertSiblingNodesBefore:function(node){ +var elem=node; +var self=MochiKit.DOM; +if(typeof (node)=="string"){ +elem=self.getElement(node); +} +var _325=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; +var _326=elem.parentNode; +var _327=MochiKit.Base.concat; +while(_325.length){ +var n=_325.shift(); +if(typeof (n)=="undefined"||n===null){ +}else{ +if(typeof (n.nodeType)=="number"){ +_326.insertBefore(n,elem); +}else{ +_325=_327(n,_325); +} +} +} +return _326; +},insertSiblingNodesAfter:function(node){ +var elem=node; +var self=MochiKit.DOM; +if(typeof (node)=="string"){ +elem=self.getElement(node); +} +var _32c=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; +if(elem.nextSibling){ +return self.insertSiblingNodesBefore(elem.nextSibling,_32c); +}else{ +return self.appendChildNodes(elem.parentNode,_32c); +} },replaceChildNodes:function(node){ var elem=node; var self=MochiKit.DOM; @@ -2885,33 +3025,49 @@ arguments[0]=elem; elem=self.getElement(node); arguments[0]=elem; } -var _365; -while((_365=elem.firstChild)){ -elem.removeChild(_365); +var _330; +while((_330=elem.firstChild)){ +elem.removeChild(_330); } if(arguments.length<2){ return elem; }else{ return self.appendChildNodes.apply(this,arguments); } -},createDOM:function(name,_366){ +},createDOM:function(name,_332){ var elem; var self=MochiKit.DOM; var m=MochiKit.Base; -if(typeof (_366)=="string"||typeof (_366)=="number"){ +if(typeof (_332)=="string"||typeof (_332)=="number"){ var args=m.extend([name,null],arguments,1); return arguments.callee.apply(this,args); } if(typeof (name)=="string"){ -if(_366&&"name" in _366&&!self.attributeArray.compliant){ -name=("<"+name+" name=\""+self.escapeHTML(_366.name)+"\">"); +var _337=self._xhtml; +if(_332&&!self.attributeArray.compliant){ +var _338=""; +if("name" in _332){ +_338+=" name=\""+self.escapeHTML(_332.name)+"\""; } -elem=self._document.createElement(name); +if(name=="input"&&"type" in _332){ +_338+=" type=\""+self.escapeHTML(_332.type)+"\""; +} +if(_338){ +name="<"+name+_338+">"; +_337=false; +} +} +var d=self._document; +if(_337&&d===document){ +elem=d.createElementNS("http://www.w3.org/1999/xhtml",name); }else{ +elem=d.createElement(name); +} +}else{ elem=name; } -if(_366){ -self.updateNodeAttributes(elem,_366); +if(_332){ +self.updateNodeAttributes(elem,_332); } if(arguments.length<=2){ return elem; @@ -2922,15 +3078,19 @@ return m.partial.apply(this,m.extend([Mo },createDOMFunc:function(){ var m=MochiKit.Base; return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments)); +},removeElement:function(elem){ +var e=MochiKit.DOM.getElement(elem); +e.parentNode.removeChild(e); +return e; },swapDOM:function(dest,src){ var self=MochiKit.DOM; dest=self.getElement(dest); -var _369=dest.parentNode; +var _340=dest.parentNode; if(src){ src=self.getElement(src); -_369.replaceChild(src,dest); +_340.replaceChild(src,dest); }else{ -_369.removeChild(dest); +_340.removeChild(dest); } return src; },getElement:function(id){ @@ -2940,60 +3100,40 @@ return MochiKit.Base.map(self.getElement }else{ return MochiKit.Base.map(self.getElement,arguments); } -},computedStyle:function(_371,_372,_373){ -if(arguments.length==2){ -_373=_372; -} +},getElementsByTagAndClassName:function(_343,_344,_345){ var self=MochiKit.DOM; -var el=self.getElement(_371); -var _375=self._document; -if(!el||el==_375){ -return undefined; +if(typeof (_343)=="undefined"||_343===null){ +_343="*"; } -if(el.currentStyle){ -return el.currentStyle[_372]; +if(typeof (_345)=="undefined"||_345===null){ +_345=self._document; } -if(typeof (_375.defaultView)=="undefined"){ -return undefined; +_345=self.getElement(_345); +var _347=(_345.getElementsByTagName(_343)||self._document.all); +if(typeof (_344)=="undefined"||_344===null){ +return MochiKit.Base.extend(null,_347); } -if(_375.defaultView===null){ -return undefined; +var _348=[]; +for(var i=0;i<_347.length;i++){ +var _34a=_347[i]; +var cls=_34a.className; +if(!cls){ +continue; } -var _376=_375.defaultView.getComputedStyle(el,null); -if(typeof (_376)=="undefined"||_376===null){ -return undefined; -} -return _376.getPropertyValue(_373); -},getElementsByTagAndClassName:function(_377,_378,_379){ -var self=MochiKit.DOM; -if(typeof (_377)=="undefined"||_377===null){ -_377="*"; -} -if(typeof (_379)=="undefined"||_379===null){ -_379=self._document; -} -_379=self.getElement(_379); -var _380=(_379.getElementsByTagName(_377)||self._document.all); -if(typeof (_378)=="undefined"||_378===null){ -return MochiKit.Base.extend(null,_380); -} -var _381=[]; -for(var i=0;i<_380.length;i++){ -var _382=_380[i]; -var _383=_382.className.split(" "); -for(var j=0;j<_383.length;j++){ -if(_383[j]==_378){ -_381.push(_382); +var _34c=cls.split(" "); +for(var j=0;j<_34c.length;j++){ +if(_34c[j]==_344){ +_348.push(_34a); break; } } } -return _381; +return _348; },_newCallStack:function(path,once){ var rval=function(){ -var _386=arguments.callee.callStack; -for(var i=0;i<_386.length;i++){ -if(_386[i].apply(this,arguments)===false){ +var _351=arguments.callee.callStack; +for(var i=0;i<_351.length;i++){ +if(_351[i].apply(this,arguments)===false){ break; } } @@ -3007,98 +3147,102 @@ return rval; }; rval.callStack=[]; return rval; -},addToCallStack:function(_387,path,func,once){ +},addToCallStack:function(_353,path,func,once){ var self=MochiKit.DOM; -var _388=_387[path]; -var _389=_388; -if(!(typeof (_388)=="function"&&typeof (_388.callStack)=="object"&&_388.callStack!==null)){ -_389=self._newCallStack(path,once); -if(typeof (_388)=="function"){ -_389.callStack.push(_388); +var _358=_353[path]; +var _359=_358; +if(!(typeof (_358)=="function"&&typeof (_358.callStack)=="object"&&_358.callStack!==null)){ +_359=self._newCallStack(path,once); +if(typeof (_358)=="function"){ +_359.callStack.push(_358); } -_387[path]=_389; +_353[path]=_359; } -_389.callStack.push(func); +_359.callStack.push(func); },addLoadEvent:function(func){ var self=MochiKit.DOM; self.addToCallStack(self._window,"onload",func,true); -},focusOnLoad:function(_390){ +},focusOnLoad:function(_35c){ var self=MochiKit.DOM; self.addLoadEvent(function(){ -_390=self.getElement(_390); -if(_390){ -_390.focus(); +_35c=self.getElement(_35c); +if(_35c){ +_35c.focus(); } }); -},setElementClass:function(_391,_392){ +},setElementClass:function(_35e,_35f){ var self=MochiKit.DOM; -var obj=self.getElement(_391); +var obj=self.getElement(_35e); if(self.attributeArray.compliant){ -obj.setAttribute("class",_392); +obj.setAttribute("class",_35f); }else{ -obj.setAttribute("className",_392); +obj.setAttribute("className",_35f); } -},toggleElementClass:function(_393){ +},toggleElementClass:function(_362){ var self=MochiKit.DOM; for(var i=1;i"); -_409.push(""); -var _415=dom.childNodes; -for(i=_415.length-1;i>=0;i--){ -_409.push(_415[i]); +_385.push(""); +var _38f=dom.childNodes; +for(i=_38f.length-1;i>=0;i--){ +_385.push(_38f[i]); } }else{ lst.push("/>"); } }else{ if(dom.nodeType==3){ -lst.push(_410(dom.nodeValue)); +lst.push(_387(dom.nodeValue)); } } } } return lst; -},setDisplayForElement:function(_416,_417){ -var m=MochiKit.Base; -var _418=m.extend(null,arguments,1); -MochiKit.Iter.forEach(m.filter(null,m.map(MochiKit.DOM.getElement,_418)),function(_417){ -_417.style.display=_416; -}); -},scrapeText:function(node,_419){ +},scrapeText:function(node,_391){ var rval=[]; (function(node){ var cn=node.childNodes; @@ -3173,94 +3311,867 @@ arguments.callee.call(this,cn[i]); arguments.callee.call(this,cn[i]); } } -var _421=node.nodeValue; -if(typeof (_421)=="string"){ -rval.push(_421); +var _396=node.nodeValue; +if(typeof (_396)=="string"){ +rval.push(_396); } })(MochiKit.DOM.getElement(node)); -if(_419){ +if(_391){ return rval; }else{ return rval.join(""); } +},removeEmptyTextNodes:function(_397){ +_397=MochiKit.DOM.getElement(_397); +for(var i=0;i<_397.childNodes.length;i++){ +var node=_397.childNodes[i]; +if(node.nodeType==3&&!/\S/.test(node.nodeValue)){ +node.parentNode.removeChild(node); +} +} +},makeClipping:function(_39a){ +_39a=MochiKit.DOM.getElement(_39a); +var _39b=_39a.style.overflow; +if((MochiKit.Style.getStyle(_39a,"overflow")||"visible")!="hidden"){ +_39a.style.overflow="hidden"; +} +return _39b; +},undoClipping:function(_39c,_39d){ +_39c=MochiKit.DOM.getElement(_39c); +if(!_39d){ +return; +} +_39c.style.overflow=_39d; +},makePositioned:function(_39e){ +_39e=MochiKit.DOM.getElement(_39e); +var pos=MochiKit.Style.getStyle(_39e,"position"); +if(pos=="static"||!pos){ +_39e.style.position="relative"; +if(/Opera/.test(navigator.userAgent)){ +_39e.style.top=0; +_39e.style.left=0; +} +} +},undoPositioned:function(_3a0){ +_3a0=MochiKit.DOM.getElement(_3a0); +if(_3a0.style.position=="relative"){ +_3a0.style.position=_3a0.style.top=_3a0.style.left=_3a0.style.bottom=_3a0.style.right=""; +} +},getFirstElementByTagAndClassName:function(_3a1,_3a2,_3a3){ +var self=MochiKit.DOM; +if(typeof (_3a1)=="undefined"||_3a1===null){ +_3a1="*"; +} +if(typeof (_3a3)=="undefined"||_3a3===null){ +_3a3=self._document; +} +_3a3=self.getElement(_3a3); +var _3a5=(_3a3.getElementsByTagName(_3a1)||self._document.all); +if(typeof (_3a2)=="undefined"||_3a2===null){ +return _3a5[0]; +} +for(var i=0;i<_3a5.length;i++){ +var _3a7=_3a5[i]; +var _3a8=_3a7.className.split(" "); +for(var j=0;j<_3a8.length;j++){ +if(_3a8[j]==_3a2){ +return _3a7; +} +} +} +},getFirstParentByTagAndClassName:function(elem,_3ab,_3ac){ +var self=MochiKit.DOM; +elem=self.getElement(elem); +if(typeof (_3ab)=="undefined"||_3ab===null){ +_3ab="*"; +}else{ +_3ab=_3ab.toUpperCase(); +} +if(typeof (_3ac)=="undefined"||_3ac===null){ +_3ac=null; +} +var _3ae=""; +var _3af=""; +while(elem&&elem.tagName){ +elem=elem.parentNode; +if(_3ab=="*"&&_3ac===null){ +return elem; +} +_3ae=elem.className.split(" "); +_3af=elem.tagName.toUpperCase(); +if(_3ac===null&&_3ab==_3af){ +return elem; +}else{ +if(_3ac!==null){ +for(var i=0;i<_3ae.length;i++){ +if(_3ab=="*"&&_3ae[i]==_3ac){ +return elem; +}else{ +if(_3ab==_3af&&_3ae[i]==_3ac){ +return elem; +} +} +} +} +} +} +return elem; +},isParent:function(_3b1,_3b2){ +if(!_3b1.parentNode||_3b1==_3b2){ +return false; +} +if(_3b1.parentNode==_3b2){ +return true; +} +return MochiKit.DOM.isParent(_3b1.parentNode,_3b2); },__new__:function(win){ var m=MochiKit.Base; +if(typeof (document)!="undefined"){ this._document=document; +var _3b5="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; +this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===_3b5); +}else{ +if(MochiKit.MockDOM){ +this._document=MochiKit.MockDOM.document; +} +} this._window=win; this.domConverters=new m.AdapterRegistry(); -var _422=this._document.createElement("span"); -var _423; -if(_422&&_422.attributes&&_422.attributes.length>0){ -var _424=m.filter; -_423=function(node){ -return _424(_423.ignoreAttrFilter,node.attributes); +var _3b6=this._document.createElement("span"); +var _3b7; +if(_3b6&&_3b6.attributes&&_3b6.attributes.length>0){ +var _3b8=m.filter; +_3b7=function(node){ +return _3b8(_3b7.ignoreAttrFilter,node.attributes); }; -_423.ignoreAttr={}; -MochiKit.Iter.forEach(_422.attributes,function(a){ -_423.ignoreAttr[a.name]=a.value; -}); -_423.ignoreAttrFilter=function(a){ -return (_423.ignoreAttr[a.name]!=a.value); +_3b7.ignoreAttr={}; +var _3ba=_3b6.attributes; +var _3bb=_3b7.ignoreAttr; +for(var i=0;i<_3ba.length;i++){ +var a=_3ba[i]; +_3bb[a.name]=a.value; +} +_3b7.ignoreAttrFilter=function(a){ +return (_3b7.ignoreAttr[a.name]!=a.value); }; -_423.compliant=false; -_423.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor"}; +_3b7.compliant=false; +_3b7.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor","cellspacing":"cellSpacing","cellpadding":"cellPadding"}; }else{ -_423=function(node){ +_3b7=function(node){ return node.attributes; }; -_423.compliant=true; -_423.renames={}; +_3b7.compliant=true; +_3b7.renames={}; } -this.attributeArray=_423; -var _425=this.createDOMFunc; -this.UL=_425("ul"); -this.OL=_425("ol"); -this.LI=_425("li"); -this.TD=_425("td"); -this.TR=_425("tr"); -this.TBODY=_425("tbody"); -this.THEAD=_425("thead"); -this.TFOOT=_425("tfoot"); -this.TABLE=_425("table"); -this.TH=_425("th"); -this.INPUT=_425("input"); -this.SPAN=_425("span"); -this.A=_425("a"); -this.DIV=_425("div"); -this.IMG=_425("img"); -this.BUTTON=_425("button"); -this.TT=_425("tt"); -this.PRE=_425("pre"); -this.H1=_425("h1"); -this.H2=_425("h2"); -this.H3=_425("h3"); -this.BR=_425("br"); -this.HR=_425("hr"); -this.LABEL=_425("label"); -this.TEXTAREA=_425("textarea"); -this.FORM=_425("form"); -this.P=_425("p"); -this.SELECT=_425("select"); -this.OPTION=_425("option"); -this.OPTGROUP=_425("optgroup"); -this.LEGEND=_425("legend"); -this.FIELDSET=_425("fieldset"); -this.STRONG=_425("strong"); -this.CANVAS=_425("canvas"); -this.hideElement=m.partial(this.setDisplayForElement,"none"); -this.showElement=m.partial(this.setDisplayForElement,"block"); -this.removeElement=this.swapDOM; +this.attributeArray=_3b7; +var _3c0=function(_3c1,arr){ +var _3c3=arr[1].split("."); +var str=""; +var obj={}; +str+="if (!MochiKit."+_3c3[1]+") { throw new Error(\""; +str+="This function has been deprecated and depends on MochiKit."; +str+=_3c3[1]+".\");}"; +str+="return MochiKit."+_3c3[1]+"."+arr[0]; +str+=".apply(this, arguments);"; +obj[_3c3[2]]=new Function(str); +MochiKit.Base.update(MochiKit[_3c1],obj); +}; +for(var i;i0){ +abort(repr(expr)); +} +},buildMatchExpression:function(){ +var repr=MochiKit.Base.repr; +var _3d1=this.params; +var _3d2=[]; +var _3d3,i; +function childElements(_3d5){ +return "MochiKit.Base.filter(function (node) { return node.nodeType == 1; }, "+_3d5+".childNodes)"; +} +if(_3d1.wildcard){ +_3d2.push("true"); +} +if(_3d3=_3d1.id){ +_3d2.push("element.id == "+repr(_3d3)); +} +if(_3d3=_3d1.tagName){ +_3d2.push("element.tagName.toUpperCase() == "+repr(_3d3)); +} +if((_3d3=_3d1.classNames).length>0){ +for(i=0;i<_3d3.length;i++){ +_3d2.push("MochiKit.DOM.hasElementClass(element, "+repr(_3d3[i])+")"); +} +} +if((_3d3=_3d1.pseudoClassNames).length>0){ +for(i=0;i<_3d3.length;i++){ +var _3d6=_3d3[i].match(/^([^(]+)(?:\((.*)\))?$/); +var _3d7=_3d6[1]; +var _3d8=_3d6[2]; +switch(_3d7){ +case "root": +_3d2.push("element.nodeType == 9 || element === element.ownerDocument.documentElement"); +break; +case "nth-child": +case "nth-last-child": +case "nth-of-type": +case "nth-last-of-type": +_3d6=_3d8.match(/^((?:(\d+)n\+)?(\d+)|odd|even)$/); +if(!_3d6){ +throw "Invalid argument to pseudo element nth-child: "+_3d8; +} +var a,b; +if(_3d6[0]=="odd"){ +a=2; +b=1; +}else{ +if(_3d6[0]=="even"){ +a=2; +b=0; +}else{ +a=_3d6[2]&&parseInt(_3d6)||null; +b=parseInt(_3d6[3]); +} +} +_3d2.push("this.nthChild(element,"+a+","+b+","+!!_3d7.match("^nth-last")+","+!!_3d7.match("of-type$")+")"); +break; +case "first-child": +_3d2.push("this.nthChild(element, null, 1)"); +break; +case "last-child": +_3d2.push("this.nthChild(element, null, 1, true)"); +break; +case "first-of-type": +_3d2.push("this.nthChild(element, null, 1, false, true)"); +break; +case "last-of-type": +_3d2.push("this.nthChild(element, null, 1, true, true)"); +break; +case "only-child": +_3d2.push(childElements("element.parentNode")+".length == 1"); +break; +case "only-of-type": +_3d2.push("MochiKit.Base.filter(function (node) { return node.tagName == element.tagName; }, "+childElements("element.parentNode")+").length == 1"); +break; +case "empty": +_3d2.push("element.childNodes.length == 0"); +break; +case "enabled": +_3d2.push("(this.isUIElement(element) && element.disabled === false)"); +break; +case "disabled": +_3d2.push("(this.isUIElement(element) && element.disabled === true)"); +break; +case "checked": +_3d2.push("(this.isUIElement(element) && element.checked === true)"); +break; +case "not": +var _3db=new MochiKit.Selector.Selector(_3d8); +_3d2.push("!( "+_3db.buildMatchExpression()+")"); +break; +} +} +} +if(_3d3=_3d1.attributes){ +MochiKit.Base.map(function(_3dc){ +var _3dd="MochiKit.DOM.getNodeAttribute(element, "+repr(_3dc.name)+")"; +var _3de=function(_3df){ +return _3dd+".split("+repr(_3df)+")"; +}; +switch(_3dc.operator){ +case "=": +_3d2.push(_3dd+" == "+repr(_3dc.value)); +break; +case "~=": +_3d2.push(_3dd+" && MochiKit.Base.findValue("+_3de(" ")+", "+repr(_3dc.value)+") > -1"); +break; +case "^=": +_3d2.push(_3dd+".substring(0, "+_3dc.value.length+") == "+repr(_3dc.value)); +break; +case "$=": +_3d2.push(_3dd+".substring("+_3dd+".length - "+_3dc.value.length+") == "+repr(_3dc.value)); +break; +case "*=": +_3d2.push(_3dd+".match("+repr(_3dc.value)+")"); +break; +case "|=": +_3d2.push(_3dd+" && "+_3de("-")+"[0].toUpperCase() == "+repr(_3dc.value.toUpperCase())); +break; +case "!=": +_3d2.push(_3dd+" != "+repr(_3dc.value)); +break; +case "": +case undefined: +_3d2.push(_3dd+" != null"); +break; +default: +throw "Unknown operator "+_3dc.operator+" in selector"; +} +},_3d3); +} +return _3d2.join(" && "); +},compileMatcher:function(){ +this.match=new Function("element","if (!element.tagName) return false; return "+this.buildMatchExpression()); +},nthChild:function(_3e0,a,b,_3e3,_3e4){ +var _3e5=MochiKit.Base.filter(function(node){ +return node.nodeType==1; +},_3e0.parentNode.childNodes); +if(_3e4){ +_3e5=MochiKit.Base.filter(function(node){ +return node.tagName==_3e0.tagName; +},_3e5); +} +if(_3e3){ +_3e5=MochiKit.Iter.reversed(_3e5); +} +if(a){ +var _3e8=MochiKit.Base.findIdentical(_3e5,_3e0); +return ((_3e8+1-b)/a)%1==0; +}else{ +return b==MochiKit.Base.findIdentical(_3e5,_3e0)+1; +} +},isUIElement:function(_3e9){ +return MochiKit.Base.findValue(["input","button","select","option","textarea","object"],_3e9.tagName.toLowerCase())>-1; +},findElements:function(_3ea,axis){ +var _3ec; +if(axis==undefined){ +axis=""; +} +function inScope(_3ed,_3ee){ +if(axis==""){ +return MochiKit.DOM.isChildNode(_3ed,_3ee); +}else{ +if(axis==">"){ +return _3ed.parentNode==_3ee; +}else{ +if(axis=="+"){ +return _3ed==nextSiblingElement(_3ee); +}else{ +if(axis=="~"){ +var _3ef=_3ee; +while(_3ef=nextSiblingElement(_3ef)){ +if(_3ed==_3ef){ +return true; +} +} +return false; +}else{ +throw "Invalid axis: "+axis; +} +} +} +} +} +if(_3ec=MochiKit.DOM.getElement(this.params.id)){ +if(this.match(_3ec)){ +if(!_3ea||inScope(_3ec,_3ea)){ +return [_3ec]; +} +} +} +function nextSiblingElement(node){ +node=node.nextSibling; +while(node&&node.nodeType!=1){ +node=node.nextSibling; +} +return node; +} +if(axis==""){ +_3ea=(_3ea||MochiKit.DOM.currentDocument()).getElementsByTagName(this.params.tagName||"*"); +}else{ +if(axis==">"){ +if(!_3ea){ +throw "> combinator not allowed without preceeding expression"; +} +_3ea=MochiKit.Base.filter(function(node){ +return node.nodeType==1; +},_3ea.childNodes); +}else{ +if(axis=="+"){ +if(!_3ea){ +throw "+ combinator not allowed without preceeding expression"; +} +_3ea=nextSiblingElement(_3ea)&&[nextSiblingElement(_3ea)]; +}else{ +if(axis=="~"){ +if(!_3ea){ +throw "~ combinator not allowed without preceeding expression"; +} +var _3f2=[]; +while(nextSiblingElement(_3ea)){ +_3ea=nextSiblingElement(_3ea); +_3f2.push(_3ea); +} +_3ea=_3f2; +} +} +} +} +if(!_3ea){ +return []; +} +var _3f3=MochiKit.Base.filter(MochiKit.Base.bind(function(_3f4){ +return this.match(_3f4); +},this),_3ea); +return _3f3; +},repr:function(){ +return "Selector("+this.expression+")"; +},toString:MochiKit.Base.forwardCall("repr")}; +MochiKit.Base.update(MochiKit.Selector,{findChildElements:function(_3f5,_3f6){ +return MochiKit.Base.flattenArray(MochiKit.Base.map(function(_3f7){ +var _3f8=""; +return MochiKit.Iter.reduce(function(_3f9,expr){ +if(match=expr.match(/^[>+~]$/)){ +_3f8=match[0]; +return _3f9; +}else{ +var _3fb=new MochiKit.Selector.Selector(expr); +var _3fc=MochiKit.Iter.reduce(function(_3fd,_3fe){ +return MochiKit.Base.extend(_3fd,_3fb.findElements(_3fe||_3f5,_3f8)); +},_3f9,[]); +_3f8=""; +return _3fc; +} +},_3f7.replace(/(^\s+|\s+$)/g,"").split(/\s+/),[null]); +},_3f6)); +},findDocElements:function(){ +return MochiKit.Selector.findChildElements(MochiKit.DOM.currentDocument(),arguments); +},__new__:function(){ +var m=MochiKit.Base; +this.$$=this.findDocElements; +this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; +m.nameFunctions(this); +}}); +MochiKit.Selector.__new__(); +MochiKit.Base._exportSymbols(this,MochiKit.Selector); +if(typeof (dojo)!="undefined"){ +dojo.provide("MochiKit.Style"); +dojo.require("MochiKit.Base"); +dojo.require("MochiKit.DOM"); +} +if(typeof (JSAN)!="undefined"){ +JSAN.use("MochiKit.Base",[]); +JSAN.use("MochiKit.DOM",[]); +} +try{ +if(typeof (MochiKit.Base)=="undefined"){ +throw ""; +} +} +catch(e){ +throw "MochiKit.Style depends on MochiKit.Base!"; +} +try{ +if(typeof (MochiKit.DOM)=="undefined"){ +throw ""; +} +} +catch(e){ +throw "MochiKit.Style depends on MochiKit.DOM!"; +} +if(typeof (MochiKit.Style)=="undefined"){ +MochiKit.Style={}; +} +MochiKit.Style.NAME="MochiKit.Style"; +MochiKit.Style.VERSION="1.4"; +MochiKit.Style.__repr__=function(){ +return "["+this.NAME+" "+this.VERSION+"]"; +}; +MochiKit.Style.toString=function(){ +return this.__repr__(); +}; +MochiKit.Style.EXPORT_OK=[]; +MochiKit.Style.EXPORT=["setStyle","setOpacity","getStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"]; +MochiKit.Style.Dimensions=function(w,h){ +this.w=w; +this.h=h; +}; +MochiKit.Style.Dimensions.prototype.__repr__=function(){ +var repr=MochiKit.Base.repr; +return "{w: "+repr(this.w)+", h: "+repr(this.h)+"}"; +}; +MochiKit.Style.Dimensions.prototype.toString=function(){ +return this.__repr__(); +}; +MochiKit.Style.Coordinates=function(x,y){ +this.x=x; +this.y=y; +}; +MochiKit.Style.Coordinates.prototype.__repr__=function(){ +var repr=MochiKit.Base.repr; +return "{x: "+repr(this.x)+", y: "+repr(this.y)+"}"; +}; +MochiKit.Style.Coordinates.prototype.toString=function(){ +return this.__repr__(); +}; +MochiKit.Base.update(MochiKit.Style,{getStyle:function(elem,_407){ +var dom=MochiKit.DOM; +var d=dom._document; +elem=dom.getElement(elem); +_407=MochiKit.Base.camelize(_407); +if(!elem||elem==d){ +return undefined; +} +if(_407=="opacity"&&elem.filters){ +var _40a=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/); +if(_40a&&_40a[1]){ +return parseFloat(_40a[1])/100; +} +return 1; +} +var _40b=elem.style?elem.style[_407]:null; +if(!_40b){ +if(d.defaultView&&d.defaultView.getComputedStyle){ +var css=d.defaultView.getComputedStyle(elem,null); +_407=_407.replace(/([A-Z])/g,"-$1").toLowerCase(); +_40b=css?css.getPropertyValue(_407):null; +}else{ +if(elem.currentStyle){ +_40b=elem.currentStyle[_407]; +} +} +} +if(_407=="opacity"){ +_40b=parseFloat(_40b); +} +if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_407)!=-1)){ +if(MochiKit.Style.getStyle(elem,"position")=="static"){ +_40b="auto"; +} +} +return _40b=="auto"?null:_40b; +},setStyle:function(elem,_40e){ +elem=MochiKit.DOM.getElement(elem); +for(var name in _40e){ +if(name=="opacity"){ +MochiKit.Style.setOpacity(elem,_40e[name]); +}else{ +elem.style[MochiKit.Base.camelize(name)]=_40e[name]; +} +} +},setOpacity:function(elem,o){ +elem=MochiKit.DOM.getElement(elem); +var self=MochiKit.Style; +if(o==1){ +var _413=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)); +elem.style["opacity"]=_413?0.999999:1; +if(/MSIE/.test(navigator.userAgent)){ +elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,""); +} +}else{ +if(o<0.00001){ +o=0; +} +elem.style["opacity"]=o; +if(/MSIE/.test(navigator.userAgent)){ +elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+o*100+")"; +} +} +},getElementPosition:function(elem,_415){ +var self=MochiKit.Style; +var dom=MochiKit.DOM; +elem=dom.getElement(elem); +if(!elem||(!(elem.x&&elem.y)&&(!elem.parentNode===null||self.getStyle(elem,"display")=="none"))){ +return undefined; +} +var c=new self.Coordinates(0,0); +var box=null; +var _41a=null; +var d=MochiKit.DOM._document; +var de=d.documentElement; +var b=d.body; +if(!elem.parentNode&&elem.x&&elem.y){ +c.x+=elem.x||0; +c.y+=elem.y||0; +}else{ +if(elem.getBoundingClientRect){ +box=elem.getBoundingClientRect(); +c.x+=box.left+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0); +c.y+=box.top+(de.scrollTop||b.scrollTop)-(de.clientTop||0); +}else{ +if(elem.offsetParent){ +c.x+=elem.offsetLeft; +c.y+=elem.offsetTop; +_41a=elem.offsetParent; +if(_41a!=elem){ +while(_41a){ +c.x+=_41a.offsetLeft; +c.y+=_41a.offsetTop; +_41a=_41a.offsetParent; +} +} +var ua=navigator.userAgent.toLowerCase(); +if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(ua.indexOf("AppleWebKit")!=-1&&self.getStyle(elem,"position")=="absolute")){ +c.x-=b.offsetLeft; +c.y-=b.offsetTop; +} +} +} +} +if(typeof (_415)!="undefined"){ +_415=arguments.callee(_415); +if(_415){ +c.x-=(_415.x||0); +c.y-=(_415.y||0); +} +} +if(elem.parentNode){ +_41a=elem.parentNode; +}else{ +_41a=null; +} +while(_41a){ +var _41f=_41a.tagName.toUpperCase(); +if(_41f==="BODY"||_41f==="HTML"){ +break; +} +var disp=self.getStyle(_41a,"display"); +if(disp!="inline"&&disp!="table-row"){ +c.x-=_41a.scrollLeft; +c.y-=_41a.scrollTop; +} +if(_41a.parentNode){ +_41a=_41a.parentNode; +}else{ +_41a=null; +} +} +return c; +},setElementPosition:function(elem,_422,_423){ +elem=MochiKit.DOM.getElement(elem); +if(typeof (_423)=="undefined"){ +_423="px"; +} +var _424={}; +var _425=MochiKit.Base.isUndefinedOrNull; +if(!_425(_422.x)){ +_424["left"]=_422.x+_423; +} +if(!_425(_422.y)){ +_424["top"]=_422.y+_423; +} +MochiKit.DOM.updateNodeAttributes(elem,{"style":_424}); +},getElementDimensions:function(elem){ +var self=MochiKit.Style; +var dom=MochiKit.DOM; +if(typeof (elem.w)=="number"||typeof (elem.h)=="number"){ +return new self.Dimensions(elem.w||0,elem.h||0); +} +elem=dom.getElement(elem); +if(!elem){ +return undefined; +} +var disp=self.getStyle(elem,"display"); +if(disp!="none"&&disp!==""&&typeof (disp)!="undefined"){ +return new self.Dimensions(elem.offsetWidth||0,elem.offsetHeight||0); +} +var s=elem.style; +var _42b=s.visibility; +var _42c=s.position; +s.visibility="hidden"; +s.position="absolute"; +s.display=""; +var _42d=elem.offsetWidth; +var _42e=elem.offsetHeight; +s.display="none"; +s.position=_42c; +s.visibility=_42b; +return new self.Dimensions(_42d,_42e); +},setElementDimensions:function(elem,_430,_431){ +elem=MochiKit.DOM.getElement(elem); +if(typeof (_431)=="undefined"){ +_431="px"; +} +var _432={}; +var _433=MochiKit.Base.isUndefinedOrNull; +if(!_433(_430.w)){ +_432["width"]=_430.w+_431; +} +if(!_433(_430.h)){ +_432["height"]=_430.h+_431; +} +MochiKit.DOM.updateNodeAttributes(elem,{"style":_432}); +},setDisplayForElement:function(_434,_435){ +var _436=MochiKit.Base.extend(null,arguments,1); +var _437=MochiKit.DOM.getElement; +for(var i=0;i<_436.length;i++){ +_435=_437(_436[i]); +if(_435){ +_435.style.display=_434; +} +} +},getViewportDimensions:function(){ +var d=new MochiKit.Style.Dimensions(); +var w=MochiKit.DOM._window; +var b=MochiKit.DOM._document.body; +if(w.innerWidth){ +d.w=w.innerWidth; +d.h=w.innerHeight; +}else{ +if(b.parentElement.clientWidth){ +d.w=b.parentElement.clientWidth; +d.h=b.parentElement.clientHeight; +}else{ +if(b&&b.clientWidth){ +d.w=b.clientWidth; +d.h=b.clientHeight; +} +} +} +return d; +},getViewportPosition:function(){ +var c=new MochiKit.Style.Coordinates(0,0); +var d=MochiKit.DOM._document; +var de=d.documentElement; +var db=d.body; +if(de&&(de.scrollTop||de.scrollLeft)){ +c.x=de.scrollLeft; +c.y=de.scrollTop; +}else{ +if(db){ +c.x=db.scrollLeft; +c.y=db.scrollTop; +} +} +return c; +},__new__:function(){ +var m=MochiKit.Base; +this.elementPosition=this.getElementPosition; +this.elementDimensions=this.getElementDimensions; +this.hideElement=m.partial(this.setDisplayForElement,"none"); +this.showElement=m.partial(this.setDisplayForElement,"block"); +this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; +m.nameFunctions(this); +}}); +MochiKit.Style.__new__(); +MochiKit.Base._exportSymbols(this,MochiKit.Style); +if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.LoggingPane"); dojo.require("MochiKit.Logging"); dojo.require("MochiKit.Base"); @@ -3281,41 +4192,41 @@ MochiKit.LoggingPane.NAME="MochiKit.Logg MochiKit.LoggingPane={}; } MochiKit.LoggingPane.NAME="MochiKit.LoggingPane"; -MochiKit.LoggingPane.VERSION="1.3.1"; +MochiKit.LoggingPane.VERSION="1.4"; MochiKit.LoggingPane.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.LoggingPane.toString=function(){ return this.__repr__(); }; -MochiKit.LoggingPane.createLoggingPane=function(_426){ +MochiKit.LoggingPane.createLoggingPane=function(_441){ var m=MochiKit.LoggingPane; -_426=!(!_426); -if(m._loggingPane&&m._loggingPane.inline!=_426){ +_441=!(!_441); +if(m._loggingPane&&m._loggingPane.inline!=_441){ m._loggingPane.closePane(); m._loggingPane=null; } if(!m._loggingPane||m._loggingPane.closed){ -m._loggingPane=new m.LoggingPane(_426,MochiKit.Logging.logger); +m._loggingPane=new m.LoggingPane(_441,MochiKit.Logging.logger); } return m._loggingPane; }; -MochiKit.LoggingPane.LoggingPane=function(_427,_428){ -if(typeof (_428)=="undefined"||_428===null){ -_428=MochiKit.Logging.logger; +MochiKit.LoggingPane.LoggingPane=function(_443,_444){ +if(typeof (_444)=="undefined"||_444===null){ +_444=MochiKit.Logging.logger; } -this.logger=_428; -var _429=MochiKit.Base.update; -var _430=MochiKit.Base.updatetree; +this.logger=_444; +var _445=MochiKit.Base.update; +var _446=MochiKit.Base.updatetree; var bind=MochiKit.Base.bind; -var _431=MochiKit.Base.clone; +var _448=MochiKit.Base.clone; var win=window; var uid="_MochiKit_LoggingPane"; if(typeof (MochiKit.DOM)!="undefined"){ win=MochiKit.DOM.currentWindow(); } -if(!_427){ -var url=win.location.href.split("?")[0].replace(/[:\/.><&]/g,"_"); +if(!_443){ +var url=win.location.href.split("?")[0].replace(/[#:\/.><&-]/g,"_"); var name=uid+"_"+url; var nwin=win.open("",name,"dependent,resizable,height=200"); if(!nwin){ @@ -3329,89 +4240,89 @@ this.doc=doc; } var doc=win.document; this.doc=doc; -var _434=doc.getElementById(uid); -var _435=!!_434; -if(_434&&typeof (_434.loggingPane)!="undefined"){ -_434.loggingPane.logger=this.logger; -_434.loggingPane.buildAndApplyFilter(); -return _434.loggingPane; +var _44f=doc.getElementById(uid); +var _450=!!_44f; +if(_44f&&typeof (_44f.loggingPane)!="undefined"){ +_44f.loggingPane.logger=this.logger; +_44f.loggingPane.buildAndApplyFilter(); +return _44f.loggingPane; } -if(_435){ -var _436; -while((_436=_434.firstChild)){ -_434.removeChild(_436); +if(_450){ +var _451; +while((_451=_44f.firstChild)){ +_44f.removeChild(_451); } }else{ -_434=doc.createElement("div"); -_434.id=uid; +_44f=doc.createElement("div"); +_44f.id=uid; } -_434.loggingPane=this; -var _437=doc.createElement("input"); -var _438=doc.createElement("input"); -var _439=doc.createElement("button"); -var _440=doc.createElement("button"); -var _441=doc.createElement("button"); -var _442=doc.createElement("button"); -var _443=doc.createElement("div"); -var _444=doc.createElement("div"); -var _445=uid+"_Listener"; -this.colorTable=_431(this.colorTable); -var _446=[]; -var _447=null; -var _448=function(msg){ -var _449=msg.level; -if(typeof (_449)=="number"){ -_449=MochiKit.Logging.LogLevel[_449]; +_44f.loggingPane=this; +var _452=doc.createElement("input"); +var _453=doc.createElement("input"); +var _454=doc.createElement("button"); +var _455=doc.createElement("button"); +var _456=doc.createElement("button"); +var _457=doc.createElement("button"); +var _458=doc.createElement("div"); +var _459=doc.createElement("div"); +var _45a=uid+"_Listener"; +this.colorTable=_448(this.colorTable); +var _45b=[]; +var _45c=null; +var _45d=function(msg){ +var _45f=msg.level; +if(typeof (_45f)=="number"){ +_45f=MochiKit.Logging.LogLevel[_45f]; } -return _449; +return _45f; }; -var _450=function(msg){ +var _460=function(msg){ return msg.info.join(" "); }; -var _451=bind(function(msg){ -var _452=_448(msg); -var text=_450(msg); -var c=this.colorTable[_452]; +var _462=bind(function(msg){ +var _464=_45d(msg); +var text=_460(msg); +var c=this.colorTable[_464]; var p=doc.createElement("span"); -p.className="MochiKit-LogMessage MochiKit-LogLevel-"+_452; +p.className="MochiKit-LogMessage MochiKit-LogLevel-"+_464; p.style.cssText="margin: 0px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; wrap-option: emergency; color: "+c; -p.appendChild(doc.createTextNode(_452+": "+text)); -_444.appendChild(p); -_444.appendChild(doc.createElement("br")); -if(_443.offsetHeight>_443.scrollHeight){ -_443.scrollTop=0; +p.appendChild(doc.createTextNode(_464+": "+text)); +_459.appendChild(p); +_459.appendChild(doc.createElement("br")); +if(_458.offsetHeight>_458.scrollHeight){ +_458.scrollTop=0; }else{ -_443.scrollTop=_443.scrollHeight; +_458.scrollTop=_458.scrollHeight; } },this); -var _454=function(msg){ -_446[_446.length]=msg; -_451(msg); +var _468=function(msg){ +_45b[_45b.length]=msg; +_462(msg); }; -var _455=function(){ -var _456,infore; +var _46a=function(){ +var _46b,_46c; try{ -_456=new RegExp(_437.value); -infore=new RegExp(_438.value); +_46b=new RegExp(_452.value); +_46c=new RegExp(_453.value); } catch(e){ logDebug("Error in filter regex: "+e.message); return null; } return function(msg){ -return (_456.test(_448(msg))&&infore.test(_450(msg))); +return (_46b.test(_45d(msg))&&_46c.test(_460(msg))); }; }; -var _457=function(){ -while(_444.firstChild){ -_444.removeChild(_444.firstChild); +var _46e=function(){ +while(_459.firstChild){ +_459.removeChild(_459.firstChild); } }; -var _458=function(){ -_446=[]; -_457(); +var _46f=function(){ +_45b=[]; +_46e(); }; -var _459=bind(function(){ +var _470=bind(function(){ if(this.closed){ return; } @@ -3419,85 +4330,94 @@ MochiKit.LoggingPane._loggingPane=null; if(MochiKit.LoggingPane._loggingPane==this){ MochiKit.LoggingPane._loggingPane=null; } -this.logger.removeListener(_445); -_434.loggingPane=null; -if(_427){ -_434.parentNode.removeChild(_434); +this.logger.removeListener(_45a); +try{ +try{ +_44f.loggingPane=null; +} +catch(e){ +logFatal("Bookmarklet was closed incorrectly."); +} +if(_443){ +_44f.parentNode.removeChild(_44f); }else{ this.win.close(); } +} +catch(e){ +} },this); -var _460=function(){ -_457(); -for(var i=0;i<_446.length;i++){ -var msg=_446[i]; -if(_447===null||_447(msg)){ -_451(msg); +var _471=function(){ +_46e(); +for(var i=0;i<_45b.length;i++){ +var msg=_45b[i]; +if(_45c===null||_45c(msg)){ +_462(msg); } } }; this.buildAndApplyFilter=function(){ -_447=_455(); -_460(); -this.logger.removeListener(_445); -this.logger.addListener(_445,_447,_454); +_45c=_46a(); +_471(); +this.logger.removeListener(_45a); +this.logger.addListener(_45a,_45c,_468); }; -var _461=bind(function(){ -_446=this.logger.getMessages(); -_460(); +var _474=bind(function(){ +_45b=this.logger.getMessages(); +_471(); },this); -var _462=bind(function(_463){ -_463=_463||window.event; -key=_463.which||_463.keyCode; +var _475=bind(function(_476){ +_476=_476||window.event; +key=_476.which||_476.keyCode; if(key==13){ this.buildAndApplyFilter(); } },this); -var _464="display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: "+this.logFont; -if(_427){ -_464+="; height: 10em; border-top: 2px solid black"; +var _477="display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: "+this.logFont; +if(_443){ +_477+="; height: 10em; border-top: 2px solid black"; }else{ -_464+="; height: 100%;"; +_477+="; height: 100%;"; } -_434.style.cssText=_464; -if(!_435){ -doc.body.appendChild(_434); +_44f.style.cssText=_477; +if(!_450){ +doc.body.appendChild(_44f); } -_464={"cssText":"width: 33%; display: inline; font: "+this.logFont}; -_430(_437,{"value":"FATAL|ERROR|WARNING|INFO|DEBUG","onkeypress":_462,"style":_464}); -_434.appendChild(_437); -_430(_438,{"value":".*","onkeypress":_462,"style":_464}); -_434.appendChild(_438); -_464="width: 8%; display:inline; font: "+this.logFont; -_439.appendChild(doc.createTextNode("Filter")); -_439.onclick=bind("buildAndApplyFilter",this); -_439.style.cssText=_464; -_434.appendChild(_439); -_440.appendChild(doc.createTextNode("Load")); -_440.onclick=_461; -_440.style.cssText=_464; -_434.appendChild(_440); -_441.appendChild(doc.createTextNode("Clear")); -_441.onclick=_458; -_441.style.cssText=_464; -_434.appendChild(_441); -_442.appendChild(doc.createTextNode("Close")); -_442.onclick=_459; -_442.style.cssText=_464; -_434.appendChild(_442); -_443.style.cssText="overflow: auto; width: 100%"; -_444.style.cssText="width: 100%; height: "+(_427?"8em":"100%"); -_443.appendChild(_444); -_434.appendChild(_443); +_477={"cssText":"width: 33%; display: inline; font: "+this.logFont}; +_446(_452,{"value":"FATAL|ERROR|WARNING|INFO|DEBUG","onkeypress":_475,"style":_477}); +_44f.appendChild(_452); +_446(_453,{"value":".*","onkeypress":_475,"style":_477}); +_44f.appendChild(_453); +_477="width: 8%; display:inline; font: "+this.logFont; +_454.appendChild(doc.createTextNode("Filter")); +_454.onclick=bind("buildAndApplyFilter",this); +_454.style.cssText=_477; +_44f.appendChild(_454); +_455.appendChild(doc.createTextNode("Load")); +_455.onclick=_474; +_455.style.cssText=_477; +_44f.appendChild(_455); +_456.appendChild(doc.createTextNode("Clear")); +_456.onclick=_46f; +_456.style.cssText=_477; +_44f.appendChild(_456); +_457.appendChild(doc.createTextNode("Close")); +_457.onclick=_470; +_457.style.cssText=_477; +_44f.appendChild(_457); +_458.style.cssText="overflow: auto; width: 100%"; +_459.style.cssText="width: 100%; height: "+(_443?"8em":"100%"); +_458.appendChild(_459); +_44f.appendChild(_458); this.buildAndApplyFilter(); -_461(); -if(_427){ +_474(); +if(_443){ this.win=undefined; }else{ this.win=win; } -this.inline=_427; -this.closePane=_459; +this.inline=_443; +this.closePane=_470; this.closed=false; return this; }; @@ -3514,9 +4434,13 @@ dojo.require("MochiKit.Base"); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.Color"); dojo.require("MochiKit.Base"); +dojo.require("MochiKit.DOM"); +dojo.require("MochiKit.Style"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Base",[]); +JSAN.use("MochiKit.DOM",[]); +JSAN.use("MochiKit.Style",[]); } try{ if(typeof (MochiKit.Base)=="undefined"){ @@ -3526,64 +4450,80 @@ throw "MochiKit.Color depends on MochiKi catch(e){ throw "MochiKit.Color depends on MochiKit.Base"; } +try{ +if(typeof (MochiKit.DOM)=="undefined"){ +throw ""; +} +} +catch(e){ +throw "MochiKit.Color depends on MochiKit.DOM"; +} +try{ +if(typeof (MochiKit.Style)=="undefined"){ +throw ""; +} +} +catch(e){ +throw "MochiKit.Color depends on MochiKit.Style"; +} if(typeof (MochiKit.Color)=="undefined"){ MochiKit.Color={}; } MochiKit.Color.NAME="MochiKit.Color"; -MochiKit.Color.VERSION="1.3.1"; +MochiKit.Color.VERSION="1.4"; MochiKit.Color.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.Color.toString=function(){ return this.__repr__(); }; -MochiKit.Color.Color=function(red,_466,blue,_468){ -if(typeof (_468)=="undefined"||_468===null){ -_468=1; +MochiKit.Color.Color=function(red,_479,blue,_47b){ +if(typeof (_47b)=="undefined"||_47b===null){ +_47b=1; } -this.rgb={r:red,g:_466,b:blue,a:_468}; +this.rgb={r:red,g:_479,b:blue,a:_47b}; }; -MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_469){ +MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_47c){ var rgb=this.rgb; var m=MochiKit.Color; -return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_469); +return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_47c); },colorWithHue:function(hue){ var hsl=this.asHSL(); hsl.h=hue; var m=MochiKit.Color; return m.Color.fromHSL(hsl); -},colorWithSaturation:function(_473){ +},colorWithSaturation:function(_482){ var hsl=this.asHSL(); -hsl.s=_473; +hsl.s=_482; var m=MochiKit.Color; return m.Color.fromHSL(hsl); -},colorWithLightness:function(_474){ +},colorWithLightness:function(_485){ var hsl=this.asHSL(); -hsl.l=_474; +hsl.l=_485; var m=MochiKit.Color; return m.Color.fromHSL(hsl); -},darkerColorWithLevel:function(_475){ +},darkerColorWithLevel:function(_488){ var hsl=this.asHSL(); -hsl.l=Math.max(hsl.l-_475,0); +hsl.l=Math.max(hsl.l-_488,0); var m=MochiKit.Color; return m.Color.fromHSL(hsl); -},lighterColorWithLevel:function(_476){ +},lighterColorWithLevel:function(_48b){ var hsl=this.asHSL(); -hsl.l=Math.min(hsl.l+_476,1); +hsl.l=Math.min(hsl.l+_48b,1); var m=MochiKit.Color; return m.Color.fromHSL(hsl); -},blendedColor:function(_477,_478){ -if(typeof (_478)=="undefined"||_478===null){ -_478=0.5; +},blendedColor:function(_48e,_48f){ +if(typeof (_48f)=="undefined"||_48f===null){ +_48f=0.5; } -var sf=1-_478; +var sf=1-_48f; var s=this.rgb; -var d=_477.rgb; -var df=_478; +var d=_48e.rgb; +var df=_48f; return MochiKit.Color.Color.fromRGB((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df)); -},compareRGB:function(_481){ +},compareRGB:function(_494){ var a=this.asRGB(); -var b=_481.asRGB(); +var b=_494.asRGB(); return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]); },isLight:function(){ return this.asHSL().b>0.5; @@ -3657,114 +4597,114 @@ return this.__class__.NAME+"("+col.join( var col=[c.r,c.g,c.b,c.a]; return this.__class__.NAME+"("+col.join(", ")+")"; }}; -MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_486,blue,_487){ -var _488=MochiKit.Color.Color; +MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_4ab,blue,_4ad){ +var _4ae=MochiKit.Color.Color; if(arguments.length==1){ var rgb=red; red=rgb.r; -_486=rgb.g; +_4ab=rgb.g; blue=rgb.b; if(typeof (rgb.a)=="undefined"){ -_487=undefined; +_4ad=undefined; }else{ -_487=rgb.a; +_4ad=rgb.a; } } -return new _488(red,_486,blue,_487); -},fromHSL:function(hue,_489,_490,_491){ +return new _4ae(red,_4ab,blue,_4ad); +},fromHSL:function(hue,_4b1,_4b2,_4b3){ var m=MochiKit.Color; return m.Color.fromRGB(m.hslToRGB.apply(m,arguments)); -},fromHSV:function(hue,_492,_493,_494){ +},fromHSV:function(hue,_4b6,_4b7,_4b8){ var m=MochiKit.Color; return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments)); },fromName:function(name){ -var _495=MochiKit.Color.Color; +var _4bb=MochiKit.Color.Color; if(name.charAt(0)=="\""){ name=name.substr(1,name.length-2); } -var _496=_495._namedColors[name.toLowerCase()]; -if(typeof (_496)=="string"){ -return _495.fromHexString(_496); +var _4bc=_4bb._namedColors[name.toLowerCase()]; +if(typeof (_4bc)=="string"){ +return _4bb.fromHexString(_4bc); }else{ if(name=="transparent"){ -return _495.transparentColor(); +return _4bb.transparentColor(); } } return null; -},fromString:function(_497){ +},fromString:function(_4bd){ var self=MochiKit.Color.Color; -var _498=_497.substr(0,3); -if(_498=="rgb"){ -return self.fromRGBString(_497); +var _4bf=_4bd.substr(0,3); +if(_4bf=="rgb"){ +return self.fromRGBString(_4bd); }else{ -if(_498=="hsl"){ -return self.fromHSLString(_497); +if(_4bf=="hsl"){ +return self.fromHSLString(_4bd); }else{ -if(_497.charAt(0)=="#"){ -return self.fromHexString(_497); +if(_4bd.charAt(0)=="#"){ +return self.fromHexString(_4bd); } } } -return self.fromName(_497); -},fromHexString:function(_499){ -if(_499.charAt(0)=="#"){ -_499=_499.substring(1); +return self.fromName(_4bd); +},fromHexString:function(_4c0){ +if(_4c0.charAt(0)=="#"){ +_4c0=_4c0.substring(1); } -var _500=[]; +var _4c1=[]; var i,hex; -if(_499.length==3){ +if(_4c0.length==3){ for(i=0;i<3;i++){ -hex=_499.substr(i,1); -_500.push(parseInt(hex+hex,16)/255); +hex=_4c0.substr(i,1); +_4c1.push(parseInt(hex+hex,16)/255); } }else{ for(i=0;i<6;i+=2){ -hex=_499.substr(i,2); -_500.push(parseInt(hex,16)/255); +hex=_4c0.substr(i,2); +_4c1.push(parseInt(hex,16)/255); } } -var _501=MochiKit.Color.Color; -return _501.fromRGB.apply(_501,_500); -},_fromColorString:function(pre,_503,_504,_505){ -if(_505.indexOf(pre)===0){ -_505=_505.substring(_505.indexOf("(",3)+1,_505.length-1); +var _4c4=MochiKit.Color.Color; +return _4c4.fromRGB.apply(_4c4,_4c1); +},_fromColorString:function(pre,_4c6,_4c7,_4c8){ +if(_4c8.indexOf(pre)===0){ +_4c8=_4c8.substring(_4c8.indexOf("(",3)+1,_4c8.length-1); } -var _506=_505.split(/\s*,\s*/); -var _507=[]; -for(var i=0;i<_506.length;i++){ -var c=_506[i]; +var _4c9=_4c8.split(/\s*,\s*/); +var _4ca=[]; +for(var i=0;i<_4c9.length;i++){ +var c=_4c9[i]; var val; -var _508=c.substring(c.length-3); +var _4ce=c.substring(c.length-3); if(c.charAt(c.length-1)=="%"){ val=0.01*parseFloat(c.substring(0,c.length-1)); }else{ -if(_508=="deg"){ +if(_4ce=="deg"){ val=parseFloat(c)/360; }else{ -if(_508=="rad"){ +if(_4ce=="rad"){ val=parseFloat(c)/(Math.PI*2); }else{ -val=_504[i]*parseFloat(c); +val=_4c7[i]*parseFloat(c); } } } -_507.push(val); +_4ca.push(val); } -return this[_503].apply(this,_507); -},fromComputedStyle:function(elem,_509,_510){ +return this[_4c6].apply(this,_4ca); +},fromComputedStyle:function(elem,_4d0){ var d=MochiKit.DOM; var cls=MochiKit.Color.Color; for(elem=d.getElement(elem);elem;elem=elem.parentNode){ -var _511=d.computedStyle.apply(d,arguments); -if(!_511){ +var _4d3=MochiKit.Style.getStyle.apply(d,arguments); +if(!_4d3){ continue; } -var _512=cls.fromString(_511); -if(!_512){ +var _4d4=cls.fromString(_4d3); +if(!_4d4){ break; } -if(_512.asRGB().a>0){ -return _512; +if(_4d4.asRGB().a>0){ +return _4d4; } } return null; @@ -3777,13 +4717,13 @@ return MochiKit.Base.clone(MochiKit.Colo },namedColors:function(){ return MochiKit.Base.clone(MochiKit.Color.Color._namedColors); }}); -MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_513){ -v*=_513; +MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_4da){ +v*=_4da; if(v<0){ return 0; }else{ -if(v>_513){ -return _513; +if(v>_4da){ +return _4da; }else{ return v; } @@ -3811,118 +4751,118 @@ return val; } } return val; -},hsvToRGB:function(hue,_516,_517,_518){ +},hsvToRGB:function(hue,_4e0,_4e1,_4e2){ if(arguments.length==1){ var hsv=hue; hue=hsv.h; -_516=hsv.s; -_517=hsv.v; -_518=hsv.a; +_4e0=hsv.s; +_4e1=hsv.v; +_4e2=hsv.a; } var red; -var _519; +var _4e5; var blue; -if(_516===0){ -red=0; -_519=0; -blue=0; +if(_4e0===0){ +red=_4e1; +_4e5=_4e1; +blue=_4e1; }else{ var i=Math.floor(hue*6); var f=(hue*6)-i; -var p=_517*(1-_516); -var q=_517*(1-(_516*f)); -var t=_517*(1-(_516*(1-f))); +var p=_4e1*(1-_4e0); +var q=_4e1*(1-(_4e0*f)); +var t=_4e1*(1-(_4e0*(1-f))); switch(i){ case 1: red=q; -_519=_517; +_4e5=_4e1; blue=p; break; case 2: red=p; -_519=_517; +_4e5=_4e1; blue=t; break; case 3: red=p; -_519=q; -blue=_517; +_4e5=q; +blue=_4e1; break; case 4: red=t; -_519=p; -blue=_517; +_4e5=p; +blue=_4e1; break; case 5: -red=_517; -_519=p; +red=_4e1; +_4e5=p; blue=q; break; case 6: case 0: -red=_517; -_519=t; +red=_4e1; +_4e5=t; blue=p; break; } } -return {r:red,g:_519,b:blue,a:_518}; -},hslToRGB:function(hue,_521,_522,_523){ +return {r:red,g:_4e5,b:blue,a:_4e2}; +},hslToRGB:function(hue,_4ed,_4ee,_4ef){ if(arguments.length==1){ var hsl=hue; hue=hsl.h; -_521=hsl.s; -_522=hsl.l; -_523=hsl.a; +_4ed=hsl.s; +_4ee=hsl.l; +_4ef=hsl.a; } var red; -var _524; +var _4f2; var blue; -if(_521===0){ -red=_522; -_524=_522; -blue=_522; +if(_4ed===0){ +red=_4ee; +_4f2=_4ee; +blue=_4ee; }else{ var m2; -if(_522<=0.5){ -m2=_522*(1+_521); +if(_4ee<=0.5){ +m2=_4ee*(1+_4ed); }else{ -m2=_522+_521-(_522*_521); +m2=_4ee+_4ed-(_4ee*_4ed); } -var m1=(2*_522)-m2; +var m1=(2*_4ee)-m2; var f=MochiKit.Color._hslValue; var h6=hue*6; red=f(m1,m2,h6+2); -_524=f(m1,m2,h6); +_4f2=f(m1,m2,h6); blue=f(m1,m2,h6-2); } -return {r:red,g:_524,b:blue,a:_523}; -},rgbToHSV:function(red,_528,blue,_529){ +return {r:red,g:_4f2,b:blue,a:_4ef}; +},rgbToHSV:function(red,_4f9,blue,_4fb){ if(arguments.length==1){ var rgb=red; red=rgb.r; -_528=rgb.g; +_4f9=rgb.g; blue=rgb.b; -_529=rgb.a; +_4fb=rgb.a; } -var max=Math.max(Math.max(red,_528),blue); -var min=Math.min(Math.min(red,_528),blue); +var max=Math.max(Math.max(red,_4f9),blue); +var min=Math.min(Math.min(red,_4f9),blue); var hue; -var _532; -var _533=max; +var _500; +var _501=max; if(min==max){ hue=0; -_532=0; +_500=0; }else{ -var _534=(max-min); -_532=_534/max; +var _502=(max-min); +_500=_502/max; if(red==max){ -hue=(_528-blue)/_534; +hue=(_4f9-blue)/_502; }else{ -if(_528==max){ -hue=2+((blue-red)/_534); +if(_4f9==max){ +hue=2+((blue-red)/_502); }else{ -hue=4+((red-_528)/_534); +hue=4+((red-_4f9)/_502); } } hue/=6; @@ -3933,37 +4873,37 @@ hue-=1; hue-=1; } } -return {h:hue,s:_532,v:_533,a:_529}; -},rgbToHSL:function(red,_535,blue,_536){ +return {h:hue,s:_500,v:_501,a:_4fb}; +},rgbToHSL:function(red,_504,blue,_506){ if(arguments.length==1){ var rgb=red; red=rgb.r; -_535=rgb.g; +_504=rgb.g; blue=rgb.b; -_536=rgb.a; +_506=rgb.a; } -var max=Math.max(red,Math.max(_535,blue)); -var min=Math.min(red,Math.min(_535,blue)); +var max=Math.max(red,Math.max(_504,blue)); +var min=Math.min(red,Math.min(_504,blue)); var hue; -var _537; -var _538=(max+min)/2; -var _539=max-min; -if(_539===0){ +var _50b; +var _50c=(max+min)/2; +var _50d=max-min; +if(_50d===0){ hue=0; -_537=0; +_50b=0; }else{ -if(_538<=0.5){ -_537=_539/(max+min); +if(_50c<=0.5){ +_50b=_50d/(max+min); }else{ -_537=_539/(2-max-min); +_50b=_50d/(2-max-min); } if(red==max){ -hue=(_535-blue)/_539; +hue=(_504-blue)/_50d; }else{ -if(_535==max){ -hue=2+((blue-red)/_539); +if(_504==max){ +hue=2+((blue-red)/_50d); }else{ -hue=4+((red-_535)/_539); +hue=4+((red-_504)/_50d); } } hue/=6; @@ -3974,33 +4914,33 @@ hue-=1; hue-=1; } } -return {h:hue,s:_537,l:_538,a:_536}; +return {h:hue,s:_50b,l:_50c,a:_506}; },toColorPart:function(num){ num=Math.round(num); -var _540=num.toString(16); +var _50f=num.toString(16); if(num<16){ -return "0"+_540; +return "0"+_50f; } -return _540; +return _50f; },__new__:function(){ var m=MochiKit.Base; this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]); this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]); -var _541=1/3; -var _542={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[_541,_541,_541],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*_541,2*_541,2*_541],magenta:[1,0,1],orange:[1,0.5,0],purple:[0.5,0,0.5],red:[1,0,0],transparent:[0,0,0,0],white:[1,1,1],yellow:[1,1,0]}; -var _543=function(name,r,g,b,a){ +var _511=1/3; +var _512={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[_511,_511,_511],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*_511,2*_511,2*_511],magenta:[1,0,1],orange:[1,0.5,0],purple:[0.5,0,0.5],red:[1,0,0],transparent:[0,0,0,0],white:[1,1,1],yellow:[1,1,0]}; +var _513=function(name,r,g,b,a){ var rval=this.fromRGB(r,g,b,a); this[name]=function(){ return rval; }; return rval; }; -for(var k in _542){ +for(var k in _512){ var name=k+"Color"; -var _545=m.concat([_543,this.Color,name],_542[k]); -this.Color[name]=m.bind.apply(null,_545); +var _51c=m.concat([_513,this.Color,name],_512[k]); +this.Color[name]=m.bind.apply(null,_51c); } -var _546=function(){ +var _51d=function(){ for(var i=0;i1){ var src=MochiKit.DOM.getElement(arguments[0]); var sig=arguments[1]; var obj=arguments[2]; var func=arguments[3]; -for(var i=_562.length-1;i>=0;i--){ -var o=_562[i]; -if(o[0]===src&&o[1]===sig&&o[4]===obj&&o[5]===func){ +for(var i=_55f.length-1;i>=0;i--){ +var o=_55f[i]; +if(o.source===src&&o.signal===sig&&o.objOrFunc===obj&&o.funcOrStr===func){ self._disconnect(o); -_562.splice(i,1); +if(!self._lock){ +_55f.splice(i,1); +}else{ +self._dirty=true; +} return true; } } }else{ -var idx=m.findIdentical(_562,_561); +var idx=m.findIdentical(_55f,_55d); if(idx>=0){ -self._disconnect(_561); -_562.splice(idx,1); +self._disconnect(_55d); +if(!self._lock){ +_55f.splice(idx,1); +}else{ +self._dirty=true; +} return true; } } return false; +},disconnectAllTo:function(_568,_569){ +var self=MochiKit.Signal; +var _56b=self._observers; +var _56c=self._disconnect; +var _56d=self._lock; +var _56e=self._dirty; +if(typeof (_569)==="undefined"){ +_569=null; +} +for(var i=_56b.length-1;i>=0;i--){ +var _570=_56b[i]; +if(_570.objOrFunc===_568&&(_569===null||_570.funcOrStr===_569)){ +_56c(_570); +if(_56d){ +_56e=true; +}else{ +_56b.splice(i,1); +} +} +} +self._dirty=_56e; },disconnectAll:function(src,sig){ src=MochiKit.DOM.getElement(src); var m=MochiKit.Base; -var _563=m.flattenArguments(m.extend(null,arguments,1)); +var _574=m.flattenArguments(m.extend(null,arguments,1)); var self=MochiKit.Signal; -var _564=self._disconnect; -var _565=self._observers; -if(_563.length===0){ -for(var i=_565.length-1;i>=0;i--){ -var _566=_565[i]; -if(_566[0]===src){ -_564(_566); -_565.splice(i,1); +var _576=self._disconnect; +var _577=self._observers; +var i,_579; +var _57a=self._lock; +var _57b=self._dirty; +if(_574.length===0){ +for(i=_577.length-1;i>=0;i--){ +_579=_577[i]; +if(_579.source===src){ +_576(_579); +if(!_57a){ +_577.splice(i,1); +}else{ +_57b=true; } } +} }else{ var sigs={}; -for(var i=0;i<_563.length;i++){ -sigs[_563[i]]=true; +for(i=0;i<_574.length;i++){ +sigs[_574[i]]=true; } -for(var i=_565.length-1;i>=0;i--){ -var _566=_565[i]; -if(_566[0]===src&&_566[1] in sigs){ -_564(_566); -_565.splice(i,1); +for(i=_577.length-1;i>=0;i--){ +_579=_577[i]; +if(_579.source===src&&_579.signal in sigs){ +_576(_579); +if(!_57a){ +_577.splice(i,1); +}else{ +_57b=true; } } } +} +self._dirty=_57b; },signal:function(src,sig){ -var _568=MochiKit.Signal._observers; +var self=MochiKit.Signal; +var _580=self._observers; src=MochiKit.DOM.getElement(src); var args=MochiKit.Base.extend(null,arguments,2); -var _569=[]; -for(var i=0;i<_568.length;i++){ -var _570=_568[i]; -if(_570[0]===src&&_570[1]===sig){ +var _582=[]; +self._lock=true; +for(var i=0;i<_580.length;i++){ +var _584=_580[i]; +if(_584.source===src&&_584.signal===sig){ try{ -_570[2].apply(src,args); +_584.listener.apply(src,args); } catch(e){ -_569.push(e); +_582.push(e); } } } -if(_569.length==1){ -throw _569[0]; +self._lock=false; +if(self._dirty){ +self._dirty=false; +for(var i=_580.length-1;i>=0;i--){ +if(!_580[i].connected){ +_580.splice(i,1); +} +} +} +if(_582.length==1){ +throw _582[0]; }else{ -if(_569.length>1){ +if(_582.length>1){ var e=new Error("Multiple errors thrown in handling 'sig', see errors property"); -e.errors=_569; +e.errors=_582; throw e; } } }}); MochiKit.Signal.EXPORT_OK=[]; -MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll"]; +MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"]; MochiKit.Signal.__new__=function(win){ var m=MochiKit.Base; this._document=document; this._window=win; +this._lock=false; +this._dirty=false; try{ this.connect(window,"onunload",this._unloadCache); } @@ -4385,7 +5492,7 @@ MochiKit.Signal.__new__(this); m.nameFunctions(this); }; MochiKit.Signal.__new__(this); -if(!MochiKit.__compat__){ +if(MochiKit.__export__){ connect=MochiKit.Signal.connect; disconnect=MochiKit.Signal.disconnect; disconnectAll=MochiKit.Signal.disconnectAll; @@ -4393,220 +5500,382 @@ if(typeof (dojo)!="undefined"){ } MochiKit.Base._exportSymbols(this,MochiKit.Signal); if(typeof (dojo)!="undefined"){ +dojo.provide("MochiKit.Position"); +dojo.require("MochiKit.Base"); +dojo.require("MochiKit.DOM"); +dojo.require("MochiKit.Style"); +} +if(typeof (JSAN)!="undefined"){ +JSAN.use("MochiKit.Base",[]); +JSAN.use("MochiKit.DOM",[]); +JSAN.use("MochiKit.Style",[]); +} +try{ +if(typeof (MochiKit.Base)=="undefined"||typeof (MochiKit.Style)=="undefined"||typeof (MochiKit.DOM)=="undefined"){ +throw ""; +} +} +catch(e){ +throw "MochiKit.Style depends on MochiKit.Base, MochiKit.DOM, and MochiKit.Style!"; +} +if(typeof (MochiKit.Position)=="undefined"){ +MochiKit.Position={}; +} +MochiKit.Position.NAME="MochiKit.Position"; +MochiKit.Position.VERSION="1.4"; +MochiKit.Position.__repr__=function(){ +return "["+this.NAME+" "+this.VERSION+"]"; +}; +MochiKit.Position.toString=function(){ +return this.__repr__(); +}; +MochiKit.Position.EXPORT_OK=[]; +MochiKit.Position.EXPORT=[]; +MochiKit.Base.update(MochiKit.Position,{includeScrollOffsets:false,prepare:function(){ +var _588=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0; +var _589=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0; +this.windowOffset=new MochiKit.Style.Coordinates(_588,_589); +},cumulativeOffset:function(_58a){ +var _58b=0; +var _58c=0; +do{ +_58b+=_58a.offsetTop||0; +_58c+=_58a.offsetLeft||0; +_58a=_58a.offsetParent; +}while(_58a); +return new MochiKit.Style.Coordinates(_58c,_58b); +},realOffset:function(_58d){ +var _58e=0; +var _58f=0; +do{ +_58e+=_58d.scrollTop||0; +_58f+=_58d.scrollLeft||0; +_58d=_58d.parentNode; +}while(_58d); +return new MochiKit.Style.Coordinates(_58f,_58e); +},within:function(_590,x,y){ +if(this.includeScrollOffsets){ +return this.withinIncludingScrolloffsets(_590,x,y); +} +this.xcomp=x; +this.ycomp=y; +this.offset=this.cumulativeOffset(_590); +if(_590.style.position=="fixed"){ +this.offset.x+=this.windowOffset.x; +this.offset.y+=this.windowOffset.y; +} +return (y>=this.offset.y&&y=this.offset.x&&x=this.offset.y&&this.ycomp=this.offset.x&&this.xcomp"+el.innerHTML+""; -},_roundTopCorners:function(el,_585,_586){ -var _587=this._createCorner(_586); +},_renderBorder:function(el,_5bc){ +var _5bd="1px solid "+this._borderColor(_5bc); +var _5be="border-left: "+_5bd; +var _5bf="border-right: "+_5bd; +var _5c0="style='"+_5be+";"+_5bf+"'"; +el.innerHTML="
"+el.innerHTML+"
"; +},_roundTopCorners:function(el,_5c2,_5c3){ +var _5c4=this._createCorner(_5c3); for(var i=0;i=0;i--){ -_590.appendChild(this._createCornerSlice(_588,_589,i,"bottom")); +_5c9.appendChild(this._createCornerSlice(_5c7,_5c8,i,"bottom")); } el.style.paddingBottom=0; -el.appendChild(_590); -},_createCorner:function(_591){ +el.appendChild(_5c9); +},_createCorner:function(_5cb){ var dom=MochiKit.DOM; -return dom.DIV({style:{backgroundColor:_591.toString()}}); -},_createCornerSlice:function(_592,_593,n,_594){ -var _595=MochiKit.DOM.SPAN(); -var _596=_595.style; -_596.backgroundColor=_592.toString(); -_596.display="block"; -_596.height="1px"; -_596.overflow="hidden"; -_596.fontSize="1px"; -var _597=this._borderColor(_592,_593); +return dom.DIV({style:{backgroundColor:_5cb.toString()}}); +},_createCornerSlice:function(_5cd,_5ce,n,_5d0){ +var _5d1=MochiKit.DOM.SPAN(); +var _5d2=_5d1.style; +_5d2.backgroundColor=_5cd.toString(); +_5d2.display="block"; +_5d2.height="1px"; +_5d2.overflow="hidden"; +_5d2.fontSize="1px"; +var _5d3=this._borderColor(_5cd,_5ce); if(this.options.border&&n===0){ -_596.borderTopStyle="solid"; -_596.borderTopWidth="1px"; -_596.borderLeftWidth="0px"; -_596.borderRightWidth="0px"; -_596.borderBottomWidth="0px"; -_596.height="0px"; -_596.borderColor=_597.toString(); +_5d2.borderTopStyle="solid"; +_5d2.borderTopWidth="1px"; +_5d2.borderLeftWidth="0px"; +_5d2.borderRightWidth="0px"; +_5d2.borderBottomWidth="0px"; +_5d2.height="0px"; +_5d2.borderColor=_5d3.toString(); }else{ -if(_597){ -_596.borderColor=_597.toString(); -_596.borderStyle="solid"; -_596.borderWidth="0px 1px"; +if(_5d3){ +_5d2.borderColor=_5d3.toString(); +_5d2.borderStyle="solid"; +_5d2.borderWidth="0px 1px"; } } if(!this.options.compact&&(n==(this.options.numSlices-1))){ -_596.height="2px"; +_5d2.height="2px"; } -this._setMargin(_595,n,_594); -this._setBorder(_595,n,_594); -return _595; -},_setOptions:function(_598){ +this._setMargin(_5d1,n,_5d0); +this._setBorder(_5d1,n,_5d0); +return _5d1; +},_setOptions:function(_5d4){ this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false}; -MochiKit.Base.update(this.options,_598); +MochiKit.Base.update(this.options,_5d4); this.options.numSlices=(this.options.compact?2:4); },_whichSideTop:function(){ -var _599=this.options.corners; -if(this._hasString(_599,"all","top")){ +var _5d5=this.options.corners; +if(this._hasString(_5d5,"all","top")){ return ""; } -var _600=(_599.indexOf("tl")!=-1); -var _601=(_599.indexOf("tr")!=-1); -if(_600&&_601){ +var _5d6=(_5d5.indexOf("tl")!=-1); +var _5d7=(_5d5.indexOf("tr")!=-1); +if(_5d6&&_5d7){ return ""; } -if(_600){ +if(_5d6){ return "left"; } -if(_601){ +if(_5d7){ return "right"; } return ""; },_whichSideBottom:function(){ -var _602=this.options.corners; -if(this._hasString(_602,"all","bottom")){ +var _5d8=this.options.corners; +if(this._hasString(_5d8,"all","bottom")){ return ""; } -var _603=(_602.indexOf("bl")!=-1); -var _604=(_602.indexOf("br")!=-1); -if(_603&&_604){ +var _5d9=(_5d8.indexOf("bl")!=-1); +var _5da=(_5d8.indexOf("br")!=-1); +if(_5d9&&_5da){ return ""; } -if(_603){ +if(_5d9){ return "left"; } -if(_604){ +if(_5da){ return "right"; } return ""; -},_borderColor:function(_605,_606){ -if(_605=="transparent"){ -return _606; +},_borderColor:function(_5db,_5dc){ +if(_5db=="transparent"){ +return _5dc; }else{ if(this.options.border){ return this.options.border; }else{ if(this.options.blend){ -return _606.blendedColor(_605); +return _5dc.blendedColor(_5db); } } } return ""; -},_setMargin:function(el,n,_607){ -var _608=this._marginSize(n)+"px"; -var _609=(_607=="top"?this._whichSideTop():this._whichSideBottom()); -var _610=el.style; -if(_609=="left"){ -_610.marginLeft=_608; -_610.marginRight="0px"; +},_setMargin:function(el,n,_5df){ +var _5e0=this._marginSize(n)+"px"; +var _5e1=(_5df=="top"?this._whichSideTop():this._whichSideBottom()); +var _5e2=el.style; +if(_5e1=="left"){ +_5e2.marginLeft=_5e0; +_5e2.marginRight="0px"; }else{ -if(_609=="right"){ -_610.marginRight=_608; -_610.marginLeft="0px"; +if(_5e1=="right"){ +_5e2.marginRight=_5e0; +_5e2.marginLeft="0px"; }else{ -_610.marginLeft=_608; -_610.marginRight=_608; +_5e2.marginLeft=_5e0; +_5e2.marginRight=_5e0; } } -},_setBorder:function(el,n,_611){ -var _612=this._borderSize(n)+"px"; -var _613=(_611=="top"?this._whichSideTop():this._whichSideBottom()); -var _614=el.style; -if(_613=="left"){ -_614.borderLeftWidth=_612; -_614.borderRightWidth="0px"; +},_setBorder:function(el,n,_5e5){ +var _5e6=this._borderSize(n)+"px"; +var _5e7=(_5e5=="top"?this._whichSideTop():this._whichSideBottom()); +var _5e8=el.style; +if(_5e7=="left"){ +_5e8.borderLeftWidth=_5e6; +_5e8.borderRightWidth="0px"; }else{ -if(_613=="right"){ -_614.borderRightWidth=_612; -_614.borderLeftWidth="0px"; +if(_5e7=="right"){ +_5e8.borderRightWidth=_5e6; +_5e8.borderLeftWidth="0px"; }else{ -_614.borderLeftWidth=_612; -_614.borderRightWidth=_612; +_5e8.borderLeftWidth=_5e6; +_5e8.borderRightWidth=_5e6; } } },_marginSize:function(n){ @@ -4615,39 +5884,39 @@ if(o.compact&&o.blend){ } var o=this.options; if(o.compact&&o.blend){ -var _615=[1,0]; -return _615[n]; +var _5eb=[1,0]; +return _5eb[n]; }else{ if(o.compact){ -var _616=[2,1]; -return _616[n]; +var _5ec=[2,1]; +return _5ec[n]; }else{ if(o.blend){ -var _617=[3,2,1,0]; -return _617[n]; +var _5ed=[3,2,1,0]; +return _5ed[n]; }else{ -var _618=[5,3,2,1]; -return _618[n]; +var _5ee=[5,3,2,1]; +return _5ee[n]; } } } },_borderSize:function(n){ var o=this.options; -var _619; +var _5f1; if(o.compact&&(o.blend||this.isTransparent)){ return 1; }else{ if(o.compact){ -_619=[1,0]; +_5f1=[1,0]; }else{ if(o.blend){ -_619=[2,1,1,1]; +_5f1=[2,1,1,1]; }else{ if(o.border){ -_619=[0,2,0,0]; +_5f1=[0,2,0,0]; }else{ if(this.isTransparent){ -_619=[5,3,2,1]; +_5f1=[5,3,2,1]; }else{ return 0; } @@ -4655,7 +5924,7 @@ return 0; } } } -return _619[n]; +return _5f1[n]; },_hasString:function(str){ for(var i=1;i=(_61c||i)){ +_61c=i; +} +},this.effects); +_618=_61c||_618; +break; +case "break": +ma(function(e){ +e.finalize(); +},this.effects); +break; +} +_617.startOn+=_618; +_617.finishOn+=_618; +if(!_617.options.queue.limit||this.effects.length<_617.options.queue.limit){ +this.effects.push(_617); +} +if(!this.interval){ +this.interval=this.startLoop(MochiKit.Base.bind(this.loop,this),40); +} +},startLoop:function(func,_621){ +return setInterval(func,_621); +},remove:function(_622){ +this.effects=MochiKit.Base.filter(function(e){ +return e!=_622; +},this.effects); +if(!this.effects.length){ +this.stopLoop(this.interval); +this.interval=null; +} +},stopLoop:function(_624){ +clearInterval(_624); +},loop:function(){ +var _625=new Date().getTime(); +MochiKit.Base.map(function(_626){ +_626.loop(_625); +},this.effects); +}}); +MochiKit.Visual.Queues={instances:{},get:function(_627){ +if(typeof (_627)!="string"){ +return _627; +} +if(!this.instances[_627]){ +this.instances[_627]=new MochiKit.Visual.ScopedQueue(); +} +return this.instances[_627]; +}}; +MochiKit.Visual.Queue=MochiKit.Visual.Queues.get("global"); +MochiKit.Visual.DefaultOptions={transition:MochiKit.Visual.Transitions.sinoidal,duration:1,fps:25,sync:false,from:0,to:1,delay:0,queue:"parallel"}; +MochiKit.Visual.Base=function(){ +}; +MochiKit.Visual.Base.prototype={__class__:MochiKit.Visual.Base,start:function(_628){ +var v=MochiKit.Visual; +this.options=MochiKit.Base.setdefault(_628||{},v.DefaultOptions); +this.currentFrame=0; +this.state="idle"; +this.startOn=this.options.delay*1000; +this.finishOn=this.startOn+(this.options.duration*1000); +this.event("beforeStart"); +if(!this.options.sync){ +v.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).add(this); +} +},loop:function(_62a){ +if(_62a>=this.startOn){ +if(_62a>=this.finishOn){ +return this.finalize(); +} +var pos=(_62a-this.startOn)/(this.finishOn-this.startOn); +var _62c=Math.round(pos*this.options.fps*this.options.duration); +if(_62c>this.currentFrame){ +this.render(pos); +this.currentFrame=_62c; +} +} +},render:function(pos){ +if(this.state=="idle"){ +this.state="running"; +this.event("beforeSetup"); +this.setup(); +this.event("afterSetup"); +} +if(this.state=="running"){ +if(this.options.transition){ +pos=this.options.transition(pos); +} +pos*=(this.options.to-this.options.from); +pos+=this.options.from; +this.event("beforeUpdate"); +this.update(pos); +this.event("afterUpdate"); +} +},cancel:function(){ +if(!this.options.sync){ +MochiKit.Visual.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).remove(this); +} +this.state="finished"; +},finalize:function(){ +this.render(1); +this.cancel(); +this.event("beforeFinish"); +this.finish(); +this.event("afterFinish"); +},setup:function(){ +},finish:function(){ +},update:function(_62e){ +},event:function(_62f){ +if(this.options[_62f+"Internal"]){ +this.options[_62f+"Internal"](this); +} +if(this.options[_62f]){ +this.options[_62f](this); +} +},repr:function(){ +return "["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"; +}}; +MochiKit.Visual.Parallel=function(_630,_631){ +var cls=arguments.callee; +if(!(this instanceof cls)){ +return new cls(_630,_631); +} +this.__init__(_630,_631); +}; +MochiKit.Visual.Parallel.prototype=new MochiKit.Visual.Base(); +MochiKit.Base.update(MochiKit.Visual.Parallel.prototype,{__class__:MochiKit.Visual.Parallel,__init__:function(_633,_634){ +this.effects=_633||[]; +this.start(_634); +},update:function(_635){ +MochiKit.Base.map(function(_636){ +_636.render(_635); +},this.effects); +},finish:function(){ +MochiKit.Base.map(function(_637){ +_637.finalize(); +},this.effects); +}}); +MochiKit.Visual.Opacity=function(_638,_639){ +var cls=arguments.callee; +if(!(this instanceof cls)){ +return new cls(_638,_639); +} +this.__init__(_638,_639); +}; +MochiKit.Visual.Opacity.prototype=new MochiKit.Visual.Base(); +MochiKit.Base.update(MochiKit.Visual.Opacity.prototype,{__class__:MochiKit.Visual.Opacity,__init__:function(_63b,_63c){ +var b=MochiKit.Base; +var s=MochiKit.Style; +this.element=MochiKit.DOM.getElement(_63b); +if(this.element.currentStyle&&(!this.element.currentStyle.hasLayout)){ +s.setStyle(this.element,{zoom:1}); +} +_63c=b.update({from:s.getStyle(this.element,"opacity")||0,to:1},_63c||{}); +this.start(_63c); +},update:function(_63f){ +MochiKit.Style.setStyle(this.element,{"opacity":_63f}); +}}); +MochiKit.Visual.Move=function(_640,_641){ +var cls=arguments.callee; +if(!(this instanceof cls)){ +return new cls(_640,_641); +} +this.__init__(_640,_641); +}; +MochiKit.Visual.Move.prototype=new MochiKit.Visual.Base(); +MochiKit.Base.update(MochiKit.Visual.Move.prototype,{__class__:MochiKit.Visual.Move,__init__:function(_643,_644){ +this.element=MochiKit.DOM.getElement(_643); +_644=MochiKit.Base.update({x:0,y:0,mode:"relative"},_644||{}); +this.start(_644); +},setup:function(){ +MochiKit.DOM.makePositioned(this.element); +var s=this.element.style; +var _646=s.visibility; +var _647=s.display; +if(_647=="none"){ +s.visibility="hidden"; +s.display=""; +} +this.originalLeft=parseFloat(MochiKit.Style.getStyle(this.element,"left")||"0"); +this.originalTop=parseFloat(MochiKit.Style.getStyle(this.element,"top")||"0"); +if(this.options.mode=="absolute"){ +this.options.x-=this.originalLeft; +this.options.y-=this.originalTop; +} +if(_647=="none"){ +s.visibility=_646; +s.display=_647; +} +},update:function(_648){ +MochiKit.Style.setStyle(this.element,{left:Math.round(this.options.x*_648+this.originalLeft)+"px",top:Math.round(this.options.y*_648+this.originalTop)+"px"}); +}}); +MochiKit.Visual.Scale=function(_649,_64a,_64b){ +var cls=arguments.callee; +if(!(this instanceof cls)){ +return new cls(_649,_64a,_64b); +} +this.__init__(_649,_64a,_64b); +}; +MochiKit.Visual.Scale.prototype=new MochiKit.Visual.Base(); +MochiKit.Base.update(MochiKit.Visual.Scale.prototype,{__class__:MochiKit.Visual.Scale,__init__:function(_64d,_64e,_64f){ +this.element=MochiKit.DOM.getElement(_64d); +_64f=MochiKit.Base.update({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:_64e},_64f||{}); +this.start(_64f); +},setup:function(){ +this.restoreAfterFinish=this.options.restoreAfterFinish||false; +this.elementPositioning=MochiKit.Style.getStyle(this.element,"position"); +var ma=MochiKit.Base.map; +var b=MochiKit.Base.bind; +this.originalStyle={}; +ma(b(function(k){ +this.originalStyle[k]=this.element.style[k]; +},this),["top","left","width","height","fontSize"]); +this.originalTop=this.element.offsetTop; +this.originalLeft=this.element.offsetLeft; +var _653=MochiKit.Style.getStyle(this.element,"font-size")||"100%"; +ma(b(function(_654){ +if(_653.indexOf(_654)>0){ +this.fontSize=parseFloat(_653); +this.fontSizeType=_654; +} +},this),["em","px","%"]); +this.factor=(this.options.scaleTo-this.options.scaleFrom)/100; +if(/^content/.test(this.options.scaleMode)){ +this.dims=[this.element.scrollHeight,this.element.scrollWidth]; +}else{ +if(this.options.scaleMode=="box"){ +this.dims=[this.element.offsetHeight,this.element.offsetWidth]; +}else{ +this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]; +} +} +},update:function(_655){ +var _656=(this.options.scaleFrom/100)+(this.factor*_655); +if(this.options.scaleContent&&this.fontSize){ +MochiKit.Style.setStyle(this.element,{fontSize:this.fontSize*_656+this.fontSizeType}); +} +this.setDimensions(this.dims[0]*_656,this.dims[1]*_656); +},finish:function(){ +if(this.restoreAfterFinish){ +MochiKit.Style.setStyle(this.element,this.originalStyle); +} +},setDimensions:function(_657,_658){ +var d={}; +var r=Math.round; +if(/MSIE/.test(navigator.userAgent)){ +r=Math.ceil; +} +if(this.options.scaleX){ +d.width=r(_658)+"px"; +} +if(this.options.scaleY){ +d.height=r(_657)+"px"; +} +if(this.options.scaleFromCenter){ +var topd=(_657-this.dims[0])/2; +var _65c=(_658-this.dims[1])/2; +if(this.elementPositioning=="absolute"){ +if(this.options.scaleY){ +d.top=this.originalTop-topd+"px"; +} +if(this.options.scaleX){ +d.left=this.originalLeft-_65c+"px"; +} +}else{ +if(this.options.scaleY){ +d.top=-topd+"px"; +} +if(this.options.scaleX){ +d.left=-_65c+"px"; +} +} +} +MochiKit.Style.setStyle(this.element,d); +}}); +MochiKit.Visual.Highlight=function(_65d,_65e){ +var cls=arguments.callee; +if(!(this instanceof cls)){ +return new cls(_65d,_65e); +} +this.__init__(_65d,_65e); +}; +MochiKit.Visual.Highlight.prototype=new MochiKit.Visual.Base(); +MochiKit.Base.update(MochiKit.Visual.Highlight.prototype,{__class__:MochiKit.Visual.Highlight,__init__:function(_660,_661){ +this.element=MochiKit.DOM.getElement(_660); +_661=MochiKit.Base.update({startcolor:"#ffff99"},_661||{}); +this.start(_661); +},setup:function(){ +var b=MochiKit.Base; +var s=MochiKit.Style; +if(s.getStyle(this.element,"display")=="none"){ +this.cancel(); +return; +} +this.oldStyle={backgroundImage:s.getStyle(this.element,"background-image")}; +s.setStyle(this.element,{backgroundImage:"none"}); +if(!this.options.endcolor){ +this.options.endcolor=MochiKit.Color.Color.fromBackground(this.element).toHexString(); +} +if(b.isUndefinedOrNull(this.options.restorecolor)){ +this.options.restorecolor=s.getStyle(this.element,"background-color"); +} +this._base=b.map(b.bind(function(i){ +return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16); +},this),[0,1,2]); +this._delta=b.map(b.bind(function(i){ +return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]; +},this),[0,1,2]); +},update:function(_666){ +var m="#"; +MochiKit.Base.map(MochiKit.Base.bind(function(i){ +m+=MochiKit.Color.toColorPart(Math.round(this._base[i]+this._delta[i]*_666)); +},this),[0,1,2]); +MochiKit.Style.setStyle(this.element,{backgroundColor:m}); +},finish:function(){ +MochiKit.Style.setStyle(this.element,MochiKit.Base.update(this.oldStyle,{backgroundColor:this.options.restorecolor})); +}}); +MochiKit.Visual.ScrollTo=function(_669,_66a){ +var cls=arguments.callee; +if(!(this instanceof cls)){ +return new cls(_669,_66a); +} +this.__init__(_669,_66a); +}; +MochiKit.Visual.ScrollTo.prototype=new MochiKit.Visual.Base(); +MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype,{__class__:MochiKit.Visual.ScrollTo,__init__:function(_66c,_66d){ +this.element=MochiKit.DOM.getElement(_66c); +this.start(_66d||{}); +},setup:function(){ +var p=MochiKit.Position; +p.prepare(); +var _66f=p.cumulativeOffset(this.element); +if(this.options.offset){ +_66f.y+=this.options.offset; +} +var max; +if(window.innerHeight){ +max=window.innerHeight-window.height; +}else{ +if(document.documentElement&&document.documentElement.clientHeight){ +max=document.documentElement.clientHeight-document.body.scrollHeight; +}else{ +if(document.body){ +max=document.body.clientHeight-document.body.scrollHeight; +} +} +} +this.scrollStart=p.windowOffset.y; +this.delta=(_66f.y>max?max:_66f.y)-this.scrollStart; +},update:function(_671){ +var p=MochiKit.Position; +p.prepare(); +window.scrollTo(p.windowOffset.x,this.scrollStart+(_671*this.delta)); +}}); +MochiKit.Visual.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; +MochiKit.Visual.Morph=function(_673,_674){ +var cls=arguments.callee; +if(!(this instanceof cls)){ +return new cls(_673,_674); +} +this.__init__(_673,_674); +}; +MochiKit.Visual.Morph.prototype=new MochiKit.Visual.Base(); +MochiKit.Base.update(MochiKit.Visual.Morph.prototype,{__class__:MochiKit.Visual.Morph,__init__:function(_676,_677){ +this.element=MochiKit.DOM.getElement(_676); +this.start(_677||{}); +},setup:function(){ +var b=MochiKit.Base; +var _679=this.options.style; +this.styleStart={}; +this.styleEnd={}; +this.units={}; +var _67a,unit; +for(var s in _679){ +_67a=_679[s]; +s=b.camelize(s); +if(MochiKit.Visual.CSS_LENGTH.test(_67a)){ +var _67d=_67a.match(/^([\+\-]?[0-9\.]+)(.*)$/); +_67a=parseFloat(_67d[1]); +unit=(_67d.length==3)?_67d[2]:null; +this.styleEnd[s]=_67a; +this.units[s]=unit; +_67a=MochiKit.Style.getStyle(this.element,s); +_67d=_67a.match(/^([\+\-]?[0-9\.]+)(.*)$/); +_67a=parseFloat(_67d[1]); +this.styleStart[s]=_67a; +}else{ +var c=MochiKit.Color.Color; +_67a=c.fromString(_67a); +if(_67a){ +this.units[s]="color"; +this.styleEnd[s]=_67a.toHexString(); +_67a=MochiKit.Style.getStyle(this.element,s); +this.styleStart[s]=c.fromString(_67a).toHexString(); +this.styleStart[s]=b.map(b.bind(function(i){ +return parseInt(this.styleStart[s].slice(i*2+1,i*2+3),16); +},this),[0,1,2]); +this.styleEnd[s]=b.map(b.bind(function(i){ +return parseInt(this.styleEnd[s].slice(i*2+1,i*2+3),16); +},this),[0,1,2]); +} +} +} +},update:function(_681){ +var _682; +for(var s in this.styleStart){ +if(this.units[s]=="color"){ +var m="#"; +var _685=this.styleStart[s]; +var end=this.styleEnd[s]; +MochiKit.Base.map(MochiKit.Base.bind(function(i){ +m+=MochiKit.Color.toColorPart(Math.round(_685[i]+(end[i]-_685[i])*_681)); +},this),[0,1,2]); +this.element.style[s]=m; +}else{ +_682=this.styleStart[s]+Math.round((this.styleEnd[s]-this.styleStart[s])*_681*1000)/1000+this.units[s]; +this.element.style[s]=_682; +} +} +}}); +MochiKit.Visual.fade=function(_688,_689){ +var s=MochiKit.Style; +var _68b=s.getStyle(_688,"opacity"); +_689=MochiKit.Base.update({from:s.getStyle(_688,"opacity")||1,to:0,afterFinishInternal:function(_68c){ +if(_68c.options.to!==0){ +return; +} +s.hideElement(_68c.element); +s.setStyle(_68c.element,{"opacity":_68b}); +}},_689||{}); +return new MochiKit.Visual.Opacity(_688,_689); +}; +MochiKit.Visual.appear=function(_68d,_68e){ +var s=MochiKit.Style; +var v=MochiKit.Visual; +_68e=MochiKit.Base.update({from:(s.getStyle(_68d,"display")=="none"?0:s.getStyle(_68d,"opacity")||0),to:1,afterFinishInternal:function(_691){ +v.forceRerendering(_691.element); +},beforeSetupInternal:function(_692){ +s.setStyle(_692.element,{"opacity":_692.options.from}); +s.showElement(_692.element); +}},_68e||{}); +return new v.Opacity(_68d,_68e); +}; +MochiKit.Visual.puff=function(_693,_694){ +var s=MochiKit.Style; +var v=MochiKit.Visual; +_693=MochiKit.DOM.getElement(_693); +var _697={position:s.getStyle(_693,"position"),top:_693.style.top,left:_693.style.left,width:_693.style.width,height:_693.style.height,opacity:s.getStyle(_693,"opacity")}; +_694=MochiKit.Base.update({beforeSetupInternal:function(_698){ +MochiKit.Position.absolutize(_698.effects[0].element); +},afterFinishInternal:function(_699){ +s.hideElement(_699.effects[0].element); +s.setStyle(_699.effects[0].element,_697); +},scaleContent:true,scaleFromCenter:true},_694||{}); +return new v.Parallel([new v.Scale(_693,200,{sync:true,scaleFromCenter:_694.scaleFromCenter,scaleContent:_694.scaleContent,restoreAfterFinish:true}),new v.Opacity(_693,{sync:true,to:0})],_694); +}; +MochiKit.Visual.blindUp=function(_69a,_69b){ +var d=MochiKit.DOM; +_69a=d.getElement(_69a); +var _69d=d.makeClipping(_69a); +_69b=MochiKit.Base.update({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(_69e){ +MochiKit.Style.hideElement(_69e.element); +d.undoClipping(_69e.element,_69d); +}},_69b||{}); +return new MochiKit.Visual.Scale(_69a,0,_69b); +}; +MochiKit.Visual.blindDown=function(_69f,_6a0){ +var d=MochiKit.DOM; +var s=MochiKit.Style; +_69f=d.getElement(_69f); +var _6a3=s.getElementDimensions(_69f); +var _6a4; +_6a0=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_6a3.h,originalWidth:_6a3.w},restoreAfterFinish:true,afterSetupInternal:function(_6a5){ +_6a4=d.makeClipping(_6a5.element); +s.setStyle(_6a5.element,{height:"0px"}); +s.showElement(_6a5.element); +},afterFinishInternal:function(_6a6){ +d.undoClipping(_6a6.element,_6a4); +}},_6a0||{}); +return new MochiKit.Visual.Scale(_69f,100,_6a0); +}; +MochiKit.Visual.switchOff=function(_6a7,_6a8){ +var d=MochiKit.DOM; +_6a7=d.getElement(_6a7); +var _6aa=MochiKit.Style.getStyle(_6a7,"opacity"); +var _6ab; +_6a8=MochiKit.Base.update({duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetupInternal:function(_6ac){ +d.makePositioned(_6ac.element); +_6ab=d.makeClipping(_6ac.element); +},afterFinishInternal:function(_6ad){ +MochiKit.Style.hideElement(_6ad.element); +d.undoClipping(_6ad.element,_6ab); +d.undoPositioned(_6ad.element); +MochiKit.Style.setStyle(_6ad.element,{"opacity":_6aa}); +}},_6a8||{}); +var v=MochiKit.Visual; +return new v.appear(_6a7,{duration:0.4,from:0,transition:v.Transitions.flicker,afterFinishInternal:function(_6af){ +new v.Scale(_6af.element,1,_6a8); +}}); +}; +MochiKit.Visual.dropOut=function(_6b0,_6b1){ +var d=MochiKit.DOM; +var s=MochiKit.Style; +_6b0=d.getElement(_6b0); +var _6b4={top:s.getStyle(_6b0,"top"),left:s.getStyle(_6b0,"left"),opacity:s.getStyle(_6b0,"opacity")}; +_6b1=MochiKit.Base.update({duration:0.5,distance:100,beforeSetupInternal:function(_6b5){ +d.makePositioned(_6b5.effects[0].element); +},afterFinishInternal:function(_6b6){ +s.hideElement(_6b6.effects[0].element); +d.undoPositioned(_6b6.effects[0].element); +s.setStyle(_6b6.effects[0].element,_6b4); +}},_6b1||{}); +var v=MochiKit.Visual; +return new v.Parallel([new v.Move(_6b0,{x:0,y:_6b1.distance,sync:true}),new v.Opacity(_6b0,{sync:true,to:0})],_6b1); +}; +MochiKit.Visual.shake=function(_6b8,_6b9){ +var d=MochiKit.DOM; +var v=MochiKit.Visual; +var s=MochiKit.Style; +_6b8=d.getElement(_6b8); +_6b9=MochiKit.Base.update({x:-20,y:0,duration:0.05,afterFinishInternal:function(_6bd){ +d.undoPositioned(_6bd.element); +s.setStyle(_6bd.element,_6be); +}},_6b9||{}); +var _6be={top:s.getStyle(_6b8,"top"),left:s.getStyle(_6b8,"left")}; +return new v.Move(_6b8,{x:20,y:0,duration:0.05,afterFinishInternal:function(_6bf){ +new v.Move(_6bf.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(_6c0){ +new v.Move(_6c0.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(_6c1){ +new v.Move(_6c1.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(_6c2){ +new v.Move(_6c2.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(_6c3){ +new v.Move(_6c3.element,_6b9); +}}); +}}); +}}); +}}); +}}); +}; +MochiKit.Visual.slideDown=function(_6c4,_6c5){ +var d=MochiKit.DOM; +var b=MochiKit.Base; +var s=MochiKit.Style; +_6c4=d.getElement(_6c4); +if(!_6c4.firstChild){ +throw "MochiKit.Visual.slideDown must be used on a element with a child"; +} +d.removeEmptyTextNodes(_6c4); +var _6c9=s.getStyle(_6c4.firstChild,"bottom")||0; +var _6ca=s.getElementDimensions(_6c4); +var _6cb; +_6c5=b.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_6ca.h,originalWidth:_6ca.w},restoreAfterFinish:true,afterSetupInternal:function(_6cc){ +d.makePositioned(_6cc.element); +d.makePositioned(_6cc.element.firstChild); +if(/Opera/.test(navigator.userAgent)){ +s.setStyle(_6cc.element,{top:""}); +} +_6cb=d.makeClipping(_6cc.element); +s.setStyle(_6cc.element,{height:"0px"}); +s.showElement(_6cc.element); +},afterUpdateInternal:function(_6cd){ +s.setStyle(_6cd.element.firstChild,{bottom:(_6cd.dims[0]-_6cd.element.clientHeight)+"px"}); +},afterFinishInternal:function(_6ce){ +d.undoClipping(_6ce.element,_6cb); +if(/MSIE/.test(navigator.userAgent)){ +d.undoPositioned(_6ce.element); +d.undoPositioned(_6ce.element.firstChild); +}else{ +d.undoPositioned(_6ce.element.firstChild); +d.undoPositioned(_6ce.element); +} +s.setStyle(_6ce.element.firstChild,{bottom:_6c9}); +}},_6c5||{}); +return new MochiKit.Visual.Scale(_6c4,100,_6c5); +}; +MochiKit.Visual.slideUp=function(_6cf,_6d0){ +var d=MochiKit.DOM; +var b=MochiKit.Base; +var s=MochiKit.Style; +_6cf=d.getElement(_6cf); +if(!_6cf.firstChild){ +throw "MochiKit.Visual.slideUp must be used on a element with a child"; +} +d.removeEmptyTextNodes(_6cf); +var _6d4=s.getStyle(_6cf.firstChild,"bottom"); +var _6d5; +_6d0=b.update({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(_6d6){ +d.makePositioned(_6d6.element); +d.makePositioned(_6d6.element.firstChild); +if(/Opera/.test(navigator.userAgent)){ +s.setStyle(_6d6.element,{top:""}); +} +_6d5=d.makeClipping(_6d6.element); +s.showElement(_6d6.element); +},afterUpdateInternal:function(_6d7){ +s.setStyle(_6d7.element.firstChild,{bottom:(_6d7.dims[0]-_6d7.element.clientHeight)+"px"}); +},afterFinishInternal:function(_6d8){ +s.hideElement(_6d8.element); +d.undoClipping(_6d8.element,_6d5); +d.undoPositioned(_6d8.element.firstChild); +d.undoPositioned(_6d8.element); +s.setStyle(_6d8.element.firstChild,{bottom:_6d4}); +}},_6d0||{}); +return new MochiKit.Visual.Scale(_6cf,0,_6d0); +}; +MochiKit.Visual.squish=function(_6d9,_6da){ +var d=MochiKit.DOM; +var b=MochiKit.Base; +var _6dd; +_6da=b.update({restoreAfterFinish:true,beforeSetupInternal:function(_6de){ +_6dd=d.makeClipping(_6de.element); +},afterFinishInternal:function(_6df){ +MochiKit.Style.hideElement(_6df.element); +d.undoClipping(_6df.element,_6dd); +}},_6da||{}); +return new MochiKit.Visual.Scale(_6d9,/Opera/.test(navigator.userAgent)?1:0,_6da); +}; +MochiKit.Visual.grow=function(_6e0,_6e1){ +var d=MochiKit.DOM; +var v=MochiKit.Visual; +var s=MochiKit.Style; +_6e0=d.getElement(_6e0); +_6e1=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.full,scaleContent:true,scaleFromCenter:false},_6e1||{}); +var _6e5={top:_6e0.style.top,left:_6e0.style.left,height:_6e0.style.height,width:_6e0.style.width,opacity:s.getStyle(_6e0,"opacity")}; +var dims=s.getElementDimensions(_6e0); +var _6e7,_6e8; +var _6e9,_6ea; +switch(_6e1.direction){ +case "top-left": +_6e7=_6e8=_6e9=_6ea=0; +break; +case "top-right": +_6e7=dims.w; +_6e8=_6ea=0; +_6e9=-dims.w; +break; +case "bottom-left": +_6e7=_6e9=0; +_6e8=dims.h; +_6ea=-dims.h; +break; +case "bottom-right": +_6e7=dims.w; +_6e8=dims.h; +_6e9=-dims.w; +_6ea=-dims.h; +break; +case "center": +_6e7=dims.w/2; +_6e8=dims.h/2; +_6e9=-dims.w/2; +_6ea=-dims.h/2; +break; +} +var _6eb=MochiKit.Base.update({beforeSetupInternal:function(_6ec){ +s.setStyle(_6ec.effects[0].element,{height:"0px"}); +s.showElement(_6ec.effects[0].element); +},afterFinishInternal:function(_6ed){ +d.undoClipping(_6ed.effects[0].element); +d.undoPositioned(_6ed.effects[0].element); +s.setStyle(_6ed.effects[0].element,_6e5); +}},_6e1||{}); +return new v.Move(_6e0,{x:_6e7,y:_6e8,duration:0.01,beforeSetupInternal:function(_6ee){ +s.hideElement(_6ee.element); +d.makeClipping(_6ee.element); +d.makePositioned(_6ee.element); +},afterFinishInternal:function(_6ef){ +new v.Parallel([new v.Opacity(_6ef.element,{sync:true,to:1,from:0,transition:_6e1.opacityTransition}),new v.Move(_6ef.element,{x:_6e9,y:_6ea,sync:true,transition:_6e1.moveTransition}),new v.Scale(_6ef.element,100,{scaleMode:{originalHeight:dims.h,originalWidth:dims.w},sync:true,scaleFrom:/Opera/.test(navigator.userAgent)?1:0,transition:_6e1.scaleTransition,scaleContent:_6e1.scaleContent,scaleFromCenter:_6e1.scaleFromCenter,restoreAfterFinish:true})],_6eb); +}}); +}; +MochiKit.Visual.shrink=function(_6f0,_6f1){ +var d=MochiKit.DOM; +var v=MochiKit.Visual; +var s=MochiKit.Style; +_6f0=d.getElement(_6f0); +_6f1=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.none,scaleContent:true,scaleFromCenter:false},_6f1||{}); +var _6f5={top:_6f0.style.top,left:_6f0.style.left,height:_6f0.style.height,width:_6f0.style.width,opacity:s.getStyle(_6f0,"opacity")}; +var dims=s.getElementDimensions(_6f0); +var _6f7,_6f8; +switch(_6f1.direction){ +case "top-left": +_6f7=_6f8=0; +break; +case "top-right": +_6f7=dims.w; +_6f8=0; +break; +case "bottom-left": +_6f7=0; +_6f8=dims.h; +break; +case "bottom-right": +_6f7=dims.w; +_6f8=dims.h; +break; +case "center": +_6f7=dims.w/2; +_6f8=dims.h/2; +break; +} +var _6f9; +var _6fa=MochiKit.Base.update({beforeStartInternal:function(_6fb){ +_6f9=d.makePositioned(_6fb.effects[0].element); +d.makeClipping(_6fb.effects[0].element); +},afterFinishInternal:function(_6fc){ +s.hideElement(_6fc.effects[0].element); +d.undoClipping(_6fc.effects[0].element,_6f9); +d.undoPositioned(_6fc.effects[0].element); +s.setStyle(_6fc.effects[0].element,_6f5); +}},_6f1||{}); +return new v.Parallel([new v.Opacity(_6f0,{sync:true,to:0,from:1,transition:_6f1.opacityTransition}),new v.Scale(_6f0,/Opera/.test(navigator.userAgent)?1:0,{sync:true,transition:_6f1.scaleTransition,scaleContent:_6f1.scaleContent,scaleFromCenter:_6f1.scaleFromCenter,restoreAfterFinish:true}),new v.Move(_6f0,{x:_6f7,y:_6f8,sync:true,transition:_6f1.moveTransition})],_6fa); +}; +MochiKit.Visual.pulsate=function(_6fd,_6fe){ +var d=MochiKit.DOM; +var v=MochiKit.Visual; +var b=MochiKit.Base; +var _702=MochiKit.Style.getStyle(_6fd,"opacity"); +_6fe=b.update({duration:3,from:0,afterFinishInternal:function(_703){ +MochiKit.Style.setStyle(_703.element,{"opacity":_702}); +}},_6fe||{}); +var _704=_6fe.transition||v.Transitions.sinoidal; +var _705=b.bind(function(pos){ +return _704(1-v.Transitions.pulse(pos,_6fe.pulses)); +},_704); +b.bind(_705,_704); +return new v.Opacity(_6fd,b.update({transition:_705},_6fe)); +}; +MochiKit.Visual.fold=function(_707,_708){ +var d=MochiKit.DOM; +var v=MochiKit.Visual; +var s=MochiKit.Style; +_707=d.getElement(_707); +var _70c={top:_707.style.top,left:_707.style.left,width:_707.style.width,height:_707.style.height}; +var _70d=d.makeClipping(_707); +_708=MochiKit.Base.update({scaleContent:false,scaleX:false,afterFinishInternal:function(_70e){ +new v.Scale(_707,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(_70f){ +s.hideElement(_70f.element); +d.undoClipping(_70f.element,_70d); +s.setStyle(_70f.element,_70c); +}}); +}},_708||{}); +return new v.Scale(_707,5,_708); +}; MochiKit.Visual.Color=MochiKit.Color.Color; MochiKit.Visual.getElementsComputedStyle=MochiKit.DOM.computedStyle; MochiKit.Visual.__new__=function(){ @@ -4686,8 +6792,8 @@ this.EXPORT_TAGS={":common":this.EXPORT, m.nameFunctions(this); this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; }; -MochiKit.Visual.EXPORT=["roundElement","roundClass"]; -MochiKit.Visual.EXPORT_OK=[]; +MochiKit.Visual.EXPORT=["roundElement","roundClass","tagifyText","multiple","toggle","Parallel","Opacity","Move","Scale","Highlight","ScrollTo","Morph","fade","appear","puff","blindUp","blindDown","switchOff","dropOut","shake","slideDown","slideUp","squish","grow","shrink","pulsate","fold"]; +MochiKit.Visual.EXPORT_OK=["Base","PAIRS"]; MochiKit.Visual.__new__(); MochiKit.Base._exportSymbols(this,MochiKit.Visual); if(typeof (MochiKit)=="undefined"){ @@ -4697,50 +6803,44 @@ MochiKit.MochiKit.NAME="MochiKit.MochiKi MochiKit.MochiKit={}; } MochiKit.MochiKit.NAME="MochiKit.MochiKit"; -MochiKit.MochiKit.VERSION="1.3.1"; +MochiKit.MochiKit.VERSION="1.4"; MochiKit.MochiKit.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.MochiKit.toString=function(){ return this.__repr__(); }; -MochiKit.MochiKit.SUBMODULES=["Base","Iter","Logging","DateTime","Format","Async","DOM","LoggingPane","Color","Signal","Visual"]; +MochiKit.MochiKit.SUBMODULES=["Base","Iter","Logging","DateTime","Format","Async","DOM","Selector","Style","LoggingPane","Color","Signal","Position","Visual"]; if(typeof (JSAN)!="undefined"||typeof (dojo)!="undefined"){ if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.MochiKit"); dojo.require("MochiKit.*"); } if(typeof (JSAN)!="undefined"){ -JSAN.use("MochiKit.Base",[]); -JSAN.use("MochiKit.Iter",[]); -JSAN.use("MochiKit.Logging",[]); -JSAN.use("MochiKit.DateTime",[]); -JSAN.use("MochiKit.Format",[]); -JSAN.use("MochiKit.Async",[]); -JSAN.use("MochiKit.DOM",[]); -JSAN.use("MochiKit.LoggingPane",[]); -JSAN.use("MochiKit.Color",[]); -JSAN.use("MochiKit.Signal",[]); -JSAN.use("MochiKit.Visual",[]); +(function(lst){ +for(var i=0;i"); } ============================================================ --- static/viewmtn.js 0a5db3bc129d2c2a96cdbed2fb35dc7e065cfc17 +++ static/viewmtn.js 5ea878eedde809bf77a05cb33a4ed3277f4c93bc @@ -13,7 +13,7 @@ function installCallbacks() cbinst = function (e) { updateNodeAttributes(e, { "onmouseover" : partial(mouseOverHandler, e), - 'onmouseout' : partial(mouseOutHandler, e) } ); + "onmouseout" : partial(mouseOutHandler, e) } ); } var elems = getElementsByTagAndClassName(null, "BranchLink"); @@ -30,20 +30,30 @@ function updatePopup(boundTo, className) function updatePopup(boundTo, className) { - jsonData = boundTo.jsonData; - + var jsonData = boundTo.jsonData; + var error_string = null; + var info = null; var pos = elementPosition(boundTo); var newBox; - - info = null; - if (jsonData.type == "branch") { - info = "branch changed " + jsonData.ago + " ago by " + jsonData.author; - } else if (jsonData.type == "revision") { - info = "revision made " + jsonData.ago + " ago by " + jsonData.author; - } else if (jsonData.type == "manifest") { - info = "manifest contains " + jsonData.file_count + " files in " + jsonData.directory_count + " directories."; + + if (jsonData == null) { + error_string = "JSON-RPC error - please report"; + } else if (jsonData.error_string != null) { + error_string = jsonData.error_string; + } + + if (error_string == null) { + if (jsonData.type == "branch") { + info = "branch changed " + jsonData.ago + " ago by " + jsonData.author; + } else if (jsonData.type == "revision") { + info = "revision made " + jsonData.ago + " ago by " + jsonData.author; + } else if (jsonData.type == "manifest") { + info = "manifest contains " + jsonData.file_count + " files in " + jsonData.directory_count + " directories."; + } else { + info = "unknown type: " + jsonData.type; + } } else { - info = "unknown type: " + jsonData.type; + info = "error: " + error_string; } newBox = DIV({ 'id' : 'popupBox', 'style' : 'font-size: small'}, info); @@ -54,9 +64,10 @@ function updatePopup(boundTo, className) offset_height = 24; // yick } - newY = pos.y + offset_height + 20; - newX = pos.x + 20; + newY = pos.y + offset_height; + newX = pos.x; + newBox.style.position = "absolute" newBox.style.top = newY + 'px'; newBox.style.left = newX + 'px'; swapDOM(theBox, newBox); @@ -71,40 +82,50 @@ function jsonLoadComplete(boundTo, class pendingFor = null; } +function squashPendingRequest() +{ + if (pendingFor != null) { + pendingFor = null; + pendingDeferred.cancel(); + } +} + +// there should only ever be one pendingDeferred +// if we get a mouse over, we check whether or not +// this is a duplicate of the existing pending (do +// nothing) or otherwise cancel the pending and +// schedule what has happened now. + +function dampenedJSON(uri, boundTo, className) +{ + // bit of a catch all in case somehow we've leaked through + // and not been cancelled + if (pendingFor == boundTo) { + pendingDeferred = loadJSONDoc(uri); + pendingDeferred.addCallback(jsonLoadComplete, boundTo, className); + } +} + function mouseOverHandler(boundTo, evt) { var className = getNodeAttribute(boundTo, "class"); - if (boundTo.jsonData) { - return updatePopup(boundTo, className); + if (boundTo != pendingFor) { + squashPendingRequest(); } - - // squash any requests when we're already waiting for a server reply - if ((pendingFor != null) && (pendingFor == boundTo)) { - return; - } else { - pendingFor = boundTo; + if (boundTo.jsonData) { + return updatePopup(boundTo, className); } - if (boundTo.id) { - var uri = "/json/" + encodeURIComponent(className) + "/" + encodeURIComponent(boundTo.id); - var d = loadJSONDoc(uri); - - d.addCallback(jsonLoadComplete, boundTo, className); - pendingDeferred = d; + var uri = "/json/" + encodeURIComponent(className) + "/" + encodeURIComponent(boundTo.id); + pendingDeferred = callLater(1, partial(dampenedJSON, uri, boundTo, className)); + pendingFor = boundTo; } } function mouseOutHandler(boundTo, evt) { - // no need to cancel if we're just leaving ourselves - if (boundTo == pendingFor) { - return; - } - if (pendingDeferred != null) { - pendingDeferred.cancel(); - pendingDeferred = null; - } + squashPendingRequest(); var newBox = DIV({'id' : 'popupBox', 'class' : 'invisible'}); swapDOM(theBox, newBox); theBox = newBox; ============================================================ --- viewmtn.py a9a27961ccedb3d13dfd697b4c355d3c1ebba32d +++ viewmtn.py da104e5b02b48460051a6371cc78a0b71dcc9083 @@ -972,14 +972,14 @@ class RevisionGraph: else: return web.notfound() -class Json: +class Json(object): def fill_from_certs(self, rv, certs): for cert in certs: if cert[4] != 'name': continue if cert[5] == 'author': rv['author'] = cert[7] - if cert[5] == 'date': + elif cert[5] == 'date': revdate = common.parse_timecert(cert[7]) rv['ago'] = common.ago(revdate) @@ -993,7 +993,10 @@ class Json: if len(changes) < 1: return web.notfound() changes, new_starting_point = changes - for rev, certs in changes: + if not changes: + rv['error_string'] = 'no revisions in branch' + else: + rev, certs = changes[0] self.fill_from_certs(rv, certs) return rv