michael@0: /*** michael@0: michael@0: MochiKit.MochiKit 1.4 : PACKED VERSION michael@0: michael@0: THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please michael@0: diff against the source tree, not this file. michael@0: michael@0: See for documentation, downloads, license, etc. michael@0: michael@0: (c) 2005 Bob Ippolito. All rights Reserved. michael@0: michael@0: ***/ michael@0: michael@0: if(typeof (dojo)!="undefined"){ michael@0: dojo.provide("MochiKit.Base"); michael@0: } michael@0: if(typeof (MochiKit)=="undefined"){ michael@0: MochiKit={}; michael@0: } michael@0: if(typeof (MochiKit.Base)=="undefined"){ michael@0: MochiKit.Base={}; michael@0: } michael@0: if(typeof (MochiKit.__export__)=="undefined"){ michael@0: MochiKit.__export__=(MochiKit.__compat__||(typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")); michael@0: } michael@0: MochiKit.Base.VERSION="1.4"; michael@0: MochiKit.Base.NAME="MochiKit.Base"; michael@0: MochiKit.Base.update=function(_1,_2){ michael@0: if(_1===null){ michael@0: _1={}; michael@0: } michael@0: for(var i=1;i=0;i--){ michael@0: _15.unshift(o[i]); michael@0: } michael@0: }else{ michael@0: res.push(o); michael@0: } michael@0: } michael@0: return res; michael@0: },extend:function(_18,obj,_1a){ michael@0: if(!_1a){ michael@0: _1a=0; michael@0: } michael@0: if(obj){ michael@0: var l=obj.length; michael@0: if(typeof (l)!="number"){ michael@0: if(typeof (MochiKit.Iter)!="undefined"){ michael@0: obj=MochiKit.Iter.list(obj); michael@0: l=obj.length; michael@0: }else{ michael@0: throw new TypeError("Argument not an array-like and MochiKit.Iter not present"); michael@0: } michael@0: } michael@0: if(!_18){ michael@0: _18=[]; michael@0: } michael@0: for(var i=_1a;i>b; michael@0: },zrshift:function(a,b){ michael@0: return a>>>b; michael@0: },eq:function(a,b){ michael@0: return a==b; michael@0: },ne:function(a,b){ michael@0: return a!=b; michael@0: },gt:function(a,b){ michael@0: return a>b; michael@0: },ge:function(a,b){ michael@0: return a>=b; michael@0: },lt:function(a,b){ michael@0: return al){ michael@0: _90=l; michael@0: } michael@0: } michael@0: _8e=[]; michael@0: for(i=0;i<_90;i++){ michael@0: var _92=[]; michael@0: for(var j=1;j=0;i--){ michael@0: _af=[_ab[i].apply(this,_af)]; michael@0: } michael@0: return _af[0]; michael@0: }; michael@0: },bind:function(_b1,_b2){ michael@0: if(typeof (_b1)=="string"){ michael@0: _b1=_b2[_b1]; michael@0: } michael@0: var _b3=_b1.im_func; michael@0: var _b4=_b1.im_preargs; michael@0: var _b5=_b1.im_self; michael@0: var m=MochiKit.Base; michael@0: if(typeof (_b1)=="function"&&typeof (_b1.apply)=="undefined"){ michael@0: _b1=m._wrapDumbFunction(_b1); michael@0: } michael@0: if(typeof (_b3)!="function"){ michael@0: _b3=_b1; michael@0: } michael@0: if(typeof (_b2)!="undefined"){ michael@0: _b5=_b2; michael@0: } michael@0: if(typeof (_b4)=="undefined"){ michael@0: _b4=[]; michael@0: }else{ michael@0: _b4=_b4.slice(); michael@0: } michael@0: m.extend(_b4,arguments,2); michael@0: var _b7=function(){ michael@0: var _b8=arguments; michael@0: var me=arguments.callee; michael@0: if(me.im_preargs.length>0){ michael@0: _b8=m.concat(me.im_preargs,_b8); michael@0: } michael@0: var _ba=me.im_self; michael@0: if(!_ba){ michael@0: _ba=this; michael@0: } michael@0: return me.im_func.apply(_ba,_b8); michael@0: }; michael@0: _b7.im_self=_b5; michael@0: _b7.im_func=_b3; michael@0: _b7.im_preargs=_b4; michael@0: return _b7; michael@0: },bindMethods:function(_bb){ michael@0: var _bc=MochiKit.Base.bind; michael@0: for(var k in _bb){ michael@0: var _be=_bb[k]; michael@0: if(typeof (_be)=="function"){ michael@0: _bb[k]=_bc(_be,_bb); michael@0: } michael@0: } michael@0: },registerComparator:function(_bf,_c0,_c1,_c2){ michael@0: MochiKit.Base.comparatorRegistry.register(_bf,_c0,_c1,_c2); michael@0: },_primitives:{"boolean":true,"string":true,"number":true},compare:function(a,b){ michael@0: if(a==b){ michael@0: return 0; michael@0: } michael@0: var _c5=(typeof (a)=="undefined"||a===null); michael@0: var _c6=(typeof (b)=="undefined"||b===null); michael@0: if(_c5&&_c6){ michael@0: return 0; michael@0: }else{ michael@0: if(_c5){ michael@0: return -1; michael@0: }else{ michael@0: if(_c6){ michael@0: return 1; michael@0: } michael@0: } michael@0: } michael@0: var m=MochiKit.Base; michael@0: var _c8=m._primitives; michael@0: if(!(typeof (a) in _c8&&typeof (b) in _c8)){ michael@0: try{ michael@0: return m.comparatorRegistry.match(a,b); michael@0: } michael@0: catch(e){ michael@0: if(e!=m.NotFound){ michael@0: throw e; michael@0: } michael@0: } michael@0: } michael@0: if(ab){ michael@0: return 1; michael@0: } michael@0: } michael@0: var _c9=m.repr; michael@0: throw new TypeError(_c9(a)+" and "+_c9(b)+" can not be compared"); michael@0: },compareDateLike:function(a,b){ michael@0: return MochiKit.Base.compare(a.getTime(),b.getTime()); michael@0: },compareArrayLike:function(a,b){ michael@0: var _ce=MochiKit.Base.compare; michael@0: var _cf=a.length; michael@0: var _d0=0; michael@0: if(_cf>b.length){ michael@0: _d0=1; michael@0: _cf=b.length; michael@0: }else{ michael@0: if(_cf=0;i--){ michael@0: sum+=o[i]; michael@0: } michael@0: }else{ michael@0: sum+=o; michael@0: } michael@0: } michael@0: if(_113<=0){ michael@0: throw new TypeError("mean() requires at least one argument"); michael@0: } michael@0: return sum/_113; michael@0: },median:function(){ michael@0: var data=MochiKit.Base.flattenArguments(arguments); michael@0: if(data.length===0){ michael@0: throw new TypeError("median() requires at least one argument"); michael@0: } michael@0: data.sort(compare); michael@0: if(data.length%2==0){ michael@0: var _117=data.length/2; michael@0: return (data[_117]+data[_117-1])/2; michael@0: }else{ michael@0: return data[(data.length-1)/2]; michael@0: } michael@0: },findValue:function(lst,_119,_11a,end){ michael@0: if(typeof (end)=="undefined"||end===null){ michael@0: end=lst.length; michael@0: } michael@0: if(typeof (_11a)=="undefined"||_11a===null){ michael@0: _11a=0; michael@0: } michael@0: var cmp=MochiKit.Base.compare; michael@0: for(var i=_11a;i0))){ michael@0: var kv=MochiKit.DOM.formContents(_127); michael@0: _127=kv[0]; michael@0: _128=kv[1]; michael@0: }else{ michael@0: if(arguments.length==1){ michael@0: var o=_127; michael@0: _127=[]; michael@0: _128=[]; michael@0: for(var k in o){ michael@0: var v=o[k]; michael@0: if(typeof (v)=="function"){ michael@0: continue; michael@0: }else{ michael@0: if(typeof (v)!="string"&&typeof (v.length)=="number"){ michael@0: for(var i=0;i=stop){ michael@0: throw self.StopIteration; michael@0: } michael@0: _174+=step; michael@0: return rval; michael@0: }}; michael@0: },imap:function(fun,p,q){ michael@0: var m=MochiKit.Base; michael@0: var self=MochiKit.Iter; michael@0: var _17e=m.map(self.iter,m.extend(null,arguments,1)); michael@0: var map=m.map; michael@0: var next=self.next; michael@0: return {repr:function(){ michael@0: return "imap(...)"; michael@0: },toString:m.forwardCall("repr"),next:function(){ michael@0: return fun.apply(this,map(next,_17e)); michael@0: }}; michael@0: },applymap:function(fun,seq,self){ michael@0: seq=MochiKit.Iter.iter(seq); michael@0: var m=MochiKit.Base; michael@0: return {repr:function(){ michael@0: return "applymap(...)"; michael@0: },toString:m.forwardCall("repr"),next:function(){ michael@0: return fun.apply(self,seq.next()); michael@0: }}; michael@0: },chain:function(p,q){ michael@0: var self=MochiKit.Iter; michael@0: var m=MochiKit.Base; michael@0: if(arguments.length==1){ michael@0: return self.iter(arguments[0]); michael@0: } michael@0: var _189=m.map(self.iter,arguments); michael@0: return {repr:function(){ michael@0: return "chain(...)"; michael@0: },toString:m.forwardCall("repr"),next:function(){ michael@0: while(_189.length>1){ michael@0: try{ michael@0: return _189[0].next(); michael@0: } michael@0: catch(e){ michael@0: if(e!=self.StopIteration){ michael@0: throw e; michael@0: } michael@0: _189.shift(); michael@0: } michael@0: } michael@0: if(_189.length==1){ michael@0: var arg=_189.shift(); michael@0: this.next=m.bind("next",arg); michael@0: return this.next(); michael@0: } michael@0: throw self.StopIteration; michael@0: }}; michael@0: },takewhile:function(pred,seq){ michael@0: var self=MochiKit.Iter; michael@0: seq=self.iter(seq); michael@0: return {repr:function(){ michael@0: return "takewhile(...)"; michael@0: },toString:MochiKit.Base.forwardCall("repr"),next:function(){ michael@0: var rval=seq.next(); michael@0: if(!pred(rval)){ michael@0: this.next=function(){ michael@0: throw self.StopIteration; michael@0: }; michael@0: this.next(); michael@0: } michael@0: return rval; michael@0: }}; michael@0: },dropwhile:function(pred,seq){ michael@0: seq=MochiKit.Iter.iter(seq); michael@0: var m=MochiKit.Base; michael@0: var bind=m.bind; michael@0: return {"repr":function(){ michael@0: return "dropwhile(...)"; michael@0: },"toString":m.forwardCall("repr"),"next":function(){ michael@0: while(true){ michael@0: var rval=seq.next(); michael@0: if(!pred(rval)){ michael@0: break; michael@0: } michael@0: } michael@0: this.next=bind("next",seq); michael@0: return rval; michael@0: }}; michael@0: },_tee:function(_194,sync,_196){ michael@0: sync.pos[_194]=-1; michael@0: var m=MochiKit.Base; michael@0: var _198=m.listMin; michael@0: return {repr:function(){ michael@0: return "tee("+_194+", ...)"; michael@0: },toString:m.forwardCall("repr"),next:function(){ michael@0: var rval; michael@0: var i=sync.pos[_194]; michael@0: if(i==sync.max){ michael@0: rval=_196.next(); michael@0: sync.deque.push(rval); michael@0: sync.max+=1; michael@0: sync.pos[_194]+=1; michael@0: }else{ michael@0: rval=sync.deque[i-sync.min]; michael@0: sync.pos[_194]+=1; michael@0: if(i==sync.min&&_198(sync.pos)!=sync.min){ michael@0: sync.min+=1; michael@0: sync.deque.shift(); michael@0: } michael@0: } michael@0: return rval; michael@0: }}; michael@0: },tee:function(_19b,n){ michael@0: var rval=[]; michael@0: var sync={"pos":[],"deque":[],"max":-1,"min":-1}; michael@0: if(arguments.length==1||typeof (n)=="undefined"||n===null){ michael@0: n=2; michael@0: } michael@0: var self=MochiKit.Iter; michael@0: _19b=self.iter(_19b); michael@0: var _tee=self._tee; michael@0: for(var i=0;i0&&_1ac>=stop)||(step<0&&_1ac<=stop)){ michael@0: throw MochiKit.Iter.StopIteration; michael@0: } michael@0: var rval=_1ac; michael@0: _1ac+=step; michael@0: return rval; michael@0: },repr:function(){ michael@0: return "range("+[_1ac,stop,step].join(", ")+")"; michael@0: },toString:MochiKit.Base.forwardCall("repr")}; michael@0: },sum:function(_1b0,_1b1){ michael@0: if(typeof (_1b1)=="undefined"||_1b1===null){ michael@0: _1b1=0; michael@0: } michael@0: var x=_1b1; michael@0: var self=MochiKit.Iter; michael@0: _1b0=self.iter(_1b0); michael@0: try{ michael@0: while(true){ michael@0: x+=_1b0.next(); michael@0: } michael@0: } michael@0: catch(e){ michael@0: if(e!=self.StopIteration){ michael@0: throw e; michael@0: } michael@0: } michael@0: return x; michael@0: },exhaust:function(_1b4){ michael@0: var self=MochiKit.Iter; michael@0: _1b4=self.iter(_1b4); michael@0: try{ michael@0: while(true){ michael@0: _1b4.next(); michael@0: } michael@0: } michael@0: catch(e){ michael@0: if(e!=self.StopIteration){ michael@0: throw e; michael@0: } michael@0: } michael@0: },forEach:function(_1b6,func,self){ michael@0: var m=MochiKit.Base; michael@0: if(arguments.length>2){ michael@0: func=m.bind(func,self); michael@0: } michael@0: if(m.isArrayLike(_1b6)){ michael@0: try{ michael@0: for(var i=0;i<_1b6.length;i++){ michael@0: func(_1b6[i]); michael@0: } michael@0: } michael@0: catch(e){ michael@0: if(e!=MochiKit.Iter.StopIteration){ michael@0: throw e; michael@0: } michael@0: } michael@0: }else{ michael@0: self=MochiKit.Iter; michael@0: self.exhaust(self.imap(func,_1b6)); michael@0: } michael@0: },every:function(_1bb,func){ michael@0: var self=MochiKit.Iter; michael@0: try{ michael@0: self.ifilterfalse(func,_1bb).next(); michael@0: return false; michael@0: } michael@0: catch(e){ michael@0: if(e!=self.StopIteration){ michael@0: throw e; michael@0: } michael@0: return true; michael@0: } michael@0: },sorted:function(_1be,cmp){ michael@0: var rval=MochiKit.Iter.list(_1be); michael@0: if(arguments.length==1){ michael@0: cmp=MochiKit.Base.compare; michael@0: } michael@0: rval.sort(cmp); michael@0: return rval; michael@0: },reversed:function(_1c1){ michael@0: var rval=MochiKit.Iter.list(_1c1); michael@0: rval.reverse(); michael@0: return rval; michael@0: },some:function(_1c3,func){ michael@0: var self=MochiKit.Iter; michael@0: try{ michael@0: self.ifilter(func,_1c3).next(); michael@0: return true; michael@0: } michael@0: catch(e){ michael@0: if(e!=self.StopIteration){ michael@0: throw e; michael@0: } michael@0: return false; michael@0: } michael@0: },iextend:function(lst,_1c7){ michael@0: if(MochiKit.Base.isArrayLike(_1c7)){ michael@0: for(var i=0;i<_1c7.length;i++){ michael@0: lst.push(_1c7[i]); michael@0: } michael@0: }else{ michael@0: var self=MochiKit.Iter; michael@0: _1c7=self.iter(_1c7); michael@0: try{ michael@0: while(true){ michael@0: lst.push(_1c7.next()); michael@0: } michael@0: } michael@0: catch(e){ michael@0: if(e!=self.StopIteration){ michael@0: throw e; michael@0: } michael@0: } michael@0: } michael@0: return lst; michael@0: },groupby:function(_1ca,_1cb){ michael@0: var m=MochiKit.Base; michael@0: var self=MochiKit.Iter; michael@0: if(arguments.length<2){ michael@0: _1cb=m.operator.identity; michael@0: } michael@0: _1ca=self.iter(_1ca); michael@0: var pk=undefined; michael@0: var k=undefined; michael@0: var v; michael@0: function fetch(){ michael@0: v=_1ca.next(); michael@0: k=_1cb(v); michael@0: } michael@0: function eat(){ michael@0: var ret=v; michael@0: v=undefined; michael@0: return ret; michael@0: } michael@0: var _1d2=true; michael@0: var _1d3=m.compare; michael@0: return {repr:function(){ michael@0: return "groupby(...)"; michael@0: },next:function(){ michael@0: while(_1d3(k,pk)===0){ michael@0: fetch(); michael@0: if(_1d2){ michael@0: _1d2=false; michael@0: break; michael@0: } michael@0: } michael@0: pk=k; michael@0: return [k,{next:function(){ michael@0: if(v==undefined){ michael@0: fetch(); michael@0: } michael@0: if(_1d3(k,pk)!==0){ michael@0: throw self.StopIteration; michael@0: } michael@0: return eat(); michael@0: }}]; michael@0: }}; michael@0: },groupby_as_array:function(_1d4,_1d5){ michael@0: var m=MochiKit.Base; michael@0: var self=MochiKit.Iter; michael@0: if(arguments.length<2){ michael@0: _1d5=m.operator.identity; michael@0: } michael@0: _1d4=self.iter(_1d4); michael@0: var _1d8=[]; michael@0: var _1d9=true; michael@0: var _1da; michael@0: var _1db=m.compare; michael@0: while(true){ michael@0: try{ michael@0: var _1dc=_1d4.next(); michael@0: var key=_1d5(_1dc); michael@0: } michael@0: catch(e){ michael@0: if(e==self.StopIteration){ michael@0: break; michael@0: } michael@0: throw e; michael@0: } michael@0: if(_1d9||_1db(key,_1da)!==0){ michael@0: var _1de=[]; michael@0: _1d8.push([key,_1de]); michael@0: } michael@0: _1de.push(_1dc); michael@0: _1d9=false; michael@0: _1da=key; michael@0: } michael@0: return _1d8; michael@0: },arrayLikeIter:function(_1df){ michael@0: var i=0; michael@0: return {repr:function(){ michael@0: return "arrayLikeIter(...)"; michael@0: },toString:MochiKit.Base.forwardCall("repr"),next:function(){ michael@0: if(i>=_1df.length){ michael@0: throw MochiKit.Iter.StopIteration; michael@0: } michael@0: return _1df[i++]; michael@0: }}; michael@0: },hasIterateNext:function(_1e1){ michael@0: return (_1e1&&typeof (_1e1.iterateNext)=="function"); michael@0: },iterateNextIter:function(_1e2){ michael@0: return {repr:function(){ michael@0: return "iterateNextIter(...)"; michael@0: },toString:MochiKit.Base.forwardCall("repr"),next:function(){ michael@0: var rval=_1e2.iterateNext(); michael@0: if(rval===null||rval===undefined){ michael@0: throw MochiKit.Iter.StopIteration; michael@0: } michael@0: return rval; michael@0: }}; michael@0: }}); michael@0: MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter",]; michael@0: 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"]; michael@0: MochiKit.Iter.__new__=function(){ michael@0: var m=MochiKit.Base; michael@0: if(typeof (StopIteration)!="undefined"){ michael@0: this.StopIteration=StopIteration; michael@0: }else{ michael@0: this.StopIteration=new m.NamedError("StopIteration"); michael@0: } michael@0: this.iteratorRegistry=new m.AdapterRegistry(); michael@0: this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter); michael@0: this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter); michael@0: this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; michael@0: m.nameFunctions(this); michael@0: }; michael@0: MochiKit.Iter.__new__(); michael@0: if(MochiKit.__export__){ michael@0: reduce=MochiKit.Iter.reduce; michael@0: } michael@0: MochiKit.Base._exportSymbols(this,MochiKit.Iter); michael@0: if(typeof (dojo)!="undefined"){ michael@0: dojo.provide("MochiKit.Logging"); michael@0: dojo.require("MochiKit.Base"); michael@0: } michael@0: if(typeof (JSAN)!="undefined"){ michael@0: JSAN.use("MochiKit.Base",[]); michael@0: } michael@0: try{ michael@0: if(typeof (MochiKit.Base)=="undefined"){ michael@0: throw ""; michael@0: } michael@0: } michael@0: catch(e){ michael@0: throw "MochiKit.Logging depends on MochiKit.Base!"; michael@0: } michael@0: if(typeof (MochiKit.Logging)=="undefined"){ michael@0: MochiKit.Logging={}; michael@0: } michael@0: MochiKit.Logging.NAME="MochiKit.Logging"; michael@0: MochiKit.Logging.VERSION="1.4"; michael@0: MochiKit.Logging.__repr__=function(){ michael@0: return "["+this.NAME+" "+this.VERSION+"]"; michael@0: }; michael@0: MochiKit.Logging.toString=function(){ michael@0: return this.__repr__(); michael@0: }; michael@0: MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"]; michael@0: MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"]; michael@0: MochiKit.Logging.LogMessage=function(num,_1e6,info){ michael@0: this.num=num; michael@0: this.level=_1e6; michael@0: this.info=info; michael@0: this.timestamp=new Date(); michael@0: }; michael@0: MochiKit.Logging.LogMessage.prototype={repr:function(){ michael@0: var m=MochiKit.Base; michael@0: return "LogMessage("+m.map(m.repr,[this.num,this.level,this.info]).join(", ")+")"; michael@0: },toString:MochiKit.Base.forwardCall("repr")}; michael@0: MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_1e9){ michael@0: var self=MochiKit.Logging; michael@0: if(typeof (_1e9)=="string"){ michael@0: _1e9=self.LogLevel[_1e9]; michael@0: } michael@0: return function(msg){ michael@0: var _1ec=msg.level; michael@0: if(typeof (_1ec)=="string"){ michael@0: _1ec=self.LogLevel[_1ec]; michael@0: } michael@0: return _1ec>=_1e9; michael@0: }; michael@0: },isLogMessage:function(){ michael@0: var _1ed=MochiKit.Logging.LogMessage; michael@0: for(var i=0;i=0&&this._messages.length>this.maxSize){ michael@0: this._messages.shift(); michael@0: } michael@0: },getMessages:function(_1ff){ michael@0: var _200=0; michael@0: if(!(typeof (_1ff)=="undefined"||_1ff===null)){ michael@0: _200=Math.max(0,this._messages.length-_1ff); michael@0: } michael@0: return this._messages.slice(_200); michael@0: },getMessageText:function(_201){ michael@0: if(typeof (_201)=="undefined"||_201===null){ michael@0: _201=30; michael@0: } michael@0: var _202=this.getMessages(_201); michael@0: if(_202.length){ michael@0: var lst=map(function(m){ michael@0: return "\n ["+m.num+"] "+m.level+": "+m.info.join(" "); michael@0: },_202); michael@0: lst.unshift("LAST "+_202.length+" MESSAGES:"); michael@0: return lst.join(""); michael@0: } michael@0: return ""; michael@0: },debuggingBookmarklet:function(_205){ michael@0: if(typeof (MochiKit.LoggingPane)=="undefined"){ michael@0: alert(this.getMessageText()); michael@0: }else{ michael@0: MochiKit.LoggingPane.createLoggingPane(_205||false); michael@0: } michael@0: }}; michael@0: MochiKit.Logging.__new__=function(){ michael@0: this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10}; michael@0: var m=MochiKit.Base; michael@0: m.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage); michael@0: var _207=m.partial; michael@0: var _208=this.Logger; michael@0: var _209=_208.prototype.baseLog; michael@0: 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")}); michael@0: var self=this; michael@0: var _20b=function(name){ michael@0: return function(){ michael@0: self.logger[name].apply(self.logger,arguments); michael@0: }; michael@0: }; michael@0: this.log=_20b("log"); michael@0: this.logError=_20b("error"); michael@0: this.logDebug=_20b("debug"); michael@0: this.logFatal=_20b("fatal"); michael@0: this.logWarning=_20b("warning"); michael@0: this.logger=new _208(); michael@0: this.logger.useNativeConsole=true; michael@0: this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; michael@0: m.nameFunctions(this); michael@0: }; michael@0: if(typeof (printfire)=="undefined"&&typeof (document)!="undefined"&&document.createEvent&&typeof (dispatchEvent)!="undefined"){ michael@0: printfire=function(){ michael@0: printfire.args=arguments; michael@0: var ev=document.createEvent("Events"); michael@0: ev.initEvent("printfire",false,true); michael@0: dispatchEvent(ev); michael@0: }; michael@0: } michael@0: MochiKit.Logging.__new__(); michael@0: MochiKit.Base._exportSymbols(this,MochiKit.Logging); michael@0: if(typeof (dojo)!="undefined"){ michael@0: dojo.provide("MochiKit.DateTime"); michael@0: } michael@0: if(typeof (MochiKit)=="undefined"){ michael@0: MochiKit={}; michael@0: } michael@0: if(typeof (MochiKit.DateTime)=="undefined"){ michael@0: MochiKit.DateTime={}; michael@0: } michael@0: MochiKit.DateTime.NAME="MochiKit.DateTime"; michael@0: MochiKit.DateTime.VERSION="1.4"; michael@0: MochiKit.DateTime.__repr__=function(){ michael@0: return "["+this.NAME+" "+this.VERSION+"]"; michael@0: }; michael@0: MochiKit.DateTime.toString=function(){ michael@0: return this.__repr__(); michael@0: }; michael@0: MochiKit.DateTime.isoDate=function(str){ michael@0: str=str+""; michael@0: if(typeof (str)!="string"||str.length===0){ michael@0: return null; michael@0: } michael@0: var iso=str.split("-"); michael@0: if(iso.length===0){ michael@0: return null; michael@0: } michael@0: return new Date(iso[0],iso[1]-1,iso[2]); michael@0: }; michael@0: MochiKit.DateTime._isoRegexp=/(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/; michael@0: MochiKit.DateTime.isoTimestamp=function(str){ michael@0: str=str+""; michael@0: if(typeof (str)!="string"||str.length===0){ michael@0: return null; michael@0: } michael@0: var res=str.match(MochiKit.DateTime._isoRegexp); michael@0: if(typeof (res)=="undefined"||res===null){ michael@0: return null; michael@0: } michael@0: var year,_213,day,hour,min,sec,msec; michael@0: year=parseInt(res[1],10); michael@0: if(typeof (res[2])=="undefined"||res[2]===""){ michael@0: return new Date(year); michael@0: } michael@0: _213=parseInt(res[2],10)-1; michael@0: day=parseInt(res[3],10); michael@0: if(typeof (res[4])=="undefined"||res[4]===""){ michael@0: return new Date(year,_213,day); michael@0: } michael@0: hour=parseInt(res[4],10); michael@0: min=parseInt(res[5],10); michael@0: sec=(typeof (res[6])!="undefined"&&res[6]!=="")?parseInt(res[6],10):0; michael@0: if(typeof (res[7])!="undefined"&&res[7]!==""){ michael@0: msec=Math.round(1000*parseFloat("0."+res[7])); michael@0: }else{ michael@0: msec=0; michael@0: } michael@0: if((typeof (res[8])=="undefined"||res[8]==="")&&(typeof (res[9])=="undefined"||res[9]==="")){ michael@0: return new Date(year,_213,day,hour,min,sec,msec); michael@0: } michael@0: var ofs; michael@0: if(typeof (res[9])!="undefined"&&res[9]!==""){ michael@0: ofs=parseInt(res[10],10)*3600000; michael@0: if(typeof (res[11])!="undefined"&&res[11]!==""){ michael@0: ofs+=parseInt(res[11],10)*60000; michael@0: } michael@0: if(res[9]=="-"){ michael@0: ofs=-ofs; michael@0: } michael@0: }else{ michael@0: ofs=0; michael@0: } michael@0: return new Date(Date.UTC(year,_213,day,hour,min,sec,msec)-ofs); michael@0: }; michael@0: MochiKit.DateTime.toISOTime=function(date,_21b){ michael@0: if(typeof (date)=="undefined"||date===null){ michael@0: return null; michael@0: } michael@0: var hh=date.getHours(); michael@0: var mm=date.getMinutes(); michael@0: var ss=date.getSeconds(); michael@0: var lst=[((_21b&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)]; michael@0: return lst.join(":"); michael@0: }; michael@0: MochiKit.DateTime.toISOTimestamp=function(date,_221){ michael@0: if(typeof (date)=="undefined"||date===null){ michael@0: return null; michael@0: } michael@0: var sep=_221?"T":" "; michael@0: var foot=_221?"Z":""; michael@0: if(_221){ michael@0: date=new Date(date.getTime()+(date.getTimezoneOffset()*60000)); michael@0: } michael@0: return MochiKit.DateTime.toISODate(date)+sep+MochiKit.DateTime.toISOTime(date,_221)+foot; michael@0: }; michael@0: MochiKit.DateTime.toISODate=function(date){ michael@0: if(typeof (date)=="undefined"||date===null){ michael@0: return null; michael@0: } michael@0: var _225=MochiKit.DateTime._padTwo; michael@0: return [date.getFullYear(),_225(date.getMonth()+1),_225(date.getDate())].join("-"); michael@0: }; michael@0: MochiKit.DateTime.americanDate=function(d){ michael@0: d=d+""; michael@0: if(typeof (d)!="string"||d.length===0){ michael@0: return null; michael@0: } michael@0: var a=d.split("/"); michael@0: return new Date(a[2],a[0]-1,a[1]); michael@0: }; michael@0: MochiKit.DateTime._padTwo=function(n){ michael@0: return (n>9)?n:"0"+n; michael@0: }; michael@0: MochiKit.DateTime.toPaddedAmericanDate=function(d){ michael@0: if(typeof (d)=="undefined"||d===null){ michael@0: return null; michael@0: } michael@0: var _22a=MochiKit.DateTime._padTwo; michael@0: return [_22a(d.getMonth()+1),_22a(d.getDate()),d.getFullYear()].join("/"); michael@0: }; michael@0: MochiKit.DateTime.toAmericanDate=function(d){ michael@0: if(typeof (d)=="undefined"||d===null){ michael@0: return null; michael@0: } michael@0: return [d.getMonth()+1,d.getDate(),d.getFullYear()].join("/"); michael@0: }; michael@0: MochiKit.DateTime.EXPORT=["isoDate","isoTimestamp","toISOTime","toISOTimestamp","toISODate","americanDate","toPaddedAmericanDate","toAmericanDate"]; michael@0: MochiKit.DateTime.EXPORT_OK=[]; michael@0: MochiKit.DateTime.EXPORT_TAGS={":common":MochiKit.DateTime.EXPORT,":all":MochiKit.DateTime.EXPORT}; michael@0: MochiKit.DateTime.__new__=function(){ michael@0: var base=this.NAME+"."; michael@0: for(var k in this){ michael@0: var o=this[k]; michael@0: if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ michael@0: try{ michael@0: o.NAME=base+k; michael@0: } michael@0: catch(e){ michael@0: } michael@0: } michael@0: } michael@0: }; michael@0: MochiKit.DateTime.__new__(); michael@0: if(typeof (MochiKit.Base)!="undefined"){ michael@0: MochiKit.Base._exportSymbols(this,MochiKit.DateTime); michael@0: }else{ michael@0: (function(_22f,_230){ michael@0: if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){ michael@0: var all=_230.EXPORT_TAGS[":all"]; michael@0: for(var i=0;i_23a){ michael@0: var i=_242.length-_23a; michael@0: res=fmt.separator+_242.substring(i,_242.length)+res; michael@0: _242=_242.substring(0,i); michael@0: } michael@0: } michael@0: res=_242+res; michael@0: if(_238>0){ michael@0: while(frac.length<_23b){ michael@0: frac=frac+"0"; michael@0: } michael@0: res=res+fmt.decimal+frac; michael@0: } michael@0: return _23d+res+_23e; michael@0: }; michael@0: }; michael@0: MochiKit.Format.numberFormatter=function(_246,_247,_248){ michael@0: if(typeof (_247)=="undefined"){ michael@0: _247=""; michael@0: } michael@0: var _249=_246.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/); michael@0: if(!_249){ michael@0: throw TypeError("Invalid pattern"); michael@0: } michael@0: var _24a=_246.substr(0,_249.index); michael@0: var _24b=_246.substr(_249.index+_249[0].length); michael@0: if(_24a.search(/-/)==-1){ michael@0: _24a=_24a+"-"; michael@0: } michael@0: var _24c=_249[1]; michael@0: var frac=(typeof (_249[2])=="string"&&_249[2]!="")?_249[2]:""; michael@0: var _24e=(typeof (_249[3])=="string"&&_249[3]!=""); michael@0: var tmp=_24c.split(/,/); michael@0: var _250; michael@0: if(typeof (_248)=="undefined"){ michael@0: _248="default"; michael@0: } michael@0: if(tmp.length==1){ michael@0: _250=null; michael@0: }else{ michael@0: _250=tmp[1].length; michael@0: } michael@0: var _251=_24c.length-_24c.replace(/0/g,"").length; michael@0: var _252=frac.length-frac.replace(/0/g,"").length; michael@0: var _253=frac.length; michael@0: var rval=MochiKit.Format._numberFormatter(_247,_24a,_24b,_248,_24e,_253,_251,_250,_252); michael@0: var m=MochiKit.Base; michael@0: if(m){ michael@0: var fn=arguments.callee; michael@0: var args=m.concat(arguments); michael@0: rval.repr=function(){ michael@0: return [self.NAME,"(",map(m.repr,args).join(", "),")"].join(""); michael@0: }; michael@0: } michael@0: return rval; michael@0: }; michael@0: MochiKit.Format.formatLocale=function(_258){ michael@0: if(typeof (_258)=="undefined"||_258===null){ michael@0: _258="default"; michael@0: } michael@0: if(typeof (_258)=="string"){ michael@0: var rval=MochiKit.Format.LOCALE[_258]; michael@0: if(typeof (rval)=="string"){ michael@0: rval=arguments.callee(rval); michael@0: MochiKit.Format.LOCALE[_258]=rval; michael@0: } michael@0: return rval; michael@0: }else{ michael@0: return _258; michael@0: } michael@0: }; michael@0: MochiKit.Format.twoDigitAverage=function(_25a,_25b){ michael@0: if(_25b){ michael@0: var res=_25a/_25b; michael@0: if(!isNaN(res)){ michael@0: return MochiKit.Format.twoDigitFloat(_25a/_25b); michael@0: } michael@0: } michael@0: return "0"; michael@0: }; michael@0: MochiKit.Format.twoDigitFloat=function(_25d){ michael@0: var sign=(_25d<0?"-":""); michael@0: var s=Math.floor(Math.abs(_25d)*100).toString(); michael@0: if(s=="0"){ michael@0: return s; michael@0: } michael@0: if(s.length<3){ michael@0: while(s.charAt(s.length-1)=="0"){ michael@0: s=s.substring(0,s.length-1); michael@0: } michael@0: return sign+"0."+s; michael@0: } michael@0: var head=sign+s.substring(0,s.length-2); michael@0: var tail=s.substring(s.length-2,s.length); michael@0: if(tail=="00"){ michael@0: return head; michael@0: }else{ michael@0: if(tail.charAt(1)=="0"){ michael@0: return head+"."+tail.charAt(0); michael@0: }else{ michael@0: return head+"."+tail; michael@0: } michael@0: } michael@0: }; michael@0: MochiKit.Format.lstrip=function(str,_263){ michael@0: str=str+""; michael@0: if(typeof (str)!="string"){ michael@0: return null; michael@0: } michael@0: if(!_263){ michael@0: return str.replace(/^\s+/,""); michael@0: }else{ michael@0: return str.replace(new RegExp("^["+_263+"]+"),""); michael@0: } michael@0: }; michael@0: MochiKit.Format.rstrip=function(str,_265){ michael@0: str=str+""; michael@0: if(typeof (str)!="string"){ michael@0: return null; michael@0: } michael@0: if(!_265){ michael@0: return str.replace(/\s+$/,""); michael@0: }else{ michael@0: return str.replace(new RegExp("["+_265+"]+$"),""); michael@0: } michael@0: }; michael@0: MochiKit.Format.strip=function(str,_267){ michael@0: var self=MochiKit.Format; michael@0: return self.rstrip(self.lstrip(str,_267),_267); michael@0: }; michael@0: MochiKit.Format.truncToFixed=function(_269,_26a){ michael@0: _269=Math.floor(_269*Math.pow(10,_26a)); michael@0: var res=(_269*Math.pow(10,-_26a)).toFixed(_26a); michael@0: if(res.charAt(0)=="."){ michael@0: res="0"+res; michael@0: } michael@0: return res; michael@0: }; michael@0: MochiKit.Format.roundToFixed=function(_26c,_26d){ michael@0: return MochiKit.Format.truncToFixed(_26c+0.5*Math.pow(10,-_26d),_26d); michael@0: }; michael@0: MochiKit.Format.percentFormat=function(_26e){ michael@0: return MochiKit.Format.twoDigitFloat(100*_26e)+"%"; michael@0: }; michael@0: MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"]; michael@0: MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},"default":"en_US"}; michael@0: MochiKit.Format.EXPORT_OK=[]; michael@0: MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT}; michael@0: MochiKit.Format.__new__=function(){ michael@0: var base=this.NAME+"."; michael@0: var k,v,o; michael@0: for(k in this.LOCALE){ michael@0: o=this.LOCALE[k]; michael@0: if(typeof (o)=="object"){ michael@0: o.repr=function(){ michael@0: return this.NAME; michael@0: }; michael@0: o.NAME=base+"LOCALE."+k; michael@0: } michael@0: } michael@0: for(k in this){ michael@0: o=this[k]; michael@0: if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ michael@0: try{ michael@0: o.NAME=base+k; michael@0: } michael@0: catch(e){ michael@0: } michael@0: } michael@0: } michael@0: }; michael@0: MochiKit.Format.__new__(); michael@0: if(typeof (MochiKit.Base)!="undefined"){ michael@0: MochiKit.Base._exportSymbols(this,MochiKit.Format); michael@0: }else{ michael@0: (function(_273,_274){ michael@0: if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){ michael@0: var all=_274.EXPORT_TAGS[":all"]; michael@0: for(var i=0;i1){ michael@0: fn=MochiKit.Base.partial.apply(null,arguments); michael@0: } michael@0: return this.addCallbacks(fn,fn); michael@0: },addCallback:function(fn){ michael@0: if(arguments.length>1){ michael@0: fn=MochiKit.Base.partial.apply(null,arguments); michael@0: } michael@0: return this.addCallbacks(fn,null); michael@0: },addErrback:function(fn){ michael@0: if(arguments.length>1){ michael@0: fn=MochiKit.Base.partial.apply(null,arguments); michael@0: } michael@0: return this.addCallbacks(null,fn); michael@0: },addCallbacks:function(cb,eb){ michael@0: if(this.chained){ michael@0: throw new Error("Chained Deferreds can not be re-used"); michael@0: } michael@0: this.chain.push([cb,eb]); michael@0: if(this.fired>=0){ michael@0: this._fire(); michael@0: } michael@0: return this; michael@0: },_fire:function(){ michael@0: var _283=this.chain; michael@0: var _284=this.fired; michael@0: var res=this.results[_284]; michael@0: var self=this; michael@0: var cb=null; michael@0: while(_283.length>0&&this.paused===0){ michael@0: var pair=_283.shift(); michael@0: var f=pair[_284]; michael@0: if(f===null){ michael@0: continue; michael@0: } michael@0: try{ michael@0: res=f(res); michael@0: _284=((res instanceof Error)?1:0); michael@0: if(res instanceof MochiKit.Async.Deferred){ michael@0: cb=function(res){ michael@0: self._resback(res); michael@0: self.paused--; michael@0: if((self.paused===0)&&(self.fired>=0)){ michael@0: self._fire(); michael@0: } michael@0: }; michael@0: this.paused++; michael@0: } michael@0: } michael@0: catch(err){ michael@0: _284=1; michael@0: if(!(err instanceof Error)){ michael@0: err=new MochiKit.Async.GenericError(err); michael@0: } michael@0: res=err; michael@0: } michael@0: } michael@0: this.fired=_284; michael@0: this.results[_284]=res; michael@0: if(cb&&this.paused){ michael@0: res.addBoth(cb); michael@0: res.chained=true; michael@0: } michael@0: }}; michael@0: MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(){ michael@0: return eval("("+arguments[0].responseText+")"); michael@0: },succeed:function(_28b){ michael@0: var d=new MochiKit.Async.Deferred(); michael@0: d.callback.apply(d,arguments); michael@0: return d; michael@0: },fail:function(_28d){ michael@0: var d=new MochiKit.Async.Deferred(); michael@0: d.errback.apply(d,arguments); michael@0: return d; michael@0: },getXMLHttpRequest:function(){ michael@0: var self=arguments.callee; michael@0: if(!self.XMLHttpRequest){ michael@0: var _290=[function(){ michael@0: return new XMLHttpRequest(); michael@0: },function(){ michael@0: return new ActiveXObject("Msxml2.XMLHTTP"); michael@0: },function(){ michael@0: return new ActiveXObject("Microsoft.XMLHTTP"); michael@0: },function(){ michael@0: return new ActiveXObject("Msxml2.XMLHTTP.4.0"); michael@0: },function(){ michael@0: throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); michael@0: }]; michael@0: for(var i=0;i<_290.length;i++){ michael@0: var func=_290[i]; michael@0: try{ michael@0: self.XMLHttpRequest=func; michael@0: return func(); michael@0: } michael@0: catch(e){ michael@0: } michael@0: } michael@0: } michael@0: return self.XMLHttpRequest(); michael@0: },_xhr_onreadystatechange:function(d){ michael@0: var m=MochiKit.Base; michael@0: if(this.readyState==4){ michael@0: try{ michael@0: this.onreadystatechange=null; michael@0: } michael@0: catch(e){ michael@0: try{ michael@0: this.onreadystatechange=m.noop; michael@0: } michael@0: catch(e){ michael@0: } michael@0: } michael@0: var _295=null; michael@0: try{ michael@0: _295=this.status; michael@0: if(!_295&&m.isNotEmpty(this.responseText)){ michael@0: _295=304; michael@0: } michael@0: } michael@0: catch(e){ michael@0: } michael@0: if(_295==200||_295==304){ michael@0: d.callback(this); michael@0: }else{ michael@0: var err=new MochiKit.Async.XMLHttpRequestError(this,"Request failed"); michael@0: if(err.number){ michael@0: d.errback(err); michael@0: }else{ michael@0: d.errback(err); michael@0: } michael@0: } michael@0: } michael@0: },_xhr_canceller:function(req){ michael@0: try{ michael@0: req.onreadystatechange=null; michael@0: } michael@0: catch(e){ michael@0: try{ michael@0: req.onreadystatechange=MochiKit.Base.noop; michael@0: } michael@0: catch(e){ michael@0: } michael@0: } michael@0: req.abort(); michael@0: },sendXMLHttpRequest:function(req,_299){ michael@0: if(typeof (_299)=="undefined"||_299===null){ michael@0: _299=""; michael@0: } michael@0: var m=MochiKit.Base; michael@0: var self=MochiKit.Async; michael@0: var d=new self.Deferred(m.partial(self._xhr_canceller,req)); michael@0: try{ michael@0: req.onreadystatechange=m.bind(self._xhr_onreadystatechange,req,d); michael@0: req.send(_299); michael@0: } michael@0: catch(e){ michael@0: try{ michael@0: req.onreadystatechange=null; michael@0: } michael@0: catch(ignore){ michael@0: } michael@0: d.errback(e); michael@0: } michael@0: return d; michael@0: },doXHR:function(url,opts){ michael@0: var m=MochiKit.Base; michael@0: opts=m.update({method:"GET",sendContent:""},opts); michael@0: var self=MochiKit.Async; michael@0: var req=self.getXMLHttpRequest(); michael@0: if(opts.queryString){ michael@0: var qs=m.queryString(opts.queryString); michael@0: if(qs){ michael@0: url+="?"+qs; michael@0: } michael@0: } michael@0: req.open(opts.method,url,true,opts.username,opts.password); michael@0: if(req.overrideMimeType&&opts.mimeType){ michael@0: req.overrideMimeType(opts.mimeType); michael@0: } michael@0: if(opts.headers){ michael@0: var _2a3=opts.headers; michael@0: if(!m.isArrayLike(_2a3)){ michael@0: _2a3=m.items(_2a3); michael@0: } michael@0: for(var i=0;i<_2a3.length;i++){ michael@0: var _2a5=_2a3[i]; michael@0: var name=_2a5[0]; michael@0: var _2a7=_2a5[1]; michael@0: req.setRequestHeader(name,_2a7); michael@0: } michael@0: } michael@0: return self.sendXMLHttpRequest(req,opts.sendContent); michael@0: },_buildURL:function(url){ michael@0: if(arguments.length>1){ michael@0: var m=MochiKit.Base; michael@0: var qs=m.queryString.apply(null,m.extend(null,arguments,1)); michael@0: if(qs){ michael@0: return url+"?"+qs; michael@0: } michael@0: } michael@0: return url; michael@0: },doSimpleXMLHttpRequest:function(url){ michael@0: var self=MochiKit.Async; michael@0: url=self._buildURL.apply(self,arguments); michael@0: return self.doXHR(url); michael@0: },loadJSONDoc:function(url){ michael@0: var self=MochiKit.Async; michael@0: url=self._buildURL.apply(self,arguments); michael@0: var d=self.doXHR(url,{"mimeType":"text/plain","headers":[["Accept","application/json"]]}); michael@0: d=d.addCallback(self.evalJSONRequest); michael@0: return d; michael@0: },wait:function(_2b0,_2b1){ michael@0: var d=new MochiKit.Async.Deferred(); michael@0: var m=MochiKit.Base; michael@0: if(typeof (_2b1)!="undefined"){ michael@0: d.addCallback(function(){ michael@0: return _2b1; michael@0: }); michael@0: } michael@0: var _2b4=setTimeout(m.bind("callback",d),Math.floor(_2b0*1000)); michael@0: d.canceller=function(){ michael@0: try{ michael@0: clearTimeout(_2b4); michael@0: } michael@0: catch(e){ michael@0: } michael@0: }; michael@0: return d; michael@0: },callLater:function(_2b5,func){ michael@0: var m=MochiKit.Base; michael@0: var _2b8=m.partial.apply(m,m.extend(null,arguments,1)); michael@0: return MochiKit.Async.wait(_2b5).addCallback(function(res){ michael@0: return _2b8(); michael@0: }); michael@0: }}); michael@0: MochiKit.Async.DeferredLock=function(){ michael@0: this.waiting=[]; michael@0: this.locked=false; michael@0: this.id=this._nextId(); michael@0: }; michael@0: MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){ michael@0: var d=new MochiKit.Async.Deferred(); michael@0: if(this.locked){ michael@0: this.waiting.push(d); michael@0: }else{ michael@0: this.locked=true; michael@0: d.callback(this); michael@0: } michael@0: return d; michael@0: },release:function(){ michael@0: if(!this.locked){ michael@0: throw TypeError("Tried to release an unlocked DeferredLock"); michael@0: } michael@0: this.locked=false; michael@0: if(this.waiting.length>0){ michael@0: this.locked=true; michael@0: this.waiting.shift().callback(this); michael@0: } michael@0: },_nextId:MochiKit.Base.counter(),repr:function(){ michael@0: var _2bb; michael@0: if(this.locked){ michael@0: _2bb="locked, "+this.waiting.length+" waiting"; michael@0: }else{ michael@0: _2bb="unlocked"; michael@0: } michael@0: return "DeferredLock("+this.id+", "+_2bb+")"; michael@0: },toString:MochiKit.Base.forwardCall("repr")}; michael@0: MochiKit.Async.DeferredList=function(list,_2bd,_2be,_2bf,_2c0){ michael@0: MochiKit.Async.Deferred.apply(this,[_2c0]); michael@0: this.list=list; michael@0: var _2c1=[]; michael@0: this.resultList=_2c1; michael@0: this.finishedCount=0; michael@0: this.fireOnOneCallback=_2bd; michael@0: this.fireOnOneErrback=_2be; michael@0: this.consumeErrors=_2bf; michael@0: var cb=MochiKit.Base.bind(this._cbDeferred,this); michael@0: for(var i=0;i=0){ michael@0: var opt=elem.options[elem.selectedIndex]; michael@0: _2e0.push(name); michael@0: _2e1.push(opt.value); michael@0: return null; michael@0: } michael@0: _2e0.push(name); michael@0: _2e1.push(""); michael@0: return null; michael@0: }else{ michael@0: var opts=elem.options; michael@0: if(!opts.length){ michael@0: _2e0.push(name); michael@0: _2e1.push(""); michael@0: return null; michael@0: } michael@0: for(var i=0;i0){ michael@0: return node; michael@0: } michael@0: if(typeof (node)=="number"||typeof (node)=="boolean"){ michael@0: node=node.toString(); michael@0: } michael@0: if(typeof (node)=="string"){ michael@0: return self._document.createTextNode(node); michael@0: } michael@0: if(typeof (node.__dom__)=="function"){ michael@0: node=node.__dom__(ctx); michael@0: continue; michael@0: } michael@0: if(typeof (node.dom)=="function"){ michael@0: node=node.dom(ctx); michael@0: continue; michael@0: } michael@0: if(typeof (node)=="function"){ michael@0: node=node.apply(ctx,[ctx]); michael@0: continue; michael@0: } michael@0: if(im){ michael@0: var _2fe=null; michael@0: try{ michael@0: _2fe=iter(node); michael@0: } michael@0: catch(e){ michael@0: } michael@0: if(_2fe){ michael@0: return map(_2fc,_2fe,_2f9(ctx)); michael@0: } michael@0: } michael@0: try{ michael@0: node=_2fb.match(node,ctx); michael@0: continue; michael@0: } michael@0: catch(e){ michael@0: if(e!=_2fd){ michael@0: throw e; michael@0: } michael@0: } michael@0: return self._document.createTextNode(node.toString()); michael@0: } michael@0: return undefined; michael@0: },isChildNode:function(node,_300){ michael@0: var self=MochiKit.DOM; michael@0: if(typeof (node)=="string"){ michael@0: node=self.getElement(node); michael@0: } michael@0: if(typeof (_300)=="string"){ michael@0: _300=self.getElement(_300); michael@0: } michael@0: if(node===_300){ michael@0: return true; michael@0: } michael@0: while(node&&node.tagName.toUpperCase()!="BODY"){ michael@0: node=node.parentNode; michael@0: if(node===_300){ michael@0: return true; michael@0: } michael@0: } michael@0: return false; michael@0: },setNodeAttribute:function(node,attr,_304){ michael@0: var o={}; michael@0: o[attr]=_304; michael@0: try{ michael@0: return MochiKit.DOM.updateNodeAttributes(node,o); michael@0: } michael@0: catch(e){ michael@0: } michael@0: return null; michael@0: },getNodeAttribute:function(node,attr){ michael@0: var self=MochiKit.DOM; michael@0: var _309=self.attributeArray.renames[attr]; michael@0: node=self.getElement(node); michael@0: try{ michael@0: if(_309){ michael@0: return node[_309]; michael@0: } michael@0: return node.getAttribute(attr); michael@0: } michael@0: catch(e){ michael@0: } michael@0: return null; michael@0: },updateNodeAttributes:function(node,_30b){ michael@0: var elem=node; michael@0: var self=MochiKit.DOM; michael@0: if(typeof (node)=="string"){ michael@0: elem=self.getElement(node); michael@0: } michael@0: if(_30b){ michael@0: var _30e=MochiKit.Base.updatetree; michael@0: if(self.attributeArray.compliant){ michael@0: for(var k in _30b){ michael@0: var v=_30b[k]; michael@0: if(typeof (v)=="object"&&typeof (elem[k])=="object"){ michael@0: _30e(elem[k],v); michael@0: }else{ michael@0: if(k.substring(0,2)=="on"){ michael@0: if(typeof (v)=="string"){ michael@0: v=new Function(v); michael@0: } michael@0: elem[k]=v; michael@0: }else{ michael@0: elem.setAttribute(k,v); michael@0: } michael@0: } michael@0: } michael@0: }else{ michael@0: var _311=self.attributeArray.renames; michael@0: for(k in _30b){ michael@0: v=_30b[k]; michael@0: var _312=_311[k]; michael@0: if(k=="style"&&typeof (v)=="string"){ michael@0: elem.style.cssText=v; michael@0: }else{ michael@0: if(typeof (_312)=="string"){ michael@0: elem[_312]=v; michael@0: }else{ michael@0: if(typeof (elem[k])=="object"&&typeof (v)=="object"){ michael@0: _30e(elem[k],v); michael@0: }else{ michael@0: if(k.substring(0,2)=="on"){ michael@0: if(typeof (v)=="string"){ michael@0: v=new Function(v); michael@0: } michael@0: elem[k]=v; michael@0: }else{ michael@0: elem.setAttribute(k,v); michael@0: } michael@0: } michael@0: } michael@0: } michael@0: } michael@0: } michael@0: } michael@0: return elem; michael@0: },appendChildNodes:function(node){ michael@0: var elem=node; michael@0: var self=MochiKit.DOM; michael@0: if(typeof (node)=="string"){ michael@0: elem=self.getElement(node); michael@0: } michael@0: var _316=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; michael@0: var _317=MochiKit.Base.concat; michael@0: while(_316.length){ michael@0: var n=_316.shift(); michael@0: if(typeof (n)=="undefined"||n===null){ michael@0: }else{ michael@0: if(typeof (n.nodeType)=="number"){ michael@0: elem.appendChild(n); michael@0: }else{ michael@0: _316=_317(n,_316); michael@0: } michael@0: } michael@0: } michael@0: return elem; michael@0: },replaceChildNodes:function(node){ michael@0: var elem=node; michael@0: var self=MochiKit.DOM; michael@0: if(typeof (node)=="string"){ michael@0: elem=self.getElement(node); michael@0: arguments[0]=elem; michael@0: } michael@0: var _31c; michael@0: while((_31c=elem.firstChild)){ michael@0: elem.removeChild(_31c); michael@0: } michael@0: if(arguments.length<2){ michael@0: return elem; michael@0: }else{ michael@0: return self.appendChildNodes.apply(this,arguments); michael@0: } michael@0: },createDOM:function(name,_31e){ michael@0: var elem; michael@0: var self=MochiKit.DOM; michael@0: var m=MochiKit.Base; michael@0: if(typeof (_31e)=="string"||typeof (_31e)=="number"){ michael@0: var args=m.extend([name,null],arguments,1); michael@0: return arguments.callee.apply(this,args); michael@0: } michael@0: if(typeof (name)=="string"){ michael@0: var _323=self._xhtml; michael@0: if(_31e&&!self.attributeArray.compliant){ michael@0: var _324=""; michael@0: if("name" in _31e){ michael@0: _324+=" name=\""+self.escapeHTML(_31e.name)+"\""; michael@0: } michael@0: if(name=="input"&&"type" in _31e){ michael@0: _324+=" type=\""+self.escapeHTML(_31e.type)+"\""; michael@0: } michael@0: if(_324){ michael@0: name="<"+name+_324+">"; michael@0: _323=false; michael@0: } michael@0: } michael@0: var d=self._document; michael@0: if(_323&&d===document){ michael@0: elem=d.createElementNS("http://www.w3.org/1999/xhtml",name); michael@0: }else{ michael@0: elem=d.createElement(name); michael@0: } michael@0: }else{ michael@0: elem=name; michael@0: } michael@0: if(_31e){ michael@0: self.updateNodeAttributes(elem,_31e); michael@0: } michael@0: if(arguments.length<=2){ michael@0: return elem; michael@0: }else{ michael@0: var args=m.extend([elem],arguments,2); michael@0: return self.appendChildNodes.apply(this,args); michael@0: } michael@0: },createDOMFunc:function(){ michael@0: var m=MochiKit.Base; michael@0: return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments)); michael@0: },removeElement:function(elem){ michael@0: var e=MochiKit.DOM.getElement(elem); michael@0: e.parentNode.removeChild(e); michael@0: return e; michael@0: },swapDOM:function(dest,src){ michael@0: var self=MochiKit.DOM; michael@0: dest=self.getElement(dest); michael@0: var _32c=dest.parentNode; michael@0: if(src){ michael@0: src=self.getElement(src); michael@0: _32c.replaceChild(src,dest); michael@0: }else{ michael@0: _32c.removeChild(dest); michael@0: } michael@0: return src; michael@0: },getElement:function(id){ michael@0: var self=MochiKit.DOM; michael@0: if(arguments.length==1){ michael@0: return ((typeof (id)=="string")?self._document.getElementById(id):id); michael@0: }else{ michael@0: return MochiKit.Base.map(self.getElement,arguments); michael@0: } michael@0: },getElementsByTagAndClassName:function(_32f,_330,_331){ michael@0: var self=MochiKit.DOM; michael@0: if(typeof (_32f)=="undefined"||_32f===null){ michael@0: _32f="*"; michael@0: } michael@0: if(typeof (_331)=="undefined"||_331===null){ michael@0: _331=self._document; michael@0: } michael@0: _331=self.getElement(_331); michael@0: var _333=(_331.getElementsByTagName(_32f)||self._document.all); michael@0: if(typeof (_330)=="undefined"||_330===null){ michael@0: return MochiKit.Base.extend(null,_333); michael@0: } michael@0: var _334=[]; michael@0: for(var i=0;i<_333.length;i++){ michael@0: var _336=_333[i]; michael@0: var cls=_336.className; michael@0: if(!cls){ michael@0: continue; michael@0: } michael@0: var _338=cls.split(" "); michael@0: for(var j=0;j<_338.length;j++){ michael@0: if(_338[j]==_330){ michael@0: _334.push(_336); michael@0: break; michael@0: } michael@0: } michael@0: } michael@0: return _334; michael@0: },_newCallStack:function(path,once){ michael@0: var rval=function(){ michael@0: var _33d=arguments.callee.callStack; michael@0: for(var i=0;i<_33d.length;i++){ michael@0: if(_33d[i].apply(this,arguments)===false){ michael@0: break; michael@0: } michael@0: } michael@0: if(once){ michael@0: try{ michael@0: this[path]=null; michael@0: } michael@0: catch(e){ michael@0: } michael@0: } michael@0: }; michael@0: rval.callStack=[]; michael@0: return rval; michael@0: },addToCallStack:function(_33f,path,func,once){ michael@0: var self=MochiKit.DOM; michael@0: var _344=_33f[path]; michael@0: var _345=_344; michael@0: if(!(typeof (_344)=="function"&&typeof (_344.callStack)=="object"&&_344.callStack!==null)){ michael@0: _345=self._newCallStack(path,once); michael@0: if(typeof (_344)=="function"){ michael@0: _345.callStack.push(_344); michael@0: } michael@0: _33f[path]=_345; michael@0: } michael@0: _345.callStack.push(func); michael@0: },addLoadEvent:function(func){ michael@0: var self=MochiKit.DOM; michael@0: self.addToCallStack(self._window,"onload",func,true); michael@0: },focusOnLoad:function(_348){ michael@0: var self=MochiKit.DOM; michael@0: self.addLoadEvent(function(){ michael@0: _348=self.getElement(_348); michael@0: if(_348){ michael@0: _348.focus(); michael@0: } michael@0: }); michael@0: },setElementClass:function(_34a,_34b){ michael@0: var self=MochiKit.DOM; michael@0: var obj=self.getElement(_34a); michael@0: if(self.attributeArray.compliant){ michael@0: obj.setAttribute("class",_34b); michael@0: }else{ michael@0: obj.setAttribute("className",_34b); michael@0: } michael@0: },toggleElementClass:function(_34e){ michael@0: var self=MochiKit.DOM; michael@0: for(var i=1;i/g,">"); michael@0: },toHTML:function(dom){ michael@0: return MochiKit.DOM.emitHTML(dom).join(""); michael@0: },emitHTML:function(dom,lst){ michael@0: if(typeof (lst)=="undefined"||lst===null){ michael@0: lst=[]; michael@0: } michael@0: var _371=[dom]; michael@0: var self=MochiKit.DOM; michael@0: var _373=self.escapeHTML; michael@0: var _374=self.attributeArray; michael@0: while(_371.length){ michael@0: dom=_371.pop(); michael@0: if(typeof (dom)=="string"){ michael@0: lst.push(dom); michael@0: }else{ michael@0: if(dom.nodeType==1){ michael@0: lst.push("<"+dom.tagName.toLowerCase()); michael@0: var _375=[]; michael@0: var _376=_374(dom); michael@0: for(var i=0;i<_376.length;i++){ michael@0: var a=_376[i]; michael@0: _375.push([" ",a.name,"=\"",_373(a.value),"\""]); michael@0: } michael@0: _375.sort(); michael@0: for(i=0;i<_375.length;i++){ michael@0: var _379=_375[i]; michael@0: for(var j=0;j<_379.length;j++){ michael@0: lst.push(_379[j]); michael@0: } michael@0: } michael@0: if(dom.hasChildNodes()){ michael@0: lst.push(">"); michael@0: _371.push(""); michael@0: var _37b=dom.childNodes; michael@0: for(i=_37b.length-1;i>=0;i--){ michael@0: _371.push(_37b[i]); michael@0: } michael@0: }else{ michael@0: lst.push("/>"); michael@0: } michael@0: }else{ michael@0: if(dom.nodeType==3){ michael@0: lst.push(_373(dom.nodeValue)); michael@0: } michael@0: } michael@0: } michael@0: } michael@0: return lst; michael@0: },scrapeText:function(node,_37d){ michael@0: var rval=[]; michael@0: (function(node){ michael@0: var cn=node.childNodes; michael@0: if(cn){ michael@0: for(var i=0;i0){ michael@0: var _38a=m.filter; michael@0: _389=function(node){ michael@0: return _38a(_389.ignoreAttrFilter,node.attributes); michael@0: }; michael@0: _389.ignoreAttr={}; michael@0: var _38c=_388.attributes; michael@0: var _38d=_389.ignoreAttr; michael@0: for(var i=0;i<_38c.length;i++){ michael@0: var a=_38c[i]; michael@0: _38d[a.name]=a.value; michael@0: } michael@0: _389.ignoreAttrFilter=function(a){ michael@0: return (_389.ignoreAttr[a.name]!=a.value); michael@0: }; michael@0: _389.compliant=false; michael@0: _389.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor"}; michael@0: }else{ michael@0: _389=function(node){ michael@0: return node.attributes; michael@0: }; michael@0: _389.compliant=true; michael@0: _389.renames={}; michael@0: } michael@0: this.attributeArray=_389; michael@0: var _392=function(_393,arr){ michael@0: var _395=arr[1].split("."); michael@0: var str=""; michael@0: var obj={}; michael@0: str+="if (!MochiKit."+_395[1]+") { throw new Error(\""; michael@0: str+="This function has been deprecated and depends on MochiKit."; michael@0: str+=_395[1]+".\");}"; michael@0: str+="return MochiKit."+_395[1]+"."+arr[0]; michael@0: str+=".apply(this, arguments);"; michael@0: obj[_395[2]]=new Function(str); michael@0: MochiKit.Base.update(MochiKit[_393],obj); michael@0: }; michael@0: for(var i;i<&-]/g,"_"); michael@0: var name=uid+"_"+url; michael@0: var nwin=win.open("",name,"dependent,resizable,height=200"); michael@0: if(!nwin){ michael@0: alert("Not able to open debugging window due to pop-up blocking."); michael@0: return undefined; michael@0: } michael@0: nwin.document.write(""+"[MochiKit.LoggingPane]"+""); michael@0: nwin.document.close(); michael@0: nwin.document.title+=" "+win.document.title; michael@0: win=nwin; michael@0: } michael@0: var doc=win.document; michael@0: this.doc=doc; michael@0: var _3eb=doc.getElementById(uid); michael@0: var _3ec=!!_3eb; michael@0: if(_3eb&&typeof (_3eb.loggingPane)!="undefined"){ michael@0: _3eb.loggingPane.logger=this.logger; michael@0: _3eb.loggingPane.buildAndApplyFilter(); michael@0: return _3eb.loggingPane; michael@0: } michael@0: if(_3ec){ michael@0: var _3ed; michael@0: while((_3ed=_3eb.firstChild)){ michael@0: _3eb.removeChild(_3ed); michael@0: } michael@0: }else{ michael@0: _3eb=doc.createElement("div"); michael@0: _3eb.id=uid; michael@0: } michael@0: _3eb.loggingPane=this; michael@0: var _3ee=doc.createElement("input"); michael@0: var _3ef=doc.createElement("input"); michael@0: var _3f0=doc.createElement("button"); michael@0: var _3f1=doc.createElement("button"); michael@0: var _3f2=doc.createElement("button"); michael@0: var _3f3=doc.createElement("button"); michael@0: var _3f4=doc.createElement("div"); michael@0: var _3f5=doc.createElement("div"); michael@0: var _3f6=uid+"_Listener"; michael@0: this.colorTable=_3e4(this.colorTable); michael@0: var _3f7=[]; michael@0: var _3f8=null; michael@0: var _3f9=function(msg){ michael@0: var _3fb=msg.level; michael@0: if(typeof (_3fb)=="number"){ michael@0: _3fb=MochiKit.Logging.LogLevel[_3fb]; michael@0: } michael@0: return _3fb; michael@0: }; michael@0: var _3fc=function(msg){ michael@0: return msg.info.join(" "); michael@0: }; michael@0: var _3fe=bind(function(msg){ michael@0: var _400=_3f9(msg); michael@0: var text=_3fc(msg); michael@0: var c=this.colorTable[_400]; michael@0: var p=doc.createElement("span"); michael@0: p.className="MochiKit-LogMessage MochiKit-LogLevel-"+_400; michael@0: 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; michael@0: p.appendChild(doc.createTextNode(_400+": "+text)); michael@0: _3f5.appendChild(p); michael@0: _3f5.appendChild(doc.createElement("br")); michael@0: if(_3f4.offsetHeight>_3f4.scrollHeight){ michael@0: _3f4.scrollTop=0; michael@0: }else{ michael@0: _3f4.scrollTop=_3f4.scrollHeight; michael@0: } michael@0: },this); michael@0: var _404=function(msg){ michael@0: _3f7[_3f7.length]=msg; michael@0: _3fe(msg); michael@0: }; michael@0: var _406=function(){ michael@0: var _407,_408; michael@0: try{ michael@0: _407=new RegExp(_3ee.value); michael@0: _408=new RegExp(_3ef.value); michael@0: } michael@0: catch(e){ michael@0: logDebug("Error in filter regex: "+e.message); michael@0: return null; michael@0: } michael@0: return function(msg){ michael@0: return (_407.test(_3f9(msg))&&_408.test(_3fc(msg))); michael@0: }; michael@0: }; michael@0: var _40a=function(){ michael@0: while(_3f5.firstChild){ michael@0: _3f5.removeChild(_3f5.firstChild); michael@0: } michael@0: }; michael@0: var _40b=function(){ michael@0: _3f7=[]; michael@0: _40a(); michael@0: }; michael@0: var _40c=bind(function(){ michael@0: if(this.closed){ michael@0: return; michael@0: } michael@0: this.closed=true; michael@0: if(MochiKit.LoggingPane._loggingPane==this){ michael@0: MochiKit.LoggingPane._loggingPane=null; michael@0: } michael@0: this.logger.removeListener(_3f6); michael@0: _3eb.loggingPane=null; michael@0: if(_3df){ michael@0: _3eb.parentNode.removeChild(_3eb); michael@0: }else{ michael@0: this.win.close(); michael@0: } michael@0: },this); michael@0: var _40d=function(){ michael@0: _40a(); michael@0: for(var i=0;i<_3f7.length;i++){ michael@0: var msg=_3f7[i]; michael@0: if(_3f8===null||_3f8(msg)){ michael@0: _3fe(msg); michael@0: } michael@0: } michael@0: }; michael@0: this.buildAndApplyFilter=function(){ michael@0: _3f8=_406(); michael@0: _40d(); michael@0: this.logger.removeListener(_3f6); michael@0: this.logger.addListener(_3f6,_3f8,_404); michael@0: }; michael@0: var _410=bind(function(){ michael@0: _3f7=this.logger.getMessages(); michael@0: _40d(); michael@0: },this); michael@0: var _411=bind(function(_412){ michael@0: _412=_412||window.event; michael@0: key=_412.which||_412.keyCode; michael@0: if(key==13){ michael@0: this.buildAndApplyFilter(); michael@0: } michael@0: },this); michael@0: var _413="display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: "+this.logFont; michael@0: if(_3df){ michael@0: _413+="; height: 10em; border-top: 2px solid black"; michael@0: }else{ michael@0: _413+="; height: 100%;"; michael@0: } michael@0: _3eb.style.cssText=_413; michael@0: if(!_3ec){ michael@0: doc.body.appendChild(_3eb); michael@0: } michael@0: _413={"cssText":"width: 33%; display: inline; font: "+this.logFont}; michael@0: _3e2(_3ee,{"value":"FATAL|ERROR|WARNING|INFO|DEBUG","onkeypress":_411,"style":_413}); michael@0: _3eb.appendChild(_3ee); michael@0: _3e2(_3ef,{"value":".*","onkeypress":_411,"style":_413}); michael@0: _3eb.appendChild(_3ef); michael@0: _413="width: 8%; display:inline; font: "+this.logFont; michael@0: _3f0.appendChild(doc.createTextNode("Filter")); michael@0: _3f0.onclick=bind("buildAndApplyFilter",this); michael@0: _3f0.style.cssText=_413; michael@0: _3eb.appendChild(_3f0); michael@0: _3f1.appendChild(doc.createTextNode("Load")); michael@0: _3f1.onclick=_410; michael@0: _3f1.style.cssText=_413; michael@0: _3eb.appendChild(_3f1); michael@0: _3f2.appendChild(doc.createTextNode("Clear")); michael@0: _3f2.onclick=_40b; michael@0: _3f2.style.cssText=_413; michael@0: _3eb.appendChild(_3f2); michael@0: _3f3.appendChild(doc.createTextNode("Close")); michael@0: _3f3.onclick=_40c; michael@0: _3f3.style.cssText=_413; michael@0: _3eb.appendChild(_3f3); michael@0: _3f4.style.cssText="overflow: auto; width: 100%"; michael@0: _3f5.style.cssText="width: 100%; height: "+(_3df?"8em":"100%"); michael@0: _3f4.appendChild(_3f5); michael@0: _3eb.appendChild(_3f4); michael@0: this.buildAndApplyFilter(); michael@0: _410(); michael@0: if(_3df){ michael@0: this.win=undefined; michael@0: }else{ michael@0: this.win=win; michael@0: } michael@0: this.inline=_3df; michael@0: this.closePane=_40c; michael@0: this.closed=false; michael@0: return this; michael@0: }; michael@0: MochiKit.LoggingPane.LoggingPane.prototype={"logFont":"8pt Verdana,sans-serif","colorTable":{"ERROR":"red","FATAL":"darkred","WARNING":"blue","INFO":"black","DEBUG":"green"}}; michael@0: MochiKit.LoggingPane.EXPORT_OK=["LoggingPane"]; michael@0: MochiKit.LoggingPane.EXPORT=["createLoggingPane"]; michael@0: MochiKit.LoggingPane.__new__=function(){ michael@0: this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)}; michael@0: MochiKit.Base.nameFunctions(this); michael@0: MochiKit.LoggingPane._loggingPane=null; michael@0: }; michael@0: MochiKit.LoggingPane.__new__(); michael@0: MochiKit.Base._exportSymbols(this,MochiKit.LoggingPane); michael@0: if(typeof (dojo)!="undefined"){ michael@0: dojo.provide("MochiKit.Color"); michael@0: dojo.require("MochiKit.Base"); michael@0: dojo.require("MochiKit.DOM"); michael@0: dojo.require("MochiKit.Style"); michael@0: } michael@0: if(typeof (JSAN)!="undefined"){ michael@0: JSAN.use("MochiKit.Base",[]); michael@0: JSAN.use("MochiKit.DOM",[]); michael@0: JSAN.use("MochiKit.Style",[]); michael@0: } michael@0: try{ michael@0: if(typeof (MochiKit.Base)=="undefined"){ michael@0: throw ""; michael@0: } michael@0: } michael@0: catch(e){ michael@0: throw "MochiKit.Color depends on MochiKit.Base"; michael@0: } michael@0: try{ michael@0: if(typeof (MochiKit.Base)=="undefined"){ michael@0: throw ""; michael@0: } michael@0: } michael@0: catch(e){ michael@0: throw "MochiKit.Color depends on MochiKit.DOM"; michael@0: } michael@0: try{ michael@0: if(typeof (MochiKit.Base)=="undefined"){ michael@0: throw ""; michael@0: } michael@0: } michael@0: catch(e){ michael@0: throw "MochiKit.Color depends on MochiKit.Style"; michael@0: } michael@0: if(typeof (MochiKit.Color)=="undefined"){ michael@0: MochiKit.Color={}; michael@0: } michael@0: MochiKit.Color.NAME="MochiKit.Color"; michael@0: MochiKit.Color.VERSION="1.4"; michael@0: MochiKit.Color.__repr__=function(){ michael@0: return "["+this.NAME+" "+this.VERSION+"]"; michael@0: }; michael@0: MochiKit.Color.toString=function(){ michael@0: return this.__repr__(); michael@0: }; michael@0: MochiKit.Color.Color=function(red,_415,blue,_417){ michael@0: if(typeof (_417)=="undefined"||_417===null){ michael@0: _417=1; michael@0: } michael@0: this.rgb={r:red,g:_415,b:blue,a:_417}; michael@0: }; michael@0: MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_418){ michael@0: var rgb=this.rgb; michael@0: var m=MochiKit.Color; michael@0: return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_418); michael@0: },colorWithHue:function(hue){ michael@0: var hsl=this.asHSL(); michael@0: hsl.h=hue; michael@0: var m=MochiKit.Color; michael@0: return m.Color.fromHSL(hsl); michael@0: },colorWithSaturation:function(_41e){ michael@0: var hsl=this.asHSL(); michael@0: hsl.s=_41e; michael@0: var m=MochiKit.Color; michael@0: return m.Color.fromHSL(hsl); michael@0: },colorWithLightness:function(_421){ michael@0: var hsl=this.asHSL(); michael@0: hsl.l=_421; michael@0: var m=MochiKit.Color; michael@0: return m.Color.fromHSL(hsl); michael@0: },darkerColorWithLevel:function(_424){ michael@0: var hsl=this.asHSL(); michael@0: hsl.l=Math.max(hsl.l-_424,0); michael@0: var m=MochiKit.Color; michael@0: return m.Color.fromHSL(hsl); michael@0: },lighterColorWithLevel:function(_427){ michael@0: var hsl=this.asHSL(); michael@0: hsl.l=Math.min(hsl.l+_427,1); michael@0: var m=MochiKit.Color; michael@0: return m.Color.fromHSL(hsl); michael@0: },blendedColor:function(_42a,_42b){ michael@0: if(typeof (_42b)=="undefined"||_42b===null){ michael@0: _42b=0.5; michael@0: } michael@0: var sf=1-_42b; michael@0: var s=this.rgb; michael@0: var d=_42a.rgb; michael@0: var df=_42b; michael@0: 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)); michael@0: },compareRGB:function(_430){ michael@0: var a=this.asRGB(); michael@0: var b=_430.asRGB(); michael@0: return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]); michael@0: },isLight:function(){ michael@0: return this.asHSL().b>0.5; michael@0: },isDark:function(){ michael@0: return (!this.isLight()); michael@0: },toHSLString:function(){ michael@0: var c=this.asHSL(); michael@0: var ccc=MochiKit.Color.clampColorComponent; michael@0: var rval=this._hslString; michael@0: if(!rval){ michael@0: var mid=(ccc(c.h,360).toFixed(0)+","+ccc(c.s,100).toPrecision(4)+"%"+","+ccc(c.l,100).toPrecision(4)+"%"); michael@0: var a=c.a; michael@0: if(a>=1){ michael@0: a=1; michael@0: rval="hsl("+mid+")"; michael@0: }else{ michael@0: if(a<=0){ michael@0: a=0; michael@0: } michael@0: rval="hsla("+mid+","+a+")"; michael@0: } michael@0: this._hslString=rval; michael@0: } michael@0: return rval; michael@0: },toRGBString:function(){ michael@0: var c=this.rgb; michael@0: var ccc=MochiKit.Color.clampColorComponent; michael@0: var rval=this._rgbString; michael@0: if(!rval){ michael@0: var mid=(ccc(c.r,255).toFixed(0)+","+ccc(c.g,255).toFixed(0)+","+ccc(c.b,255).toFixed(0)); michael@0: if(c.a!=1){ michael@0: rval="rgba("+mid+","+c.a+")"; michael@0: }else{ michael@0: rval="rgb("+mid+")"; michael@0: } michael@0: this._rgbString=rval; michael@0: } michael@0: return rval; michael@0: },asRGB:function(){ michael@0: return MochiKit.Base.clone(this.rgb); michael@0: },toHexString:function(){ michael@0: var m=MochiKit.Color; michael@0: var c=this.rgb; michael@0: var ccc=MochiKit.Color.clampColorComponent; michael@0: var rval=this._hexString; michael@0: if(!rval){ michael@0: rval=("#"+m.toColorPart(ccc(c.r,255))+m.toColorPart(ccc(c.g,255))+m.toColorPart(ccc(c.b,255))); michael@0: this._hexString=rval; michael@0: } michael@0: return rval; michael@0: },asHSV:function(){ michael@0: var hsv=this.hsv; michael@0: var c=this.rgb; michael@0: if(typeof (hsv)=="undefined"||hsv===null){ michael@0: hsv=MochiKit.Color.rgbToHSV(this.rgb); michael@0: this.hsv=hsv; michael@0: } michael@0: return MochiKit.Base.clone(hsv); michael@0: },asHSL:function(){ michael@0: var hsl=this.hsl; michael@0: var c=this.rgb; michael@0: if(typeof (hsl)=="undefined"||hsl===null){ michael@0: hsl=MochiKit.Color.rgbToHSL(this.rgb); michael@0: this.hsl=hsl; michael@0: } michael@0: return MochiKit.Base.clone(hsl); michael@0: },toString:function(){ michael@0: return this.toRGBString(); michael@0: },repr:function(){ michael@0: var c=this.rgb; michael@0: var col=[c.r,c.g,c.b,c.a]; michael@0: return this.__class__.NAME+"("+col.join(", ")+")"; michael@0: }}; michael@0: MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_447,blue,_449){ michael@0: var _44a=MochiKit.Color.Color; michael@0: if(arguments.length==1){ michael@0: var rgb=red; michael@0: red=rgb.r; michael@0: _447=rgb.g; michael@0: blue=rgb.b; michael@0: if(typeof (rgb.a)=="undefined"){ michael@0: _449=undefined; michael@0: }else{ michael@0: _449=rgb.a; michael@0: } michael@0: } michael@0: return new _44a(red,_447,blue,_449); michael@0: },fromHSL:function(hue,_44d,_44e,_44f){ michael@0: var m=MochiKit.Color; michael@0: return m.Color.fromRGB(m.hslToRGB.apply(m,arguments)); michael@0: },fromHSV:function(hue,_452,_453,_454){ michael@0: var m=MochiKit.Color; michael@0: return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments)); michael@0: },fromName:function(name){ michael@0: var _457=MochiKit.Color.Color; michael@0: if(name.charAt(0)=="\""){ michael@0: name=name.substr(1,name.length-2); michael@0: } michael@0: var _458=_457._namedColors[name.toLowerCase()]; michael@0: if(typeof (_458)=="string"){ michael@0: return _457.fromHexString(_458); michael@0: }else{ michael@0: if(name=="transparent"){ michael@0: return _457.transparentColor(); michael@0: } michael@0: } michael@0: return null; michael@0: },fromString:function(_459){ michael@0: var self=MochiKit.Color.Color; michael@0: var _45b=_459.substr(0,3); michael@0: if(_45b=="rgb"){ michael@0: return self.fromRGBString(_459); michael@0: }else{ michael@0: if(_45b=="hsl"){ michael@0: return self.fromHSLString(_459); michael@0: }else{ michael@0: if(_459.charAt(0)=="#"){ michael@0: return self.fromHexString(_459); michael@0: } michael@0: } michael@0: } michael@0: return self.fromName(_459); michael@0: },fromHexString:function(_45c){ michael@0: if(_45c.charAt(0)=="#"){ michael@0: _45c=_45c.substring(1); michael@0: } michael@0: var _45d=[]; michael@0: var i,hex; michael@0: if(_45c.length==3){ michael@0: for(i=0;i<3;i++){ michael@0: hex=_45c.substr(i,1); michael@0: _45d.push(parseInt(hex+hex,16)/255); michael@0: } michael@0: }else{ michael@0: for(i=0;i<6;i+=2){ michael@0: hex=_45c.substr(i,2); michael@0: _45d.push(parseInt(hex,16)/255); michael@0: } michael@0: } michael@0: var _460=MochiKit.Color.Color; michael@0: return _460.fromRGB.apply(_460,_45d); michael@0: },_fromColorString:function(pre,_462,_463,_464){ michael@0: if(_464.indexOf(pre)===0){ michael@0: _464=_464.substring(_464.indexOf("(",3)+1,_464.length-1); michael@0: } michael@0: var _465=_464.split(/\s*,\s*/); michael@0: var _466=[]; michael@0: for(var i=0;i<_465.length;i++){ michael@0: var c=_465[i]; michael@0: var val; michael@0: var _46a=c.substring(c.length-3); michael@0: if(c.charAt(c.length-1)=="%"){ michael@0: val=0.01*parseFloat(c.substring(0,c.length-1)); michael@0: }else{ michael@0: if(_46a=="deg"){ michael@0: val=parseFloat(c)/360; michael@0: }else{ michael@0: if(_46a=="rad"){ michael@0: val=parseFloat(c)/(Math.PI*2); michael@0: }else{ michael@0: val=_463[i]*parseFloat(c); michael@0: } michael@0: } michael@0: } michael@0: _466.push(val); michael@0: } michael@0: return this[_462].apply(this,_466); michael@0: },fromComputedStyle:function(elem,_46c){ michael@0: var d=MochiKit.DOM; michael@0: var cls=MochiKit.Color.Color; michael@0: for(elem=d.getElement(elem);elem;elem=elem.parentNode){ michael@0: var _46f=MochiKit.Style.computedStyle.apply(d,arguments); michael@0: if(!_46f){ michael@0: continue; michael@0: } michael@0: var _470=cls.fromString(_46f); michael@0: if(!_470){ michael@0: break; michael@0: } michael@0: if(_470.asRGB().a>0){ michael@0: return _470; michael@0: } michael@0: } michael@0: return null; michael@0: },fromBackground:function(elem){ michael@0: var cls=MochiKit.Color.Color; michael@0: return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor(); michael@0: },fromText:function(elem){ michael@0: var cls=MochiKit.Color.Color; michael@0: return cls.fromComputedStyle(elem,"color","color")||cls.blackColor(); michael@0: },namedColors:function(){ michael@0: return MochiKit.Base.clone(MochiKit.Color.Color._namedColors); michael@0: }}); michael@0: MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_476){ michael@0: v*=_476; michael@0: if(v<0){ michael@0: return 0; michael@0: }else{ michael@0: if(v>_476){ michael@0: return _476; michael@0: }else{ michael@0: return v; michael@0: } michael@0: } michael@0: },_hslValue:function(n1,n2,hue){ michael@0: if(hue>6){ michael@0: hue-=6; michael@0: }else{ michael@0: if(hue<0){ michael@0: hue+=6; michael@0: } michael@0: } michael@0: var val; michael@0: if(hue<1){ michael@0: val=n1+(n2-n1)*hue; michael@0: }else{ michael@0: if(hue<3){ michael@0: val=n2; michael@0: }else{ michael@0: if(hue<4){ michael@0: val=n1+(n2-n1)*(4-hue); michael@0: }else{ michael@0: val=n1; michael@0: } michael@0: } michael@0: } michael@0: return val; michael@0: },hsvToRGB:function(hue,_47c,_47d,_47e){ michael@0: if(arguments.length==1){ michael@0: var hsv=hue; michael@0: hue=hsv.h; michael@0: _47c=hsv.s; michael@0: _47d=hsv.v; michael@0: _47e=hsv.a; michael@0: } michael@0: var red; michael@0: var _481; michael@0: var blue; michael@0: if(_47c===0){ michael@0: red=0; michael@0: _481=0; michael@0: blue=0; michael@0: }else{ michael@0: var i=Math.floor(hue*6); michael@0: var f=(hue*6)-i; michael@0: var p=_47d*(1-_47c); michael@0: var q=_47d*(1-(_47c*f)); michael@0: var t=_47d*(1-(_47c*(1-f))); michael@0: switch(i){ michael@0: case 1: michael@0: red=q; michael@0: _481=_47d; michael@0: blue=p; michael@0: break; michael@0: case 2: michael@0: red=p; michael@0: _481=_47d; michael@0: blue=t; michael@0: break; michael@0: case 3: michael@0: red=p; michael@0: _481=q; michael@0: blue=_47d; michael@0: break; michael@0: case 4: michael@0: red=t; michael@0: _481=p; michael@0: blue=_47d; michael@0: break; michael@0: case 5: michael@0: red=_47d; michael@0: _481=p; michael@0: blue=q; michael@0: break; michael@0: case 6: michael@0: case 0: michael@0: red=_47d; michael@0: _481=t; michael@0: blue=p; michael@0: break; michael@0: } michael@0: } michael@0: return {r:red,g:_481,b:blue,a:_47e}; michael@0: },hslToRGB:function(hue,_489,_48a,_48b){ michael@0: if(arguments.length==1){ michael@0: var hsl=hue; michael@0: hue=hsl.h; michael@0: _489=hsl.s; michael@0: _48a=hsl.l; michael@0: _48b=hsl.a; michael@0: } michael@0: var red; michael@0: var _48e; michael@0: var blue; michael@0: if(_489===0){ michael@0: red=_48a; michael@0: _48e=_48a; michael@0: blue=_48a; michael@0: }else{ michael@0: var m2; michael@0: if(_48a<=0.5){ michael@0: m2=_48a*(1+_489); michael@0: }else{ michael@0: m2=_48a+_489-(_48a*_489); michael@0: } michael@0: var m1=(2*_48a)-m2; michael@0: var f=MochiKit.Color._hslValue; michael@0: var h6=hue*6; michael@0: red=f(m1,m2,h6+2); michael@0: _48e=f(m1,m2,h6); michael@0: blue=f(m1,m2,h6-2); michael@0: } michael@0: return {r:red,g:_48e,b:blue,a:_48b}; michael@0: },rgbToHSV:function(red,_495,blue,_497){ michael@0: if(arguments.length==1){ michael@0: var rgb=red; michael@0: red=rgb.r; michael@0: _495=rgb.g; michael@0: blue=rgb.b; michael@0: _497=rgb.a; michael@0: } michael@0: var max=Math.max(Math.max(red,_495),blue); michael@0: var min=Math.min(Math.min(red,_495),blue); michael@0: var hue; michael@0: var _49c; michael@0: var _49d=max; michael@0: if(min==max){ michael@0: hue=0; michael@0: _49c=0; michael@0: }else{ michael@0: var _49e=(max-min); michael@0: _49c=_49e/max; michael@0: if(red==max){ michael@0: hue=(_495-blue)/_49e; michael@0: }else{ michael@0: if(_495==max){ michael@0: hue=2+((blue-red)/_49e); michael@0: }else{ michael@0: hue=4+((red-_495)/_49e); michael@0: } michael@0: } michael@0: hue/=6; michael@0: if(hue<0){ michael@0: hue+=1; michael@0: } michael@0: if(hue>1){ michael@0: hue-=1; michael@0: } michael@0: } michael@0: return {h:hue,s:_49c,v:_49d,a:_497}; michael@0: },rgbToHSL:function(red,_4a0,blue,_4a2){ michael@0: if(arguments.length==1){ michael@0: var rgb=red; michael@0: red=rgb.r; michael@0: _4a0=rgb.g; michael@0: blue=rgb.b; michael@0: _4a2=rgb.a; michael@0: } michael@0: var max=Math.max(red,Math.max(_4a0,blue)); michael@0: var min=Math.min(red,Math.min(_4a0,blue)); michael@0: var hue; michael@0: var _4a7; michael@0: var _4a8=(max+min)/2; michael@0: var _4a9=max-min; michael@0: if(_4a9===0){ michael@0: hue=0; michael@0: _4a7=0; michael@0: }else{ michael@0: if(_4a8<=0.5){ michael@0: _4a7=_4a9/(max+min); michael@0: }else{ michael@0: _4a7=_4a9/(2-max-min); michael@0: } michael@0: if(red==max){ michael@0: hue=(_4a0-blue)/_4a9; michael@0: }else{ michael@0: if(_4a0==max){ michael@0: hue=2+((blue-red)/_4a9); michael@0: }else{ michael@0: hue=4+((red-_4a0)/_4a9); michael@0: } michael@0: } michael@0: hue/=6; michael@0: if(hue<0){ michael@0: hue+=1; michael@0: } michael@0: if(hue>1){ michael@0: hue-=1; michael@0: } michael@0: } michael@0: return {h:hue,s:_4a7,l:_4a8,a:_4a2}; michael@0: },toColorPart:function(num){ michael@0: num=Math.round(num); michael@0: var _4ab=num.toString(16); michael@0: if(num<16){ michael@0: return "0"+_4ab; michael@0: } michael@0: return _4ab; michael@0: },__new__:function(){ michael@0: var m=MochiKit.Base; michael@0: this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]); michael@0: this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]); michael@0: var _4ad=1/3; michael@0: var _4ae={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[_4ad,_4ad,_4ad],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*_4ad,2*_4ad,2*_4ad],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]}; michael@0: var _4af=function(name,r,g,b,a){ michael@0: var rval=this.fromRGB(r,g,b,a); michael@0: this[name]=function(){ michael@0: return rval; michael@0: }; michael@0: return rval; michael@0: }; michael@0: for(var k in _4ae){ michael@0: var name=k+"Color"; michael@0: var _4b8=m.concat([_4af,this.Color,name],_4ae[k]); michael@0: this.Color[name]=m.bind.apply(null,_4b8); michael@0: } michael@0: var _4b9=function(){ michael@0: for(var i=0;i1){ michael@0: var src=MochiKit.DOM.getElement(arguments[0]); michael@0: var sig=arguments[1]; michael@0: var obj=arguments[2]; michael@0: var func=arguments[3]; michael@0: for(var i=_4f5.length-1;i>=0;i--){ michael@0: var o=_4f5[i]; michael@0: if(o[0]===src&&o[1]===sig&&o[4]===obj&&o[5]===func){ michael@0: self._disconnect(o); michael@0: if(!self._lock){ michael@0: _4f5.splice(i,1); michael@0: }else{ michael@0: self._dirty=true; michael@0: } michael@0: return true; michael@0: } michael@0: } michael@0: }else{ michael@0: var idx=m.findIdentical(_4f5,_4f3); michael@0: if(idx>=0){ michael@0: self._disconnect(_4f3); michael@0: if(!self._lock){ michael@0: _4f5.splice(idx,1); michael@0: }else{ michael@0: self._dirty=true; michael@0: } michael@0: return true; michael@0: } michael@0: } michael@0: return false; michael@0: },disconnectAllTo:function(_4fe,_4ff){ michael@0: var self=MochiKit.Signal; michael@0: var _501=self._observers; michael@0: var _502=self._disconnect; michael@0: var _503=self._lock; michael@0: var _504=self._dirty; michael@0: if(typeof (_4ff)==="undefined"){ michael@0: _4ff=null; michael@0: } michael@0: for(var i=_501.length-1;i>=0;i--){ michael@0: var _506=_501[i]; michael@0: if(_506[4]===_4fe&&(_4ff===null||_506[5]===_4ff)){ michael@0: _502(_506); michael@0: if(_503){ michael@0: _504=true; michael@0: }else{ michael@0: _501.splice(i,1); michael@0: } michael@0: } michael@0: } michael@0: self._dirty=_504; michael@0: },disconnectAll:function(src,sig){ michael@0: src=MochiKit.DOM.getElement(src); michael@0: var m=MochiKit.Base; michael@0: var _50a=m.flattenArguments(m.extend(null,arguments,1)); michael@0: var self=MochiKit.Signal; michael@0: var _50c=self._disconnect; michael@0: var _50d=self._observers; michael@0: var i,_50f; michael@0: var _510=self._lock; michael@0: var _511=self._dirty; michael@0: if(_50a.length===0){ michael@0: for(i=_50d.length-1;i>=0;i--){ michael@0: _50f=_50d[i]; michael@0: if(_50f[0]===src){ michael@0: _50c(_50f); michael@0: if(!_510){ michael@0: _50d.splice(i,1); michael@0: }else{ michael@0: _511=true; michael@0: } michael@0: } michael@0: } michael@0: }else{ michael@0: var sigs={}; michael@0: for(i=0;i<_50a.length;i++){ michael@0: sigs[_50a[i]]=true; michael@0: } michael@0: for(i=_50d.length-1;i>=0;i--){ michael@0: _50f=_50d[i]; michael@0: if(_50f[0]===src&&_50f[1] in sigs){ michael@0: _50c(_50f); michael@0: if(!_510){ michael@0: _50d.splice(i,1); michael@0: }else{ michael@0: _511=true; michael@0: } michael@0: } michael@0: } michael@0: } michael@0: self._dirty=_511; michael@0: },signal:function(src,sig){ michael@0: var self=MochiKit.Signal; michael@0: var _516=self._observers; michael@0: src=MochiKit.DOM.getElement(src); michael@0: var args=MochiKit.Base.extend(null,arguments,2); michael@0: var _518=[]; michael@0: self._lock=true; michael@0: for(var i=0;i<_516.length;i++){ michael@0: var _51a=_516[i]; michael@0: if(_51a[0]===src&&_51a[1]===sig){ michael@0: try{ michael@0: _51a[2].apply(src,args); michael@0: } michael@0: catch(e){ michael@0: _518.push(e); michael@0: } michael@0: } michael@0: } michael@0: self._lock=false; michael@0: if(self._dirty){ michael@0: self._dirty=false; michael@0: for(var i=_516.length-1;i>=0;i--){ michael@0: if(!_516[i][6]){ michael@0: _516.splice(i,1); michael@0: } michael@0: } michael@0: } michael@0: if(_518.length==1){ michael@0: throw _518[0]; michael@0: }else{ michael@0: if(_518.length>1){ michael@0: var e=new Error("Multiple errors thrown in handling 'sig', see errors property"); michael@0: e.errors=_518; michael@0: throw e; michael@0: } michael@0: } michael@0: }}); michael@0: MochiKit.Signal.EXPORT_OK=[]; michael@0: MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"]; michael@0: MochiKit.Signal.__new__=function(win){ michael@0: var m=MochiKit.Base; michael@0: this._document=document; michael@0: this._window=win; michael@0: this._lock=false; michael@0: this._dirty=false; michael@0: try{ michael@0: this.connect(window,"onunload",this._unloadCache); michael@0: } michael@0: catch(e){ michael@0: } michael@0: this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; michael@0: m.nameFunctions(this); michael@0: }; michael@0: MochiKit.Signal.__new__(this); michael@0: if(MochiKit.__export__){ michael@0: connect=MochiKit.Signal.connect; michael@0: disconnect=MochiKit.Signal.disconnect; michael@0: disconnectAll=MochiKit.Signal.disconnectAll; michael@0: signal=MochiKit.Signal.signal; michael@0: } michael@0: MochiKit.Base._exportSymbols(this,MochiKit.Signal); michael@0: if(typeof (dojo)!="undefined"){ michael@0: dojo.provide("MochiKit.Visual"); michael@0: dojo.require("MochiKit.Base"); michael@0: dojo.require("MochiKit.DOM"); michael@0: dojo.require("MochiKit.Style"); michael@0: dojo.require("MochiKit.Color"); michael@0: } michael@0: if(typeof (JSAN)!="undefined"){ michael@0: JSAN.use("MochiKit.Base",[]); michael@0: JSAN.use("MochiKit.DOM",[]); michael@0: JSAN.use("MochiKit.Style",[]); michael@0: JSAN.use("MochiKit.Color",[]); michael@0: } michael@0: try{ michael@0: if(typeof (MochiKit.Base)==="undefined"||typeof (MochiKit.DOM)==="undefined"||typeof (MochiKit.Style)==="undefined"||typeof (MochiKit.Color)==="undefined"){ michael@0: throw ""; michael@0: } michael@0: } michael@0: catch(e){ michael@0: throw "MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style and MochiKit.Color!"; michael@0: } michael@0: if(typeof (MochiKit.Visual)=="undefined"){ michael@0: MochiKit.Visual={}; michael@0: } michael@0: MochiKit.Visual.NAME="MochiKit.Visual"; michael@0: MochiKit.Visual.VERSION="1.4"; michael@0: MochiKit.Visual.__repr__=function(){ michael@0: return "["+this.NAME+" "+this.VERSION+"]"; michael@0: }; michael@0: MochiKit.Visual.toString=function(){ michael@0: return this.__repr__(); michael@0: }; michael@0: MochiKit.Visual._RoundCorners=function(e,_51f){ michael@0: e=MochiKit.DOM.getElement(e); michael@0: this._setOptions(_51f); michael@0: if(this.options.__unstable__wrapElement){ michael@0: e=this._doWrap(e); michael@0: } michael@0: var _520=this.options.color; michael@0: var C=MochiKit.Color.Color; michael@0: if(this.options.color==="fromElement"){ michael@0: _520=C.fromBackground(e); michael@0: }else{ michael@0: if(!(_520 instanceof C)){ michael@0: _520=C.fromString(_520); michael@0: } michael@0: } michael@0: this.isTransparent=(_520.asRGB().a<=0); michael@0: var _522=this.options.bgColor; michael@0: if(this.options.bgColor==="fromParent"){ michael@0: _522=C.fromBackground(e.offsetParent); michael@0: }else{ michael@0: if(!(_522 instanceof C)){ michael@0: _522=C.fromString(_522); michael@0: } michael@0: } michael@0: this._roundCornersImpl(e,_520,_522); michael@0: }; michael@0: MochiKit.Visual._RoundCorners.prototype={_doWrap:function(e){ michael@0: var _524=e.parentNode; michael@0: var doc=MochiKit.DOM.currentDocument(); michael@0: if(typeof (doc.defaultView)==="undefined"||doc.defaultView===null){ michael@0: return e; michael@0: } michael@0: var _526=doc.defaultView.getComputedStyle(e,null); michael@0: if(typeof (_526)==="undefined"||_526===null){ michael@0: return e; michael@0: } michael@0: var _527=MochiKit.DOM.DIV({"style":{display:"block",marginTop:_526.getPropertyValue("padding-top"),marginRight:_526.getPropertyValue("padding-right"),marginBottom:_526.getPropertyValue("padding-bottom"),marginLeft:_526.getPropertyValue("padding-left"),padding:"0px"}}); michael@0: _527.innerHTML=e.innerHTML; michael@0: e.innerHTML=""; michael@0: e.appendChild(_527); michael@0: return e; michael@0: },_roundCornersImpl:function(e,_529,_52a){ michael@0: if(this.options.border){ michael@0: this._renderBorder(e,_52a); michael@0: } michael@0: if(this._isTopRounded()){ michael@0: this._roundTopCorners(e,_529,_52a); michael@0: } michael@0: if(this._isBottomRounded()){ michael@0: this._roundBottomCorners(e,_529,_52a); michael@0: } michael@0: },_renderBorder:function(el,_52c){ michael@0: var _52d="1px solid "+this._borderColor(_52c); michael@0: var _52e="border-left: "+_52d; michael@0: var _52f="border-right: "+_52d; michael@0: var _530="style='"+_52e+";"+_52f+"'"; michael@0: el.innerHTML="
"+el.innerHTML+"
"; michael@0: },_roundTopCorners:function(el,_532,_533){ michael@0: var _534=this._createCorner(_533); michael@0: for(var i=0;i=0;i--){ michael@0: _539.appendChild(this._createCornerSlice(_537,_538,i,"bottom")); michael@0: } michael@0: el.style.paddingBottom=0; michael@0: el.appendChild(_539); michael@0: },_createCorner:function(_53b){ michael@0: var dom=MochiKit.DOM; michael@0: return dom.DIV({style:{backgroundColor:_53b.toString()}}); michael@0: },_createCornerSlice:function(_53d,_53e,n,_540){ michael@0: var _541=MochiKit.DOM.SPAN(); michael@0: var _542=_541.style; michael@0: _542.backgroundColor=_53d.toString(); michael@0: _542.display="block"; michael@0: _542.height="1px"; michael@0: _542.overflow="hidden"; michael@0: _542.fontSize="1px"; michael@0: var _543=this._borderColor(_53d,_53e); michael@0: if(this.options.border&&n===0){ michael@0: _542.borderTopStyle="solid"; michael@0: _542.borderTopWidth="1px"; michael@0: _542.borderLeftWidth="0px"; michael@0: _542.borderRightWidth="0px"; michael@0: _542.borderBottomWidth="0px"; michael@0: _542.height="0px"; michael@0: _542.borderColor=_543.toString(); michael@0: }else{ michael@0: if(_543){ michael@0: _542.borderColor=_543.toString(); michael@0: _542.borderStyle="solid"; michael@0: _542.borderWidth="0px 1px"; michael@0: } michael@0: } michael@0: if(!this.options.compact&&(n==(this.options.numSlices-1))){ michael@0: _542.height="2px"; michael@0: } michael@0: this._setMargin(_541,n,_540); michael@0: this._setBorder(_541,n,_540); michael@0: return _541; michael@0: },_setOptions:function(_544){ michael@0: this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false}; michael@0: MochiKit.Base.update(this.options,_544); michael@0: this.options.numSlices=(this.options.compact?2:4); michael@0: },_whichSideTop:function(){ michael@0: var _545=this.options.corners; michael@0: if(this._hasString(_545,"all","top")){ michael@0: return ""; michael@0: } michael@0: var _546=(_545.indexOf("tl")!=-1); michael@0: var _547=(_545.indexOf("tr")!=-1); michael@0: if(_546&&_547){ michael@0: return ""; michael@0: } michael@0: if(_546){ michael@0: return "left"; michael@0: } michael@0: if(_547){ michael@0: return "right"; michael@0: } michael@0: return ""; michael@0: },_whichSideBottom:function(){ michael@0: var _548=this.options.corners; michael@0: if(this._hasString(_548,"all","bottom")){ michael@0: return ""; michael@0: } michael@0: var _549=(_548.indexOf("bl")!=-1); michael@0: var _54a=(_548.indexOf("br")!=-1); michael@0: if(_549&&_54a){ michael@0: return ""; michael@0: } michael@0: if(_549){ michael@0: return "left"; michael@0: } michael@0: if(_54a){ michael@0: return "right"; michael@0: } michael@0: return ""; michael@0: },_borderColor:function(_54b,_54c){ michael@0: if(_54b=="transparent"){ michael@0: return _54c; michael@0: }else{ michael@0: if(this.options.border){ michael@0: return this.options.border; michael@0: }else{ michael@0: if(this.options.blend){ michael@0: return _54c.blendedColor(_54b); michael@0: } michael@0: } michael@0: } michael@0: return ""; michael@0: },_setMargin:function(el,n,_54f){ michael@0: var _550=this._marginSize(n)+"px"; michael@0: var _551=(_54f=="top"?this._whichSideTop():this._whichSideBottom()); michael@0: var _552=el.style; michael@0: if(_551=="left"){ michael@0: _552.marginLeft=_550; michael@0: _552.marginRight="0px"; michael@0: }else{ michael@0: if(_551=="right"){ michael@0: _552.marginRight=_550; michael@0: _552.marginLeft="0px"; michael@0: }else{ michael@0: _552.marginLeft=_550; michael@0: _552.marginRight=_550; michael@0: } michael@0: } michael@0: },_setBorder:function(el,n,_555){ michael@0: var _556=this._borderSize(n)+"px"; michael@0: var _557=(_555=="top"?this._whichSideTop():this._whichSideBottom()); michael@0: var _558=el.style; michael@0: if(_557=="left"){ michael@0: _558.borderLeftWidth=_556; michael@0: _558.borderRightWidth="0px"; michael@0: }else{ michael@0: if(_557=="right"){ michael@0: _558.borderRightWidth=_556; michael@0: _558.borderLeftWidth="0px"; michael@0: }else{ michael@0: _558.borderLeftWidth=_556; michael@0: _558.borderRightWidth=_556; michael@0: } michael@0: } michael@0: },_marginSize:function(n){ michael@0: if(this.isTransparent){ michael@0: return 0; michael@0: } michael@0: var o=this.options; michael@0: if(o.compact&&o.blend){ michael@0: var _55b=[1,0]; michael@0: return _55b[n]; michael@0: }else{ michael@0: if(o.compact){ michael@0: var _55c=[2,1]; michael@0: return _55c[n]; michael@0: }else{ michael@0: if(o.blend){ michael@0: var _55d=[3,2,1,0]; michael@0: return _55d[n]; michael@0: }else{ michael@0: var _55e=[5,3,2,1]; michael@0: return _55e[n]; michael@0: } michael@0: } michael@0: } michael@0: },_borderSize:function(n){ michael@0: var o=this.options; michael@0: var _561; michael@0: if(o.compact&&(o.blend||this.isTransparent)){ michael@0: return 1; michael@0: }else{ michael@0: if(o.compact){ michael@0: _561=[1,0]; michael@0: }else{ michael@0: if(o.blend){ michael@0: _561=[2,1,1,1]; michael@0: }else{ michael@0: if(o.border){ michael@0: _561=[0,2,0,0]; michael@0: }else{ michael@0: if(this.isTransparent){ michael@0: _561=[5,3,2,1]; michael@0: }else{ michael@0: return 0; michael@0: } michael@0: } michael@0: } michael@0: } michael@0: } michael@0: return _561[n]; michael@0: },_hasString:function(str){ michael@0: for(var i=1;i=(_58a||i)){ michael@0: _58a=i; michael@0: } michael@0: },this.effects); michael@0: _586=_58a||_586; michael@0: break; michael@0: case "break": michael@0: ma(function(e){ michael@0: e.finalize(); michael@0: },this.effects); michael@0: break; michael@0: } michael@0: _585.startOn+=_586; michael@0: _585.finishOn+=_586; michael@0: if(!_585.options.queue.limit||this.effects.length<_585.options.queue.limit){ michael@0: this.effects.push(_585); michael@0: } michael@0: if(!this.interval){ michael@0: this.interval=this.startLoop(MochiKit.Base.bind(this.loop,this),40); michael@0: } michael@0: },startLoop:function(func,_58f){ michael@0: return setInterval(func,_58f); michael@0: },remove:function(_590){ michael@0: this.effects=MochiKit.Base.filter(function(e){ michael@0: return e!=_590; michael@0: },this.effects); michael@0: if(this.effects.length==0){ michael@0: this.stopLoop(this.interval); michael@0: this.interval=null; michael@0: } michael@0: },stopLoop:function(_592){ michael@0: clearInterval(_592); michael@0: },loop:function(){ michael@0: var _593=new Date().getTime(); michael@0: MochiKit.Base.map(function(_594){ michael@0: _594.loop(_593); michael@0: },this.effects); michael@0: }}); michael@0: MochiKit.Visual.Queues={instances:{},get:function(_595){ michael@0: if(typeof (_595)!="string"){ michael@0: return _595; michael@0: } michael@0: if(!this.instances[_595]){ michael@0: this.instances[_595]=new MochiKit.Visual.ScopedQueue(); michael@0: } michael@0: return this.instances[_595]; michael@0: }}; michael@0: MochiKit.Visual.Queue=MochiKit.Visual.Queues.get("global"); michael@0: MochiKit.Visual.DefaultOptions={transition:MochiKit.Visual.Transitions.sinoidal,duration:1,fps:25,sync:false,from:0,to:1,delay:0,queue:"parallel"}; michael@0: MochiKit.Visual.Base=function(){ michael@0: }; michael@0: MochiKit.Visual.Base.prototype={__class__:MochiKit.Visual.Base,start:function(_596){ michael@0: var v=MochiKit.Visual; michael@0: this.options=MochiKit.Base.setdefault(_596||{},v.DefaultOptions); michael@0: this.currentFrame=0; michael@0: this.state="idle"; michael@0: this.startOn=this.options.delay*1000; michael@0: this.finishOn=this.startOn+(this.options.duration*1000); michael@0: this.event("beforeStart"); michael@0: if(!this.options.sync){ michael@0: v.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).add(this); michael@0: } michael@0: },loop:function(_598){ michael@0: if(_598>=this.startOn){ michael@0: if(_598>=this.finishOn){ michael@0: return this.finalize(); michael@0: } michael@0: var pos=(_598-this.startOn)/(this.finishOn-this.startOn); michael@0: var _59a=Math.round(pos*this.options.fps*this.options.duration); michael@0: if(_59a>this.currentFrame){ michael@0: this.render(pos); michael@0: this.currentFrame=_59a; michael@0: } michael@0: } michael@0: },render:function(pos){ michael@0: if(this.state=="idle"){ michael@0: this.state="running"; michael@0: this.event("beforeSetup"); michael@0: this.setup(); michael@0: this.event("afterSetup"); michael@0: } michael@0: if(this.state=="running"){ michael@0: if(this.options.transition){ michael@0: pos=this.options.transition(pos); michael@0: } michael@0: pos*=(this.options.to-this.options.from); michael@0: pos+=this.options.from; michael@0: this.event("beforeUpdate"); michael@0: this.update(pos); michael@0: this.event("afterUpdate"); michael@0: } michael@0: },cancel:function(){ michael@0: if(!this.options.sync){ michael@0: MochiKit.Visual.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).remove(this); michael@0: } michael@0: this.state="finished"; michael@0: },finalize:function(){ michael@0: this.render(1); michael@0: this.cancel(); michael@0: this.event("beforeFinish"); michael@0: this.finish(); michael@0: this.event("afterFinish"); michael@0: },setup:function(){ michael@0: },finish:function(){ michael@0: },update:function(_59c){ michael@0: },event:function(_59d){ michael@0: if(this.options[_59d+"Internal"]){ michael@0: this.options[_59d+"Internal"](this); michael@0: } michael@0: if(this.options[_59d]){ michael@0: this.options[_59d](this); michael@0: } michael@0: },repr:function(){ michael@0: return "["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"; michael@0: }}; michael@0: MochiKit.Visual.Parallel=function(_59e,_59f){ michael@0: this.__init__(_59e,_59f); michael@0: }; michael@0: MochiKit.Visual.Parallel.prototype=new MochiKit.Visual.Base(); michael@0: MochiKit.Base.update(MochiKit.Visual.Parallel.prototype,{__init__:function(_5a0,_5a1){ michael@0: this.effects=_5a0||[]; michael@0: this.start(_5a1); michael@0: },update:function(_5a2){ michael@0: MochiKit.Base.map(function(_5a3){ michael@0: _5a3.render(_5a2); michael@0: },this.effects); michael@0: },finish:function(){ michael@0: MochiKit.Base.map(function(_5a4){ michael@0: _5a4.finalize(); michael@0: },this.effects); michael@0: }}); michael@0: MochiKit.Visual.Opacity=function(_5a5,_5a6){ michael@0: this.__init__(_5a5,_5a6); michael@0: }; michael@0: MochiKit.Visual.Opacity.prototype=new MochiKit.Visual.Base(); michael@0: MochiKit.Base.update(MochiKit.Visual.Opacity.prototype,{__init__:function(_5a7,_5a8){ michael@0: var b=MochiKit.Base; michael@0: var s=MochiKit.Style; michael@0: this.element=MochiKit.DOM.getElement(_5a7); michael@0: if(this.element.currentStyle&&(!this.element.currentStyle.hasLayout)){ michael@0: s.setStyle(this.element,{zoom:1}); michael@0: } michael@0: _5a8=b.update({from:s.getOpacity(this.element)||0,to:1},_5a8||{}); michael@0: this.start(_5a8); michael@0: },update:function(_5ab){ michael@0: MochiKit.Style.setOpacity(this.element,_5ab); michael@0: }}); michael@0: MochiKit.Visual.Move=function(_5ac,_5ad){ michael@0: this.__init__(_5ac,_5ad); michael@0: }; michael@0: MochiKit.Visual.Move.prototype=new MochiKit.Visual.Base(); michael@0: MochiKit.Base.update(MochiKit.Visual.Move.prototype,{__init__:function(_5ae,_5af){ michael@0: this.element=MochiKit.DOM.getElement(_5ae); michael@0: _5af=MochiKit.Base.update({x:0,y:0,mode:"relative"},_5af||{}); michael@0: this.start(_5af); michael@0: },setup:function(){ michael@0: MochiKit.DOM.makePositioned(this.element); michael@0: var s=this.element.style; michael@0: var _5b1=s.visibility; michael@0: var _5b2=s.display; michael@0: if(_5b2=="none"){ michael@0: s.visibility="hidden"; michael@0: s.display=""; michael@0: } michael@0: this.originalLeft=parseFloat(MochiKit.Style.getStyle(this.element,"left")||"0"); michael@0: this.originalTop=parseFloat(MochiKit.Style.getStyle(this.element,"top")||"0"); michael@0: if(this.options.mode=="absolute"){ michael@0: this.options.x-=this.originalLeft; michael@0: this.options.y-=this.originalTop; michael@0: } michael@0: if(_5b2=="none"){ michael@0: s.visibility=_5b1; michael@0: s.display=_5b2; michael@0: } michael@0: },update:function(_5b3){ michael@0: MochiKit.Style.setStyle(this.element,{left:Math.round(this.options.x*_5b3+this.originalLeft)+"px",top:Math.round(this.options.y*_5b3+this.originalTop)+"px"}); michael@0: }}); michael@0: MochiKit.Visual.Scale=function(_5b4,_5b5,_5b6){ michael@0: this.__init__(_5b4,_5b5,_5b6); michael@0: }; michael@0: MochiKit.Visual.Scale.prototype=new MochiKit.Visual.Base(); michael@0: MochiKit.Base.update(MochiKit.Visual.Scale.prototype,{__init__:function(_5b7,_5b8,_5b9){ michael@0: this.element=MochiKit.DOM.getElement(_5b7); michael@0: _5b9=MochiKit.Base.update({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:_5b8},_5b9||{}); michael@0: this.start(_5b9); michael@0: },setup:function(){ michael@0: this.restoreAfterFinish=this.options.restoreAfterFinish||false; michael@0: this.elementPositioning=MochiKit.Style.getStyle(this.element,"position"); michael@0: var ma=MochiKit.Base.map; michael@0: var b=MochiKit.Base.bind; michael@0: this.originalStyle={}; michael@0: ma(b(function(k){ michael@0: this.originalStyle[k]=this.element.style[k]; michael@0: },this),["top","left","width","height","fontSize"]); michael@0: this.originalTop=this.element.offsetTop; michael@0: this.originalLeft=this.element.offsetLeft; michael@0: var _5bd=MochiKit.Style.getStyle(this.element,"font-size")||"100%"; michael@0: ma(b(function(_5be){ michael@0: if(_5bd.indexOf(_5be)>0){ michael@0: this.fontSize=parseFloat(_5bd); michael@0: this.fontSizeType=_5be; michael@0: } michael@0: },this),["em","px","%"]); michael@0: this.factor=(this.options.scaleTo-this.options.scaleFrom)/100; michael@0: if(/^content/.test(this.options.scaleMode)){ michael@0: this.dims=[this.element.scrollHeight,this.element.scrollWidth]; michael@0: }else{ michael@0: if(this.options.scaleMode=="box"){ michael@0: this.dims=[this.element.offsetHeight,this.element.offsetWidth]; michael@0: }else{ michael@0: this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]; michael@0: } michael@0: } michael@0: },update:function(_5bf){ michael@0: var _5c0=(this.options.scaleFrom/100)+(this.factor*_5bf); michael@0: if(this.options.scaleContent&&this.fontSize){ michael@0: MochiKit.Style.setStyle(this.element,{fontSize:this.fontSize*_5c0+this.fontSizeType}); michael@0: } michael@0: this.setDimensions(this.dims[0]*_5c0,this.dims[1]*_5c0); michael@0: },finish:function(){ michael@0: if(this.restoreAfterFinish){ michael@0: MochiKit.Style.setStyle(this.element,this.originalStyle); michael@0: } michael@0: },setDimensions:function(_5c1,_5c2){ michael@0: var d={}; michael@0: var r=Math.round; michael@0: if(/MSIE/.test(navigator.userAgent)){ michael@0: r=Math.ceil; michael@0: } michael@0: if(this.options.scaleX){ michael@0: d.width=r(_5c2)+"px"; michael@0: } michael@0: if(this.options.scaleY){ michael@0: d.height=r(_5c1)+"px"; michael@0: } michael@0: if(this.options.scaleFromCenter){ michael@0: var topd=(_5c1-this.dims[0])/2; michael@0: var _5c6=(_5c2-this.dims[1])/2; michael@0: if(this.elementPositioning=="absolute"){ michael@0: if(this.options.scaleY){ michael@0: d.top=this.originalTop-topd+"px"; michael@0: } michael@0: if(this.options.scaleX){ michael@0: d.left=this.originalLeft-_5c6+"px"; michael@0: } michael@0: }else{ michael@0: if(this.options.scaleY){ michael@0: d.top=-topd+"px"; michael@0: } michael@0: if(this.options.scaleX){ michael@0: d.left=-_5c6+"px"; michael@0: } michael@0: } michael@0: } michael@0: MochiKit.Style.setStyle(this.element,d); michael@0: }}); michael@0: MochiKit.Visual.Highlight=function(_5c7,_5c8){ michael@0: this.__init__(_5c7,_5c8); michael@0: }; michael@0: MochiKit.Visual.Highlight.prototype=new MochiKit.Visual.Base(); michael@0: MochiKit.Base.update(MochiKit.Visual.Highlight.prototype,{__init__:function(_5c9,_5ca){ michael@0: this.element=MochiKit.DOM.getElement(_5c9); michael@0: _5ca=MochiKit.Base.update({startcolor:"#ffff99"},_5ca||{}); michael@0: this.start(_5ca); michael@0: },setup:function(){ michael@0: var b=MochiKit.Base; michael@0: var s=MochiKit.Style; michael@0: if(s.getStyle(this.element,"display")=="none"){ michael@0: this.cancel(); michael@0: return; michael@0: } michael@0: this.oldStyle={backgroundImage:s.getStyle(this.element,"background-image")}; michael@0: s.setStyle(this.element,{backgroundImage:"none"}); michael@0: if(!this.options.endcolor){ michael@0: this.options.endcolor=MochiKit.Color.Color.fromBackground(this.element).toHexString(); michael@0: } michael@0: if(b.isUndefinedOrNull(this.options.restorecolor)){ michael@0: this.options.restorecolor=s.getStyle(this.element,"background-color"); michael@0: } michael@0: this._base=b.map(b.bind(function(i){ michael@0: return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16); michael@0: },this),[0,1,2]); michael@0: this._delta=b.map(b.bind(function(i){ michael@0: return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]; michael@0: },this),[0,1,2]); michael@0: },update:function(_5cf){ michael@0: var m="#"; michael@0: MochiKit.Base.map(MochiKit.Base.bind(function(i){ michael@0: m+=MochiKit.Color.toColorPart(Math.round(this._base[i]+this._delta[i]*_5cf)); michael@0: },this),[0,1,2]); michael@0: MochiKit.Style.setStyle(this.element,{backgroundColor:m}); michael@0: },finish:function(){ michael@0: MochiKit.Style.setStyle(this.element,MochiKit.Base.update(this.oldStyle,{backgroundColor:this.options.restorecolor})); michael@0: }}); michael@0: MochiKit.Visual.ScrollTo=function(_5d2,_5d3){ michael@0: this.__init__(_5d2,_5d3); michael@0: }; michael@0: MochiKit.Visual.ScrollTo.prototype=new MochiKit.Visual.Base(); michael@0: MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype,{__init__:function(_5d4,_5d5){ michael@0: this.element=MochiKit.DOM.getElement(_5d4); michael@0: this.start(_5d5||{}); michael@0: },setup:function(){ michael@0: var p=MochiKit.Position; michael@0: p.prepare(); michael@0: var _5d7=p.cumulativeOffset(this.element); michael@0: if(this.options.offset){ michael@0: _5d7.y+=this.options.offset; michael@0: } michael@0: var max; michael@0: if(window.innerHeight){ michael@0: max=window.innerHeight-window.height; michael@0: }else{ michael@0: if(document.documentElement&&document.documentElement.clientHeight){ michael@0: max=document.documentElement.clientHeight-document.body.scrollHeight; michael@0: }else{ michael@0: if(document.body){ michael@0: max=document.body.clientHeight-document.body.scrollHeight; michael@0: } michael@0: } michael@0: } michael@0: this.scrollStart=p.windowOffset.y; michael@0: this.delta=(_5d7.y>max?max:_5d7.y)-this.scrollStart; michael@0: },update:function(_5d9){ michael@0: var p=MochiKit.Position; michael@0: p.prepare(); michael@0: window.scrollTo(p.windowOffset.x,this.scrollStart+(_5d9*this.delta)); michael@0: }}); michael@0: MochiKit.Visual.fade=function(_5db,_5dc){ michael@0: var s=MochiKit.Style; michael@0: var _5de=MochiKit.DOM.getElement(_5db).style.opacity||""; michael@0: _5dc=MochiKit.Base.update({from:s.getOpacity(_5db)||1,to:0,afterFinishInternal:function(_5df){ michael@0: if(_5df.options.to!==0){ michael@0: return; michael@0: } michael@0: s.hideElement(_5df.element); michael@0: s.setStyle(_5df.element,{opacity:_5de}); michael@0: }},_5dc||{}); michael@0: return new MochiKit.Visual.Opacity(_5db,_5dc); michael@0: }; michael@0: MochiKit.Visual.appear=function(_5e0,_5e1){ michael@0: var s=MochiKit.Style; michael@0: var v=MochiKit.Visual; michael@0: _5e1=MochiKit.Base.update({from:(s.getStyle(_5e0,"display")=="none"?0:s.getOpacity(_5e0)||0),to:1,afterFinishInternal:function(_5e4){ michael@0: v.forceRerendering(_5e4.element); michael@0: },beforeSetupInternal:function(_5e5){ michael@0: s.setOpacity(_5e5.element,_5e5.options.from); michael@0: s.showElement(_5e5.element); michael@0: }},_5e1||{}); michael@0: return new v.Opacity(_5e0,_5e1); michael@0: }; michael@0: MochiKit.Visual.puff=function(_5e6,_5e7){ michael@0: var s=MochiKit.Style; michael@0: var v=MochiKit.Visual; michael@0: _5e6=MochiKit.DOM.getElement(_5e6); michael@0: var _5ea={opacity:_5e6.style.opacity||"",position:s.getStyle(_5e6,"position"),top:_5e6.style.top,left:_5e6.style.left,width:_5e6.style.width,height:_5e6.style.height}; michael@0: _5e7=MochiKit.Base.update({beforeSetupInternal:function(_5eb){ michael@0: MochiKit.Position.absolutize(_5eb.effects[0].element); michael@0: },afterFinishInternal:function(_5ec){ michael@0: s.hideElement(_5ec.effects[0].element); michael@0: s.setStyle(_5ec.effects[0].element,_5ea); michael@0: }},_5e7||{}); michael@0: return new v.Parallel([new v.Scale(_5e6,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new v.Opacity(_5e6,{sync:true,to:0})],_5e7); michael@0: }; michael@0: MochiKit.Visual.blindUp=function(_5ed,_5ee){ michael@0: var d=MochiKit.DOM; michael@0: _5ed=d.getElement(_5ed); michael@0: var _5f0=d.makeClipping(_5ed); michael@0: _5ee=MochiKit.Base.update({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(_5f1){ michael@0: MochiKit.Style.hideElement(_5f1.element); michael@0: d.undoClipping(_5f1.element,_5f0); michael@0: }},_5ee||{}); michael@0: return new MochiKit.Visual.Scale(_5ed,0,_5ee); michael@0: }; michael@0: MochiKit.Visual.blindDown=function(_5f2,_5f3){ michael@0: var d=MochiKit.DOM; michael@0: var s=MochiKit.Style; michael@0: _5f2=d.getElement(_5f2); michael@0: var _5f6=s.getElementDimensions(_5f2); michael@0: var _5f7; michael@0: _5f3=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_5f6.h,originalWidth:_5f6.w},restoreAfterFinish:true,afterSetupInternal:function(_5f8){ michael@0: _5f7=d.makeClipping(_5f8.element); michael@0: s.setStyle(_5f8.element,{height:"0px"}); michael@0: s.showElement(_5f8.element); michael@0: },afterFinishInternal:function(_5f9){ michael@0: d.undoClipping(_5f9.element,_5f7); michael@0: }},_5f3||{}); michael@0: return new MochiKit.Visual.Scale(_5f2,100,_5f3); michael@0: }; michael@0: MochiKit.Visual.switchOff=function(_5fa,_5fb){ michael@0: var d=MochiKit.DOM; michael@0: _5fa=d.getElement(_5fa); michael@0: var _5fd=_5fa.style.opacity||""; michael@0: var _5fe; michael@0: var _5fb=MochiKit.Base.update({duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetupInternal:function(_5ff){ michael@0: d.makePositioned(_5ff.element); michael@0: _5fe=d.makeClipping(_5ff.element); michael@0: },afterFinishInternal:function(_600){ michael@0: MochiKit.Style.hideElement(_600.element); michael@0: d.undoClipping(_600.element,_5fe); michael@0: d.undoPositioned(_600.element); michael@0: MochiKit.Style.setStyle(_600.element,{opacity:_5fd}); michael@0: }},_5fb||{}); michael@0: var v=MochiKit.Visual; michael@0: return new v.appear(_5fa,{duration:0.4,from:0,transition:v.Transitions.flicker,afterFinishInternal:function(_602){ michael@0: new v.Scale(_602.element,1,_5fb); michael@0: }}); michael@0: }; michael@0: MochiKit.Visual.dropOut=function(_603,_604){ michael@0: var d=MochiKit.DOM; michael@0: var s=MochiKit.Style; michael@0: _603=d.getElement(_603); michael@0: var _607={top:s.getStyle(_603,"top"),left:s.getStyle(_603,"left"),opacity:_603.style.opacity||""}; michael@0: _604=MochiKit.Base.update({duration:0.5,beforeSetupInternal:function(_608){ michael@0: d.makePositioned(_608.effects[0].element); michael@0: },afterFinishInternal:function(_609){ michael@0: s.hideElement(_609.effects[0].element); michael@0: d.undoPositioned(_609.effects[0].element); michael@0: s.setStyle(_609.effects[0].element,_607); michael@0: }},_604||{}); michael@0: var v=MochiKit.Visual; michael@0: return new v.Parallel([new v.Move(_603,{x:0,y:100,sync:true}),new v.Opacity(_603,{sync:true,to:0})],_604); michael@0: }; michael@0: MochiKit.Visual.shake=function(_60b,_60c){ michael@0: var d=MochiKit.DOM; michael@0: var v=MochiKit.Visual; michael@0: var s=MochiKit.Style; michael@0: _60b=d.getElement(_60b); michael@0: _60c=MochiKit.Base.update({x:-20,y:0,duration:0.05,afterFinishInternal:function(_610){ michael@0: d.undoPositioned(_610.element); michael@0: s.setStyle(_610.element,_611); michael@0: }},_60c||{}); michael@0: var _611={top:s.getStyle(_60b,"top"),left:s.getStyle(_60b,"left")}; michael@0: return new v.Move(_60b,{x:20,y:0,duration:0.05,afterFinishInternal:function(_612){ michael@0: new v.Move(_612.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(_613){ michael@0: new v.Move(_613.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(_614){ michael@0: new v.Move(_614.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(_615){ michael@0: new v.Move(_615.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(_616){ michael@0: new v.Move(_616.element,_60c); michael@0: }}); michael@0: }}); michael@0: }}); michael@0: }}); michael@0: }}); michael@0: }; michael@0: MochiKit.Visual.slideDown=function(_617,_618){ michael@0: var d=MochiKit.DOM; michael@0: var b=MochiKit.Base; michael@0: var s=MochiKit.Style; michael@0: _617=d.getElement(_617); michael@0: if(!_617.firstChild){ michael@0: throw "MochiKit.Visual.slideDown must be used on a element with a child"; michael@0: } michael@0: d.removeEmptyTextNodes(_617); michael@0: var _61c=s.getStyle(_617.firstChild,"bottom")||0; michael@0: var _61d=s.getElementDimensions(_617); michael@0: var _61e; michael@0: _618=b.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_61d.h,originalWidth:_61d.w},restoreAfterFinish:true,afterSetupInternal:function(_61f){ michael@0: d.makePositioned(_61f.element); michael@0: d.makePositioned(_61f.element.firstChild); michael@0: if(/Opera/.test(navigator.userAgent)){ michael@0: s.setStyle(_61f.element,{top:""}); michael@0: } michael@0: _61e=d.makeClipping(_61f.element); michael@0: s.setStyle(_61f.element,{height:"0px"}); michael@0: s.showElement(_61f.element); michael@0: },afterUpdateInternal:function(_620){ michael@0: s.setStyle(_620.element.firstChild,{bottom:(_620.dims[0]-_620.element.clientHeight)+"px"}); michael@0: },afterFinishInternal:function(_621){ michael@0: d.undoClipping(_621.element,_61e); michael@0: if(/MSIE/.test(navigator.userAgent)){ michael@0: d.undoPositioned(_621.element); michael@0: d.undoPositioned(_621.element.firstChild); michael@0: }else{ michael@0: d.undoPositioned(_621.element.firstChild); michael@0: d.undoPositioned(_621.element); michael@0: } michael@0: s.setStyle(_621.element.firstChild,{bottom:_61c}); michael@0: }},_618||{}); michael@0: return new MochiKit.Visual.Scale(_617,100,_618); michael@0: }; michael@0: MochiKit.Visual.slideUp=function(_622,_623){ michael@0: var d=MochiKit.DOM; michael@0: var b=MochiKit.Base; michael@0: var s=MochiKit.Style; michael@0: _622=d.getElement(_622); michael@0: if(!_622.firstChild){ michael@0: throw "MochiKit.Visual.slideUp must be used on a element with a child"; michael@0: } michael@0: d.removeEmptyTextNodes(_622); michael@0: var _627=s.getStyle(_622.firstChild,"bottom"); michael@0: var _628; michael@0: _623=b.update({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(_629){ michael@0: d.makePositioned(_629.element); michael@0: d.makePositioned(_629.element.firstChild); michael@0: if(/Opera/.test(navigator.userAgent)){ michael@0: s.setStyle(_629.element,{top:""}); michael@0: } michael@0: _628=d.makeClipping(_629.element); michael@0: s.showElement(_629.element); michael@0: },afterUpdateInternal:function(_62a){ michael@0: s.setStyle(_62a.element.firstChild,{bottom:(_62a.dims[0]-_62a.element.clientHeight)+"px"}); michael@0: },afterFinishInternal:function(_62b){ michael@0: s.hideElement(_62b.element); michael@0: d.undoClipping(_62b.element,_628); michael@0: d.undoPositioned(_62b.element.firstChild); michael@0: d.undoPositioned(_62b.element); michael@0: s.setStyle(_62b.element.firstChild,{bottom:_627}); michael@0: }},_623||{}); michael@0: return new MochiKit.Visual.Scale(_622,0,_623); michael@0: }; michael@0: MochiKit.Visual.squish=function(_62c,_62d){ michael@0: var d=MochiKit.DOM; michael@0: var b=MochiKit.Base; michael@0: var _630; michael@0: _62d=b.update({restoreAfterFinish:true,beforeSetupInternal:function(_631){ michael@0: _630=d.makeClipping(_631.element); michael@0: },afterFinishInternal:function(_632){ michael@0: MochiKit.Style.hideElement(_632.element); michael@0: d.undoClipping(_632.element,_630); michael@0: }},_62d||{}); michael@0: return new MochiKit.Visual.Scale(_62c,/Opera/.test(navigator.userAgent)?1:0,_62d); michael@0: }; michael@0: MochiKit.Visual.grow=function(_633,_634){ michael@0: var d=MochiKit.DOM; michael@0: var v=MochiKit.Visual; michael@0: var s=MochiKit.Style; michael@0: _633=d.getElement(_633); michael@0: _634=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.full},_634||{}); michael@0: var _638={top:_633.style.top,left:_633.style.left,height:_633.style.height,width:_633.style.width,opacity:_633.style.opacity||""}; michael@0: var dims=s.getElementDimensions(_633); michael@0: var _63a,_63b; michael@0: var _63c,_63d; michael@0: switch(_634.direction){ michael@0: case "top-left": michael@0: _63a=_63b=_63c=_63d=0; michael@0: break; michael@0: case "top-right": michael@0: _63a=dims.w; michael@0: _63b=_63d=0; michael@0: _63c=-dims.w; michael@0: break; michael@0: case "bottom-left": michael@0: _63a=_63c=0; michael@0: _63b=dims.h; michael@0: _63d=-dims.h; michael@0: break; michael@0: case "bottom-right": michael@0: _63a=dims.w; michael@0: _63b=dims.h; michael@0: _63c=-dims.w; michael@0: _63d=-dims.h; michael@0: break; michael@0: case "center": michael@0: _63a=dims.w/2; michael@0: _63b=dims.h/2; michael@0: _63c=-dims.w/2; michael@0: _63d=-dims.h/2; michael@0: break; michael@0: } michael@0: var _63e=MochiKit.Base.update({beforeSetupInternal:function(_63f){ michael@0: s.setStyle(_63f.effects[0].element,{height:"0px"}); michael@0: s.showElement(_63f.effects[0].element); michael@0: },afterFinishInternal:function(_640){ michael@0: d.undoClipping(_640.effects[0].element); michael@0: d.undoPositioned(_640.effects[0].element); michael@0: s.setStyle(_640.effects[0].element,_638); michael@0: }},_634||{}); michael@0: return new v.Move(_633,{x:_63a,y:_63b,duration:0.01,beforeSetupInternal:function(_641){ michael@0: s.hideElement(_641.element); michael@0: d.makeClipping(_641.element); michael@0: d.makePositioned(_641.element); michael@0: },afterFinishInternal:function(_642){ michael@0: new v.Parallel([new v.Opacity(_642.element,{sync:true,to:1,from:0,transition:_634.opacityTransition}),new v.Move(_642.element,{x:_63c,y:_63d,sync:true,transition:_634.moveTransition}),new v.Scale(_642.element,100,{scaleMode:{originalHeight:dims.h,originalWidth:dims.w},sync:true,scaleFrom:/Opera/.test(navigator.userAgent)?1:0,transition:_634.scaleTransition,restoreAfterFinish:true})],_63e); michael@0: }}); michael@0: }; michael@0: MochiKit.Visual.shrink=function(_643,_644){ michael@0: var d=MochiKit.DOM; michael@0: var v=MochiKit.Visual; michael@0: var s=MochiKit.Style; michael@0: _643=d.getElement(_643); michael@0: _644=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.none},_644||{}); michael@0: var _648={top:_643.style.top,left:_643.style.left,height:_643.style.height,width:_643.style.width,opacity:_643.style.opacity||""}; michael@0: var dims=s.getElementDimensions(_643); michael@0: var _64a,_64b; michael@0: switch(_644.direction){ michael@0: case "top-left": michael@0: _64a=_64b=0; michael@0: break; michael@0: case "top-right": michael@0: _64a=dims.w; michael@0: _64b=0; michael@0: break; michael@0: case "bottom-left": michael@0: _64a=0; michael@0: _64b=dims.h; michael@0: break; michael@0: case "bottom-right": michael@0: _64a=dims.w; michael@0: _64b=dims.h; michael@0: break; michael@0: case "center": michael@0: _64a=dims.w/2; michael@0: _64b=dims.h/2; michael@0: break; michael@0: } michael@0: var _64c; michael@0: var _64d=MochiKit.Base.update({beforeStartInternal:function(_64e){ michael@0: _64c=d.makePositioned(_64e.effects[0].element); michael@0: d.makeClipping(_64e.effects[0].element); michael@0: },afterFinishInternal:function(_64f){ michael@0: s.hideElement(_64f.effects[0].element); michael@0: d.undoClipping(_64f.effects[0].element,_64c); michael@0: d.undoPositioned(_64f.effects[0].element); michael@0: s.setStyle(_64f.effects[0].element,_648); michael@0: }},_644||{}); michael@0: return new v.Parallel([new v.Opacity(_643,{sync:true,to:0,from:1,transition:_644.opacityTransition}),new v.Scale(_643,/Opera/.test(navigator.userAgent)?1:0,{sync:true,transition:_644.scaleTransition,restoreAfterFinish:true}),new v.Move(_643,{x:_64a,y:_64b,sync:true,transition:_644.moveTransition})],_64d); michael@0: }; michael@0: MochiKit.Visual.pulsate=function(_650,_651){ michael@0: var d=MochiKit.DOM; michael@0: var v=MochiKit.Visual; michael@0: var b=MochiKit.Base; michael@0: var _655=d.getElement(_650).style.opacity||""; michael@0: _651=b.update({duration:3,from:0,afterFinishInternal:function(_656){ michael@0: MochiKit.Style.setStyle(_656.element,{opacity:_655}); michael@0: }},_651||{}); michael@0: var _657=_651.transition||v.Transitions.sinoidal; michael@0: var _658=b.bind(function(pos){ michael@0: return _657(1-v.Transitions.pulse(pos)); michael@0: },_657); michael@0: b.bind(_658,_657); michael@0: return new v.Opacity(_650,b.update({transition:_658},_651)); michael@0: }; michael@0: MochiKit.Visual.fold=function(_65a,_65b){ michael@0: var d=MochiKit.DOM; michael@0: var v=MochiKit.Visual; michael@0: var s=MochiKit.Style; michael@0: _65a=d.getElement(_65a); michael@0: var _65f={top:_65a.style.top,left:_65a.style.left,width:_65a.style.width,height:_65a.style.height}; michael@0: var _660=d.makeClipping(_65a); michael@0: _65b=MochiKit.Base.update({scaleContent:false,scaleX:false,afterFinishInternal:function(_661){ michael@0: new v.Scale(_65a,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(_662){ michael@0: s.hideElement(_662.element); michael@0: d.undoClipping(_662.element,_660); michael@0: s.setStyle(_662.element,_65f); michael@0: }}); michael@0: }},_65b||{}); michael@0: return new v.Scale(_65a,5,_65b); michael@0: }; michael@0: MochiKit.Visual.Color=MochiKit.Color.Color; michael@0: MochiKit.Visual.getElementsComputedStyle=MochiKit.DOM.computedStyle; michael@0: MochiKit.Visual.__new__=function(){ michael@0: var m=MochiKit.Base; michael@0: m.nameFunctions(this); michael@0: this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; michael@0: }; michael@0: MochiKit.Visual.EXPORT=["roundElement","roundClass","tagifyText","multiple","toggle","Base","Parallel","Opacity","Move","Scale","Highlight","ScrollTo","fade","appear","puff","blindUp","blindDown","switchOff","dropOut","shake","slideDown","slideUp","squish","grow","shrink","pulsate","fold"]; michael@0: MochiKit.Visual.EXPORT_OK=["PAIRS"]; michael@0: MochiKit.Visual.__new__(); michael@0: MochiKit.Base._exportSymbols(this,MochiKit.Visual); michael@0: if(typeof (MochiKit)=="undefined"){ michael@0: MochiKit={}; michael@0: } michael@0: if(typeof (MochiKit.MochiKit)=="undefined"){ michael@0: MochiKit.MochiKit={}; michael@0: } michael@0: MochiKit.MochiKit.NAME="MochiKit.MochiKit"; michael@0: MochiKit.MochiKit.VERSION="1.4"; michael@0: MochiKit.MochiKit.__repr__=function(){ michael@0: return "["+this.NAME+" "+this.VERSION+"]"; michael@0: }; michael@0: MochiKit.MochiKit.toString=function(){ michael@0: return this.__repr__(); michael@0: }; michael@0: MochiKit.MochiKit.SUBMODULES=["Base","Iter","Logging","DateTime","Format","Async","DOM","Style","LoggingPane","Color","Signal","Visual"]; michael@0: if(typeof (JSAN)!="undefined"||typeof (dojo)!="undefined"){ michael@0: if(typeof (dojo)!="undefined"){ michael@0: dojo.provide("MochiKit.MochiKit"); michael@0: dojo.require("MochiKit.*"); michael@0: } michael@0: if(typeof (JSAN)!="undefined"){ michael@0: (function(lst){ michael@0: for(var i=0;i"); michael@0: } michael@0: } michael@0: })(); michael@0: } michael@0: michael@0: