Changeset 1080


Ignore:
Timestamp:
12/14/09 19:14:17 (2 years ago)
Author:
bogdan2412
Message:

Admin interface for adding/renaming/deleting algorithm tags.

This interface can be seen at /admin/task_tags.

In addition, added proper tag validation in task_edit controller.

We were using a version of MochiKit? with some modules stripped out so that it would be smaller.
I needed MochiKit?.Selector, so I downloaded the full version. If anybody knows what modules we stripped out before, please tell me.

Added a new inline_form.js file which will prove useful when designing other interfaces with inline rename.

Review URL: http://reviewboard.infoarena.ro/r/119/

Location:
trunk
Files:
3 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/common/db/tags.php

    r1079 r1080  
    66// Get list of all tag names, filtered by type and parent 
    77function tag_get_all($types = null, $parent = null) { 
    8     $query = "SELECT name, type, parent FROM ia_tags"; 
     8    $query = "SELECT id, name, type, parent FROM ia_tags"; 
    99    $where = array(); 
    1010    if (!is_null($types)) { 
     
    9797} 
    9898 
     99// Updates name, type or parent for a tag specified by it's id 
     100function tag_update_by_id($tag_id, $tag) { 
     101    $query = sprintf( 
     102        "UPDATE ia_tags SET name = %s, type = %s, parent = %s WHERE id = %s", 
     103        db_quote($tag["name"]), db_quote($tag["type"]), 
     104        db_quote($tag["parent"]), db_quote($tag_id)); 
     105    db_query($query); 
     106    return db_affected_rows() == 1; 
     107} 
     108 
     109// Delete a tag identified by it's id 
     110function tag_delete_by_id($tag_id) { 
     111    db_query(sprintf( 
     112        "DELETE FROM ia_tags WHERE parent = %s", db_quote($tag_id) 
     113    )); 
     114    db_query(sprintf("DELETE FROM ia_tags WHERE id = %s", db_quote($tag_id))); 
     115    return db_affected_rows() == 1; 
     116} 
     117 
    99118// Build ugly where clause to be used in subqueries 
    100119function tag_build_where($obj, $tag_ids, $parent_table = null) { 
  • trunk/common/tags.php

    r1079 r1080  
    1717} 
    1818 
    19 function tag_validate($data, &$errors) { 
    20     $tags = getattr($data, 'tags'); 
     19function tag_validate($data, &$errors, $key = null, $parent_key = null) { 
     20    if (is_null($key)) { 
     21        $tag_key = 'tags'; 
     22    } else { 
     23        $tag_key = 'tag_'.$key; 
     24    } 
     25    $tags = getattr($data, $tag_key); 
    2126    if (is_null($tags)) { 
    2227        return; 
     
    2530    foreach ($tags as $tag) { 
    2631        if (!is_tag_name($tag)) { 
    27             $errors['tags'] = "Cel putin un tag este gresit"; 
     32            $errors[$tag_key] = "Cel putin un tag este gresit"; 
    2833            return; 
     34        } 
     35    } 
     36    if (count($tags) > 0 && !is_null($parent_key)) { 
     37        $parent_tag = getattr($data, 'tag_'.$parent_key, ""); 
     38        if (count(tag_split($parent_tag)) != 1) { 
     39            $errors['tag_'.$parent_key] = sprintf("Trebuie specificat exact 
     40                un tag '%s' pentru a specifica taguri '%s'", $parent_key, $key); 
    2941        } 
    3042    } 
  • trunk/www/controllers/task.php

    r1079 r1080  
    136136 
    137137        // Handle tags 
    138         tag_validate($values, $errors); 
     138        foreach ($tag_types as $type) { 
     139            tag_validate($values, $errors, $type, 
     140                getattr($tag_parents, $type)); 
     141        } 
    139142 
    140143        // If no errors then do the db monkey 
  • trunk/www/format/format.php

    r1043 r1080  
    9191        $form_content .= '<input type="hidden" name="' . html_escape($key) . '" value="' . html_escape($value) . '" />'; 
    9292    } 
    93     $form_attr = array("style" => "margin: 0; padding: 0; display: inline", 
     93    $form_attr = array("class" => "inline_form", 
    9494                       "method" => "post", 
    9595                       "action" => $url, 
  • trunk/www/index.php

    r1034 r1080  
    8888    require_once(IA_ROOT_DIR.'www/controllers/task.php'); 
    8989    controller_task_details($obj_id); 
     90} 
     91 
     92// Task algorithm tags 
     93else if ($page == 'admin/task_tags') { 
     94    require_once(IA_ROOT_DIR.'www/controllers/task_tags.php'); 
     95    if (request("action") == "add") { 
     96        controller_task_tags_add(); 
     97    } elseif (request("action") == "delete") { 
     98        controller_task_tags_delete(); 
     99    } elseif (request("action") == "rename") { 
     100        controller_task_tags_rename(); 
     101    } else { 
     102        controller_task_tags(); 
     103    } 
    90104} 
    91105 
  • trunk/www/static/css/screen.css

    r1036 r1080  
    545545} 
    546546 
     547form.inline_form { 
     548    margin: 0; 
     549    padding: 0; 
     550    display: inline; 
     551} 
     552 
    547553input[type='text'], input[type='password'], select { 
    548554    width: 150px; 
  • trunk/www/static/js/MochiKit.js

    r852 r1080  
    11/*** 
    22 
    3     MochiKit.MochiKit 1.4 : PACKED VERSION 
     3    MochiKit.MochiKit 1.4.2 : PACKED VERSION 
    44 
    55    THIS FILE IS AUTOMATICALLY GENERATED.  If creating patches, please 
     
    2424MochiKit.__export__=(MochiKit.__compat__||(typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")); 
    2525} 
    26 MochiKit.Base.VERSION="1.4"; 
     26MochiKit.Base.VERSION="1.4.2"; 
    2727MochiKit.Base.NAME="MochiKit.Base"; 
    2828MochiKit.Base.update=function(_1,_2){ 
    29 if(_1===null){ 
     29if(_1===null||_1===undefined){ 
    3030_1={}; 
    3131} 
     
    5858return n++; 
    5959}; 
    60 },clone:function(obj){ 
     60},clone:function(_b){ 
    6161var me=arguments.callee; 
    6262if(arguments.length==1){ 
    63 me.prototype=obj; 
     63me.prototype=_b; 
    6464return new me(); 
     65} 
     66},_deps:function(_d,_e){ 
     67if(!(_d in MochiKit)){ 
     68MochiKit[_d]={}; 
     69} 
     70if(typeof (dojo)!="undefined"){ 
     71dojo.provide("MochiKit."+_d); 
     72} 
     73for(var i=0;i<_e.length;i++){ 
     74if(typeof (dojo)!="undefined"){ 
     75dojo.require("MochiKit."+_e[i]); 
     76} 
     77if(typeof (JSAN)!="undefined"){ 
     78JSAN.use("MochiKit."+_e[i],[]); 
     79} 
     80if(!(_e[i] in MochiKit)){ 
     81throw "MochiKit."+_d+" depends on MochiKit."+_e[i]+"!"; 
     82} 
    6583} 
    6684},_flattenArray:function(res,lst){ 
     
    7997var res=[]; 
    8098var m=MochiKit.Base; 
    81 var _15=m.extend(null,arguments); 
    82 while(_15.length){ 
    83 var o=_15.shift(); 
     99var _18=m.extend(null,arguments); 
     100while(_18.length){ 
     101var o=_18.shift(); 
    84102if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){ 
    85103for(var i=o.length-1;i>=0;i--){ 
    86 _15.unshift(o[i]); 
     104_18.unshift(o[i]); 
    87105} 
    88106}else{ 
     
    91109} 
    92110return res; 
    93 },extend:function(_16,obj,_17){ 
    94 if(!_17){ 
    95 _17=0; 
     111},extend:function(_1b,obj,_1d){ 
     112if(!_1d){ 
     113_1d=0; 
    96114} 
    97115if(obj){ 
     
    105123} 
    106124} 
    107 if(!_16){ 
    108 _16=[]; 
    109 } 
    110 for(var i=_17;i<l;i++){ 
    111 _16.push(obj[i]); 
    112 } 
    113 } 
    114 return _16; 
    115 },updatetree:function(_19,obj){ 
    116 if(_19===null){ 
    117 _19={}; 
     125if(!_1b){ 
     126_1b=[]; 
     127} 
     128for(var i=_1d;i<l;i++){ 
     129_1b.push(obj[i]); 
     130} 
     131} 
     132return _1b; 
     133},updatetree:function(_20,obj){ 
     134if(_20===null||_20===undefined){ 
     135_20={}; 
    118136} 
    119137for(var i=1;i<arguments.length;i++){ 
     
    122140for(var k in o){ 
    123141var v=o[k]; 
    124 if(typeof (_19[k])=="object"&&typeof (v)=="object"){ 
    125 arguments.callee(_19[k],v); 
    126 }else{ 
    127 _19[k]=v; 
    128 } 
    129 } 
    130 } 
    131 } 
    132 return _19; 
    133 },setdefault:function(_21,obj){ 
    134 if(_21===null){ 
    135 _21={}; 
     142if(typeof (_20[k])=="object"&&typeof (v)=="object"){ 
     143arguments.callee(_20[k],v); 
     144}else{ 
     145_20[k]=v; 
     146} 
     147} 
     148} 
     149} 
     150return _20; 
     151},setdefault:function(_26,obj){ 
     152if(_26===null||_26===undefined){ 
     153_26={}; 
    136154} 
    137155for(var i=1;i<arguments.length;i++){ 
    138156var o=arguments[i]; 
    139157for(var k in o){ 
    140 if(!(k in _21)){ 
    141 _21[k]=o[k]; 
    142 } 
    143 } 
    144 } 
    145 return _21; 
     158if(!(k in _26)){ 
     159_26[k]=o[k]; 
     160} 
     161} 
     162} 
     163return _26; 
    146164},keys:function(obj){ 
    147 var _22=[]; 
    148 for(var _23 in obj){ 
    149 _22.push(_23); 
    150 } 
    151 return _22; 
     165var _2c=[]; 
     166for(var _2d in obj){ 
     167_2c.push(_2d); 
     168} 
     169return _2c; 
    152170},values:function(obj){ 
    153 var _24=[]; 
    154 for(var _25 in obj){ 
    155 _24.push(obj[_25]); 
    156 } 
    157 return _24; 
     171var _2f=[]; 
     172for(var _30 in obj){ 
     173_2f.push(obj[_30]); 
     174} 
     175return _2f; 
    158176},items:function(obj){ 
    159 var _26=[]; 
     177var _32=[]; 
    160178var e; 
    161 for(var _28 in obj){ 
     179for(var _34 in obj){ 
    162180var v; 
    163181try{ 
    164 v=obj[_28]; 
     182v=obj[_34]; 
    165183} 
    166184catch(e){ 
    167185continue; 
    168186} 
    169 _26.push([_28,v]); 
    170 } 
    171 return _26; 
    172 },_newNamedError:function(_29,_30,_31){ 
    173 _31.prototype=new MochiKit.Base.NamedError(_29.NAME+"."+_30); 
    174 _29[_30]=_31; 
     187_32.push([_34,v]); 
     188} 
     189return _32; 
     190},_newNamedError:function(_36,_37,_38){ 
     191_38.prototype=new MochiKit.Base.NamedError(_36.NAME+"."+_37); 
     192_36[_37]=_38; 
    175193},operator:{truth:function(a){ 
    176194return !!a; 
     
    239257},contains:function(a,b){ 
    240258return b in a; 
    241 }},forwardCall:function(_34){ 
     259}},forwardCall:function(_76){ 
    242260return function(){ 
    243 return this[_34].apply(this,arguments); 
    244 }; 
    245 },itemgetter:function(_35){ 
     261return this[_76].apply(this,arguments); 
     262}; 
     263},itemgetter:function(_77){ 
    246264return function(arg){ 
    247 return arg[_35]; 
     265return arg[_77]; 
    248266}; 
    249267},typeMatcher:function(){ 
    250 var _37={}; 
     268var _79={}; 
    251269for(var i=0;i<arguments.length;i++){ 
    252270var typ=arguments[i]; 
    253 _37[typ]=typ; 
     271_79[typ]=typ; 
    254272} 
    255273return function(){ 
    256274for(var i=0;i<arguments.length;i++){ 
    257 if(!(typeof (arguments[i]) in _37)){ 
     275if(!(typeof (arguments[i]) in _79)){ 
    258276return false; 
    259277} 
     
    290308var o=arguments[i]; 
    291309var typ=typeof (o); 
    292 if((typ!="object"&&!(typ=="function"&&typeof (o.item)=="function"))||o===null||typeof (o.length)!="number"||o.nodeType===3){ 
     310if((typ!="object"&&!(typ=="function"&&typeof (o.item)=="function"))||o===null||typeof (o.length)!="number"||o.nodeType===3||o.nodeType===4){ 
    293311return false; 
    294312} 
     
    307325return MochiKit.Base.extend(null,arguments,1); 
    308326} 
    309 var _40=[]; 
     327var _8a=[]; 
    310328for(var i=1;i<arguments.length;i++){ 
    311 _40.push(fn(arguments[i])); 
    312 } 
    313 return _40; 
     329_8a.push(fn(arguments[i])); 
     330} 
     331return _8a; 
    314332},map:function(fn,lst){ 
    315333var m=MochiKit.Base; 
    316334var itr=MochiKit.Iter; 
    317 var _42=m.isArrayLike; 
     335var _90=m.isArrayLike; 
    318336if(arguments.length<=2){ 
    319 if(!_42(lst)){ 
     337if(!_90(lst)){ 
    320338if(itr){ 
    321339lst=itr.list(lst); 
     
    330348return m.extend(null,lst); 
    331349} 
    332 var _43=[]; 
     350var _91=[]; 
    333351for(var i=0;i<lst.length;i++){ 
    334 _43.push(fn(lst[i])); 
    335 } 
    336 return _43; 
     352_91.push(fn(lst[i])); 
     353} 
     354return _91; 
    337355}else{ 
    338356if(fn===null){ 
    339357fn=Array; 
    340358} 
    341 var _44=null; 
     359var _93=null; 
    342360for(i=1;i<arguments.length;i++){ 
    343 if(!_42(arguments[i])){ 
     361if(!_90(arguments[i])){ 
    344362if(itr){ 
    345363return itr.list(itr.imap.apply(null,arguments)); 
     
    349367} 
    350368var l=arguments[i].length; 
    351 if(_44===null||_44>l){ 
    352 _44=l; 
    353 } 
    354 } 
    355 _43=[]; 
    356 for(i=0;i<_44;i++){ 
    357 var _45=[]; 
     369if(_93===null||_93>l){ 
     370_93=l; 
     371} 
     372} 
     373_91=[]; 
     374for(i=0;i<_93;i++){ 
     375var _95=[]; 
    358376for(var j=1;j<arguments.length;j++){ 
    359 _45.push(arguments[j][i]); 
    360 } 
    361 _43.push(fn.apply(this,_45)); 
    362 } 
    363 return _43; 
     377_95.push(arguments[j][i]); 
     378} 
     379_91.push(fn.apply(this,_95)); 
     380} 
     381return _91; 
    364382} 
    365383},xfilter:function(fn){ 
    366 var _47=[]; 
     384var _98=[]; 
    367385if(fn===null){ 
    368386fn=MochiKit.Base.operator.truth; 
     
    371389var o=arguments[i]; 
    372390if(fn(o)){ 
    373 _47.push(o); 
    374 } 
    375 } 
    376 return _47; 
    377 },filter:function(fn,lst,_48){ 
    378 var _49=[]; 
     391_98.push(o); 
     392} 
     393} 
     394return _98; 
     395},filter:function(fn,lst,_9d){ 
     396var _9e=[]; 
    379397var m=MochiKit.Base; 
    380398if(!m.isArrayLike(lst)){ 
     
    389407} 
    390408if(typeof (Array.prototype.filter)=="function"){ 
    391 return Array.prototype.filter.call(lst,fn,_48); 
    392 }else{ 
    393 if(typeof (_48)=="undefined"||_48===null){ 
     409return Array.prototype.filter.call(lst,fn,_9d); 
     410}else{ 
     411if(typeof (_9d)=="undefined"||_9d===null){ 
    394412for(var i=0;i<lst.length;i++){ 
    395413var o=lst[i]; 
    396414if(fn(o)){ 
    397 _49.push(o); 
     415_9e.push(o); 
    398416} 
    399417} 
     
    401419for(i=0;i<lst.length;i++){ 
    402420o=lst[i]; 
    403 if(fn.call(_48,o)){ 
    404 _49.push(o); 
    405 } 
    406 } 
    407 } 
    408 } 
    409 return _49; 
    410 },_wrapDumbFunction:function(_50){ 
     421if(fn.call(_9d,o)){ 
     422_9e.push(o); 
     423} 
     424} 
     425} 
     426} 
     427return _9e; 
     428},_wrapDumbFunction:function(_a2){ 
    411429return function(){ 
    412430switch(arguments.length){ 
    413431case 0: 
    414 return _50(); 
     432return _a2(); 
    415433case 1: 
    416 return _50(arguments[0]); 
     434return _a2(arguments[0]); 
    417435case 2: 
    418 return _50(arguments[0],arguments[1]); 
     436return _a2(arguments[0],arguments[1]); 
    419437case 3: 
    420 return _50(arguments[0],arguments[1],arguments[2]); 
    421 } 
    422 var _51=[]; 
     438return _a2(arguments[0],arguments[1],arguments[2]); 
     439} 
     440var _a3=[]; 
    423441for(var i=0;i<arguments.length;i++){ 
    424 _51.push("arguments["+i+"]"); 
    425 } 
    426 return eval("(func("+_51.join(",")+"))"); 
    427 }; 
    428 },methodcaller:function(_52){ 
    429 var _53=MochiKit.Base.extend(null,arguments,1); 
    430 if(typeof (_52)=="function"){ 
     442_a3.push("arguments["+i+"]"); 
     443} 
     444return eval("(func("+_a3.join(",")+"))"); 
     445}; 
     446},methodcaller:function(_a5){ 
     447var _a6=MochiKit.Base.extend(null,arguments,1); 
     448if(typeof (_a5)=="function"){ 
    431449return function(obj){ 
    432 return _52.apply(obj,_53); 
     450return _a5.apply(obj,_a6); 
    433451}; 
    434452}else{ 
    435453return function(obj){ 
    436 return obj[_52].apply(obj,_53); 
    437 }; 
    438 } 
    439 },method:function(_54,_55){ 
     454return obj[_a5].apply(obj,_a6); 
     455}; 
     456} 
     457},method:function(_a9,_aa){ 
    440458var m=MochiKit.Base; 
    441 return m.bind.apply(this,m.extend([_55,_54],arguments,2)); 
     459return m.bind.apply(this,m.extend([_aa,_a9],arguments,2)); 
    442460},compose:function(f1,f2){ 
    443 var _58=[]; 
     461var _ae=[]; 
    444462var m=MochiKit.Base; 
    445463if(arguments.length===0){ 
     
    451469throw new TypeError(m.repr(fn)+" is not a function"); 
    452470} 
    453 _58.push(fn); 
     471_ae.push(fn); 
    454472} 
    455473return function(){ 
    456 var _59=arguments; 
    457 for(var i=_58.length-1;i>=0;i--){ 
    458 _59=[_58[i].apply(this,_59)]; 
    459 } 
    460 return _59[0]; 
    461 }; 
    462 },bind:function(_60,_61){ 
    463 if(typeof (_60)=="string"){ 
    464 _60=_61[_60]; 
    465 } 
    466 var _62=_60.im_func; 
    467 var _63=_60.im_preargs; 
    468 var _64=_60.im_self; 
     474var _b2=arguments; 
     475for(var i=_ae.length-1;i>=0;i--){ 
     476_b2=[_ae[i].apply(this,_b2)]; 
     477} 
     478return _b2[0]; 
     479}; 
     480},bind:function(_b4,_b5){ 
     481if(typeof (_b4)=="string"){ 
     482_b4=_b5[_b4]; 
     483} 
     484var _b6=_b4.im_func; 
     485var _b7=_b4.im_preargs; 
     486var _b8=_b4.im_self; 
    469487var m=MochiKit.Base; 
    470 if(typeof (_60)=="function"&&typeof (_60.apply)=="undefined"){ 
    471 _60=m._wrapDumbFunction(_60); 
    472 } 
    473 if(typeof (_62)!="function"){ 
    474 _62=_60; 
    475 } 
    476 if(typeof (_61)!="undefined"){ 
    477 _64=_61; 
    478 } 
    479 if(typeof (_63)=="undefined"){ 
    480 _63=[]; 
    481 }else{ 
    482 _63=_63.slice(); 
    483 } 
    484 m.extend(_63,arguments,2); 
    485 var _65=function(){ 
    486 var _66=arguments; 
     488if(typeof (_b4)=="function"&&typeof (_b4.apply)=="undefined"){ 
     489_b4=m._wrapDumbFunction(_b4); 
     490} 
     491if(typeof (_b6)!="function"){ 
     492_b6=_b4; 
     493} 
     494if(typeof (_b5)!="undefined"){ 
     495_b8=_b5; 
     496} 
     497if(typeof (_b7)=="undefined"){ 
     498_b7=[]; 
     499}else{ 
     500_b7=_b7.slice(); 
     501} 
     502m.extend(_b7,arguments,2); 
     503var _ba=function(){ 
     504var _bb=arguments; 
    487505var me=arguments.callee; 
    488506if(me.im_preargs.length>0){ 
    489 _66=m.concat(me.im_preargs,_66); 
    490 } 
    491 var _61=me.im_self; 
    492 if(!_61){ 
    493 _61=this; 
    494 } 
    495 return me.im_func.apply(_61,_66); 
    496 }; 
    497 _65.im_self=_64; 
    498 _65.im_func=_62; 
    499 _65.im_preargs=_63; 
    500 return _65; 
    501 },bindMethods:function(_67){ 
    502 var _68=MochiKit.Base.bind; 
    503 for(var k in _67){ 
    504 var _69=_67[k]; 
    505 if(typeof (_69)=="function"){ 
    506 _67[k]=_68(_69,_67); 
    507 } 
    508 } 
    509 },registerComparator:function(_70,_71,_72,_73){ 
    510 MochiKit.Base.comparatorRegistry.register(_70,_71,_72,_73); 
     507_bb=m.concat(me.im_preargs,_bb); 
     508} 
     509var _bd=me.im_self; 
     510if(!_bd){ 
     511_bd=this; 
     512} 
     513return me.im_func.apply(_bd,_bb); 
     514}; 
     515_ba.im_self=_b8; 
     516_ba.im_func=_b6; 
     517_ba.im_preargs=_b7; 
     518return _ba; 
     519},bindLate:function(_be,_bf){ 
     520var m=MochiKit.Base; 
     521if(typeof (_be)!="string"){ 
     522return m.bind.apply(this,arguments); 
     523} 
     524var _c1=m.extend([],arguments,2); 
     525var _c2=function(){ 
     526var _c3=arguments; 
     527var me=arguments.callee; 
     528if(me.im_preargs.length>0){ 
     529_c3=m.concat(me.im_preargs,_c3); 
     530} 
     531var _c5=me.im_self; 
     532if(!_c5){ 
     533_c5=this; 
     534} 
     535return _c5[me.im_func].apply(_c5,_c3); 
     536}; 
     537_c2.im_self=_bf; 
     538_c2.im_func=_be; 
     539_c2.im_preargs=_c1; 
     540return _c2; 
     541},bindMethods:function(_c6){ 
     542var _c7=MochiKit.Base.bind; 
     543for(var k in _c6){ 
     544var _c9=_c6[k]; 
     545if(typeof (_c9)=="function"){ 
     546_c6[k]=_c7(_c9,_c6); 
     547} 
     548} 
     549},registerComparator:function(_ca,_cb,_cc,_cd){ 
     550MochiKit.Base.comparatorRegistry.register(_ca,_cb,_cc,_cd); 
    511551},_primitives:{"boolean":true,"string":true,"number":true},compare:function(a,b){ 
    512552if(a==b){ 
    513553return 0; 
    514554} 
    515 var _74=(typeof (a)=="undefined"||a===null); 
    516 var _75=(typeof (b)=="undefined"||b===null); 
    517 if(_74&&_75){ 
     555var _d0=(typeof (a)=="undefined"||a===null); 
     556var _d1=(typeof (b)=="undefined"||b===null); 
     557if(_d0&&_d1){ 
    518558return 0; 
    519559}else{ 
    520 if(_74){ 
     560if(_d0){ 
    521561return -1; 
    522562}else{ 
    523 if(_75){ 
     563if(_d1){ 
    524564return 1; 
    525565} 
     
    527567} 
    528568var m=MochiKit.Base; 
    529 var _76=m._primitives; 
    530 if(!(typeof (a) in _76&&typeof (b) in _76)){ 
     569var _d3=m._primitives; 
     570if(!(typeof (a) in _d3&&typeof (b) in _d3)){ 
    531571try{ 
    532572return m.comparatorRegistry.match(a,b); 
     
    545585} 
    546586} 
    547 var _77=m.repr; 
    548 throw new TypeError(_77(a)+" and "+_77(b)+" can not be compared"); 
     587var _d4=m.repr; 
     588throw new TypeError(_d4(a)+" and "+_d4(b)+" can not be compared"); 
    549589},compareDateLike:function(a,b){ 
    550590return MochiKit.Base.compare(a.getTime(),b.getTime()); 
    551591},compareArrayLike:function(a,b){ 
    552 var _78=MochiKit.Base.compare; 
    553 var _79=a.length; 
    554 var _80=0; 
    555 if(_79>b.length){ 
    556 _80=1; 
    557 _79=b.length; 
    558 }else{ 
    559 if(_79<b.length){ 
    560 _80=-1; 
    561 } 
    562 } 
    563 for(var i=0;i<_79;i++){ 
    564 var cmp=_78(a[i],b[i]); 
     592var _d9=MochiKit.Base.compare; 
     593var _da=a.length; 
     594var _db=0; 
     595if(_da>b.length){ 
     596_db=1; 
     597_da=b.length; 
     598}else{ 
     599if(_da<b.length){ 
     600_db=-1; 
     601} 
     602} 
     603for(var i=0;i<_da;i++){ 
     604var cmp=_d9(a[i],b[i]); 
    565605if(cmp){ 
    566606return cmp; 
    567607} 
    568608} 
    569 return _80; 
    570 },registerRepr:function(_82,_83,_84,_85){ 
    571 MochiKit.Base.reprRegistry.register(_82,_83,_84,_85); 
     609return _db; 
     610},registerRepr:function(_de,_df,_e0,_e1){ 
     611MochiKit.Base.reprRegistry.register(_de,_df,_e0,_e1); 
    572612},repr:function(o){ 
    573613if(typeof (o)=="undefined"){ 
     
    594634} 
    595635try{ 
    596 var _86=(o+""); 
     636var _e3=(o+""); 
    597637} 
    598638catch(e){ 
     
    600640} 
    601641if(typeof (o)=="function"){ 
    602 o=_86.replace(/^\s+/,""); 
    603 var idx=o.indexOf("{"); 
     642_e3=_e3.replace(/^\s+/,"").replace(/\s+/g," "); 
     643_e3=_e3.replace(/,(\S)/,", $1"); 
     644var idx=_e3.indexOf("{"); 
    604645if(idx!=-1){ 
    605 o=o.substr(0,idx)+"{...}"; 
    606 } 
    607 } 
    608 return _86; 
     646_e3=_e3.substr(0,idx)+"{...}"; 
     647} 
     648} 
     649return _e3; 
    609650},reprArrayLike:function(o){ 
    610651var m=MochiKit.Base; 
    611652return "["+m.map(m.repr,o).join(", ")+"]"; 
    612653},reprString:function(o){ 
    613 return ("\""+o.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r"); 
     654return ("\""+o.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\v]/g,"\\v").replace(/[\r]/g,"\\r"); 
    614655},reprNumber:function(o){ 
    615656return o+""; 
    616 },registerJSON:function(_88,_89,_90,_91){ 
    617 MochiKit.Base.jsonRegistry.register(_88,_89,_90,_91); 
     657},registerJSON:function(_e9,_ea,_eb,_ec){ 
     658MochiKit.Base.jsonRegistry.register(_e9,_ea,_eb,_ec); 
    618659},evalJSON:function(){ 
    619 return eval("("+arguments[0]+")"); 
     660return eval("("+MochiKit.Base._filterJSON(arguments[0])+")"); 
     661},_filterJSON:function(s){ 
     662var m=s.match(/^\s*\/\*(.*)\*\/\s*$/); 
     663if(m){ 
     664return m[1]; 
     665} 
     666return s; 
    620667},serializeJSON:function(o){ 
    621 var _92=typeof (o); 
    622 if(_92=="number"||_92=="boolean"){ 
     668var _f0=typeof (o); 
     669if(_f0=="number"||_f0=="boolean"){ 
    623670return o+""; 
    624671}else{ 
    625672if(o===null){ 
    626673return "null"; 
    627 } 
    628 } 
    629 var m=MochiKit.Base; 
    630 var _93=m.reprString; 
    631 if(_92=="string"){ 
    632 return _93(o); 
     674}else{ 
     675if(_f0=="string"){ 
     676var res=""; 
     677for(var i=0;i<o.length;i++){ 
     678var c=o.charAt(i); 
     679if(c=="\""){ 
     680res+="\\\""; 
     681}else{ 
     682if(c=="\\"){ 
     683res+="\\\\"; 
     684}else{ 
     685if(c=="\b"){ 
     686res+="\\b"; 
     687}else{ 
     688if(c=="\f"){ 
     689res+="\\f"; 
     690}else{ 
     691if(c=="\n"){ 
     692res+="\\n"; 
     693}else{ 
     694if(c=="\r"){ 
     695res+="\\r"; 
     696}else{ 
     697if(c=="\t"){ 
     698res+="\\t"; 
     699}else{ 
     700if(o.charCodeAt(i)<=31){ 
     701var hex=o.charCodeAt(i).toString(16); 
     702if(hex.length<2){ 
     703hex="0"+hex; 
     704} 
     705res+="\\u00"+hex.toUpperCase(); 
     706}else{ 
     707res+=c; 
     708} 
     709} 
     710} 
     711} 
     712} 
     713} 
     714} 
     715} 
     716} 
     717return "\""+res+"\""; 
     718} 
     719} 
    633720} 
    634721var me=arguments.callee; 
    635 var _94; 
     722var _f6; 
    636723if(typeof (o.__json__)=="function"){ 
    637 _94=o.__json__(); 
    638 if(o!==_94){ 
    639 return me(_94); 
     724_f6=o.__json__(); 
     725if(o!==_f6){ 
     726return me(_f6); 
    640727} 
    641728} 
    642729if(typeof (o.json)=="function"){ 
    643 _94=o.json(); 
    644 if(o!==_94){ 
    645 return me(_94); 
    646 } 
    647 } 
    648 if(_92!="function"&&typeof (o.length)=="number"){ 
     730_f6=o.json(); 
     731if(o!==_f6){ 
     732return me(_f6); 
     733} 
     734} 
     735if(_f0!="function"&&typeof (o.length)=="number"){ 
    649736var res=[]; 
    650737for(var i=0;i<o.length;i++){ 
    651738var val=me(o[i]); 
    652739if(typeof (val)!="string"){ 
    653 val="undefined"; 
     740continue; 
    654741} 
    655742res.push(val); 
     
    657744return "["+res.join(", ")+"]"; 
    658745} 
     746var m=MochiKit.Base; 
    659747try{ 
    660 _94=m.jsonRegistry.match(o); 
    661 if(o!==_94){ 
    662 return me(_94); 
     748_f6=m.jsonRegistry.match(o); 
     749if(o!==_f6){ 
     750return me(_f6); 
    663751} 
    664752} 
     
    668756} 
    669757} 
    670 if(_92=="undefined"){ 
     758if(_f0=="undefined"){ 
    671759throw new TypeError("undefined can not be serialized as JSON"); 
    672760} 
    673 if(_92=="function"){ 
     761if(_f0=="function"){ 
    674762return null; 
    675763} 
    676764res=[]; 
    677765for(var k in o){ 
    678 var _96; 
     766var _fa; 
    679767if(typeof (k)=="number"){ 
    680 _96="\""+k+"\""; 
     768_fa="\""+k+"\""; 
    681769}else{ 
    682770if(typeof (k)=="string"){ 
    683 _96=_93(k); 
     771_fa=me(k); 
    684772}else{ 
    685773continue; 
     
    690778continue; 
    691779} 
    692 res.push(_96+":"+val); 
     780res.push(_fa+":"+val); 
    693781} 
    694782return "{"+res.join(", ")+"}"; 
    695783},objEqual:function(a,b){ 
    696784return (MochiKit.Base.compare(a,b)===0); 
    697 },arrayEqual:function(_97,arr){ 
    698 if(_97.length!=arr.length){ 
     785},arrayEqual:function(_fd,arr){ 
     786if(_fd.length!=arr.length){ 
    699787return false; 
    700788} 
    701 return (MochiKit.Base.compare(_97,arr)===0); 
     789return (MochiKit.Base.compare(_fd,arr)===0); 
    702790},concat:function(){ 
    703 var _99=[]; 
     791var _ff=[]; 
    704792var _100=MochiKit.Base.extend; 
    705793for(var i=0;i<arguments.length;i++){ 
    706 _100(_99,arguments[i]); 
    707 } 
    708 return _99; 
     794_100(_ff,arguments[i]); 
     795} 
     796return _ff; 
    709797},keyComparator:function(key){ 
    710798var m=MochiKit.Base; 
    711 var _102=m.compare; 
     799var _104=m.compare; 
    712800if(arguments.length==1){ 
    713801return function(a,b){ 
    714 return _102(a[key],b[key]); 
    715 }; 
    716 } 
    717 var _103=m.extend(null,arguments); 
     802return _104(a[key],b[key]); 
     803}; 
     804} 
     805var _107=m.extend(null,arguments); 
    718806return function(a,b){ 
    719807var rval=0; 
    720 for(var i=0;(rval===0)&&(i<_103.length);i++){ 
    721 var key=_103[i]; 
    722 rval=_102(a[key],b[key]); 
     808for(var i=0;(rval===0)&&(i<_107.length);i++){ 
     809var key=_107[i]; 
     810rval=_104(a[key],b[key]); 
    723811} 
    724812return rval; 
    725813}; 
    726814},reverseKeyComparator:function(key){ 
    727 var _105=MochiKit.Base.keyComparator.apply(this,arguments); 
     815var _10e=MochiKit.Base.keyComparator.apply(this,arguments); 
    728816return function(a,b){ 
    729 return _105(b,a); 
     817return _10e(b,a); 
    730818}; 
    731819},partial:function(func){ 
    732820var m=MochiKit.Base; 
    733821return m.bind.apply(this,m.extend([func,undefined],arguments,1)); 
    734 },listMinMax:function(_107,lst){ 
     822},listMinMax:function(_113,lst){ 
    735823if(lst.length===0){ 
    736824return null; 
    737825} 
    738826var cur=lst[0]; 
    739 var _109=MochiKit.Base.compare; 
     827var _116=MochiKit.Base.compare; 
    740828for(var i=1;i<lst.length;i++){ 
    741829var o=lst[i]; 
    742 if(_109(o,cur)==_107){ 
     830if(_116(o,cur)==_113){ 
    743831cur=o; 
    744832} 
     
    749837},objMin:function(){ 
    750838return MochiKit.Base.listMinMax(-1,arguments); 
    751 },findIdentical:function(lst,_110,_111,end){ 
     839},findIdentical:function(lst,_11a,_11b,end){ 
    752840if(typeof (end)=="undefined"||end===null){ 
    753841end=lst.length; 
    754842} 
    755 if(typeof (_111)=="undefined"||_111===null){ 
    756 _111=0; 
    757 } 
    758 for(var i=_111;i<end;i++){ 
    759 if(lst[i]===_110){ 
     843if(typeof (_11b)=="undefined"||_11b===null){ 
     844_11b=0; 
     845} 
     846for(var i=_11b;i<end;i++){ 
     847if(lst[i]===_11a){ 
    760848return i; 
    761849} 
     
    766854var m=MochiKit.Base; 
    767855var args=m.extend(null,arguments); 
    768 var _115=args.length; 
     856var _121=args.length; 
    769857while(args.length){ 
    770858var o=args.shift(); 
    771859if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){ 
    772 _115+=o.length-1; 
     860_121+=o.length-1; 
    773861for(var i=o.length-1;i>=0;i--){ 
    774862sum+=o[i]; 
     
    778866} 
    779867} 
    780 if(_115<=0){ 
     868if(_121<=0){ 
    781869throw new TypeError("mean() requires at least one argument"); 
    782870} 
    783 return sum/_115; 
     871return sum/_121; 
    784872},median:function(){ 
    785873var data=MochiKit.Base.flattenArguments(arguments); 
     
    789877data.sort(compare); 
    790878if(data.length%2==0){ 
    791 var _117=data.length/2; 
    792 return (data[_117]+data[_117-1])/2; 
     879var _125=data.length/2; 
     880return (data[_125]+data[_125-1])/2; 
    793881}else{ 
    794882return data[(data.length-1)/2]; 
    795883} 
    796 },findValue:function(lst,_118,_119,end){ 
     884},findValue:function(lst,_127,_128,end){ 
    797885if(typeof (end)=="undefined"||end===null){ 
    798886end=lst.length; 
    799887} 
    800 if(typeof (_119)=="undefined"||_119===null){ 
    801 _119=0; 
     888if(typeof (_128)=="undefined"||_128===null){ 
     889_128=0; 
    802890} 
    803891var cmp=MochiKit.Base.compare; 
    804 for(var i=_119;i<end;i++){ 
    805 if(cmp(lst[i],_118)===0){ 
     892for(var i=_128;i<end;i++){ 
     893if(cmp(lst[i],_127)===0){ 
    806894return i; 
    807895} 
    808896} 
    809897return -1; 
    810 },nodeWalk:function(node,_121){ 
    811 var _122=[node]; 
    812 var _123=MochiKit.Base.extend; 
    813 while(_122.length){ 
    814 var res=_121(_122.shift()); 
     898},nodeWalk:function(node,_12d){ 
     899var _12e=[node]; 
     900var _12f=MochiKit.Base.extend; 
     901while(_12e.length){ 
     902var res=_12d(_12e.shift()); 
    815903if(res){ 
    816 _123(_122,res); 
    817 } 
    818 } 
    819 },nameFunctions:function(_124){ 
    820 var base=_124.NAME; 
     904_12f(_12e,res); 
     905} 
     906} 
     907},nameFunctions:function(_131){ 
     908var base=_131.NAME; 
    821909if(typeof (base)=="undefined"){ 
    822910base=""; 
     
    824912base=base+"."; 
    825913} 
    826 for(var name in _124){ 
    827 var o=_124[name]; 
     914for(var name in _131){ 
     915var o=_131[name]; 
    828916if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ 
    829917try{ 
     
    834922} 
    835923} 
    836 },queryString:function(_127,_128){ 
    837 if(typeof (MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof (_127)=="string"||(typeof (_127.nodeType)!="undefined"&&_127.nodeType>0))){ 
    838 var kv=MochiKit.DOM.formContents(_127); 
    839 _127=kv[0]; 
    840 _128=kv[1]; 
     924},queryString:function(_135,_136){ 
     925if(typeof (MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof (_135)=="string"||(typeof (_135.nodeType)!="undefined"&&_135.nodeType>0))){ 
     926var kv=MochiKit.DOM.formContents(_135); 
     927_135=kv[0]; 
     928_136=kv[1]; 
    841929}else{ 
    842930if(arguments.length==1){ 
    843 var o=_127; 
    844 _127=[]; 
    845 _128=[]; 
     931if(typeof (_135.length)=="number"&&_135.length==2){ 
     932return arguments.callee(_135[0],_135[1]); 
     933} 
     934var o=_135; 
     935_135=[]; 
     936_136=[]; 
    846937for(var k in o){ 
    847938var v=o[k]; 
     
    849940continue; 
    850941}else{ 
    851 if(typeof (v)!="string"&&typeof (v.length)=="number"){ 
     942if(MochiKit.Base.isArrayLike(v)){ 
    852943for(var i=0;i<v.length;i++){ 
    853 _127.push(k); 
    854 _128.push(v[i]); 
    855 } 
    856 }else{ 
    857 _127.push(k); 
    858 _128.push(v); 
     944_135.push(k); 
     945_136.push(v[i]); 
     946} 
     947}else{ 
     948_135.push(k); 
     949_136.push(v); 
    859950} 
    860951} 
     
    863954} 
    864955var rval=[]; 
    865 var len=Math.min(_127.length,_128.length); 
    866 var _131=MochiKit.Base.urlEncode; 
     956var len=Math.min(_135.length,_136.length); 
     957var _13e=MochiKit.Base.urlEncode; 
    867958for(var i=0;i<len;i++){ 
    868 v=_128[i]; 
     959v=_136[i]; 
    869960if(typeof (v)!="undefined"&&v!==null){ 
    870 rval.push(_131(_127[i])+"="+_131(v)); 
     961rval.push(_13e(_135[i])+"="+_13e(v)); 
    871962} 
    872963} 
    873964return rval.join("&"); 
    874 },parseQueryString:function(_132,_133){ 
    875 var qstr=(_132[0]=="?")?_132.substring(1):_132; 
    876 var _135=qstr.replace(/\+/g,"%20").split(/(\&amp\;|\&\#38\;|\&#x26;|\&)/); 
     965},parseQueryString:function(_13f,_140){ 
     966var qstr=(_13f.charAt(0)=="?")?_13f.substring(1):_13f; 
     967var _142=qstr.replace(/\+/g,"%20").split(/\&amp\;|\&\#38\;|\&#x26;|\&/); 
    877968var o={}; 
    878 var _136; 
     969var _144; 
    879970if(typeof (decodeURIComponent)!="undefined"){ 
    880 _136=decodeURIComponent; 
    881 }else{ 
    882 _136=unescape; 
    883 } 
    884 if(_133){ 
    885 for(var i=0;i<_135.length;i++){ 
    886 var pair=_135[i].split("="); 
    887 if(pair.length!==2){ 
     971_144=decodeURIComponent; 
     972}else{ 
     973_144=unescape; 
     974} 
     975if(_140){ 
     976for(var i=0;i<_142.length;i++){ 
     977var pair=_142[i].split("="); 
     978var name=_144(pair.shift()); 
     979if(!name){ 
    888980continue; 
    889981} 
    890 var name=_136(pair[0]); 
    891982var arr=o[name]; 
    892983if(!(arr instanceof Array)){ 
     
    894985o[name]=arr; 
    895986} 
    896 arr.push(_136(pair[1])); 
    897 } 
    898 }else{ 
    899 for(i=0;i<_135.length;i++){ 
    900 pair=_135[i].split("="); 
    901 if(pair.length!==2){ 
     987arr.push(_144(pair.join("="))); 
     988} 
     989}else{ 
     990for(i=0;i<_142.length;i++){ 
     991pair=_142[i].split("="); 
     992var name=pair.shift(); 
     993if(!name){ 
    902994continue; 
    903995} 
    904 o[_136(pair[0])]=_136(pair[1]); 
     996o[_144(name)]=_144(pair.join("=")); 
    905997} 
    906998} 
     
    9101002this.pairs=[]; 
    9111003}; 
    912 MochiKit.Base.AdapterRegistry.prototype={register:function(name,_138,wrap,_140){ 
    913 if(_140){ 
    914 this.pairs.unshift([name,_138,wrap]); 
    915 }else{ 
    916 this.pairs.push([name,_138,wrap]); 
     1004MochiKit.Base.AdapterRegistry.prototype={register:function(name,_14a,wrap,_14c){ 
     1005if(_14c){ 
     1006this.pairs.unshift([name,_14a,wrap]); 
     1007}else{ 
     1008this.pairs.push([name,_14a,wrap]); 
    9171009} 
    9181010},match:function(){ 
     
    9341026return false; 
    9351027}}; 
    936 MochiKit.Base.EXPORT=["flattenArray","noop","camelize","counter","clone","extend","update","updatetree","setdefault","keys","values","items","NamedError","operator","forwardCall","itemgetter","typeMatcher","isCallable","isUndefined","isUndefinedOrNull","isNull","isEmpty","isNotEmpty","isArrayLike","isDateLike","xmap","map","xfilter","filter","methodcaller","compose","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","findValue","findIdentical","flattenArguments","method","average","mean","median"]; 
     1028MochiKit.Base.EXPORT=["flattenArray","noop","camelize","counter","clone","extend","update","updatetree","setdefault","keys","values","items","NamedError","operator","forwardCall","itemgetter","typeMatcher","isCallable","isUndefined","isUndefinedOrNull","isNull","isEmpty","isNotEmpty","isArrayLike","isDateLike","xmap","map","xfilter","filter","methodcaller","compose","bind","bindLate","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","findValue","findIdentical","flattenArguments","method","average","mean","median"]; 
    9371029MochiKit.Base.EXPORT_OK=["nameFunctions","comparatorRegistry","reprRegistry","jsonRegistry","compareDateLike","compareArrayLike","reprArrayLike","reprString","reprNumber"]; 
    938 MochiKit.Base._exportSymbols=function(_141,_142){ 
     1030MochiKit.Base._exportSymbols=function(_152,_153){ 
    9391031if(!MochiKit.__export__){ 
    9401032return; 
    9411033} 
    942 var all=_142.EXPORT_TAGS[":all"]; 
     1034var all=_153.EXPORT_TAGS[":all"]; 
    9431035for(var i=0;i<all.length;i++){ 
    944 _141[all[i]]=_142[all[i]]; 
     1036_152[all[i]]=_153[all[i]]; 
    9451037} 
    9461038}; 
     
    9511043m.find=m.findValue; 
    9521044if(typeof (encodeURIComponent)!="undefined"){ 
    953 m.urlEncode=function(_144){ 
    954 return encodeURIComponent(_144).replace(/\'/g,"%27"); 
    955 }; 
    956 }else{ 
    957 m.urlEncode=function(_145){ 
    958 return escape(_145).replace(/\+/g,"%2B").replace(/\"/g,"%22").rval.replace(/\'/g,"%27"); 
     1045m.urlEncode=function(_157){ 
     1046return encodeURIComponent(_157).replace(/\'/g,"%27"); 
     1047}; 
     1048}else{ 
     1049m.urlEncode=function(_158){ 
     1050return escape(_158).replace(/\+/g,"%2B").replace(/\"/g,"%22").rval.replace(/\'/g,"%27"); 
    9591051}; 
    9601052} 
     
    9961088compose=MochiKit.Base.compose; 
    9971089serializeJSON=MochiKit.Base.serializeJSON; 
     1090mean=MochiKit.Base.mean; 
     1091median=MochiKit.Base.median; 
    9981092} 
    9991093MochiKit.Base._exportSymbols(this,MochiKit.Base); 
    1000 if(typeof (dojo)!="undefined"){ 
    1001 dojo.provide("MochiKit.Async"); 
    1002 dojo.require("MochiKit.Base"); 
    1003 } 
    1004 if(typeof (JSAN)!="undefined"){ 
    1005 JSAN.use("MochiKit.Base",[]); 
    1006 } 
    1007 try{ 
    1008 if(typeof (MochiKit.Base)=="undefined"){ 
    1009 throw ""; 
    1010 } 
    1011 } 
    1012 catch(e){ 
    1013 throw "MochiKit.Async depends on MochiKit.Base!"; 
    1014 } 
    1015 if(typeof (MochiKit.Async)=="undefined"){ 
    1016 MochiKit.Async={}; 
    1017 } 
    1018 MochiKit.Async.NAME="MochiKit.Async"; 
    1019 MochiKit.Async.VERSION="1.4"; 
    1020 MochiKit.Async.__repr__=function(){ 
    1021 return "["+this.NAME+" "+this.VERSION+"]"; 
    1022 }; 
    1023 MochiKit.Async.toString=function(){ 
    1024 return this.__repr__(); 
    1025 }; 
    1026 MochiKit.Async.Deferred=function(_146){ 
    1027 this.chain=[]; 
    1028 this.id=this._nextId(); 
    1029 this.fired=-1; 
    1030 this.paused=0; 
    1031 this.results=[null,null]; 
    1032 this.canceller=_146; 
    1033 this.silentlyCancelled=false; 
    1034 this.chained=false; 
    1035 }; 
    1036 MochiKit.Async.Deferred.prototype={repr:function(){ 
    1037 var _147; 
    1038 if(this.fired==-1){ 
    1039 _147="unfired"; 
    1040 }else{ 
    1041 if(this.fired===0){ 
    1042 _147="success"; 
    1043 }else{ 
    1044 _147="error"; 
    1045 } 
    1046 } 
    1047 return "Deferred("+this.id+", "+_147+")"; 
    1048 },toString:MochiKit.Base.forwardCall("repr"),_nextId:MochiKit.Base.counter(),cancel:function(){ 
    1049 var self=MochiKit.Async; 
    1050 if(this.fired==-1){ 
    1051 if(this.canceller){ 
    1052 this.canceller(this); 
    1053 }else{ 
    1054 this.silentlyCancelled=true; 
    1055 } 
    1056 if(this.fired==-1){ 
    1057 this.errback(new self.CancelledError(this)); 
    1058 } 
    1059 }else{ 
    1060 if((this.fired===0)&&(this.results[0] instanceof self.Deferred)){ 
    1061 this.results[0].cancel(); 
    1062 } 
    1063 } 
    1064 },_resback:function(res){ 
    1065 this.fired=((res instanceof Error)?1:0); 
    1066 this.results[this.fired]=res; 
    1067 this._fire(); 
    1068 },_check:function(){ 
    1069 if(this.fired!=-1){ 
    1070 if(!this.silentlyCancelled){ 
    1071 throw new MochiKit.Async.AlreadyCalledError(this); 
    1072 } 
    1073 this.silentlyCancelled=false; 
    1074 return; 
    1075 } 
    1076 },callback:function(res){ 
    1077 this._check(); 
    1078 if(res instanceof MochiKit.Async.Deferred){ 
    1079 throw new Error("Deferred instances can only be chained if they are the result of a callback"); 
    1080 } 
    1081 this._resback(res); 
    1082 },errback:function(res){ 
    1083 this._check(); 
    1084 var self=MochiKit.Async; 
    1085 if(res instanceof self.Deferred){ 
    1086 throw new Error("Deferred instances can only be chained if they are the result of a callback"); 
    1087 } 
    1088 if(!(res instanceof Error)){ 
    1089 res=new self.GenericError(res); 
    1090 } 
    1091 this._resback(res); 
    1092 },addBoth:function(fn){ 
    1093 if(arguments.length>1){ 
    1094 fn=MochiKit.Base.partial.apply(null,arguments); 
    1095 } 
    1096 return this.addCallbacks(fn,fn); 
    1097 },addCallback:function(fn){ 
    1098 if(arguments.length>1){ 
    1099 fn=MochiKit.Base.partial.apply(null,arguments); 
    1100 } 
    1101 return this.addCallbacks(fn,null); 
    1102 },addErrback:function(fn){ 
    1103 if(arguments.length>1){ 
    1104 fn=MochiKit.Base.partial.apply(null,arguments); 
    1105 } 
    1106 return this.addCallbacks(null,fn); 
    1107 },addCallbacks:function(cb,eb){ 
    1108 if(this.chained){ 
    1109 throw new Error("Chained Deferreds can not be re-used"); 
    1110 } 
    1111 this.chain.push([cb,eb]); 
    1112 if(this.fired>=0){ 
    1113 this._fire(); 
    1114 } 
    1115 return this; 
    1116 },_fire:function(){ 
    1117 var _151=this.chain; 
    1118 var _152=this.fired; 
    1119 var res=this.results[_152]; 
    1120 var self=this; 
    1121 var cb=null; 
    1122 while(_151.length>0&&this.paused===0){ 
    1123 var pair=_151.shift(); 
    1124 var f=pair[_152]; 
    1125 if(f===null){ 
    1126 continue; 
    1127 } 
    1128 try{ 
    1129 res=f(res); 
    1130 _152=((res instanceof Error)?1:0); 
    1131 if(res instanceof MochiKit.Async.Deferred){ 
    1132 cb=function(res){ 
    1133 self._resback(res); 
    1134 self.paused--; 
    1135 if((self.paused===0)&&(self.fired>=0)){ 
    1136 self._fire(); 
    1137 } 
    1138 }; 
    1139 this.paused++; 
    1140 } 
    1141 } 
    1142 catch(err){ 
    1143 _152=1; 
    1144 if(!(err instanceof Error)){ 
    1145 err=new MochiKit.Async.GenericError(err); 
    1146 } 
    1147 res=err; 
    1148 } 
    1149 } 
    1150 this.fired=_152; 
    1151 this.results[_152]=res; 
    1152 if(cb&&this.paused){ 
    1153 res.addBoth(cb); 
    1154 res.chained=true; 
    1155 } 
    1156 }}; 
    1157 MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(){ 
    1158 return eval("("+arguments[0].responseText+")"); 
    1159 },succeed:function(_154){ 
    1160 var d=new MochiKit.Async.Deferred(); 
    1161 d.callback.apply(d,arguments); 
    1162 return d; 
    1163 },fail:function(_156){ 
    1164 var d=new MochiKit.Async.Deferred(); 
    1165 d.errback.apply(d,arguments); 
    1166 return d; 
    1167 },getXMLHttpRequest:function(){ 
    1168 var self=arguments.callee; 
    1169 if(!self.XMLHttpRequest){ 
    1170 var _157=[function(){ 
    1171 return new XMLHttpRequest(); 
    1172 },function(){ 
    1173 return new ActiveXObject("Msxml2.XMLHTTP"); 
    1174 },function(){ 
    1175 return new ActiveXObject("Microsoft.XMLHTTP"); 
    1176 },function(){ 
    1177 return new ActiveXObject("Msxml2.XMLHTTP.4.0"); 
    1178 },function(){ 
    1179 throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); 
    1180 }]; 
    1181 for(var i=0;i<_157.length;i++){ 
    1182 var func=_157[i]; 
    1183 try{ 
    1184 self.XMLHttpRequest=func; 
    1185 return func(); 
    1186 } 
    1187 catch(e){ 
    1188 } 
    1189 } 
    1190 } 
    1191 return self.XMLHttpRequest(); 
    1192 },_xhr_onreadystatechange:function(d){ 
    1193 var m=MochiKit.Base; 
    1194 if(this.readyState==4){ 
    1195 try{ 
    1196 this.onreadystatechange=null; 
    1197 } 
    1198 catch(e){ 
    1199 try{ 
    1200 this.onreadystatechange=m.noop; 
    1201 } 
    1202 catch(e){ 
    1203 } 
    1204 } 
    1205 var _158=null; 
    1206 try{ 
    1207 _158=this.status; 
    1208 if(!_158&&m.isNotEmpty(this.responseText)){ 
    1209 _158=304; 
    1210 } 
    1211 } 
    1212 catch(e){ 
    1213 } 
    1214 if(_158==200||_158==304){ 
    1215 d.callback(this); 
    1216 }else{ 
    1217 var err=new MochiKit.Async.XMLHttpRequestError(this,"Request failed"); 
    1218 if(err.number){ 
    1219 d.errback(err); 
    1220 }else{ 
    1221 d.errback(err); 
    1222 } 
    1223 } 
    1224 } 
    1225 },_xhr_canceller:function(req){ 
    1226 try{ 
    1227 req.onreadystatechange=null; 
    1228 } 
    1229 catch(e){ 
    1230 try{ 
    1231 req.onreadystatechange=MochiKit.Base.noop; 
    1232 } 
    1233 catch(e){ 
    1234 } 
    1235 } 
    1236 req.abort(); 
    1237 },sendXMLHttpRequest:function(req,_161){ 
    1238 if(typeof (_161)=="undefined"||_161===null){ 
    1239 _161=""; 
    1240 } 
    1241 var m=MochiKit.Base; 
    1242 var self=MochiKit.Async; 
    1243 var d=new self.Deferred(m.partial(self._xhr_canceller,req)); 
    1244 try{ 
    1245 req.onreadystatechange=m.bind(self._xhr_onreadystatechange,req,d); 
    1246 req.send(_161); 
    1247 } 
    1248 catch(e){ 
    1249 try{ 
    1250 req.onreadystatechange=null; 
    1251 } 
    1252 catch(ignore){ 
    1253 } 
    1254 d.errback(e); 
    1255 } 
    1256 return d; 
    1257 },doXHR:function(url,opts){ 
    1258 var m=MochiKit.Base; 
    1259 opts=m.update({method:"GET",sendContent:""},opts); 
    1260 var self=MochiKit.Async; 
    1261 var req=self.getXMLHttpRequest(); 
    1262 if(opts.queryString){ 
    1263 var qs=m.queryString(opts.queryString); 
    1264 if(qs){ 
    1265 url+="?"+qs; 
    1266 } 
    1267 } 
    1268 req.open(opts.method,url,true,opts.username,opts.password); 
    1269 if(req.overrideMimeType&&opts.mimeType){ 
    1270 req.overrideMimeType(opts.mimeType); 
    1271 } 
    1272 if(opts.headers){ 
    1273 var _165=opts.headers; 
    1274 if(!m.isArrayLike(_165)){ 
    1275 _165=m.items(_165); 
    1276 } 
    1277 for(var i=0;i<_165.length;i++){ 
    1278 var _166=_165[i]; 
    1279 var name=_166[0]; 
    1280 var _167=_166[1]; 
    1281 req.setRequestHeader(name,_167); 
    1282 } 
    1283 } 
    1284 return self.sendXMLHttpRequest(req,opts.sendContent); 
    1285 },_buildURL:function(url){ 
    1286 if(arguments.length>1){ 
    1287 var m=MochiKit.Base; 
    1288 var qs=m.queryString.apply(null,m.extend(null,arguments,1)); 
    1289 if(qs){ 
    1290 return url+"?"+qs; 
    1291 } 
    1292 } 
    1293 return url; 
    1294 },doSimpleXMLHttpRequest:function(url){ 
    1295 var self=MochiKit.Async; 
    1296 url=self._buildURL.apply(self,arguments); 
    1297 return self.doXHR(url); 
    1298 },loadJSONDoc:function(url){ 
    1299 var self=MochiKit.Async; 
    1300 url=self._buildURL.apply(self,arguments); 
    1301 var d=self.doXHR(url,{"mimeType":"text/plain","headers":[["Accept","application/json"]]}); 
    1302 d=d.addCallback(self.evalJSONRequest); 
    1303 return d; 
    1304 },wait:function(_168,_169){ 
    1305 var d=new MochiKit.Async.Deferred(); 
    1306 var m=MochiKit.Base; 
    1307 if(typeof (_169)!="undefined"){ 
    1308 d.addCallback(function(){ 
    1309 return _169; 
    1310 }); 
    1311 } 
    1312 var _170=setTimeout(m.bind("callback",d),Math.floor(_168*1000)); 
    1313 d.canceller=function(){ 
    1314 try{ 
    1315 clearTimeout(_170); 
    1316 } 
    1317 catch(e){ 
    1318 } 
    1319 }; 
    1320 return d; 
    1321 },callLater:function(_171,func){ 
    1322 var m=MochiKit.Base; 
    1323 var _172=m.partial.apply(m,m.extend(null,arguments,1)); 
    1324 return MochiKit.Async.wait(_171).addCallback(function(res){ 
    1325 return _172(); 
    1326 }); 
    1327 }}); 
    1328 MochiKit.Async.DeferredLock=function(){ 
    1329 this.waiting=[]; 
    1330 this.locked=false; 
    1331 this.id=this._nextId(); 
    1332 }; 
    1333 MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){ 
    1334 var d=new MochiKit.Async.Deferred(); 
    1335 if(this.locked){ 
    1336 this.waiting.push(d); 
    1337 }else{ 
    1338 this.locked=true; 
    1339 d.callback(this); 
    1340 } 
    1341 return d; 
    1342 },release:function(){ 
    1343 if(!this.locked){ 
    1344 throw TypeError("Tried to release an unlocked DeferredLock"); 
    1345 } 
    1346 this.locked=false; 
    1347 if(this.waiting.length>0){ 
    1348 this.locked=true; 
    1349 this.waiting.shift().callback(this); 
    1350 } 
    1351 },_nextId:MochiKit.Base.counter(),repr:function(){ 
    1352 var _173; 
    1353 if(this.locked){ 
    1354 _173="locked, "+this.waiting.length+" waiting"; 
    1355 }else{ 
    1356 _173="unlocked"; 
    1357 } 
    1358 return "DeferredLock("+this.id+", "+_173+")"; 
    1359 },toString:MochiKit.Base.forwardCall("repr")}; 
    1360 MochiKit.Async.DeferredList=function(list,_175,_176,_177,_178){ 
    1361 MochiKit.Async.Deferred.apply(this,[_178]); 
    1362 this.list=list; 
    1363 var _179=[]; 
    1364 this.resultList=_179; 
    1365 this.finishedCount=0; 
    1366 this.fireOnOneCallback=_175; 
    1367 this.fireOnOneErrback=_176; 
    1368 this.consumeErrors=_177; 
    1369 var cb=MochiKit.Base.bind(this._cbDeferred,this); 
    1370 for(var i=0;i<list.length;i++){ 
    1371 var d=list[i]; 
    1372 _179.push(undefined); 
    1373 d.addCallback(cb,i,true); 
    1374 d.addErrback(cb,i,false); 
    1375 } 
    1376 if(list.length===0&&!_175){ 
    1377 this.callback(this.resultList); 
    1378 } 
    1379 }; 
    1380 MochiKit.Async.DeferredList.prototype=new MochiKit.Async.Deferred(); 
    1381 MochiKit.Async.DeferredList.prototype._cbDeferred=function(_180,_181,_182){ 
    1382 this.resultList[_180]=[_181,_182]; 
    1383 this.finishedCount+=1; 
    1384 if(this.fired==-1){ 
    1385 if(_181&&this.fireOnOneCallback){ 
    1386 this.callback([_180,_182]); 
    1387 }else{ 
    1388 if(!_181&&this.fireOnOneErrback){ 
    1389 this.errback(_182); 
    1390 }else{ 
    1391 if(this.finishedCount==this.list.length){ 
    1392 this.callback(this.resultList); 
    1393 } 
    1394 } 
    1395 } 
    1396 } 
    1397 if(!_181&&this.consumeErrors){ 
    1398 _182=null; 
    1399 } 
    1400 return _182; 
    1401 }; 
    1402 MochiKit.Async.gatherResults=function(_183){ 
    1403 var d=new MochiKit.Async.DeferredList(_183,false,true,false); 
    1404 d.addCallback(function(_184){ 
    1405 var ret=[]; 
    1406 for(var i=0;i<_184.length;i++){ 
    1407 ret.push(_184[i][1]); 
    1408 } 
    1409 return ret; 
    1410 }); 
    1411 return d; 
    1412 }; 
    1413 MochiKit.Async.maybeDeferred=function(func){ 
    1414 var self=MochiKit.Async; 
    1415 var _186; 
    1416 try{ 
    1417 var r=func.apply(null,MochiKit.Base.extend([],arguments,1)); 
    1418 if(r instanceof self.Deferred){ 
    1419 _186=r; 
    1420 }else{ 
    1421 if(r instanceof Error){ 
    1422 _186=self.fail(r); 
    1423 }else{ 
    1424 _186=self.succeed(r); 
    1425 } 
    1426 } 
    1427 } 
    1428 catch(e){ 
    1429 _186=self.fail(e); 
    1430 } 
    1431 return _186; 
    1432 }; 
    1433 MochiKit.Async.EXPORT=["AlreadyCalledError","CancelledError","BrowserComplianceError","GenericError","XMLHttpRequestError","Deferred","succeed","fail","getXMLHttpRequest","doSimpleXMLHttpRequest","loadJSONDoc","wait","callLater","sendXMLHttpRequest","DeferredLock","DeferredList","gatherResults","maybeDeferred","doXHR"]; 
    1434 MochiKit.Async.EXPORT_OK=["evalJSONRequest"]; 
    1435 MochiKit.Async.__new__=function(){ 
    1436 var m=MochiKit.Base; 
    1437 var ne=m.partial(m._newNamedError,this); 
    1438 ne("AlreadyCalledError",function(_189){ 
    1439 this.deferred=_189; 
    1440 }); 
    1441 ne("CancelledError",function(_190){ 
    1442 this.deferred=_190; 
    1443 }); 
    1444 ne("BrowserComplianceError",function(msg){ 
    1445 this.message=msg; 
    1446 }); 
    1447 ne("GenericError",function(msg){ 
    1448 this.message=msg; 
    1449 }); 
    1450 ne("XMLHttpRequestError",function(req,msg){ 
    1451 this.req=req; 
    1452 this.message=msg; 
    1453 try{ 
    1454 this.number=req.status; 
    1455 } 
    1456 catch(e){ 
    1457 } 
    1458 }); 
    1459 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
    1460 m.nameFunctions(this); 
    1461 }; 
    1462 MochiKit.Async.__new__(); 
    1463 MochiKit.Base._exportSymbols(this,MochiKit.Async); 
    1464 if(typeof (dojo)!="undefined"){ 
    1465 dojo.provide("MochiKit.DOM"); 
    1466 dojo.require("MochiKit.Base"); 
    1467 } 
    1468 if(typeof (JSAN)!="undefined"){ 
    1469 JSAN.use("MochiKit.Base",[]); 
    1470 } 
    1471 try{ 
    1472 if(typeof (MochiKit.Base)=="undefined"){ 
    1473 throw ""; 
    1474 } 
    1475 } 
    1476 catch(e){ 
    1477 throw "MochiKit.DOM depends on MochiKit.Base!"; 
    1478 } 
    1479 if(typeof (MochiKit.DOM)=="undefined"){ 
    1480 MochiKit.DOM={}; 
    1481 } 
    1482 MochiKit.DOM.NAME="MochiKit.DOM"; 
    1483 MochiKit.DOM.VERSION="1.4"; 
    1484 MochiKit.DOM.__repr__=function(){ 
    1485 return "["+this.NAME+" "+this.VERSION+"]"; 
    1486 }; 
    1487 MochiKit.DOM.toString=function(){ 
    1488 return this.__repr__(); 
    1489 }; 
    1490 MochiKit.DOM.EXPORT=["removeEmptyTextNodes","formContents","currentWindow","currentDocument","withWindow","withDocument","registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","isChildNode","getNodeAttribute","setNodeAttribute","updateNodeAttributes","appendChildNodes","replaceChildNodes","removeElement","swapDOM","BUTTON","TT","PRE","H1","H2","H3","BR","CANVAS","HR","LABEL","TEXTAREA","FORM","STRONG","SELECT","OPTION","OPTGROUP","LEGEND","FIELDSET","P","UL","OL","LI","TD","TR","THEAD","TBODY","TFOOT","TABLE","TH","INPUT","SPAN","A","DIV","IMG","getElement","$","getElementsByTagAndClassName","addToCallStack","addLoadEvent","focusOnLoad","setElementClass","toggleElementClass","addElementClass","removeElementClass","swapElementClass","hasElementClass","escapeHTML","toHTML","emitHTML","scrapeText"]; 
    1491 MochiKit.DOM.EXPORT_OK=["domConverters"]; 
    1492 MochiKit.DOM.DEPRECATED=[["computedStyle","MochiKit.Style.computedStyle","1.4"],["elementDimensions","MochiKit.Style.getElementDimensions","1.4"],["elementPosition","MochiKit.Style.getElementPosition","1.4"],["hideElement","MochiKit.Style.hideElement","1.4"],["setElementDimensions","MochiKit.Style.setElementDimensions","1.4"],["setElementPosition","MochiKit.Style.setElementPosition","1.4"],["setDisplayForElement","MochiKit.Style.setDisplayForElement","1.4"],["setOpacity","MochiKit.Style.setOpacity","1.4"],["showElement","MochiKit.Style.showElement","1.4"],["Coordinates","MochiKit.Style.Coordinates","1.4"],["Dimensions","MochiKit.Style.Dimensions","1.4"]]; 
    1493 MochiKit.DOM.getViewportDimensions=new Function(""+"if (!MochiKit[\"Style\"]) {"+"    throw new Error(\"This function has been deprecated and depends on MochiKit.Style.\");"+"}"+"return MochiKit.Style.getViewportDimensions.apply(this, arguments);"); 
    1494 MochiKit.Base.update(MochiKit.DOM,{currentWindow:function(){ 
    1495 return MochiKit.DOM._window; 
    1496 },currentDocument:function(){ 
    1497 return MochiKit.DOM._document; 
    1498 },withWindow:function(win,func){ 
    1499 var self=MochiKit.DOM; 
    1500 var _193=self._document; 
    1501 var _194=self._win; 
    1502 var rval; 
    1503 try{ 
    1504 self._window=win; 
    1505 self._document=win.document; 
    1506 rval=func(); 
    1507 } 
    1508 catch(e){ 
    1509 self._window=_194; 
    1510 self._document=_193; 
    1511 throw e; 
    1512 } 
    1513 self._window=_194; 
    1514 self._document=_193; 
    1515 return rval; 
    1516 },formContents:function(elem){ 
    1517 var _196=[]; 
    1518 var _197=[]; 
    1519 var m=MochiKit.Base; 
    1520 var self=MochiKit.DOM; 
    1521 if(typeof (elem)=="undefined"||elem===null){ 
    1522 elem=self._document; 
    1523 }else{ 
    1524 elem=self.getElement(elem); 
    1525 } 
    1526 m.nodeWalk(elem,function(elem){ 
    1527 var name=elem.name; 
    1528 if(m.isNotEmpty(name)){ 
    1529 var _198=elem.tagName.toUpperCase(); 
    1530 if(_198==="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){ 
    1531 return null; 
    1532 } 
    1533 if(_198==="SELECT"){ 
    1534 if(elem.type=="select-one"){ 
    1535 if(elem.selectedIndex>=0){ 
    1536 var opt=elem.options[elem.selectedIndex]; 
    1537 _196.push(name); 
    1538 _197.push(opt.value); 
    1539 return null; 
    1540 } 
    1541 _196.push(name); 
    1542 _197.push(""); 
    1543 return null; 
    1544 }else{ 
    1545 var opts=elem.options; 
    1546 if(!opts.length){ 
    1547 _196.push(name); 
    1548 _197.push(""); 
    1549 return null; 
    1550 } 
    1551 for(var i=0;i<opts.length;i++){ 
    1552 var opt=opts[i]; 
    1553 if(!opt.selected){ 
    1554 continue; 
    1555 } 
    1556 _196.push(name); 
    1557 _197.push(opt.value); 
    1558 } 
    1559 return null; 
    1560 } 
    1561 } 
    1562 if(_198==="FORM"||_198==="P"||_198==="SPAN"||_198==="DIV"){ 
    1563 return elem.childNodes; 
    1564 } 
    1565 _196.push(name); 
    1566 _197.push(elem.value||""); 
    1567 return null; 
    1568 } 
    1569 return elem.childNodes; 
    1570 }); 
    1571 return [_196,_197]; 
    1572 },withDocument:function(doc,func){ 
    1573 var self=MochiKit.DOM; 
    1574 var _201=self._document; 
    1575 var rval; 
    1576 try{ 
    1577 self._document=doc; 
    1578 rval=func(); 
    1579 } 
    1580 catch(e){ 
    1581 self._document=_201; 
    1582 throw e; 
    1583 } 
    1584 self._document=_201; 
    1585 return rval; 
    1586 },registerDOMConverter:function(name,_202,wrap,_203){ 
    1587 MochiKit.DOM.domConverters.register(name,_202,wrap,_203); 
    1588 },coerceToDOM:function(node,ctx){ 
    1589 var m=MochiKit.Base; 
    1590 var im=MochiKit.Iter; 
    1591 var self=MochiKit.DOM; 
    1592 if(im){ 
    1593 var iter=im.iter; 
    1594 var _207=im.repeat; 
    1595 var map=m.map; 
    1596 } 
    1597 var _209=self.domConverters; 
    1598 var _210=arguments.callee; 
    1599 var _211=m.NotFound; 
    1600 while(true){ 
    1601 if(typeof (node)=="undefined"||node===null){ 
    1602 return null; 
    1603 } 
    1604 if(typeof (node.nodeType)!="undefined"&&node.nodeType>0){ 
    1605 return node; 
    1606 } 
    1607 if(typeof (node)=="number"||typeof (node)=="boolean"){ 
    1608 node=node.toString(); 
    1609 } 
    1610 if(typeof (node)=="string"){ 
    1611 return self._document.createTextNode(node); 
    1612 } 
    1613 if(typeof (node.__dom__)=="function"){ 
    1614 node=node.__dom__(ctx); 
    1615 continue; 
    1616 } 
    1617 if(typeof (node.dom)=="function"){ 
    1618 node=node.dom(ctx); 
    1619 continue; 
    1620 } 
    1621 if(typeof (node)=="function"){ 
    1622 node=node.apply(ctx,[ctx]); 
    1623 continue; 
    1624 } 
    1625 if(im){ 
    1626 var _212=null; 
    1627 try{ 
    1628 _212=iter(node); 
    1629 } 
    1630 catch(e){ 
    1631 } 
    1632 if(_212){ 
    1633 return map(_210,_212,_207(ctx)); 
    1634 } 
    1635 } 
    1636 try{ 
    1637 node=_209.match(node,ctx); 
    1638 continue; 
    1639 } 
    1640 catch(e){ 
    1641 if(e!=_211){ 
    1642 throw e; 
    1643 } 
    1644 } 
    1645 return self._document.createTextNode(node.toString()); 
    1646 } 
    1647 return undefined; 
    1648 },isChildNode:function(node,_213){ 
    1649 var self=MochiKit.DOM; 
    1650 if(typeof (node)=="string"){ 
    1651 node=self.getElement(node); 
    1652 } 
    1653 if(typeof (_213)=="string"){ 
    1654 _213=self.getElement(_213); 
    1655 } 
    1656 if(node===_213){ 
    1657 return true; 
    1658 } 
    1659 while(node&&node.tagName.toUpperCase()!="BODY"){ 
    1660 node=node.parentNode; 
    1661 if(node===_213){ 
    1662 return true; 
    1663 } 
    1664 } 
    1665 return false; 
    1666 },setNodeAttribute:function(node,attr,_215){ 
    1667 var o={}; 
    1668 o[attr]=_215; 
    1669 try{ 
    1670 return MochiKit.DOM.updateNodeAttributes(node,o); 
    1671 } 
    1672 catch(e){ 
    1673 } 
    1674 return null; 
    1675 },getNodeAttribute:function(node,attr){ 
    1676 var self=MochiKit.DOM; 
    1677 var _216=self.attributeArray.renames[attr]; 
    1678 node=self.getElement(node); 
    1679 try{ 
    1680 if(_216){ 
    1681 return node[_216]; 
    1682 } 
    1683 return node.getAttribute(attr); 
    1684 } 
    1685 catch(e){ 
    1686 } 
    1687 return null; 
    1688 },updateNodeAttributes:function(node,_217){ 
    1689 var elem=node; 
    1690 var self=MochiKit.DOM; 
    1691 if(typeof (node)=="string"){ 
    1692 elem=self.getElement(node); 
    1693 } 
    1694 if(_217){ 
    1695 var _218=MochiKit.Base.updatetree; 
    1696 if(self.attributeArray.compliant){ 
    1697 for(var k in _217){ 
    1698 var v=_217[k]; 
    1699 if(typeof (v)=="object"&&typeof (elem[k])=="object"){ 
    1700 _218(elem[k],v); 
    1701 }else{ 
    1702 if(k.substring(0,2)=="on"){ 
    1703 if(typeof (v)=="string"){ 
    1704 v=new Function(v); 
    1705 } 
    1706 elem[k]=v; 
    1707 }else{ 
    1708 elem.setAttribute(k,v); 
    1709 } 
    1710 } 
    1711 } 
    1712 }else{ 
    1713 var _219=self.attributeArray.renames; 
    1714 for(k in _217){ 
    1715 v=_217[k]; 
    1716 var _220=_219[k]; 
    1717 if(k=="style"&&typeof (v)=="string"){ 
    1718 elem.style.cssText=v; 
    1719 }else{ 
    1720 if(typeof (_220)=="string"){ 
    1721 elem[_220]=v; 
    1722 }else{ 
    1723 if(typeof (elem[k])=="object"&&typeof (v)=="object"){ 
    1724 _218(elem[k],v); 
    1725 }else{ 
    1726 if(k.substring(0,2)=="on"){ 
    1727 if(typeof (v)=="string"){ 
    1728 v=new Function(v); 
    1729 } 
    1730 elem[k]=v; 
    1731 }else{ 
    1732 elem.setAttribute(k,v); 
    1733 } 
    1734 } 
    1735 } 
    1736 } 
    1737 } 
    1738 } 
    1739 } 
    1740 return elem; 
    1741 },appendChildNodes:function(node){ 
    1742 var elem=node; 
    1743 var self=MochiKit.DOM; 
    1744 if(typeof (node)=="string"){ 
    1745 elem=self.getElement(node); 
    1746 } 
    1747 var _221=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; 
    1748 var _222=MochiKit.Base.concat; 
    1749 while(_221.length){ 
    1750 var n=_221.shift(); 
    1751 if(typeof (n)=="undefined"||n===null){ 
    1752 }else{ 
    1753 if(typeof (n.nodeType)=="number"){ 
    1754 elem.appendChild(n); 
    1755 }else{ 
    1756 _221=_222(n,_221); 
    1757 } 
    1758 } 
    1759 } 
    1760 return elem; 
    1761 },replaceChildNodes:function(node){ 
    1762 var elem=node; 
    1763 var self=MochiKit.DOM; 
    1764 if(typeof (node)=="string"){ 
    1765 elem=self.getElement(node); 
    1766 arguments[0]=elem; 
    1767 } 
    1768 var _223; 
    1769 while((_223=elem.firstChild)){ 
    1770 elem.removeChild(_223); 
    1771 } 
    1772 if(arguments.length<2){ 
    1773 return elem; 
    1774 }else{ 
    1775 return self.appendChildNodes.apply(this,arguments); 
    1776 } 
    1777 },createDOM:function(name,_224){ 
    1778 var elem; 
    1779 var self=MochiKit.DOM; 
    1780 var m=MochiKit.Base; 
    1781 if(typeof (_224)=="string"||typeof (_224)=="number"){ 
    1782 var args=m.extend([name,null],arguments,1); 
    1783 return arguments.callee.apply(this,args); 
    1784 } 
    1785 if(typeof (name)=="string"){ 
    1786 var _225=self._xhtml; 
    1787 if(_224&&!self.attributeArray.compliant){ 
    1788 var _226=""; 
    1789 if("name" in _224){ 
    1790 _226+=" name=\""+self.escapeHTML(_224.name)+"\""; 
    1791 } 
    1792 if(name=="input"&&"type" in _224){ 
    1793 _226+=" type=\""+self.escapeHTML(_224.type)+"\""; 
    1794 } 
    1795 if(_226){ 
    1796 name="<"+name+_226+">"; 
    1797 _225=false; 
    1798 } 
    1799 } 
    1800 var d=self._document; 
    1801 if(_225&&d===document){ 
    1802 elem=d.createElementNS("http://www.w3.org/1999/xhtml",name); 
    1803 }else{ 
    1804 elem=d.createElement(name); 
    1805 } 
    1806 }else{ 
    1807 elem=name; 
    1808 } 
    1809 if(_224){ 
    1810 self.updateNodeAttributes(elem,_224); 
    1811 } 
    1812 if(arguments.length<=2){ 
    1813 return elem; 
    1814 }else{ 
    1815 var args=m.extend([elem],arguments,2); 
    1816 return self.appendChildNodes.apply(this,args); 
    1817 } 
    1818 },createDOMFunc:function(){ 
    1819 var m=MochiKit.Base; 
    1820 return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments)); 
    1821 },removeElement:function(elem){ 
    1822 var e=MochiKit.DOM.getElement(elem); 
    1823 e.parentNode.removeChild(e); 
    1824 return e; 
    1825 },swapDOM:function(dest,src){ 
    1826 var self=MochiKit.DOM; 
    1827 dest=self.getElement(dest); 
    1828 var _229=dest.parentNode; 
    1829 if(src){ 
    1830 src=self.getElement(src); 
    1831 _229.replaceChild(src,dest); 
    1832 }else{ 
    1833 _229.removeChild(dest); 
    1834 } 
    1835 return src; 
    1836 },getElement:function(id){ 
    1837 var self=MochiKit.DOM; 
    1838 if(arguments.length==1){ 
    1839 return ((typeof (id)=="string")?self._document.getElementById(id):id); 
    1840 }else{ 
    1841 return MochiKit.Base.map(self.getElement,arguments); 
    1842 } 
    1843 },getElementsByTagAndClassName:function(_231,_232,_233){ 
    1844 var self=MochiKit.DOM; 
    1845 if(typeof (_231)=="undefined"||_231===null){ 
    1846 _231="*"; 
    1847 } 
    1848 if(typeof (_233)=="undefined"||_233===null){ 
    1849 _233=self._document; 
    1850 } 
    1851 _233=self.getElement(_233); 
    1852 var _234=(_233.getElementsByTagName(_231)||self._document.all); 
    1853 if(typeof (_232)=="undefined"||_232===null){ 
    1854 return MochiKit.Base.extend(null,_234); 
    1855 } 
    1856 var _235=[]; 
    1857 for(var i=0;i<_234.length;i++){ 
    1858 var _236=_234[i]; 
    1859 var cls=_236.className; 
    1860 if(!cls){ 
    1861 continue; 
    1862 } 
    1863 var _238=cls.split(" "); 
    1864 for(var j=0;j<_238.length;j++){ 
    1865 if(_238[j]==_232){ 
    1866 _235.push(_236); 
    1867 break; 
    1868 } 
    1869 } 
    1870 } 
    1871 return _235; 
    1872 },_newCallStack:function(path,once){ 
    1873 var rval=function(){ 
    1874 var _241=arguments.callee.callStack; 
    1875 for(var i=0;i<_241.length;i++){ 
    1876 if(_241[i].apply(this,arguments)===false){ 
    1877 break; 
    1878 } 
    1879 } 
    1880 if(once){ 
    1881 try{ 
    1882 this[path]=null; 
    1883 } 
    1884 catch(e){ 
    1885 } 
    1886 } 
    1887 }; 
    1888 rval.callStack=[]; 
    1889 return rval; 
    1890 },addToCallStack:function(_242,path,func,once){ 
    1891 var self=MochiKit.DOM; 
    1892 var _243=_242[path]; 
    1893 var _244=_243; 
    1894 if(!(typeof (_243)=="function"&&typeof (_243.callStack)=="object"&&_243.callStack!==null)){ 
    1895 _244=self._newCallStack(path,once); 
    1896 if(typeof (_243)=="function"){ 
    1897 _244.callStack.push(_243); 
    1898 } 
    1899 _242[path]=_244; 
    1900 } 
    1901 _244.callStack.push(func); 
    1902 },addLoadEvent:function(func){ 
    1903 var self=MochiKit.DOM; 
    1904 self.addToCallStack(self._window,"onload",func,true); 
    1905 },focusOnLoad:function(_245){ 
    1906 var self=MochiKit.DOM; 
    1907 self.addLoadEvent(function(){ 
    1908 _245=self.getElement(_245); 
    1909 if(_245){ 
    1910 _245.focus(); 
    1911 } 
    1912 }); 
    1913 },setElementClass:function(_246,_247){ 
    1914 var self=MochiKit.DOM; 
    1915 var obj=self.getElement(_246); 
    1916 if(self.attributeArray.compliant){ 
    1917 obj.setAttribute("class",_247); 
    1918 }else{ 
    1919 obj.setAttribute("className",_247); 
    1920 } 
    1921 },toggleElementClass:function(_248){ 
    1922 var self=MochiKit.DOM; 
    1923 for(var i=1;i<arguments.length;i++){ 
    1924 var obj=self.getElement(arguments[i]); 
    1925 if(!self.addElementClass(obj,_248)){ 
    1926 self.removeElementClass(obj,_248); 
    1927 } 
    1928 } 
    1929 },addElementClass:function(_249,_250){ 
    1930 var self=MochiKit.DOM; 
    1931 var obj=self.getElement(_249); 
    1932 var cls=obj.className; 
    1933 if(cls==undefined||cls.length===0){ 
    1934 self.setElementClass(obj,_250); 
    1935 return true; 
    1936 } 
    1937 if(cls==_250){ 
    1938 return false; 
    1939 } 
    1940 var _251=cls.split(" "); 
    1941 for(var i=0;i<_251.length;i++){ 
    1942 if(_251[i]==_250){ 
    1943 return false; 
    1944 } 
    1945 } 
    1946 self.setElementClass(obj,cls+" "+_250); 
    1947 return true; 
    1948 },removeElementClass:function(_252,_253){ 
    1949 var self=MochiKit.DOM; 
    1950 var obj=self.getElement(_252); 
    1951 var cls=obj.className; 
    1952 if(cls==undefined||cls.length===0){ 
    1953 return false; 
    1954 } 
    1955 if(cls==_253){ 
    1956 self.setElementClass(obj,""); 
    1957 return true; 
    1958 } 
    1959 var _254=cls.split(" "); 
    1960 for(var i=0;i<_254.length;i++){ 
    1961 if(_254[i]==_253){ 
    1962 _254.splice(i,1); 
    1963 self.setElementClass(obj,_254.join(" ")); 
    1964 return true; 
    1965 } 
    1966 } 
    1967 return false; 
    1968 },swapElementClass:function(_255,_256,_257){ 
    1969 var obj=MochiKit.DOM.getElement(_255); 
    1970 var res=MochiKit.DOM.removeElementClass(obj,_256); 
    1971 if(res){ 
    1972 MochiKit.DOM.addElementClass(obj,_257); 
    1973 } 
    1974 return res; 
    1975 },hasElementClass:function(_258,_259){ 
    1976 var obj=MochiKit.DOM.getElement(_258); 
    1977 var cls=obj.className; 
    1978 if(!cls){ 
    1979 return false; 
    1980 } 
    1981 var _260=cls.split(" "); 
    1982 for(var i=1;i<arguments.length;i++){ 
    1983 var good=false; 
    1984 for(var j=0;j<_260.length;j++){ 
    1985 if(_260[j]==arguments[i]){ 
    1986 good=true; 
    1987 break; 
    1988 } 
    1989 } 
    1990 if(!good){ 
    1991 return false; 
    1992 } 
    1993 } 
    1994 return true; 
    1995 },escapeHTML:function(s){ 
    1996 return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"); 
    1997 },toHTML:function(dom){ 
    1998 return MochiKit.DOM.emitHTML(dom).join(""); 
    1999 },emitHTML:function(dom,lst){ 
    2000 if(typeof (lst)=="undefined"||lst===null){ 
    2001 lst=[]; 
    2002 } 
    2003 var _264=[dom]; 
    2004 var self=MochiKit.DOM; 
    2005 var _265=self.escapeHTML; 
    2006 var _266=self.attributeArray; 
    2007 while(_264.length){ 
    2008 dom=_264.pop(); 
    2009 if(typeof (dom)=="string"){ 
    2010 lst.push(dom); 
    2011 }else{ 
    2012 if(dom.nodeType==1){ 
    2013 lst.push("<"+dom.tagName.toLowerCase()); 
    2014 var _267=[]; 
    2015 var _268=_266(dom); 
    2016 for(var i=0;i<_268.length;i++){ 
    2017 var a=_268[i]; 
    2018 _267.push([" ",a.name,"=\"",_265(a.value),"\""]); 
    2019 } 
    2020 _267.sort(); 
    2021 for(i=0;i<_267.length;i++){ 
    2022 var _269=_267[i]; 
    2023 for(var j=0;j<_269.length;j++){ 
    2024 lst.push(_269[j]); 
    2025 } 
    2026 } 
    2027 if(dom.hasChildNodes()){ 
    2028 lst.push(">"); 
    2029 _264.push("</"+dom.tagName.toLowerCase()+">"); 
    2030 var _270=dom.childNodes; 
    2031 for(i=_270.length-1;i>=0;i--){ 
    2032 _264.push(_270[i]); 
    2033 } 
    2034 }else{ 
    2035 lst.push("/>"); 
    2036 } 
    2037 }else{ 
    2038 if(dom.nodeType==3){ 
    2039 lst.push(_265(dom.nodeValue)); 
    2040 } 
    2041 } 
    2042 } 
    2043 } 
    2044 return lst; 
    2045 },scrapeText:function(node,_271){ 
    2046 var rval=[]; 
    2047 (function(node){ 
    2048 var cn=node.childNodes; 
    2049 if(cn){ 
    2050 for(var i=0;i<cn.length;i++){ 
    2051 arguments.callee.call(this,cn[i]); 
    2052 } 
    2053 } 
    2054 var _273=node.nodeValue; 
    2055 if(typeof (_273)=="string"){ 
    2056 rval.push(_273); 
    2057 } 
    2058 })(MochiKit.DOM.getElement(node)); 
    2059 if(_271){ 
    2060 return rval; 
    2061 }else{ 
    2062 return rval.join(""); 
    2063 } 
    2064 },removeEmptyTextNodes:function(_274){ 
    2065 _274=MochiKit.DOM.getElement(_274); 
    2066 for(var i=0;i<_274.childNodes.length;i++){ 
    2067 var node=_274.childNodes[i]; 
    2068 if(node.nodeType==3&&!/\S/.test(node.nodeValue)){ 
    2069 node.parentNode.removeChild(node); 
    2070 } 
    2071 } 
    2072 },__new__:function(win){ 
    2073 var m=MochiKit.Base; 
    2074 if(typeof (document)!="undefined"){ 
    2075 this._document=document; 
    2076 var _275="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
    2077 this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===_275); 
    2078 }else{ 
    2079 if(MochiKit.MockDOM){ 
    2080 this._document=MochiKit.MockDOM.document; 
    2081 } 
    2082 } 
    2083 this._window=win; 
    2084 this.domConverters=new m.AdapterRegistry(); 
    2085 var _276=this._document.createElement("span"); 
    2086 var _277; 
    2087 if(_276&&_276.attributes&&_276.attributes.length>0){ 
    2088 var _278=m.filter; 
    2089 _277=function(node){ 
    2090 return _278(_277.ignoreAttrFilter,node.attributes); 
    2091 }; 
    2092 _277.ignoreAttr={}; 
    2093 var _279=_276.attributes; 
    2094 var _280=_277.ignoreAttr; 
    2095 for(var i=0;i<_279.length;i++){ 
    2096 var a=_279[i]; 
    2097 _280[a.name]=a.value; 
    2098 } 
    2099 _277.ignoreAttrFilter=function(a){ 
    2100 return (_277.ignoreAttr[a.name]!=a.value); 
    2101 }; 
    2102 _277.compliant=false; 
    2103 _277.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor"}; 
    2104 }else{ 
    2105 _277=function(node){ 
    2106 return node.attributes; 
    2107 }; 
    2108 _277.compliant=true; 
    2109 _277.renames={}; 
    2110 } 
    2111 this.attributeArray=_277; 
    2112 var _281=function(_282,arr){ 
    2113 var _283=arr[1].split("."); 
    2114 var str=""; 
    2115 var obj={}; 
    2116 str+="if (!MochiKit."+_283[1]+") { throw new Error(\""; 
    2117 str+="This function has been deprecated and depends on MochiKit."; 
    2118 str+=_283[1]+".\");}"; 
    2119 str+="return MochiKit."+_283[1]+"."+arr[0]; 
    2120 str+=".apply(this, arguments);"; 
    2121 obj[_283[2]]=new Function(str); 
    2122 MochiKit.Base.update(MochiKit[_282],obj); 
    2123 }; 
    2124 for(var i;i<MochiKit.DOM.DEPRECATED.length;i++){ 
    2125 _281("DOM",MochiKit.DOM.DEPRECATED[i]); 
    2126 } 
    2127 var _285=this.createDOMFunc; 
    2128 this.UL=_285("ul"); 
    2129 this.OL=_285("ol"); 
    2130 this.LI=_285("li"); 
    2131 this.TD=_285("td"); 
    2132 this.TR=_285("tr"); 
    2133 this.TBODY=_285("tbody"); 
    2134 this.THEAD=_285("thead"); 
    2135 this.TFOOT=_285("tfoot"); 
    2136 this.TABLE=_285("table"); 
    2137 this.TH=_285("th"); 
    2138 this.INPUT=_285("input"); 
    2139 this.SPAN=_285("span"); 
    2140 this.A=_285("a"); 
    2141 this.DIV=_285("div"); 
    2142 this.IMG=_285("img"); 
    2143 this.BUTTON=_285("button"); 
    2144 this.TT=_285("tt"); 
    2145 this.PRE=_285("pre"); 
    2146 this.H1=_285("h1"); 
    2147 this.H2=_285("h2"); 
    2148 this.H3=_285("h3"); 
    2149 this.BR=_285("br"); 
    2150 this.HR=_285("hr"); 
    2151 this.LABEL=_285("label"); 
    2152 this.TEXTAREA=_285("textarea"); 
    2153 this.FORM=_285("form"); 
    2154 this.P=_285("p"); 
    2155 this.SELECT=_285("select"); 
    2156 this.OPTION=_285("option"); 
    2157 this.OPTGROUP=_285("optgroup"); 
    2158 this.LEGEND=_285("legend"); 
    2159 this.FIELDSET=_285("fieldset"); 
    2160 this.STRONG=_285("strong"); 
    2161 this.CANVAS=_285("canvas"); 
    2162 this.$=this.getElement; 
    2163 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
    2164 m.nameFunctions(this); 
    2165 }}); 
    2166 MochiKit.DOM.__new__(((typeof (window)=="undefined")?this:window)); 
    2167 if(MochiKit.__export__){ 
    2168 withWindow=MochiKit.DOM.withWindow; 
    2169 withDocument=MochiKit.DOM.withDocument; 
    2170 } 
    2171 MochiKit.Base._exportSymbols(this,MochiKit.DOM); 
    2172 if(typeof (dojo)!="undefined"){ 
    2173 dojo.provide("MochiKit.Iter"); 
    2174 dojo.require("MochiKit.Base"); 
    2175 } 
    2176 if(typeof (JSAN)!="undefined"){ 
    2177 JSAN.use("MochiKit.Base",[]); 
    2178 } 
    2179 try{ 
    2180 if(typeof (MochiKit.Base)=="undefined"){ 
    2181 throw ""; 
    2182 } 
    2183 } 
    2184 catch(e){ 
    2185 throw "MochiKit.Iter depends on MochiKit.Base!"; 
    2186 } 
    2187 if(typeof (MochiKit.Iter)=="undefined"){ 
    2188 MochiKit.Iter={}; 
    2189 } 
     1094MochiKit.Base._deps("Iter",["Base"]); 
    21901095MochiKit.Iter.NAME="MochiKit.Iter"; 
    2191 MochiKit.Iter.VERSION="1.4"; 
     1096MochiKit.Iter.VERSION="1.4.2"; 
    21921097MochiKit.Base.update(MochiKit.Iter,{__repr__:function(){ 
    21931098return "["+this.NAME+" "+this.VERSION+"]"; 
    21941099},toString:function(){ 
    21951100return this.__repr__(); 
    2196 },registerIteratorFactory:function(name,_286,_287,_288){ 
    2197 MochiKit.Iter.iteratorRegistry.register(name,_286,_287,_288); 
    2198 },iter:function(_289,_290){ 
     1101},registerIteratorFactory:function(name,_15c,_15d,_15e){ 
     1102MochiKit.Iter.iteratorRegistry.register(name,_15c,_15d,_15e); 
     1103},isIterable:function(o){ 
     1104return o!=null&&(typeof (o.next)=="function"||typeof (o.iter)=="function"); 
     1105},iter:function(_160,_161){ 
    21991106var self=MochiKit.Iter; 
    22001107if(arguments.length==2){ 
    22011108return self.takewhile(function(a){ 
    2202 return a!=_290; 
    2203 },_289); 
    2204 } 
    2205 if(typeof (_289.next)=="function"){ 
    2206 return _289; 
    2207 }else{ 
    2208 if(typeof (_289.iter)=="function"){ 
    2209 return _289.iter(); 
     1109return a!=_161; 
     1110},_160); 
     1111} 
     1112if(typeof (_160.next)=="function"){ 
     1113return _160; 
     1114}else{ 
     1115if(typeof (_160.iter)=="function"){ 
     1116return _160.iter(); 
    22101117} 
    22111118} 
    22121119try{ 
    2213 return self.iteratorRegistry.match(_289); 
     1120return self.iteratorRegistry.match(_160); 
    22141121} 
    22151122catch(e){ 
    22161123var m=MochiKit.Base; 
    22171124if(e==m.NotFound){ 
    2218 e=new TypeError(typeof (_289)+": "+m.repr(_289)+" is not iterable"); 
     1125e=new TypeError(typeof (_160)+": "+m.repr(_160)+" is not iterable"); 
    22191126} 
    22201127throw e; 
     
    22321139var m=MochiKit.Base; 
    22331140var lst=[]; 
    2234 var _292=self.iter(p); 
     1141var _16b=self.iter(p); 
    22351142return {repr:function(){ 
    22361143return "cycle(...)"; 
    22371144},toString:m.forwardCall("repr"),next:function(){ 
    22381145try{ 
    2239 var rval=_292.next(); 
     1146var rval=_16b.next(); 
    22401147lst.push(rval); 
    22411148return rval; 
     
    22771184return elem; 
    22781185}}; 
    2279 },next:function(_293){ 
    2280 return _293.next(); 
     1186},next:function(_171){ 
     1187return _171.next(); 
    22811188},izip:function(p,q){ 
    22821189var m=MochiKit.Base; 
    22831190var self=MochiKit.Iter; 
    22841191var next=self.next; 
    2285 var _296=m.map(self.iter,arguments); 
     1192var _177=m.map(self.iter,arguments); 
    22861193return {repr:function(){ 
    22871194return "izip(...)"; 
    22881195},toString:m.forwardCall("repr"),next:function(){ 
    2289 return m.map(next,_296); 
     1196return m.map(next,_177); 
    22901197}}; 
    22911198},ifilter:function(pred,seq){ 
     
    23271234var m=MochiKit.Base; 
    23281235seq=self.iter(seq); 
    2329 var _299=0; 
     1236var _183=0; 
    23301237var stop=0; 
    23311238var step=1; 
     
    23351242}else{ 
    23361243if(arguments.length==3){ 
    2337 _299=arguments[1]; 
     1244_183=arguments[1]; 
    23381245stop=arguments[2]; 
    23391246}else{ 
    2340 _299=arguments[1]; 
     1247_183=arguments[1]; 
    23411248stop=arguments[2]; 
    23421249step=arguments[3]; 
     
    23441251} 
    23451252return {repr:function(){ 
    2346 return "islice("+["...",_299,stop,step].join(", ")+")"; 
     1253return "islice("+["...",_183,stop,step].join(", ")+")"; 
    23471254},toString:m.forwardCall("repr"),next:function(){ 
    23481255var rval; 
    2349 while(i<_299){ 
     1256while(i<_183){ 
    23501257rval=seq.next(); 
    23511258i++; 
    23521259} 
    2353 if(_299>=stop){ 
     1260if(_183>=stop){ 
    23541261throw self.StopIteration; 
    23551262} 
    2356 _299+=step; 
     1263_183+=step; 
    23571264return rval; 
    23581265}}; 
     
    23601267var m=MochiKit.Base; 
    23611268var self=MochiKit.Iter; 
    2362 var _303=m.map(self.iter,m.extend(null,arguments,1)); 
     1269var _18d=m.map(self.iter,m.extend(null,arguments,1)); 
    23631270var map=m.map; 
    23641271var next=self.next; 
     
    23661273return "imap(...)"; 
    23671274},toString:m.forwardCall("repr"),next:function(){ 
    2368 return fun.apply(this,map(next,_303)); 
     1275return fun.apply(this,map(next,_18d)); 
    23691276}}; 
    23701277},applymap:function(fun,seq,self){ 
     
    23821289return self.iter(arguments[0]); 
    23831290} 
    2384 var _304=m.map(self.iter,arguments); 
     1291var _198=m.map(self.iter,arguments); 
    23851292return {repr:function(){ 
    23861293return "chain(...)"; 
    23871294},toString:m.forwardCall("repr"),next:function(){ 
    2388 while(_304.length>1){ 
     1295while(_198.length>1){ 
    23891296try{ 
    2390 return _304[0].next(); 
     1297var _199=_198[0].next(); 
     1298return _199; 
    23911299} 
    23921300catch(e){ 
     
    23941302throw e; 
    23951303} 
    2396 _304.shift(); 
    2397 } 
    2398 } 
    2399 if(_304.length==1){ 
    2400 var arg=_304.shift(); 
     1304_198.shift(); 
     1305var _199=_198[0].next(); 
     1306return _199; 
     1307} 
     1308} 
     1309if(_198.length==1){ 
     1310var arg=_198.shift(); 
    24011311this.next=m.bind("next",arg); 
    24021312return this.next(); 
     
    24351345return rval; 
    24361346}}; 
    2437 },_tee:function(_306,sync,_308){ 
    2438 sync.pos[_306]=-1; 
     1347},_tee:function(_1a4,sync,_1a6){ 
     1348sync.pos[_1a4]=-1; 
    24391349var m=MochiKit.Base; 
    2440 var _309=m.listMin; 
     1350var _1a8=m.listMin; 
    24411351return {repr:function(){ 
    2442 return "tee("+_306+", ...)"; 
     1352return "tee("+_1a4+", ...)"; 
    24431353},toString:m.forwardCall("repr"),next:function(){ 
    24441354var rval; 
    2445 var i=sync.pos[_306]; 
     1355var i=sync.pos[_1a4]; 
    24461356if(i==sync.max){ 
    2447 rval=_308.next(); 
     1357rval=_1a6.next(); 
    24481358sync.deque.push(rval); 
    24491359sync.max+=1; 
    2450 sync.pos[_306]+=1; 
     1360sync.pos[_1a4]+=1; 
    24511361}else{ 
    24521362rval=sync.deque[i-sync.min]; 
    2453 sync.pos[_306]+=1; 
    2454 if(i==sync.min&&_309(sync.pos)!=sync.min){ 
     1363sync.pos[_1a4]+=1; 
     1364if(i==sync.min&&_1a8(sync.pos)!=sync.min){ 
    24551365sync.min+=1; 
    24561366sync.deque.shift(); 
     
    24591369return rval; 
    24601370}}; 
    2461 },tee:function(_310,n){ 
     1371},tee:function(_1ab,n){ 
    24621372var rval=[]; 
    24631373var sync={"pos":[],"deque":[],"max":-1,"min":-1}; 
     
    24661376} 
    24671377var self=MochiKit.Iter; 
    2468 _310=self.iter(_310); 
     1378_1ab=self.iter(_1ab); 
    24691379var _tee=self._tee; 
    24701380for(var i=0;i<n;i++){ 
    2471 rval.push(_tee(i,sync,_310)); 
     1381rval.push(_tee(i,sync,_1ab)); 
    24721382} 
    24731383return rval; 
    2474 },list:function(_312){ 
    2475 var m=MochiKit.Base; 
    2476 if(typeof (_312.slice)=="function"){ 
    2477 return _312.slice(); 
    2478 }else{ 
    2479 if(m.isArrayLike(_312)){ 
    2480 return m.concat(_312); 
    2481 } 
     1384},list:function(_1b2){ 
     1385var rval; 
     1386if(_1b2 instanceof Array){ 
     1387return _1b2.slice(); 
     1388} 
     1389if(typeof (_1b2)=="function"&&!(_1b2 instanceof Function)&&typeof (_1b2.length)=="number"){ 
     1390rval=[]; 
     1391for(var i=0;i<_1b2.length;i++){ 
     1392rval.push(_1b2[i]); 
     1393} 
     1394return rval; 
    24821395} 
    24831396var self=MochiKit.Iter; 
    2484 _312=self.iter(_312); 
     1397_1b2=self.iter(_1b2); 
    24851398var rval=[]; 
     1399var _1b6; 
    24861400try{ 
    24871401while(true){ 
    2488 rval.push(_312.next()); 
     1402_1b6=_1b2.next(); 
     1403rval.push(_1b6); 
    24891404} 
    24901405} 
     
    24961411} 
    24971412return undefined; 
    2498 },reduce:function(fn,_313,_314){ 
     1413},reduce:function(fn,_1b8,_1b9){ 
    24991414var i=0; 
    2500 var x=_314; 
     1415var x=_1b9; 
    25011416var self=MochiKit.Iter; 
    2502 _313=self.iter(_313); 
     1417_1b8=self.iter(_1b8); 
    25031418if(arguments.length<3){ 
    25041419try{ 
    2505 x=_313.next(); 
     1420x=_1b8.next(); 
    25061421} 
    25071422catch(e){ 
     
    25151430try{ 
    25161431while(true){ 
    2517 x=fn(x,_313.next()); 
     1432x=fn(x,_1b8.next()); 
    25181433} 
    25191434} 
     
    25251440return x; 
    25261441},range:function(){ 
    2527 var _316=0; 
     1442var _1bd=0; 
    25281443var stop=0; 
    25291444var step=1; 
     
    25321447}else{ 
    25331448if(arguments.length==2){ 
    2534 _316=arguments[0]; 
     1449_1bd=arguments[0]; 
    25351450stop=arguments[1]; 
    25361451}else{ 
    25371452if(arguments.length==3){ 
    2538 _316=arguments[0]; 
     1453_1bd=arguments[0]; 
    25391454stop=arguments[1]; 
    25401455step=arguments[2]; 
     
    25481463} 
    25491464return {next:function(){ 
    2550 if((step>0&&_316>=stop)||(step<0&&_316<=stop)){ 
     1465if((step>0&&_1bd>=stop)||(step<0&&_1bd<=stop)){ 
    25511466throw MochiKit.Iter.StopIteration; 
    25521467} 
    2553 var rval=_316; 
    2554 _316+=step; 
     1468var rval=_1bd; 
     1469_1bd+=step; 
    25551470return rval; 
    25561471},repr:function(){ 
    2557 return "range("+[_316,stop,step].join(", ")+")"; 
     1472return "range("+[_1bd,stop,step].join(", ")+")"; 
    25581473},toString:MochiKit.Base.forwardCall("repr")}; 
    2559 },sum:function(_317,_318){ 
    2560 if(typeof (_318)=="undefined"||_318===null){ 
    2561 _318=0; 
    2562 } 
    2563 var x=_318; 
     1474},sum:function(_1c1,_1c2){ 
     1475if(typeof (_1c2)=="undefined"||_1c2===null){ 
     1476_1c2=0; 
     1477} 
     1478var x=_1c2; 
    25641479var self=MochiKit.Iter; 
    2565 _317=self.iter(_317); 
     1480_1c1=self.iter(_1c1); 
    25661481try{ 
    25671482while(true){ 
    2568 x+=_317.next(); 
     1483x+=_1c1.next(); 
    25691484} 
    25701485} 
     
    25751490} 
    25761491return x; 
    2577 },exhaust:function(_319){ 
     1492},exhaust:function(_1c5){ 
    25781493var self=MochiKit.Iter; 
    2579 _319=self.iter(_319); 
     1494_1c5=self.iter(_1c5); 
    25801495try{ 
    25811496while(true){ 
    2582 _319.next(); 
     1497_1c5.next(); 
    25831498} 
    25841499} 
     
    25881503} 
    25891504} 
    2590 },forEach:function(_320,func,self){ 
     1505},forEach:function(_1c7,func,obj){ 
    25911506var m=MochiKit.Base; 
     1507var self=MochiKit.Iter; 
    25921508if(arguments.length>2){ 
    2593 func=m.bind(func,self); 
    2594 } 
    2595 if(m.isArrayLike(_320)){ 
     1509func=m.bind(func,obj); 
     1510} 
     1511if(m.isArrayLike(_1c7)&&!self.isIterable(_1c7)){ 
    25961512try{ 
    2597 for(var i=0;i<_320.length;i++){ 
    2598 func(_320[i]); 
    2599 } 
    2600 } 
    2601 catch(e){ 
    2602 if(e!=MochiKit.Iter.StopIteration){ 
    2603 throw e; 
    2604 } 
    2605 } 
    2606 }else{ 
    2607 self=MochiKit.Iter; 
    2608 self.exhaust(self.imap(func,_320)); 
    2609 } 
    2610 },every:function(_321,func){ 
    2611 var self=MochiKit.Iter; 
    2612 try{ 
    2613 self.ifilterfalse(func,_321).next(); 
    2614 return false; 
     1513for(var i=0;i<_1c7.length;i++){ 
     1514func(_1c7[i]); 
     1515} 
    26151516} 
    26161517catch(e){ 
     
    26181519throw e; 
    26191520} 
    2620 return true; 
    2621 } 
    2622 },sorted:function(_322,cmp){ 
    2623 var rval=MochiKit.Iter.list(_322); 
    2624 if(arguments.length==1){ 
    2625 cmp=MochiKit.Base.compare; 
    2626 } 
    2627 rval.sort(cmp); 
    2628 return rval; 
    2629 },reversed:function(_323){ 
    2630 var rval=MochiKit.Iter.list(_323); 
    2631 rval.reverse(); 
    2632 return rval; 
    2633 },some:function(_324,func){ 
     1521} 
     1522}else{ 
     1523self.exhaust(self.imap(func,_1c7)); 
     1524} 
     1525},every:function(_1cd,func){ 
    26341526var self=MochiKit.Iter; 
    26351527try{ 
    2636 self.ifilter(func,_324).next(); 
    2637 return true; 
     1528self.ifilterfalse(func,_1cd).next(); 
     1529return false; 
    26381530} 
    26391531catch(e){ 
     
    26411533throw e; 
    26421534} 
    2643 return false; 
    2644 } 
    2645 },iextend:function(lst,_325){ 
    2646 if(MochiKit.Base.isArrayLike(_325)){ 
    2647 for(var i=0;i<_325.length;i++){ 
    2648 lst.push(_325[i]); 
    2649 } 
    2650 }else{ 
     1535return true; 
     1536} 
     1537},sorted:function(_1d0,cmp){ 
     1538var rval=MochiKit.Iter.list(_1d0); 
     1539if(arguments.length==1){ 
     1540cmp=MochiKit.Base.compare; 
     1541} 
     1542rval.sort(cmp); 
     1543return rval; 
     1544},reversed:function(_1d3){ 
     1545var rval=MochiKit.Iter.list(_1d3); 
     1546rval.reverse(); 
     1547return rval; 
     1548},some:function(_1d5,func){ 
    26511549var self=MochiKit.Iter; 
    2652 _325=self.iter(_325); 
    26531550try{ 
    2654 while(true){ 
    2655 lst.push(_325.next()); 
    2656 } 
     1551self.ifilter(func,_1d5).next(); 
     1552return true; 
    26571553} 
    26581554catch(e){ 
     
    26601556throw e; 
    26611557} 
     1558return false; 
     1559} 
     1560},iextend:function(lst,_1d9){ 
     1561var m=MochiKit.Base; 
     1562var self=MochiKit.Iter; 
     1563if(m.isArrayLike(_1d9)&&!self.isIterable(_1d9)){ 
     1564for(var i=0;i<_1d9.length;i++){ 
     1565lst.push(_1d9[i]); 
     1566} 
     1567}else{ 
     1568_1d9=self.iter(_1d9); 
     1569try{ 
     1570while(true){ 
     1571lst.push(_1d9.next()); 
     1572} 
     1573} 
     1574catch(e){ 
     1575if(e!=self.StopIteration){ 
     1576throw e; 
     1577} 
    26621578} 
    26631579} 
    26641580return lst; 
    2665 },groupby:function(_326,_327){ 
     1581},groupby:function(_1dd,_1de){ 
    26661582var m=MochiKit.Base; 
    26671583var self=MochiKit.Iter; 
    26681584if(arguments.length<2){ 
    2669 _327=m.operator.identity; 
    2670 } 
    2671 _326=self.iter(_326); 
     1585_1de=m.operator.identity; 
     1586} 
     1587_1dd=self.iter(_1dd); 
    26721588var pk=undefined; 
    26731589var k=undefined; 
    26741590var v; 
    26751591function fetch(){ 
    2676 v=_326.next(); 
    2677 k=_327(v); 
     1592v=_1dd.next(); 
     1593k=_1de(v); 
    26781594} 
    26791595function eat(){ 
     
    26821598return ret; 
    26831599} 
    2684 var _329=true; 
    2685 var _330=m.compare; 
     1600var _1e5=true; 
     1601var _1e6=m.compare; 
    26861602return {repr:function(){ 
    26871603return "groupby(...)"; 
    26881604},next:function(){ 
    2689 while(_330(k,pk)===0){ 
     1605while(_1e6(k,pk)===0){ 
    26901606fetch(); 
    2691 if(_329){ 
    2692 _329=false; 
     1607if(_1e5){ 
     1608_1e5=false; 
    26931609break; 
    26941610} 
     
    26991615fetch(); 
    27001616} 
    2701 if(_330(k,pk)!==0){ 
     1617if(_1e6(k,pk)!==0){ 
    27021618throw self.StopIteration; 
    27031619} 
     
    27051621}}]; 
    27061622}}; 
    2707 },groupby_as_array:function(_331,_332){ 
     1623},groupby_as_array:function(_1e7,_1e8){ 
    27081624var m=MochiKit.Base; 
    27091625var self=MochiKit.Iter; 
    27101626if(arguments.length<2){ 
    2711 _332=m.operator.identity; 
    2712 } 
    2713 _331=self.iter(_331); 
    2714 var _333=[]; 
    2715 var _334=true; 
    2716 var _335; 
    2717 var _336=m.compare; 
     1627_1e8=m.operator.identity; 
     1628} 
     1629_1e7=self.iter(_1e7); 
     1630var _1eb=[]; 
     1631var _1ec=true; 
     1632var _1ed; 
     1633var _1ee=m.compare; 
    27181634while(true){ 
    27191635try{ 
    2720 var _337=_331.next(); 
    2721 var key=_332(_337); 
     1636var _1ef=_1e7.next(); 
     1637var key=_1e8(_1ef); 
    27221638} 
    27231639catch(e){ 
     
    27271643throw e; 
    27281644} 
    2729 if(_334||_336(key,_335)!==0){ 
    2730 var _338=[]; 
    2731 _333.push([key,_338]); 
    2732 } 
    2733 _338.push(_337); 
    2734 _334=false; 
    2735 _335=key; 
    2736 } 
    2737 return _333; 
    2738 },arrayLikeIter:function(_339){ 
     1645if(_1ec||_1ee(key,_1ed)!==0){ 
     1646var _1f1=[]; 
     1647_1eb.push([key,_1f1]); 
     1648} 
     1649_1f1.push(_1ef); 
     1650_1ec=false; 
     1651_1ed=key; 
     1652} 
     1653return _1eb; 
     1654},arrayLikeIter:function(_1f2){ 
    27391655var i=0; 
    27401656return {repr:function(){ 
    27411657return "arrayLikeIter(...)"; 
    27421658},toString:MochiKit.Base.forwardCall("repr"),next:function(){ 
    2743 if(i>=_339.length){ 
     1659if(i>=_1f2.length){ 
    27441660throw MochiKit.Iter.StopIteration; 
    27451661} 
    2746 return _339[i++]; 
     1662return _1f2[i++]; 
    27471663}}; 
    2748 },hasIterateNext:function(_340){ 
    2749 return (_340&&typeof (_340.iterateNext)=="function"); 
    2750 },iterateNextIter:function(_341){ 
     1664},hasIterateNext:function(_1f4){ 
     1665return (_1f4&&typeof (_1f4.iterateNext)=="function"); 
     1666},iterateNextIter:function(_1f5){ 
    27511667return {repr:function(){ 
    27521668return "iterateNextIter(...)"; 
    27531669},toString:MochiKit.Base.forwardCall("repr"),next:function(){ 
    2754 var rval=_341.iterateNext(); 
     1670var rval=_1f5.iterateNext(); 
    27551671if(rval===null||rval===undefined){ 
    27561672throw MochiKit.Iter.StopIteration; 
     
    27591675}}; 
    27601676}}); 
    2761 MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter",]; 
     1677MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter"]; 
    27621678MochiKit.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"]; 
    27631679MochiKit.Iter.__new__=function(){ 
     
    27791695} 
    27801696MochiKit.Base._exportSymbols(this,MochiKit.Iter); 
    2781 if(typeof (dojo)!="undefined"){ 
    2782 dojo.provide("MochiKit.Style"); 
    2783 dojo.require("MochiKit.Base"); 
    2784 dojo.require("MochiKit.DOM"); 
    2785 } 
    2786 if(typeof (JSAN)!="undefined"){ 
    2787 JSAN.use("MochiKit.Base",[]); 
    2788 } 
     1697MochiKit.Base._deps("Logging",["Base"]); 
     1698MochiKit.Logging.NAME="MochiKit.Logging"; 
     1699MochiKit.Logging.VERSION="1.4.2"; 
     1700MochiKit.Logging.__repr__=function(){ 
     1701return "["+this.NAME+" "+this.VERSION+"]"; 
     1702}; 
     1703MochiKit.Logging.toString=function(){ 
     1704return this.__repr__(); 
     1705}; 
     1706MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"]; 
     1707MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"]; 
     1708MochiKit.Logging.LogMessage=function(num,_1f9,info){ 
     1709this.num=num; 
     1710this.level=_1f9; 
     1711this.info=info; 
     1712this.timestamp=new Date(); 
     1713}; 
     1714MochiKit.Logging.LogMessage.prototype={repr:function(){ 
     1715var m=MochiKit.Base; 
     1716return "LogMessage("+m.map(m.repr,[this.num,this.level,this.info]).join(", ")+")"; 
     1717},toString:MochiKit.Base.forwardCall("repr")}; 
     1718MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_1fc){ 
     1719var self=MochiKit.Logging; 
     1720if(typeof (_1fc)=="string"){ 
     1721_1fc=self.LogLevel[_1fc]; 
     1722} 
     1723return function(msg){ 
     1724var _1ff=msg.level; 
     1725if(typeof (_1ff)=="string"){ 
     1726_1ff=self.LogLevel[_1ff]; 
     1727} 
     1728return _1ff>=_1fc; 
     1729}; 
     1730},isLogMessage:function(){ 
     1731var _200=MochiKit.Logging.LogMessage; 
     1732for(var i=0;i<arguments.length;i++){ 
     1733if(!(arguments[i] instanceof _200)){ 
     1734return false; 
     1735} 
     1736} 
     1737return true; 
     1738},compareLogMessage:function(a,b){ 
     1739return MochiKit.Base.compare([a.level,a.info],[b.level,b.info]); 
     1740},alertListener:function(msg){ 
     1741alert("num: "+msg.num+"\nlevel: "+msg.level+"\ninfo: "+msg.info.join(" ")); 
     1742}}); 
     1743MochiKit.Logging.Logger=function(_205){ 
     1744this.counter=0; 
     1745if(typeof (_205)=="undefined"||_205===null){ 
     1746_205=-1; 
     1747} 
     1748this.maxSize=_205; 
     1749this._messages=[]; 
     1750this.listeners={}; 
     1751this.useNativeConsole=false; 
     1752}; 
     1753MochiKit.Logging.Logger.prototype={clear:function(){ 
     1754this._messages.splice(0,this._messages.length); 
     1755},logToConsole:function(msg){ 
     1756if(typeof (window)!="undefined"&&window.console&&window.console.log){ 
     1757window.console.log(msg.replace(/%/g,"\uff05")); 
     1758}else{ 
     1759if(typeof (opera)!="undefined"&&opera.postError){ 
     1760opera.postError(msg); 
     1761}else{ 
     1762if(typeof (printfire)=="function"){ 
     1763printfire(msg); 
     1764}else{ 
     1765if(typeof (Debug)!="undefined"&&Debug.writeln){ 
     1766Debug.writeln(msg); 
     1767}else{ 
     1768if(typeof (debug)!="undefined"&&debug.trace){ 
     1769debug.trace(msg); 
     1770} 
     1771} 
     1772} 
     1773} 
     1774} 
     1775},dispatchListeners:function(msg){ 
     1776for(var k in this.listeners){ 
     1777var pair=this.listeners[k]; 
     1778if(pair.ident!=k||(pair[0]&&!pair[0](msg))){ 
     1779continue; 
     1780} 
     1781pair[1](msg); 
     1782} 
     1783},addListener:function(_20a,_20b,_20c){ 
     1784if(typeof (_20b)=="string"){ 
     1785_20b=MochiKit.Logging.logLevelAtLeast(_20b); 
     1786} 
     1787var _20d=[_20b,_20c]; 
     1788_20d.ident=_20a; 
     1789this.listeners[_20a]=_20d; 
     1790},removeListener:function(_20e){ 
     1791delete this.listeners[_20e]; 
     1792},baseLog:function(_20f,_210){ 
     1793if(typeof (_20f)=="number"){ 
     1794if(_20f>=MochiKit.Logging.LogLevel.FATAL){ 
     1795_20f="FATAL"; 
     1796}else{ 
     1797if(_20f>=MochiKit.Logging.LogLevel.ERROR){ 
     1798_20f="ERROR"; 
     1799}else{ 
     1800if(_20f>=MochiKit.Logging.LogLevel.WARNING){ 
     1801_20f="WARNING"; 
     1802}else{ 
     1803if(_20f>=MochiKit.Logging.LogLevel.INFO){ 
     1804_20f="INFO"; 
     1805}else{ 
     1806_20f="DEBUG"; 
     1807} 
     1808} 
     1809} 
     1810} 
     1811} 
     1812var msg=new MochiKit.Logging.LogMessage(this.counter,_20f,MochiKit.Base.extend(null,arguments,1)); 
     1813this._messages.push(msg); 
     1814this.dispatchListeners(msg); 
     1815if(this.useNativeConsole){ 
     1816this.logToConsole(msg.level+": "+msg.info.join(" ")); 
     1817} 
     1818this.counter+=1; 
     1819while(this.maxSize>=0&&this._messages.length>this.maxSize){ 
     1820this._messages.shift(); 
     1821} 
     1822},getMessages:function(_212){ 
     1823var _213=0; 
     1824if(!(typeof (_212)=="undefined"||_212===null)){ 
     1825_213=Math.max(0,this._messages.length-_212); 
     1826} 
     1827return this._messages.slice(_213); 
     1828},getMessageText:function(_214){ 
     1829if(typeof (_214)=="undefined"||_214===null){ 
     1830_214=30; 
     1831} 
     1832var _215=this.getMessages(_214); 
     1833if(_215.length){ 
     1834var lst=map(function(m){ 
     1835return "\n  ["+m.num+"] "+m.level+": "+m.info.join(" "); 
     1836},_215); 
     1837lst.unshift("LAST "+_215.length+" MESSAGES:"); 
     1838return lst.join(""); 
     1839} 
     1840return ""; 
     1841},debuggingBookmarklet:function(_218){ 
     1842if(typeof (MochiKit.LoggingPane)=="undefined"){ 
     1843alert(this.getMessageText()); 
     1844}else{ 
     1845MochiKit.LoggingPane.createLoggingPane(_218||false); 
     1846} 
     1847}}; 
     1848MochiKit.Logging.__new__=function(){ 
     1849this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10}; 
     1850var m=MochiKit.Base; 
     1851m.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage); 
     1852var _21a=m.partial; 
     1853var _21b=this.Logger; 
     1854var _21c=_21b.prototype.baseLog; 
     1855m.update(this.Logger.prototype,{debug:_21a(_21c,"DEBUG"),log:_21a(_21c,"INFO"),error:_21a(_21c,"ERROR"),fatal:_21a(_21c,"FATAL"),warning:_21a(_21c,"WARNING")}); 
     1856var self=this; 
     1857var _21e=function(name){ 
     1858return function(){ 
     1859self.logger[name].apply(self.logger,arguments); 
     1860}; 
     1861}; 
     1862this.log=_21e("log"); 
     1863this.logError=_21e("error"); 
     1864this.logDebug=_21e("debug"); 
     1865this.logFatal=_21e("fatal"); 
     1866this.logWarning=_21e("warning"); 
     1867this.logger=new _21b(); 
     1868this.logger.useNativeConsole=true; 
     1869this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
     1870m.nameFunctions(this); 
     1871}; 
     1872if(typeof (printfire)=="undefined"&&typeof (document)!="undefined"&&document.createEvent&&typeof (dispatchEvent)!="undefined"){ 
     1873printfire=function(){ 
     1874printfire.args=arguments; 
     1875var ev=document.createEvent("Events"); 
     1876ev.initEvent("printfire",false,true); 
     1877dispatchEvent(ev); 
     1878}; 
     1879} 
     1880MochiKit.Logging.__new__(); 
     1881MochiKit.Base._exportSymbols(this,MochiKit.Logging); 
     1882MochiKit.Base._deps("DateTime",["Base"]); 
     1883MochiKit.DateTime.NAME="MochiKit.DateTime"; 
     1884MochiKit.DateTime.VERSION="1.4.2"; 
     1885MochiKit.DateTime.__repr__=function(){ 
     1886return "["+this.NAME+" "+this.VERSION+"]"; 
     1887}; 
     1888MochiKit.DateTime.toString=function(){ 
     1889return this.__repr__(); 
     1890}; 
     1891MochiKit.DateTime.isoDate=function(str){ 
     1892str=str+""; 
     1893if(typeof (str)!="string"||str.length===0){ 
     1894return null; 
     1895} 
     1896var iso=str.split("-"); 
     1897if(iso.length===0){ 
     1898return null; 
     1899} 
     1900var date=new Date(iso[0],iso[1]-1,iso[2]); 
     1901date.setFullYear(iso[0]); 
     1902date.setMonth(iso[1]-1); 
     1903date.setDate(iso[2]); 
     1904return date; 
     1905}; 
     1906MochiKit.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}))?)?)?)?)?/; 
     1907MochiKit.DateTime.isoTimestamp=function(str){ 
     1908str=str+""; 
     1909if(typeof (str)!="string"||str.length===0){ 
     1910return null; 
     1911} 
     1912var res=str.match(MochiKit.DateTime._isoRegexp); 
     1913if(typeof (res)=="undefined"||res===null){ 
     1914return null; 
     1915} 
     1916var year,_227,day,hour,min,sec,msec; 
     1917year=parseInt(res[1],10); 
     1918if(typeof (res[2])=="undefined"||res[2]===""){ 
     1919return new Date(year); 
     1920} 
     1921_227=parseInt(res[2],10)-1; 
     1922day=parseInt(res[3],10); 
     1923if(typeof (res[4])=="undefined"||res[4]===""){ 
     1924return new Date(year,_227,day); 
     1925} 
     1926hour=parseInt(res[4],10); 
     1927min=parseInt(res[5],10); 
     1928sec=(typeof (res[6])!="undefined"&&res[6]!=="")?parseInt(res[6],10):0; 
     1929if(typeof (res[7])!="undefined"&&res[7]!==""){ 
     1930msec=Math.round(1000*parseFloat("0."+res[7])); 
     1931}else{ 
     1932msec=0; 
     1933} 
     1934if((typeof (res[8])=="undefined"||res[8]==="")&&(typeof (res[9])=="undefined"||res[9]==="")){ 
     1935return new Date(year,_227,day,hour,min,sec,msec); 
     1936} 
     1937var ofs; 
     1938if(typeof (res[9])!="undefined"&&res[9]!==""){ 
     1939ofs=parseInt(res[10],10)*3600000; 
     1940if(typeof (res[11])!="undefined"&&res[11]!==""){ 
     1941ofs+=parseInt(res[11],10)*60000; 
     1942} 
     1943if(res[9]=="-"){ 
     1944ofs=-ofs; 
     1945} 
     1946}else{ 
     1947ofs=0; 
     1948} 
     1949return new Date(Date.UTC(year,_227,day,hour,min,sec,msec)-ofs); 
     1950}; 
     1951MochiKit.DateTime.toISOTime=function(date,_22f){ 
     1952if(typeof (date)=="undefined"||date===null){ 
     1953return null; 
     1954} 
     1955var hh=date.getHours(); 
     1956var mm=date.getMinutes(); 
     1957var ss=date.getSeconds(); 
     1958var lst=[((_22f&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)]; 
     1959return lst.join(":"); 
     1960}; 
     1961MochiKit.DateTime.toISOTimestamp=function(date,_235){ 
     1962if(typeof (date)=="undefined"||date===null){ 
     1963return null; 
     1964} 
     1965var sep=_235?"T":" "; 
     1966var foot=_235?"Z":""; 
     1967if(_235){ 
     1968date=new Date(date.getTime()+(date.getTimezoneOffset()*60000)); 
     1969} 
     1970return MochiKit.DateTime.toISODate(date)+sep+MochiKit.DateTime.toISOTime(date,_235)+foot; 
     1971}; 
     1972MochiKit.DateTime.toISODate=function(date){ 
     1973if(typeof (date)=="undefined"||date===null){ 
     1974return null; 
     1975} 
     1976var _239=MochiKit.DateTime._padTwo; 
     1977var _23a=MochiKit.DateTime._padFour; 
     1978return [_23a(date.getFullYear()),_239(date.getMonth()+1),_239(date.getDate())].join("-"); 
     1979}; 
     1980MochiKit.DateTime.americanDate=function(d){ 
     1981d=d+""; 
     1982if(typeof (d)!="string"||d.length===0){ 
     1983return null; 
     1984} 
     1985var a=d.split("/"); 
     1986return new Date(a[2],a[0]-1,a[1]); 
     1987}; 
     1988MochiKit.DateTime._padTwo=function(n){ 
     1989return (n>9)?n:"0"+n; 
     1990}; 
     1991MochiKit.DateTime._padFour=function(n){ 
     1992switch(n.toString().length){ 
     1993case 1: 
     1994return "000"+n; 
     1995break; 
     1996case 2: 
     1997return "00"+n; 
     1998break; 
     1999case 3: 
     2000return "0"+n; 
     2001break; 
     2002case 4: 
     2003default: 
     2004return n; 
     2005} 
     2006}; 
     2007MochiKit.DateTime.toPaddedAmericanDate=function(d){ 
     2008if(typeof (d)=="undefined"||d===null){ 
     2009return null; 
     2010} 
     2011var _240=MochiKit.DateTime._padTwo; 
     2012return [_240(d.getMonth()+1),_240(d.getDate()),d.getFullYear()].join("/"); 
     2013}; 
     2014MochiKit.DateTime.toAmericanDate=function(d){ 
     2015if(typeof (d)=="undefined"||d===null){ 
     2016return null; 
     2017} 
     2018return [d.getMonth()+1,d.getDate(),d.getFullYear()].join("/"); 
     2019}; 
     2020MochiKit.DateTime.EXPORT=["isoDate","isoTimestamp","toISOTime","toISOTimestamp","toISODate","americanDate","toPaddedAmericanDate","toAmericanDate"]; 
     2021MochiKit.DateTime.EXPORT_OK=[]; 
     2022MochiKit.DateTime.EXPORT_TAGS={":common":MochiKit.DateTime.EXPORT,":all":MochiKit.DateTime.EXPORT}; 
     2023MochiKit.DateTime.__new__=function(){ 
     2024var base=this.NAME+"."; 
     2025for(var k in this){ 
     2026var o=this[k]; 
     2027if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ 
    27892028try{ 
    2790 if(typeof (MochiKit.Base)=="undefined"){ 
    2791 throw ""; 
    2792 } 
     2029o.NAME=base+k; 
    27932030} 
    27942031catch(e){ 
    2795 throw "MochiKit.Style depends on MochiKit.Base!"; 
    2796 } 
     2032} 
     2033} 
     2034} 
     2035}; 
     2036MochiKit.DateTime.__new__(); 
     2037if(typeof (MochiKit.Base)!="undefined"){ 
     2038MochiKit.Base._exportSymbols(this,MochiKit.DateTime); 
     2039}else{ 
     2040(function(_245,_246){ 
     2041if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){ 
     2042var all=_246.EXPORT_TAGS[":all"]; 
     2043for(var i=0;i<all.length;i++){ 
     2044_245[all[i]]=_246[all[i]]; 
     2045} 
     2046} 
     2047})(this,MochiKit.DateTime); 
     2048} 
     2049MochiKit.Base._deps("Format",["Base"]); 
     2050MochiKit.Format.NAME="MochiKit.Format"; 
     2051MochiKit.Format.VERSION="1.4.2"; 
     2052MochiKit.Format.__repr__=function(){ 
     2053return "["+this.NAME+" "+this.VERSION+"]"; 
     2054}; 
     2055MochiKit.Format.toString=function(){ 
     2056return this.__repr__(); 
     2057}; 
     2058MochiKit.Format._numberFormatter=function(_249,_24a,_24b,_24c,_24d,_24e,_24f,_250,_251){ 
     2059return function(num){ 
     2060num=parseFloat(num); 
     2061if(typeof (num)=="undefined"||num===null||isNaN(num)){ 
     2062return _249; 
     2063} 
     2064var _253=_24a; 
     2065var _254=_24b; 
     2066if(num<0){ 
     2067num=-num; 
     2068}else{ 
     2069_253=_253.replace(/-/,""); 
     2070} 
     2071var me=arguments.callee; 
     2072var fmt=MochiKit.Format.formatLocale(_24c); 
     2073if(_24d){ 
     2074num=num*100; 
     2075_254=fmt.percent+_254; 
     2076} 
     2077num=MochiKit.Format.roundToFixed(num,_24e); 
     2078var _257=num.split(/\./); 
     2079var _258=_257[0]; 
     2080var frac=(_257.length==1)?"":_257[1]; 
     2081var res=""; 
     2082while(_258.length<_24f){ 
     2083_258="0"+_258; 
     2084} 
     2085if(_250){ 
     2086while(_258.length>_250){ 
     2087var i=_258.length-_250; 
     2088res=fmt.separator+_258.substring(i,_258.length)+res; 
     2089_258=_258.substring(0,i); 
     2090} 
     2091} 
     2092res=_258+res; 
     2093if(_24e>0){ 
     2094while(frac.length<_251){ 
     2095frac=frac+"0"; 
     2096} 
     2097res=res+fmt.decimal+frac; 
     2098} 
     2099return _253+res+_254; 
     2100}; 
     2101}; 
     2102MochiKit.Format.numberFormatter=function(_25c,_25d,_25e){ 
     2103if(typeof (_25d)=="undefined"){ 
     2104_25d=""; 
     2105} 
     2106var _25f=_25c.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/); 
     2107if(!_25f){ 
     2108throw TypeError("Invalid pattern"); 
     2109} 
     2110var _260=_25c.substr(0,_25f.index); 
     2111var _261=_25c.substr(_25f.index+_25f[0].length); 
     2112if(_260.search(/-/)==-1){ 
     2113_260=_260+"-"; 
     2114} 
     2115var _262=_25f[1]; 
     2116var frac=(typeof (_25f[2])=="string"&&_25f[2]!="")?_25f[2]:""; 
     2117var _264=(typeof (_25f[3])=="string"&&_25f[3]!=""); 
     2118var tmp=_262.split(/,/); 
     2119var _266; 
     2120if(typeof (_25e)=="undefined"){ 
     2121_25e="default"; 
     2122} 
     2123if(tmp.length==1){ 
     2124_266=null; 
     2125}else{ 
     2126_266=tmp[1].length; 
     2127} 
     2128var _267=_262.length-_262.replace(/0/g,"").length; 
     2129var _268=frac.length-frac.replace(/0/g,"").length; 
     2130var _269=frac.length; 
     2131var rval=MochiKit.Format._numberFormatter(_25d,_260,_261,_25e,_264,_269,_267,_266,_268); 
     2132var m=MochiKit.Base; 
     2133if(m){ 
     2134var fn=arguments.callee; 
     2135var args=m.concat(arguments); 
     2136rval.repr=function(){ 
     2137return [self.NAME,"(",map(m.repr,args).join(", "),")"].join(""); 
     2138}; 
     2139} 
     2140return rval; 
     2141}; 
     2142MochiKit.Format.formatLocale=function(_26e){ 
     2143if(typeof (_26e)=="undefined"||_26e===null){ 
     2144_26e="default"; 
     2145} 
     2146if(typeof (_26e)=="string"){ 
     2147var rval=MochiKit.Format.LOCALE[_26e]; 
     2148if(typeof (rval)=="string"){ 
     2149rval=arguments.callee(rval); 
     2150MochiKit.Format.LOCALE[_26e]=rval; 
     2151} 
     2152return rval; 
     2153}else{ 
     2154return _26e; 
     2155} 
     2156}; 
     2157MochiKit.Format.twoDigitAverage=function(_270,_271){ 
     2158if(_271){ 
     2159var res=_270/_271; 
     2160if(!isNaN(res)){ 
     2161return MochiKit.Format.twoDigitFloat(res); 
     2162} 
     2163} 
     2164return "0"; 
     2165}; 
     2166MochiKit.Format.twoDigitFloat=function(_273){ 
     2167var res=roundToFixed(_273,2); 
     2168if(res.indexOf(".00")>0){ 
     2169return res.substring(0,res.length-3); 
     2170}else{ 
     2171if(res.charAt(res.length-1)=="0"){ 
     2172return res.substring(0,res.length-1); 
     2173}else{ 
     2174return res; 
     2175} 
     2176} 
     2177}; 
     2178MochiKit.Format.lstrip=function(str,_276){ 
     2179str=str+""; 
     2180if(typeof (str)!="string"){ 
     2181return null; 
     2182} 
     2183if(!_276){ 
     2184return str.replace(/^\s+/,""); 
     2185}else{ 
     2186return str.replace(new RegExp("^["+_276+"]+"),""); 
     2187} 
     2188}; 
     2189MochiKit.Format.rstrip=function(str,_278){ 
     2190str=str+""; 
     2191if(typeof (str)!="string"){ 
     2192return null; 
     2193} 
     2194if(!_278){ 
     2195return str.replace(/\s+$/,""); 
     2196}else{ 
     2197return str.replace(new RegExp("["+_278+"]+$"),""); 
     2198} 
     2199}; 
     2200MochiKit.Format.strip=function(str,_27a){ 
     2201var self=MochiKit.Format; 
     2202return self.rstrip(self.lstrip(str,_27a),_27a); 
     2203}; 
     2204MochiKit.Format.truncToFixed=function(_27c,_27d){ 
     2205var res=Math.floor(_27c).toFixed(0); 
     2206if(_27c<0){ 
     2207res=Math.ceil(_27c).toFixed(0); 
     2208if(res.charAt(0)!="-"&&_27d>0){ 
     2209res="-"+res; 
     2210} 
     2211} 
     2212if(res.indexOf("e")<0&&_27d>0){ 
     2213var tail=_27c.toString(); 
     2214if(tail.indexOf("e")>0){ 
     2215tail="."; 
     2216}else{ 
     2217if(tail.indexOf(".")<0){ 
     2218tail="."; 
     2219}else{ 
     2220tail=tail.substring(tail.indexOf(".")); 
     2221} 
     2222} 
     2223if(tail.length-1>_27d){ 
     2224tail=tail.substring(0,_27d+1); 
     2225} 
     2226while(tail.length-1<_27d){ 
     2227tail+="0"; 
     2228} 
     2229res+=tail; 
     2230} 
     2231return res; 
     2232}; 
     2233MochiKit.Format.roundToFixed=function(_280,_281){ 
     2234var _282=Math.abs(_280)+0.5*Math.pow(10,-_281); 
     2235var res=MochiKit.Format.truncToFixed(_282,_281); 
     2236if(_280<0){ 
     2237res="-"+res; 
     2238} 
     2239return res; 
     2240}; 
     2241MochiKit.Format.percentFormat=function(_284){ 
     2242return MochiKit.Format.twoDigitFloat(100*_284)+"%"; 
     2243}; 
     2244MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"]; 
     2245MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},pt_BR:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},"default":"en_US"}; 
     2246MochiKit.Format.EXPORT_OK=[]; 
     2247MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT}; 
     2248MochiKit.Format.__new__=function(){ 
     2249var base=this.NAME+"."; 
     2250var k,v,o; 
     2251for(k in this.LOCALE){ 
     2252o=this.LOCALE[k]; 
     2253if(typeof (o)=="object"){ 
     2254o.repr=function(){ 
     2255return this.NAME; 
     2256}; 
     2257o.NAME=base+"LOCALE."+k; 
     2258} 
     2259} 
     2260for(k in this){ 
     2261o=this[k]; 
     2262if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ 
    27972263try{ 
    2798 if(typeof (MochiKit.DOM)=="undefined"){ 
    2799 throw ""; 
    2800 } 
     2264o.NAME=base+k; 
    28012265} 
    28022266catch(e){ 
    2803 throw "MochiKit.Style depends on MochiKit.DOM!"; 
    2804 } 
    2805 if(typeof (MochiKit.Style)=="undefined"){ 
    2806 MochiKit.Style={}; 
    2807 } 
     2267} 
     2268} 
     2269} 
     2270}; 
     2271MochiKit.Format.__new__(); 
     2272if(typeof (MochiKit.Base)!="undefined"){ 
     2273MochiKit.Base._exportSymbols(this,MochiKit.Format); 
     2274}else{ 
     2275(function(_289,_28a){ 
     2276if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){ 
     2277var all=_28a.EXPORT_TAGS[":all"]; 
     2278for(var i=0;i<all.length;i++){ 
     2279_289[all[i]]=_28a[all[i]]; 
     2280} 
     2281} 
     2282})(this,MochiKit.Format); 
     2283} 
     2284MochiKit.Base._deps("Async",["Base"]); 
     2285MochiKit.Async.NAME="MochiKit.Async"; 
     2286MochiKit.Async.VERSION="1.4.2"; 
     2287MochiKit.Async.__repr__=function(){ 
     2288return "["+this.NAME+" "+this.VERSION+"]"; 
     2289}; 
     2290MochiKit.Async.toString=function(){ 
     2291return this.__repr__(); 
     2292}; 
     2293MochiKit.Async.Deferred=function(_28d){ 
     2294this.chain=[]; 
     2295this.id=this._nextId(); 
     2296this.fired=-1; 
     2297this.paused=0; 
     2298this.results=[null,null]; 
     2299this.canceller=_28d; 
     2300this.silentlyCancelled=false; 
     2301this.chained=false; 
     2302}; 
     2303MochiKit.Async.Deferred.prototype={repr:function(){ 
     2304var _28e; 
     2305if(this.fired==-1){ 
     2306_28e="unfired"; 
     2307}else{ 
     2308if(this.fired===0){ 
     2309_28e="success"; 
     2310}else{ 
     2311_28e="error"; 
     2312} 
     2313} 
     2314return "Deferred("+this.id+", "+_28e+")"; 
     2315},toString:MochiKit.Base.forwardCall("repr"),_nextId:MochiKit.Base.counter(),cancel:function(){ 
     2316var self=MochiKit.Async; 
     2317if(this.fired==-1){ 
     2318if(this.canceller){ 
     2319this.canceller(this); 
     2320}else{ 
     2321this.silentlyCancelled=true; 
     2322} 
     2323if(this.fired==-1){ 
     2324this.errback(new self.CancelledError(this)); 
     2325} 
     2326}else{ 
     2327if((this.fired===0)&&(this.results[0] instanceof self.Deferred)){ 
     2328this.results[0].cancel(); 
     2329} 
     2330} 
     2331},_resback:function(res){ 
     2332this.fired=((res instanceof Error)?1:0); 
     2333this.results[this.fired]=res; 
     2334this._fire(); 
     2335},_check:function(){ 
     2336if(this.fired!=-1){ 
     2337if(!this.silentlyCancelled){ 
     2338throw new MochiKit.Async.AlreadyCalledError(this); 
     2339} 
     2340this.silentlyCancelled=false; 
     2341return; 
     2342} 
     2343},callback:function(res){ 
     2344this._check(); 
     2345if(res instanceof MochiKit.Async.Deferred){ 
     2346throw new Error("Deferred instances can only be chained if they are the result of a callback"); 
     2347} 
     2348this._resback(res); 
     2349},errback:function(res){ 
     2350this._check(); 
     2351var self=MochiKit.Async; 
     2352if(res instanceof self.Deferred){ 
     2353throw new Error("Deferred instances can only be chained if they are the result of a callback"); 
     2354} 
     2355if(!(res instanceof Error)){ 
     2356res=new self.GenericError(res); 
     2357} 
     2358this._resback(res); 
     2359},addBoth:function(fn){ 
     2360if(arguments.length>1){ 
     2361fn=MochiKit.Base.partial.apply(null,arguments); 
     2362} 
     2363return this.addCallbacks(fn,fn); 
     2364},addCallback:function(fn){ 
     2365if(arguments.length>1){ 
     2366fn=MochiKit.Base.partial.apply(null,arguments); 
     2367} 
     2368return this.addCallbacks(fn,null); 
     2369},addErrback:function(fn){ 
     2370if(arguments.length>1){ 
     2371fn=MochiKit.Base.partial.apply(null,arguments); 
     2372} 
     2373return this.addCallbacks(null,fn); 
     2374},addCallbacks:function(cb,eb){ 
     2375if(this.chained){ 
     2376throw new Error("Chained Deferreds can not be re-used"); 
     2377} 
     2378this.chain.push([cb,eb]); 
     2379if(this.fired>=0){ 
     2380this._fire(); 
     2381} 
     2382return this; 
     2383},_fire:function(){ 
     2384var _299=this.chain; 
     2385var _29a=this.fired; 
     2386var res=this.results[_29a]; 
     2387var self=this; 
     2388var cb=null; 
     2389while(_299.length>0&&this.paused===0){ 
     2390var pair=_299.shift(); 
     2391var f=pair[_29a]; 
     2392if(f===null){ 
     2393continue; 
     2394} 
     2395try{ 
     2396res=f(res); 
     2397_29a=((res instanceof Error)?1:0); 
     2398if(res instanceof MochiKit.Async.Deferred){ 
     2399cb=function(res){ 
     2400self._resback(res); 
     2401self.paused--; 
     2402if((self.paused===0)&&(self.fired>=0)){ 
     2403self._fire(); 
     2404} 
     2405}; 
     2406this.paused++; 
     2407} 
     2408} 
     2409catch(err){ 
     2410_29a=1; 
     2411if(!(err instanceof Error)){ 
     2412err=new MochiKit.Async.GenericError(err); 
     2413} 
     2414res=err; 
     2415} 
     2416} 
     2417this.fired=_29a; 
     2418this.results[_29a]=res; 
     2419if(cb&&this.paused){ 
     2420res.addBoth(cb); 
     2421res.chained=true; 
     2422} 
     2423}}; 
     2424MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(req){ 
     2425return MochiKit.Base.evalJSON(req.responseText); 
     2426},succeed:function(_2a2){ 
     2427var d=new MochiKit.Async.Deferred(); 
     2428d.callback.apply(d,arguments); 
     2429return d; 
     2430},fail:function(_2a4){ 
     2431var d=new MochiKit.Async.Deferred(); 
     2432d.errback.apply(d,arguments); 
     2433return d; 
     2434},getXMLHttpRequest:function(){ 
     2435var self=arguments.callee; 
     2436if(!self.XMLHttpRequest){ 
     2437var _2a7=[function(){ 
     2438return new XMLHttpRequest(); 
     2439},function(){ 
     2440return new ActiveXObject("Msxml2.XMLHTTP"); 
     2441},function(){ 
     2442return new ActiveXObject("Microsoft.XMLHTTP"); 
     2443},function(){ 
     2444return new ActiveXObject("Msxml2.XMLHTTP.4.0"); 
     2445},function(){ 
     2446throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); 
     2447}]; 
     2448for(var i=0;i<_2a7.length;i++){ 
     2449var func=_2a7[i]; 
     2450try{ 
     2451self.XMLHttpRequest=func; 
     2452return func(); 
     2453} 
     2454catch(e){ 
     2455} 
     2456} 
     2457} 
     2458return self.XMLHttpRequest(); 
     2459},_xhr_onreadystatechange:function(d){ 
     2460var m=MochiKit.Base; 
     2461if(this.readyState==4){ 
     2462try{ 
     2463this.onreadystatechange=null; 
     2464} 
     2465catch(e){ 
     2466try{ 
     2467this.onreadystatechange=m.noop; 
     2468} 
     2469catch(e){ 
     2470} 
     2471} 
     2472var _2ac=null; 
     2473try{ 
     2474_2ac=this.status; 
     2475if(!_2ac&&m.isNotEmpty(this.responseText)){ 
     2476_2ac=304; 
     2477} 
     2478} 
     2479catch(e){ 
     2480} 
     2481if(_2ac==200||_2ac==201||_2ac==204||_2ac==304||_2ac==1223){ 
     2482d.callback(this); 
     2483}else{ 
     2484var err=new MochiKit.Async.XMLHttpRequestError(this,"Request failed"); 
     2485if(err.number){ 
     2486d.errback(err); 
     2487}else{ 
     2488d.errback(err); 
     2489} 
     2490} 
     2491} 
     2492},_xhr_canceller:function(req){ 
     2493try{ 
     2494req.onreadystatechange=null; 
     2495} 
     2496catch(e){ 
     2497try{ 
     2498req.onreadystatechange=MochiKit.Base.noop; 
     2499} 
     2500catch(e){ 
     2501} 
     2502} 
     2503req.abort(); 
     2504},sendXMLHttpRequest:function(req,_2b0){ 
     2505if(typeof (_2b0)=="undefined"||_2b0===null){ 
     2506_2b0=""; 
     2507} 
     2508var m=MochiKit.Base; 
     2509var self=MochiKit.Async; 
     2510var d=new self.Deferred(m.partial(self._xhr_canceller,req)); 
     2511try{ 
     2512req.onreadystatechange=m.bind(self._xhr_onreadystatechange,req,d); 
     2513req.send(_2b0); 
     2514} 
     2515catch(e){ 
     2516try{ 
     2517req.onreadystatechange=null; 
     2518} 
     2519catch(ignore){ 
     2520} 
     2521d.errback(e); 
     2522} 
     2523return d; 
     2524},doXHR:function(url,opts){ 
     2525var self=MochiKit.Async; 
     2526return self.callLater(0,self._doXHR,url,opts); 
     2527},_doXHR:function(url,opts){ 
     2528var m=MochiKit.Base; 
     2529opts=m.update({method:"GET",sendContent:""},opts); 
     2530var self=MochiKit.Async; 
     2531var req=self.getXMLHttpRequest(); 
     2532if(opts.queryString){ 
     2533var qs=m.queryString(opts.queryString); 
     2534if(qs){ 
     2535url+="?"+qs; 
     2536} 
     2537} 
     2538if("username" in opts){ 
     2539req.open(opts.method,url,true,opts.username,opts.password); 
     2540}else{ 
     2541req.open(opts.method,url,true); 
     2542} 
     2543if(req.overrideMimeType&&opts.mimeType){ 
     2544req.overrideMimeType(opts.mimeType); 
     2545} 
     2546req.setRequestHeader("X-Requested-With","XMLHttpRequest"); 
     2547if(opts.headers){ 
     2548var _2bd=opts.headers; 
     2549if(!m.isArrayLike(_2bd)){ 
     2550_2bd=m.items(_2bd); 
     2551} 
     2552for(var i=0;i<_2bd.length;i++){ 
     2553var _2bf=_2bd[i]; 
     2554var name=_2bf[0]; 
     2555var _2c1=_2bf[1]; 
     2556req.setRequestHeader(name,_2c1); 
     2557} 
     2558} 
     2559return self.sendXMLHttpRequest(req,opts.sendContent); 
     2560},_buildURL:function(url){ 
     2561if(arguments.length>1){ 
     2562var m=MochiKit.Base; 
     2563var qs=m.queryString.apply(null,m.extend(null,arguments,1)); 
     2564if(qs){ 
     2565return url+"?"+qs; 
     2566} 
     2567} 
     2568return url; 
     2569},doSimpleXMLHttpRequest:function(url){ 
     2570var self=MochiKit.Async; 
     2571url=self._buildURL.apply(self,arguments); 
     2572return self.doXHR(url); 
     2573},loadJSONDoc:function(url){ 
     2574var self=MochiKit.Async; 
     2575url=self._buildURL.apply(self,arguments); 
     2576var d=self.doXHR(url,{"mimeType":"text/plain","headers":[["Accept","application/json"]]}); 
     2577d=d.addCallback(self.evalJSONRequest); 
     2578return d; 
     2579},wait:function(_2ca,_2cb){ 
     2580var d=new MochiKit.Async.Deferred(); 
     2581var m=MochiKit.Base; 
     2582if(typeof (_2cb)!="undefined"){ 
     2583d.addCallback(function(){ 
     2584return _2cb; 
     2585}); 
     2586} 
     2587var _2ce=setTimeout(m.bind("callback",d),Math.floor(_2ca*1000)); 
     2588d.canceller=function(){ 
     2589try{ 
     2590clearTimeout(_2ce); 
     2591} 
     2592catch(e){ 
     2593} 
     2594}; 
     2595return d; 
     2596},callLater:function(_2cf,func){ 
     2597var m=MochiKit.Base; 
     2598var _2d2=m.partial.apply(m,m.extend(null,arguments,1)); 
     2599return MochiKit.Async.wait(_2cf).addCallback(function(res){ 
     2600return _2d2(); 
     2601}); 
     2602}}); 
     2603MochiKit.Async.DeferredLock=function(){ 
     2604this.waiting=[]; 
     2605this.locked=false; 
     2606this.id=this._nextId(); 
     2607}; 
     2608MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){ 
     2609var d=new MochiKit.Async.Deferred(); 
     2610if(this.locked){ 
     2611this.waiting.push(d); 
     2612}else{ 
     2613this.locked=true; 
     2614d.callback(this); 
     2615} 
     2616return d; 
     2617},release:function(){ 
     2618if(!this.locked){ 
     2619throw TypeError("Tried to release an unlocked DeferredLock"); 
     2620} 
     2621this.locked=false; 
     2622if(this.waiting.length>0){ 
     2623this.locked=true; 
     2624this.waiting.shift().callback(this); 
     2625} 
     2626},_nextId:MochiKit.Base.counter(),repr:function(){ 
     2627var _2d5; 
     2628if(this.locked){ 
     2629_2d5="locked, "+this.waiting.length+" waiting"; 
     2630}else{ 
     2631_2d5="unlocked"; 
     2632} 
     2633return "DeferredLock("+this.id+", "+_2d5+")"; 
     2634},toString:MochiKit.Base.forwardCall("repr")}; 
     2635MochiKit.Async.DeferredList=function(list,_2d7,_2d8,_2d9,_2da){ 
     2636MochiKit.Async.Deferred.apply(this,[_2da]); 
     2637this.list=list; 
     2638var _2db=[]; 
     2639this.resultList=_2db; 
     2640this.finishedCount=0; 
     2641this.fireOnOneCallback=_2d7; 
     2642this.fireOnOneErrback=_2d8; 
     2643this.consumeErrors=_2d9; 
     2644var cb=MochiKit.Base.bind(this._cbDeferred,this); 
     2645for(var i=0;i<list.length;i++){ 
     2646var d=list[i]; 
     2647_2db.push(undefined); 
     2648d.addCallback(cb,i,true); 
     2649d.addErrback(cb,i,false); 
     2650} 
     2651if(list.length===0&&!_2d7){ 
     2652this.callback(this.resultList); 
     2653} 
     2654}; 
     2655MochiKit.Async.DeferredList.prototype=new MochiKit.Async.Deferred(); 
     2656MochiKit.Async.DeferredList.prototype._cbDeferred=function(_2df,_2e0,_2e1){ 
     2657this.resultList[_2df]=[_2e0,_2e1]; 
     2658this.finishedCount+=1; 
     2659if(this.fired==-1){ 
     2660if(_2e0&&this.fireOnOneCallback){ 
     2661this.callback([_2df,_2e1]); 
     2662}else{ 
     2663if(!_2e0&&this.fireOnOneErrback){ 
     2664this.errback(_2e1); 
     2665}else{ 
     2666if(this.finishedCount==this.list.length){ 
     2667this.callback(this.resultList); 
     2668} 
     2669} 
     2670} 
     2671} 
     2672if(!_2e0&&this.consumeErrors){ 
     2673_2e1=null; 
     2674} 
     2675return _2e1; 
     2676}; 
     2677MochiKit.Async.gatherResults=function(_2e2){ 
     2678var d=new MochiKit.Async.DeferredList(_2e2,false,true,false); 
     2679d.addCallback(function(_2e4){ 
     2680var ret=[]; 
     2681for(var i=0;i<_2e4.length;i++){ 
     2682ret.push(_2e4[i][1]); 
     2683} 
     2684return ret; 
     2685}); 
     2686return d; 
     2687}; 
     2688MochiKit.Async.maybeDeferred=function(func){ 
     2689var self=MochiKit.Async; 
     2690var _2e9; 
     2691try{ 
     2692var r=func.apply(null,MochiKit.Base.extend([],arguments,1)); 
     2693if(r instanceof self.Deferred){ 
     2694_2e9=r; 
     2695}else{ 
     2696if(r instanceof Error){ 
     2697_2e9=self.fail(r); 
     2698}else{ 
     2699_2e9=self.succeed(r); 
     2700} 
     2701} 
     2702} 
     2703catch(e){ 
     2704_2e9=self.fail(e); 
     2705} 
     2706return _2e9; 
     2707}; 
     2708MochiKit.Async.EXPORT=["AlreadyCalledError","CancelledError","BrowserComplianceError","GenericError","XMLHttpRequestError","Deferred","succeed","fail","getXMLHttpRequest","doSimpleXMLHttpRequest","loadJSONDoc","wait","callLater","sendXMLHttpRequest","DeferredLock","DeferredList","gatherResults","maybeDeferred","doXHR"]; 
     2709MochiKit.Async.EXPORT_OK=["evalJSONRequest"]; 
     2710MochiKit.Async.__new__=function(){ 
     2711var m=MochiKit.Base; 
     2712var ne=m.partial(m._newNamedError,this); 
     2713ne("AlreadyCalledError",function(_2ed){ 
     2714this.deferred=_2ed; 
     2715}); 
     2716ne("CancelledError",function(_2ee){ 
     2717this.deferred=_2ee; 
     2718}); 
     2719ne("BrowserComplianceError",function(msg){ 
     2720this.message=msg; 
     2721}); 
     2722ne("GenericError",function(msg){ 
     2723this.message=msg; 
     2724}); 
     2725ne("XMLHttpRequestError",function(req,msg){ 
     2726this.req=req; 
     2727this.message=msg; 
     2728try{ 
     2729this.number=req.status; 
     2730} 
     2731catch(e){ 
     2732} 
     2733}); 
     2734this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
     2735m.nameFunctions(this); 
     2736}; 
     2737MochiKit.Async.__new__(); 
     2738MochiKit.Base._exportSymbols(this,MochiKit.Async); 
     2739MochiKit.Base._deps("DOM",["Base"]); 
     2740MochiKit.DOM.NAME="MochiKit.DOM"; 
     2741MochiKit.DOM.VERSION="1.4.2"; 
     2742MochiKit.DOM.__repr__=function(){ 
     2743return "["+this.NAME+" "+this.VERSION+"]"; 
     2744}; 
     2745MochiKit.DOM.toString=function(){ 
     2746return this.__repr__(); 
     2747}; 
     2748MochiKit.DOM.EXPORT=["removeEmptyTextNodes","formContents","currentWindow","currentDocument","withWindow","withDocument","registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","isChildNode","getNodeAttribute","removeNodeAttribute","setNodeAttribute","updateNodeAttributes","appendChildNodes","insertSiblingNodesAfter","insertSiblingNodesBefore","replaceChildNodes","removeElement","swapDOM","BUTTON","TT","PRE","H1","H2","H3","H4","H5","H6","BR","CANVAS","HR","LABEL","TEXTAREA","FORM","STRONG","SELECT","OPTION","OPTGROUP","LEGEND","FIELDSET","P","UL","OL","LI","DL","DT","DD","TD","TR","THEAD","TBODY","TFOOT","TABLE","TH","INPUT","SPAN","A","DIV","IMG","getElement","$","getElementsByTagAndClassName","addToCallStack","addLoadEvent","focusOnLoad","setElementClass","toggleElementClass","addElementClass","removeElementClass","swapElementClass","hasElementClass","computedStyle","escapeHTML","toHTML","emitHTML","scrapeText","getFirstParentByTagAndClassName","getFirstElementByTagAndClassName"]; 
     2749MochiKit.DOM.EXPORT_OK=["domConverters"]; 
     2750MochiKit.DOM.DEPRECATED=[["computedStyle","MochiKit.Style.getStyle","1.4"],["elementDimensions","MochiKit.Style.getElementDimensions","1.4"],["elementPosition","MochiKit.Style.getElementPosition","1.4"],["getViewportDimensions","MochiKit.Style.getViewportDimensions","1.4"],["hideElement","MochiKit.Style.hideElement","1.4"],["makeClipping","MochiKit.Style.makeClipping","1.4.1"],["makePositioned","MochiKit.Style.makePositioned","1.4.1"],["setElementDimensions","MochiKit.Style.setElementDimensions","1.4"],["setElementPosition","MochiKit.Style.setElementPosition","1.4"],["setDisplayForElement","MochiKit.Style.setDisplayForElement","1.4"],["setOpacity","MochiKit.Style.setOpacity","1.4"],["showElement","MochiKit.Style.showElement","1.4"],["undoClipping","MochiKit.Style.undoClipping","1.4.1"],["undoPositioned","MochiKit.Style.undoPositioned","1.4.1"],["Coordinates","MochiKit.Style.Coordinates","1.4"],["Dimensions","MochiKit.Style.Dimensions","1.4"]]; 
     2751MochiKit.Base.update(MochiKit.DOM,{currentWindow:function(){ 
     2752return MochiKit.DOM._window; 
     2753},currentDocument:function(){ 
     2754return MochiKit.DOM._document; 
     2755},withWindow:function(win,func){ 
     2756var self=MochiKit.DOM; 
     2757var _2f6=self._document; 
     2758var _2f7=self._window; 
     2759var rval; 
     2760try{ 
     2761self._window=win; 
     2762self._document=win.document; 
     2763rval=func(); 
     2764} 
     2765catch(e){ 
     2766self._window=_2f7; 
     2767self._document=_2f6; 
     2768throw e; 
     2769} 
     2770self._window=_2f7; 
     2771self._document=_2f6; 
     2772return rval; 
     2773},formContents:function(elem){ 
     2774var _2fa=[]; 
     2775var _2fb=[]; 
     2776var m=MochiKit.Base; 
     2777var self=MochiKit.DOM; 
     2778if(typeof (elem)=="undefined"||elem===null){ 
     2779elem=self._document.body; 
     2780}else{ 
     2781elem=self.getElement(elem); 
     2782} 
     2783m.nodeWalk(elem,function(elem){ 
     2784var name=elem.name; 
     2785if(m.isNotEmpty(name)){ 
     2786var _300=elem.tagName.toUpperCase(); 
     2787if(_300==="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){ 
     2788return null; 
     2789} 
     2790if(_300==="SELECT"){ 
     2791if(elem.type=="select-one"){ 
     2792if(elem.selectedIndex>=0){ 
     2793var opt=elem.options[elem.selectedIndex]; 
     2794var v=opt.value; 
     2795if(!v){ 
     2796var h=opt.outerHTML; 
     2797if(h&&!h.match(/^[^>]+\svalue\s*=/i)){ 
     2798v=opt.text; 
     2799} 
     2800} 
     2801_2fa.push(name); 
     2802_2fb.push(v); 
     2803return null; 
     2804} 
     2805_2fa.push(name); 
     2806_2fb.push(""); 
     2807return null; 
     2808}else{ 
     2809var opts=elem.options; 
     2810if(!opts.length){ 
     2811_2fa.push(name); 
     2812_2fb.push(""); 
     2813return null; 
     2814} 
     2815for(var i=0;i<opts.length;i++){ 
     2816var opt=opts[i]; 
     2817if(!opt.selected){ 
     2818continue; 
     2819} 
     2820var v=opt.value; 
     2821if(!v){ 
     2822var h=opt.outerHTML; 
     2823if(h&&!h.match(/^[^>]+\svalue\s*=/i)){ 
     2824v=opt.text; 
     2825} 
     2826} 
     2827_2fa.push(name); 
     2828_2fb.push(v); 
     2829} 
     2830return null; 
     2831} 
     2832} 
     2833if(_300==="FORM"||_300==="P"||_300==="SPAN"||_300==="DIV"){ 
     2834return elem.childNodes; 
     2835} 
     2836_2fa.push(name); 
     2837_2fb.push(elem.value||""); 
     2838return null; 
     2839} 
     2840return elem.childNodes; 
     2841}); 
     2842return [_2fa,_2fb]; 
     2843},withDocument:function(doc,func){ 
     2844var self=MochiKit.DOM; 
     2845var _309=self._document; 
     2846var rval; 
     2847try{ 
     2848self._document=doc; 
     2849rval=func(); 
     2850} 
     2851catch(e){ 
     2852self._document=_309; 
     2853throw e; 
     2854} 
     2855self._document=_309; 
     2856return rval; 
     2857},registerDOMConverter:function(name,_30c,wrap,_30e){ 
     2858MochiKit.DOM.domConverters.register(name,_30c,wrap,_30e); 
     2859},coerceToDOM:function(node,ctx){ 
     2860var m=MochiKit.Base; 
     2861var im=MochiKit.Iter; 
     2862var self=MochiKit.DOM; 
     2863if(im){ 
     2864var iter=im.iter; 
     2865var _315=im.repeat; 
     2866} 
     2867var map=m.map; 
     2868var _317=self.domConverters; 
     2869var _318=arguments.callee; 
     2870var _319=m.NotFound; 
     2871while(true){ 
     2872if(typeof (node)=="undefined"||node===null){ 
     2873return null; 
     2874} 
     2875if(typeof (node)=="function"&&typeof (node.length)=="number"&&!(node instanceof Function)){ 
     2876node=im?im.list(node):m.extend(null,node); 
     2877} 
     2878if(typeof (node.nodeType)!="undefined"&&node.nodeType>0){ 
     2879return node; 
     2880} 
     2881if(typeof (node)=="number"||typeof (node)=="boolean"){ 
     2882node=node.toString(); 
     2883} 
     2884if(typeof (node)=="string"){ 
     2885return self._document.createTextNode(node); 
     2886} 
     2887if(typeof (node.__dom__)=="function"){ 
     2888node=node.__dom__(ctx); 
     2889continue; 
     2890} 
     2891if(typeof (node.dom)=="function"){ 
     2892node=node.dom(ctx); 
     2893continue; 
     2894} 
     2895if(typeof (node)=="function"){ 
     2896node=node.apply(ctx,[ctx]); 
     2897continue; 
     2898} 
     2899if(im){ 
     2900var _31a=null; 
     2901try{ 
     2902_31a=iter(node); 
     2903} 
     2904catch(e){ 
     2905} 
     2906if(_31a){ 
     2907return map(_318,_31a,_315(ctx)); 
     2908} 
     2909}else{ 
     2910if(m.isArrayLike(node)){ 
     2911var func=function(n){ 
     2912return _318(n,ctx); 
     2913}; 
     2914return map(func,node); 
     2915} 
     2916} 
     2917try{ 
     2918node=_317.match(node,ctx); 
     2919continue; 
     2920} 
     2921catch(e){ 
     2922if(e!=_319){ 
     2923throw e; 
     2924} 
     2925} 
     2926return self._document.createTextNode(node.toString()); 
     2927} 
     2928return undefined; 
     2929},isChildNode:function(node,_31e){ 
     2930var self=MochiKit.DOM; 
     2931if(typeof (node)=="string"){ 
     2932node=self.getElement(node); 
     2933} 
     2934if(typeof (_31e)=="string"){ 
     2935_31e=self.getElement(_31e); 
     2936} 
     2937if(typeof (node)=="undefined"||node===null){ 
     2938return false; 
     2939} 
     2940while(node!=null&&node!==self._document){ 
     2941if(node===_31e){ 
     2942return true; 
     2943} 
     2944node=node.parentNode; 
     2945} 
     2946return false; 
     2947},setNodeAttribute:function(node,attr,_322){ 
     2948var o={}; 
     2949o[attr]=_322; 
     2950try{ 
     2951return MochiKit.DOM.updateNodeAttributes(node,o); 
     2952} 
     2953catch(e){ 
     2954} 
     2955return null; 
     2956},getNodeAttribute:function(node,attr){ 
     2957var self=MochiKit.DOM; 
     2958var _327=self.attributeArray.renames[attr]; 
     2959var _328=self.attributeArray.ignoreAttr[attr]; 
     2960node=self.getElement(node); 
     2961try{ 
     2962if(_327){ 
     2963return node[_327]; 
     2964} 
     2965var _329=node.getAttribute(attr); 
     2966if(_329!=_328){ 
     2967return _329; 
     2968} 
     2969} 
     2970catch(e){ 
     2971} 
     2972return null; 
     2973},removeNodeAttribute:function(node,attr){ 
     2974var self=MochiKit.DOM; 
     2975var _32d=self.attributeArray.renames[attr]; 
     2976node=self.getElement(node); 
     2977try{ 
     2978if(_32d){ 
     2979return node[_32d]; 
     2980} 
     2981return node.removeAttribute(attr); 
     2982} 
     2983catch(e){ 
     2984} 
     2985return null; 
     2986},updateNodeAttributes:function(node,_32f){ 
     2987var elem=node; 
     2988var self=MochiKit.DOM; 
     2989if(typeof (node)=="string"){ 
     2990elem=self.getElement(node); 
     2991} 
     2992if(_32f){ 
     2993var _332=MochiKit.Base.updatetree; 
     2994if(self.attributeArray.compliant){ 
     2995for(var k in _32f){ 
     2996var v=_32f[k]; 
     2997if(typeof (v)=="object"&&typeof (elem[k])=="object"){ 
     2998if(k=="style"&&MochiKit.Style){ 
     2999MochiKit.Style.setStyle(elem,v); 
     3000}else{ 
     3001_332(elem[k],v); 
     3002} 
     3003}else{ 
     3004if(k.substring(0,2)=="on"){ 
     3005if(typeof (v)=="string"){ 
     3006v=new Function(v); 
     3007} 
     3008elem[k]=v; 
     3009}else{ 
     3010elem.setAttribute(k,v); 
     3011} 
     3012} 
     3013if(typeof (elem[k])=="string"&&elem[k]!=v){ 
     3014elem[k]=v; 
     3015} 
     3016} 
     3017}else{ 
     3018var _335=self.attributeArray.renames; 
     3019for(var k in _32f){ 
     3020v=_32f[k]; 
     3021var _336=_335[k]; 
     3022if(k=="style"&&typeof (v)=="string"){ 
     3023elem.style.cssText=v; 
     3024}else{ 
     3025if(typeof (_336)=="string"){ 
     3026elem[_336]=v; 
     3027}else{ 
     3028if(typeof (elem[k])=="object"&&typeof (v)=="object"){ 
     3029if(k=="style"&&MochiKit.Style){ 
     3030MochiKit.Style.setStyle(elem,v); 
     3031}else{ 
     3032_332(elem[k],v); 
     3033} 
     3034}else{ 
     3035if(k.substring(0,2)=="on"){ 
     3036if(typeof (v)=="string"){ 
     3037v=new Function(v); 
     3038} 
     3039elem[k]=v; 
     3040}else{ 
     3041elem.setAttribute(k,v); 
     3042} 
     3043} 
     3044} 
     3045} 
     3046if(typeof (elem[k])=="string"&&elem[k]!=v){ 
     3047elem[k]=v; 
     3048} 
     3049} 
     3050} 
     3051} 
     3052return elem; 
     3053},appendChildNodes:function(node){ 
     3054var elem=node; 
     3055var self=MochiKit.DOM; 
     3056if(typeof (node)=="string"){ 
     3057elem=self.getElement(node); 
     3058} 
     3059var _33a=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; 
     3060var _33b=MochiKit.Base.concat; 
     3061while(_33a.length){ 
     3062var n=_33a.shift(); 
     3063if(typeof (n)=="undefined"||n===null){ 
     3064}else{ 
     3065if(typeof (n.nodeType)=="number"){ 
     3066elem.appendChild(n); 
     3067}else{ 
     3068_33a=_33b(n,_33a); 
     3069} 
     3070} 
     3071} 
     3072return elem; 
     3073},insertSiblingNodesBefore:function(node){ 
     3074var elem=node; 
     3075var self=MochiKit.DOM; 
     3076if(typeof (node)=="string"){ 
     3077elem=self.getElement(node); 
     3078} 
     3079var _340=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; 
     3080var _341=elem.parentNode; 
     3081var _342=MochiKit.Base.concat; 
     3082while(_340.length){ 
     3083var n=_340.shift(); 
     3084if(typeof (n)=="undefined"||n===null){ 
     3085}else{ 
     3086if(typeof (n.nodeType)=="number"){ 
     3087_341.insertBefore(n,elem); 
     3088}else{ 
     3089_340=_342(n,_340); 
     3090} 
     3091} 
     3092} 
     3093return _341; 
     3094},insertSiblingNodesAfter:function(node){ 
     3095var elem=node; 
     3096var self=MochiKit.DOM; 
     3097if(typeof (node)=="string"){ 
     3098elem=self.getElement(node); 
     3099} 
     3100var _347=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; 
     3101if(elem.nextSibling){ 
     3102return self.insertSiblingNodesBefore(elem.nextSibling,_347); 
     3103}else{ 
     3104return self.appendChildNodes(elem.parentNode,_347); 
     3105} 
     3106},replaceChildNodes:function(node){ 
     3107var elem=node; 
     3108var self=MochiKit.DOM; 
     3109if(typeof (node)=="string"){ 
     3110elem=self.getElement(node); 
     3111arguments[0]=elem; 
     3112} 
     3113var _34b; 
     3114while((_34b=elem.firstChild)){ 
     3115elem.removeChild(_34b); 
     3116} 
     3117if(arguments.length<2){ 
     3118return elem; 
     3119}else{ 
     3120return self.appendChildNodes.apply(this,arguments); 
     3121} 
     3122},createDOM:function(name,_34d){ 
     3123var elem; 
     3124var self=MochiKit.DOM; 
     3125var m=MochiKit.Base; 
     3126if(typeof (_34d)=="string"||typeof (_34d)=="number"){ 
     3127var args=m.extend([name,null],arguments,1); 
     3128return arguments.callee.apply(this,args); 
     3129} 
     3130if(typeof (name)=="string"){ 
     3131var _352=self._xhtml; 
     3132if(_34d&&!self.attributeArray.compliant){ 
     3133var _353=""; 
     3134if("name" in _34d){ 
     3135_353+=" name=\""+self.escapeHTML(_34d.name)+"\""; 
     3136} 
     3137if(name=="input"&&"type" in _34d){ 
     3138_353+=" type=\""+self.escapeHTML(_34d.type)+"\""; 
     3139} 
     3140if(_353){ 
     3141name="<"+name+_353+">"; 
     3142_352=false; 
     3143} 
     3144} 
     3145var d=self._document; 
     3146if(_352&&d===document){ 
     3147elem=d.createElementNS("http://www.w3.org/1999/xhtml",name); 
     3148}else{ 
     3149elem=d.createElement(name); 
     3150} 
     3151}else{ 
     3152elem=name; 
     3153} 
     3154if(_34d){ 
     3155self.updateNodeAttributes(elem,_34d); 
     3156} 
     3157if(arguments.length<=2){ 
     3158return elem; 
     3159}else{ 
     3160var args=m.extend([elem],arguments,2); 
     3161return self.appendChildNodes.apply(this,args); 
     3162} 
     3163},createDOMFunc:function(){ 
     3164var m=MochiKit.Base; 
     3165return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments)); 
     3166},removeElement:function(elem){ 
     3167var self=MochiKit.DOM; 
     3168var e=self.coerceToDOM(self.getElement(elem)); 
     3169e.parentNode.removeChild(e); 
     3170return e; 
     3171},swapDOM:function(dest,src){ 
     3172var self=MochiKit.DOM; 
     3173dest=self.getElement(dest); 
     3174var _35c=dest.parentNode; 
     3175if(src){ 
     3176src=self.coerceToDOM(self.getElement(src),_35c); 
     3177_35c.replaceChild(src,dest); 
     3178}else{ 
     3179_35c.removeChild(dest); 
     3180} 
     3181return src; 
     3182},getElement:function(id){ 
     3183var self=MochiKit.DOM; 
     3184if(arguments.length==1){ 
     3185return ((typeof (id)=="string")?self._document.getElementById(id):id); 
     3186}else{ 
     3187return MochiKit.Base.map(self.getElement,arguments); 
     3188} 
     3189},getElementsByTagAndClassName:function(_35f,_360,_361){ 
     3190var self=MochiKit.DOM; 
     3191if(typeof (_35f)=="undefined"||_35f===null){ 
     3192_35f="*"; 
     3193} 
     3194if(typeof (_361)=="undefined"||_361===null){ 
     3195_361=self._document; 
     3196} 
     3197_361=self.getElement(_361); 
     3198if(_361==null){ 
     3199return []; 
     3200} 
     3201var _363=(_361.getElementsByTagName(_35f)||self._document.all); 
     3202if(typeof (_360)=="undefined"||_360===null){ 
     3203return MochiKit.Base.extend(null,_363); 
     3204} 
     3205var _364=[]; 
     3206for(var i=0;i<_363.length;i++){ 
     3207var _366=_363[i]; 
     3208var cls=_366.className; 
     3209if(typeof (cls)!="string"){ 
     3210cls=_366.getAttribute("class"); 
     3211} 
     3212if(typeof (cls)=="string"){ 
     3213var _368=cls.split(" "); 
     3214for(var j=0;j<_368.length;j++){ 
     3215if(_368[j]==_360){ 
     3216_364.push(_366); 
     3217break; 
     3218} 
     3219} 
     3220} 
     3221} 
     3222return _364; 
     3223},_newCallStack:function(path,once){ 
     3224var rval=function(){ 
     3225var _36d=arguments.callee.callStack; 
     3226for(var i=0;i<_36d.length;i++){ 
     3227if(_36d[i].apply(this,arguments)===false){ 
     3228break; 
     3229} 
     3230} 
     3231if(once){ 
     3232try{ 
     3233this[path]=null; 
     3234} 
     3235catch(e){ 
     3236} 
     3237} 
     3238}; 
     3239rval.callStack=[]; 
     3240return rval; 
     3241},addToCallStack:function(_36f,path,func,once){ 
     3242var self=MochiKit.DOM; 
     3243var _374=_36f[path]; 
     3244var _375=_374; 
     3245if(!(typeof (_374)=="function"&&typeof (_374.callStack)=="object"&&_374.callStack!==null)){ 
     3246_375=self._newCallStack(path,once); 
     3247if(typeof (_374)=="function"){ 
     3248_375.callStack.push(_374); 
     3249} 
     3250_36f[path]=_375; 
     3251} 
     3252_375.callStack.push(func); 
     3253},addLoadEvent:function(func){ 
     3254var self=MochiKit.DOM; 
     3255self.addToCallStack(self._window,"onload",func,true); 
     3256},focusOnLoad:function(_378){ 
     3257var self=MochiKit.DOM; 
     3258self.addLoadEvent(function(){ 
     3259_378=self.getElement(_378); 
     3260if(_378){ 
     3261_378.focus(); 
     3262} 
     3263}); 
     3264},setElementClass:function(_37a,_37b){ 
     3265var self=MochiKit.DOM; 
     3266var obj=self.getElement(_37a); 
     3267if(self.attributeArray.compliant){ 
     3268obj.setAttribute("class",_37b); 
     3269}else{ 
     3270obj.setAttribute("className",_37b); 
     3271} 
     3272},toggleElementClass:function(_37e){ 
     3273var self=MochiKit.DOM; 
     3274for(var i=1;i<arguments.length;i++){ 
     3275var obj=self.getElement(arguments[i]); 
     3276if(!self.addElementClass(obj,_37e)){ 
     3277self.removeElementClass(obj,_37e); 
     3278} 
     3279} 
     3280},addElementClass:function(_382,_383){ 
     3281var self=MochiKit.DOM; 
     3282var obj=self.getElement(_382); 
     3283var cls=obj.className; 
     3284if(typeof (cls)!="string"){ 
     3285cls=obj.getAttribute("class"); 
     3286} 
     3287if(typeof (cls)!="string"||cls.length===0){ 
     3288self.setElementClass(obj,_383); 
     3289return true; 
     3290} 
     3291if(cls==_383){ 
     3292return false; 
     3293} 
     3294var _387=cls.split(" "); 
     3295for(var i=0;i<_387.length;i++){ 
     3296if(_387[i]==_383){ 
     3297return false; 
     3298} 
     3299} 
     3300self.setElementClass(obj,cls+" "+_383); 
     3301return true; 
     3302},removeElementClass:function(_389,_38a){ 
     3303var self=MochiKit.DOM; 
     3304var obj=self.getElement(_389); 
     3305var cls=obj.className; 
     3306if(typeof (cls)!="string"){ 
     3307cls=obj.getAttribute("class"); 
     3308} 
     3309if(typeof (cls)!="string"||cls.length===0){ 
     3310return false; 
     3311} 
     3312if(cls==_38a){ 
     3313self.setElementClass(obj,""); 
     3314return true; 
     3315} 
     3316var _38e=cls.split(" "); 
     3317for(var i=0;i<_38e.length;i++){ 
     3318if(_38e[i]==_38a){ 
     3319_38e.splice(i,1); 
     3320self.setElementClass(obj,_38e.join(" ")); 
     3321return true; 
     3322} 
     3323} 
     3324return false; 
     3325},swapElementClass:function(_390,_391,_392){ 
     3326var obj=MochiKit.DOM.getElement(_390); 
     3327var res=MochiKit.DOM.removeElementClass(obj,_391); 
     3328if(res){ 
     3329MochiKit.DOM.addElementClass(obj,_392); 
     3330} 
     3331return res; 
     3332},hasElementClass:function(_395,_396){ 
     3333var obj=MochiKit.DOM.getElement(_395); 
     3334if(obj==null){ 
     3335return false; 
     3336} 
     3337var cls=obj.className; 
     3338if(typeof (cls)!="string"){ 
     3339cls=obj.getAttribute("class"); 
     3340} 
     3341if(typeof (cls)!="string"){ 
     3342return false; 
     3343} 
     3344var _399=cls.split(" "); 
     3345for(var i=1;i<arguments.length;i++){ 
     3346var good=false; 
     3347for(var j=0;j<_399.length;j++){ 
     3348if(_399[j]==arguments[i]){ 
     3349good=true; 
     3350break; 
     3351} 
     3352} 
     3353if(!good){ 
     3354return false; 
     3355} 
     3356} 
     3357return true; 
     3358},escapeHTML:function(s){ 
     3359return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"); 
     3360},toHTML:function(dom){ 
     3361return MochiKit.DOM.emitHTML(dom).join(""); 
     3362},emitHTML:function(dom,lst){ 
     3363if(typeof (lst)=="undefined"||lst===null){ 
     3364lst=[]; 
     3365} 
     3366var _3a1=[dom]; 
     3367var self=MochiKit.DOM; 
     3368var _3a3=self.escapeHTML; 
     3369var _3a4=self.attributeArray; 
     3370while(_3a1.length){ 
     3371dom=_3a1.pop(); 
     3372if(typeof (dom)=="string"){ 
     3373lst.push(dom); 
     3374}else{ 
     3375if(dom.nodeType==1){ 
     3376lst.push("<"+dom.tagName.toLowerCase()); 
     3377var _3a5=[]; 
     3378var _3a6=_3a4(dom); 
     3379for(var i=0;i<_3a6.length;i++){ 
     3380var a=_3a6[i]; 
     3381_3a5.push([" ",a.name,"=\"",_3a3(a.value),"\""]); 
     3382} 
     3383_3a5.sort(); 
     3384for(i=0;i<_3a5.length;i++){ 
     3385var _3a9=_3a5[i]; 
     3386for(var j=0;j<_3a9.length;j++){ 
     3387lst.push(_3a9[j]); 
     3388} 
     3389} 
     3390if(dom.hasChildNodes()){ 
     3391lst.push(">"); 
     3392_3a1.push("</"+dom.tagName.toLowerCase()+">"); 
     3393var _3ab=dom.childNodes; 
     3394for(i=_3ab.length-1;i>=0;i--){ 
     3395_3a1.push(_3ab[i]); 
     3396} 
     3397}else{ 
     3398lst.push("/>"); 
     3399} 
     3400}else{ 
     3401if(dom.nodeType==3){ 
     3402lst.push(_3a3(dom.nodeValue)); 
     3403} 
     3404} 
     3405} 
     3406} 
     3407return lst; 
     3408},scrapeText:function(node,_3ad){ 
     3409var rval=[]; 
     3410(function(node){ 
     3411var cn=node.childNodes; 
     3412if(cn){ 
     3413for(var i=0;i<cn.length;i++){ 
     3414arguments.callee.call(this,cn[i]); 
     3415} 
     3416} 
     3417var _3b2=node.nodeValue; 
     3418if(typeof (_3b2)=="string"){ 
     3419rval.push(_3b2); 
     3420} 
     3421})(MochiKit.DOM.getElement(node)); 
     3422if(_3ad){ 
     3423return rval; 
     3424}else{ 
     3425return rval.join(""); 
     3426} 
     3427},removeEmptyTextNodes:function(_3b3){ 
     3428_3b3=MochiKit.DOM.getElement(_3b3); 
     3429for(var i=0;i<_3b3.childNodes.length;i++){ 
     3430var node=_3b3.childNodes[i]; 
     3431if(node.nodeType==3&&!/\S/.test(node.nodeValue)){ 
     3432node.parentNode.removeChild(node); 
     3433} 
     3434} 
     3435},getFirstElementByTagAndClassName:function(_3b6,_3b7,_3b8){ 
     3436var self=MochiKit.DOM; 
     3437if(typeof (_3b6)=="undefined"||_3b6===null){ 
     3438_3b6="*"; 
     3439} 
     3440if(typeof (_3b8)=="undefined"||_3b8===null){ 
     3441_3b8=self._document; 
     3442} 
     3443_3b8=self.getElement(_3b8); 
     3444if(_3b8==null){ 
     3445return null; 
     3446} 
     3447var _3ba=(_3b8.getElementsByTagName(_3b6)||self._document.all); 
     3448if(_3ba.length<=0){ 
     3449return null; 
     3450}else{ 
     3451if(typeof (_3b7)=="undefined"||_3b7===null){ 
     3452return _3ba[0]; 
     3453} 
     3454} 
     3455for(var i=0;i<_3ba.length;i++){ 
     3456var _3bc=_3ba[i]; 
     3457var cls=_3bc.className; 
     3458if(typeof (cls)!="string"){ 
     3459cls=_3bc.getAttribute("class"); 
     3460} 
     3461if(typeof (cls)=="string"){ 
     3462var _3be=cls.split(" "); 
     3463for(var j=0;j<_3be.length;j++){ 
     3464if(_3be[j]==_3b7){ 
     3465return _3bc; 
     3466} 
     3467} 
     3468} 
     3469} 
     3470return null; 
     3471},getFirstParentByTagAndClassName:function(elem,_3c1,_3c2){ 
     3472var self=MochiKit.DOM; 
     3473elem=self.getElement(elem); 
     3474if(typeof (_3c1)=="undefined"||_3c1===null){ 
     3475_3c1="*"; 
     3476}else{ 
     3477_3c1=_3c1.toUpperCase(); 
     3478} 
     3479if(typeof (_3c2)=="undefined"||_3c2===null){ 
     3480_3c2=null; 
     3481} 
     3482if(elem){ 
     3483elem=elem.parentNode; 
     3484} 
     3485while(elem&&elem.tagName){ 
     3486var _3c4=elem.tagName.toUpperCase(); 
     3487if((_3c1==="*"||_3c1==_3c4)&&(_3c2===null||self.hasElementClass(elem,_3c2))){ 
     3488return elem; 
     3489} 
     3490elem=elem.parentNode; 
     3491} 
     3492return null; 
     3493},__new__:function(win){ 
     3494var m=MochiKit.Base; 
     3495if(typeof (document)!="undefined"){ 
     3496this._document=document; 
     3497var _3c7="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
     3498this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===_3c7); 
     3499}else{ 
     3500if(MochiKit.MockDOM){ 
     3501this._document=MochiKit.MockDOM.document; 
     3502} 
     3503} 
     3504this._window=win; 
     3505this.domConverters=new m.AdapterRegistry(); 
     3506var _3c8=this._document.createElement("span"); 
     3507var _3c9; 
     3508if(_3c8&&_3c8.attributes&&_3c8.attributes.length>0){ 
     3509var _3ca=m.filter; 
     3510_3c9=function(node){ 
     3511return _3ca(_3c9.ignoreAttrFilter,node.attributes); 
     3512}; 
     3513_3c9.ignoreAttr={}; 
     3514var _3cc=_3c8.attributes; 
     3515var _3cd=_3c9.ignoreAttr; 
     3516for(var i=0;i<_3cc.length;i++){ 
     3517var a=_3cc[i]; 
     3518_3cd[a.name]=a.value; 
     3519} 
     3520_3c9.ignoreAttrFilter=function(a){ 
     3521return (_3c9.ignoreAttr[a.name]!=a.value); 
     3522}; 
     3523_3c9.compliant=false; 
     3524_3c9.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor","cellspacing":"cellSpacing","cellpadding":"cellPadding"}; 
     3525}else{ 
     3526_3c9=function(node){ 
     3527return node.attributes; 
     3528}; 
     3529_3c9.compliant=true; 
     3530_3c9.ignoreAttr={}; 
     3531_3c9.renames={}; 
     3532} 
     3533this.attributeArray=_3c9; 
     3534var _3d2=function(_3d3,arr){ 
     3535var _3d5=arr[0]; 
     3536var _3d6=arr[1]; 
     3537var _3d7=_3d6.split(".")[1]; 
     3538var str=""; 
     3539str+="if (!MochiKit."+_3d7+") { throw new Error(\""; 
     3540str+="This function has been deprecated and depends on MochiKit."; 
     3541str+=_3d7+".\");}"; 
     3542str+="return "+_3d6+".apply(this, arguments);"; 
     3543MochiKit[_3d3][_3d5]=new Function(str); 
     3544}; 
     3545for(var i=0;i<MochiKit.DOM.DEPRECATED.length;i++){ 
     3546_3d2("DOM",MochiKit.DOM.DEPRECATED[i]); 
     3547} 
     3548var _3d9=this.createDOMFunc; 
     3549this.UL=_3d9("ul"); 
     3550this.OL=_3d9("ol"); 
     3551this.LI=_3d9("li"); 
     3552this.DL=_3d9("dl"); 
     3553this.DT=_3d9("dt"); 
     3554this.DD=_3d9("dd"); 
     3555this.TD=_3d9("td"); 
     3556this.TR=_3d9("tr"); 
     3557this.TBODY=_3d9("tbody"); 
     3558this.THEAD=_3d9("thead"); 
     3559this.TFOOT=_3d9("tfoot"); 
     3560this.TABLE=_3d9("table"); 
     3561this.TH=_3d9("th"); 
     3562this.INPUT=_3d9("input"); 
     3563this.SPAN=_3d9("span"); 
     3564this.A=_3d9("a"); 
     3565this.DIV=_3d9("div"); 
     3566this.IMG=_3d9("img"); 
     3567this.BUTTON=_3d9("button"); 
     3568this.TT=_3d9("tt"); 
     3569this.PRE=_3d9("pre"); 
     3570this.H1=_3d9("h1"); 
     3571this.H2=_3d9("h2"); 
     3572this.H3=_3d9("h3"); 
     3573this.H4=_3d9("h4"); 
     3574this.H5=_3d9("h5"); 
     3575this.H6=_3d9("h6"); 
     3576this.BR=_3d9("br"); 
     3577this.HR=_3d9("hr"); 
     3578this.LABEL=_3d9("label"); 
     3579this.TEXTAREA=_3d9("textarea"); 
     3580this.FORM=_3d9("form"); 
     3581this.P=_3d9("p"); 
     3582this.SELECT=_3d9("select"); 
     3583this.OPTION=_3d9("option"); 
     3584this.OPTGROUP=_3d9("optgroup"); 
     3585this.LEGEND=_3d9("legend"); 
     3586this.FIELDSET=_3d9("fieldset"); 
     3587this.STRONG=_3d9("strong"); 
     3588this.CANVAS=_3d9("canvas"); 
     3589this.$=this.getElement; 
     3590this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
     3591m.nameFunctions(this); 
     3592}}); 
     3593MochiKit.DOM.__new__(((typeof (window)=="undefined")?this:window)); 
     3594if(MochiKit.__export__){ 
     3595withWindow=MochiKit.DOM.withWindow; 
     3596withDocument=MochiKit.DOM.withDocument; 
     3597} 
     3598MochiKit.Base._exportSymbols(this,MochiKit.DOM); 
     3599MochiKit.Base._deps("Selector",["Base","DOM","Iter"]); 
     3600MochiKit.Selector.NAME="MochiKit.Selector"; 
     3601MochiKit.Selector.VERSION="1.4.2"; 
     3602MochiKit.Selector.__repr__=function(){ 
     3603return "["+this.NAME+" "+this.VERSION+"]"; 
     3604}; 
     3605MochiKit.Selector.toString=function(){ 
     3606return this.__repr__(); 
     3607}; 
     3608MochiKit.Selector.EXPORT=["Selector","findChildElements","findDocElements","$$"]; 
     3609MochiKit.Selector.EXPORT_OK=[]; 
     3610MochiKit.Selector.Selector=function(_3da){ 
     3611this.params={classNames:[],pseudoClassNames:[]}; 
     3612this.expression=_3da.toString().replace(/(^\s+|\s+$)/g,""); 
     3613this.parseExpression(); 
     3614this.compileMatcher(); 
     3615}; 
     3616MochiKit.Selector.Selector.prototype={__class__:MochiKit.Selector.Selector,parseExpression:function(){ 
     3617function abort(_3db){ 
     3618throw "Parse error in selector: "+_3db; 
     3619} 
     3620if(this.expression==""){ 
     3621abort("empty expression"); 
     3622} 
     3623var repr=MochiKit.Base.repr; 
     3624var _3dd=this.params; 
     3625var expr=this.expression; 
     3626var _3df,_3e0,_3e1,rest; 
     3627while(_3df=expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!^$*]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)){ 
     3628_3dd.attributes=_3dd.attributes||[]; 
     3629_3dd.attributes.push({name:_3df[2],operator:_3df[3],value:_3df[4]||_3df[5]||""}); 
     3630expr=_3df[1]; 
     3631} 
     3632if(expr=="*"){ 
     3633return this.params.wildcard=true; 
     3634} 
     3635while(_3df=expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+(?:\([^)]*\))?)(.*)/i)){ 
     3636_3e0=_3df[1]; 
     3637_3e1=_3df[2]; 
     3638rest=_3df[3]; 
     3639switch(_3e0){ 
     3640case "#": 
     3641_3dd.id=_3e1; 
     3642break; 
     3643case ".": 
     3644_3dd.classNames.push(_3e1); 
     3645break; 
     3646case ":": 
     3647_3dd.pseudoClassNames.push(_3e1); 
     3648break; 
     3649case "": 
     3650case undefined: 
     3651_3dd.tagName=_3e1.toUpperCase(); 
     3652break; 
     3653default: 
     3654abort(repr(expr)); 
     3655} 
     3656expr=rest; 
     3657} 
     3658if(expr.length>0){ 
     3659abort(repr(expr)); 
     3660} 
     3661},buildMatchExpression:function(){ 
     3662var repr=MochiKit.Base.repr; 
     3663var _3e4=this.params; 
     3664var _3e5=[]; 
     3665var _3e6,i; 
     3666function childElements(_3e8){ 
     3667return "MochiKit.Base.filter(function (node) { return node.nodeType == 1; }, "+_3e8+".childNodes)"; 
     3668} 
     3669if(_3e4.wildcard){ 
     3670_3e5.push("true"); 
     3671} 
     3672if(_3e6=_3e4.id){ 
     3673_3e5.push("element.id == "+repr(_3e6)); 
     3674} 
     3675if(_3e6=_3e4.tagName){ 
     3676_3e5.push("element.tagName.toUpperCase() == "+repr(_3e6)); 
     3677} 
     3678if((_3e6=_3e4.classNames).length>0){ 
     3679for(i=0;i<_3e6.length;i++){ 
     3680_3e5.push("MochiKit.DOM.hasElementClass(element, "+repr(_3e6[i])+")"); 
     3681} 
     3682} 
     3683if((_3e6=_3e4.pseudoClassNames).length>0){ 
     3684for(i=0;i<_3e6.length;i++){ 
     3685var _3e9=_3e6[i].match(/^([^(]+)(?:\((.*)\))?$/); 
     3686var _3ea=_3e9[1]; 
     3687var _3eb=_3e9[2]; 
     3688switch(_3ea){ 
     3689case "root": 
     3690_3e5.push("element.nodeType == 9 || element === element.ownerDocument.documentElement"); 
     3691break; 
     3692case "nth-child": 
     3693case "nth-last-child": 
     3694case "nth-of-type": 
     3695case "nth-last-of-type": 
     3696_3e9=_3eb.match(/^((?:(\d+)n\+)?(\d+)|odd|even)$/); 
     3697if(!_3e9){ 
     3698throw "Invalid argument to pseudo element nth-child: "+_3eb; 
     3699} 
     3700var a,b; 
     3701if(_3e9[0]=="odd"){ 
     3702a=2; 
     3703b=1; 
     3704}else{ 
     3705if(_3e9[0]=="even"){ 
     3706a=2; 
     3707b=0; 
     3708}else{ 
     3709a=_3e9[2]&&parseInt(_3e9)||null; 
     3710b=parseInt(_3e9[3]); 
     3711} 
     3712} 
     3713_3e5.push("this.nthChild(element,"+a+","+b+","+!!_3ea.match("^nth-last")+","+!!_3ea.match("of-type$")+")"); 
     3714break; 
     3715case "first-child": 
     3716_3e5.push("this.nthChild(element, null, 1)"); 
     3717break; 
     3718case "last-child": 
     3719_3e5.push("this.nthChild(element, null, 1, true)"); 
     3720break; 
     3721case "first-of-type": 
     3722_3e5.push("this.nthChild(element, null, 1, false, true)"); 
     3723break; 
     3724case "last-of-type": 
     3725_3e5.push("this.nthChild(element, null, 1, true, true)"); 
     3726break; 
     3727case "only-child": 
     3728_3e5.push(childElements("element.parentNode")+".length == 1"); 
     3729break; 
     3730case "only-of-type": 
     3731_3e5.push("MochiKit.Base.filter(function (node) { return node.tagName == element.tagName; }, "+childElements("element.parentNode")+").length == 1"); 
     3732break; 
     3733case "empty": 
     3734_3e5.push("element.childNodes.length == 0"); 
     3735break; 
     3736case "enabled": 
     3737_3e5.push("(this.isUIElement(element) && element.disabled === false)"); 
     3738break; 
     3739case "disabled": 
     3740_3e5.push("(this.isUIElement(element) && element.disabled === true)"); 
     3741break; 
     3742case "checked": 
     3743_3e5.push("(this.isUIElement(element) && element.checked === true)"); 
     3744break; 
     3745case "not": 
     3746var _3ee=new MochiKit.Selector.Selector(_3eb); 
     3747_3e5.push("!( "+_3ee.buildMatchExpression()+")"); 
     3748break; 
     3749} 
     3750} 
     3751} 
     3752if(_3e6=_3e4.attributes){ 
     3753MochiKit.Base.map(function(_3ef){ 
     3754var _3f0="MochiKit.DOM.getNodeAttribute(element, "+repr(_3ef.name)+")"; 
     3755var _3f1=function(_3f2){ 
     3756return _3f0+".split("+repr(_3f2)+")"; 
     3757}; 
     3758_3e5.push(_3f0+" != null"); 
     3759switch(_3ef.operator){ 
     3760case "=": 
     3761_3e5.push(_3f0+" == "+repr(_3ef.value)); 
     3762break; 
     3763case "~=": 
     3764_3e5.push("MochiKit.Base.findValue("+_3f1(" ")+", "+repr(_3ef.value)+") > -1"); 
     3765break; 
     3766case "^=": 
     3767_3e5.push(_3f0+".substring(0, "+_3ef.value.length+") == "+repr(_3ef.value)); 
     3768break; 
     3769case "$=": 
     3770_3e5.push(_3f0+".substring("+_3f0+".length - "+_3ef.value.length+") == "+repr(_3ef.value)); 
     3771break; 
     3772case "*=": 
     3773_3e5.push(_3f0+".match("+repr(_3ef.value)+")"); 
     3774break; 
     3775case "|=": 
     3776_3e5.push(_3f1("-")+"[0].toUpperCase() == "+repr(_3ef.value.toUpperCase())); 
     3777break; 
     3778case "!=": 
     3779_3e5.push(_3f0+" != "+repr(_3ef.value)); 
     3780break; 
     3781case "": 
     3782case undefined: 
     3783break; 
     3784default: 
     3785throw "Unknown operator "+_3ef.operator+" in selector"; 
     3786} 
     3787},_3e6); 
     3788} 
     3789return _3e5.join(" && "); 
     3790},compileMatcher:function(){ 
     3791var code="return (!element.tagName) ? false : "+this.buildMatchExpression()+";"; 
     3792this.match=new Function("element",code); 
     3793},nthChild:function(_3f4,a,b,_3f7,_3f8){ 
     3794var _3f9=MochiKit.Base.filter(function(node){ 
     3795return node.nodeType==1; 
     3796},_3f4.parentNode.childNodes); 
     3797if(_3f8){ 
     3798_3f9=MochiKit.Base.filter(function(node){ 
     3799return node.tagName==_3f4.tagName; 
     3800},_3f9); 
     3801} 
     3802if(_3f7){ 
     3803_3f9=MochiKit.Iter.reversed(_3f9); 
     3804} 
     3805if(a){ 
     3806var _3fc=MochiKit.Base.findIdentical(_3f9,_3f4); 
     3807return ((_3fc+1-b)/a)%1==0; 
     3808}else{ 
     3809return b==MochiKit.Base.findIdentical(_3f9,_3f4)+1; 
     3810} 
     3811},isUIElement:function(_3fd){ 
     3812return MochiKit.Base.findValue(["input","button","select","option","textarea","object"],_3fd.tagName.toLowerCase())>-1; 
     3813},findElements:function(_3fe,axis){ 
     3814var _400; 
     3815if(axis==undefined){ 
     3816axis=""; 
     3817} 
     3818function inScope(_401,_402){ 
     3819if(axis==""){ 
     3820return MochiKit.DOM.isChildNode(_401,_402); 
     3821}else{ 
     3822if(axis==">"){ 
     3823return _401.parentNode===_402; 
     3824}else{ 
     3825if(axis=="+"){ 
     3826return _401===nextSiblingElement(_402); 
     3827}else{ 
     3828if(axis=="~"){ 
     3829var _403=_402; 
     3830while(_403=nextSiblingElement(_403)){ 
     3831if(_401===_403){ 
     3832return true; 
     3833} 
     3834} 
     3835return false; 
     3836}else{ 
     3837throw "Invalid axis: "+axis; 
     3838} 
     3839} 
     3840} 
     3841} 
     3842} 
     3843if(_400=MochiKit.DOM.getElement(this.params.id)){ 
     3844if(this.match(_400)){ 
     3845if(!_3fe||inScope(_400,_3fe)){ 
     3846return [_400]; 
     3847} 
     3848} 
     3849} 
     3850function nextSiblingElement(node){ 
     3851node=node.nextSibling; 
     3852while(node&&node.nodeType!=1){ 
     3853node=node.nextSibling; 
     3854} 
     3855return node; 
     3856} 
     3857if(axis==""){ 
     3858_3fe=(_3fe||MochiKit.DOM.currentDocument()).getElementsByTagName(this.params.tagName||"*"); 
     3859}else{ 
     3860if(axis==">"){ 
     3861if(!_3fe){ 
     3862throw "> combinator not allowed without preceeding expression"; 
     3863} 
     3864_3fe=MochiKit.Base.filter(function(node){ 
     3865return node.nodeType==1; 
     3866},_3fe.childNodes); 
     3867}else{ 
     3868if(axis=="+"){ 
     3869if(!_3fe){ 
     3870throw "+ combinator not allowed without preceeding expression"; 
     3871} 
     3872_3fe=nextSiblingElement(_3fe)&&[nextSiblingElement(_3fe)]; 
     3873}else{ 
     3874if(axis=="~"){ 
     3875if(!_3fe){ 
     3876throw "~ combinator not allowed without preceeding expression"; 
     3877} 
     3878var _406=[]; 
     3879while(nextSiblingElement(_3fe)){ 
     3880_3fe=nextSiblingElement(_3fe); 
     3881_406.push(_3fe); 
     3882} 
     3883_3fe=_406; 
     3884} 
     3885} 
     3886} 
     3887} 
     3888if(!_3fe){ 
     3889return []; 
     3890} 
     3891var _407=MochiKit.Base.filter(MochiKit.Base.bind(function(_408){ 
     3892return this.match(_408); 
     3893},this),_3fe); 
     3894return _407; 
     3895},repr:function(){ 
     3896return "Selector("+this.expression+")"; 
     3897},toString:MochiKit.Base.forwardCall("repr")}; 
     3898MochiKit.Base.update(MochiKit.Selector,{findChildElements:function(_409,_40a){ 
     3899var uniq=function(arr){ 
     3900var res=[]; 
     3901for(var i=0;i<arr.length;i++){ 
     3902if(MochiKit.Base.findIdentical(res,arr[i])<0){ 
     3903res.push(arr[i]); 
     3904} 
     3905} 
     3906return res; 
     3907}; 
     3908return MochiKit.Base.flattenArray(MochiKit.Base.map(function(_40f){ 
     3909var _410=""; 
     3910var _411=function(_412,expr){ 
     3911if(match=expr.match(/^[>+~]$/)){ 
     3912_410=match[0]; 
     3913return _412; 
     3914}else{ 
     3915var _414=new MochiKit.Selector.Selector(expr); 
     3916var _415=MochiKit.Iter.reduce(function(_416,_417){ 
     3917return MochiKit.Base.extend(_416,_414.findElements(_417||_409,_410)); 
     3918},_412,[]); 
     3919_410=""; 
     3920return _415; 
     3921} 
     3922}; 
     3923var _418=_40f.replace(/(^\s+|\s+$)/g,"").split(/\s+/); 
     3924return uniq(MochiKit.Iter.reduce(_411,_418,[null])); 
     3925},_40a)); 
     3926},findDocElements:function(){ 
     3927return MochiKit.Selector.findChildElements(MochiKit.DOM.currentDocument(),arguments); 
     3928},__new__:function(){ 
     3929var m=MochiKit.Base; 
     3930this.$$=this.findDocElements; 
     3931this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
     3932m.nameFunctions(this); 
     3933}}); 
     3934MochiKit.Selector.__new__(); 
     3935MochiKit.Base._exportSymbols(this,MochiKit.Selector); 
     3936MochiKit.Base._deps("Style",["Base","DOM"]); 
    28083937MochiKit.Style.NAME="MochiKit.Style"; 
    2809 MochiKit.Style.VERSION="1.4"; 
     3938MochiKit.Style.VERSION="1.4.2"; 
    28103939MochiKit.Style.__repr__=function(){ 
    28113940return "["+this.NAME+" "+this.VERSION+"]"; 
     
    28153944}; 
    28163945MochiKit.Style.EXPORT_OK=[]; 
    2817 MochiKit.Style.EXPORT=["setOpacity","getOpacity","setStyle","getStyle","computedStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"]; 
     3946MochiKit.Style.EXPORT=["setStyle","setOpacity","getStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","makePositioned","undoPositioned","makeClipping","undoClipping","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"]; 
    28183947MochiKit.Style.Dimensions=function(w,h){ 
    28193948this.w=w; 
     
    28383967return this.__repr__(); 
    28393968}; 
    2840 MochiKit.Base.update(MochiKit.Style,{computedStyle:function(elem,_346){ 
     3969MochiKit.Base.update(MochiKit.Style,{getStyle:function(elem,_421){ 
    28413970var dom=MochiKit.DOM; 
    28423971var d=dom._document; 
    28433972elem=dom.getElement(elem); 
    2844 _346=MochiKit.Base.camelize(_346); 
     3973_421=MochiKit.Base.camelize(_421); 
    28453974if(!elem||elem==d){ 
    28463975return undefined; 
    28473976} 
    2848 if(_346=="opacity"&&elem.filters){ 
    2849 try{ 
    2850 return elem.filters.item("DXImageTransform.Microsoft.Alpha").opacity/100; 
    2851 } 
    2852 catch(e){ 
    2853 try{ 
    2854 return elem.filters.item("alpha").opacity/100; 
    2855 } 
    2856 catch(e){ 
    2857 } 
    2858 } 
    2859 } 
     3977if(_421=="opacity"&&typeof (elem.filters)!="undefined"){ 
     3978var _424=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/); 
     3979if(_424&&_424[1]){ 
     3980return parseFloat(_424[1])/100; 
     3981} 
     3982return 1; 
     3983} 
     3984if(_421=="float"||_421=="cssFloat"||_421=="styleFloat"){ 
     3985if(elem.style["float"]){ 
     3986return elem.style["float"]; 
     3987}else{ 
     3988if(elem.style.cssFloat){ 
     3989return elem.style.cssFloat; 
     3990}else{ 
     3991if(elem.style.styleFloat){ 
     3992return elem.style.styleFloat; 
     3993}else{ 
     3994return "none"; 
     3995} 
     3996} 
     3997} 
     3998} 
     3999var _425=elem.style?elem.style[_421]:null; 
     4000if(!_425){ 
     4001if(d.defaultView&&d.defaultView.getComputedStyle){ 
     4002var css=d.defaultView.getComputedStyle(elem,null); 
     4003_421=_421.replace(/([A-Z])/g,"-$1").toLowerCase(); 
     4004_425=css?css.getPropertyValue(_421):null; 
     4005}else{ 
    28604006if(elem.currentStyle){ 
    2861 return elem.currentStyle[_346]; 
    2862 } 
    2863 if(typeof (d.defaultView)=="undefined"){ 
    2864 return undefined; 
    2865 } 
    2866 if(d.defaultView===null){ 
    2867 return undefined; 
    2868 } 
    2869 var _347=d.defaultView.getComputedStyle(elem,null); 
    2870 if(typeof (_347)=="undefined"||_347===null){ 
    2871 return undefined; 
    2872 } 
    2873 var _348=_346.replace(/([A-Z])/g,"-$1").toLowerCase(); 
    2874 return _347.getPropertyValue(_348); 
    2875 },getStyle:function(elem,_349){ 
     4007_425=elem.currentStyle[_421]; 
     4008if(/^\d/.test(_425)&&!/px$/.test(_425)&&_421!="fontWeight"){ 
     4009var left=elem.style.left; 
     4010var _428=elem.runtimeStyle.left; 
     4011elem.runtimeStyle.left=elem.currentStyle.left; 
     4012elem.style.left=_425||0; 
     4013_425=elem.style.pixelLeft+"px"; 
     4014elem.style.left=left; 
     4015elem.runtimeStyle.left=_428; 
     4016} 
     4017} 
     4018} 
     4019} 
     4020if(_421=="opacity"){ 
     4021_425=parseFloat(_425); 
     4022} 
     4023if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.findValue(["left","top","right","bottom"],_421)!=-1)){ 
     4024if(MochiKit.Style.getStyle(elem,"position")=="static"){ 
     4025_425="auto"; 
     4026} 
     4027} 
     4028return _425=="auto"?null:_425; 
     4029},setStyle:function(elem,_42a){ 
    28764030elem=MochiKit.DOM.getElement(elem); 
    2877 var _350=elem.style[MochiKit.Base.camelize(_349)]; 
    2878 if(!_350){ 
    2879 if(document.defaultView&&document.defaultView.getComputedStyle){ 
    2880 var css=document.defaultView.getComputedStyle(elem,null); 
    2881 _350=css?css.getPropertyValue(_349):null; 
    2882 }else{ 
    2883 if(elem.currentStyle){ 
    2884 _350=elem.currentStyle[MochiKit.Base.camelize(_349)]; 
    2885 } 
    2886 } 
    2887 } 
    2888 if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_349)!=-1)){ 
    2889 if(MochiKit.Style.getStyle(elem,"position")=="static"){ 
    2890 _350="auto"; 
    2891 } 
    2892 } 
    2893 return _350=="auto"?null:_350; 
    2894 },setStyle:function(elem,_352){ 
    2895 elem=MochiKit.DOM.getElement(elem); 
    2896 for(name in _352){ 
    2897 elem.style[MochiKit.Base.camelize(name)]=_352[name]; 
    2898 } 
    2899 },getOpacity:function(elem){ 
    2900 var _353; 
    2901 if(_353=MochiKit.Style.getStyle(elem,"opacity")){ 
    2902 return parseFloat(_353); 
    2903 } 
    2904 if(_353=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/)){ 
    2905 if(_353[1]){ 
    2906 return parseFloat(_353[1])/100; 
    2907 } 
    2908 } 
    2909 return 1; 
     4031for(var name in _42a){ 
     4032switch(name){ 
     4033case "opacity": 
     4034MochiKit.Style.setOpacity(elem,_42a[name]); 
     4035break; 
     4036case "float": 
     4037case "cssFloat": 
     4038case "styleFloat": 
     4039if(typeof (elem.style["float"])!="undefined"){ 
     4040elem.style["float"]=_42a[name]; 
     4041}else{ 
     4042if(typeof (elem.style.cssFloat)!="undefined"){ 
     4043elem.style.cssFloat=_42a[name]; 
     4044}else{ 
     4045elem.style.styleFloat=_42a[name]; 
     4046} 
     4047} 
     4048break; 
     4049default: 
     4050elem.style[MochiKit.Base.camelize(name)]=_42a[name]; 
     4051} 
     4052} 
    29104053},setOpacity:function(elem,o){ 
    29114054elem=MochiKit.DOM.getElement(elem); 
    29124055var self=MochiKit.Style; 
    29134056if(o==1){ 
    2914 var _354=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|Safari|KHTML/.test(navigator.userAgent)); 
    2915 self.setStyle(elem,{opacity:_354?0.999999:1}); 
     4057var _42f=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)); 
     4058elem.style["opacity"]=_42f?0.999999:1; 
    29164059if(/MSIE/.test(navigator.userAgent)){ 
    2917 self.setStyle(elem,{filter:self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")}); 
     4060elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,""); 
    29184061} 
    29194062}else{ 
     
    29214064o=0; 
    29224065} 
    2923 self.setStyle(elem,{opacity:o}); 
     4066elem.style["opacity"]=o; 
    29244067if(/MSIE/.test(navigator.userAgent)){ 
    2925 self.setStyle(elem,{filter:self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+o*100+")"}); 
    2926 } 
    2927 } 
    2928 },getElementPosition:function(elem,_355){ 
     4068elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+o*100+")"; 
     4069} 
     4070} 
     4071},getElementPosition:function(elem,_431){ 
    29294072var self=MochiKit.Style; 
    29304073var dom=MochiKit.DOM; 
    29314074elem=dom.getElement(elem); 
    2932 if(!elem||(!(elem.x&&elem.y)&&(!elem.parentNode==null||self.computedStyle(elem,"display")=="none"))){ 
     4075if(!elem||(!(elem.x&&elem.y)&&(!elem.parentNode===null||self.getStyle(elem,"display")=="none"))){ 
    29334076return undefined; 
    29344077} 
    29354078var c=new self.Coordinates(0,0); 
    29364079var box=null; 
    2937 var _358=null; 
     4080var _436=null; 
    29384081var d=MochiKit.DOM._document; 
    29394082var de=d.documentElement; 
     
    29514094c.x+=elem.offsetLeft; 
    29524095c.y+=elem.offsetTop; 
    2953 _358=elem.offsetParent; 
    2954 if(_358!=elem){ 
    2955 while(_358){ 
    2956 c.x+=_358.offsetLeft; 
    2957 c.y+=_358.offsetTop; 
    2958 _358=_358.offsetParent; 
     4096_436=elem.offsetParent; 
     4097if(_436!=elem){ 
     4098while(_436){ 
     4099c.x+=parseInt(_436.style.borderLeftWidth)||0; 
     4100c.y+=parseInt(_436.style.borderTopWidth)||0; 
     4101c.x+=_436.offsetLeft; 
     4102c.y+=_436.offsetTop; 
     4103_436=_436.offsetParent; 
    29594104} 
    29604105} 
    29614106var ua=navigator.userAgent.toLowerCase(); 
    2962 if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(ua.indexOf("safari")!=-1&&self.computedStyle(elem,"position")=="absolute")){ 
     4107if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(ua.indexOf("AppleWebKit")!=-1&&self.getStyle(elem,"position")=="absolute")){ 
    29634108c.x-=b.offsetLeft; 
    29644109c.y-=b.offsetTop; 
    29654110} 
    2966 } 
    2967 } 
    2968 } 
    2969 if(typeof (_355)!="undefined"){ 
    2970 _355=arguments.callee(_355); 
    2971 if(_355){ 
    2972 c.x-=(_355.x||0); 
    2973 c.y-=(_355.y||0); 
    2974 } 
    2975 } 
    29764111if(elem.parentNode){ 
    2977 _358=elem.parentNode; 
    2978 }else{ 
    2979 _358=null; 
    2980 } 
    2981 while(_358){ 
    2982 var _361=_358.tagName.toUpperCase(); 
    2983 if(_361==="BODY"||_361==="HTML"){ 
     4112_436=elem.parentNode; 
     4113}else{ 
     4114_436=null; 
     4115} 
     4116while(_436){ 
     4117var _43b=_436.tagName.toUpperCase(); 
     4118if(_43b==="BODY"||_43b==="HTML"){ 
    29844119break; 
    29854120} 
    2986 c.x-=_358.scrollLeft; 
    2987 c.y-=_358.scrollTop; 
    2988 if(_358.parentNode){ 
    2989 _358=_358.parentNode; 
    2990 }else{ 
    2991 _358=null; 
     4121var disp=self.getStyle(_436,"display"); 
     4122if(disp.search(/^inline|table-row.*$/i)){ 
     4123c.x-=_436.scrollLeft; 
     4124c.y-=_436.scrollTop; 
     4125} 
     4126if(_436.parentNode){ 
     4127_436=_436.parentNode; 
     4128}else{ 
     4129_436=null; 
     4130} 
     4131} 
     4132} 
     4133} 
     4134} 
     4135if(typeof (_431)!="undefined"){ 
     4136_431=arguments.callee(_431); 
     4137if(_431){ 
     4138c.x-=(_431.x||0); 
     4139c.y-=(_431.y||0); 
    29924140} 
    29934141} 
    29944142return c; 
    2995 },setElementPosition:function(elem,_362,_363){ 
     4143},setElementPosition:function(elem,_43e,_43f){ 
    29964144elem=MochiKit.DOM.getElement(elem); 
    2997 if(typeof (_363)=="undefined"){ 
    2998 _363="px"; 
    2999 } 
    3000 var _364={}; 
    3001 var _365=MochiKit.Base.isUndefinedOrNull; 
    3002 if(!_365(_362.x)){ 
    3003 _364["left"]=_362.x+_363; 
    3004 } 
    3005 if(!_365(_362.y)){ 
    3006 _364["top"]=_362.y+_363; 
    3007 } 
    3008 MochiKit.DOM.updateNodeAttributes(elem,{"style":_364}); 
    3009 },getElementDimensions:function(elem){ 
     4145if(typeof (_43f)=="undefined"){ 
     4146_43f="px"; 
     4147} 
     4148var _440={}; 
     4149var _441=MochiKit.Base.isUndefinedOrNull; 
     4150if(!_441(_43e.x)){ 
     4151_440["left"]=_43e.x+_43f; 
     4152} 
     4153if(!_441(_43e.y)){ 
     4154_440["top"]=_43e.y+_43f; 
     4155} 
     4156MochiKit.DOM.updateNodeAttributes(elem,{"style":_440}); 
     4157},makePositioned:function(_442){ 
     4158_442=MochiKit.DOM.getElement(_442); 
     4159var pos=MochiKit.Style.getStyle(_442,"position"); 
     4160if(pos=="static"||!pos){ 
     4161_442.style.position="relative"; 
     4162if(/Opera/.test(navigator.userAgent)){ 
     4163_442.style.top=0; 
     4164_442.style.left=0; 
     4165} 
     4166} 
     4167},undoPositioned:function(_444){ 
     4168_444=MochiKit.DOM.getElement(_444); 
     4169if(_444.style.position=="relative"){ 
     4170_444.style.position=_444.style.top=_444.style.left=_444.style.bottom=_444.style.right=""; 
     4171} 
     4172},makeClipping:function(_445){ 
     4173_445=MochiKit.DOM.getElement(_445); 
     4174var s=_445.style; 
     4175var _447={"overflow":s.overflow,"overflow-x":s.overflowX,"overflow-y":s.overflowY}; 
     4176if((MochiKit.Style.getStyle(_445,"overflow")||"visible")!="hidden"){ 
     4177_445.style.overflow="hidden"; 
     4178_445.style.overflowX="hidden"; 
     4179_445.style.overflowY="hidden"; 
     4180} 
     4181return _447; 
     4182},undoClipping:function(_448,_449){ 
     4183_448=MochiKit.DOM.getElement(_448); 
     4184if(typeof (_449)=="string"){ 
     4185_448.style.overflow=_449; 
     4186}else{ 
     4187if(_449!=null){ 
     4188_448.style.overflow=_449["overflow"]; 
     4189_448.style.overflowX=_449["overflow-x"]; 
     4190_448.style.overflowY=_449["overflow-y"]; 
     4191} 
     4192} 
     4193},getElementDimensions:function(elem,_44b){ 
    30104194var self=MochiKit.Style; 
    30114195var dom=MochiKit.DOM; 
     
    30174201return undefined; 
    30184202} 
    3019 var disp=self.computedStyle(elem,"display"); 
    3020 if(disp!="none"&&disp!=""&&typeof (disp)!="undefined"){ 
    3021 return new self.Dimensions(elem.offsetWidth||0,elem.offsetHeight||0); 
    3022 } 
     4203var disp=self.getStyle(elem,"display"); 
     4204if(disp=="none"||disp==""||typeof (disp)=="undefined"){ 
    30234205var s=elem.style; 
    3024 var _367=s.visibility; 
    3025 var _368=s.position; 
     4206var _450=s.visibility; 
     4207var _451=s.position; 
     4208var _452=s.display; 
    30264209s.visibility="hidden"; 
    30274210s.position="absolute"; 
    3028 s.display=""; 
    3029 var _369=elem.offsetWidth; 
    3030 var _370=elem.offsetHeight; 
    3031 s.display="none"; 
    3032 s.position=_368; 
    3033 s.visibility=_367; 
    3034 return new self.Dimensions(_369,_370); 
    3035 },setElementDimensions:function(elem,_371,_372){ 
     4211s.display=self._getDefaultDisplay(elem); 
     4212var _453=elem.offsetWidth; 
     4213var _454=elem.offsetHeight; 
     4214s.display=_452; 
     4215s.position=_451; 
     4216s.visibility=_450; 
     4217}else{ 
     4218_453=elem.offsetWidth||0; 
     4219_454=elem.offsetHeight||0; 
     4220} 
     4221if(_44b){ 
     4222var _455="colSpan" in elem&&"rowSpan" in elem; 
     4223var _456=(_455&&elem.parentNode&&self.getStyle(elem.parentNode,"borderCollapse")=="collapse"); 
     4224if(_456){ 
     4225if(/MSIE/.test(navigator.userAgent)){ 
     4226var _457=elem.previousSibling?0.5:1; 
     4227var _458=elem.nextSibling?0.5:1; 
     4228}else{ 
     4229var _457=0.5; 
     4230var _458=0.5; 
     4231} 
     4232}else{ 
     4233var _457=1; 
     4234var _458=1; 
     4235} 
     4236_453-=Math.round((parseFloat(self.getStyle(elem,"paddingLeft"))||0)+(parseFloat(self.getStyle(elem,"paddingRight"))||0)+_457*(parseFloat(self.getStyle(elem,"borderLeftWidth"))||0)+_458*(parseFloat(self.getStyle(elem,"borderRightWidth"))||0)); 
     4237if(_455){ 
     4238if(/Gecko|Opera/.test(navigator.userAgent)&&!/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)){ 
     4239var _459=0; 
     4240}else{ 
     4241if(/MSIE/.test(navigator.userAgent)){ 
     4242var _459=1; 
     4243}else{ 
     4244var _459=_456?0.5:1; 
     4245} 
     4246} 
     4247}else{ 
     4248var _459=1; 
     4249} 
     4250_454-=Math.round((parseFloat(self.getStyle(elem,"paddingTop"))||0)+(parseFloat(self.getStyle(elem,"paddingBottom"))||0)+_459*((parseFloat(self.getStyle(elem,"borderTopWidth"))||0)+(parseFloat(self.getStyle(elem,"borderBottomWidth"))||0))); 
     4251} 
     4252return new self.Dimensions(_453,_454); 
     4253},setElementDimensions:function(elem,_45b,_45c){ 
    30364254elem=MochiKit.DOM.getElement(elem); 
    3037 if(typeof (_372)=="undefined"){ 
    3038 _372="px"; 
    3039 } 
    3040 var _373={}; 
    3041 var _374=MochiKit.Base.isUndefinedOrNull; 
    3042 if(!_374(_371.w)){ 
    3043 _373["width"]=_371.w+_372; 
    3044 } 
    3045 if(!_374(_371.h)){ 
    3046 _373["height"]=_371.h+_372; 
    3047 } 
    3048 MochiKit.DOM.updateNodeAttributes(elem,{"style":_373}); 
    3049 },setDisplayForElement:function(_375,_376){ 
    3050 var _377=MochiKit.Base.extend(null,arguments,1); 
    3051 var _378=MochiKit.DOM.getElement; 
    3052 for(var i=0;i<_377.length;i++){ 
    3053 var _376=_378(_377[i]); 
    3054 if(_376){ 
    3055 _376.style.display=_375; 
     4255if(typeof (_45c)=="undefined"){ 
     4256_45c="px"; 
     4257} 
     4258var _45d={}; 
     4259var _45e=MochiKit.Base.isUndefinedOrNull; 
     4260if(!_45e(_45b.w)){ 
     4261_45d["width"]=_45b.w+_45c; 
     4262} 
     4263if(!_45e(_45b.h)){ 
     4264_45d["height"]=_45b.h+_45c; 
     4265} 
     4266MochiKit.DOM.updateNodeAttributes(elem,{"style":_45d}); 
     4267},_getDefaultDisplay:function(elem){ 
     4268var self=MochiKit.Style; 
     4269var dom=MochiKit.DOM; 
     4270elem=dom.getElement(elem); 
     4271if(!elem){ 
     4272return undefined; 
     4273} 
     4274var _462=elem.tagName.toUpperCase(); 
     4275return self._defaultDisplay[_462]||"block"; 
     4276},setDisplayForElement:function(_463,_464){ 
     4277var _465=MochiKit.Base.extend(null,arguments,1); 
     4278var _466=MochiKit.DOM.getElement; 
     4279for(var i=0;i<_465.length;i++){ 
     4280_464=_466(_465[i]); 
     4281if(_464){ 
     4282_464.style.display=_463; 
    30564283} 
    30574284} 
     
    30644291d.h=w.innerHeight; 
    30654292}else{ 
    3066 if(b.parentElement.clientWidth){ 
     4293if(b&&b.parentElement&&b.parentElement.clientWidth){ 
    30674294d.w=b.parentElement.clientWidth; 
    30684295d.h=b.parentElement.clientHeight; 
     
    30924319},__new__:function(){ 
    30934320var m=MochiKit.Base; 
     4321var _470=["A","ABBR","ACRONYM","B","BASEFONT","BDO","BIG","BR","CITE","CODE","DFN","EM","FONT","I","IMG","KBD","LABEL","Q","S","SAMP","SMALL","SPAN","STRIKE","STRONG","SUB","SUP","TEXTAREA","TT","U","VAR"]; 
     4322this._defaultDisplay={"TABLE":"table","THEAD":"table-header-group","TBODY":"table-row-group","TFOOT":"table-footer-group","COLGROUP":"table-column-group","COL":"table-column","TR":"table-row","TD":"table-cell","TH":"table-cell","CAPTION":"table-caption","LI":"list-item","INPUT":"inline-block","SELECT":"inline-block"}; 
     4323if(/MSIE/.test(navigator.userAgent)){ 
     4324for(var k in this._defaultDisplay){ 
     4325var v=this._defaultDisplay[k]; 
     4326if(v.indexOf("table")==0){ 
     4327this._defaultDisplay[k]="block"; 
     4328} 
     4329} 
     4330} 
     4331for(var i=0;i<_470.length;i++){ 
     4332this._defaultDisplay[_470[i]]="inline"; 
     4333} 
    30944334this.elementPosition=this.getElementPosition; 
    30954335this.elementDimensions=this.getElementDimensions; 
     
    31014341MochiKit.Style.__new__(); 
    31024342MochiKit.Base._exportSymbols(this,MochiKit.Style); 
    3103 if(typeof (dojo)!="undefined"){ 
    3104 dojo.provide("MochiKit.Signal"); 
    3105 dojo.require("MochiKit.Base"); 
    3106 dojo.require("MochiKit.DOM"); 
    3107 dojo.require("MochiKit.Style"); 
    3108 } 
    3109 if(typeof (JSAN)!="undefined"){ 
    3110 JSAN.use("MochiKit.Base",[]); 
    3111 JSAN.use("MochiKit.DOM",[]); 
    3112 JSAN.use("MochiKit.Style",[]); 
    3113 } 
     4343MochiKit.Base._deps("LoggingPane",["Base","Logging"]); 
     4344MochiKit.LoggingPane.NAME="MochiKit.LoggingPane"; 
     4345MochiKit.LoggingPane.VERSION="1.4.2"; 
     4346MochiKit.LoggingPane.__repr__=function(){ 
     4347return "["+this.NAME+" "+this.VERSION+"]"; 
     4348}; 
     4349MochiKit.LoggingPane.toString=function(){ 
     4350return this.__repr__(); 
     4351}; 
     4352MochiKit.LoggingPane.createLoggingPane=function(_474){ 
     4353var m=MochiKit.LoggingPane; 
     4354_474=!(!_474); 
     4355if(m._loggingPane&&m._loggingPane.inline!=_474){ 
     4356m._loggingPane.closePane(); 
     4357m._loggingPane=null; 
     4358} 
     4359if(!m._loggingPane||m._loggingPane.closed){ 
     4360m._loggingPane=new m.LoggingPane(_474,MochiKit.Logging.logger); 
     4361} 
     4362return m._loggingPane; 
     4363}; 
     4364MochiKit.LoggingPane.LoggingPane=function(_476,_477){ 
     4365if(typeof (_477)=="undefined"||_477===null){ 
     4366_477=MochiKit.Logging.logger; 
     4367} 
     4368this.logger=_477; 
     4369var _478=MochiKit.Base.update; 
     4370var _479=MochiKit.Base.updatetree; 
     4371var bind=MochiKit.Base.bind; 
     4372var _47b=MochiKit.Base.clone; 
     4373var win=window; 
     4374var uid="_MochiKit_LoggingPane"; 
     4375if(typeof (MochiKit.DOM)!="undefined"){ 
     4376win=MochiKit.DOM.currentWindow(); 
     4377} 
     4378if(!_476){ 
     4379var url=win.location.href.split("?")[0].replace(/[#:\/.><&%-]/g,"_"); 
     4380var name=uid+"_"+url; 
     4381var nwin=win.open("",name,"dependent,resizable,height=200"); 
     4382if(!nwin){ 
     4383alert("Not able to open debugging window due to pop-up blocking."); 
     4384return undefined; 
     4385} 
     4386nwin.document.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" "+"\"http://www.w3.org/TR/html4/loose.dtd\">"+"<html><head><title>[MochiKit.LoggingPane]</title></head>"+"<body></body></html>"); 
     4387nwin.document.close(); 
     4388nwin.document.title+=" "+win.document.title; 
     4389win=nwin; 
     4390} 
     4391var doc=win.document; 
     4392this.doc=doc; 
     4393var _482=doc.getElementById(uid); 
     4394var _483=!!_482; 
     4395if(_482&&typeof (_482.loggingPane)!="undefined"){ 
     4396_482.loggingPane.logger=this.logger; 
     4397_482.loggingPane.buildAndApplyFilter(); 
     4398return _482.loggingPane; 
     4399} 
     4400if(_483){ 
     4401var _484; 
     4402while((_484=_482.firstChild)){ 
     4403_482.removeChild(_484); 
     4404} 
     4405}else{ 
     4406_482=doc.createElement("div"); 
     4407_482.id=uid; 
     4408} 
     4409_482.loggingPane=this; 
     4410var _485=doc.createElement("input"); 
     4411var _486=doc.createElement("input"); 
     4412var _487=doc.createElement("button"); 
     4413var _488=doc.createElement("button"); 
     4414var _489=doc.createElement("button"); 
     4415var _48a=doc.createElement("button"); 
     4416var _48b=doc.createElement("div"); 
     4417var _48c=doc.createElement("div"); 
     4418var _48d=uid+"_Listener"; 
     4419this.colorTable=_47b(this.colorTable); 
     4420var _48e=[]; 
     4421var _48f=null; 
     4422var _490=function(msg){ 
     4423var _492=msg.level; 
     4424if(typeof (_492)=="number"){ 
     4425_492=MochiKit.Logging.LogLevel[_492]; 
     4426} 
     4427return _492; 
     4428}; 
     4429var _493=function(msg){ 
     4430return msg.info.join(" "); 
     4431}; 
     4432var _495=bind(function(msg){ 
     4433var _497=_490(msg); 
     4434var text=_493(msg); 
     4435var c=this.colorTable[_497]; 
     4436var p=doc.createElement("span"); 
     4437p.className="MochiKit-LogMessage MochiKit-LogLevel-"+_497; 
     4438p.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; 
     4439p.appendChild(doc.createTextNode(_497+": "+text)); 
     4440_48c.appendChild(p); 
     4441_48c.appendChild(doc.createElement("br")); 
     4442if(_48b.offsetHeight>_48b.scrollHeight){ 
     4443_48b.scrollTop=0; 
     4444}else{ 
     4445_48b.scrollTop=_48b.scrollHeight; 
     4446} 
     4447},this); 
     4448var _49b=function(msg){ 
     4449_48e[_48e.length]=msg; 
     4450_495(msg); 
     4451}; 
     4452var _49d=function(){ 
     4453var _49e,_49f; 
    31144454try{ 
    3115 if(typeof (MochiKit.Base)=="undefined"){ 
    3116 throw ""; 
    3117 } 
     4455_49e=new RegExp(_485.value); 
     4456_49f=new RegExp(_486.value); 
    31184457} 
    31194458catch(e){ 
    3120 throw "MochiKit.Signal depends on MochiKit.Base!"; 
    3121 } 
     4459logDebug("Error in filter regex: "+e.message); 
     4460return null; 
     4461} 
     4462return function(msg){ 
     4463return (_49e.test(_490(msg))&&_49f.test(_493(msg))); 
     4464}; 
     4465}; 
     4466var _4a1=function(){ 
     4467while(_48c.firstChild){ 
     4468_48c.removeChild(_48c.firstChild); 
     4469} 
     4470}; 
     4471var _4a2=function(){ 
     4472_48e=[]; 
     4473_4a1(); 
     4474}; 
     4475var _4a3=bind(function(){ 
     4476if(this.closed){ 
     4477return; 
     4478} 
     4479this.closed=true; 
     4480if(MochiKit.LoggingPane._loggingPane==this){ 
     4481MochiKit.LoggingPane._loggingPane=null; 
     4482} 
     4483this.logger.removeListener(_48d); 
    31224484try{ 
    3123 if(typeof (MochiKit.DOM)=="undefined"){ 
    3124 throw ""; 
    3125 } 
     4485try{ 
     4486_482.loggingPane=null; 
    31264487} 
    31274488catch(e){ 
    3128 throw "MochiKit.Signal depends on MochiKit.DOM!"; 
    3129 } 
    3130 try{ 
    3131 if(typeof (MochiKit.Style)=="undefined"){ 
    3132 throw ""; 
     4489logFatal("Bookmarklet was closed incorrectly."); 
     4490} 
     4491if(_476){ 
     4492_482.parentNode.removeChild(_482); 
     4493}else{ 
     4494this.win.close(); 
    31334495} 
    31344496} 
    31354497catch(e){ 
    3136 throw "MochiKit.Signal depends on MochiKit.Style!"; 
    3137 } 
    3138 if(typeof (MochiKit.Signal)=="undefined"){ 
    3139 MochiKit.Signal={}; 
    3140 } 
     4498} 
     4499},this); 
     4500var _4a4=function(){ 
     4501_4a1(); 
     4502for(var i=0;i<_48e.length;i++){ 
     4503var msg=_48e[i]; 
     4504if(_48f===null||_48f(msg)){ 
     4505_495(msg); 
     4506} 
     4507} 
     4508}; 
     4509this.buildAndApplyFilter=function(){ 
     4510_48f=_49d(); 
     4511_4a4(); 
     4512this.logger.removeListener(_48d); 
     4513this.logger.addListener(_48d,_48f,_49b); 
     4514}; 
     4515var _4a7=bind(function(){ 
     4516_48e=this.logger.getMessages(); 
     4517_4a4(); 
     4518},this); 
     4519var _4a8=bind(function(_4a9){ 
     4520_4a9=_4a9||window.event; 
     4521key=_4a9.which||_4a9.keyCode; 
     4522if(key==13){ 
     4523this.buildAndApplyFilter(); 
     4524} 
     4525},this); 
     4526var _4aa="display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: "+this.logFont; 
     4527if(_476){ 
     4528_4aa+="; height: 10em; border-top: 2px solid black"; 
     4529}else{ 
     4530_4aa+="; height: 100%;"; 
     4531} 
     4532_482.style.cssText=_4aa; 
     4533if(!_483){ 
     4534doc.body.appendChild(_482); 
     4535} 
     4536_4aa={"cssText":"width: 33%; display: inline; font: "+this.logFont}; 
     4537_479(_485,{"value":"FATAL|ERROR|WARNING|INFO|DEBUG","onkeypress":_4a8,"style":_4aa}); 
     4538_482.appendChild(_485); 
     4539_479(_486,{"value":".*","onkeypress":_4a8,"style":_4aa}); 
     4540_482.appendChild(_486); 
     4541_4aa="width: 8%; display:inline; font: "+this.logFont; 
     4542_487.appendChild(doc.createTextNode("Filter")); 
     4543_487.onclick=bind("buildAndApplyFilter",this); 
     4544_487.style.cssText=_4aa; 
     4545_482.appendChild(_487); 
     4546_488.appendChild(doc.createTextNode("Load")); 
     4547_488.onclick=_4a7; 
     4548_488.style.cssText=_4aa; 
     4549_482.appendChild(_488); 
     4550_489.appendChild(doc.createTextNode("Clear")); 
     4551_489.onclick=_4a2; 
     4552_489.style.cssText=_4aa; 
     4553_482.appendChild(_489); 
     4554_48a.appendChild(doc.createTextNode("Close")); 
     4555_48a.onclick=_4a3; 
     4556_48a.style.cssText=_4aa; 
     4557_482.appendChild(_48a); 
     4558_48b.style.cssText="overflow: auto; width: 100%"; 
     4559_48c.style.cssText="width: 100%; height: "+(_476?"8em":"100%"); 
     4560_48b.appendChild(_48c); 
     4561_482.appendChild(_48b); 
     4562this.buildAndApplyFilter(); 
     4563_4a7(); 
     4564if(_476){ 
     4565this.win=undefined; 
     4566}else{ 
     4567this.win=win; 
     4568} 
     4569this.inline=_476; 
     4570this.closePane=_4a3; 
     4571this.closed=false; 
     4572return this; 
     4573}; 
     4574MochiKit.LoggingPane.LoggingPane.prototype={"logFont":"8pt Verdana,sans-serif","colorTable":{"ERROR":"red","FATAL":"darkred","WARNING":"blue","INFO":"black","DEBUG":"green"}}; 
     4575MochiKit.LoggingPane.EXPORT_OK=["LoggingPane"]; 
     4576MochiKit.LoggingPane.EXPORT=["createLoggingPane"]; 
     4577MochiKit.LoggingPane.__new__=function(){ 
     4578this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)}; 
     4579MochiKit.Base.nameFunctions(this); 
     4580MochiKit.LoggingPane._loggingPane=null; 
     4581}; 
     4582MochiKit.LoggingPane.__new__(); 
     4583MochiKit.Base._exportSymbols(this,MochiKit.LoggingPane); 
     4584MochiKit.Base._deps("Color",["Base","DOM","Style"]); 
     4585MochiKit.Color.NAME="MochiKit.Color"; 
     4586MochiKit.Color.VERSION="1.4.2"; 
     4587MochiKit.Color.__repr__=function(){ 
     4588return "["+this.NAME+" "+this.VERSION+"]"; 
     4589}; 
     4590MochiKit.Color.toString=function(){ 
     4591return this.__repr__(); 
     4592}; 
     4593MochiKit.Color.Color=function(red,_4ac,blue,_4ae){ 
     4594if(typeof (_4ae)=="undefined"||_4ae===null){ 
     4595_4ae=1; 
     4596} 
     4597this.rgb={r:red,g:_4ac,b:blue,a:_4ae}; 
     4598}; 
     4599MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_4af){ 
     4600var rgb=this.rgb; 
     4601var m=MochiKit.Color; 
     4602return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_4af); 
     4603},colorWithHue:function(hue){ 
     4604var hsl=this.asHSL(); 
     4605hsl.h=hue; 
     4606var m=MochiKit.Color; 
     4607return m.Color.fromHSL(hsl); 
     4608},colorWithSaturation:function(_4b5){ 
     4609var hsl=this.asHSL(); 
     4610hsl.s=_4b5; 
     4611var m=MochiKit.Color; 
     4612return m.Color.fromHSL(hsl); 
     4613},colorWithLightness:function(_4b8){ 
     4614var hsl=this.asHSL(); 
     4615hsl.l=_4b8; 
     4616var m=MochiKit.Color; 
     4617return m.Color.fromHSL(hsl); 
     4618},darkerColorWithLevel:function(_4bb){ 
     4619var hsl=this.asHSL(); 
     4620hsl.l=Math.max(hsl.l-_4bb,0); 
     4621var m=MochiKit.Color; 
     4622return m.Color.fromHSL(hsl); 
     4623},lighterColorWithLevel:function(_4be){ 
     4624var hsl=this.asHSL(); 
     4625hsl.l=Math.min(hsl.l+_4be,1); 
     4626var m=MochiKit.Color; 
     4627return m.Color.fromHSL(hsl); 
     4628},blendedColor:function(_4c1,_4c2){ 
     4629if(typeof (_4c2)=="undefined"||_4c2===null){ 
     4630_4c2=0.5; 
     4631} 
     4632var sf=1-_4c2; 
     4633var s=this.rgb; 
     4634var d=_4c1.rgb; 
     4635var df=_4c2; 
     4636return 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)); 
     4637},compareRGB:function(_4c7){ 
     4638var a=this.asRGB(); 
     4639var b=_4c7.asRGB(); 
     4640return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]); 
     4641},isLight:function(){ 
     4642return this.asHSL().b>0.5; 
     4643},isDark:function(){ 
     4644return (!this.isLight()); 
     4645},toHSLString:function(){ 
     4646var c=this.asHSL(); 
     4647var ccc=MochiKit.Color.clampColorComponent; 
     4648var rval=this._hslString; 
     4649if(!rval){ 
     4650var mid=(ccc(c.h,360).toFixed(0)+","+ccc(c.s,100).toPrecision(4)+"%"+","+ccc(c.l,100).toPrecision(4)+"%"); 
     4651var a=c.a; 
     4652if(a>=1){ 
     4653a=1; 
     4654rval="hsl("+mid+")"; 
     4655}else{ 
     4656if(a<=0){ 
     4657a=0; 
     4658} 
     4659rval="hsla("+mid+","+a+")"; 
     4660} 
     4661this._hslString=rval; 
     4662} 
     4663return rval; 
     4664},toRGBString:function(){ 
     4665var c=this.rgb; 
     4666var ccc=MochiKit.Color.clampColorComponent; 
     4667var rval=this._rgbString; 
     4668if(!rval){ 
     4669var mid=(ccc(c.r,255).toFixed(0)+","+ccc(c.g,255).toFixed(0)+","+ccc(c.b,255).toFixed(0)); 
     4670if(c.a!=1){ 
     4671rval="rgba("+mid+","+c.a+")"; 
     4672}else{ 
     4673rval="rgb("+mid+")"; 
     4674} 
     4675this._rgbString=rval; 
     4676} 
     4677return rval; 
     4678},asRGB:function(){ 
     4679return MochiKit.Base.clone(this.rgb); 
     4680},toHexString:function(){ 
     4681var m=MochiKit.Color; 
     4682var c=this.rgb; 
     4683var ccc=MochiKit.Color.clampColorComponent; 
     4684var rval=this._hexString; 
     4685if(!rval){ 
     4686rval=("#"+m.toColorPart(ccc(c.r,255))+m.toColorPart(ccc(c.g,255))+m.toColorPart(ccc(c.b,255))); 
     4687this._hexString=rval; 
     4688} 
     4689return rval; 
     4690},asHSV:function(){ 
     4691var hsv=this.hsv; 
     4692var c=this.rgb; 
     4693if(typeof (hsv)=="undefined"||hsv===null){ 
     4694hsv=MochiKit.Color.rgbToHSV(this.rgb); 
     4695this.hsv=hsv; 
     4696} 
     4697return MochiKit.Base.clone(hsv); 
     4698},asHSL:function(){ 
     4699var hsl=this.hsl; 
     4700var c=this.rgb; 
     4701if(typeof (hsl)=="undefined"||hsl===null){ 
     4702hsl=MochiKit.Color.rgbToHSL(this.rgb); 
     4703this.hsl=hsl; 
     4704} 
     4705return MochiKit.Base.clone(hsl); 
     4706},toString:function(){ 
     4707return this.toRGBString(); 
     4708},repr:function(){ 
     4709var c=this.rgb; 
     4710var col=[c.r,c.g,c.b,c.a]; 
     4711return this.__class__.NAME+"("+col.join(", ")+")"; 
     4712}}; 
     4713MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_4de,blue,_4e0){ 
     4714var _4e1=MochiKit.Color.Color; 
     4715if(arguments.length==1){ 
     4716var rgb=red; 
     4717red=rgb.r; 
     4718_4de=rgb.g; 
     4719blue=rgb.b; 
     4720if(typeof (rgb.a)=="undefined"){ 
     4721_4e0=undefined; 
     4722}else{ 
     4723_4e0=rgb.a; 
     4724} 
     4725} 
     4726return new _4e1(red,_4de,blue,_4e0); 
     4727},fromHSL:function(hue,_4e4,_4e5,_4e6){ 
     4728var m=MochiKit.Color; 
     4729return m.Color.fromRGB(m.hslToRGB.apply(m,arguments)); 
     4730},fromHSV:function(hue,_4e9,_4ea,_4eb){ 
     4731var m=MochiKit.Color; 
     4732return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments)); 
     4733},fromName:function(name){ 
     4734var _4ee=MochiKit.Color.Color; 
     4735if(name.charAt(0)=="\""){ 
     4736name=name.substr(1,name.length-2); 
     4737} 
     4738var _4ef=_4ee._namedColors[name.toLowerCase()]; 
     4739if(typeof (_4ef)=="string"){ 
     4740return _4ee.fromHexString(_4ef); 
     4741}else{ 
     4742if(name=="transparent"){ 
     4743return _4ee.transparentColor(); 
     4744} 
     4745} 
     4746return null; 
     4747},fromString:function(_4f0){ 
     4748var self=MochiKit.Color.Color; 
     4749var _4f2=_4f0.substr(0,3); 
     4750if(_4f2=="rgb"){ 
     4751return self.fromRGBString(_4f0); 
     4752}else{ 
     4753if(_4f2=="hsl"){ 
     4754return self.fromHSLString(_4f0); 
     4755}else{ 
     4756if(_4f0.charAt(0)=="#"){ 
     4757return self.fromHexString(_4f0); 
     4758} 
     4759} 
     4760} 
     4761return self.fromName(_4f0); 
     4762},fromHexString:function(_4f3){ 
     4763if(_4f3.charAt(0)=="#"){ 
     4764_4f3=_4f3.substring(1); 
     4765} 
     4766var _4f4=[]; 
     4767var i,hex; 
     4768if(_4f3.length==3){ 
     4769for(i=0;i<3;i++){ 
     4770hex=_4f3.substr(i,1); 
     4771_4f4.push(parseInt(hex+hex,16)/255); 
     4772} 
     4773}else{ 
     4774for(i=0;i<6;i+=2){ 
     4775hex=_4f3.substr(i,2); 
     4776_4f4.push(parseInt(hex,16)/255); 
     4777} 
     4778} 
     4779var _4f7=MochiKit.Color.Color; 
     4780return _4f7.fromRGB.apply(_4f7,_4f4); 
     4781},_fromColorString:function(pre,_4f9,_4fa,_4fb){ 
     4782if(_4fb.indexOf(pre)===0){ 
     4783_4fb=_4fb.substring(_4fb.indexOf("(",3)+1,_4fb.length-1); 
     4784} 
     4785var _4fc=_4fb.split(/\s*,\s*/); 
     4786var _4fd=[]; 
     4787for(var i=0;i<_4fc.length;i++){ 
     4788var c=_4fc[i]; 
     4789var val; 
     4790var _501=c.substring(c.length-3); 
     4791if(c.charAt(c.length-1)=="%"){ 
     4792val=0.01*parseFloat(c.substring(0,c.length-1)); 
     4793}else{ 
     4794if(_501=="deg"){ 
     4795val=parseFloat(c)/360; 
     4796}else{ 
     4797if(_501=="rad"){ 
     4798val=parseFloat(c)/(Math.PI*2); 
     4799}else{ 
     4800val=_4fa[i]*parseFloat(c); 
     4801} 
     4802} 
     4803} 
     4804_4fd.push(val); 
     4805} 
     4806return this[_4f9].apply(this,_4fd); 
     4807},fromComputedStyle:function(elem,_503){ 
     4808var d=MochiKit.DOM; 
     4809var cls=MochiKit.Color.Color; 
     4810for(elem=d.getElement(elem);elem;elem=elem.parentNode){ 
     4811var _506=MochiKit.Style.getStyle.apply(d,arguments); 
     4812if(!_506){ 
     4813continue; 
     4814} 
     4815var _507=cls.fromString(_506); 
     4816if(!_507){ 
     4817break; 
     4818} 
     4819if(_507.asRGB().a>0){ 
     4820return _507; 
     4821} 
     4822} 
     4823return null; 
     4824},fromBackground:function(elem){ 
     4825var cls=MochiKit.Color.Color; 
     4826return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor(); 
     4827},fromText:function(elem){ 
     4828var cls=MochiKit.Color.Color; 
     4829return cls.fromComputedStyle(elem,"color","color")||cls.blackColor(); 
     4830},namedColors:function(){ 
     4831return MochiKit.Base.clone(MochiKit.Color.Color._namedColors); 
     4832}}); 
     4833MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_50d){ 
     4834v*=_50d; 
     4835if(v<0){ 
     4836return 0; 
     4837}else{ 
     4838if(v>_50d){ 
     4839return _50d; 
     4840}else{ 
     4841return v; 
     4842} 
     4843} 
     4844},_hslValue:function(n1,n2,hue){ 
     4845if(hue>6){ 
     4846hue-=6; 
     4847}else{ 
     4848if(hue<0){ 
     4849hue+=6; 
     4850} 
     4851} 
     4852var val; 
     4853if(hue<1){ 
     4854val=n1+(n2-n1)*hue; 
     4855}else{ 
     4856if(hue<3){ 
     4857val=n2; 
     4858}else{ 
     4859if(hue<4){ 
     4860val=n1+(n2-n1)*(4-hue); 
     4861}else{ 
     4862val=n1; 
     4863} 
     4864} 
     4865} 
     4866return val; 
     4867},hsvToRGB:function(hue,_513,_514,_515){ 
     4868if(arguments.length==1){ 
     4869var hsv=hue; 
     4870hue=hsv.h; 
     4871_513=hsv.s; 
     4872_514=hsv.v; 
     4873_515=hsv.a; 
     4874} 
     4875var red; 
     4876var _518; 
     4877var blue; 
     4878if(_513===0){ 
     4879red=_514; 
     4880_518=_514; 
     4881blue=_514; 
     4882}else{ 
     4883var i=Math.floor(hue*6); 
     4884var f=(hue*6)-i; 
     4885var p=_514*(1-_513); 
     4886var q=_514*(1-(_513*f)); 
     4887var t=_514*(1-(_513*(1-f))); 
     4888switch(i){ 
     4889case 1: 
     4890red=q; 
     4891_518=_514; 
     4892blue=p; 
     4893break; 
     4894case 2: 
     4895red=p; 
     4896_518=_514; 
     4897blue=t; 
     4898break; 
     4899case 3: 
     4900red=p; 
     4901_518=q; 
     4902blue=_514; 
     4903break; 
     4904case 4: 
     4905red=t; 
     4906_518=p; 
     4907blue=_514; 
     4908break; 
     4909case 5: 
     4910red=_514; 
     4911_518=p; 
     4912blue=q; 
     4913break; 
     4914case 6: 
     4915case 0: 
     4916red=_514; 
     4917_518=t; 
     4918blue=p; 
     4919break; 
     4920} 
     4921} 
     4922return {r:red,g:_518,b:blue,a:_515}; 
     4923},hslToRGB:function(hue,_520,_521,_522){ 
     4924if(arguments.length==1){ 
     4925var hsl=hue; 
     4926hue=hsl.h; 
     4927_520=hsl.s; 
     4928_521=hsl.l; 
     4929_522=hsl.a; 
     4930} 
     4931var red; 
     4932var _525; 
     4933var blue; 
     4934if(_520===0){ 
     4935red=_521; 
     4936_525=_521; 
     4937blue=_521; 
     4938}else{ 
     4939var m2; 
     4940if(_521<=0.5){ 
     4941m2=_521*(1+_520); 
     4942}else{ 
     4943m2=_521+_520-(_521*_520); 
     4944} 
     4945var m1=(2*_521)-m2; 
     4946var f=MochiKit.Color._hslValue; 
     4947var h6=hue*6; 
     4948red=f(m1,m2,h6+2); 
     4949_525=f(m1,m2,h6); 
     4950blue=f(m1,m2,h6-2); 
     4951} 
     4952return {r:red,g:_525,b:blue,a:_522}; 
     4953},rgbToHSV:function(red,_52c,blue,_52e){ 
     4954if(arguments.length==1){ 
     4955var rgb=red; 
     4956red=rgb.r; 
     4957_52c=rgb.g; 
     4958blue=rgb.b; 
     4959_52e=rgb.a; 
     4960} 
     4961var max=Math.max(Math.max(red,_52c),blue); 
     4962var min=Math.min(Math.min(red,_52c),blue); 
     4963var hue; 
     4964var _533; 
     4965var _534=max; 
     4966if(min==max){ 
     4967hue=0; 
     4968_533=0; 
     4969}else{ 
     4970var _535=(max-min); 
     4971_533=_535/max; 
     4972if(red==max){ 
     4973hue=(_52c-blue)/_535; 
     4974}else{ 
     4975if(_52c==max){ 
     4976hue=2+((blue-red)/_535); 
     4977}else{ 
     4978hue=4+((red-_52c)/_535); 
     4979} 
     4980} 
     4981hue/=6; 
     4982if(hue<0){ 
     4983hue+=1; 
     4984} 
     4985if(hue>1){ 
     4986hue-=1; 
     4987} 
     4988} 
     4989return {h:hue,s:_533,v:_534,a:_52e}; 
     4990},rgbToHSL:function(red,_537,blue,_539){ 
     4991if(arguments.length==1){ 
     4992var rgb=red; 
     4993red=rgb.r; 
     4994_537=rgb.g; 
     4995blue=rgb.b; 
     4996_539=rgb.a; 
     4997} 
     4998var max=Math.max(red,Math.max(_537,blue)); 
     4999var min=Math.min(red,Math.min(_537,blue)); 
     5000var hue; 
     5001var _53e; 
     5002var _53f=(max+min)/2; 
     5003var _540=max-min; 
     5004if(_540===0){ 
     5005hue=0; 
     5006_53e=0; 
     5007}else{ 
     5008if(_53f<=0.5){ 
     5009_53e=_540/(max+min); 
     5010}else{ 
     5011_53e=_540/(2-max-min); 
     5012} 
     5013if(red==max){ 
     5014hue=(_537-blue)/_540; 
     5015}else{ 
     5016if(_537==max){ 
     5017hue=2+((blue-red)/_540); 
     5018}else{ 
     5019hue=4+((red-_537)/_540); 
     5020} 
     5021} 
     5022hue/=6; 
     5023if(hue<0){ 
     5024hue+=1; 
     5025} 
     5026if(hue>1){ 
     5027hue-=1; 
     5028} 
     5029} 
     5030return {h:hue,s:_53e,l:_53f,a:_539}; 
     5031},toColorPart:function(num){ 
     5032num=Math.round(num); 
     5033var _542=num.toString(16); 
     5034if(num<16){ 
     5035return "0"+_542; 
     5036} 
     5037return _542; 
     5038},__new__:function(){ 
     5039var m=MochiKit.Base; 
     5040this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]); 
     5041this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]); 
     5042var _544=1/3; 
     5043var _545={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[_544,_544,_544],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*_544,2*_544,2*_544],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]}; 
     5044var _546=function(name,r,g,b,a){ 
     5045var rval=this.fromRGB(r,g,b,a); 
     5046this[name]=function(){ 
     5047return rval; 
     5048}; 
     5049return rval; 
     5050}; 
     5051for(var k in _545){ 
     5052var name=k+"Color"; 
     5053var _54f=m.concat([_546,this.Color,name],_545[k]); 
     5054this.Color[name]=m.bind.apply(null,_54f); 
     5055} 
     5056var _550=function(){ 
     5057for(var i=0;i<arguments.length;i++){ 
     5058if(!(arguments[i] instanceof MochiKit.Color.Color)){ 
     5059return false; 
     5060} 
     5061} 
     5062return true; 
     5063}; 
     5064var _552=function(a,b){ 
     5065return a.compareRGB(b); 
     5066}; 
     5067m.nameFunctions(this); 
     5068m.registerComparator(this.Color.NAME,_550,_552); 
     5069this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
     5070}}); 
     5071MochiKit.Color.EXPORT=["Color"]; 
     5072MochiKit.Color.EXPORT_OK=["clampColorComponent","rgbToHSL","hslToRGB","rgbToHSV","hsvToRGB","toColorPart"]; 
     5073MochiKit.Color.__new__(); 
     5074MochiKit.Base._exportSymbols(this,MochiKit.Color); 
     5075MochiKit.Color.Color._namedColors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}; 
     5076MochiKit.Base._deps("Signal",["Base","DOM","Style"]); 
    31415077MochiKit.Signal.NAME="MochiKit.Signal"; 
    3142 MochiKit.Signal.VERSION="1.4"; 
     5078MochiKit.Signal.VERSION="1.4.2"; 
    31435079MochiKit.Signal._observers=[]; 
    31445080MochiKit.Signal.Event=function(src,e){ 
     
    31485084MochiKit.Base.update(MochiKit.Signal.Event.prototype,{__repr__:function(){ 
    31495085var repr=MochiKit.Base.repr; 
    3150 var str="{event(): "+repr(this.event())+", src(): "+repr(this.src())+", type(): "+repr(this.type())+", target(): "+repr(this.target())+", modifier(): "+"{alt: "+repr(this.modifier().alt)+", ctrl: "+repr(this.modifier().ctrl)+", meta: "+repr(this.modifier().meta)+", shift: "+repr(this.modifier().shift)+", any: "+repr(this.modifier().any)+"}"; 
     5086var str="{event(): "+repr(this.event())+", src(): "+repr(this.src())+", type(): "+repr(this.type())+", target(): "+repr(this.target()); 
     5087if(this.type()&&this.type().indexOf("key")===0||this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu"){ 
     5088str+=", modifier(): "+"{alt: "+repr(this.modifier().alt)+", ctrl: "+repr(this.modifier().ctrl)+", meta: "+repr(this.modifier().meta)+", shift: "+repr(this.modifier().shift)+", any: "+repr(this.modifier().any)+"}"; 
     5089} 
    31515090if(this.type()&&this.type().indexOf("key")===0){ 
    31525091str+=", key(): {code: "+repr(this.key().code)+", string: "+repr(this.key().string)+"}"; 
     
    31545093if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){ 
    31555094str+=", mouse(): {page: "+repr(this.mouse().page)+", client: "+repr(this.mouse().client); 
    3156 if(this.type()!="mousemove"){ 
    3157 str+=", button: {left: "+repr(this.mouse().button.left)+", middle: "+repr(this.mouse().button.middle)+", right: "+repr(this.mouse().button.right)+"}}"; 
    3158 }else{ 
     5095if(this.type()!="mousemove"&&this.type()!="mousewheel"){ 
     5096str+=", button: {left: "+repr(this.mouse().button.left)+", middle: "+repr(this.mouse().button.middle)+", right: "+repr(this.mouse().button.right)+"}"; 
     5097} 
     5098if(this.type()=="mousewheel"){ 
     5099str+=", wheel: "+repr(this.mouse().wheel); 
     5100} 
    31595101str+="}"; 
    31605102} 
    3161 } 
    3162 if(this.type()=="mouseover"||this.type()=="mouseout"){ 
     5103if(this.type()=="mouseover"||this.type()=="mouseout"||this.type()=="mouseenter"||this.type()=="mouseleave"){ 
    31635104str+=", relatedTarget(): "+repr(this.relatedTarget()); 
    31645105} 
     
    31725113return this._event; 
    31735114},type:function(){ 
     5115if(this._event.type==="DOMMouseScroll"){ 
     5116return "mousewheel"; 
     5117}else{ 
    31745118return this._event.type||undefined; 
     5119} 
    31755120},target:function(){ 
    31765121return this._event.target||this._event.srcElement; 
     
    31805125} 
    31815126var elem=null; 
    3182 if(this.type()=="mouseover"){ 
     5127if(this.type()=="mouseover"||this.type()=="mouseenter"){ 
    31835128elem=(this._event.relatedTarget||this._event.fromElement); 
    31845129}else{ 
    3185 if(this.type()=="mouseout"){ 
     5130if(this.type()=="mouseout"||this.type()=="mouseleave"){ 
    31865131elem=(this._event.relatedTarget||this._event.toElement); 
    31875132} 
    31885133} 
    3189 if(elem!==null){ 
     5134try{ 
     5135if(elem!==null&&elem.nodeType!==null){ 
    31905136this._relatedTarget=elem; 
    31915137return elem; 
     5138} 
     5139} 
     5140catch(ignore){ 
    31925141} 
    31935142return undefined; 
     
    32565205m.page.y=e.clientY+(de.scrollTop||b.scrollTop)-(de.clientTop||0); 
    32575206} 
    3258 if(this.type()!="mousemove"){ 
     5207if(this.type()!="mousemove"&&this.type()!="mousewheel"){ 
    32595208m.button={}; 
    32605209m.button.left=false; 
     
    32715220} 
    32725221} 
     5222if(this.type()=="mousewheel"){ 
     5223m.wheel=new MochiKit.Style.Coordinates(0,0); 
     5224if(e.wheelDeltaX||e.wheelDeltaY){ 
     5225m.wheel.x=e.wheelDeltaX/-40||0; 
     5226m.wheel.y=e.wheelDeltaY/-40||0; 
     5227}else{ 
     5228if(e.wheelDelta){ 
     5229m.wheel.y=e.wheelDelta/-40; 
     5230}else{ 
     5231m.wheel.y=e.detail||0; 
     5232} 
     5233} 
     5234} 
    32735235this._mouse=m; 
    32745236return m; 
     
    33005262MochiKit.Signal._specialMacKeys={3:"KEY_ENTER",63289:"KEY_NUM_PAD_CLEAR",63276:"KEY_PAGE_UP",63277:"KEY_PAGE_DOWN",63275:"KEY_END",63273:"KEY_HOME",63234:"KEY_ARROW_LEFT",63232:"KEY_ARROW_UP",63235:"KEY_ARROW_RIGHT",63233:"KEY_ARROW_DOWN",63302:"KEY_INSERT",63272:"KEY_DELETE"}; 
    33015263(function(){ 
    3302 var _380=MochiKit.Signal._specialMacKeys; 
     5264var _561=MochiKit.Signal._specialMacKeys; 
    33035265for(i=63236;i<=63242;i++){ 
    3304 _380[i]="KEY_F"+(i-63236+1); 
     5266_561[i]="KEY_F"+(i-63236+1); 
    33055267} 
    33065268})(); 
    33075269MochiKit.Signal._specialKeys={8:"KEY_BACKSPACE",9:"KEY_TAB",12:"KEY_NUM_PAD_CLEAR",13:"KEY_ENTER",16:"KEY_SHIFT",17:"KEY_CTRL",18:"KEY_ALT",19:"KEY_PAUSE",20:"KEY_CAPS_LOCK",27:"KEY_ESCAPE",32:"KEY_SPACEBAR",33:"KEY_PAGE_UP",34:"KEY_PAGE_DOWN",35:"KEY_END",36:"KEY_HOME",37:"KEY_ARROW_LEFT",38:"KEY_ARROW_UP",39:"KEY_ARROW_RIGHT",40:"KEY_ARROW_DOWN",44:"KEY_PRINT_SCREEN",45:"KEY_INSERT",46:"KEY_DELETE",59:"KEY_SEMICOLON",91:"KEY_WINDOWS_LEFT",92:"KEY_WINDOWS_RIGHT",93:"KEY_SELECT",106:"KEY_NUM_PAD_ASTERISK",107:"KEY_NUM_PAD_PLUS_SIGN",109:"KEY_NUM_PAD_HYPHEN-MINUS",110:"KEY_NUM_PAD_FULL_STOP",111:"KEY_NUM_PAD_SOLIDUS",144:"KEY_NUM_LOCK",145:"KEY_SCROLL_LOCK",186:"KEY_SEMICOLON",187:"KEY_EQUALS_SIGN",188:"KEY_COMMA",189:"KEY_HYPHEN-MINUS",190:"KEY_FULL_STOP",191:"KEY_SOLIDUS",192:"KEY_GRAVE_ACCENT",219:"KEY_LEFT_SQUARE_BRACKET",220:"KEY_REVERSE_SOLIDUS",221:"KEY_RIGHT_SQUARE_BRACKET",222:"KEY_APOSTROPHE"}; 
    33085270(function(){ 
    3309 var _381=MochiKit.Signal._specialKeys; 
     5271var _562=MochiKit.Signal._specialKeys; 
    33105272for(var i=48;i<=57;i++){ 
    3311 _381[i]="KEY_"+(i-48); 
     5273_562[i]="KEY_"+(i-48); 
    33125274} 
    33135275for(i=65;i<=90;i++){ 
    3314 _381[i]="KEY_"+String.fromCharCode(i); 
     5276_562[i]="KEY_"+String.fromCharCode(i); 
    33155277} 
    33165278for(i=96;i<=105;i++){ 
    3317 _381[i]="KEY_NUM_PAD_"+(i-96); 
     5279_562[i]="KEY_NUM_PAD_"+(i-96); 
    33185280} 
    33195281for(i=112;i<=123;i++){ 
    3320 _381[i]="KEY_F"+(i-112+1); 
     5282_562[i]="KEY_F"+(i-112+1); 
    33215283} 
    33225284})(); 
     5285MochiKit.Signal.Ident=function(_564){ 
     5286this.source=_564.source; 
     5287this.signal=_564.signal; 
     5288this.listener=_564.listener; 
     5289this.isDOM=_564.isDOM; 
     5290this.objOrFunc=_564.objOrFunc; 
     5291this.funcOrStr=_564.funcOrStr; 
     5292this.connected=_564.connected; 
     5293}; 
     5294MochiKit.Signal.Ident.prototype={}; 
    33235295MochiKit.Base.update(MochiKit.Signal,{__repr__:function(){ 
    33245296return "["+this.NAME+" "+this.VERSION+"]"; 
     
    33275299},_unloadCache:function(){ 
    33285300var self=MochiKit.Signal; 
    3329 var _382=self._observers; 
    3330 for(var i=0;i<_382.length;i++){ 
    3331 self._disconnect(_382[i]); 
    3332 } 
    3333 delete self._observers; 
    3334 try{ 
    3335 window.onload=undefined; 
    3336 } 
    3337 catch(e){ 
    3338 } 
    3339 try{ 
    3340 window.onunload=undefined; 
    3341 } 
    3342 catch(e){ 
    3343 } 
    3344 },_listener:function(src,func,obj,_383){ 
     5301var _566=self._observers; 
     5302for(var i=0;i<_566.length;i++){ 
     5303if(_566[i].signal!=="onload"&&_566[i].signal!=="onunload"){ 
     5304self._disconnect(_566[i]); 
     5305} 
     5306} 
     5307},_listener:function(src,sig,func,obj,_56c){ 
    33455308var self=MochiKit.Signal; 
    33465309var E=self.Event; 
    3347 if(!_383){ 
    3348 return MochiKit.Base.bind(func,obj); 
     5310if(!_56c){ 
     5311if(typeof (func.im_self)=="undefined"){ 
     5312return MochiKit.Base.bindLate(func,obj); 
     5313}else{ 
     5314return func; 
     5315} 
    33495316} 
    33505317obj=obj||src; 
    33515318if(typeof (func)=="string"){ 
    3352 return function(_385){ 
    3353 obj[func].apply(obj,[new E(src,_385)]); 
    3354 }; 
    3355 }else{ 
    3356 return function(_386){ 
    3357 func.apply(obj,[new E(src,_386)]); 
    3358 }; 
     5319if(sig==="onload"||sig==="onunload"){ 
     5320return function(_56f){ 
     5321obj[func].apply(obj,[new E(src,_56f)]); 
     5322var _570=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:obj,funcOrStr:func}); 
     5323MochiKit.Signal._disconnect(_570); 
     5324}; 
     5325}else{ 
     5326return function(_571){ 
     5327obj[func].apply(obj,[new E(src,_571)]); 
     5328}; 
     5329} 
     5330}else{ 
     5331if(sig==="onload"||sig==="onunload"){ 
     5332return function(_572){ 
     5333func.apply(obj,[new E(src,_572)]); 
     5334var _573=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:func}); 
     5335MochiKit.Signal._disconnect(_573); 
     5336}; 
     5337}else{ 
     5338return function(_574){ 
     5339func.apply(obj,[new E(src,_574)]); 
     5340}; 
     5341} 
    33595342} 
    33605343},_browserAlreadyHasMouseEnterAndLeave:function(){ 
    33615344return /MSIE/.test(navigator.userAgent); 
     5345},_browserLacksMouseWheelEvent:function(){ 
     5346return /Gecko\//.test(navigator.userAgent); 
    33625347},_mouseEnterListener:function(src,sig,func,obj){ 
    33635348var E=MochiKit.Signal.Event; 
    3364 return function(_388){ 
    3365 var e=new E(src,_388); 
     5349return function(_57a){ 
     5350var e=new E(src,_57a); 
    33665351try{ 
    33675352e.relatedTarget().nodeName; 
     
    33835368} 
    33845369}; 
    3385 },_getDestPair:function(_389,_390){ 
     5370},_getDestPair:function(_57c,_57d){ 
    33865371var obj=null; 
    33875372var func=null; 
    3388 if(typeof (_390)!="undefined"){ 
    3389 obj=_389; 
    3390 func=_390; 
    3391 if(typeof (_390)=="string"){ 
    3392 if(typeof (_389[_390])!="function"){ 
     5373if(typeof (_57d)!="undefined"){ 
     5374obj=_57c; 
     5375func=_57d; 
     5376if(typeof (_57d)=="string"){ 
     5377if(typeof (_57c[_57d])!="function"){ 
    33935378throw new Error("'funcOrStr' must be a function on 'objOrFunc'"); 
    33945379} 
    33955380}else{ 
    3396 if(typeof (_390)!="function"){ 
     5381if(typeof (_57d)!="function"){ 
    33975382throw new Error("'funcOrStr' must be a function or string"); 
    33985383} 
    33995384} 
    34005385}else{ 
    3401 if(typeof (_389)!="function"){ 
     5386if(typeof (_57c)!="function"){ 
    34025387throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given"); 
    34035388}else{ 
    3404 func=_389; 
     5389func=_57c; 
    34055390} 
    34065391} 
    34075392return [obj,func]; 
    3408 },connect:function(src,sig,_391,_392){ 
     5393},connect:function(src,sig,_582,_583){ 
    34095394src=MochiKit.DOM.getElement(src); 
    34105395var self=MochiKit.Signal; 
     
    34125397throw new Error("'sig' must be a string"); 
    34135398} 
    3414 var _393=self._getDestPair(_391,_392); 
    3415 var obj=_393[0]; 
    3416 var func=_393[1]; 
     5399var _585=self._getDestPair(_582,_583); 
     5400var obj=_585[0]; 
     5401var func=_585[1]; 
    34175402if(typeof (obj)=="undefined"||obj===null){ 
    34185403obj=src; 
    34195404} 
    3420 var _394=!!(src.addEventListener||src.attachEvent); 
    3421 if(_394&&(sig==="onmouseenter"||sig==="onmouseleave")&&!self._browserAlreadyHasMouseEnterAndLeave()){ 
    3422 var _395=self._mouseEnterListener(src,sig.substr(2),func,obj); 
     5405var _588=!!(src.addEventListener||src.attachEvent); 
     5406if(_588&&(sig==="onmouseenter"||sig==="onmouseleave")&&!self._browserAlreadyHasMouseEnterAndLeave()){ 
     5407var _589=self._mouseEnterListener(src,sig.substr(2),func,obj); 
    34235408if(sig==="onmouseenter"){ 
    34245409sig="onmouseover"; 
     
    34275412} 
    34285413}else{ 
    3429 var _395=self._listener(src,func,obj,_394); 
     5414if(_588&&sig=="onmousewheel"&&self._browserLacksMouseWheelEvent()){ 
     5415var _589=self._listener(src,sig,func,obj,_588); 
     5416sig="onDOMMouseScroll"; 
     5417}else{ 
     5418var _589=self._listener(src,sig,func,obj,_588); 
     5419} 
    34305420} 
    34315421if(src.addEventListener){ 
    3432 src.addEventListener(sig.substr(2),_395,false); 
     5422src.addEventListener(sig.substr(2),_589,false); 
    34335423}else{ 
    34345424if(src.attachEvent){ 
    3435 src.attachEvent(sig,_395); 
    3436 } 
    3437 } 
    3438 var _396=[src,sig,_395,_394,_391,_392,true]; 
    3439 self._observers.push(_396); 
    3440 if(!_394&&typeof (src.__connect__)=="function"){ 
    3441 var args=MochiKit.Base.extend([_396],arguments,1); 
     5425src.attachEvent(sig,_589); 
     5426} 
     5427} 
     5428var _58a=new MochiKit.Signal.Ident({source:src,signal:sig,listener:_589,isDOM:_588,objOrFunc:_582,funcOrStr:_583,connected:true}); 
     5429self._observers.push(_58a); 
     5430if(!_588&&typeof (src.__connect__)=="function"){ 
     5431var args=MochiKit.Base.extend([_58a],arguments,1); 
    34425432src.__connect__.apply(src,args); 
    34435433} 
    3444 return _396; 
    3445 },_disconnect:function(_397){ 
    3446 if(!_397[6]){ 
     5434return _58a; 
     5435},_disconnect:function(_58c){ 
     5436if(!_58c.connected){ 
    34475437return; 
    34485438} 
    3449 _397[6]=false; 
    3450 if(!_397[3]){ 
     5439_58c.connected=false; 
     5440var src=_58c.source; 
     5441var sig=_58c.signal; 
     5442var _58f=_58c.listener; 
     5443if(!_58c.isDOM){ 
     5444if(typeof (src.__disconnect__)=="function"){ 
     5445src.__disconnect__(_58c,sig,_58c.objOrFunc,_58c.funcOrStr); 
     5446} 
    34515447return; 
    34525448} 
    3453 var src=_397[0]; 
    3454 var sig=_397[1]; 
    3455 var _398=_397[2]; 
    34565449if(src.removeEventListener){ 
    3457 src.removeEventListener(sig.substr(2),_398,false); 
     5450src.removeEventListener(sig.substr(2),_58f,false); 
    34585451}else{ 
    34595452if(src.detachEvent){ 
    3460 src.detachEvent(sig,_398); 
     5453src.detachEvent(sig,_58f); 
    34615454}else{ 
    34625455throw new Error("'src' must be a DOM element"); 
    34635456} 
    34645457} 
    3465 },disconnect:function(_399){ 
     5458},disconnect:function(_590){ 
    34665459var self=MochiKit.Signal; 
    3467 var _400=self._observers; 
     5460var _592=self._observers; 
    34685461var m=MochiKit.Base; 
    34695462if(arguments.length>1){ 
     
    34725465var obj=arguments[2]; 
    34735466var func=arguments[3]; 
    3474 for(var i=_400.length-1;i>=0;i--){ 
    3475 var o=_400[i]; 
    3476 if(o[0]===src&&o[1]===sig&&o[4]===obj&&o[5]===func){ 
     5467for(var i=_592.length-1;i>=0;i--){ 
     5468var o=_592[i]; 
     5469if(o.source===src&&o.signal===sig&&o.objOrFunc===obj&&o.funcOrStr===func){ 
    34775470self._disconnect(o); 
    34785471if(!self._lock){ 
    3479 _400.splice(i,1); 
     5472_592.splice(i,1); 
    34805473}else{ 
    34815474self._dirty=true; 
     
    34855478} 
    34865479}else{ 
    3487 var idx=m.findIdentical(_400,_399); 
     5480var idx=m.findIdentical(_592,_590); 
    34885481if(idx>=0){ 
    3489 self._disconnect(_399); 
     5482self._disconnect(_590); 
    34905483if(!self._lock){ 
    3491 _400.splice(idx,1); 
     5484_592.splice(idx,1); 
    34925485}else{ 
    34935486self._dirty=true; 
     
    34975490} 
    34985491return false; 
    3499 },disconnectAllTo:function(_401,_402){ 
     5492},disconnectAllTo:function(_59b,_59c){ 
    35005493var self=MochiKit.Signal; 
    3501 var _403=self._observers; 
    3502 var _404=self._disconnect; 
    3503 var _405=self._lock; 
    3504 var _406=self._dirty; 
    3505 if(typeof (_402)==="undefined"){ 
    3506 _402=null; 
    3507 } 
    3508 for(var i=_403.length-1;i>=0;i--){ 
    3509 var _407=_403[i]; 
    3510 if(_407[4]===_401&&(_402===null||_407[5]===_402)){ 
    3511 _404(_407); 
    3512 if(_405){ 
    3513 _406=true; 
    3514 }else{ 
    3515 _403.splice(i,1); 
    3516 } 
    3517 } 
    3518 } 
    3519 self._dirty=_406; 
     5494var _59e=self._observers; 
     5495var _59f=self._disconnect; 
     5496var _5a0=self._lock; 
     5497var _5a1=self._dirty; 
     5498if(typeof (_59c)==="undefined"){ 
     5499_59c=null; 
     5500} 
     5501for(var i=_59e.length-1;i>=0;i--){ 
     5502var _5a3=_59e[i]; 
     5503if(_5a3.objOrFunc===_59b&&(_59c===null||_5a3.funcOrStr===_59c)){ 
     5504_59f(_5a3); 
     5505if(_5a0){ 
     5506_5a1=true; 
     5507}else{ 
     5508_59e.splice(i,1); 
     5509} 
     5510} 
     5511} 
     5512self._dirty=_5a1; 
    35205513},disconnectAll:function(src,sig){ 
    35215514src=MochiKit.DOM.getElement(src); 
    35225515var m=MochiKit.Base; 
    3523 var _408=m.flattenArguments(m.extend(null,arguments,1)); 
     5516var _5a7=m.flattenArguments(m.extend(null,arguments,1)); 
    35245517var self=MochiKit.Signal; 
    3525 var _409=self._disconnect; 
    3526 var _410=self._observers; 
    3527 var i,ident; 
    3528 var _411=self._lock; 
    3529 var _412=self._dirty; 
    3530 if(_408.length===0){ 
    3531 for(i=_410.length-1;i>=0;i--){ 
    3532 ident=_410[i]; 
    3533 if(ident[0]===src){ 
    3534 _409(ident); 
    3535 if(!_411){ 
    3536 _410.splice(i,1); 
    3537 }else{ 
    3538 _412=true; 
     5518var _5a9=self._disconnect; 
     5519var _5aa=self._observers; 
     5520var i,_5ac; 
     5521var _5ad=self._lock; 
     5522var _5ae=self._dirty; 
     5523if(_5a7.length===0){ 
     5524for(i=_5aa.length-1;i>=0;i--){ 
     5525_5ac=_5aa[i]; 
     5526if(_5ac.source===src){ 
     5527_5a9(_5ac); 
     5528if(!_5ad){ 
     5529_5aa.splice(i,1); 
     5530}else{ 
     5531_5ae=true; 
    35395532} 
    35405533} 
     
    35425535}else{ 
    35435536var sigs={}; 
    3544 for(i=0;i<_408.length;i++){ 
    3545 sigs[_408[i]]=true; 
    3546 } 
    3547 for(i=_410.length-1;i>=0;i--){ 
    3548 ident=_410[i]; 
    3549 if(ident[0]===src&&ident[1] in sigs){ 
    3550 _409(ident); 
    3551 if(!_411){ 
    3552 _410.splice(i,1); 
    3553 }else{ 
    3554 _412=true; 
    3555 } 
    3556 } 
    3557 } 
    3558 } 
    3559 self._dirty=_412; 
     5537for(i=0;i<_5a7.length;i++){ 
     5538sigs[_5a7[i]]=true; 
     5539} 
     5540for(i=_5aa.length-1;i>=0;i--){ 
     5541_5ac=_5aa[i]; 
     5542if(_5ac.source===src&&_5ac.signal in sigs){ 
     5543_5a9(_5ac); 
     5544if(!_5ad){ 
     5545_5aa.splice(i,1); 
     5546}else{ 
     5547_5ae=true; 
     5548} 
     5549} 
     5550} 
     5551} 
     5552self._dirty=_5ae; 
    35605553},signal:function(src,sig){ 
    35615554var self=MochiKit.Signal; 
    3562 var _414=self._observers; 
     5555var _5b3=self._observers; 
    35635556src=MochiKit.DOM.getElement(src); 
    35645557var args=MochiKit.Base.extend(null,arguments,2); 
    3565 var _415=[]; 
     5558var _5b5=[]; 
    35665559self._lock=true; 
    3567 for(var i=0;i<_414.length;i++){ 
    3568 var _416=_414[i]; 
    3569 if(_416[0]===src&&_416[1]===sig){ 
     5560for(var i=0;i<_5b3.length;i++){ 
     5561var _5b7=_5b3[i]; 
     5562if(_5b7.source===src&&_5b7.signal===sig&&_5b7.connected){ 
    35705563try{ 
    3571 _416[2].apply(src,args); 
     5564_5b7.listener.apply(src,args); 
    35725565} 
    35735566catch(e){ 
    3574 _415.push(e); 
     5567_5b5.push(e); 
    35755568} 
    35765569} 
     
    35795572if(self._dirty){ 
    35805573self._dirty=false; 
    3581 for(var i=_414.length-1;i>=0;i--){ 
    3582 if(!_414[i][6]){ 
    3583 _414.splice(i,1); 
    3584 } 
    3585 } 
    3586 } 
    3587 if(_415.length==1){ 
    3588 throw _415[0]; 
    3589 }else{ 
    3590 if(_415.length>1){ 
     5574for(var i=_5b3.length-1;i>=0;i--){ 
     5575if(!_5b3[i].connected){ 
     5576_5b3.splice(i,1); 
     5577} 
     5578} 
     5579} 
     5580if(_5b5.length==1){ 
     5581throw _5b5[0]; 
     5582}else{ 
     5583if(_5b5.length>1){ 
    35915584var e=new Error("Multiple errors thrown in handling 'sig', see errors property"); 
    3592 e.errors=_415; 
     5585e.errors=_5b5; 
    35935586throw e; 
    35945587} 
     
    36195612} 
    36205613MochiKit.Base._exportSymbols(this,MochiKit.Signal); 
     5614MochiKit.Base._deps("Position",["Base","DOM","Style"]); 
     5615MochiKit.Position.NAME="MochiKit.Position"; 
     5616MochiKit.Position.VERSION="1.4.2"; 
     5617MochiKit.Position.__repr__=function(){ 
     5618return "["+this.NAME+" "+this.VERSION+"]"; 
     5619}; 
     5620MochiKit.Position.toString=function(){ 
     5621return this.__repr__(); 
     5622}; 
     5623MochiKit.Position.EXPORT_OK=[]; 
     5624MochiKit.Position.EXPORT=[]; 
     5625MochiKit.Base.update(MochiKit.Position,{includeScrollOffsets:false,prepare:function(){ 
     5626var _5bb=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0; 
     5627var _5bc=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0; 
     5628this.windowOffset=new MochiKit.Style.Coordinates(_5bb,_5bc); 
     5629},cumulativeOffset:function(_5bd){ 
     5630var _5be=0; 
     5631var _5bf=0; 
     5632do{ 
     5633_5be+=_5bd.offsetTop||0; 
     5634_5bf+=_5bd.offsetLeft||0; 
     5635_5bd=_5bd.offsetParent; 
     5636}while(_5bd); 
     5637return new MochiKit.Style.Coordinates(_5bf,_5be); 
     5638},realOffset:function(_5c0){ 
     5639var _5c1=0; 
     5640var _5c2=0; 
     5641do{ 
     5642_5c1+=_5c0.scrollTop||0; 
     5643_5c2+=_5c0.scrollLeft||0; 
     5644_5c0=_5c0.parentNode; 
     5645}while(_5c0); 
     5646return new MochiKit.Style.Coordinates(_5c2,_5c1); 
     5647},within:function(_5c3,x,y){ 
     5648if(this.includeScrollOffsets){ 
     5649return this.withinIncludingScrolloffsets(_5c3,x,y); 
     5650} 
     5651this.xcomp=x; 
     5652this.ycomp=y; 
     5653this.offset=this.cumulativeOffset(_5c3); 
     5654if(_5c3.style.position=="fixed"){ 
     5655this.offset.x+=this.windowOffset.x; 
     5656this.offset.y+=this.windowOffset.y; 
     5657} 
     5658return (y>=this.offset.y&&y<this.offset.y+_5c3.offsetHeight&&x>=this.offset.x&&x<this.offset.x+_5c3.offsetWidth); 
     5659},withinIncludingScrolloffsets:function(_5c6,x,y){ 
     5660var _5c9=this.realOffset(_5c6); 
     5661this.xcomp=x+_5c9.x-this.windowOffset.x; 
     5662this.ycomp=y+_5c9.y-this.windowOffset.y; 
     5663this.offset=this.cumulativeOffset(_5c6); 
     5664return (this.ycomp>=this.offset.y&&this.ycomp<this.offset.y+_5c6.offsetHeight&&this.xcomp>=this.offset.x&&this.xcomp<this.offset.x+_5c6.offsetWidth); 
     5665},overlap:function(mode,_5cb){ 
     5666if(!mode){ 
     5667return 0; 
     5668} 
     5669if(mode=="vertical"){ 
     5670return ((this.offset.y+_5cb.offsetHeight)-this.ycomp)/_5cb.offsetHeight; 
     5671} 
     5672if(mode=="horizontal"){ 
     5673return ((this.offset.x+_5cb.offsetWidth)-this.xcomp)/_5cb.offsetWidth; 
     5674} 
     5675},absolutize:function(_5cc){ 
     5676_5cc=MochiKit.DOM.getElement(_5cc); 
     5677if(_5cc.style.position=="absolute"){ 
     5678return; 
     5679} 
     5680MochiKit.Position.prepare(); 
     5681var _5cd=MochiKit.Position.positionedOffset(_5cc); 
     5682var _5ce=_5cc.clientWidth; 
     5683var _5cf=_5cc.clientHeight; 
     5684var _5d0={"position":_5cc.style.position,"left":_5cd.x-parseFloat(_5cc.style.left||0),"top":_5cd.y-parseFloat(_5cc.style.top||0),"width":_5cc.style.width,"height":_5cc.style.height}; 
     5685_5cc.style.position="absolute"; 
     5686_5cc.style.top=_5cd.y+"px"; 
     5687_5cc.style.left=_5cd.x+"px"; 
     5688_5cc.style.width=_5ce+"px"; 
     5689_5cc.style.height=_5cf+"px"; 
     5690return _5d0; 
     5691},positionedOffset:function(_5d1){ 
     5692var _5d2=0,_5d3=0; 
     5693do{ 
     5694_5d2+=_5d1.offsetTop||0; 
     5695_5d3+=_5d1.offsetLeft||0; 
     5696_5d1=_5d1.offsetParent; 
     5697if(_5d1){ 
     5698p=MochiKit.Style.getStyle(_5d1,"position"); 
     5699if(p=="relative"||p=="absolute"){ 
     5700break; 
     5701} 
     5702} 
     5703}while(_5d1); 
     5704return new MochiKit.Style.Coordinates(_5d3,_5d2); 
     5705},relativize:function(_5d4,_5d5){ 
     5706_5d4=MochiKit.DOM.getElement(_5d4); 
     5707if(_5d4.style.position=="relative"){ 
     5708return; 
     5709} 
     5710MochiKit.Position.prepare(); 
     5711var top=parseFloat(_5d4.style.top||0)-(_5d5["top"]||0); 
     5712var left=parseFloat(_5d4.style.left||0)-(_5d5["left"]||0); 
     5713_5d4.style.position=_5d5["position"]; 
     5714_5d4.style.top=top+"px"; 
     5715_5d4.style.left=left+"px"; 
     5716_5d4.style.width=_5d5["width"]; 
     5717_5d4.style.height=_5d5["height"]; 
     5718},clone:function(_5d8,_5d9){ 
     5719_5d8=MochiKit.DOM.getElement(_5d8); 
     5720_5d9=MochiKit.DOM.getElement(_5d9); 
     5721_5d9.style.position="absolute"; 
     5722var _5da=this.cumulativeOffset(_5d8); 
     5723_5d9.style.top=_5da.y+"px"; 
     5724_5d9.style.left=_5da.x+"px"; 
     5725_5d9.style.width=_5d8.offsetWidth+"px"; 
     5726_5d9.style.height=_5d8.offsetHeight+"px"; 
     5727},page:function(_5db){ 
     5728var _5dc=0; 
     5729var _5dd=0; 
     5730var _5de=_5db; 
     5731do{ 
     5732_5dc+=_5de.offsetTop||0; 
     5733_5dd+=_5de.offsetLeft||0; 
     5734if(_5de.offsetParent==document.body&&MochiKit.Style.getStyle(_5de,"position")=="absolute"){ 
     5735break; 
     5736} 
     5737}while(_5de=_5de.offsetParent); 
     5738_5de=_5db; 
     5739do{ 
     5740_5dc-=_5de.scrollTop||0; 
     5741_5dd-=_5de.scrollLeft||0; 
     5742}while(_5de=_5de.parentNode); 
     5743return new MochiKit.Style.Coordinates(_5dd,_5dc); 
     5744}}); 
     5745MochiKit.Position.__new__=function(win){ 
     5746var m=MochiKit.Base; 
     5747this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
     5748m.nameFunctions(this); 
     5749}; 
     5750MochiKit.Position.__new__(this); 
     5751MochiKit.Base._exportSymbols(this,MochiKit.Position); 
     5752MochiKit.Base._deps("Visual",["Base","DOM","Style","Color","Position"]); 
     5753MochiKit.Visual.NAME="MochiKit.Visual"; 
     5754MochiKit.Visual.VERSION="1.4.2"; 
     5755MochiKit.Visual.__repr__=function(){ 
     5756return "["+this.NAME+" "+this.VERSION+"]"; 
     5757}; 
     5758MochiKit.Visual.toString=function(){ 
     5759return this.__repr__(); 
     5760}; 
     5761MochiKit.Visual._RoundCorners=function(e,_5e2){ 
     5762e=MochiKit.DOM.getElement(e); 
     5763this._setOptions(_5e2); 
     5764if(this.options.__unstable__wrapElement){ 
     5765e=this._doWrap(e); 
     5766} 
     5767var _5e3=this.options.color; 
     5768var C=MochiKit.Color.Color; 
     5769if(this.options.color==="fromElement"){ 
     5770_5e3=C.fromBackground(e); 
     5771}else{ 
     5772if(!(_5e3 instanceof C)){ 
     5773_5e3=C.fromString(_5e3); 
     5774} 
     5775} 
     5776this.isTransparent=(_5e3.asRGB().a<=0); 
     5777var _5e5=this.options.bgColor; 
     5778if(this.options.bgColor==="fromParent"){ 
     5779_5e5=C.fromBackground(e.offsetParent); 
     5780}else{ 
     5781if(!(_5e5 instanceof C)){ 
     5782_5e5=C.fromString(_5e5); 
     5783} 
     5784} 
     5785this._roundCornersImpl(e,_5e3,_5e5); 
     5786}; 
     5787MochiKit.Visual._RoundCorners.prototype={_doWrap:function(e){ 
     5788var _5e7=e.parentNode; 
     5789var doc=MochiKit.DOM.currentDocument(); 
     5790if(typeof (doc.defaultView)==="undefined"||doc.defaultView===null){ 
     5791return e; 
     5792} 
     5793var _5e9=doc.defaultView.getComputedStyle(e,null); 
     5794if(typeof (_5e9)==="undefined"||_5e9===null){ 
     5795return e; 
     5796} 
     5797var _5ea=MochiKit.DOM.DIV({"style":{display:"block",marginTop:_5e9.getPropertyValue("padding-top"),marginRight:_5e9.getPropertyValue("padding-right"),marginBottom:_5e9.getPropertyValue("padding-bottom"),marginLeft:_5e9.getPropertyValue("padding-left"),padding:"0px"}}); 
     5798_5ea.innerHTML=e.innerHTML; 
     5799e.innerHTML=""; 
     5800e.appendChild(_5ea); 
     5801return e; 
     5802},_roundCornersImpl:function(e,_5ec,_5ed){ 
     5803if(this.options.border){ 
     5804this._renderBorder(e,_5ed); 
     5805} 
     5806if(this._isTopRounded()){ 
     5807this._roundTopCorners(e,_5ec,_5ed); 
     5808} 
     5809if(this._isBottomRounded()){ 
     5810this._roundBottomCorners(e,_5ec,_5ed); 
     5811} 
     5812},_renderBorder:function(el,_5ef){ 
     5813var _5f0="1px solid "+this._borderColor(_5ef); 
     5814var _5f1="border-left: "+_5f0; 
     5815var _5f2="border-right: "+_5f0; 
     5816var _5f3="style='"+_5f1+";"+_5f2+"'"; 
     5817el.innerHTML="<div "+_5f3+">"+el.innerHTML+"</div>"; 
     5818},_roundTopCorners:function(el,_5f5,_5f6){ 
     5819var _5f7=this._createCorner(_5f6); 
     5820for(var i=0;i<this.options.numSlices;i++){ 
     5821_5f7.appendChild(this._createCornerSlice(_5f5,_5f6,i,"top")); 
     5822} 
     5823el.style.paddingTop=0; 
     5824el.insertBefore(_5f7,el.firstChild); 
     5825},_roundBottomCorners:function(el,_5fa,_5fb){ 
     5826var _5fc=this._createCorner(_5fb); 
     5827for(var i=(this.options.numSlices-1);i>=0;i--){ 
     5828_5fc.appendChild(this._createCornerSlice(_5fa,_5fb,i,"bottom")); 
     5829} 
     5830el.style.paddingBottom=0; 
     5831el.appendChild(_5fc); 
     5832},_createCorner:function(_5fe){ 
     5833var dom=MochiKit.DOM; 
     5834return dom.DIV({style:{backgroundColor:_5fe.toString()}}); 
     5835},_createCornerSlice:function(_600,_601,n,_603){ 
     5836var _604=MochiKit.DOM.SPAN(); 
     5837var _605=_604.style; 
     5838_605.backgroundColor=_600.toString(); 
     5839_605.display="block"; 
     5840_605.height="1px"; 
     5841_605.overflow="hidden"; 
     5842_605.fontSize="1px"; 
     5843var _606=this._borderColor(_600,_601); 
     5844if(this.options.border&&n===0){ 
     5845_605.borderTopStyle="solid"; 
     5846_605.borderTopWidth="1px"; 
     5847_605.borderLeftWidth="0px"; 
     5848_605.borderRightWidth="0px"; 
     5849_605.borderBottomWidth="0px"; 
     5850_605.height="0px"; 
     5851_605.borderColor=_606.toString(); 
     5852}else{ 
     5853if(_606){ 
     5854_605.borderColor=_606.toString(); 
     5855_605.borderStyle="solid"; 
     5856_605.borderWidth="0px 1px"; 
     5857} 
     5858} 
     5859if(!this.options.compact&&(n==(this.options.numSlices-1))){ 
     5860_605.height="2px"; 
     5861} 
     5862this._setMargin(_604,n,_603); 
     5863this._setBorder(_604,n,_603); 
     5864return _604; 
     5865},_setOptions:function(_607){ 
     5866this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false}; 
     5867MochiKit.Base.update(this.options,_607); 
     5868this.options.numSlices=(this.options.compact?2:4); 
     5869},_whichSideTop:function(){ 
     5870var _608=this.options.corners; 
     5871if(this._hasString(_608,"all","top")){ 
     5872return ""; 
     5873} 
     5874var _609=(_608.indexOf("tl")!=-1); 
     5875var _60a=(_608.indexOf("tr")!=-1); 
     5876if(_609&&_60a){ 
     5877return ""; 
     5878} 
     5879if(_609){ 
     5880return "left"; 
     5881} 
     5882if(_60a){ 
     5883return "right"; 
     5884} 
     5885return ""; 
     5886},_whichSideBottom:function(){ 
     5887var _60b=this.options.corners; 
     5888if(this._hasString(_60b,"all","bottom")){ 
     5889return ""; 
     5890} 
     5891var _60c=(_60b.indexOf("bl")!=-1); 
     5892var _60d=(_60b.indexOf("br")!=-1); 
     5893if(_60c&&_60d){ 
     5894return ""; 
     5895} 
     5896if(_60c){ 
     5897return "left"; 
     5898} 
     5899if(_60d){ 
     5900return "right"; 
     5901} 
     5902return ""; 
     5903},_borderColor:function(_60e,_60f){ 
     5904if(_60e=="transparent"){ 
     5905return _60f; 
     5906}else{ 
     5907if(this.options.border){ 
     5908return this.options.border; 
     5909}else{ 
     5910if(this.options.blend){ 
     5911return _60f.blendedColor(_60e); 
     5912} 
     5913} 
     5914} 
     5915return ""; 
     5916},_setMargin:function(el,n,_612){ 
     5917var _613=this._marginSize(n)+"px"; 
     5918var _614=(_612=="top"?this._whichSideTop():this._whichSideBottom()); 
     5919var _615=el.style; 
     5920if(_614=="left"){ 
     5921_615.marginLeft=_613; 
     5922_615.marginRight="0px"; 
     5923}else{ 
     5924if(_614=="right"){ 
     5925_615.marginRight=_613; 
     5926_615.marginLeft="0px"; 
     5927}else{ 
     5928_615.marginLeft=_613; 
     5929_615.marginRight=_613; 
     5930} 
     5931} 
     5932},_setBorder:function(el,n,_618){ 
     5933var _619=this._borderSize(n)+"px"; 
     5934var _61a=(_618=="top"?this._whichSideTop():this._whichSideBottom()); 
     5935var _61b=el.style; 
     5936if(_61a=="left"){ 
     5937_61b.borderLeftWidth=_619; 
     5938_61b.borderRightWidth="0px"; 
     5939}else{ 
     5940if(_61a=="right"){ 
     5941_61b.borderRightWidth=_619; 
     5942_61b.borderLeftWidth="0px"; 
     5943}else{ 
     5944_61b.borderLeftWidth=_619; 
     5945_61b.borderRightWidth=_619; 
     5946} 
     5947} 
     5948},_marginSize:function(n){ 
     5949if(this.isTransparent){ 
     5950return 0; 
     5951} 
     5952var o=this.options; 
     5953if(o.compact&&o.blend){ 
     5954var _61e=[1,0]; 
     5955return _61e[n]; 
     5956}else{ 
     5957if(o.compact){ 
     5958var _61f=[2,1]; 
     5959return _61f[n]; 
     5960}else{ 
     5961if(o.blend){ 
     5962var _620=[3,2,1,0]; 
     5963return _620[n]; 
     5964}else{ 
     5965var _621=[5,3,2,1]; 
     5966return _621[n]; 
     5967} 
     5968} 
     5969} 
     5970},_borderSize:function(n){ 
     5971var o=this.options; 
     5972var _624; 
     5973if(o.compact&&(o.blend||this.isTransparent)){ 
     5974return 1; 
     5975}else{ 
     5976if(o.compact){ 
     5977_624=[1,0]; 
     5978}else{ 
     5979if(o.blend){ 
     5980_624=[2,1,1,1]; 
     5981}else{ 
     5982if(o.border){ 
     5983_624=[0,2,0,0]; 
     5984}else{ 
     5985if(this.isTransparent){ 
     5986_624=[5,3,2,1]; 
     5987}else{ 
     5988return 0; 
     5989} 
     5990} 
     5991} 
     5992} 
     5993} 
     5994return _624[n]; 
     5995},_hasString:function(str){ 
     5996for(var i=1;i<arguments.length;i++){ 
     5997if(str.indexOf(arguments[i])!=-1){ 
     5998return true; 
     5999} 
     6000} 
     6001return false; 
     6002},_isTopRounded:function(){ 
     6003return this._hasString(this.options.corners,"all","top","tl","tr"); 
     6004},_isBottomRounded:function(){ 
     6005return this._hasString(this.options.corners,"all","bottom","bl","br"); 
     6006},_hasSingleTextChild:function(el){ 
     6007return (el.childNodes.length==1&&el.childNodes[0].nodeType==3); 
     6008}}; 
     6009MochiKit.Visual.roundElement=function(e,_629){ 
     6010new MochiKit.Visual._RoundCorners(e,_629); 
     6011}; 
     6012MochiKit.Visual.roundClass=function(_62a,_62b,_62c){ 
     6013var _62d=MochiKit.DOM.getElementsByTagAndClassName(_62a,_62b); 
     6014for(var i=0;i<_62d.length;i++){ 
     6015MochiKit.Visual.roundElement(_62d[i],_62c); 
     6016} 
     6017}; 
     6018MochiKit.Visual.tagifyText=function(_62f,_630){ 
     6019_630=_630||"position:relative"; 
     6020if(/MSIE/.test(navigator.userAgent)){ 
     6021_630+=";zoom:1"; 
     6022} 
     6023_62f=MochiKit.DOM.getElement(_62f); 
     6024var ma=MochiKit.Base.map; 
     6025ma(function(_632){ 
     6026if(_632.nodeType==3){ 
     6027ma(function(_633){ 
     6028_62f.insertBefore(MochiKit.DOM.SPAN({style:_630},_633==" "?String.fromCharCode(160):_633),_632); 
     6029},_632.nodeValue.split("")); 
     6030MochiKit.DOM.removeElement(_632); 
     6031} 
     6032},_62f.childNodes); 
     6033}; 
     6034MochiKit.Visual.forceRerendering=function(_634){ 
     6035try{ 
     6036_634=MochiKit.DOM.getElement(_634); 
     6037var n=document.createTextNode(" "); 
     6038_634.appendChild(n); 
     6039_634.removeChild(n); 
     6040} 
     6041catch(e){ 
     6042} 
     6043}; 
     6044MochiKit.Visual.multiple=function(_636,_637,_638){ 
     6045_638=MochiKit.Base.update({speed:0.1,delay:0},_638); 
     6046var _639=_638.delay; 
     6047var _63a=0; 
     6048MochiKit.Base.map(function(_63b){ 
     6049_638.delay=_63a*_638.speed+_639; 
     6050new _637(_63b,_638); 
     6051_63a+=1; 
     6052},_636); 
     6053}; 
     6054MochiKit.Visual.PAIRS={"slide":["slideDown","slideUp"],"blind":["blindDown","blindUp"],"appear":["appear","fade"],"size":["grow","shrink"]}; 
     6055MochiKit.Visual.toggle=function(_63c,_63d,_63e){ 
     6056_63c=MochiKit.DOM.getElement(_63c); 
     6057_63d=(_63d||"appear").toLowerCase(); 
     6058_63e=MochiKit.Base.update({queue:{position:"end",scope:(_63c.id||"global"),limit:1}},_63e); 
     6059var v=MochiKit.Visual; 
     6060v[MochiKit.Style.getStyle(_63c,"display")!="none"?v.PAIRS[_63d][1]:v.PAIRS[_63d][0]](_63c,_63e); 
     6061}; 
     6062MochiKit.Visual.Transitions={}; 
     6063MochiKit.Visual.Transitions.linear=function(pos){ 
     6064return pos; 
     6065}; 
     6066MochiKit.Visual.Transitions.sinoidal=function(pos){ 
     6067return 0.5-Math.cos(pos*Math.PI)/2; 
     6068}; 
     6069MochiKit.Visual.Transitions.reverse=function(pos){ 
     6070return 1-pos; 
     6071}; 
     6072MochiKit.Visual.Transitions.flicker=function(pos){ 
     6073return 0.25-Math.cos(pos*Math.PI)/4+Math.random()/2; 
     6074}; 
     6075MochiKit.Visual.Transitions.wobble=function(pos){ 
     6076return 0.5-Math.cos(9*pos*Math.PI)/2; 
     6077}; 
     6078MochiKit.Visual.Transitions.pulse=function(pos,_646){ 
     6079if(_646){ 
     6080pos*=2*_646; 
     6081}else{ 
     6082pos*=10; 
     6083} 
     6084var _647=pos-Math.floor(pos); 
     6085return (Math.floor(pos)%2==0)?_647:1-_647; 
     6086}; 
     6087MochiKit.Visual.Transitions.parabolic=function(pos){ 
     6088return pos*pos; 
     6089}; 
     6090MochiKit.Visual.Transitions.none=function(pos){ 
     6091return 0; 
     6092}; 
     6093MochiKit.Visual.Transitions.full=function(pos){ 
     6094return 1; 
     6095}; 
     6096MochiKit.Visual.ScopedQueue=function(){ 
     6097var cls=arguments.callee; 
     6098if(!(this instanceof cls)){ 
     6099return new cls(); 
     6100} 
     6101this.__init__(); 
     6102}; 
     6103MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype,{__init__:function(){ 
     6104this.effects=[]; 
     6105this.interval=null; 
     6106},add:function(_64c){ 
     6107var _64d=new Date().getTime(); 
     6108var _64e=(typeof (_64c.options.queue)=="string")?_64c.options.queue:_64c.options.queue.position; 
     6109var ma=MochiKit.Base.map; 
     6110switch(_64e){ 
     6111case "front": 
     6112ma(function(e){ 
     6113if(e.state=="idle"){ 
     6114e.startOn+=_64c.finishOn; 
     6115e.finishOn+=_64c.finishOn; 
     6116} 
     6117},this.effects); 
     6118break; 
     6119case "end": 
     6120var _651; 
     6121ma(function(e){ 
     6122var i=e.finishOn; 
     6123if(i>=(_651||i)){ 
     6124_651=i; 
     6125} 
     6126},this.effects); 
     6127_64d=_651||_64d; 
     6128break; 
     6129case "break": 
     6130ma(function(e){ 
     6131e.finalize(); 
     6132},this.effects); 
     6133break; 
     6134} 
     6135_64c.startOn+=_64d; 
     6136_64c.finishOn+=_64d; 
     6137if(!_64c.options.queue.limit||this.effects.length<_64c.options.queue.limit){ 
     6138this.effects.push(_64c); 
     6139} 
     6140if(!this.interval){ 
     6141this.interval=this.startLoop(MochiKit.Base.bind(this.loop,this),40); 
     6142} 
     6143},startLoop:function(func,_656){ 
     6144return setInterval(func,_656); 
     6145},remove:function(_657){ 
     6146this.effects=MochiKit.Base.filter(function(e){ 
     6147return e!=_657; 
     6148},this.effects); 
     6149if(!this.effects.length){ 
     6150this.stopLoop(this.interval); 
     6151this.interval=null; 
     6152} 
     6153},stopLoop:function(_659){ 
     6154clearInterval(_659); 
     6155},loop:function(){ 
     6156var _65a=new Date().getTime(); 
     6157MochiKit.Base.map(function(_65b){ 
     6158_65b.loop(_65a); 
     6159},this.effects); 
     6160}}); 
     6161MochiKit.Visual.Queues={instances:{},get:function(_65c){ 
     6162if(typeof (_65c)!="string"){ 
     6163return _65c; 
     6164} 
     6165if(!this.instances[_65c]){ 
     6166this.instances[_65c]=new MochiKit.Visual.ScopedQueue(); 
     6167} 
     6168return this.instances[_65c]; 
     6169}}; 
     6170MochiKit.Visual.Queue=MochiKit.Visual.Queues.get("global"); 
     6171MochiKit.Visual.DefaultOptions={transition:MochiKit.Visual.Transitions.sinoidal,duration:1,fps:25,sync:false,from:0,to:1,delay:0,queue:"parallel"}; 
     6172MochiKit.Visual.Base=function(){ 
     6173}; 
     6174MochiKit.Visual.Base.prototype={__class__:MochiKit.Visual.Base,start:function(_65d){ 
     6175var v=MochiKit.Visual; 
     6176this.options=MochiKit.Base.setdefault(_65d,v.DefaultOptions); 
     6177this.currentFrame=0; 
     6178this.state="idle"; 
     6179this.startOn=this.options.delay*1000; 
     6180this.finishOn=this.startOn+(this.options.duration*1000); 
     6181this.event("beforeStart"); 
     6182if(!this.options.sync){ 
     6183v.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).add(this); 
     6184} 
     6185},loop:function(_65f){ 
     6186if(_65f>=this.startOn){ 
     6187if(_65f>=this.finishOn){ 
     6188return this.finalize(); 
     6189} 
     6190var pos=(_65f-this.startOn)/(this.finishOn-this.startOn); 
     6191var _661=Math.round(pos*this.options.fps*this.options.duration); 
     6192if(_661>this.currentFrame){ 
     6193this.render(pos); 
     6194this.currentFrame=_661; 
     6195} 
     6196} 
     6197},render:function(pos){ 
     6198if(this.state=="idle"){ 
     6199this.state="running"; 
     6200this.event("beforeSetup"); 
     6201this.setup(); 
     6202this.event("afterSetup"); 
     6203} 
     6204if(this.state=="running"){ 
     6205if(this.options.transition){ 
     6206pos=this.options.transition(pos); 
     6207} 
     6208pos*=(this.options.to-this.options.from); 
     6209pos+=this.options.from; 
     6210this.event("beforeUpdate"); 
     6211this.update(pos); 
     6212this.event("afterUpdate"); 
     6213} 
     6214},cancel:function(){ 
     6215if(!this.options.sync){ 
     6216MochiKit.Visual.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).remove(this); 
     6217} 
     6218this.state="finished"; 
     6219},finalize:function(){ 
     6220this.render(1); 
     6221this.cancel(); 
     6222this.event("beforeFinish"); 
     6223this.finish(); 
     6224this.event("afterFinish"); 
     6225},setup:function(){ 
     6226},finish:function(){ 
     6227},update:function(_663){ 
     6228},event:function(_664){ 
     6229if(this.options[_664+"Internal"]){ 
     6230this.options[_664+"Internal"](this); 
     6231} 
     6232if(this.options[_664]){ 
     6233this.options[_664](this); 
     6234} 
     6235},repr:function(){ 
     6236return "["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"; 
     6237}}; 
     6238MochiKit.Visual.Parallel=function(_665,_666){ 
     6239var cls=arguments.callee; 
     6240if(!(this instanceof cls)){ 
     6241return new cls(_665,_666); 
     6242} 
     6243this.__init__(_665,_666); 
     6244}; 
     6245MochiKit.Visual.Parallel.prototype=new MochiKit.Visual.Base(); 
     6246MochiKit.Base.update(MochiKit.Visual.Parallel.prototype,{__class__:MochiKit.Visual.Parallel,__init__:function(_668,_669){ 
     6247this.effects=_668||[]; 
     6248this.start(_669); 
     6249},update:function(_66a){ 
     6250MochiKit.Base.map(function(_66b){ 
     6251_66b.render(_66a); 
     6252},this.effects); 
     6253},finish:function(){ 
     6254MochiKit.Base.map(function(_66c){ 
     6255_66c.finalize(); 
     6256},this.effects); 
     6257}}); 
     6258MochiKit.Visual.Sequence=function(_66d,_66e){ 
     6259var cls=arguments.callee; 
     6260if(!(this instanceof cls)){ 
     6261return new cls(_66d,_66e); 
     6262} 
     6263this.__init__(_66d,_66e); 
     6264}; 
     6265MochiKit.Visual.Sequence.prototype=new MochiKit.Visual.Base(); 
     6266MochiKit.Base.update(MochiKit.Visual.Sequence.prototype,{__class__:MochiKit.Visual.Sequence,__init__:function(_670,_671){ 
     6267var defs={transition:MochiKit.Visual.Transitions.linear,duration:0}; 
     6268this.effects=_670||[]; 
     6269MochiKit.Base.map(function(_673){ 
     6270defs.duration+=_673.options.duration; 
     6271},this.effects); 
     6272MochiKit.Base.setdefault(_671,defs); 
     6273this.start(_671); 
     6274},update:function(_674){ 
     6275var time=_674*this.options.duration; 
     6276for(var i=0;i<this.effects.length;i++){ 
     6277var _677=this.effects[i]; 
     6278if(time<=_677.options.duration){ 
     6279_677.render(time/_677.options.duration); 
     6280break; 
     6281}else{ 
     6282time-=_677.options.duration; 
     6283} 
     6284} 
     6285},finish:function(){ 
     6286MochiKit.Base.map(function(_678){ 
     6287_678.finalize(); 
     6288},this.effects); 
     6289}}); 
     6290MochiKit.Visual.Opacity=function(_679,_67a){ 
     6291var cls=arguments.callee; 
     6292if(!(this instanceof cls)){ 
     6293return new cls(_679,_67a); 
     6294} 
     6295this.__init__(_679,_67a); 
     6296}; 
     6297MochiKit.Visual.Opacity.prototype=new MochiKit.Visual.Base(); 
     6298MochiKit.Base.update(MochiKit.Visual.Opacity.prototype,{__class__:MochiKit.Visual.Opacity,__init__:function(_67c,_67d){ 
     6299var b=MochiKit.Base; 
     6300var s=MochiKit.Style; 
     6301this.element=MochiKit.DOM.getElement(_67c); 
     6302if(this.element.currentStyle&&(!this.element.currentStyle.hasLayout)){ 
     6303s.setStyle(this.element,{zoom:1}); 
     6304} 
     6305_67d=b.update({from:s.getStyle(this.element,"opacity")||0,to:1},_67d); 
     6306this.start(_67d); 
     6307},update:function(_680){ 
     6308MochiKit.Style.setStyle(this.element,{"opacity":_680}); 
     6309}}); 
     6310MochiKit.Visual.Move=function(_681,_682){ 
     6311var cls=arguments.callee; 
     6312if(!(this instanceof cls)){ 
     6313return new cls(_681,_682); 
     6314} 
     6315this.__init__(_681,_682); 
     6316}; 
     6317MochiKit.Visual.Move.prototype=new MochiKit.Visual.Base(); 
     6318MochiKit.Base.update(MochiKit.Visual.Move.prototype,{__class__:MochiKit.Visual.Move,__init__:function(_684,_685){ 
     6319this.element=MochiKit.DOM.getElement(_684); 
     6320_685=MochiKit.Base.update({x:0,y:0,mode:"relative"},_685); 
     6321this.start(_685); 
     6322},setup:function(){ 
     6323MochiKit.Style.makePositioned(this.element); 
     6324var s=this.element.style; 
     6325var _687=s.visibility; 
     6326var _688=s.display; 
     6327if(_688=="none"){ 
     6328s.visibility="hidden"; 
     6329s.display=""; 
     6330} 
     6331this.originalLeft=parseFloat(MochiKit.Style.getStyle(this.element,"left")||"0"); 
     6332this.originalTop=parseFloat(MochiKit.Style.getStyle(this.element,"top")||"0"); 
     6333if(this.options.mode=="absolute"){ 
     6334this.options.x-=this.originalLeft; 
     6335this.options.y-=this.originalTop; 
     6336} 
     6337if(_688=="none"){ 
     6338s.visibility=_687; 
     6339s.display=_688; 
     6340} 
     6341},update:function(_689){ 
     6342MochiKit.Style.setStyle(this.element,{left:Math.round(this.options.x*_689+this.originalLeft)+"px",top:Math.round(this.options.y*_689+this.originalTop)+"px"}); 
     6343}}); 
     6344MochiKit.Visual.Scale=function(_68a,_68b,_68c){ 
     6345var cls=arguments.callee; 
     6346if(!(this instanceof cls)){ 
     6347return new cls(_68a,_68b,_68c); 
     6348} 
     6349this.__init__(_68a,_68b,_68c); 
     6350}; 
     6351MochiKit.Visual.Scale.prototype=new MochiKit.Visual.Base(); 
     6352MochiKit.Base.update(MochiKit.Visual.Scale.prototype,{__class__:MochiKit.Visual.Scale,__init__:function(_68e,_68f,_690){ 
     6353this.element=MochiKit.DOM.getElement(_68e); 
     6354_690=MochiKit.Base.update({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:_68f},_690); 
     6355this.start(_690); 
     6356},setup:function(){ 
     6357this.restoreAfterFinish=this.options.restoreAfterFinish||false; 
     6358this.elementPositioning=MochiKit.Style.getStyle(this.element,"position"); 
     6359var ma=MochiKit.Base.map; 
     6360var b=MochiKit.Base.bind; 
     6361this.originalStyle={}; 
     6362ma(b(function(k){ 
     6363this.originalStyle[k]=this.element.style[k]; 
     6364},this),["top","left","width","height","fontSize"]); 
     6365this.originalTop=this.element.offsetTop; 
     6366this.originalLeft=this.element.offsetLeft; 
     6367var _694=MochiKit.Style.getStyle(this.element,"font-size")||"100%"; 
     6368ma(b(function(_695){ 
     6369if(_694.indexOf(_695)>0){ 
     6370this.fontSize=parseFloat(_694); 
     6371this.fontSizeType=_695; 
     6372} 
     6373},this),["em","px","%"]); 
     6374this.factor=(this.options.scaleTo-this.options.scaleFrom)/100; 
     6375if(/^content/.test(this.options.scaleMode)){ 
     6376this.dims=[this.element.scrollHeight,this.element.scrollWidth]; 
     6377}else{ 
     6378if(this.options.scaleMode=="box"){ 
     6379this.dims=[this.element.offsetHeight,this.element.offsetWidth]; 
     6380}else{ 
     6381this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]; 
     6382} 
     6383} 
     6384},update:function(_696){ 
     6385var _697=(this.options.scaleFrom/100)+(this.factor*_696); 
     6386if(this.options.scaleContent&&this.fontSize){ 
     6387MochiKit.Style.setStyle(this.element,{fontSize:this.fontSize*_697+this.fontSizeType}); 
     6388} 
     6389this.setDimensions(this.dims[0]*_697,this.dims[1]*_697); 
     6390},finish:function(){ 
     6391if(this.restoreAfterFinish){ 
     6392MochiKit.Style.setStyle(this.element,this.originalStyle); 
     6393} 
     6394},setDimensions:function(_698,_699){ 
     6395var d={}; 
     6396var r=Math.round; 
     6397if(/MSIE/.test(navigator.userAgent)){ 
     6398r=Math.ceil; 
     6399} 
     6400if(this.options.scaleX){ 
     6401d.width=r(_699)+"px"; 
     6402} 
     6403if(this.options.scaleY){ 
     6404d.height=r(_698)+"px"; 
     6405} 
     6406if(this.options.scaleFromCenter){ 
     6407var topd=(_698-this.dims[0])/2; 
     6408var _69d=(_699-this.dims[1])/2; 
     6409if(this.elementPositioning=="absolute"){ 
     6410if(this.options.scaleY){ 
     6411d.top=this.originalTop-topd+"px"; 
     6412} 
     6413if(this.options.scaleX){ 
     6414d.left=this.originalLeft-_69d+"px"; 
     6415} 
     6416}else{ 
     6417if(this.options.scaleY){ 
     6418d.top=-topd+"px"; 
     6419} 
     6420if(this.options.scaleX){ 
     6421d.left=-_69d+"px"; 
     6422} 
     6423} 
     6424} 
     6425MochiKit.Style.setStyle(this.element,d); 
     6426}}); 
     6427MochiKit.Visual.Highlight=function(_69e,_69f){ 
     6428var cls=arguments.callee; 
     6429if(!(this instanceof cls)){ 
     6430return new cls(_69e,_69f); 
     6431} 
     6432this.__init__(_69e,_69f); 
     6433}; 
     6434MochiKit.Visual.Highlight.prototype=new MochiKit.Visual.Base(); 
     6435MochiKit.Base.update(MochiKit.Visual.Highlight.prototype,{__class__:MochiKit.Visual.Highlight,__init__:function(_6a1,_6a2){ 
     6436this.element=MochiKit.DOM.getElement(_6a1); 
     6437_6a2=MochiKit.Base.update({startcolor:"#ffff99"},_6a2); 
     6438this.start(_6a2); 
     6439},setup:function(){ 
     6440var b=MochiKit.Base; 
     6441var s=MochiKit.Style; 
     6442if(s.getStyle(this.element,"display")=="none"){ 
     6443this.cancel(); 
     6444return; 
     6445} 
     6446this.oldStyle={backgroundImage:s.getStyle(this.element,"background-image")}; 
     6447s.setStyle(this.element,{backgroundImage:"none"}); 
     6448if(!this.options.endcolor){ 
     6449this.options.endcolor=MochiKit.Color.Color.fromBackground(this.element).toHexString(); 
     6450} 
     6451if(b.isUndefinedOrNull(this.options.restorecolor)){ 
     6452this.options.restorecolor=s.getStyle(this.element,"background-color"); 
     6453} 
     6454this._base=b.map(b.bind(function(i){ 
     6455return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16); 
     6456},this),[0,1,2]); 
     6457this._delta=b.map(b.bind(function(i){ 
     6458return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]; 
     6459},this),[0,1,2]); 
     6460},update:function(_6a7){ 
     6461var m="#"; 
     6462MochiKit.Base.map(MochiKit.Base.bind(function(i){ 
     6463m+=MochiKit.Color.toColorPart(Math.round(this._base[i]+this._delta[i]*_6a7)); 
     6464},this),[0,1,2]); 
     6465MochiKit.Style.setStyle(this.element,{backgroundColor:m}); 
     6466},finish:function(){ 
     6467MochiKit.Style.setStyle(this.element,MochiKit.Base.update(this.oldStyle,{backgroundColor:this.options.restorecolor})); 
     6468}}); 
     6469MochiKit.Visual.ScrollTo=function(_6aa,_6ab){ 
     6470var cls=arguments.callee; 
     6471if(!(this instanceof cls)){ 
     6472return new cls(_6aa,_6ab); 
     6473} 
     6474this.__init__(_6aa,_6ab); 
     6475}; 
     6476MochiKit.Visual.ScrollTo.prototype=new MochiKit.Visual.Base(); 
     6477MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype,{__class__:MochiKit.Visual.ScrollTo,__init__:function(_6ad,_6ae){ 
     6478this.element=MochiKit.DOM.getElement(_6ad); 
     6479this.start(_6ae); 
     6480},setup:function(){ 
     6481var p=MochiKit.Position; 
     6482p.prepare(); 
     6483var _6b0=p.cumulativeOffset(this.element); 
     6484if(this.options.offset){ 
     6485_6b0.y+=this.options.offset; 
     6486} 
     6487var max; 
     6488if(window.innerHeight){ 
     6489max=window.innerHeight-window.height; 
     6490}else{ 
     6491if(document.documentElement&&document.documentElement.clientHeight){ 
     6492max=document.documentElement.clientHeight-document.body.scrollHeight; 
     6493}else{ 
     6494if(document.body){ 
     6495max=document.body.clientHeight-document.body.scrollHeight; 
     6496} 
     6497} 
     6498} 
     6499this.scrollStart=p.windowOffset.y; 
     6500this.delta=(_6b0.y>max?max:_6b0.y)-this.scrollStart; 
     6501},update:function(_6b2){ 
     6502var p=MochiKit.Position; 
     6503p.prepare(); 
     6504window.scrollTo(p.windowOffset.x,this.scrollStart+(_6b2*this.delta)); 
     6505}}); 
     6506MochiKit.Visual.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; 
     6507MochiKit.Visual.Morph=function(_6b4,_6b5){ 
     6508var cls=arguments.callee; 
     6509if(!(this instanceof cls)){ 
     6510return new cls(_6b4,_6b5); 
     6511} 
     6512this.__init__(_6b4,_6b5); 
     6513}; 
     6514MochiKit.Visual.Morph.prototype=new MochiKit.Visual.Base(); 
     6515MochiKit.Base.update(MochiKit.Visual.Morph.prototype,{__class__:MochiKit.Visual.Morph,__init__:function(_6b7,_6b8){ 
     6516this.element=MochiKit.DOM.getElement(_6b7); 
     6517this.start(_6b8); 
     6518},setup:function(){ 
     6519var b=MochiKit.Base; 
     6520var _6ba=this.options.style; 
     6521this.styleStart={}; 
     6522this.styleEnd={}; 
     6523this.units={}; 
     6524var _6bb,unit; 
     6525for(var s in _6ba){ 
     6526_6bb=_6ba[s]; 
     6527s=b.camelize(s); 
     6528if(MochiKit.Visual.CSS_LENGTH.test(_6bb)){ 
     6529var _6be=_6bb.match(/^([\+\-]?[0-9\.]+)(.*)$/); 
     6530_6bb=parseFloat(_6be[1]); 
     6531unit=(_6be.length==3)?_6be[2]:null; 
     6532this.styleEnd[s]=_6bb; 
     6533this.units[s]=unit; 
     6534_6bb=MochiKit.Style.getStyle(this.element,s); 
     6535_6be=_6bb.match(/^([\+\-]?[0-9\.]+)(.*)$/); 
     6536_6bb=parseFloat(_6be[1]); 
     6537this.styleStart[s]=_6bb; 
     6538}else{ 
     6539if(/[Cc]olor$/.test(s)){ 
     6540var c=MochiKit.Color.Color; 
     6541_6bb=c.fromString(_6bb); 
     6542if(_6bb){ 
     6543this.units[s]="color"; 
     6544this.styleEnd[s]=_6bb.toHexString(); 
     6545_6bb=MochiKit.Style.getStyle(this.element,s); 
     6546this.styleStart[s]=c.fromString(_6bb).toHexString(); 
     6547this.styleStart[s]=b.map(b.bind(function(i){ 
     6548return parseInt(this.styleStart[s].slice(i*2+1,i*2+3),16); 
     6549},this),[0,1,2]); 
     6550this.styleEnd[s]=b.map(b.bind(function(i){ 
     6551return parseInt(this.styleEnd[s].slice(i*2+1,i*2+3),16); 
     6552},this),[0,1,2]); 
     6553} 
     6554}else{ 
     6555this.element.style[s]=_6bb; 
     6556} 
     6557} 
     6558} 
     6559},update:function(_6c2){ 
     6560var _6c3; 
     6561for(var s in this.styleStart){ 
     6562if(this.units[s]=="color"){ 
     6563var m="#"; 
     6564var _6c6=this.styleStart[s]; 
     6565var end=this.styleEnd[s]; 
     6566MochiKit.Base.map(MochiKit.Base.bind(function(i){ 
     6567m+=MochiKit.Color.toColorPart(Math.round(_6c6[i]+(end[i]-_6c6[i])*_6c2)); 
     6568},this),[0,1,2]); 
     6569this.element.style[s]=m; 
     6570}else{ 
     6571_6c3=this.styleStart[s]+Math.round((this.styleEnd[s]-this.styleStart[s])*_6c2*1000)/1000+this.units[s]; 
     6572this.element.style[s]=_6c3; 
     6573} 
     6574} 
     6575}}); 
     6576MochiKit.Visual.fade=function(_6c9,_6ca){ 
     6577var s=MochiKit.Style; 
     6578var _6cc=s.getStyle(_6c9,"opacity"); 
     6579_6ca=MochiKit.Base.update({from:s.getStyle(_6c9,"opacity")||1,to:0,afterFinishInternal:function(_6cd){ 
     6580if(_6cd.options.to!==0){ 
     6581return; 
     6582} 
     6583s.hideElement(_6cd.element); 
     6584s.setStyle(_6cd.element,{"opacity":_6cc}); 
     6585}},_6ca); 
     6586return new MochiKit.Visual.Opacity(_6c9,_6ca); 
     6587}; 
     6588MochiKit.Visual.appear=function(_6ce,_6cf){ 
     6589var s=MochiKit.Style; 
     6590var v=MochiKit.Visual; 
     6591_6cf=MochiKit.Base.update({from:(s.getStyle(_6ce,"display")=="none"?0:s.getStyle(_6ce,"opacity")||0),to:1,afterFinishInternal:function(_6d2){ 
     6592v.forceRerendering(_6d2.element); 
     6593},beforeSetupInternal:function(_6d3){ 
     6594s.setStyle(_6d3.element,{"opacity":_6d3.options.from}); 
     6595s.showElement(_6d3.element); 
     6596}},_6cf); 
     6597return new v.Opacity(_6ce,_6cf); 
     6598}; 
     6599MochiKit.Visual.puff=function(_6d4,_6d5){ 
     6600var s=MochiKit.Style; 
     6601var v=MochiKit.Visual; 
     6602_6d4=MochiKit.DOM.getElement(_6d4); 
     6603var _6d8=MochiKit.Style.getElementDimensions(_6d4,true); 
     6604var _6d9={position:s.getStyle(_6d4,"position"),top:_6d4.style.top,left:_6d4.style.left,width:_6d4.style.width,height:_6d4.style.height,opacity:s.getStyle(_6d4,"opacity")}; 
     6605_6d5=MochiKit.Base.update({beforeSetupInternal:function(_6da){ 
     6606MochiKit.Position.absolutize(_6da.effects[0].element); 
     6607},afterFinishInternal:function(_6db){ 
     6608s.hideElement(_6db.effects[0].element); 
     6609s.setStyle(_6db.effects[0].element,_6d9); 
     6610},scaleContent:true,scaleFromCenter:true},_6d5); 
     6611return new v.Parallel([new v.Scale(_6d4,200,{sync:true,scaleFromCenter:_6d5.scaleFromCenter,scaleMode:{originalHeight:_6d8.h,originalWidth:_6d8.w},scaleContent:_6d5.scaleContent,restoreAfterFinish:true}),new v.Opacity(_6d4,{sync:true,to:0})],_6d5); 
     6612}; 
     6613MochiKit.Visual.blindUp=function(_6dc,_6dd){ 
     6614var d=MochiKit.DOM; 
     6615var s=MochiKit.Style; 
     6616_6dc=d.getElement(_6dc); 
     6617var _6e0=s.getElementDimensions(_6dc,true); 
     6618var _6e1=s.makeClipping(_6dc); 
     6619_6dd=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleMode:{originalHeight:_6e0.h,originalWidth:_6e0.w},restoreAfterFinish:true,afterFinishInternal:function(_6e2){ 
     6620s.hideElement(_6e2.element); 
     6621s.undoClipping(_6e2.element,_6e1); 
     6622}},_6dd); 
     6623return new MochiKit.Visual.Scale(_6dc,0,_6dd); 
     6624}; 
     6625MochiKit.Visual.blindDown=function(_6e3,_6e4){ 
     6626var d=MochiKit.DOM; 
     6627var s=MochiKit.Style; 
     6628_6e3=d.getElement(_6e3); 
     6629var _6e7=s.getElementDimensions(_6e3,true); 
     6630var _6e8; 
     6631_6e4=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_6e7.h,originalWidth:_6e7.w},restoreAfterFinish:true,afterSetupInternal:function(_6e9){ 
     6632_6e8=s.makeClipping(_6e9.element); 
     6633s.setStyle(_6e9.element,{height:"0px"}); 
     6634s.showElement(_6e9.element); 
     6635},afterFinishInternal:function(_6ea){ 
     6636s.undoClipping(_6ea.element,_6e8); 
     6637}},_6e4); 
     6638return new MochiKit.Visual.Scale(_6e3,100,_6e4); 
     6639}; 
     6640MochiKit.Visual.switchOff=function(_6eb,_6ec){ 
     6641var d=MochiKit.DOM; 
     6642var s=MochiKit.Style; 
     6643_6eb=d.getElement(_6eb); 
     6644var _6ef=s.getElementDimensions(_6eb,true); 
     6645var _6f0=s.getStyle(_6eb,"opacity"); 
     6646var _6f1; 
     6647_6ec=MochiKit.Base.update({duration:0.7,restoreAfterFinish:true,beforeSetupInternal:function(_6f2){ 
     6648s.makePositioned(_6eb); 
     6649_6f1=s.makeClipping(_6eb); 
     6650},afterFinishInternal:function(_6f3){ 
     6651s.hideElement(_6eb); 
     6652s.undoClipping(_6eb,_6f1); 
     6653s.undoPositioned(_6eb); 
     6654s.setStyle(_6eb,{"opacity":_6f0}); 
     6655}},_6ec); 
     6656var v=MochiKit.Visual; 
     6657return new v.Sequence([new v.appear(_6eb,{sync:true,duration:0.57*_6ec.duration,from:0,transition:v.Transitions.flicker}),new v.Scale(_6eb,1,{sync:true,duration:0.43*_6ec.duration,scaleFromCenter:true,scaleX:false,scaleMode:{originalHeight:_6ef.h,originalWidth:_6ef.w},scaleContent:false,restoreAfterFinish:true})],_6ec); 
     6658}; 
     6659MochiKit.Visual.dropOut=function(_6f5,_6f6){ 
     6660var d=MochiKit.DOM; 
     6661var s=MochiKit.Style; 
     6662_6f5=d.getElement(_6f5); 
     6663var _6f9={top:s.getStyle(_6f5,"top"),left:s.getStyle(_6f5,"left"),opacity:s.getStyle(_6f5,"opacity")}; 
     6664_6f6=MochiKit.Base.update({duration:0.5,distance:100,beforeSetupInternal:function(_6fa){ 
     6665s.makePositioned(_6fa.effects[0].element); 
     6666},afterFinishInternal:function(_6fb){ 
     6667s.hideElement(_6fb.effects[0].element); 
     6668s.undoPositioned(_6fb.effects[0].element); 
     6669s.setStyle(_6fb.effects[0].element,_6f9); 
     6670}},_6f6); 
     6671var v=MochiKit.Visual; 
     6672return new v.Parallel([new v.Move(_6f5,{x:0,y:_6f6.distance,sync:true}),new v.Opacity(_6f5,{sync:true,to:0})],_6f6); 
     6673}; 
     6674MochiKit.Visual.shake=function(_6fd,_6fe){ 
     6675var d=MochiKit.DOM; 
     6676var v=MochiKit.Visual; 
     6677var s=MochiKit.Style; 
     6678_6fd=d.getElement(_6fd); 
     6679var _702={top:s.getStyle(_6fd,"top"),left:s.getStyle(_6fd,"left")}; 
     6680_6fe=MochiKit.Base.update({duration:0.5,afterFinishInternal:function(_703){ 
     6681s.undoPositioned(_6fd); 
     6682s.setStyle(_6fd,_702); 
     6683}},_6fe); 
     6684return new v.Sequence([new v.Move(_6fd,{sync:true,duration:0.1*_6fe.duration,x:20,y:0}),new v.Move(_6fd,{sync:true,duration:0.2*_6fe.duration,x:-40,y:0}),new v.Move(_6fd,{sync:true,duration:0.2*_6fe.duration,x:40,y:0}),new v.Move(_6fd,{sync:true,duration:0.2*_6fe.duration,x:-40,y:0}),new v.Move(_6fd,{sync:true,duration:0.2*_6fe.duration,x:40,y:0}),new v.Move(_6fd,{sync:true,duration:0.1*_6fe.duration,x:-20,y:0})],_6fe); 
     6685}; 
     6686MochiKit.Visual.slideDown=function(_704,_705){ 
     6687var d=MochiKit.DOM; 
     6688var b=MochiKit.Base; 
     6689var s=MochiKit.Style; 
     6690_704=d.getElement(_704); 
     6691if(!_704.firstChild){ 
     6692throw new Error("MochiKit.Visual.slideDown must be used on a element with a child"); 
     6693} 
     6694d.removeEmptyTextNodes(_704); 
     6695var _709=s.getStyle(_704.firstChild,"bottom")||0; 
     6696var _70a=s.getElementDimensions(_704,true); 
     6697var _70b; 
     6698_705=b.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_70a.h,originalWidth:_70a.w},restoreAfterFinish:true,afterSetupInternal:function(_70c){ 
     6699s.makePositioned(_70c.element); 
     6700s.makePositioned(_70c.element.firstChild); 
     6701if(/Opera/.test(navigator.userAgent)){ 
     6702s.setStyle(_70c.element,{top:""}); 
     6703} 
     6704_70b=s.makeClipping(_70c.element); 
     6705s.setStyle(_70c.element,{height:"0px"}); 
     6706s.showElement(_70c.element); 
     6707},afterUpdateInternal:function(_70d){ 
     6708var _70e=s.getElementDimensions(_70d.element,true); 
     6709s.setStyle(_70d.element.firstChild,{bottom:(_70d.dims[0]-_70e.h)+"px"}); 
     6710},afterFinishInternal:function(_70f){ 
     6711s.undoClipping(_70f.element,_70b); 
     6712if(/MSIE/.test(navigator.userAgent)){ 
     6713s.undoPositioned(_70f.element); 
     6714s.undoPositioned(_70f.element.firstChild); 
     6715}else{ 
     6716s.undoPositioned(_70f.element.firstChild); 
     6717s.undoPositioned(_70f.element); 
     6718} 
     6719s.setStyle(_70f.element.firstChild,{bottom:_709}); 
     6720}},_705); 
     6721return new MochiKit.Visual.Scale(_704,100,_705); 
     6722}; 
     6723MochiKit.Visual.slideUp=function(_710,_711){ 
     6724var d=MochiKit.DOM; 
     6725var b=MochiKit.Base; 
     6726var s=MochiKit.Style; 
     6727_710=d.getElement(_710); 
     6728if(!_710.firstChild){ 
     6729throw new Error("MochiKit.Visual.slideUp must be used on a element with a child"); 
     6730} 
     6731d.removeEmptyTextNodes(_710); 
     6732var _715=s.getStyle(_710.firstChild,"bottom"); 
     6733var _716=s.getElementDimensions(_710,true); 
     6734var _717; 
     6735_711=b.update({scaleContent:false,scaleX:false,scaleMode:{originalHeight:_716.h,originalWidth:_716.w},scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(_718){ 
     6736s.makePositioned(_718.element); 
     6737s.makePositioned(_718.element.firstChild); 
     6738if(/Opera/.test(navigator.userAgent)){ 
     6739s.setStyle(_718.element,{top:""}); 
     6740} 
     6741_717=s.makeClipping(_718.element); 
     6742s.showElement(_718.element); 
     6743},afterUpdateInternal:function(_719){ 
     6744var _71a=s.getElementDimensions(_719.element,true); 
     6745s.setStyle(_719.element.firstChild,{bottom:(_719.dims[0]-_71a.h)+"px"}); 
     6746},afterFinishInternal:function(_71b){ 
     6747s.hideElement(_71b.element); 
     6748s.undoClipping(_71b.element,_717); 
     6749s.undoPositioned(_71b.element.firstChild); 
     6750s.undoPositioned(_71b.element); 
     6751s.setStyle(_71b.element.firstChild,{bottom:_715}); 
     6752}},_711); 
     6753return new MochiKit.Visual.Scale(_710,0,_711); 
     6754}; 
     6755MochiKit.Visual.squish=function(_71c,_71d){ 
     6756var d=MochiKit.DOM; 
     6757var b=MochiKit.Base; 
     6758var s=MochiKit.Style; 
     6759var _721=s.getElementDimensions(_71c,true); 
     6760var _722; 
     6761_71d=b.update({restoreAfterFinish:true,scaleMode:{originalHeight:_721.w,originalWidth:_721.h},beforeSetupInternal:function(_723){ 
     6762_722=s.makeClipping(_723.element); 
     6763},afterFinishInternal:function(_724){ 
     6764s.hideElement(_724.element); 
     6765s.undoClipping(_724.element,_722); 
     6766}},_71d); 
     6767return new MochiKit.Visual.Scale(_71c,/Opera/.test(navigator.userAgent)?1:0,_71d); 
     6768}; 
     6769MochiKit.Visual.grow=function(_725,_726){ 
     6770var d=MochiKit.DOM; 
     6771var v=MochiKit.Visual; 
     6772var s=MochiKit.Style; 
     6773_725=d.getElement(_725); 
     6774_726=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.full,scaleContent:true,scaleFromCenter:false},_726); 
     6775var _72a={top:_725.style.top,left:_725.style.left,height:_725.style.height,width:_725.style.width,opacity:s.getStyle(_725,"opacity")}; 
     6776var dims=s.getElementDimensions(_725,true); 
     6777var _72c,_72d; 
     6778var _72e,_72f; 
     6779switch(_726.direction){ 
     6780case "top-left": 
     6781_72c=_72d=_72e=_72f=0; 
     6782break; 
     6783case "top-right": 
     6784_72c=dims.w; 
     6785_72d=_72f=0; 
     6786_72e=-dims.w; 
     6787break; 
     6788case "bottom-left": 
     6789_72c=_72e=0; 
     6790_72d=dims.h; 
     6791_72f=-dims.h; 
     6792break; 
     6793case "bottom-right": 
     6794_72c=dims.w; 
     6795_72d=dims.h; 
     6796_72e=-dims.w; 
     6797_72f=-dims.h; 
     6798break; 
     6799case "center": 
     6800_72c=dims.w/2; 
     6801_72d=dims.h/2; 
     6802_72e=-dims.w/2; 
     6803_72f=-dims.h/2; 
     6804break; 
     6805} 
     6806var _730=MochiKit.Base.update({beforeSetupInternal:function(_731){ 
     6807s.setStyle(_731.effects[0].element,{height:"0px"}); 
     6808s.showElement(_731.effects[0].element); 
     6809},afterFinishInternal:function(_732){ 
     6810s.undoClipping(_732.effects[0].element); 
     6811s.undoPositioned(_732.effects[0].element); 
     6812s.setStyle(_732.effects[0].element,_72a); 
     6813}},_726); 
     6814return new v.Move(_725,{x:_72c,y:_72d,duration:0.01,beforeSetupInternal:function(_733){ 
     6815s.hideElement(_733.element); 
     6816s.makeClipping(_733.element); 
     6817s.makePositioned(_733.element); 
     6818},afterFinishInternal:function(_734){ 
     6819new v.Parallel([new v.Opacity(_734.element,{sync:true,to:1,from:0,transition:_726.opacityTransition}),new v.Move(_734.element,{x:_72e,y:_72f,sync:true,transition:_726.moveTransition}),new v.Scale(_734.element,100,{scaleMode:{originalHeight:dims.h,originalWidth:dims.w},sync:true,scaleFrom:/Opera/.test(navigator.userAgent)?1:0,transition:_726.scaleTransition,scaleContent:_726.scaleContent,scaleFromCenter:_726.scaleFromCenter,restoreAfterFinish:true})],_730); 
     6820}}); 
     6821}; 
     6822MochiKit.Visual.shrink=function(_735,_736){ 
     6823var d=MochiKit.DOM; 
     6824var v=MochiKit.Visual; 
     6825var s=MochiKit.Style; 
     6826_735=d.getElement(_735); 
     6827_736=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.none,scaleContent:true,scaleFromCenter:false},_736); 
     6828var _73a={top:_735.style.top,left:_735.style.left,height:_735.style.height,width:_735.style.width,opacity:s.getStyle(_735,"opacity")}; 
     6829var dims=s.getElementDimensions(_735,true); 
     6830var _73c,_73d; 
     6831switch(_736.direction){ 
     6832case "top-left": 
     6833_73c=_73d=0; 
     6834break; 
     6835case "top-right": 
     6836_73c=dims.w; 
     6837_73d=0; 
     6838break; 
     6839case "bottom-left": 
     6840_73c=0; 
     6841_73d=dims.h; 
     6842break; 
     6843case "bottom-right": 
     6844_73c=dims.w; 
     6845_73d=dims.h; 
     6846break; 
     6847case "center": 
     6848_73c=dims.w/2; 
     6849_73d=dims.h/2; 
     6850break; 
     6851} 
     6852var _73e; 
     6853var _73f=MochiKit.Base.update({beforeStartInternal:function(_740){ 
     6854s.makePositioned(_740.effects[0].element); 
     6855_73e=s.makeClipping(_740.effects[0].element); 
     6856},afterFinishInternal:function(_741){ 
     6857s.hideElement(_741.effects[0].element); 
     6858s.undoClipping(_741.effects[0].element,_73e); 
     6859s.undoPositioned(_741.effects[0].element); 
     6860s.setStyle(_741.effects[0].element,_73a); 
     6861}},_736); 
     6862return new v.Parallel([new v.Opacity(_735,{sync:true,to:0,from:1,transition:_736.opacityTransition}),new v.Scale(_735,/Opera/.test(navigator.userAgent)?1:0,{scaleMode:{originalHeight:dims.h,originalWidth:dims.w},sync:true,transition:_736.scaleTransition,scaleContent:_736.scaleContent,scaleFromCenter:_736.scaleFromCenter,restoreAfterFinish:true}),new v.Move(_735,{x:_73c,y:_73d,sync:true,transition:_736.moveTransition})],_73f); 
     6863}; 
     6864MochiKit.Visual.pulsate=function(_742,_743){ 
     6865var d=MochiKit.DOM; 
     6866var v=MochiKit.Visual; 
     6867var b=MochiKit.Base; 
     6868var _747=MochiKit.Style.getStyle(_742,"opacity"); 
     6869_743=b.update({duration:3,from:0,afterFinishInternal:function(_748){ 
     6870MochiKit.Style.setStyle(_748.element,{"opacity":_747}); 
     6871}},_743); 
     6872var _749=_743.transition||v.Transitions.sinoidal; 
     6873_743.transition=function(pos){ 
     6874return _749(1-v.Transitions.pulse(pos,_743.pulses)); 
     6875}; 
     6876return new v.Opacity(_742,_743); 
     6877}; 
     6878MochiKit.Visual.fold=function(_74b,_74c){ 
     6879var d=MochiKit.DOM; 
     6880var v=MochiKit.Visual; 
     6881var s=MochiKit.Style; 
     6882_74b=d.getElement(_74b); 
     6883var _750=s.getElementDimensions(_74b,true); 
     6884var _751={top:_74b.style.top,left:_74b.style.left,width:_74b.style.width,height:_74b.style.height}; 
     6885var _752=s.makeClipping(_74b); 
     6886_74c=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleMode:{originalHeight:_750.h,originalWidth:_750.w},afterFinishInternal:function(_753){ 
     6887new v.Scale(_74b,1,{scaleContent:false,scaleY:false,scaleMode:{originalHeight:_750.h,originalWidth:_750.w},afterFinishInternal:function(_754){ 
     6888s.hideElement(_754.element); 
     6889s.undoClipping(_754.element,_752); 
     6890s.setStyle(_754.element,_751); 
     6891}}); 
     6892}},_74c); 
     6893return new v.Scale(_74b,5,_74c); 
     6894}; 
     6895MochiKit.Visual.Color=MochiKit.Color.Color; 
     6896MochiKit.Visual.getElementsComputedStyle=MochiKit.DOM.computedStyle; 
     6897MochiKit.Visual.__new__=function(){ 
     6898var m=MochiKit.Base; 
     6899m.nameFunctions(this); 
     6900this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
     6901}; 
     6902MochiKit.Visual.EXPORT=["roundElement","roundClass","tagifyText","multiple","toggle","Parallel","Sequence","Opacity","Move","Scale","Highlight","ScrollTo","Morph","fade","appear","puff","blindUp","blindDown","switchOff","dropOut","shake","slideDown","slideUp","squish","grow","shrink","pulsate","fold"]; 
     6903MochiKit.Visual.EXPORT_OK=["Base","PAIRS"]; 
     6904MochiKit.Visual.__new__(); 
     6905MochiKit.Base._exportSymbols(this,MochiKit.Visual); 
     6906MochiKit.Base._deps("DragAndDrop",["Base","Iter","DOM","Signal","Visual","Position"]); 
     6907MochiKit.DragAndDrop.NAME="MochiKit.DragAndDrop"; 
     6908MochiKit.DragAndDrop.VERSION="1.4.2"; 
     6909MochiKit.DragAndDrop.__repr__=function(){ 
     6910return "["+this.NAME+" "+this.VERSION+"]"; 
     6911}; 
     6912MochiKit.DragAndDrop.toString=function(){ 
     6913return this.__repr__(); 
     6914}; 
     6915MochiKit.DragAndDrop.EXPORT=["Droppable","Draggable"]; 
     6916MochiKit.DragAndDrop.EXPORT_OK=["Droppables","Draggables"]; 
     6917MochiKit.DragAndDrop.Droppables={drops:[],remove:function(_756){ 
     6918this.drops=MochiKit.Base.filter(function(d){ 
     6919return d.element!=MochiKit.DOM.getElement(_756); 
     6920},this.drops); 
     6921},register:function(drop){ 
     6922this.drops.push(drop); 
     6923},unregister:function(drop){ 
     6924this.drops=MochiKit.Base.filter(function(d){ 
     6925return d!=drop; 
     6926},this.drops); 
     6927},prepare:function(_75b){ 
     6928MochiKit.Base.map(function(drop){ 
     6929if(drop.isAccepted(_75b)){ 
     6930if(drop.options.activeclass){ 
     6931MochiKit.DOM.addElementClass(drop.element,drop.options.activeclass); 
     6932} 
     6933drop.options.onactive(drop.element,_75b); 
     6934} 
     6935},this.drops); 
     6936},findDeepestChild:function(_75d){ 
     6937deepest=_75d[0]; 
     6938for(i=1;i<_75d.length;++i){ 
     6939if(MochiKit.DOM.isChildNode(_75d[i].element,deepest.element)){ 
     6940deepest=_75d[i]; 
     6941} 
     6942} 
     6943return deepest; 
     6944},show:function(_75e,_75f){ 
     6945if(!this.drops.length){ 
     6946return; 
     6947} 
     6948var _760=[]; 
     6949if(this.last_active){ 
     6950this.last_active.deactivate(); 
     6951} 
     6952MochiKit.Iter.forEach(this.drops,function(drop){ 
     6953if(drop.isAffected(_75e,_75f)){ 
     6954_760.push(drop); 
     6955} 
     6956}); 
     6957if(_760.length>0){ 
     6958drop=this.findDeepestChild(_760); 
     6959MochiKit.Position.within(drop.element,_75e.page.x,_75e.page.y); 
     6960drop.options.onhover(_75f,drop.element,MochiKit.Position.overlap(drop.options.overlap,drop.element)); 
     6961drop.activate(); 
     6962} 
     6963},fire:function(_762,_763){ 
     6964if(!this.last_active){ 
     6965return; 
     6966} 
     6967MochiKit.Position.prepare(); 
     6968if(this.last_active.isAffected(_762.mouse(),_763)){ 
     6969this.last_active.options.ondrop(_763,this.last_active.element,_762); 
     6970} 
     6971},reset:function(_764){ 
     6972MochiKit.Base.map(function(drop){ 
     6973if(drop.options.activeclass){ 
     6974MochiKit.DOM.removeElementClass(drop.element,drop.options.activeclass); 
     6975} 
     6976drop.options.ondesactive(drop.element,_764); 
     6977},this.drops); 
     6978if(this.last_active){ 
     6979this.last_active.deactivate(); 
     6980} 
     6981}}; 
     6982MochiKit.DragAndDrop.Droppable=function(_766,_767){ 
     6983var cls=arguments.callee; 
     6984if(!(this instanceof cls)){ 
     6985return new cls(_766,_767); 
     6986} 
     6987this.__init__(_766,_767); 
     6988}; 
     6989MochiKit.DragAndDrop.Droppable.prototype={__class__:MochiKit.DragAndDrop.Droppable,__init__:function(_769,_76a){ 
     6990var d=MochiKit.DOM; 
     6991var b=MochiKit.Base; 
     6992this.element=d.getElement(_769); 
     6993this.options=b.update({greedy:true,hoverclass:null,activeclass:null,hoverfunc:b.noop,accept:null,onactive:b.noop,ondesactive:b.noop,onhover:b.noop,ondrop:b.noop,containment:[],tree:false},_76a); 
     6994this.options._containers=[]; 
     6995b.map(MochiKit.Base.bind(function(c){ 
     6996this.options._containers.push(d.getElement(c)); 
     6997},this),this.options.containment); 
     6998MochiKit.Style.makePositioned(this.element); 
     6999MochiKit.DragAndDrop.Droppables.register(this); 
     7000},isContained:function(_76e){ 
     7001if(this.options._containers.length){ 
     7002var _76f; 
     7003if(this.options.tree){ 
     7004_76f=_76e.treeNode; 
     7005}else{ 
     7006_76f=_76e.parentNode; 
     7007} 
     7008return MochiKit.Iter.some(this.options._containers,function(c){ 
     7009return _76f==c; 
     7010}); 
     7011}else{ 
     7012return true; 
     7013} 
     7014},isAccepted:function(_771){ 
     7015return ((!this.options.accept)||MochiKit.Iter.some(this.options.accept,function(c){ 
     7016return MochiKit.DOM.hasElementClass(_771,c); 
     7017})); 
     7018},isAffected:function(_773,_774){ 
     7019return ((this.element!=_774)&&this.isContained(_774)&&this.isAccepted(_774)&&MochiKit.Position.within(this.element,_773.page.x,_773.page.y)); 
     7020},deactivate:function(){ 
     7021if(this.options.hoverclass){ 
     7022MochiKit.DOM.removeElementClass(this.element,this.options.hoverclass); 
     7023} 
     7024this.options.hoverfunc(this.element,false); 
     7025MochiKit.DragAndDrop.Droppables.last_active=null; 
     7026},activate:function(){ 
     7027if(this.options.hoverclass){ 
     7028MochiKit.DOM.addElementClass(this.element,this.options.hoverclass); 
     7029} 
     7030this.options.hoverfunc(this.element,true); 
     7031MochiKit.DragAndDrop.Droppables.last_active=this; 
     7032},destroy:function(){ 
     7033MochiKit.DragAndDrop.Droppables.unregister(this); 
     7034},repr:function(){ 
     7035return "["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"; 
     7036}}; 
     7037MochiKit.DragAndDrop.Draggables={drags:[],register:function(_775){ 
     7038if(this.drags.length===0){ 
     7039var conn=MochiKit.Signal.connect; 
     7040this.eventMouseUp=conn(document,"onmouseup",this,this.endDrag); 
     7041this.eventMouseMove=conn(document,"onmousemove",this,this.updateDrag); 
     7042this.eventKeypress=conn(document,"onkeypress",this,this.keyPress); 
     7043} 
     7044this.drags.push(_775); 
     7045},unregister:function(_777){ 
     7046this.drags=MochiKit.Base.filter(function(d){ 
     7047return d!=_777; 
     7048},this.drags); 
     7049if(this.drags.length===0){ 
     7050var disc=MochiKit.Signal.disconnect; 
     7051disc(this.eventMouseUp); 
     7052disc(this.eventMouseMove); 
     7053disc(this.eventKeypress); 
     7054} 
     7055},activate:function(_77a){ 
     7056window.focus(); 
     7057this.activeDraggable=_77a; 
     7058},deactivate:function(){ 
     7059this.activeDraggable=null; 
     7060},updateDrag:function(_77b){ 
     7061if(!this.activeDraggable){ 
     7062return; 
     7063} 
     7064var _77c=_77b.mouse(); 
     7065if(this._lastPointer&&(MochiKit.Base.repr(this._lastPointer.page)==MochiKit.Base.repr(_77c.page))){ 
     7066return; 
     7067} 
     7068this._lastPointer=_77c; 
     7069this.activeDraggable.updateDrag(_77b,_77c); 
     7070},endDrag:function(_77d){ 
     7071if(!this.activeDraggable){ 
     7072return; 
     7073} 
     7074this._lastPointer=null; 
     7075this.activeDraggable.endDrag(_77d); 
     7076this.activeDraggable=null; 
     7077},keyPress:function(_77e){ 
     7078if(this.activeDraggable){ 
     7079this.activeDraggable.keyPress(_77e); 
     7080} 
     7081},notify:function(_77f,_780,_781){ 
     7082MochiKit.Signal.signal(this,_77f,_780,_781); 
     7083}}; 
     7084MochiKit.DragAndDrop.Draggable=function(_782,_783){ 
     7085var cls=arguments.callee; 
     7086if(!(this instanceof cls)){ 
     7087return new cls(_782,_783); 
     7088} 
     7089this.__init__(_782,_783); 
     7090}; 
     7091MochiKit.DragAndDrop.Draggable.prototype={__class__:MochiKit.DragAndDrop.Draggable,__init__:function(_785,_786){ 
     7092var v=MochiKit.Visual; 
     7093var b=MochiKit.Base; 
     7094_786=b.update({handle:false,starteffect:function(_789){ 
     7095this._savedOpacity=MochiKit.Style.getStyle(_789,"opacity")||1; 
     7096new v.Opacity(_789,{duration:0.2,from:this._savedOpacity,to:0.7}); 
     7097},reverteffect:function(_78a,_78b,_78c){ 
     7098var dur=Math.sqrt(Math.abs(_78b^2)+Math.abs(_78c^2))*0.02; 
     7099return new v.Move(_78a,{x:-_78c,y:-_78b,duration:dur}); 
     7100},endeffect:function(_78e){ 
     7101new v.Opacity(_78e,{duration:0.2,from:0.7,to:this._savedOpacity}); 
     7102},onchange:b.noop,zindex:1000,revert:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false},_786); 
     7103var d=MochiKit.DOM; 
     7104this.element=d.getElement(_785); 
     7105if(_786.handle&&(typeof (_786.handle)=="string")){ 
     7106this.handle=d.getFirstElementByTagAndClassName(null,_786.handle,this.element); 
     7107} 
     7108if(!this.handle){ 
     7109this.handle=d.getElement(_786.handle); 
     7110} 
     7111if(!this.handle){ 
     7112this.handle=this.element; 
     7113} 
     7114if(_786.scroll&&!_786.scroll.scrollTo&&!_786.scroll.outerHTML){ 
     7115_786.scroll=d.getElement(_786.scroll); 
     7116this._isScrollChild=MochiKit.DOM.isChildNode(this.element,_786.scroll); 
     7117} 
     7118MochiKit.Style.makePositioned(this.element); 
     7119this.delta=this.currentDelta(); 
     7120this.options=_786; 
     7121this.dragging=false; 
     7122this.eventMouseDown=MochiKit.Signal.connect(this.handle,"onmousedown",this,this.initDrag); 
     7123MochiKit.DragAndDrop.Draggables.register(this); 
     7124},destroy:function(){ 
     7125MochiKit.Signal.disconnect(this.eventMouseDown); 
     7126MochiKit.DragAndDrop.Draggables.unregister(this); 
     7127},currentDelta:function(){ 
     7128var s=MochiKit.Style.getStyle; 
     7129return [parseInt(s(this.element,"left")||"0"),parseInt(s(this.element,"top")||"0")]; 
     7130},initDrag:function(_791){ 
     7131if(!_791.mouse().button.left){ 
     7132return; 
     7133} 
     7134var src=_791.target(); 
     7135var _793=(src.tagName||"").toUpperCase(); 
     7136if(_793==="INPUT"||_793==="SELECT"||_793==="OPTION"||_793==="BUTTON"||_793==="TEXTAREA"){ 
     7137return; 
     7138} 
     7139if(this._revert){ 
     7140this._revert.cancel(); 
     7141this._revert=null; 
     7142} 
     7143var _794=_791.mouse(); 
     7144var pos=MochiKit.Position.cumulativeOffset(this.element); 
     7145this.offset=[_794.page.x-pos.x,_794.page.y-pos.y]; 
     7146MochiKit.DragAndDrop.Draggables.activate(this); 
     7147_791.stop(); 
     7148},startDrag:function(_796){ 
     7149this.dragging=true; 
     7150if(this.options.selectclass){ 
     7151MochiKit.DOM.addElementClass(this.element,this.options.selectclass); 
     7152} 
     7153if(this.options.zindex){ 
     7154this.originalZ=parseInt(MochiKit.Style.getStyle(this.element,"z-index")||"0"); 
     7155this.element.style.zIndex=this.options.zindex; 
     7156} 
     7157if(this.options.ghosting){ 
     7158this._clone=this.element.cloneNode(true); 
     7159this.ghostPosition=MochiKit.Position.absolutize(this.element); 
     7160this.element.parentNode.insertBefore(this._clone,this.element); 
     7161} 
     7162if(this.options.scroll){ 
     7163if(this.options.scroll==window){ 
     7164var _797=this._getWindowScroll(this.options.scroll); 
     7165this.originalScrollLeft=_797.left; 
     7166this.originalScrollTop=_797.top; 
     7167}else{ 
     7168this.originalScrollLeft=this.options.scroll.scrollLeft; 
     7169this.originalScrollTop=this.options.scroll.scrollTop; 
     7170} 
     7171} 
     7172MochiKit.DragAndDrop.Droppables.prepare(this.element); 
     7173MochiKit.DragAndDrop.Draggables.notify("start",this,_796); 
     7174if(this.options.starteffect){ 
     7175this.options.starteffect(this.element); 
     7176} 
     7177},updateDrag:function(_798,_799){ 
     7178if(!this.dragging){ 
     7179this.startDrag(_798); 
     7180} 
     7181MochiKit.Position.prepare(); 
     7182MochiKit.DragAndDrop.Droppables.show(_799,this.element); 
     7183MochiKit.DragAndDrop.Draggables.notify("drag",this,_798); 
     7184this.draw(_799); 
     7185this.options.onchange(this); 
     7186if(this.options.scroll){ 
     7187this.stopScrolling(); 
     7188var p,q; 
     7189if(this.options.scroll==window){ 
     7190var s=this._getWindowScroll(this.options.scroll); 
     7191p=new MochiKit.Style.Coordinates(s.left,s.top); 
     7192q=new MochiKit.Style.Coordinates(s.left+s.width,s.top+s.height); 
     7193}else{ 
     7194p=MochiKit.Position.page(this.options.scroll); 
     7195p.x+=this.options.scroll.scrollLeft; 
     7196p.y+=this.options.scroll.scrollTop; 
     7197p.x+=(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0); 
     7198p.y+=(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0); 
     7199q=new MochiKit.Style.Coordinates(p.x+this.options.scroll.offsetWidth,p.y+this.options.scroll.offsetHeight); 
     7200} 
     7201var _79d=[0,0]; 
     7202if(_799.page.x>(q.x-this.options.scrollSensitivity)){ 
     7203_79d[0]=_799.page.x-(q.x-this.options.scrollSensitivity); 
     7204}else{ 
     7205if(_799.page.x<(p.x+this.options.scrollSensitivity)){ 
     7206_79d[0]=_799.page.x-(p.x+this.options.scrollSensitivity); 
     7207} 
     7208} 
     7209if(_799.page.y>(q.y-this.options.scrollSensitivity)){ 
     7210_79d[1]=_799.page.y-(q.y-this.options.scrollSensitivity); 
     7211}else{ 
     7212if(_799.page.y<(p.y+this.options.scrollSensitivity)){ 
     7213_79d[1]=_799.page.y-(p.y+this.options.scrollSensitivity); 
     7214} 
     7215} 
     7216this.startScrolling(_79d); 
     7217} 
     7218if(/AppleWebKit/.test(navigator.appVersion)){ 
     7219window.scrollBy(0,0); 
     7220} 
     7221_798.stop(); 
     7222},finishDrag:function(_79e,_79f){ 
     7223var dr=MochiKit.DragAndDrop; 
     7224this.dragging=false; 
     7225if(this.options.selectclass){ 
     7226MochiKit.DOM.removeElementClass(this.element,this.options.selectclass); 
     7227} 
     7228if(this.options.ghosting){ 
     7229MochiKit.Position.relativize(this.element,this.ghostPosition); 
     7230MochiKit.DOM.removeElement(this._clone); 
     7231this._clone=null; 
     7232} 
     7233if(_79f){ 
     7234dr.Droppables.fire(_79e,this.element); 
     7235} 
     7236dr.Draggables.notify("end",this,_79e); 
     7237var _7a1=this.options.revert; 
     7238if(_7a1&&typeof (_7a1)=="function"){ 
     7239_7a1=_7a1(this.element); 
     7240} 
     7241var d=this.currentDelta(); 
     7242if(_7a1&&this.options.reverteffect){ 
     7243this._revert=this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0]); 
     7244}else{ 
     7245this.delta=d; 
     7246} 
     7247if(this.options.zindex){ 
     7248this.element.style.zIndex=this.originalZ; 
     7249} 
     7250if(this.options.endeffect){ 
     7251this.options.endeffect(this.element); 
     7252} 
     7253dr.Draggables.deactivate(); 
     7254dr.Droppables.reset(this.element); 
     7255},keyPress:function(_7a3){ 
     7256if(_7a3.key().string!="KEY_ESCAPE"){ 
     7257return; 
     7258} 
     7259this.finishDrag(_7a3,false); 
     7260_7a3.stop(); 
     7261},endDrag:function(_7a4){ 
     7262if(!this.dragging){ 
     7263return; 
     7264} 
     7265this.stopScrolling(); 
     7266this.finishDrag(_7a4,true); 
     7267_7a4.stop(); 
     7268},draw:function(_7a5){ 
     7269var pos=MochiKit.Position.cumulativeOffset(this.element); 
     7270var d=this.currentDelta(); 
     7271pos.x-=d[0]; 
     7272pos.y-=d[1]; 
     7273if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){ 
     7274pos.x-=this.options.scroll.scrollLeft-this.originalScrollLeft; 
     7275pos.y-=this.options.scroll.scrollTop-this.originalScrollTop; 
     7276} 
     7277var p=[_7a5.page.x-pos.x-this.offset[0],_7a5.page.y-pos.y-this.offset[1]]; 
     7278if(this.options.snap){ 
     7279if(typeof (this.options.snap)=="function"){ 
     7280p=this.options.snap(p[0],p[1]); 
     7281}else{ 
     7282if(this.options.snap instanceof Array){ 
     7283var i=-1; 
     7284p=MochiKit.Base.map(MochiKit.Base.bind(function(v){ 
     7285i+=1; 
     7286return Math.round(v/this.options.snap[i])*this.options.snap[i]; 
     7287},this),p); 
     7288}else{ 
     7289p=MochiKit.Base.map(MochiKit.Base.bind(function(v){ 
     7290return Math.round(v/this.options.snap)*this.options.snap; 
     7291},this),p); 
     7292} 
     7293} 
     7294} 
     7295var _7ac=this.element.style; 
     7296if((!this.options.constraint)||(this.options.constraint=="horizontal")){ 
     7297_7ac.left=p[0]+"px"; 
     7298} 
     7299if((!this.options.constraint)||(this.options.constraint=="vertical")){ 
     7300_7ac.top=p[1]+"px"; 
     7301} 
     7302if(_7ac.visibility=="hidden"){ 
     7303_7ac.visibility=""; 
     7304} 
     7305},stopScrolling:function(){ 
     7306if(this.scrollInterval){ 
     7307clearInterval(this.scrollInterval); 
     7308this.scrollInterval=null; 
     7309MochiKit.DragAndDrop.Draggables._lastScrollPointer=null; 
     7310} 
     7311},startScrolling:function(_7ad){ 
     7312if(!_7ad[0]&&!_7ad[1]){ 
     7313return; 
     7314} 
     7315this.scrollSpeed=[_7ad[0]*this.options.scrollSpeed,_7ad[1]*this.options.scrollSpeed]; 
     7316this.lastScrolled=new Date(); 
     7317this.scrollInterval=setInterval(MochiKit.Base.bind(this.scroll,this),10); 
     7318},scroll:function(){ 
     7319var _7ae=new Date(); 
     7320var _7af=_7ae-this.lastScrolled; 
     7321this.lastScrolled=_7ae; 
     7322if(this.options.scroll==window){ 
     7323var s=this._getWindowScroll(this.options.scroll); 
     7324if(this.scrollSpeed[0]||this.scrollSpeed[1]){ 
     7325var dm=_7af/1000; 
     7326this.options.scroll.scrollTo(s.left+dm*this.scrollSpeed[0],s.top+dm*this.scrollSpeed[1]); 
     7327} 
     7328}else{ 
     7329this.options.scroll.scrollLeft+=this.scrollSpeed[0]*_7af/1000; 
     7330this.options.scroll.scrollTop+=this.scrollSpeed[1]*_7af/1000; 
     7331} 
     7332var d=MochiKit.DragAndDrop; 
     7333MochiKit.Position.prepare(); 
     7334d.Droppables.show(d.Draggables._lastPointer,this.element); 
     7335d.Draggables.notify("drag",this); 
     7336if(this._isScrollChild){ 
     7337d.Draggables._lastScrollPointer=d.Draggables._lastScrollPointer||d.Draggables._lastPointer; 
     7338d.Draggables._lastScrollPointer.x+=this.scrollSpeed[0]*_7af/1000; 
     7339d.Draggables._lastScrollPointer.y+=this.scrollSpeed[1]*_7af/1000; 
     7340if(d.Draggables._lastScrollPointer.x<0){ 
     7341d.Draggables._lastScrollPointer.x=0; 
     7342} 
     7343if(d.Draggables._lastScrollPointer.y<0){ 
     7344d.Draggables._lastScrollPointer.y=0; 
     7345} 
     7346this.draw(d.Draggables._lastScrollPointer); 
     7347} 
     7348this.options.onchange(this); 
     7349},_getWindowScroll:function(win){ 
     7350var vp,w,h; 
     7351MochiKit.DOM.withWindow(win,function(){ 
     7352vp=MochiKit.Style.getViewportPosition(win.document); 
     7353}); 
     7354if(win.innerWidth){ 
     7355w=win.innerWidth; 
     7356h=win.innerHeight; 
     7357}else{ 
     7358if(win.document.documentElement&&win.document.documentElement.clientWidth){ 
     7359w=win.document.documentElement.clientWidth; 
     7360h=win.document.documentElement.clientHeight; 
     7361}else{ 
     7362w=win.document.body.offsetWidth; 
     7363h=win.document.body.offsetHeight; 
     7364} 
     7365} 
     7366return {top:vp.y,left:vp.x,width:w,height:h}; 
     7367},repr:function(){ 
     7368return "["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"; 
     7369}}; 
     7370MochiKit.DragAndDrop.__new__=function(){ 
     7371MochiKit.Base.nameFunctions(this); 
     7372this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)}; 
     7373}; 
     7374MochiKit.DragAndDrop.__new__(); 
     7375MochiKit.Base._exportSymbols(this,MochiKit.DragAndDrop); 
     7376MochiKit.Base._deps("Sortable",["Base","Iter","DOM","Position","DragAndDrop"]); 
     7377MochiKit.Sortable.NAME="MochiKit.Sortable"; 
     7378MochiKit.Sortable.VERSION="1.4.2"; 
     7379MochiKit.Sortable.__repr__=function(){ 
     7380return "["+this.NAME+" "+this.VERSION+"]"; 
     7381}; 
     7382MochiKit.Sortable.toString=function(){ 
     7383return this.__repr__(); 
     7384}; 
     7385MochiKit.Sortable.EXPORT=[]; 
     7386MochiKit.Sortable.EXPORT_OK=[]; 
     7387MochiKit.Base.update(MochiKit.Sortable,{sortables:{},_findRootElement:function(_7b7){ 
     7388while(_7b7.tagName.toUpperCase()!="BODY"){ 
     7389if(_7b7.id&&MochiKit.Sortable.sortables[_7b7.id]){ 
     7390return _7b7; 
     7391} 
     7392_7b7=_7b7.parentNode; 
     7393} 
     7394},_createElementId:function(_7b8){ 
     7395if(_7b8.id==null||_7b8.id==""){ 
     7396var d=MochiKit.DOM; 
     7397var id; 
     7398var _7bb=1; 
     7399while(d.getElement(id="sortable"+_7bb)!=null){ 
     7400_7bb+=1; 
     7401} 
     7402d.setNodeAttribute(_7b8,"id",id); 
     7403} 
     7404},options:function(_7bc){ 
     7405_7bc=MochiKit.Sortable._findRootElement(MochiKit.DOM.getElement(_7bc)); 
     7406if(!_7bc){ 
     7407return; 
     7408} 
     7409return MochiKit.Sortable.sortables[_7bc.id]; 
     7410},destroy:function(_7bd){ 
     7411var s=MochiKit.Sortable.options(_7bd); 
     7412var b=MochiKit.Base; 
     7413var d=MochiKit.DragAndDrop; 
     7414if(s){ 
     7415MochiKit.Signal.disconnect(s.startHandle); 
     7416MochiKit.Signal.disconnect(s.endHandle); 
     7417b.map(function(dr){ 
     7418d.Droppables.remove(dr); 
     7419},s.droppables); 
     7420b.map(function(dr){ 
     7421dr.destroy(); 
     7422},s.draggables); 
     7423delete MochiKit.Sortable.sortables[s.element.id]; 
     7424} 
     7425},create:function(_7c3,_7c4){ 
     7426_7c3=MochiKit.DOM.getElement(_7c3); 
     7427var self=MochiKit.Sortable; 
     7428self._createElementId(_7c3); 
     7429_7c4=MochiKit.Base.update({element:_7c3,tag:"li",dropOnEmpty:false,tree:false,treeTag:"ul",overlap:"vertical",constraint:"vertical",containment:[_7c3],handle:false,only:false,hoverclass:null,ghosting:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:/^[^_]*_(.*)$/,onChange:MochiKit.Base.noop,onUpdate:MochiKit.Base.noop,accept:null},_7c4); 
     7430self.destroy(_7c3); 
     7431var _7c6={revert:true,ghosting:_7c4.ghosting,scroll:_7c4.scroll,scrollSensitivity:_7c4.scrollSensitivity,scrollSpeed:_7c4.scrollSpeed,constraint:_7c4.constraint,handle:_7c4.handle}; 
     7432if(_7c4.starteffect){ 
     7433_7c6.starteffect=_7c4.starteffect; 
     7434} 
     7435if(_7c4.reverteffect){ 
     7436_7c6.reverteffect=_7c4.reverteffect; 
     7437}else{ 
     7438if(_7c4.ghosting){ 
     7439_7c6.reverteffect=function(_7c7){ 
     7440_7c7.style.top=0; 
     7441_7c7.style.left=0; 
     7442}; 
     7443} 
     7444} 
     7445if(_7c4.endeffect){ 
     7446_7c6.endeffect=_7c4.endeffect; 
     7447} 
     7448if(_7c4.zindex){ 
     7449_7c6.zindex=_7c4.zindex; 
     7450} 
     7451var _7c8={overlap:_7c4.overlap,containment:_7c4.containment,hoverclass:_7c4.hoverclass,onhover:self.onHover,tree:_7c4.tree,accept:_7c4.accept}; 
     7452var _7c9={onhover:self.onEmptyHover,overlap:_7c4.overlap,containment:_7c4.containment,hoverclass:_7c4.hoverclass,accept:_7c4.accept}; 
     7453MochiKit.DOM.removeEmptyTextNodes(_7c3); 
     7454_7c4.draggables=[]; 
     7455_7c4.droppables=[]; 
     7456if(_7c4.dropOnEmpty||_7c4.tree){ 
     7457new MochiKit.DragAndDrop.Droppable(_7c3,_7c9); 
     7458_7c4.droppables.push(_7c3); 
     7459} 
     7460MochiKit.Base.map(function(e){ 
     7461var _7cb=_7c4.handle?MochiKit.DOM.getFirstElementByTagAndClassName(null,_7c4.handle,e):e; 
     7462_7c4.draggables.push(new MochiKit.DragAndDrop.Draggable(e,MochiKit.Base.update(_7c6,{handle:_7cb}))); 
     7463new MochiKit.DragAndDrop.Droppable(e,_7c8); 
     7464if(_7c4.tree){ 
     7465e.treeNode=_7c3; 
     7466} 
     7467_7c4.droppables.push(e); 
     7468},(self.findElements(_7c3,_7c4)||[])); 
     7469if(_7c4.tree){ 
     7470MochiKit.Base.map(function(e){ 
     7471new MochiKit.DragAndDrop.Droppable(e,_7c9); 
     7472e.treeNode=_7c3; 
     7473_7c4.droppables.push(e); 
     7474},(self.findTreeElements(_7c3,_7c4)||[])); 
     7475} 
     7476self.sortables[_7c3.id]=_7c4; 
     7477_7c4.lastValue=self.serialize(_7c3); 
     7478_7c4.startHandle=MochiKit.Signal.connect(MochiKit.DragAndDrop.Draggables,"start",MochiKit.Base.partial(self.onStart,_7c3)); 
     7479_7c4.endHandle=MochiKit.Signal.connect(MochiKit.DragAndDrop.Draggables,"end",MochiKit.Base.partial(self.onEnd,_7c3)); 
     7480},onStart:function(_7cd,_7ce){ 
     7481var self=MochiKit.Sortable; 
     7482var _7d0=self.options(_7cd); 
     7483_7d0.lastValue=self.serialize(_7d0.element); 
     7484},onEnd:function(_7d1,_7d2){ 
     7485var self=MochiKit.Sortable; 
     7486self.unmark(); 
     7487var _7d4=self.options(_7d1); 
     7488if(_7d4.lastValue!=self.serialize(_7d4.element)){ 
     7489_7d4.onUpdate(_7d4.element); 
     7490} 
     7491},findElements:function(_7d5,_7d6){ 
     7492return MochiKit.Sortable.findChildren(_7d5,_7d6.only,_7d6.tree,_7d6.tag); 
     7493},findTreeElements:function(_7d7,_7d8){ 
     7494return MochiKit.Sortable.findChildren(_7d7,_7d8.only,_7d8.tree?true:false,_7d8.treeTag); 
     7495},findChildren:function(_7d9,only,_7db,_7dc){ 
     7496if(!_7d9.hasChildNodes()){ 
     7497return null; 
     7498} 
     7499_7dc=_7dc.toUpperCase(); 
     7500if(only){ 
     7501only=MochiKit.Base.flattenArray([only]); 
     7502} 
     7503var _7dd=[]; 
     7504MochiKit.Base.map(function(e){ 
     7505if(e.tagName&&e.tagName.toUpperCase()==_7dc&&(!only||MochiKit.Iter.some(only,function(c){ 
     7506return MochiKit.DOM.hasElementClass(e,c); 
     7507}))){ 
     7508_7dd.push(e); 
     7509} 
     7510if(_7db){ 
     7511var _7e0=MochiKit.Sortable.findChildren(e,only,_7db,_7dc); 
     7512if(_7e0&&_7e0.length>0){ 
     7513_7dd=_7dd.concat(_7e0); 
     7514} 
     7515} 
     7516},_7d9.childNodes); 
     7517return _7dd; 
     7518},onHover:function(_7e1,_7e2,_7e3){ 
     7519if(MochiKit.DOM.isChildNode(_7e2,_7e1)){ 
     7520return; 
     7521} 
     7522var self=MochiKit.Sortable; 
     7523if(_7e3>0.33&&_7e3<0.66&&self.options(_7e2).tree){ 
     7524return; 
     7525}else{ 
     7526if(_7e3>0.5){ 
     7527self.mark(_7e2,"before"); 
     7528if(_7e2.previousSibling!=_7e1){ 
     7529var _7e5=_7e1.parentNode; 
     7530_7e1.style.visibility="hidden"; 
     7531_7e2.parentNode.insertBefore(_7e1,_7e2); 
     7532if(_7e2.parentNode!=_7e5){ 
     7533self.options(_7e5).onChange(_7e1); 
     7534} 
     7535self.options(_7e2.parentNode).onChange(_7e1); 
     7536} 
     7537}else{ 
     7538self.mark(_7e2,"after"); 
     7539var _7e6=_7e2.nextSibling||null; 
     7540if(_7e6!=_7e1){ 
     7541var _7e5=_7e1.parentNode; 
     7542_7e1.style.visibility="hidden"; 
     7543_7e2.parentNode.insertBefore(_7e1,_7e6); 
     7544if(_7e2.parentNode!=_7e5){ 
     7545self.options(_7e5).onChange(_7e1); 
     7546} 
     7547self.options(_7e2.parentNode).onChange(_7e1); 
     7548} 
     7549} 
     7550} 
     7551},_offsetSize:function(_7e7,type){ 
     7552if(type=="vertical"||type=="height"){ 
     7553return _7e7.offsetHeight; 
     7554}else{ 
     7555return _7e7.offsetWidth; 
     7556} 
     7557},onEmptyHover:function(_7e9,_7ea,_7eb){ 
     7558var _7ec=_7e9.parentNode; 
     7559var self=MochiKit.Sortable; 
     7560var _7ee=self.options(_7ea); 
     7561if(!MochiKit.DOM.isChildNode(_7ea,_7e9)){ 
     7562var _7ef; 
     7563var _7f0=self.findElements(_7ea,{tag:_7ee.tag,only:_7ee.only}); 
     7564var _7f1=null; 
     7565if(_7f0){ 
     7566var _7f2=self._offsetSize(_7ea,_7ee.overlap)*(1-_7eb); 
     7567for(_7ef=0;_7ef<_7f0.length;_7ef+=1){ 
     7568if(_7f2-self._offsetSize(_7f0[_7ef],_7ee.overlap)>=0){ 
     7569_7f2-=self._offsetSize(_7f0[_7ef],_7ee.overlap); 
     7570}else{ 
     7571if(_7f2-(self._offsetSize(_7f0[_7ef],_7ee.overlap)/2)>=0){ 
     7572_7f1=_7ef+1<_7f0.length?_7f0[_7ef+1]:null; 
     7573break; 
     7574}else{ 
     7575_7f1=_7f0[_7ef]; 
     7576break; 
     7577} 
     7578} 
     7579} 
     7580} 
     7581_7ea.insertBefore(_7e9,_7f1); 
     7582self.options(_7ec).onChange(_7e9); 
     7583_7ee.onChange(_7e9); 
     7584} 
     7585},unmark:function(){ 
     7586var m=MochiKit.Sortable._marker; 
     7587if(m){ 
     7588MochiKit.Style.hideElement(m); 
     7589} 
     7590},mark:function(_7f4,_7f5){ 
     7591var d=MochiKit.DOM; 
     7592var self=MochiKit.Sortable; 
     7593var _7f8=self.options(_7f4.parentNode); 
     7594if(_7f8&&!_7f8.ghosting){ 
     7595return; 
     7596} 
     7597if(!self._marker){ 
     7598self._marker=d.getElement("dropmarker")||document.createElement("DIV"); 
     7599MochiKit.Style.hideElement(self._marker); 
     7600d.addElementClass(self._marker,"dropmarker"); 
     7601self._marker.style.position="absolute"; 
     7602document.getElementsByTagName("body").item(0).appendChild(self._marker); 
     7603} 
     7604var _7f9=MochiKit.Position.cumulativeOffset(_7f4); 
     7605self._marker.style.left=_7f9.x+"px"; 
     7606self._marker.style.top=_7f9.y+"px"; 
     7607if(_7f5=="after"){ 
     7608if(_7f8.overlap=="horizontal"){ 
     7609self._marker.style.left=(_7f9.x+_7f4.clientWidth)+"px"; 
     7610}else{ 
     7611self._marker.style.top=(_7f9.y+_7f4.clientHeight)+"px"; 
     7612} 
     7613} 
     7614MochiKit.Style.showElement(self._marker); 
     7615},_tree:function(_7fa,_7fb,_7fc){ 
     7616var self=MochiKit.Sortable; 
     7617var _7fe=self.findElements(_7fa,_7fb)||[]; 
     7618for(var i=0;i<_7fe.length;++i){ 
     7619var _800=_7fe[i].id.match(_7fb.format); 
     7620if(!_800){ 
     7621continue; 
     7622} 
     7623var _801={id:encodeURIComponent(_800?_800[1]:null),element:_7fa,parent:_7fc,children:[],position:_7fc.children.length,container:self._findChildrenElement(_7fe[i],_7fb.treeTag.toUpperCase())}; 
     7624if(_801.container){ 
     7625self._tree(_801.container,_7fb,_801); 
     7626} 
     7627_7fc.children.push(_801); 
     7628} 
     7629return _7fc; 
     7630},_findChildrenElement:function(_802,_803){ 
     7631if(_802&&_802.hasChildNodes){ 
     7632_803=_803.toUpperCase(); 
     7633for(var i=0;i<_802.childNodes.length;++i){ 
     7634if(_802.childNodes[i].tagName.toUpperCase()==_803){ 
     7635return _802.childNodes[i]; 
     7636} 
     7637} 
     7638} 
     7639return null; 
     7640},tree:function(_805,_806){ 
     7641_805=MochiKit.DOM.getElement(_805); 
     7642var _807=MochiKit.Sortable.options(_805); 
     7643_806=MochiKit.Base.update({tag:_807.tag,treeTag:_807.treeTag,only:_807.only,name:_805.id,format:_807.format},_806||{}); 
     7644var root={id:null,parent:null,children:new Array,container:_805,position:0}; 
     7645return MochiKit.Sortable._tree(_805,_806,root); 
     7646},setSequence:function(_809,_80a,_80b){ 
     7647var self=MochiKit.Sortable; 
     7648var b=MochiKit.Base; 
     7649_809=MochiKit.DOM.getElement(_809); 
     7650_80b=b.update(self.options(_809),_80b||{}); 
     7651var _80e={}; 
     7652b.map(function(n){ 
     7653var m=n.id.match(_80b.format); 
     7654if(m){ 
     7655_80e[m[1]]=[n,n.parentNode]; 
     7656} 
     7657n.parentNode.removeChild(n); 
     7658},self.findElements(_809,_80b)); 
     7659b.map(function(_811){ 
     7660var n=_80e[_811]; 
     7661if(n){ 
     7662n[1].appendChild(n[0]); 
     7663delete _80e[_811]; 
     7664} 
     7665},_80a); 
     7666},_constructIndex:function(node){ 
     7667var _814=""; 
     7668do{ 
     7669if(node.id){ 
     7670_814="["+node.position+"]"+_814; 
     7671} 
     7672}while((node=node.parent)!=null); 
     7673return _814; 
     7674},sequence:function(_815,_816){ 
     7675_815=MochiKit.DOM.getElement(_815); 
     7676var self=MochiKit.Sortable; 
     7677var _816=MochiKit.Base.update(self.options(_815),_816||{}); 
     7678return MochiKit.Base.map(function(item){ 
     7679return item.id.match(_816.format)?item.id.match(_816.format)[1]:""; 
     7680},MochiKit.DOM.getElement(self.findElements(_815,_816)||[])); 
     7681},serialize:function(_819,_81a){ 
     7682_819=MochiKit.DOM.getElement(_819); 
     7683var self=MochiKit.Sortable; 
     7684_81a=MochiKit.Base.update(self.options(_819),_81a||{}); 
     7685var name=encodeURIComponent(_81a.name||_819.id); 
     7686if(_81a.tree){ 
     7687return MochiKit.Base.flattenArray(MochiKit.Base.map(function(item){ 
     7688return [name+self._constructIndex(item)+"[id]="+encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); 
     7689},self.tree(_819,_81a).children)).join("&"); 
     7690}else{ 
     7691return MochiKit.Base.map(function(item){ 
     7692return name+"[]="+encodeURIComponent(item); 
     7693},self.sequence(_819,_81a)).join("&"); 
     7694} 
     7695}}); 
     7696MochiKit.Sortable.Sortable=MochiKit.Sortable; 
     7697MochiKit.Sortable.__new__=function(){ 
     7698MochiKit.Base.nameFunctions(this); 
     7699this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)}; 
     7700}; 
     7701MochiKit.Sortable.__new__(); 
     7702MochiKit.Base._exportSymbols(this,MochiKit.Sortable); 
     7703if(typeof (MochiKit)=="undefined"){ 
     7704MochiKit={}; 
     7705} 
     7706if(typeof (MochiKit.MochiKit)=="undefined"){ 
     7707MochiKit.MochiKit={}; 
     7708} 
     7709MochiKit.MochiKit.NAME="MochiKit.MochiKit"; 
     7710MochiKit.MochiKit.VERSION="1.4.2"; 
     7711MochiKit.MochiKit.__repr__=function(){ 
     7712return "["+this.NAME+" "+this.VERSION+"]"; 
     7713}; 
     7714MochiKit.MochiKit.toString=function(){ 
     7715return this.__repr__(); 
     7716}; 
     7717MochiKit.MochiKit.SUBMODULES=["Base","Iter","Logging","DateTime","Format","Async","DOM","Selector","Style","LoggingPane","Color","Signal","Position","Visual","DragAndDrop","Sortable"]; 
     7718if(typeof (JSAN)!="undefined"||typeof (dojo)!="undefined"){ 
     7719if(typeof (dojo)!="undefined"){ 
     7720dojo.provide("MochiKit.MochiKit"); 
     7721(function(lst){ 
     7722for(var i=0;i<lst.length;i++){ 
     7723dojo.require("MochiKit."+lst[i]); 
     7724} 
     7725})(MochiKit.MochiKit.SUBMODULES); 
     7726} 
     7727if(typeof (JSAN)!="undefined"){ 
     7728(function(lst){ 
     7729for(var i=0;i<lst.length;i++){ 
     7730JSAN.use("MochiKit."+lst[i],[]); 
     7731} 
     7732})(MochiKit.MochiKit.SUBMODULES); 
     7733} 
     7734(function(){ 
     7735var _823=MochiKit.Base.extend; 
     7736var self=MochiKit.MochiKit; 
     7737var _825=self.SUBMODULES; 
     7738var _826=[]; 
     7739var _827=[]; 
     7740var _828={}; 
     7741var i,k,m,all; 
     7742for(i=0;i<_825.length;i++){ 
     7743m=MochiKit[_825[i]]; 
     7744_823(_826,m.EXPORT); 
     7745_823(_827,m.EXPORT_OK); 
     7746for(k in m.EXPORT_TAGS){ 
     7747_828[k]=_823(_828[k],m.EXPORT_TAGS[k]); 
     7748} 
     7749all=m.EXPORT_TAGS[":all"]; 
     7750if(!all){ 
     7751all=_823(null,m.EXPORT,m.EXPORT_OK); 
     7752} 
     7753var j; 
     7754for(j=0;j<all.length;j++){ 
     7755k=all[j]; 
     7756self[k]=m[k]; 
     7757} 
     7758} 
     7759self.EXPORT=_826; 
     7760self.EXPORT_OK=_827; 
     7761self.EXPORT_TAGS=_828; 
     7762}()); 
     7763}else{ 
     7764if(typeof (MochiKit.__compat__)=="undefined"){ 
     7765MochiKit.__compat__=true; 
     7766} 
     7767(function(){ 
     7768if(typeof (document)=="undefined"){ 
     7769return; 
     7770} 
     7771var _82e=document.getElementsByTagName("script"); 
     7772var _82f="http://www.w3.org/1999/xhtml"; 
     7773var _830="http://www.w3.org/2000/svg"; 
     7774var _831="http://www.w3.org/1999/xlink"; 
     7775var _832="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
     7776var base=null; 
     7777var _834=null; 
     7778var _835={}; 
     7779var i; 
     7780var src; 
     7781for(i=0;i<_82e.length;i++){ 
     7782src=null; 
     7783switch(_82e[i].namespaceURI){ 
     7784case _830: 
     7785src=_82e[i].getAttributeNS(_831,"href"); 
     7786break; 
     7787default: 
     7788src=_82e[i].getAttribute("src"); 
     7789break; 
     7790} 
     7791if(!src){ 
     7792continue; 
     7793} 
     7794_835[src]=true; 
     7795if(src.match(/MochiKit.js(\?.*)?$/)){ 
     7796base=src.substring(0,src.lastIndexOf("MochiKit.js")); 
     7797_834=_82e[i]; 
     7798} 
     7799} 
     7800if(base===null){ 
     7801return; 
     7802} 
     7803var _838=MochiKit.MochiKit.SUBMODULES; 
     7804for(var i=0;i<_838.length;i++){ 
     7805if(MochiKit[_838[i]]){ 
     7806continue; 
     7807} 
     7808var uri=base+_838[i]+".js"; 
     7809if(uri in _835){ 
     7810continue; 
     7811} 
     7812if(_834.namespaceURI==_830||_834.namespaceURI==_832){ 
     7813var s=document.createElementNS(_834.namespaceURI,"script"); 
     7814s.setAttribute("id","MochiKit_"+base+_838[i]); 
     7815if(_834.namespaceURI==_830){ 
     7816s.setAttributeNS(_831,"href",uri); 
     7817}else{ 
     7818s.setAttribute("src",uri); 
     7819} 
     7820s.setAttribute("type","application/x-javascript"); 
     7821_834.parentNode.appendChild(s); 
     7822}else{ 
     7823document.write("<"+_834.nodeName+" src=\""+uri+"\" type=\"text/javascript\"></script>"); 
     7824} 
     7825} 
     7826})(); 
     7827} 
    36217828 
    36227829 
  • trunk/www/url.php

    r1041 r1080  
    266266} 
    267267 
     268function url_task_tags() { 
     269    return url_complex("admin/task_tags"); 
     270} 
     271 
     272function url_task_tags_add() { 
     273    return url_complex("admin/task_tags", array("action" => "add")); 
     274} 
     275 
     276function url_task_tags_delete() { 
     277    return url_complex("admin/task_tags", array("action" => "delete")); 
     278} 
     279 
     280function url_task_tags_rename() { 
     281    return url_complex("admin/task_tags", array("action" => "rename")); 
     282} 
     283 
    268284function url_round_edit($round_id) { 
    269285    log_assert(is_round_id($round_id)); 
  • trunk/www/views/task_edit.php

    r1078 r1080  
    148148            <legend>Taguri</legend> 
    149149            <ul class="form"> 
    150                 <?= tag_format_input_box($tag_fields['author'], fval('tag_author'), 50, "tags", false); ?> 
    151                 <?= tag_format_input_box($tag_fields['contest'], fval('tag_contest'), 50, "tags", false); ?> 
    152                 <?= tag_format_input_box($tag_fields['year'], fval('tag_year'), 50, "tags", false); ?> 
    153                 <?= tag_format_input_box($tag_fields['round'], fval('tag_round'), 50, "tags", false); ?> 
    154                 <?= tag_format_input_box($tag_fields['age_group'], fval('tag_age_group'), 50, "tags", false); ?> 
    155                 <?= tag_format_input_box($tag_fields['method'], fval('tag_method'), 50, "tags", false); ?> 
    156                 <?= tag_format_input_box($tag_fields['algorithm'], fval('tag_algorithm'), 50, "tags", false); ?> 
     150            <?php 
     151                foreach (array_keys($tag_fields) as $tag) { 
     152                    echo tag_format_input_box($tag_fields[$tag], fval('tag_'.$tag), 50, 'tag_'.$tag, false); 
     153                } 
     154            ?> 
    157155            </ul> 
    158156        </fieldset> 
Note: See TracChangeset for help on using the changeset viewer.