Changeset 298

Show
Ignore:
Timestamp:
10/15/05 19:14:23 (3 years ago)
Author:
bob
Message:

Added updatetree(self, obj[, ...]) to MochiKit.Base, and changed
MochiKit.DOM's updateNodeAttributes(node, attrs) to use it when appropiate.

Added new MochiKit.DOM createDOMFunc alias: BUTTON

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mochikit/trunk/MochiKit/Base.js

    r285 r298  
    7878}; 
    7979 
     80 
     81MochiKit.Base.updatetree = function (self, obj/*, ...*/) { 
     82    if (self == null) { 
     83        self = {}; 
     84    } 
     85    for (var i = 1; i < arguments.length; i++) { 
     86        var o = arguments[i]; 
     87        if (typeof(o) != 'undefined' && o != null) { 
     88            for (var k in o) { 
     89                var v = o[k]; 
     90                if (typeof(self[k]) == 'object' && typeof(v) == 'object') { 
     91                    arguments.callee(self[k], v); 
     92                } else { 
     93                    self[k] = v; 
     94                } 
     95            } 
     96        } 
     97    } 
     98    return self; 
     99}; 
    80100 
    81101MochiKit.Base.update = function (self, obj/*, ... */) { 
     
    11701190    "extend", 
    11711191    "update", 
     1192    "updatetree", 
    11721193    "setdefault", 
    11731194    "keys", 
  • mochikit/trunk/MochiKit/DOM.js

    r288 r298  
    4747    "replaceChildNodes", 
    4848    "swapDOM", 
     49    "BUTTON", 
    4950    "H1", 
    5051    "H2", 
     
    183184    } 
    184185    if (attrs) { 
     186        var updatetree = MochiKit.Base.updatetree; 
    185187        if (MochiKit.DOM.attributeArray.compliant) { 
    186188            // not IE, good. 
    187189            for (var k in attrs) { 
    188190                var v = attrs[k]; 
    189                 if (k.substring(0, 2) == "on") { 
     191                if (typeof(v) == 'object' && typeof(elem[k]) == 'object') { 
     192                    updatetree(elem[k], v); 
     193                } else if (k.substring(0, 2) == "on") { 
    190194                    if (typeof(v) == "string") { 
    191195                        v = new Function(v); 
     
    193197                    elem[k] = v; 
    194198                } else { 
    195                     elem.setAttribute(k, attrs[k]); 
     199                    elem.setAttribute(k, v); 
    196200                } 
    197201            } 
     
    207211                if (typeof(renamed) == "string") { 
    208212                    elem[renamed] = v; 
     213                } else if (typeof(elem[k]) == 'object' && typeof(v) == 'object') { 
     214                    updatetree(elem[k], v); 
    209215                } else if (k.substring(0, 2) == "on") { 
    210216                    if (typeof(v) == "string") { 
     
    750756    this.DIV = createDOMFunc("div"); 
    751757    this.IMG = createDOMFunc("img"); 
     758    this.BUTTON = createDOMFunc("button"); 
    752759    this.H1 = createDOMFunc("h1"); 
    753760    this.H2 = createDOMFunc("h2"); 
  • mochikit/trunk/doc/html/MochiKit/Base.html

    r297 r298  
    330330<p>This mutates <em>and returns</em> the given <tt class="docutils literal"><span class="pre">self</span></tt>, be warned.</p> 
    331331</blockquote> 
     332<p><tt class="docutils literal"><span class="pre">updatetree(self,</span> <span class="pre">obj[,</span> <span class="pre">...])</span></tt>:</p> 
     333<blockquote> 
     334<p>Mutate an object by replacing its key:value pairs with those 
     335from other object(s).  If a given key has an object value in 
     336both <tt class="docutils literal"><span class="pre">self</span></tt> and <tt class="docutils literal"><span class="pre">obj</span></tt>, then this function will be called 
     337recursively, updating instead of replacing that object.</p> 
     338<p>If null is given as the initial object, a new one will be created.</p> 
     339<p>This mutates <em>and returns</em> the given object, be warned.</p> 
     340</blockquote> 
    332341<p><tt class="docutils literal"><span class="pre">keys(obj)</span></tt>:</p> 
    333342<blockquote> 
  • mochikit/trunk/doc/html/MochiKit/DOM.html

    r297 r298  
    169169</pre> 
    170170</div> 
     171</div> 
     172<div class="section" id="api-reference"> 
     173<h1><a name="api-reference">API Reference</a></h1> 
    171174<div class="section" id="functions"> 
    172175<h2><a name="functions">Functions</a></h2> 
     
    252255<li><tt class="docutils literal"><span class="pre">BR</span></tt></li> 
    253256<li><tt class="docutils literal"><span class="pre">HR</span></tt></li> 
     257<li><tt class="docutils literal"><span class="pre">BUTTON</span></tt></li> 
    254258<li><tt class="docutils literal"><span class="pre">LABEL</span></tt></li> 
    255259<li><tt class="docutils literal"><span class="pre">TEXTAREA</span></tt></li> 
  • mochikit/trunk/doc/html/MochiKit/VersionHistory.html

    r296 r298  
    1212<p>2005-XX-XX      v1.00</p> 
    1313<ul class="simple"> 
     14<li>Added updatetree(self, obj[, ...]) to MochiKit.Base, and changed 
     15MochiKit.DOM's updateNodeAttributes(node, attrs) to use it when appropiate.</li> 
     16<li>Added new MochiKit.DOM createDOMFunc alias: BUTTON</li> 
    1417<li>Added truncToFixed(aNumber, precision) and roundToFixed(aNumber, precision) 
    1518to MochiKit.Format</li> 
  • mochikit/trunk/doc/html/MochiKit/index.html

    r296 r298  
    3939<p>2005-XX-XX      v1.00</p> 
    4040<ul class="simple"> 
     41<li>Added updatetree(self, obj[, ...]) to MochiKit.Base, and changed 
     42MochiKit.DOM's updateNodeAttributes(node, attrs) to use it when appropiate.</li> 
     43<li>Added new MochiKit.DOM createDOMFunc alias: BUTTON</li> 
    4144<li>Added truncToFixed(aNumber, precision) and roundToFixed(aNumber, precision) 
    4245to MochiKit.Format</li> 
  • mochikit/trunk/doc/rst/MochiKit/Base.rst

    r297 r298  
    394394 
    395395 
     396``updatetree(self, obj[, ...])``: 
     397 
     398    Mutate an object by replacing its key:value pairs with those 
     399    from other object(s).  If a given key has an object value in 
     400    both ``self`` and ``obj``, then this function will be called 
     401    recursively, updating instead of replacing that object. 
     402 
     403    If null is given as the initial object, a new one will be created. 
     404 
     405    This mutates *and returns* the given object, be warned. 
     406     
     407 
    396408``keys(obj)``: 
    397409 
  • mochikit/trunk/doc/rst/MochiKit/DOM.rst

    r297 r298  
    159159 
    160160 
     161API Reference 
     162============= 
     163 
    161164Functions 
    162165--------- 
     
    252255    - ``BR`` 
    253256    - ``HR`` 
     257    - ``BUTTON`` 
    254258    - ``LABEL`` 
    255259    - ``TEXTAREA`` 
  • mochikit/trunk/doc/rst/MochiKit/VersionHistory.rst

    r296 r298  
    112005-XX-XX      v1.00 
    22 
     3- Added updatetree(self, obj[, ...]) to MochiKit.Base, and changed 
     4  MochiKit.DOM's updateNodeAttributes(node, attrs) to use it when appropiate. 
     5- Added new MochiKit.DOM createDOMFunc alias: BUTTON 
    36- Added truncToFixed(aNumber, precision) and roundToFixed(aNumber, precision) 
    47  to MochiKit.Format 
  • mochikit/trunk/examples/color_wheel/color_wheel.js

    r164 r298  
    1111    var hsl = c.asHSL(); 
    1212    var r = hsl.s * radius; 
    13     var e = DIV(null, name); 
     13    var e = DIV({"style": { 
     14            "color": Color.fromHSL(hsl).toString(), 
     15            "width": "100px", 
     16            "height": "30px", 
     17            "position": "absolute", 
     18            "verticalAlign": "middle", 
     19            "textAlign": "center", 
     20            "left": Math.floor((Math.cos(hsl.h * twoPI) * r) - 50) + "px", 
     21            "top": Math.floor((Math.sin(hsl.h * twoPI) * r)) + "px" 
     22        }}, 
     23        name  
     24    ); 
    1425    // hsl.a = 0; 
    15     update(e.style, { 
    16         "color": Color.fromHSL(hsl).toString(), 
    17         "width": "100px", 
    18         "height": "30px", 
    19         "position": "absolute", 
    20         "verticalAlign": "middle", 
    21         "textAlign": "center", 
    22         "left": Math.floor((Math.cos(hsl.h * twoPI) * r) - 50) + "px", 
    23         "top": Math.floor((Math.sin(hsl.h * twoPI) * r)) + "px" 
    24     }); 
    2526    return [c, e]; 
    2627}; 
     
    4142        DIV(null, map(itemgetter(1), colorDivs)) 
    4243    ); 
    43     var colorCanary = DIV(null, ""); 
    44     colorCanary.style.color = "blue"; 
     44    var colorCanary = DIV({"style":{"color": "blue"}}, ""); 
    4545    try { 
    4646        colorCanary.style.color = "rgba(100,100,100,0.5)"; 
  • mochikit/trunk/packed/MochiKit/MochiKit.js

    r296 r298  
    106106return _9; 
    107107}; 
    108 MochiKit.Base.update=function(_13,obj){ 
     108MochiKit.Base.updatetree=function(_13,obj){ 
    109109if(_13==null){ 
    110110_13={}; 
     
    114114if(typeof (o)!="undefined"&&o!=null){ 
    115115for(var k in o){ 
    116 _13[k]=o[k]; 
     116var v=o[k]; 
     117if(typeof (_13[k])=="object"&&typeof (v)=="object"){ 
     118arguments.callee(_13[k],v); 
     119}else{ 
     120_13[k]=v; 
     121
    117122} 
    118123} 
     
    120125return _13; 
    121126}; 
    122 MochiKit.Base.setdefault=function(_16,obj){ 
    123 if(_16==null){ 
    124 _16={}; 
     127MochiKit.Base.update=function(_17,obj){ 
     128if(_17==null){ 
     129_17={}; 
     130
     131for(var i=1;i<arguments.length;i++){ 
     132var o=arguments[i]; 
     133if(typeof (o)!="undefined"&&o!=null){ 
     134for(var k in o){ 
     135_17[k]=o[k]; 
     136
     137
     138
     139return _17; 
     140}; 
     141MochiKit.Base.setdefault=function(_18,obj){ 
     142if(_18==null){ 
     143_18={}; 
    125144} 
    126145for(var i=1;i<arguments.length;i++){ 
    127146var o=arguments[i]; 
    128147for(var k in o){ 
    129 if(!(k in _16)){ 
    130 _16[k]=o[k]; 
    131 } 
    132 } 
    133 } 
    134 return _16
     148if(!(k in _18)){ 
     149_18[k]=o[k]; 
     150} 
     151} 
     152} 
     153return _18
    135154}; 
    136155MochiKit.Base.keys=function(obj){ 
    137 var _17=[]; 
    138 for(var _18 in obj){ 
    139 _17.push(_18); 
    140 } 
    141 return _17; 
    142 }; 
    143 MochiKit.Base.items=function(obj){ 
    144156var _19=[]; 
    145157for(var _20 in obj){ 
    146 _19.push([_20,obj[_20]]); 
     158_19.push(_20); 
    147159} 
    148160return _19; 
    149161}; 
    150 MochiKit.Base.NamedError=function(_21){ 
    151 this.message=_21; 
    152 this.name=_21; 
     162MochiKit.Base.items=function(obj){ 
     163var _21=[]; 
     164for(var _22 in obj){ 
     165_21.push([_22,obj[_22]]); 
     166
     167return _21; 
     168}; 
     169MochiKit.Base.NamedError=function(_23){ 
     170this.message=_23; 
     171this.name=_23; 
    153172}; 
    154173MochiKit.Base.NamedError.prototype=new Error(); 
     
    224243return b in a; 
    225244}}; 
    226 MochiKit.Base.forward=function(_24){ 
     245MochiKit.Base.forward=function(_26){ 
    227246return function(){ 
    228 return this[_24].apply(this,arguments); 
    229 }; 
    230 }; 
    231 MochiKit.Base.itemgetter=function(_25){ 
     247return this[_26].apply(this,arguments); 
     248}; 
     249}; 
     250MochiKit.Base.itemgetter=function(_27){ 
    232251return function(arg){ 
    233 return arg[_25]; 
     252return arg[_27]; 
    234253}; 
    235254}; 
    236255MochiKit.Base.typeMatcher=function(){ 
    237 var _27={}; 
     256var _29={}; 
    238257for(var i=0;i<arguments.length;i++){ 
    239258var typ=arguments[i]; 
    240 _27[typ]=typ; 
     259_29[typ]=typ; 
    241260} 
    242261return function(){ 
    243262for(var i=0;i<arguments.length;i++){ 
    244 if(!(typeof (arguments[i]) in _27)){ 
     263if(!(typeof (arguments[i]) in _29)){ 
    245264return false; 
    246265} 
     
    298317return MochiKit.Base.extend(null,arguments,1); 
    299318} 
    300 var _30=[]; 
     319var _32=[]; 
    301320for(var i=1;i<arguments.length;i++){ 
    302 _30.push(fn(arguments[i])); 
    303 } 
    304 return _30
     321_32.push(fn(arguments[i])); 
     322} 
     323return _32
    305324}; 
    306325MochiKit.Base.map=function(fn,lst){ 
    307 var _32=MochiKit.Base.isArrayLike; 
     326var _34=MochiKit.Base.isArrayLike; 
    308327if(arguments.length<=2){ 
    309 if(!_32(lst)){ 
     328if(!_34(lst)){ 
    310329if(MochiKit.Iter){ 
    311330lst=MochiKit.Iter.list(lst); 
     
    323342return Array.prototype.map.call(lst,fn); 
    324343} 
    325 var _33=[]; 
     344var _35=[]; 
    326345for(var i=0;i<lst.length;i++){ 
    327 _33.push(fn(lst[i])); 
    328 } 
    329 return _33
     346_35.push(fn(lst[i])); 
     347} 
     348return _35
    330349}else{ 
    331350if(fn==null){ 
    332351fn=Array; 
    333352} 
    334 var _34=null; 
     353var _36=null; 
    335354for(var i=1;i<arguments.length;i++){ 
    336 if(!_32(arguments[i])){ 
     355if(!_34(arguments[i])){ 
    337356if(MochiKit.Iter){ 
    338357arguments[i]=MochiKit.Iter.list(arguments[i]); 
     
    342361} 
    343362var l=arguments[i].length; 
    344 if(_34==null||_34>l){ 
    345 _34=l; 
    346 
    347 
    348 var _33=[]; 
    349 for(var i=0;i<_34;i++){ 
     363if(_36==null||_36>l){ 
     364_36=l; 
     365
     366
    350367var _35=[]; 
     368for(var i=0;i<_36;i++){ 
     369var _37=[]; 
    351370for(var j=1;j<arguments.length;j++){ 
    352 _35.push(arguments[j][i]); 
    353 } 
    354 _33.push(fn.apply(this,_35)); 
    355 } 
    356 return _33
     371_37.push(arguments[j][i]); 
     372} 
     373_35.push(fn.apply(this,_37)); 
     374} 
     375return _35
    357376} 
    358377}; 
    359378MochiKit.Base.xfilter=function(fn){ 
    360 var _37=[]; 
     379var _39=[]; 
    361380if(fn==null){ 
    362381fn=MochiKit.Base.operator.truth; 
     
    365384var o=arguments[i]; 
    366385if(fn(o)){ 
    367 _37.push(o); 
    368 } 
    369 } 
    370 return _37
    371 }; 
    372 MochiKit.Base.filter=function(fn,lst,_38){ 
    373 var _39=[]; 
     386_39.push(o); 
     387} 
     388} 
     389return _39
     390}; 
     391MochiKit.Base.filter=function(fn,lst,_40){ 
     392var _41=[]; 
    374393if(!MochiKit.Base.isArrayLike(lst)){ 
    375394if(MochiKit.Iter){ 
     
    383402} 
    384403if(typeof (Array.prototype.filter)=="function"){ 
    385 return Array.prototype.filter.call(lst,fn,_38); 
    386 }else{ 
    387 if(typeof (_38)=="undefined"||_38==null){ 
     404return Array.prototype.filter.call(lst,fn,_40); 
     405}else{ 
     406if(typeof (_40)=="undefined"||_40==null){ 
    388407for(var i=0;i<lst.length;i++){ 
    389408var o=lst[i]; 
    390409if(fn(o)){ 
    391 _39.push(o); 
     410_41.push(o); 
    392411} 
    393412} 
     
    395414for(var i=0;i<lst.length;i++){ 
    396415var o=lst[i]; 
    397 if(fn.call(_38,o)){ 
    398 _39.push(o); 
    399 } 
    400 } 
    401 } 
    402 } 
    403 return _39
    404 }; 
    405 MochiKit.Base.bind=function(_40,_41){ 
    406 var _42=_40.im_func; 
    407 var _43=_40.im_preargs; 
    408 var _44=_40.im_self; 
    409 if(typeof (_42)!="function"){ 
    410 _42=_40
    411 } 
    412 if(typeof (_41)!="undefined"){ 
    413 _44=_41
    414 } 
    415 if(typeof (_43)=="undefined"){ 
    416 _43=[]; 
    417 }else{ 
    418 _43=_43.slice(); 
    419 } 
    420 MochiKit.Base.extend(_43,arguments,2); 
    421 var _45=function(){ 
    422 var _46=arguments; 
     416if(fn.call(_40,o)){ 
     417_41.push(o); 
     418} 
     419} 
     420} 
     421} 
     422return _41
     423}; 
     424MochiKit.Base.bind=function(_42,_43){ 
     425var _44=_42.im_func; 
     426var _45=_42.im_preargs; 
     427var _46=_42.im_self; 
     428if(typeof (_44)!="function"){ 
     429_44=_42
     430} 
     431if(typeof (_43)!="undefined"){ 
     432_46=_43
     433} 
     434if(typeof (_45)=="undefined"){ 
     435_45=[]; 
     436}else{ 
     437_45=_45.slice(); 
     438} 
     439MochiKit.Base.extend(_45,arguments,2); 
     440var _47=function(){ 
     441var _48=arguments; 
    423442var me=arguments.callee; 
    424443if(me.im_preargs.length>0){ 
    425 _46=MochiKit.Base.concat(me.im_preargs,_46); 
    426 } 
    427 var _41=me.im_self; 
    428 if(!_41){ 
    429 _41=this; 
    430 } 
    431 return me.im_func.apply(_41,_46); 
    432 }; 
    433 _45.im_self=_44
    434 _45.im_func=_42
    435 _45.im_preargs=_43
    436 return _45
    437 }; 
    438 MochiKit.Base.bindMethods=function(_47){ 
    439 for(var k in _47){ 
    440 var _48=_47[k]; 
    441 if(typeof (_48)=="function"){ 
    442 _47[k]=bind(_48,_47); 
     444_48=MochiKit.Base.concat(me.im_preargs,_48); 
     445} 
     446var _43=me.im_self; 
     447if(!_43){ 
     448_43=this; 
     449} 
     450return me.im_func.apply(_43,_48); 
     451}; 
     452_47.im_self=_46
     453_47.im_func=_44
     454_47.im_preargs=_45
     455return _47
     456}; 
     457MochiKit.Base.bindMethods=function(_49){ 
     458for(var k in _49){ 
     459var _50=_49[k]; 
     460if(typeof (_50)=="function"){ 
     461_49[k]=bind(_50,_49); 
    443462} 
    444463} 
     
    448467this.pairs=[]; 
    449468}; 
    450 MochiKit.Base.AdapterRegistry.prototype.register=function(_49,_50,_51,_52){ 
    451 if(_52){ 
    452 this.pairs.unshift([_49,_50,_51]); 
    453 }else{ 
    454 this.pairs.push([_49,_50,_51]); 
     469MochiKit.Base.AdapterRegistry.prototype.register=function(_51,_52,_53,_54){ 
     470if(_54){ 
     471this.pairs.unshift([_51,_52,_53]); 
     472}else{ 
     473this.pairs.push([_51,_52,_53]); 
    455474} 
    456475}; 
    457476MochiKit.Base.AdapterRegistry.prototype.match=function(){ 
    458477for(var i=0;i<this.pairs.length;i++){ 
    459 var _53=this.pairs[i]; 
    460 if(_53[1].apply(this,arguments)){ 
    461 return _53[2].apply(this,arguments); 
     478var _55=this.pairs[i]; 
     479if(_55[1].apply(this,arguments)){ 
     480return _55[2].apply(this,arguments); 
    462481} 
    463482} 
    464483throw MochiKit.Base.NotFound; 
    465484}; 
    466 MochiKit.Base.AdapterRegistry.prototype.unregister=function(_54){ 
     485MochiKit.Base.AdapterRegistry.prototype.unregister=function(_56){ 
    467486for(var i=0;i<this.pairs.length;i++){ 
    468 var _55=this.pairs[i]; 
    469 if(_55[0]==_54){ 
     487var _57=this.pairs[i]; 
     488if(_57[0]==_56){ 
    470489this.pairs.splice(i,1); 
    471490return true; 
     
    474493return false; 
    475494}; 
    476 MochiKit.Base.registerComparator=function(_56,_57,_58,_59){ 
    477 MochiKit.Base.comparatorRegistry.register(_56,_57,_58,_59); 
     495MochiKit.Base.registerComparator=function(_58,_59,_60,_61){ 
     496MochiKit.Base.comparatorRegistry.register(_58,_59,_60,_61); 
    478497}; 
    479498MochiKit.Base.compare=function(a,b){ 
     
    481500return 0; 
    482501} 
    483 var _60=(typeof (a)=="undefined"||a==null); 
    484 var _61=(typeof (b)=="undefined"||b==null); 
    485 if(_60&&_61){ 
     502var _62=(typeof (a)=="undefined"||a==null); 
     503var _63=(typeof (b)=="undefined"||b==null); 
     504if(_62&&_63){ 
    486505return 0; 
    487506}else{ 
    488 if(_60){ 
     507if(_62){ 
    489508return -1; 
    490509}else{ 
    491 if(_61){ 
     510if(_63){ 
    492511return 1; 
    493512} 
     
    508527} 
    509528} 
    510 var _62=MochiKit.Base.repr; 
    511 throw new TypeError(_62(a)+" and "+_62(b)+" can not be compared"); 
     529var _64=MochiKit.Base.repr; 
     530throw new TypeError(_64(a)+" and "+_64(b)+" can not be compared"); 
    512531} 
    513532}; 
     
    526545} 
    527546} 
    528 var _63=MochiKit.Base.repr; 
    529 throw new TypeError(_63(a)+" and "+_63(b)+" can not be compared"); 
     547var _65=MochiKit.Base.repr; 
     548throw new TypeError(_65(a)+" and "+_65(b)+" can not be compared"); 
    530549}; 
    531550MochiKit.Base.compareArrayLike=function(a,b){ 
    532 var _64=MochiKit.Base.compare; 
    533 var _65=a.length; 
    534 var _66=0; 
    535 if(_65>b.length){ 
    536 _66=1; 
    537 _65=b.length; 
    538 }else{ 
    539 if(_65<b.length){ 
    540 _66=-1; 
    541 } 
    542 } 
    543 for(var i=0;i<_65;i++){ 
    544 var cmp=_64(a[i],b[i]); 
     551var _66=MochiKit.Base.compare; 
     552var _67=a.length; 
     553var _68=0; 
     554if(_67>b.length){ 
     555_68=1; 
     556_67=b.length; 
     557}else{ 
     558if(_67<b.length){ 
     559_68=-1; 
     560} 
     561} 
     562for(var i=0;i<_67;i++){ 
     563var cmp=_66(a[i],b[i]); 
    545564if(cmp){ 
    546565return cmp; 
    547566} 
    548567} 
    549 return _66
    550 }; 
    551 MochiKit.Base.registerRepr=function(_68,_69,_70,_71){ 
    552 MochiKit.Base.reprRegistry.register(_68,_69,_70,_71); 
     568return _68
     569}; 
     570MochiKit.Base.registerRepr=function(_70,_71,_72,_73){ 
     571MochiKit.Base.reprRegistry.register(_70,_71,_72,_73); 
    553572}; 
    554573MochiKit.Base.repr=function(o){ 
     
    591610return "null"; 
    592611}; 
    593 MochiKit.Base.registerJSON=function(_72,_73,_74,_75){ 
    594 MochiKit.Base.jsonRegistry.register(_72,_73,_74,_75); 
     612MochiKit.Base.registerJSON=function(_74,_75,_76,_77){ 
     613MochiKit.Base.jsonRegistry.register(_74,_75,_76,_77); 
    595614}; 
    596615MochiKit.Base.evalJSON=function(o){ 
     
    598617}; 
    599618MochiKit.Base.serializeJSON=function(o){ 
    600 var _76=typeof (o); 
    601 if(_76=="undefined"){ 
     619var _78=typeof (o); 
     620if(_78=="undefined"){ 
    602621return "undefined"; 
    603622}else{ 
    604 if(_76=="number"||_76=="boolean"){ 
     623if(_78=="number"||_78=="boolean"){ 
    605624return o.toString(); 
    606625}else{ 
     
    610629} 
    611630} 
    612 var _77=MochiKit.Base.reprString; 
    613 if(_76=="string"){ 
    614 return _77(o); 
     631var _79=MochiKit.Base.reprString; 
     632if(_78=="string"){ 
     633return _79(o); 
    615634} 
    616635var me=arguments.callee; 
    617636if(typeof (o.__json__)=="function"){ 
    618 var _78=o.__json__(); 
    619 if(o!==_78){ 
    620 return me(_78); 
     637var _80=o.__json__(); 
     638if(o!==_80){ 
     639return me(_80); 
    621640} 
    622641} 
    623642if(typeof (o.json)=="function"){ 
    624 var _78=o.json(); 
    625 if(o!==_78){ 
    626 return me(_78); 
    627 } 
    628 } 
    629 if(_76!="function"&&typeof (o.length)=="number"){ 
     643var _80=o.json(); 
     644if(o!==_80){ 
     645return me(_80); 
     646} 
     647} 
     648if(_78!="function"&&typeof (o.length)=="number"){ 
    630649var res=[]; 
    631650for(var i=0;i<o.length;i++){ 
     
    639658} 
    640659try{ 
    641 var _78=MochiKit.Base.jsonRegistry.match(o); 
    642 return me(_78); 
     660var _80=MochiKit.Base.jsonRegistry.match(o); 
     661return me(_80); 
    643662} 
    644663catch(e){ 
     
    647666} 
    648667} 
    649 if(_76=="function"){ 
     668if(_78=="function"){ 
    650669return null; 
    651670} 
    652671var res=[]; 
    653672for(var k in o){ 
    654 var _81
     673var _83
    655674if(typeof (k)=="number"){ 
    656 _81="\""+k.toString()+"\""; 
     675_83="\""+k.toString()+"\""; 
    657676}else{ 
    658677if(typeof (k)=="string"){ 
    659 _81=_77(k); 
     678_83=_79(k); 
    660679}else{ 
    661680continue; 
     
    666685continue; 
    667686} 
    668 res.push(_81+":"+val); 
     687res.push(_83+":"+val); 
    669688} 
    670689return "{"+res.join(",")+"}"; 
     
    673692return (MochiKit.Base.compare(a,b)==0); 
    674693}; 
    675 MochiKit.Base.arrayEqual=function(_82,arr){ 
    676 if(_82.length!=arr.length){ 
     694MochiKit.Base.arrayEqual=function(_84,arr){ 
     695if(_84.length!=arr.length){ 
    677696return false; 
    678697} 
    679 return (MochiKit.Base.compare(_82,arr)==0); 
     698return (MochiKit.Base.compare(_84,arr)==0); 
    680699}; 
    681700MochiKit.Base.concat=function(){ 
    682 var _84=[]; 
    683 var _85=MochiKit.Base.extend; 
     701var _86=[]; 
     702var _87=MochiKit.Base.extend; 
    684703for(var i=0;i<arguments.length;i++){ 
    685 _85(_84,arguments[i]); 
    686 } 
    687 return _84
     704_87(_86,arguments[i]); 
     705} 
     706return _86
    688707}; 
    689708MochiKit.Base.keyComparator=function(key){ 
    690 var _87=MochiKit.Base.compare; 
     709var _89=MochiKit.Base.compare; 
    691710if(arguments.length==1){ 
    692711return function(a,b){ 
    693 return _87(a[key],b[key]); 
    694 }; 
    695 } 
    696 var _88=MochiKit.Base.extend(null,arguments); 
     712return _89(a[key],b[key]); 
     713}; 
     714} 
     715var _90=MochiKit.Base.extend(null,arguments); 
    697716return function(a,b){ 
    698 var _89=0; 
    699 for(var i=0;(_89==0)&&(i<_88.length);i++){ 
    700 var key=_88[i]; 
    701 _89=_87(a[key],b[key]); 
    702 } 
    703 return _89
     717var _91=0; 
     718for(var i=0;(_91==0)&&(i<_90.length);i++){ 
     719var key=_90[i]; 
     720_91=_89(a[key],b[key]); 
     721} 
     722return _91
    704723}; 
    705724}; 
    706725MochiKit.Base.reverseKeyComparator=function(key){ 
    707 var _90=MochiKit.Base.keyComparator.apply(this,arguments); 
     726var _92=MochiKit.Base.keyComparator.apply(this,arguments); 
    708727return function(a,b){ 
    709 return _90(b,a); 
    710 }; 
    711 }; 
    712 MochiKit.Base.partial=function(_91){ 
    713 return MochiKit.Base.bind.apply(this,MochiKit.Base.extend([_91,undefined],arguments,1)); 
    714 }; 
    715 MochiKit.Base.listMinMax=function(_92,lst){ 
     728return _92(b,a); 
     729}; 
     730}; 
     731MochiKit.Base.partial=function(_93){ 
     732return MochiKit.Base.bind.apply(this,MochiKit.Base.extend([_93,undefined],arguments,1)); 
     733}; 
     734MochiKit.Base.listMinMax=function(_94,lst){ 
    716735if(lst.length==0){ 
    717736return null; 
    718737} 
    719738var cur=lst[0]; 
    720 var _94=MochiKit.Base.compare; 
     739var _96=MochiKit.Base.compare; 
    721740for(var i=1;i<lst.length;i++){ 
    722741var o=lst[i]; 
    723 if(_94(o,cur)==_92){ 
     742if(_96(o,cur)==_94){ 
    724743cur=o; 
    725744} 
     
    733752return MochiKit.Base.listMinMax(-1,arguments); 
    734753}; 
    735 MochiKit.Base.nodeWalk=function(_95,_96){ 
    736 var _97=[_95]; 
    737 var _98=MochiKit.Base.extend; 
    738 while(_97.length){ 
    739 var res=_96(_97.shift()); 
     754MochiKit.Base.nodeWalk=function(_97,_98){ 
     755var _99=[_97]; 
     756var _100=MochiKit.Base.extend; 
     757while(_99.length){ 
     758var res=_98(_99.shift()); 
    740759if(res){ 
    741 _98(_97,res); 
    742 } 
    743 } 
    744 }; 
    745 MochiKit.Base.nameFunctions=function(_99){ 
    746 var base=_99.NAME; 
     760_100(_99,res); 
     761} 
     762} 
     763}; 
     764MochiKit.Base.nameFunctions=function(_101){ 
     765var base=_101.NAME; 
    747766if(typeof (base)=="undefined"){ 
    748767base=""; 
     
    750769base=base+"."; 
    751770} 
    752 for(var name in _99){ 
    753 var o=_99[name]; 
     771for(var name in _101){ 
     772var o=_101[name]; 
    754773if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ 
    755774try{ 
     
    762781}; 
    763782if(typeof (encodeURIComponent)!="undefined"){ 
    764 MochiKit.Base.urlEncode=function(_102){ 
    765 var rval=encodeURIComponent(_102); 
     783MochiKit.Base.urlEncode=function(_104){ 
     784var rval=encodeURIComponent(_104); 
    766785return rval.replace(/\'/g,"%27"); 
    767786}; 
    768787}else{ 
    769 MochiKit.Base.urlEncode=function(_104){ 
    770 var rval=escape(_104).replace(/\+/g,"%2B").replace(/\"/g,"%22"); 
     788MochiKit.Base.urlEncode=function(_106){ 
     789var rval=escape(_106).replace(/\+/g,"%2B").replace(/\"/g,"%22"); 
    771790return rval.replace(/\'/g,"%27"); 
    772791}; 
    773792} 
    774 MochiKit.Base.queryString=function(_105,_106){ 
     793MochiKit.Base.queryString=function(_107,_108){ 
    775794if(arguments.length==1){ 
    776 var o=_105
    777 _105=[]; 
    778 _106=[]; 
     795var o=_107
     796_107=[]; 
     797_108=[]; 
    779798for(var k in o){ 
    780799var v=o[k]; 
    781800if(typeof (v)!="function"){ 
    782 _105.push(k); 
    783 _106.push(v); 
     801_107.push(k); 
     802_108.push(v); 
    784803} 
    785804} 
    786805} 
    787806var rval=[]; 
    788 var len=Math.min(_105.length,_106.length); 
    789 var _109=MochiKit.Base.urlEncode; 
     807var len=Math.min(_107.length,_108.length); 
     808var _110=MochiKit.Base.urlEncode; 
    790809for(var i=0;i<len;i++){ 
    791 var v=_106[i]; 
     810var v=_108[i]; 
    792811if(typeof (v)!="undefined"&&v!=null){ 
    793 rval.push(_109(_105[i])+"="+_109(v)); 
     812rval.push(_110(_107[i])+"="+_110(v)); 
    794813} 
    795814} 
    796815return rval.join("&"); 
    797816}; 
    798 MochiKit.Base.parseQueryString=function(_110,_111){ 
    799 var _112=_110.replace(/\+/g,"%20").split("&"); 
     817MochiKit.Base.parseQueryString=function(_111,_112){ 
     818var _113=_111.replace(/\+/g,"%20").split("&"); 
    800819var o={}; 
    801 var _113
     820var _114
    802821if(typeof (decodeURIComponent)!="undefined"){ 
    803 _113=decodeURIComponent; 
    804 }else{ 
    805 _113=unescape; 
    806 } 
    807 if(_111){ 
    808 for(var i=0;i<_112.length;i++){ 
    809 var pair=_112[i].split("="); 
    810 var name=_113(pair[0]); 
     822_114=decodeURIComponent; 
     823}else{ 
     824_114=unescape; 
     825} 
     826if(_112){ 
     827for(var i=0;i<_113.length;i++){ 
     828var pair=_113[i].split("="); 
     829var name=_114(pair[0]); 
    811830var arr=o[name]; 
    812831if(!(arr instanceof Array)){ 
     
    814833o[name]=arr; 
    815834} 
    816 arr.push(_113(pair[1])); 
    817 } 
    818 }else{ 
    819 for(var i=0;i<_112.length;i++){ 
    820 var pair=_112[i].split("="); 
    821 o[_113(pair[0])]=_113(pair[1]); 
     835arr.push(_114(pair[1])); 
     836} 
     837}else{ 
     838for(var i=0;i<_113.length;i++){ 
     839var pair=_113[i].split("="); 
     840o[_114(pair[0])]=_114(pair[1]); 
    822841} 
    823842} 
    824843return o; 
    825844}; 
    826 MochiKit.Base.EXPORT=["clone","extend","update","setdefault","keys","items","NamedError","operator","forward","itemgetter","typeMatcher","isCallable","isUndefined","isUndefinedOrNull","isNull","isNotEmpty","isArrayLike","isDateLike","xmap","map","xfilter","filter","bind","bindMethods","NotFound","AdapterRegistry","registerComparator","compare","registerRepr","repr","objEqual","arrayEqual","concat","keyComparator","reverseKeyComparator","partial","merge","listMinMax","listMax","listMin","objMax","objMin","nodeWalk","zip","urlEncode","queryString","serializeJSON","registerJSON","evalJSON","parseQueryString"]; 
     845MochiKit.Base.EXPORT=["clone","extend","update","updatetree","setdefault","keys","items","NamedError","operator","forward","itemgetter","typeMatcher","isCallable","isUndefined","isUndefinedOrNull","isNull","isNotEmpty","isArrayLike","isDateLike","xmap","map","xfilter","filter","bind","bindMethods","NotFound","AdapterRegistry","registerComparator","compare","registerRepr","repr","objEqual","arrayEqual","concat","keyComparator","reverseKeyComparator","partial","merge","listMinMax","listMax","listMin","objMax","objMin","nodeWalk","zip","urlEncode","queryString","serializeJSON","registerJSON","evalJSON","parseQueryString"]; 
    827846MochiKit.Base.EXPORT_OK=["nameFunctions","comparatorRegistry","reprRegistry","jsonRegistry","compareDateLike","compareArrayLike","reprArrayLike","reprString","reprNumber","reprUndefined","reprNull"]; 
    828847MochiKit.Base.__new__=function(){ 
     
    883902return this.__repr__(); 
    884903}; 
    885 MochiKit.Iter.registerIteratorFactory=function(name,_117,_118,_119){ 
    886 MochiKit.Iter.iteratorRegistry.register(name,_117,_118,_119); 
    887 }; 
    888 MochiKit.Iter.iter=function(_120,_121){ 
     904MochiKit.Iter.registerIteratorFactory=function(name,_118,_119,_120){ 
     905MochiKit.Iter.iteratorRegistry.register(name,_118,_119,_120); 
     906}; 
     907MochiKit.Iter.iter=function(_121,_122){ 
    889908if(arguments.length==2){ 
    890909return MochiKit.Iter.takewhile(function(a){ 
    891 return a!=_121
    892 },_120); 
    893 } 
    894 if(typeof (_120.next)=="function"){ 
    895 return _120
    896 }else{ 
    897 if(typeof (_120.iter)=="function"){ 
    898 return _120.iter(); 
     910return a!=_122
     911},_121); 
     912} 
     913if(typeof (_121.next)=="function"){ 
     914return _121
     915}else{ 
     916if(typeof (_121.iter)=="function"){ 
     917return _121.iter(); 
    899918} 
    900919} 
    901920try{ 
    902 return MochiKit.Iter.iteratorRegistry.match(_120); 
     921return MochiKit.Iter.iteratorRegistry.match(_121); 
    903922} 
    904923catch(e){ 
    905924if(e==MochiKit.Base.NotFound){ 
    906 e=new TypeError(typeof (_120)+": "+MochiKit.Base.repr(_120)+" is not iterable"); 
     925e=new TypeError(typeof (_121)+": "+MochiKit.Base.repr(_121)+" is not iterable"); 
    907926} 
    908927throw e; 
     
    921940MochiKit.Iter.cycle=function(p){ 
    922941var lst=[]; 
    923 var _124=MochiKit.Iter.iter(p); 
     942var _125=MochiKit.Iter.iter(p); 
    924943return {"repr":function(){ 
    925944return "cycle(...)"; 
    926945},"toString":MochiKit.Base.forward("repr"),"next":function(){ 
    927946try{ 
    928 var rval=_124.next(); 
     947var rval=_125.next(); 
    929948lst.push(rval); 
    930949return rval; 
     
    967986}}; 
    968987}; 
    969 MochiKit.Iter.next=function(_126){ 
    970 return _126.next(); 
     988MochiKit.Iter.next=function(_127){ 
     989return _127.next(); 
    971990}; 
    972991MochiKit.Iter.izip=function(p,q){ 
    973992var map=MochiKit.Base.map; 
    974993var next=MochiKit.Iter.next; 
    975 var _130=map(iter,arguments); 
     994var _131=map(iter,arguments); 
    976995return {"repr":function(){ 
    977996return "izip(...)"; 
    978997},"toString":MochiKit.Base.forward("repr"),"next":function(){ 
    979 return map(next,_130); 
     998return map(next,_131); 
    980999}}; 
    9811000}; 
     
    10161035MochiKit.Iter.islice=function(seq){ 
    10171036seq=MochiKit.Iter.iter(seq); 
    1018 var _133=0; 
     1037var _134=0; 
    10191038var stop=0; 
    10201039var step=1; 
     
    10241043}else{ 
    10251044if(arguments.length==3){ 
    1026 _133=arguments[1]; 
     1045_134=arguments[1]; 
    10271046stop=arguments[2]; 
    10281047}else{ 
    1029 _133=arguments[1]; 
     1048_134=arguments[1]; 
    10301049stop=arguments[2]; 
    10311050step=arguments[3]; 
     
    10331052} 
    10341053return {"repr":function(){ 
    1035 return "islice("+["...",_133,stop,step].join(", ")+")"; 
     1054return "islice("+["...",_134,stop,step].join(", ")+")"; 
    10361055},"toString":MochiKit.Base.forward("repr"),"next":function(){ 
    10371056var rval; 
    1038 while(i<_133){ 
     1057while(i<_134){ 
    10391058rval=seq.next(); 
    10401059i++; 
    10411060} 
    1042 if(_133>=stop){ 
     1061if(_134>=stop){ 
    10431062throw MochiKit.Iter.StopIteration; 
    10441063} 
    1045 _133+=step; 
     1064_134+=step; 
    10461065return rval; 
    10471066}}; 
     
    10491068MochiKit.Iter.imap=function(fun,p,q){ 
    10501069var map=MochiKit.Base.map; 
    1051 var _137=map(MochiKit.Iter.iter,MochiKit.Base.extend(null,arguments,1)); 
     1070var _138=map(MochiKit.Iter.iter,MochiKit.Base.extend(null,arguments,1)); 
    10521071var next=MochiKit.Iter.next; 
    10531072return {"repr":function(){ 
    10541073return "imap(...)"; 
    10551074},"toString":MochiKit.Base.forward("repr"),"next":function(){