Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: static/js/mochikit/MochiKit.js

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

Powered by Google App Engine
This is Rietveld 408576698