Changeset 1346

Show
Ignore:
Timestamp:
03/26/08 11:54:50 (4 months ago)
Author:
cederberg@gmail.com
Message:

Fixed MochiKit.DOM.getFirstParentByTagAndClassName for case when no matches were found (see #297) and added new tests.
Also refactored the code for improved clarity and updated the API docs.

Files:

Legend:

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

    r1333 r1346  
    10441044            className = null; 
    10451045        } 
    1046  
    1047         var classList = ''; 
    1048         var curTagName = ''; 
    1049         while (elem && elem.tagName) { 
     1046        if (elem) { 
    10501047            elem = elem.parentNode; 
    1051             if (tagName == '*' && className === null) { 
     1048        } 
     1049        while (elem && elem.tagName && elem.className) { 
     1050            var curTagName = elem.tagName.toUpperCase(); 
     1051            if ((tagName === '*' || tagName == curTagName) && 
     1052                (className === null || self.hasElementClass(elem, className))) { 
    10521053                return elem; 
    10531054            } 
    1054             classList = elem.className.split(' '); 
    1055             curTagName = elem.tagName.toUpperCase(); 
    1056             if (className === null && tagName == curTagName) { 
    1057                 return elem; 
    1058             } else if (className !== null) { 
    1059                 for (var i = 0; i < classList.length; i++) { 
    1060                     if (tagName == '*' && classList[i] == className) { 
    1061                         return elem; 
    1062                     } else if (tagName == curTagName && classList[i] == className) { 
    1063                         return elem; 
    1064                     } 
    1065                 } 
    1066             } 
    1067         } 
    1068         return elem; 
     1055            elem = elem.parentNode; 
     1056        } 
     1057        return null; 
    10691058    }, 
    10701059 
  • mochikit/trunk/doc/html/MochiKit/DOM.html

    r1324 r1346  
    569569<a class="mochidef reference" href="#fn-getfirstparentbytagandclassname">getFirstParentByTagAndClassName(elem, tagName='*', className=null)</a>:</p> 
    570570<blockquote> 
    571 <p>Returns the first parent of <tt class="docutils literal"><span class="pre">elem</span></tt> matches the tag name and class name 
    572 provided. If parent is a string, it will be looked up using 
     571<p>Returns the first parent of <tt class="docutils literal"><span class="pre">elem</span></tt> that matches the tag name and class 
     572name provided. If <tt class="docutils literal"><span class="pre">elem</span></tt> is a string, it will be looked up using 
    573573<a class="mochiref reference" href="#fn-getelement">getElement</a>.</p> 
    574574<p>If <tt class="docutils literal"><span class="pre">tagName</span></tt> is <tt class="docutils literal"><span class="pre">null</span></tt> or <tt class="docutils literal"><span class="pre">&quot;*&quot;</span></tt>, all elements will be searched 
    575575for the matching class.</p> 
    576576<p>If <tt class="docutils literal"><span class="pre">className</span></tt> is <tt class="docutils literal"><span class="pre">null</span></tt>, the first element matching the provided 
    577 tag will be returned.</p> 
     577tag name will be returned.</p> 
     578<p>If no match is found, <tt class="docutils literal"><span class="pre">null</span></tt> will be returned.</p> 
    578579<dl class="docutils"> 
    579580<dt><em>Availability</em>:</dt> 
  • mochikit/trunk/doc/rst/MochiKit/DOM.rst

    r1324 r1346  
    548548:mochidef:`getFirstParentByTagAndClassName(elem, tagName='*', className=null)`: 
    549549 
    550     Returns the first parent of ``elem`` matches the tag name and class name 
    551     provided. If parent is a string, it will be looked up using 
     550    Returns the first parent of ``elem`` that matches the tag name and class 
     551    name provided. If ``elem`` is a string, it will be looked up using 
    552552    :mochiref:`getElement`. 
    553553 
     
    556556 
    557557    If ``className`` is ``null``, the first element matching the provided 
    558     tag will be returned. 
     558    tag name will be returned. 
     559 
     560    If no match is found, ``null`` will be returned. 
    559561 
    560562    *Availability*: 
  • mochikit/trunk/packed/MochiKit/MochiKit.js

    r1345 r1346  
    33423342_3b4=null; 
    33433343} 
    3344 var _3b6=""; 
    3345 var _3b7=""; 
    3346 while(elem&&elem.tagName){ 
     3344if(elem){ 
    33473345elem=elem.parentNode; 
    3348 if(_3b3=="*"&&_3b4===null){ 
     3346
     3347while(elem&&elem.tagName&&elem.className){ 
     3348var _3b6=elem.tagName.toUpperCase(); 
     3349if((_3b3==="*"||_3b3==_3b6)&&(_3b4===null||self.hasElementClass(elem,_3b4))){ 
    33493350return elem; 
    33503351} 
    3351 _3b6=elem.className.split(" "); 
    3352 _3b7=elem.tagName.toUpperCase(); 
    3353 if(_3b4===null&&_3b3==_3b7){ 
    3354 return elem; 
    3355 }else{ 
    3356 if(_3b4!==null){ 
    3357 for(var i=0;i<_3b6.length;i++){ 
    3358 if(_3b3=="*"&&_3b6[i]==_3b4){ 
    3359 return elem; 
    3360 }else{ 
    3361 if(_3b3==_3b7&&_3b6[i]==_3b4){ 
    3362 return elem; 
    3363 
    3364 
    3365 
    3366 
    3367 
    3368 
    3369 return elem; 
    3370 },isParent:function(_3b9,_3ba){ 
    3371 if(!_3b9.parentNode||_3b9==_3ba){ 
     3352elem=elem.parentNode; 
     3353
     3354return null; 
     3355},isParent:function(_3b7,_3b8){ 
     3356if(!_3b7.parentNode||_3b7==_3b8){ 
    33723357return false; 
    33733358} 
    3374 if(_3b9.parentNode==_3ba){ 
     3359if(_3b7.parentNode==_3b8){ 
    33753360return true; 
    33763361} 
    3377 return MochiKit.DOM.isParent(_3b9.parentNode,_3ba); 
     3362return MochiKit.DOM.isParent(_3b7.parentNode,_3b8); 
    33783363},__new__:function(win){ 
    33793364var m=MochiKit.Base; 
    33803365if(typeof (document)!="undefined"){ 
    33813366this._document=document; 
    3382 var _3bd="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
    3383 this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===_3bd); 
     3367var _3bb="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
     3368this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===_3bb); 
    33843369}else{ 
    33853370if(MochiKit.MockDOM){ 
     
    33893374this._window=win; 
    33903375this.domConverters=new m.AdapterRegistry(); 
    3391 var _3be=this._document.createElement("span"); 
    3392 var _3bf
    3393 if(_3be&&_3be.attributes&&_3be.attributes.length>0){ 
    3394 var _3c0=m.filter; 
    3395 _3bf=function(node){ 
    3396 return _3c0(_3bf.ignoreAttrFilter,node.attributes); 
    3397 }; 
    3398 _3bf.ignoreAttr={}; 
    3399 var _3c2=_3be.attributes; 
    3400 var _3c3=_3bf.ignoreAttr; 
    3401 for(var i=0;i<_3c2.length;i++){ 
    3402 var a=_3c2[i]; 
    3403 _3c3[a.name]=a.value; 
    3404 } 
    3405 _3bf.ignoreAttrFilter=function(a){ 
    3406 return (_3bf.ignoreAttr[a.name]!=a.value); 
    3407 }; 
    3408 _3bf.compliant=false; 
    3409 _3bf.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor","cellspacing":"cellSpacing","cellpadding":"cellPadding"}; 
    3410 }else{ 
    3411 _3bf=function(node){ 
     3376var _3bc=this._document.createElement("span"); 
     3377var _3bd
     3378if(_3bc&&_3bc.attributes&&_3bc.attributes.length>0){ 
     3379var _3be=m.filter; 
     3380_3bd=function(node){ 
     3381return _3be(_3bd.ignoreAttrFilter,node.attributes); 
     3382}; 
     3383_3bd.ignoreAttr={}; 
     3384var _3c0=_3bc.attributes; 
     3385var _3c1=_3bd.ignoreAttr; 
     3386for(var i=0;i<_3c0.length;i++){ 
     3387var a=_3c0[i]; 
     3388_3c1[a.name]=a.value; 
     3389} 
     3390_3bd.ignoreAttrFilter=function(a){ 
     3391return (_3bd.ignoreAttr[a.name]!=a.value); 
     3392}; 
     3393_3bd.compliant=false; 
     3394_3bd.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor","cellspacing":"cellSpacing","cellpadding":"cellPadding"}; 
     3395}else{ 
     3396_3bd=function(node){ 
    34123397return node.attributes; 
    34133398}; 
    3414 _3bf.compliant=true; 
    3415 _3bf.renames={}; 
    3416 } 
    3417 this.attributeArray=_3bf
    3418 var _3c8=function(_3c9,arr){ 
    3419 var _3cb=arr[1].split("."); 
     3399_3bd.compliant=true; 
     3400_3bd.renames={}; 
     3401} 
     3402this.attributeArray=_3bd
     3403var _3c6=function(_3c7,arr){ 
     3404var _3c9=arr[1].split("."); 
    34203405var str=""; 
    34213406var obj={}; 
    3422 str+="if (!MochiKit."+_3cb[1]+") { throw new Error(\""; 
     3407str+="if (!MochiKit."+_3c9[1]+") { throw new Error(\""; 
    34233408str+="This function has been deprecated and depends on MochiKit."; 
    3424 str+=_3cb[1]+".\");}"; 
    3425 str+="return MochiKit."+_3cb[1]+"."+arr[0]; 
     3409str+=_3c9[1]+".\");}"; 
     3410str+="return MochiKit."+_3c9[1]+"."+arr[0]; 
    34263411str+=".apply(this, arguments);"; 
    3427 obj[_3cb[2]]=new Function(str); 
    3428 MochiKit.Base.update(MochiKit[_3c9],obj); 
     3412obj[_3c9[2]]=new Function(str); 
     3413MochiKit.Base.update(MochiKit[_3c7],obj); 
    34293414}; 
    34303415for(var i;i<MochiKit.DOM.DEPRECATED.length;i++){ 
    3431 _3c8("DOM",MochiKit.DOM.DEPRECATED[i]); 
    3432 } 
    3433 var _3ce=this.createDOMFunc; 
    3434 this.UL=_3ce("ul"); 
    3435 this.OL=_3ce("ol"); 
    3436 this.LI=_3ce("li"); 
    3437 this.DL=_3ce("dl"); 
    3438 this.DT=_3ce("dt"); 
    3439 this.DD=_3ce("dd"); 
    3440 this.TD=_3ce("td"); 
    3441 this.TR=_3ce("tr"); 
    3442 this.TBODY=_3ce("tbody"); 
    3443 this.THEAD=_3ce("thead"); 
    3444 this.TFOOT=_3ce("tfoot"); 
    3445 this.TABLE=_3ce("table"); 
    3446 this.TH=_3ce("th"); 
    3447 this.INPUT=_3ce("input"); 
    3448 this.SPAN=_3ce("span"); 
    3449 this.A=_3ce("a"); 
    3450 this.DIV=_3ce("div"); 
    3451 this.IMG=_3ce("img"); 
    3452 this.BUTTON=_3ce("button"); 
    3453 this.TT=_3ce("tt"); 
    3454 this.PRE=_3ce("pre"); 
    3455 this.H1=_3ce("h1"); 
    3456 this.H2=_3ce("h2"); 
    3457 this.H3=_3ce("h3"); 
    3458 this.BR=_3ce("br"); 
    3459 this.HR=_3ce("hr"); 
    3460 this.LABEL=_3ce("label"); 
    3461 this.TEXTAREA=_3ce("textarea"); 
    3462 this.FORM=_3ce("form"); 
    3463 this.P=_3ce("p"); 
    3464 this.SELECT=_3ce("select"); 
    3465 this.OPTION=_3ce("option"); 
    3466 this.OPTGROUP=_3ce("optgroup"); 
    3467 this.LEGEND=_3ce("legend"); 
    3468 this.FIELDSET=_3ce("fieldset"); 
    3469 this.STRONG=_3ce("strong"); 
    3470 this.CANVAS=_3ce("canvas"); 
     3416_3c6("DOM",MochiKit.DOM.DEPRECATED[i]); 
     3417} 
     3418var _3cc=this.createDOMFunc; 
     3419this.UL=_3cc("ul"); 
     3420this.OL=_3cc("ol"); 
     3421this.LI=_3cc("li"); 
     3422this.DL=_3cc("dl"); 
     3423this.DT=_3cc("dt"); 
     3424this.DD=_3cc("dd"); 
     3425this.TD=_3cc("td"); 
     3426this.TR=_3cc("tr"); 
     3427this.TBODY=_3cc("tbody"); 
     3428this.THEAD=_3cc("thead"); 
     3429this.TFOOT=_3cc("tfoot"); 
     3430this.TABLE=_3cc("table"); 
     3431this.TH=_3cc("th"); 
     3432this.INPUT=_3cc("input"); 
     3433this.SPAN=_3cc("span"); 
     3434this.A=_3cc("a"); 
     3435this.DIV=_3cc("div"); 
     3436this.IMG=_3cc("img"); 
     3437this.BUTTON=_3cc("button"); 
     3438this.TT=_3cc("tt"); 
     3439this.PRE=_3cc("pre"); 
     3440this.H1=_3cc("h1"); 
     3441this.H2=_3cc("h2"); 
     3442this.H3=_3cc("h3"); 
     3443this.BR=_3cc("br"); 
     3444this.HR=_3cc("hr"); 
     3445this.LABEL=_3cc("label"); 
     3446this.TEXTAREA=_3cc("textarea"); 
     3447this.FORM=_3cc("form"); 
     3448this.P=_3cc("p"); 
     3449this.SELECT=_3cc("select"); 
     3450this.OPTION=_3cc("option"); 
     3451this.OPTGROUP=_3cc("optgroup"); 
     3452this.LEGEND=_3cc("legend"); 
     3453this.FIELDSET=_3cc("fieldset"); 
     3454this.STRONG=_3cc("strong"); 
     3455this.CANVAS=_3cc("canvas"); 
    34713456this.$=this.getElement; 
    34723457this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; 
     
    34903475MochiKit.Selector.EXPORT=["Selector","findChildElements","findDocElements","$$"]; 
    34913476MochiKit.Selector.EXPORT_OK=[]; 
    3492 MochiKit.Selector.Selector=function(_3cf){ 
     3477MochiKit.Selector.Selector=function(_3cd){ 
    34933478this.params={classNames:[],pseudoClassNames:[]}; 
    3494 this.expression=_3cf.toString().replace(/(^\s+|\s+$)/g,""); 
     3479this.expression=_3cd.toString().replace(/(^\s+|\s+$)/g,""); 
    34953480this.parseExpression(); 
    34963481this.compileMatcher(); 
    34973482}; 
    34983483MochiKit.Selector.Selector.prototype={__class__:MochiKit.Selector.Selector,parseExpression:function(){ 
    3499 function abort(_3d0){ 
    3500 throw "Parse error in selector: "+_3d0
     3484function abort(_3ce){ 
     3485throw "Parse error in selector: "+_3ce
    35013486} 
    35023487if(this.expression==""){ 
     
    35043489} 
    35053490var repr=MochiKit.Base.repr; 
    3506 var _3d2=this.params; 
     3491var _3d0=this.params; 
    35073492var expr=this.expression; 
    3508 var _3d4,_3d5,_3d6,rest; 
    3509 while(_3d4=expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!^$*]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)){ 
    3510 _3d2.attributes=_3d2.attributes||[]; 
    3511 _3d2.attributes.push({name:_3d4[2],operator:_3d4[3],value:_3d4[4]||_3d4[5]||""}); 
    3512 expr=_3d4[1]; 
     3493var _3d2,_3d3,_3d4,rest; 
     3494while(_3d2=expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!^$*]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)){ 
     3495_3d0.attributes=_3d0.attributes||[]; 
     3496_3d0.attributes.push({name:_3d2[2],operator:_3d2[3],value:_3d2[4]||_3d2[5]||""}); 
     3497expr=_3d2[1]; 
    35133498} 
    35143499if(expr=="*"){ 
    35153500return this.params.wildcard=true; 
    35163501} 
    3517 while(_3d4=expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+(?:\([^)]*\))?)(.*)/i)){ 
    3518 _3d5=_3d4[1]; 
    3519 _3d6=_3d4[2]; 
    3520 rest=_3d4[3]; 
    3521 switch(_3d5){ 
     3502while(_3d2=expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+(?:\([^)]*\))?)(.*)/i)){ 
     3503_3d3=_3d2[1]; 
     3504_3d4=_3d2[2]; 
     3505rest=_3d2[3]; 
     3506switch(_3d3){ 
    35223507case "#": 
    3523 _3d2.id=_3d6
     3508_3d0.id=_3d4
    35243509break; 
    35253510case ".": 
    3526 _3d2.classNames.push(_3d6); 
     3511_3d0.classNames.push(_3d4); 
    35273512break; 
    35283513case ":": 
    3529 _3d2.pseudoClassNames.push(_3d6); 
     3514_3d0.pseudoClassNames.push(_3d4); 
    35303515break; 
    35313516case "": 
    35323517case undefined: 
    3533 _3d2.tagName=_3d6.toUpperCase(); 
     3518_3d0.tagName=_3d4.toUpperCase(); 
    35343519break; 
    35353520default: 
     
    35433528},buildMatchExpression:function(){ 
    35443529var repr=MochiKit.Base.repr; 
    3545 var _3d9=this.params; 
    3546 var _3da=[]; 
    3547 var _3db,i; 
    3548 function childElements(_3dd){ 
    3549 return "MochiKit.Base.filter(function (node) { return node.nodeType == 1; }, "+_3dd+".childNodes)"; 
    3550 } 
    3551 if(_3d9.wildcard){ 
    3552 _3da.push("true"); 
    3553 } 
    3554 if(_3db=_3d9.id){ 
    3555 _3da.push("element.id == "+repr(_3db)); 
    3556 } 
    3557 if(_3db=_3d9.tagName){ 
    3558 _3da.push("element.tagName.toUpperCase() == "+repr(_3db)); 
    3559 } 
    3560 if((_3db=_3d9.classNames).length>0){ 
    3561 for(i=0;i<_3db.length;i++){ 
    3562 _3da.push("MochiKit.DOM.hasElementClass(element, "+repr(_3db[i])+")"); 
    3563 } 
    3564 } 
    3565 if((_3db=_3d9.pseudoClassNames).length>0){ 
    3566 for(i=0;i<_3db.length;i++){ 
    3567 var _3de=_3db[i].match(/^([^(]+)(?:\((.*)\))?$/); 
    3568 var _3df=_3de[1]; 
    3569 var _3e0=_3de[2]; 
    3570 switch(_3df){ 
     3530var _3d7=this.params; 
     3531var _3d8=[]; 
     3532var _3d9,i; 
     3533function childElements(_3db){ 
     3534return "MochiKit.Base.filter(function (node) { return node.nodeType == 1; }, "+_3db+".childNodes)"; 
     3535} 
     3536if(_3d7.wildcard){ 
     3537_3d8.push("true"); 
     3538} 
     3539if(_3d9=_3d7.id){ 
     3540_3d8.push("element.id == "+repr(_3d9)); 
     3541} 
     3542if(_3d9=_3d7.tagName){ 
     3543_3d8.push("element.tagName.toUpperCase() == "+repr(_3d9)); 
     3544} 
     3545if((_3d9=_3d7.classNames).length>0){ 
     3546for(i=0;i<_3d9.length;i++){ 
     3547_3d8.push("MochiKit.DOM.hasElementClass(element, "+repr(_3d9[i])+")"); 
     3548} 
     3549} 
     3550if((_3d9=_3d7.pseudoClassNames).length>0){ 
     3551for(i=0;i<_3d9.length;i++){ 
     3552var _3dc=_3d9[i].match(/^([^(]+)(?:\((.*)\))?$/); 
     3553var _3dd=_3dc[1]; 
     3554var _3de=_3dc[2]; 
     3555switch(_3dd){ 
    35713556case "root": 
    3572 _3da.push("element.nodeType == 9 || element === element.ownerDocument.documentElement"); 
     3557_3d8.push("element.nodeType == 9 || element === element.ownerDocument.documentElement"); 
    35733558break; 
    35743559case "nth-child": 
     
    35763561case "nth-of-type": 
    35773562case "nth-last-of-type": 
    3578 _3de=_3e0.match(/^((?:(\d+)n\+)?(\d+)|odd|even)$/); 
    3579 if(!_3de){ 
    3580 throw "Invalid argument to pseudo element nth-child: "+_3e0
     3563_3dc=_3de.match(/^((?:(\d+)n\+)?(\d+)|odd|even)$/); 
     3564if(!_3dc){ 
     3565throw "Invalid argument to pseudo element nth-child: "+_3de
    35813566} 
    35823567var a,b; 
    3583 if(_3de[0]=="odd"){ 
     3568if(_3dc[0]=="odd"){ 
    35843569a=2; 
    35853570b=1; 
    35863571}else{ 
    3587 if(_3de[0]=="even"){ 
     3572if(_3dc[0]=="even"){ 
    35883573a=2; 
    35893574b=0; 
    35903575}else{ 
    3591 a=_3de[2]&&parseInt(_3de)||null; 
    3592 b=parseInt(_3de[3]); 
    3593 } 
    3594 } 
    3595 _3da.push("this.nthChild(element,"+a+","+b+","+!!_3df.match("^nth-last")+","+!!_3df.match("of-type$")+")"); 
     3576a=_3dc[2]&&parseInt(_3dc)||null; 
     3577b=parseInt(_3dc[3]); 
     3578} 
     3579} 
     3580_3d8.push("this.nthChild(element,"+a+","+b+","+!!_3dd.match("^nth-last")+","+!!_3dd.match("of-type$")+")"); 
    35963581break; 
    35973582case "first-child": 
    3598 _3da.push("this.nthChild(element, null, 1)"); 
     3583_3d8.push("this.nthChild(element, null, 1)"); 
    35993584break; 
    36003585case "last-child": 
    3601 _3da.push("this.nthChild(element, null, 1, true)"); 
     3586_3d8.push("this.nthChild(element, null, 1, true)"); 
    36023587break; 
    36033588case "first-of-type": 
    3604 _3da.push("this.nthChild(element, null, 1, false, true)"); 
     3589_3d8.push("this.nthChild(element, null, 1, false, true)"); 
    36053590break; 
    36063591case "last-of-type": 
    3607 _3da.push("this.nthChild(element, null, 1, true, true)"); 
     3592_3d8.push("this.nthChild(element, null, 1, true, true)"); 
    36083593break; 
    36093594case "only-child": 
    3610 _3da.push(childElements("element.parentNode")+".length == 1"); 
     3595_3d8.push(childElements("element.parentNode")+".length == 1"); 
    36113596break; 
    36123597case "only-of-type": 
    3613 _3da.push("MochiKit.Base.filter(function (node) { return node.tagName == element.tagName; }, "+childElements("element.parentNode")+").length == 1"); 
     3598_3d8.push("MochiKit.Base.filter(function (node) { return node.tagName == element.tagName; }, "+childElements("element.parentNode")+").length == 1"); 
    36143599break; 
    36153600case "empty": 
    3616 _3da.push("element.childNodes.length == 0"); 
     3601_3d8.push("element.childNodes.length == 0"); 
    36173602break; 
    36183603case "enabled": 
    3619 _3da.push("(this.isUIElement(element) && element.disabled === false)"); 
     3604_3d8.push("(this.isUIElement(element) && element.disabled === false)"); 
    36203605break; 
    36213606case "disabled": 
    3622 _3da.push("(this.isUIElement(element) && element.disabled === true)"); 
     3607_3d8.push("(this.isUIElement(element) && element.disabled === true)"); 
    36233608break; 
    36243609case "checked": 
    3625 _3da.push("(this.isUIElement(element) && element.checked === true)"); 
     3610_3d8.push("(this.isUIElement(element) && element.checked === true)"); 
    36263611break; 
    36273612case "not": 
    3628 var _3e3=new MochiKit.Selector.Selector(_3e0); 
    3629 _3da.push("!( "+_3e3.buildMatchExpression()+")"); 
     3613var _3e1=new MochiKit.Selector.Selector(_3de); 
     3614_3d8.push("!( "+_3e1.buildMatchExpression()+")"); 
    36303615break; 
    36313616} 
    36323617} 
    36333618} 
    3634 if(_3db=_3d9.attributes){ 
    3635 MochiKit.Base.map(function(_3e4){ 
    3636 var _3e5="MochiKit.DOM.getNodeAttribute(element, "+repr(_3e4.name)+")"; 
    3637 var _3e6=function(_3e7){ 
    3638 return _3e5+".split("+repr(_3e7)+")"; 
    3639 }; 
    3640 switch(_3e4.operator){ 
     3619if(_3d9=_3d7.attributes){ 
     3620MochiKit.Base.map(function(_3e2){ 
     3621var _3e3="MochiKit.DOM.getNodeAttribute(element, "+repr(_3e2.name)+")"; 
     3622var _3e4=function(_3e5){ 
     3623return _3e3+".split("+repr(_3e5)+")"; 
     3624}; 
     3625switch(_3e2.operator){ 
    36413626case "=": 
    3642 _3da.push(_3e5+" == "+repr(_3e4.value)); 
     3627_3d8.push(_3e3+" == "+repr(_3e2.value)); 
    36433628break; 
    36443629case "~=": 
    3645 _3da.push(_3e5+" && MochiKit.Base.findValue("+_3e6(" ")+", "+repr(_3e4.value)+") > -1"); 
     3630_3d8.push(_3e3+" && MochiKit.Base.findValue("+_3e4(" ")+", "+repr(_3e2.value)+") > -1"); 
    36463631break; 
    36473632case "^=": 
    3648 _3da.push(_3e5+".substring(0, "+_3e4.value.length+") == "+repr(_3e4.value)); 
     3633_3d8.push(_3e3+".substring(0, "+_3e2.value.length+") == "+repr(_3e2.value)); 
    36493634break; 
    36503635case "$=": 
    3651 _3da.push(_3e5+".substring("+_3e5+".length - "+_3e4.value.length+") == "+repr(_3e4.value)); 
     3636_3d8.push(_3e3+".substring("+_3e3+".length - "+_3e2.value.length+") == "+repr(_3e2.value)); 
    36523637break; 
    36533638case "*=": 
    3654 _3da.push(_3e5+".match("+repr(_3e4.value)+")"); 
     3639_3d8.push(_3e3+".match("+repr(_3e2.value)+")"); 
    36553640break; 
    36563641case "|=": 
    3657 _3da.push(_3e5+" && "+_3e6("-")+"[0].toUpperCase() == "+repr(_3e4.value.toUpperCase())); 
     3642_3d8.push(_3e3+" && "+_3e4("-")+"[0].toUpperCase() == "+repr(_3e2.value.toUpperCase())); 
    36583643break; 
    36593644case "!=": 
    3660 _3da.push(_3e5+" != "+repr(_3e4.value)); 
     3645_3d8.push(_3e3+" != "+repr(_3e2.value)); 
    36613646break; 
    36623647case "": 
    36633648case undefined: 
    3664 _3da.push(_3e5+" != null"); 
     3649_3d8.push(_3e3+" != null"); 
    36653650break; 
    36663651default: 
    3667 throw "Unknown operator "+_3e4.operator+" in selector"; 
    3668 } 
    3669 },_3db); 
    3670 } 
    3671 return _3da.join(" && "); 
     3652throw "Unknown operator "+_3e2.operator+" in selector"; 
     3653} 
     3654},_3d9); 
     3655} 
     3656return _3d8.join(" && "); 
    36723657},compileMatcher:function(){ 
    36733658this.match=new Function("element","if (!element.tagName) return false;                 return "+this.buildMatchExpression()); 
    3674 },nthChild:function(_3e8,a,b,_3eb,_3ec){ 
    3675 var _3ed=MochiKit.Base.filter(function(node){ 
     3659},nthChild:function(_3e6,a,b,_3e9,_3ea){ 
     3660var _3eb=MochiKit.Base.filter(function(node){ 
    36763661return node.nodeType==1; 
    3677 },_3e8.parentNode.childNodes); 
    3678 if(_3ec){ 
    3679 _3ed=MochiKit.Base.filter(function(node){ 
    3680 return node.tagName==_3e8.tagName; 
    3681 },_3ed); 
    3682 } 
    3683 if(_3eb){ 
    3684 _3ed=MochiKit.Iter.reversed(_3ed); 
     3662},_3e6.parentNode.childNodes); 
     3663if(_3ea){ 
     3664_3eb=MochiKit.Base.filter(function(node){ 
     3665return node.tagName==_3e6.tagName; 
     3666},_3eb); 
     3667} 
     3668if(_3e9){ 
     3669_3eb=MochiKit.Iter.reversed(_3eb); 
    36853670} 
    36863671if(a){ 
    3687 var _3f0=MochiKit.Base.findIdentical(_3ed,_3e8); 
    3688 return ((_3f0+1-b)/a)%1==0; 
    3689 }else{ 
    3690 return b==MochiKit.Base.findIdentical(_3ed,_3e8)+1; 
    3691 } 
    3692 },isUIElement:function(_3f1){ 
    3693 return MochiKit.Base.findValue(["input","button","select","option","textarea","object"],_3f1.tagName.toLowerCase())>-1; 
    3694 },findElements:function(_3f2,axis){ 
    3695 var _3f4
     3672var _3ee=MochiKit.Base.findIdentical(_3eb,_3e6); 
     3673return ((_3ee+1-b)/a)%1==0; 
     3674}else{ 
     3675return b==MochiKit.Base.findIdentical(_3eb,_3e6)+1; 
     3676} 
     3677},isUIElement:function(_3ef){ 
     3678return MochiKit.Base.findValue(["input","button","select","option","textarea","object"],_3ef.tagName.toLowerCase())>-1; 
     3679},findElements:function(_3f0,axis){ 
     3680var _3f2
    36963681if(axis==undefined){ 
    36973682axis=""; 
    36983683} 
    3699 function inScope(_3f5,_3f6){ 
     3684function inScope(_3f3,_3f4){ 
    37003685if(axis==""){ 
    3701 return MochiKit.DOM.isChildNode(_3f5,_3f6); 
     3686return MochiKit.DOM.isChildNode(_3f3,_3f4); 
    37023687}else{ 
    37033688if(axis==">"){ 
    3704 return _3f5.parentNode==_3f6
     3689return _3f3.parentNode==_3f4
    37053690}else{ 
    37063691if(axis=="+"){ 
    3707 return _3f5==nextSiblingElement(_3f6); 
     3692return _3f3==nextSiblingElement(_3f4); 
    37083693}else{ 
    37093694if(axis=="~"){ 
    3710 var _3f7=_3f6
    3711 while(_3f7=nextSiblingElement(_3f7)){ 
    3712 if(_3f5==_3f7){ 
     3695var _3f5=_3f4
     3696while(_3f5=nextSiblingElement(_3f5)){ 
     3697if(_3f3==_3f5){ 
    37133698return true; 
    37143699} 
     
    37223707} 
    37233708} 
    3724 if(_3f4=MochiKit.DOM.getElement(this.params.id)){ 
    3725 if(this.match(_3f4)){ 
    3726 if(!_3f2||inScope(_3f4,_3f2)){ 
    3727 return [_3f4]; 
     3709if(_3f2=MochiKit.DOM.getElement(this.params.id)){ 
     3710if(this.match(_3f2)){ 
     3711if(!_3f0||inScope(_3f2,_3f0)){ 
     3712return [_3f2]; 
    37283713} 
    37293714} 
     
    37373722} 
    37383723if(axis==""){ 
    3739 _3f2=(_3f2||MochiKit.DOM.currentDocument()).getElementsByTagName(this.params.tagName||"*"); 
     3724_3f0=(_3f0||MochiKit.DOM.currentDocument()).getElementsByTagName(this.params.tagName||"*"); 
    37403725}else{ 
    37413726if(axis==">"){ 
    3742 if(!_3f2){ 
     3727if(!_3f0){ 
    37433728throw "> combinator not allowed without preceeding expression"; 
    37443729} 
    3745 _3f2=MochiKit.Base.filter(function(node){ 
     3730_3f0=MochiKit.Base.filter(function(node){ 
    37463731return node.nodeType==1; 
    3747 },_3f2.childNodes); 
     3732},_3f0.childNodes); 
    37483733}else{ 
    37493734if(axis=="+"){ 
    3750 if(!_3f2){ 
     3735if(!_3f0){ 
    37513736throw "+ combinator not allowed without preceeding expression"; 
    37523737} 
    3753 _3f2=nextSiblingElement(_3f2)&&[nextSiblingElement(_3f2)]; 
     3738_3f0=nextSiblingElement(_3f0)&&[nextSiblingElement(_3f0)]; 
    37543739}else{ 
    37553740if(axis=="~"){ 
    3756 if(!_3f2){ 
     3741if(!_3f0){ 
    37573742throw "~ combinator not allowed without preceeding expression"; 
    37583743} 
    3759 var _3fa=[]; 
    3760 while(nextSiblingElement(_3f2)){ 
    3761 _3f2=nextSiblingElement(_3f2); 
    3762 _3fa.push(_3f2); 
    3763 } 
    3764 _3f2=_3fa
    3765 } 
    3766 } 
    3767 } 
    3768 } 
    3769 if(!_3f2){ 
     3744var _3f8=[]; 
     3745while(nextSiblingElement(_3f0)){ 
     3746_3f0=nextSiblingElement(_3f0); 
     3747_3f8.push(_3f0); 
     3748} 
     3749_3f0=_3f8
     3750} 
     3751} 
     3752} 
     3753} 
     3754if(!_3f0){ 
    37703755return []; 
    37713756} 
    3772 var _3fb=MochiKit.Base.filter(MochiKit.Base.bind(function(_3fc){ 
    3773 return this.match(_3fc); 
    3774 },this),_3f2); 
    3775 return _3fb
     3757var _3f9=MochiKit.Base.filter(MochiKit.Base.bind(function(_3fa){ 
     3758return this.match(_3fa); 
     3759},this),_3f0); 
     3760return _3f9
    37763761},repr:function(){ 
    37773762return "Selector("+this.expression+")"; 
    37783763},toString:MochiKit.Base.forwardCall("repr")}; 
    3779 MochiKit.Base.update(MochiKit.Selector,{findChildElements:function(_3fd,_3fe){ 
    3780 return MochiKit.Base.flattenArray(MochiKit.Base.map(function(_3ff){ 
    3781 var _400=""; 
    3782 return MochiKit.Iter.reduce(function(_401,expr){ 
     3764MochiKit.Base.update(MochiKit.Selector,{findChildElements:function(_3fb,_3fc){ 
     3765return MochiKit.Base.flattenArray(MochiKit.Base.map(function(_3fd){ 
     3766var _3fe=""; 
     3767return MochiKit.Iter.reduce(function(_3ff,expr){ 
    37833768if(match=expr.match(/^[>+~]$/)){ 
    3784 _400=match[0]; 
    3785 return _401
    3786 }else{ 
    3787 var _403=new MochiKit.Selector.Selector(expr); 
    3788 var _404=MochiKit.Iter.reduce(function(_405,_406){ 
    3789 return MochiKit.Base.extend(_405,_403.findElements(_406||_3fd,_400)); 
    3790 },_401,[]); 
    3791 _400=""; 
    3792 return _404
    3793 } 
    3794 },_3ff.replace(/(^\s+|\s+$)/g,"").split(/\s+/),[null]); 
    3795 },_3fe)); 
     3769_3fe=match[0]; 
     3770return _3ff
     3771}else{ 
     3772var _401=new MochiKit.Selector.Selector(expr); 
     3773var _402=MochiKit.Iter.reduce(function(_403,_404){ 
     3774return MochiKit.Base.extend(_403,_401.findElements(_404||_3fb,_3fe)); 
     3775},_3ff,[]); 
     3776_3fe=""; 
     3777return _402
     3778} 
     3779},_3fd.replace(/(^\s+|\s+$)/g,"").split(/\s+/),[null]); 
     3780},_3fc)); 
    37963781},findDocElements:function(){ 
    37973782return MochiKit.Selector.findChildElements(MochiKit.DOM.currentDocument(),arguments); 
     
    38373822return this.__repr__(); 
    38383823}; 
    3839 MochiKit.Base.update(MochiKit.Style,{getStyle:function(elem,_40f){ 
     3824MochiKit.Base.update(MochiKit.Style,{getStyle:function(elem,_40d){ 
    38403825var dom=MochiKit.DOM; 
    38413826var d=dom._document; 
    38423827elem=dom.getElement(elem); 
    3843 _40f=MochiKit.Base.camelize(_40f); 
     3828_40d=MochiKit.Base.camelize(_40d); 
    38443829if(!elem||elem==d){ 
    38453830return undefined; 
    38463831} 
    3847 if(_40f=="opacity"&&elem.filters){ 
    3848 var _412=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/); 
    3849 if(_412&&_412[1]){ 
    3850 return parseFloat(_412[1])/100; 
     3832if(_40d=="opacity"&&elem.filters){ 
     3833var _410=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/); 
     3834if(_410&&_410[1]){ 
     3835return parseFloat(_410[1])/100; 
    38513836} 
    38523837return 1; 
    38533838} 
    3854 var _413=elem.style?elem.style[_40f]:null; 
    3855 if(!_413){ 
     3839var _411=elem.style?elem.style[_40d]:null; 
     3840if(!_411){ 
    38563841if(d.defaultView&&d.defaultView.getComputedStyle){ 
    38573842var css=d.defaultView.getComputedStyle(elem,null); 
    3858 _40f=_40f.replace(/([A-Z])/g,"-$1").toLowerCase(); 
    3859 _413=css?css.getPropertyValue(_40f):null; 
     3843_40d=_40d.replace(/([A-Z])/g,"-$1").toLowerCase(); 
     3844_411=css?css.getPropertyValue(_40d):null; 
    38603845}else{ 
    38613846if(elem.currentStyle){ 
    3862 _413=elem.currentStyle[_40f]; 
    3863 } 
    3864 } 
    3865 } 
    3866 if(_40f=="opacity"){ 
    3867 _413=parseFloat(_413); 
    3868 } 
    3869 if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_40f)!=-1)){ 
     3847_411=elem.currentStyle[_40d]; 
     3848} 
     3849} 
     3850} 
     3851if(_40d=="opacity"){ 
     3852_411=parseFloat(_411); 
     3853} 
     3854if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_40d)!=-1)){ 
    38703855if(MochiKit.Style.getStyle(elem,"position")=="static"){ 
    3871 _413="auto"; 
    3872 } 
    3873 } 
    3874 return _413=="auto"?null:_413
    3875 },setStyle:function(elem,_416){ 
     3856_411="auto"; 
     3857} 
     3858} 
     3859return _411=="auto"?null:_411
     3860},setStyle:function(elem,_414){ 
    38763861elem=MochiKit.DOM.getElement(elem); 
    3877 for(var name in _416){ 
     3862for(var name in _414){ 
    38783863if(name=="opacity"){ 
    3879 MochiKit.Style.setOpacity(elem,_416[name]); 
    3880 }else{ 
    3881 elem.style[MochiKit.Base.camelize(name)]=_416[name]; 
     3864MochiKit.Style.setOpacity(elem,_414[name]); 
     3865}else{ 
     3866elem.style[MochiKit.Base.camelize(name)]=_414[name]; 
    38823867} 
    38833868} 
     
    38863871var self=MochiKit.Style; 
    38873872if(o==1){ 
    3888 var _41b=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)); 
    3889 elem.style["opacity"]=_41b?0.999999:1; 
     3873var _419=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)); 
     3874elem.style["opacity"]=_419?0.999999:1; 
    38903875if(/MSIE/.test(navigator.userAgent)){ 
    38913876elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,""); 
     
    39003885} 
    39013886} 
    3902 },getElementPosition:function(elem,_41d){ 
     3887},getElementPosition:function(elem,_41b){ 
    39033888var self=MochiKit.Style; 
    39043889var dom=MochiKit.DOM; 
     
    39093894var c=new self.Coordinates(0,0); 
    39103895var box=null; 
    3911 var _422=null; 
     3896var _420=null; 
    39123897var d=MochiKit.DOM._document; 
    39133898var de=d.documentElement; 
     
    39263911c.x+=elem.offsetLeft; 
    39273912c.y+=elem.offsetTop; 
    3928 _422=elem.offsetParent; 
    3929 if(_422!=elem){ 
    3930 while(_422){ 
    3931 c.x+=_422.offsetLeft; 
    3932 c.y+=_422.offsetTop; 
    3933 _422=_422.offsetParent; 
     3913_420=elem.offsetParent; 
     3914if(_420!=elem){ 
     3915while(_420){ 
     3916c.x+=_420.offsetLeft; 
     3917c.y+=_420.offsetTop; 
     3918_420=_420.offsetParent; 
    39343919} 
    39353920} 
     
    39423927} 
    39433928} 
    3944 if(typeof (_41d)!="undefined"){ 
    3945 _41d=arguments.callee(_41d); 
    3946 if(_41d){ 
    3947 c.x-=(_41d.x||0); 
    3948 c.y-=(_41d.y||0); 
     3929if(typeof (_41b)!="undefined"){ 
     3930_41b=arguments.callee(_41b); 
     3931if(_41b){ 
     3932c.x-=(_41b.x||0); 
     3933c.y-=(_41b.y||0); 
    39493934} 
    39503935} 
    39513936if(elem.parentNode){ 
    3952 _422=elem.parentNode; 
    3953 }else{ 
    3954 _422=null; 
    3955 } 
    3956 while(_422){ 
    3957 var _427=_422.tagName.toUpperCase(); 
    3958 if(_427==="BODY"||_427==="HTML"){ 
     3937_420=elem.parentNode; 
     3938}else{ 
     3939_420=null; 
     3940} 
     3941while(_420){ 
     3942var _425=_420.tagName.toUpperCase(); 
     3943if(_425==="BODY"||_425==="HTML"){ 
    39593944break; 
    39603945} 
    3961 var disp=self.getStyle(_422,"display"); 
     3946var disp=self.getStyle(_420,"display"); 
    39623947if(disp.search(/^inline|table-row.*$/i)){ 
    3963 c.x-=_422.scrollLeft; 
    3964 c.y-=_422.scrollTop; 
    3965 } 
    3966 if(_422.parentNode){ 
    3967 _422=_422.parentNode; 
    3968 }else{ 
    3969 _422=null; 
     3948c.x-=_420.scrollLeft; 
     3949c.y-=_420.scrollTop; 
     3950} 
     3951if(_420.parentNode){ 
     3952_420=_420.parentNode; 
     3953}else{ 
     3954_420=null; 
    39703955} 
    39713956} 
    39723957return c; 
    3973 },setElementPosition:function(elem,_42a,_42b){ 
     3958},setElementPosition:function(elem,_428,_429){ 
    39743959elem=MochiKit.DOM.getElement(elem); 
    3975 if(typeof (_42b)=="undefined"){ 
    3976 _42b="px"; 
    3977 } 
    3978 var _42c={}; 
    3979 var _42d=MochiKit.Base.isUndefinedOrNull; 
    3980 if(!_42d(_42a.x)){ 
    3981 _42c["left"]=_42a.x+_42b
    3982 } 
    3983 if(!_42d(_42a.y)){ 
    3984 _42c["top"]=_42a.y+_42b
    3985 } 
    3986 MochiKit.DOM.updateNodeAttributes(elem,{"style":_42c}); 
     3960if(typeof (_429)=="undefined"){ 
     3961_429="px"; 
     3962} 
     3963var _42a={}; 
     3964var _42b=MochiKit.Base.isUndefinedOrNull; 
     3965if(!_42b(_428.x)){ 
     3966_42a["left"]=_428.x+_429
     3967} 
     3968if(!_42b(_428.y)){ 
     3969_42a["top"]=_428.y+_429
     3970} 
     3971MochiKit.DOM.updateNodeAttributes(elem,{"style":_42a}); 
    39873972},getElementDimensions:function(elem){ 
    39883973var self=MochiKit.Style; 
     
    40003985} 
    40013986var s=elem.style; 
    4002 var _433=s.visibility; 
    4003 var _434=s.position; 
     3987var _431=s.visibility; 
     3988var _432=s.position; 
    40043989s.visibility="hidden"; 
    40053990s.position="absolute"; 
    40063991s.display=""; 
    4007 var _435=elem.offsetWidth; 
    4008 var _436=elem.offsetHeight; 
     3992var _433=elem.offsetWidth; 
     3993var _434=elem.offsetHeight; 
    40093994s.display="none"; 
    4010 s.position=_434
    4011 s.visibility=_433
    4012 return new self.Dimensions(_435,_436); 
    4013 },setElementDimensions:function(elem,_438,_439){ 
     3995s.position=_432
     3996s.visibility=_431
     3997return new self.Dimensions(_433,_434); 
     3998},setElementDimensions:function(elem,_436,_437){ 
    40143999elem=MochiKit.DOM.getElement(elem); 
    4015 if(typeof (_439)=="undefined"){ 
    4016 _439="px"; 
    4017 } 
    4018 var _43a={}; 
    4019 var _43b=MochiKit.Base.isUndefinedOrNull; 
    4020 if(!_43b(_438.w)){ 
    4021 _43a["width"]=_438.w+_439
    4022 } 
    4023 if(!_43b(_438.h)){ 
    4024 _43a["height"]=_438.h+_439
    4025 } 
    4026 MochiKit.DOM.updateNodeAttributes(elem,{"style":_43a}); 
    4027 },setDisplayForElement:function(_43c,_43d){ 
    4028 var _43e=MochiKit.Base.extend(null,arguments,1); 
    4029 var _43f=MochiKit.DOM.getElement; 
    4030 for(var i=0;i<_43e.length;i++){ 
    4031 _43d=_43f(_43e[i]); 
    4032 if(_43d){ 
    4033 _43d.style.display=_43c
     4000if(typeof (_437)=="undefined"){ 
     4001_437="px"; 
     4002} 
     4003var _438={}; 
     4004var _439=MochiKit.Base.isUndefinedOrNull; 
     4005if(!_439(_436.w)){ 
     4006_438["width"]=_436.w+_437
     4007} 
     4008if(!_439(_436.h)){ 
     4009_438["height"]=_436.h+_437
     4010} 
     4011MochiKit.DOM.updateNodeAttributes(elem,{"style":_438}); 
     4012},setDisplayForElement:function(_43a,_43b){ 
     4013var _43c=MochiKit.Base.extend(null,arguments,1); 
     4014var _43d=MochiKit.DOM.getElement; 
     4015for(var i=0;i<_43c.length;i++){ 
     4016_43b=_43d(_43c[i]); 
     4017if(_43b){ 
     4018_43b.style.display=_43a
    40344019} 
    40354020} 
     
    40884073return this.__repr__(); 
    40894074}; 
    4090 MochiKit.LoggingPane.createLoggingPane=function(_449){ 
     4075MochiKit.LoggingPane.createLoggingPane=function(_447){ 
    40914076var m=MochiKit.LoggingPane; 
    4092 _449=!(!_449); 
    4093 if(m._loggingPane&&m._loggingPane.inline!=_449){ 
     4077_447=!(!_447); 
     4078if(m._loggingPane&&m._loggingPane.inline!=_447){ 
    40944079m._loggingPane.closePane(); 
    40954080m._loggingPane=null; 
    40964081} 
    40974082if(!m._loggingPane||m._loggingPane.closed){ 
    4098 m._loggingPane=new m.LoggingPane(_449,MochiKit.Logging.logger); 
     4083m._loggingPane=new m.LoggingPane(_447,MochiKit.Logging.logger); 
    40994084} 
    41004085return m._loggingPane; 
    41014086}; 
    4102 MochiKit.LoggingPane.LoggingPane=function(_44b,_44c){ 
    4103 if(typeof (_44c)=="undefined"||_44c===null){ 
    4104 _44c=MochiKit.Logging.logger; 
    4105 } 
    4106 this.logger=_44c
    4107 var _44d=MochiKit.Base.update; 
    4108 var _44e=MochiKit.Base.updatetree; 
     4087MochiKit.LoggingPane.LoggingPane=function(_449,_44a){ 
     4088if(typeof (_44a)=="undefined"||_44a===null){ 
     4089_44a=MochiKit.Logging.logger; 
     4090} 
     4091this.logger=_44a
     4092var _44b=MochiKit.Base.update; 
     4093var _44c=MochiKit.Base.updatetree; 
    41094094var bind=MochiKit.Base.bind; 
    4110 var _450=MochiKit.Base.clone; 
     4095var _44e=MochiKit.Base.clone; 
    41114096var win=window; 
    41124097var uid="_MochiKit_LoggingPane"; 
     
    41144099win=MochiKit.DOM.currentWindow(); 
    41154100} 
    4116 if(!_44b){ 
     4101if(!_449){ 
    41174102var url=win.location.href.split("?")[0].replace(/[#:\/.><&-]/g,"_"); 
    41184103var name=uid+"_"+url; 
     
    41294114var doc=win.document; 
    41304115this.doc=doc; 
    4131 var _457=doc.getElementById(uid); 
    4132 var _458=!!_457; 
    4133 if(_457&&typeof (_457.loggingPane)!="undefined"){ 
    4134 _457.loggingPane.logger=this.logger; 
    4135 _457.loggingPane.buildAndApplyFilter(); 
    4136 return _457.loggingPane; 
    4137 
    4138 if(_458){ 
    4139 var _459; 
    4140 while((_459=_457.firstChild)){ 
    4141 _457.removeChild(_459); 
    4142 
    4143 }else{ 
    4144 _457=doc.createElement("div"); 
    4145 _457.id=uid; 
    4146 
    4147 _457.loggingPane=this; 
    4148 var _45a=doc.createElement("input"); 
    4149 var _45b=doc.createElement("input"); 
     4116var _455=doc.getElementById(uid); 
     4117var _456=!!_455; 
     4118if(_455&&typeof (_455.loggingPane)!="undefined"){ 
     4119_455.loggingPane.logger=this.logger; 
     4120_455.loggingPane.buildAndApplyFilter(); 
     4121return _455.loggingPane; 
     4122
     4123if(_456){ 
     4124var _457; 
     4125while((_457=_455.firstChild)){ 
     4126_455.removeChild(_457); 
     4127
     4128}else{ 
     4129_455=doc.createElement("div"); 
     4130_455.id=uid; 
     4131
     4132_455.loggingPane=this; 
     4133var _458=doc.createElement("input"); 
     4134var _459=doc.createElement("input"); 
     4135var _45a=doc.createElement("button"); 
     4136var _45b=doc.createElement("button"); 
    41504137var _45c=doc.createElement("button"); 
    41514138var _45d=doc.createElement("button"); 
    4152 var _45e=doc.createElement("button"); 
    4153 var _45f=doc.createElement("button"); 
    4154 var _460=doc.createElement("div"); 
    4155 var _461=doc.createElement("div"); 
    4156 var _462=uid+"_Listener"; 
    4157 this.colorTable=_450(this.colorTable); 
    4158 var _463=[]; 
    4159 var _464=null; 
    4160 var _465=function(msg){ 
    4161 var _467=msg.level; 
    4162 if(typeof (_467)=="number"){ 
    4163 _467=MochiKit.Logging.LogLevel[_467]; 
    4164 
    4165 return _467; 
    4166 }; 
    4167 var _468=function(msg){ 
     4139var _45e=doc.createElement("div"); 
     4140var _45f=doc.createElement("div"); 
     4141var _460=uid+"_Listener"; 
     4142this.colorTable=_44e(this.colorTable); 
     4143var _461=[]; 
     4144var _462=null; 
     4145var _463=function(msg){ 
     4146var _465=msg.level; 
     4147if(typeof (_465)=="number"){ 
     4148_465=MochiKit.Logging.LogLevel[_465]; 
     4149
     4150return _465; 
     4151}; 
     4152var _466=function(msg){ 
    41684153return msg.info.join(" "); 
    41694154}; 
    4170 var _46a=bind(function(msg){ 
    4171 var _46c=_465(msg); 
    4172 var text=_468(msg); 
    4173 var c=this.colorTable[_46c]; 
     4155var _468=bind(function(msg){ 
     4156var _46a=_463(msg); 
     4157var text=_466(msg); 
     4158var c=this.colorTable[_46a]; 
    41744159var p=doc.createElement("span");