LXR Roots - seamonkey Cross Reference: seamonkey
seamonkey/ dom/ tests/ mochitest/ ajax/ lib/ MochiKit_packed.js
CVS Log
CVS Blame
CVS Graph
Raw output
changes to
this file in
the last:
day
week
month
  1 /***
  2 
  3     MochiKit.MochiKit 1.4 : 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     (c) 2005 Bob Ippolito.  All rights Reserved.
 11 
 12 ***/
 13 
 14 if(typeof (dojo)!="undefined"){
 15 dojo.provide("MochiKit.Base");
 16 }
 17 if(typeof (MochiKit)=="undefined"){
 18 MochiKit={};
 19 }
 20 if(typeof (MochiKit.Base)=="undefined"){
 21 MochiKit.Base={};
 22 }
 23 if(typeof (MochiKit.__export__)=="undefined"){
 24 MochiKit.__export__=(MochiKit.__compat__||(typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined"));
 25 }
 26 MochiKit.Base.VERSION="1.4";
 27 MochiKit.Base.NAME="MochiKit.Base";
 28 MochiKit.Base.update=function(_1,_2){
 29 if(_1===null){
 30 _1={};
 31 }
 32 for(var i=1;i<arguments.length;i++){
 33 var o=arguments[i];
 34 if(typeof (o)!="undefined"&&o!==null){
 35 for(var k in o){
 36 _1[k]=o[k];
 37 }
 38 }
 39 }
 40 return _1;
 41 };
 42 MochiKit.Base.update(MochiKit.Base,{__repr__:function(){
 43 return "["+this.NAME+" "+this.VERSION+"]";
 44 },toString:function(){
 45 return this.__repr__();
 46 },camelize:function(_6){
 47 var _7=_6.split("-");
 48 var cc=_7[0];
 49 for(var i=1;i<_7.length;i++){
 50 cc+=_7[i].charAt(0).toUpperCase()+_7[i].substring(1);
 51 }
 52 return cc;
 53 },counter:function(n){
 54 if(arguments.length===0){
 55 n=1;
 56 }
 57 return function(){
 58 return n++;
 59 };
 60 },clone:function(obj){
 61 var me=arguments.callee;
 62 if(arguments.length==1){
 63 me.prototype=obj;
 64 return new me();
 65 }
 66 },_flattenArray:function(res,lst){
 67 for(var i=0;i<lst.length;i++){
 68 var o=lst[i];
 69 if(o instanceof Array){
 70 arguments.callee(res,o);
 71 }else{
 72 res.push(o);
 73 }
 74 }
 75 return res;
 76 },flattenArray:function(lst){
 77 return MochiKit.Base._flattenArray([],lst);
 78 },flattenArguments:function(lst){
 79 var res=[];
 80 var m=MochiKit.Base;
 81 var _15=m.extend(null,arguments);
 82 while(_15.length){
 83 var o=_15.shift();
 84 if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){
 85 for(var i=o.length-1;i>=0;i--){
 86 _15.unshift(o[i]);
 87 }
 88 }else{
 89 res.push(o);
 90 }
 91 }
 92 return res;
 93 },extend:function(_16,obj,_17){
 94 if(!_17){
 95 _17=0;
 96 }
 97 if(obj){
 98 var l=obj.length;
 99 if(typeof (l)!="number"){
100 if(typeof (MochiKit.Iter)!="undefined"){
101 obj=MochiKit.Iter.list(obj);
102 l=obj.length;
103 }else{
104 throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
105 }
106 }
107 if(!_16){
108 _16=[];
109 }
110 for(var i=_17;i<l;i++){
111 _16.push(obj[i]);
112 }
113 }
114 return _16;
115 },updatetree:function(_19,obj){
116 if(_19===null){
117 _19={};
118 }
119 for(var i=1;i<arguments.length;i++){
120 var o=arguments[i];
121 if(typeof (o)!="undefined"&&o!==null){
122 for(var k in o){
123 var v=o[k];
124 if(typeof (_19[k])=="object"&&typeof (v)=="object"){
125 arguments.callee(_19[k],v);
126 }else{
127 _19[k]=v;
128 }
129 }
130 }
131 }
132 return _19;
133 },setdefault:function(_21,obj){
134 if(_21===null){
135 _21={};
136 }
137 for(var i=1;i<arguments.length;i++){
138 var o=arguments[i];
139 for(var k in o){
140 if(!(k in _21)){
141 _21[k]=o[k];
142 }
143 }
144 }
145 return _21;
146 },keys:function(obj){
147 var _22=[];
148 for(var _23 in obj){
149 _22.push(_23);
150 }
151 return _22;
152 },values:function(obj){
153 var _24=[];
154 for(var _25 in obj){
155 _24.push(obj[_25]);
156 }
157 return _24;
158 },items:function(obj){
159 var _26=[];
160 var e;
161 for(var _28 in obj){
162 var v;
163 try{
164 v=obj[_28];
165 }
166 catch(e){
167 continue;
168 }
169 _26.push([_28,v]);
170 }
171 return _26;
172 },_newNamedError:function(_29,_30,_31){
173 _31.prototype=new MochiKit.Base.NamedError(_29.NAME+"."+_30);
174 _29[_30]=_31;
175 },operator:{truth:function(a){
176 return !!a;
177 },lognot:function(a){
178 return !a;
179 },identity:function(a){
180 return a;
181 },not:function(a){
182 return ~a;
183 },neg:function(a){
184 return -a;
185 },add:function(a,b){
186 return a+b;
187 },sub:function(a,b){
188 return a-b;
189 },div:function(a,b){
190 return a/b;
191 },mod:function(a,b){
192 return a%b;
193 },mul:function(a,b){
194 return a*b;
195 },and:function(a,b){
196 return a&b;
197 },or:function(a,b){
198 return a|b;
199 },xor:function(a,b){
200 return a^b;
201 },lshift:function(a,b){
202 return a<<b;
203 },rshift:function(a,b){
204 return a>>b;
205 },zrshift:function(a,b){
206 return a>>>b;
207 },eq:function(a,b){
208 return a==b;
209 },ne:function(a,b){
210 return a!=b;
211 },gt:function(a,b){
212 return a>b;
213 },ge:function(a,b){
214 return a>=b;
215 },lt:function(a,b){
216 return a<b;
217 },le:function(a,b){
218 return a<=b;
219 },seq:function(a,b){
220 return a===b;
221 },sne:function(a,b){
222 return a!==b;
223 },ceq:function(a,b){
224 return MochiKit.Base.compare(a,b)===0;
225 },cne:function(a,b){
226 return MochiKit.Base.compare(a,b)!==0;
227 },cgt:function(a,b){
228 return MochiKit.Base.compare(a,b)==1;
229 },cge:function(a,b){
230 return MochiKit.Base.compare(a,b)!=-1;
231 },clt:function(a,b){
232 return MochiKit.Base.compare(a,b)==-1;
233 },cle:function(a,b){
234 return MochiKit.Base.compare(a,b)!=1;
235 },logand:function(a,b){
236 return a&&b;
237 },logor:function(a,b){
238 return a||b;
239 },contains:function(a,b){
240 return b in a;
241 }},forwardCall:function(_34){
242 return function(){
243 return this[_34].apply(this,arguments);
244 };
245 },itemgetter:function(_35){
246 return function(arg){
247 return arg[_35];
248 };
249 },typeMatcher:function(){
250 var _37={};
251 for(var i=0;i<arguments.length;i++){
252 var typ=arguments[i];
253 _37[typ]=typ;
254 }
255 return function(){
256 for(var i=0;i<arguments.length;i++){
257 if(!(typeof (arguments[i]) in _37)){
258 return false;
259 }
260 }
261 return true;
262 };
263 },isNull:function(){
264 for(var i=0;i<arguments.length;i++){
265 if(arguments[i]!==null){
266 return false;
267 }
268 }
269 return true;
270 },isUndefinedOrNull:function(){
271 for(var i=0;i<arguments.length;i++){
272 var o=arguments[i];
273 if(!(typeof (o)=="undefined"||o===null)){
274 return false;
275 }
276 }
277 return true;
278 },isEmpty:function(obj){
279 return !MochiKit.Base.isNotEmpty.apply(this,arguments);
280 },isNotEmpty:function(obj){
281 for(var i=0;i<arguments.length;i++){
282 var o=arguments[i];
283 if(!(o&&o.length)){
284 return false;
285 }
286 }
287 return true;
288 },isArrayLike:function(){
289 for(var i=0;i<arguments.length;i++){
290 var o=arguments[i];
291 var typ=typeof (o);
292 if((typ!="object"&&!(typ=="function"&&typeof (o.item)=="function"))||o===null||typeof (o.length)!="number"||o.nodeType===3){
293 return false;
294 }
295 }
296 return true;
297 },isDateLike:function(){
298 for(var i=0;i<arguments.length;i++){
299 var o=arguments[i];
300 if(typeof (o)!="object"||o===null||typeof (o.getTime)!="function"){
301 return false;
302 }
303 }
304 return true;
305 },xmap:function(fn){
306 if(fn===null){
307 return MochiKit.Base.extend(null,arguments,1);
308 }
309 var _40=[];
310 for(var i=1;i<arguments.length;i++){
311 _40.push(fn(arguments[i]));
312 }
313 return _40;
314 },map:function(fn,lst){
315 var m=MochiKit.Base;
316 var itr=MochiKit.Iter;
317 var _42=m.isArrayLike;
318 if(arguments.length<=2){
319 if(!_42(lst)){
320 if(itr){
321 lst=itr.list(lst);
322 if(fn===null){
323 return lst;
324 }
325 }else{
326 throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
327 }
328 }
329 if(fn===null){
330 return m.extend(null,lst);
331 }
332 var _43=[];
333 for(var i=0;i<lst.length;i++){
334 _43.push(fn(lst[i]));
335 }
336 return _43;
337 }else{
338 if(fn===null){
339 fn=Array;
340 }
341 var _44=null;
342 for(i=1;i<arguments.length;i++){
343 if(!_42(arguments[i])){
344 if(itr){
345 return itr.list(itr.imap.apply(null,arguments));
346 }else{
347 throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
348 }
349 }
350 var l=arguments[i].length;
351 if(_44===null||_44>l){
352 _44=l;
353 }
354 }
355 _43=[];
356 for(i=0;i<_44;i++){
357 var _45=[];
358 for(var j=1;j<arguments.length;j++){
359 _45.push(arguments[j][i]);
360 }
361 _43.push(fn.apply(this,_45));
362 }
363 return _43;
364 }
365 },xfilter:function(fn){
366 var _47=[];
367 if(fn===null){
368 fn=MochiKit.Base.operator.truth;
369 }
370 for(var i=1;i<arguments.length;i++){
371 var o=arguments[i];
372 if(fn(o)){
373 _47.push(o);
374 }
375 }
376 return _47;
377 },filter:function(fn,lst,_48){
378 var _49=[];
379 var m=MochiKit.Base;
380 if(!m.isArrayLike(lst)){
381 if(MochiKit.Iter){
382 lst=MochiKit.Iter.list(lst);
383 }else{
384 throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
385 }
386 }
387 if(fn===null){
388 fn=m.operator.truth;
389 }
390 if(typeof (Array.prototype.filter)=="function"){
391 return Array.prototype.filter.call(lst,fn,_48);
392 }else{
393 if(typeof (_48)=="undefined"||_48===null){
394 for(var i=0;i<lst.length;i++){
395 var o=lst[i];
396 if(fn(o)){
397 _49.push(o);
398 }
399 }
400 }else{
401 for(i=0;i<lst.length;i++){
402 o=lst[i];
403 if(fn.call(_48,o)){
404 _49.push(o);
405 }
406 }
407 }
408 }
409 return _49;
410 },_wrapDumbFunction:function(_50){
411 return function(){
412 switch(arguments.length){
413 case 0:
414 return _50();
415 case 1:
416 return _50(arguments[0]);
417 case 2:
418 return _50(arguments[0],arguments[1]);
419 case 3:
420 return _50(arguments[0],arguments[1],arguments[2]);
421 }
422 var _51=[];
423 for(var i=0;i<arguments.length;i++){
424 _51.push("arguments["+i+"]");
425 }
426 return eval("(func("+_51.join(",")+"))");
427 };
428 },methodcaller:function(_52){
429 var _53=MochiKit.Base.extend(null,arguments,1);
430 if(typeof (_52)=="function"){
431 return function(obj){
432 return _52.apply(obj,_53);
433 };
434 }else{
435 return function(obj){
436 return obj[_52].apply(obj,_53);
437 };
438 }
439 },method:function(_54,_55){
440 var m=MochiKit.Base;
441 return m.bind.apply(this,m.extend([_55,_54],arguments,2));
442 },compose:function(f1,f2){
443 var _58=[];
444 var m=MochiKit.Base;
445 if(arguments.length===0){
446 throw new TypeError("compose() requires at least one argument");
447 }
448 for(var i=0;i<arguments.length;i++){
449 var fn=arguments[i];
450 if(typeof (fn)!="function"){
451 throw new TypeError(m.repr(fn)+" is not a function");
452 }
453 _58.push(fn);
454 }
455 return function(){
456 var _59=arguments;
457 for(var i=_58.length-1;i>=0;i--){
458 _59=[_58[i].apply(this,_59)];
459 }
460 return _59[0];
461 };
462 },bind:function(_60,_61){
463 if(typeof (_60)=="string"){
464 _60=_61[_60];
465 }
466 var _62=_60.im_func;
467 var _63=_60.im_preargs;
468 var _64=_60.im_self;
469 var m=MochiKit.Base;
470 if(typeof (_60)=="function"&&typeof (_60.apply)=="undefined"){
471 _60=m._wrapDumbFunction(_60);
472 }
473 if(typeof (_62)!="function"){
474 _62=_60;
475 }
476 if(typeof (_61)!="undefined"){
477 _64=_61;
478 }
479 if(typeof (_63)=="undefined"){
480 _63=[];
481 }else{
482 _63=_63.slice();
483 }
484 m.extend(_63,arguments,2);
485 var _65=function(){
486 var _66=arguments;
487 var me=arguments.callee;
488 if(me.im_preargs.length>0){
489 _66=m.concat(me.im_preargs,_66);
490 }
491 var _61=me.im_self;
492 if(!_61){
493 _61=this;
494 }
495 return me.im_func.apply(_61,_66);
496 };
497 _65.im_self=_64;
498 _65.im_func=_62;
499 _65.im_preargs=_63;
500 return _65;
501 },bindMethods:function(_67){
502 var _68=MochiKit.Base.bind;
503 for(var k in _67){
504 var _69=_67[k];
505 if(typeof (_69)=="function"){
506 _67[k]=_68(_69,_67);
507 }
508 }
509 },registerComparator:function(_70,_71,_72,_73){
510 MochiKit.Base.comparatorRegistry.register(_70,_71,_72,_73);
511 },_primitives:{"boolean":true,"string":true,"number":true},compare:function(a,b){
512 if(a==b){
513 return 0;
514 }
515 var _74=(typeof (a)=="undefined"||a===null);
516 var _75=(typeof (b)=="undefined"||b===null);
517 if(_74&&_75){
518 return 0;
519 }else{
520 if(_74){
521 return -1;
522 }else{
523 if(_75){
524 return 1;
525 }
526 }
527 }
528 var m=MochiKit.Base;
529 var _76=m._primitives;
530 if(!(typeof (a) in _76&&typeof (b) in _76)){
531 try{
532 return m.comparatorRegistry.match(a,b);
533 }
534 catch(e){
535 if(e!=m.NotFound){
536 throw e;
537 }
538 }
539 }
540 if(a<b){
541 return -1;
542 }else{
543 if(a>b){
544 return 1;
545 }
546 }
547 var _77=m.repr;
548 throw new TypeError(_77(a)+" and "+_77(b)+" can not be compared");
549 },compareDateLike:function(a,b){
550 return MochiKit.Base.compare(a.getTime(),b.getTime());
551 },compareArrayLike:function(a,b){
552 var _78=MochiKit.Base.compare;
553 var _79=a.length;
554 var _80=0;
555 if(_79>b.length){
556 _80=1;
557 _79=b.length;
558 }else{
559 if(_79<b.length){
560 _80=-1;
561 }
562 }
563 for(var i=0;i<_79;i++){
564 var cmp=_78(a[i],b[i]);
565 if(cmp){
566 return cmp;
567 }
568 }
569 return _80;
570 },registerRepr:function(_82,_83,_84,_85){
571 MochiKit.Base.reprRegistry.register(_82,_83,_84,_85);
572 },repr:function(o){
573 if(typeof (o)=="undefined"){
574 return "undefined";
575 }else{
576 if(o===null){
577 return "null";
578 }
579 }
580 try{
581 if(typeof (o.__repr__)=="function"){
582 return o.__repr__();
583 }else{
584 if(typeof (o.repr)=="function"&&o.repr!=arguments.callee){
585 return o.repr();
586 }
587 }
588 return MochiKit.Base.reprRegistry.match(o);
589 }
590 catch(e){
591 if(typeof (o.NAME)=="string"&&(o.toString==Function.prototype.toString||o.toString==Object.prototype.toString)){
592 return o.NAME;
593 }
594 }
595 try{
596 var _86=(o+"");
597 }
598 catch(e){
599 return "["+typeof (o)+"]";
600 }
601 if(typeof (o)=="function"){
602 o=_86.replace(/^\s+/,"");
603 var idx=o.indexOf("{");
604 if(idx!=-1){
605 o=o.substr(0,idx)+"{...}";
606 }
607 }
608 return _86;
609 },reprArrayLike:function(o){
610 var m=MochiKit.Base;
611 return "["+m.map(m.repr,o).join(", ")+"]";
612 },reprString:function(o){
613 return ("\""+o.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");
614 },reprNumber:function(o){
615 return o+"";
616 },registerJSON:function(_88,_89,_90,_91){
617 MochiKit.Base.jsonRegistry.register(_88,_89,_90,_91);
618 },evalJSON:function(){
619 return eval("("+arguments[0]+")");
620 },serializeJSON:function(o){
621 var _92=typeof (o);
622 if(_92=="number"||_92=="boolean"){
623 return o+"";
624 }else{
625 if(o===null){
626 return "null";
627 }
628 }
629 var m=MochiKit.Base;
630 var _93=m.reprString;
631 if(_92=="string"){
632 return _93(o);
633 }
634 var me=arguments.callee;
635 var _94;
636 if(typeof (o.__json__)=="function"){
637 _94=o.__json__();
638 if(o!==_94){
639 return me(_94);
640 }
641 }
642 if(typeof (o.json)=="function"){
643 _94=o.json();
644 if(o!==_94){
645 return me(_94);
646 }
647 }
648 if(_92!="function"&&typeof (o.length)=="number"){
649 var res=[];
650 for(var i=0;i<o.length;i++){
651 var val=me(o[i]);
652 if(typeof (val)!="string"){
653 val="undefined";
654 }
655 res.push(val);
656 }
657 return "["+res.join(", ")+"]";
658 }
659 try{
660 _94=m.jsonRegistry.match(o);
661 if(o!==_94){
662 return me(_94);
663 }
664 }
665 catch(e){
666 if(e!=m.NotFound){
667 throw e;
668 }
669 }
670 if(_92=="undefined"){
671 throw new TypeError("undefined can not be serialized as JSON");
672 }
673 if(_92=="function"){
674 return null;
675 }
676 res=[];
677 for(var k in o){
678 var _96;
679 if(typeof (k)=="number"){
680 _96="\""+k+"\"";
681 }else{
682 if(typeof (k)=="string"){
683 _96=_93(k);
684 }else{
685 continue;
686 }
687 }
688 val=me(o[k]);
689 if(typeof (val)!="string"){
690 continue;
691 }
692 res.push(_96+":"+val);
693 }
694 return "{"+res.join(", ")+"}";
695 },objEqual:function(a,b){
696 return (MochiKit.Base.compare(a,b)===0);
697 },arrayEqual:function(_97,arr){
698 if(_97.length!=arr.length){
699 return false;
700 }
701 return (MochiKit.Base.compare(_97,arr)===0);
702 },concat:function(){
703 var _99=[];
704 var _100=MochiKit.Base.extend;
705 for(var i=0;i<arguments.length;i++){
706 _100(_99,arguments[i]);
707 }
708 return _99;
709 },keyComparator:function(key){
710 var m=MochiKit.Base;
711 var _102=m.compare;
712 if(arguments.length==1){
713 return function(a,b){
714 return _102(a[key],b[key]);
715 };
716 }
717 var _103=m.extend(null,arguments);
718 return function(a,b){
719 var rval=0;
720 for(var i=0;(rval===0)&&(i<_103.length);i++){
721 var key=_103[i];
722 rval=_102(a[key],b[key]);
723 }
724 return rval;
725 };
726 },reverseKeyComparator:function(key){
727 var _105=MochiKit.Base.keyComparator.apply(this,arguments);
728 return function(a,b){
729 return _105(b,a);
730 };
731 },partial:function(func){
732 var m=MochiKit.Base;
733 return m.bind.apply(this,m.extend([func,undefined],arguments,1));
734 },listMinMax:function(_107,lst){
735 if(lst.length===0){
736 return null;
737 }
738 var cur=lst[0];
739 var _109=MochiKit.Base.compare;
740 for(var i=1;i<lst.length;i++){
741 var o=lst[i];
742 if(_109(o,cur)==_107){
743 cur=o;
744 }
745 }
746 return cur;
747 },objMax:function(){
748 return MochiKit.Base.listMinMax(1,arguments);
749 },objMin:function(){
750 return MochiKit.Base.listMinMax(-1,arguments);
751 },findIdentical:function(lst,_110,_111,end){
752 if(typeof (end)=="undefined"||end===null){
753 end=lst.length;
754 }
755 if(typeof (_111)=="undefined"||_111===null){
756 _111=0;
757 }
758 for(var i=_111;i<end;i++){
759 if(lst[i]===_110){
760 return i;
761 }
762 }
763 return -1;
764 },mean:function(){
765 var sum=0;
766 var m=MochiKit.Base;
767 var args=m.extend(null,arguments);
768 var _115=args.length;
769 while(args.length){
770 var o=args.shift();
771 if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){
772 _115+=o.length-1;
773 for(var i=o.length-1;i>=0;i--){
774 sum+=o[i];
775 }
776 }else{
777 sum+=o;
778 }
779 }
780 if(_115<=0){
781 throw new TypeError("mean() requires at least one argument");
782 }
783 return sum/_115;
784 },median:function(){
785 var data=MochiKit.Base.flattenArguments(arguments);
786 if(data.length===0){
787 throw new TypeError("median() requires at least one argument");
788 }
789 data.sort(compare);
790 if(data.length%2==0){
791 var _117=data.length/2;
792 return (data[_117]+data[_117-1])/2;
793 }else{
794 return data[(data.length-1)/2];
795 }
796 },findValue:function(lst,_118,_119,end){
797 if(typeof (end)=="undefined"||end===null){
798 end=lst.length;
799 }
800 if(typeof (_119)=="undefined"||_119===null){
801 _119=0;
802 }
803 var cmp=MochiKit.Base.compare;
804 for(var i=_119;i<end;i++){
805 if(cmp(lst[i],_118)===0){
806 return i;
807 }
808 }
809 return -1;
810 },nodeWalk:function(node,_121){
811 var _122=[node];
812 var _123=MochiKit.Base.extend;
813 while(_122.length){
814 var res=_121(_122.shift());
815 if(res){
816 _123(_122,res);
817 }
818 }
819 },nameFunctions:function(_124){
820 var base=_124.NAME;
821 if(typeof (base)=="undefined"){
822 base="";
823 }else{
824 base=base+".";
825 }
826 for(var name in _124){
827 var o=_124[name];
828 if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){
829 try{
830 o.NAME=base+name;
831 }
832 catch(e){
833 }
834 }
835 }
836 },queryString:function(_127,_128){
837 if(typeof (MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof (_127)=="string"||(typeof (_127.nodeType)!="undefined"&&_127.nodeType>0))){
838 var kv=MochiKit.DOM.formContents(_127);
839 _127=kv[0];
840 _128=kv[1];
841 }else{
842 if(arguments.length==1){
843 var o=_127;
844 _127=[];
845 _128=[];
846 for(var k in o){
847 var v=o[k];
848 if(typeof (v)=="function"){
849 continue;
850 }else{
851 if(typeof (v)!="string"&&typeof (v.length)=="number"){
852 for(var i=0;i<v.length;i++){
853 _127.push(k);
854 _128.push(v[i]);
855 }
856 }else{
857 _127.push(k);
858 _128.push(v);
859 }
860 }
861 }
862 }
863 }
864 var rval=[];
865 var len=Math.min(_127.length,_128.length);
866 var _131=MochiKit.Base.urlEncode;
867 for(var i=0;i<len;i++){
868 v=_128[i];
869 if(typeof (v)!="undefined"&&v!==null){
870 rval.push(_131(_127[i])+"="+_131(v));
871 }
872 }
873 return rval.join("&");
874 },parseQueryString:function(_132,_133){
875 var qstr=(_132[0]=="?")?_132.substring(1):_132;
876 var _135=qstr.replace(/\+/g,"%20").split(/(\&amp\;|\&\#38\;|\&#x26;|\&)/);
877 var o={};
878 var _136;
879 if(typeof (decodeURIComponent)!="undefined"){
880 _136=decodeURIComponent;
881 }else{
882 _136=unescape;
883 }
884 if(_133){
885 for(var i=0;i<_135.length;i++){
886 var pair=_135[i].split("=");
887 if(pair.length!==2){
888 continue;
889 }
890 var name=_136(pair[0]);
891 var arr=o[name];
892 if(!(arr instanceof Array)){
893 arr=[];
894 o[name]=arr;
895 }
896 arr.push(_136(pair[1]));
897 }
898 }else{
899 for(i=0;i<_135.length;i++){
900 pair=_135[i].split("=");
901 if(pair.length!==2){
902 continue;
903 }
904 o[_136(pair[0])]=_136(pair[1]);
905 }
906 }
907 return o;
908 }});
909 MochiKit.Base.AdapterRegistry=function(){
910 this.pairs=[];
911 };
912 MochiKit.Base.AdapterRegistry.prototype={register:function(name,_138,wrap,_140){
913 if(_140){
914 this.pairs.unshift([name,_138,wrap]);
915 }else{
916 this.pairs.push([name,_138,wrap]);
917 }
918 },match:function(){
919 for(var i=0;i<this.pairs.length;i++){
920 var pair=this.pairs[i];
921 if(pair[1].apply(this,arguments)){
922 return pair[2].apply(this,arguments);
923 }
924 }
925 throw MochiKit.Base.NotFound;
926 },unregister:function(name){
927 for(var i=0;i<this.pairs.length;i++){
928 var pair=this.pairs[i];
929 if(pair[0]==name){
930 this.pairs.splice(i,1);
931 return true;
932 }
933 }
934 return false;
935 }};
936 MochiKit.Base.EXPORT=["flattenArray","noop","camelize","counter","clone","extend","update","updatetree","setdefault","keys","values","items","NamedError","operator","forwardCall","itemgetter","typeMatcher","isCallable","isUndefined","isUndefinedOrNull","isNull","isEmpty","isNotEmpty","isArrayLike","isDateLike","xmap","map","xfilter","filter","methodcaller","compose","bind","bindMethods","NotFound","AdapterRegistry","registerComparator","compare","registerRepr","repr","objEqual","arrayEqual","concat","keyComparator","reverseKeyComparator","partial","merge","listMinMax","listMax","listMin","objMax","objMin","nodeWalk","zip","urlEncode","queryString","serializeJSON","registerJSON","evalJSON","parseQueryString","findValue","findIdentical","flattenArguments","method","average","mean","median"];
937 MochiKit.Base.EXPORT_OK=["nameFunctions","comparatorRegistry","reprRegistry","jsonRegistry","compareDateLike","compareArrayLike","reprArrayLike","reprString","reprNumber"];
938 MochiKit.Base._exportSymbols=function(_141,_142){
939 if(!MochiKit.__export__){
940 return;
941 }
942 var all=_142.EXPORT_TAGS[":all"];
943 for(var i=0;i<all.length;i++){
944 _141[all[i]]=_142[all[i]];
945 }
946 };
947 MochiKit.Base.__new__=function(){
948 var m=this;
949 m.noop=m.operator.identity;
950 m.forward=m.forwardCall;
951 m.find=m.findValue;
952 if(typeof (encodeURIComponent)!="undefined"){
953 m.urlEncode=function(_144){
954 return encodeURIComponent(_144).replace(/\'/g,"%27");
955 };
956 }else{
957 m.urlEncode=function(_145){
958 return escape(_145).replace(/\+/g,"%2B").replace(/\"/g,"%22").rval.replace(/\'/g,"%27");
959 };
960 }
961 m.NamedError=function(name){
962 this.message=name;
963 this.name=name;
964 };
965 m.NamedError.prototype=new Error();
966 m.update(m.NamedError.prototype,{repr:function(){
967 if(this.message&&this.message!=this.name){
968 return this.name+"("+m.repr(this.message)+")";
969 }else{
970 return this.name+"()";
971 }
972 },toString:m.forwardCall("repr")});
973 m.NotFound=new m.NamedError("MochiKit.Base.NotFound");
974 m.listMax=m.partial(m.listMinMax,1);
975 m.listMin=m.partial(m.listMinMax,-1);
976 m.isCallable=m.typeMatcher("function");
977 m.isUndefined=m.typeMatcher("undefined");
978 m.merge=m.partial(m.update,null);
979 m.zip=m.partial(m.map,null);
980 m.average=m.mean;
981 m.comparatorRegistry=new m.AdapterRegistry();
982 m.registerComparator("dateLike",m.isDateLike,m.compareDateLike);
983 m.registerComparator("arrayLike",m.isArrayLike,m.compareArrayLike);
984 m.reprRegistry=new m.AdapterRegistry();
985 m.registerRepr("arrayLike",m.isArrayLike,m.reprArrayLike);
986 m.registerRepr("string",m.typeMatcher("string"),m.reprString);
987 m.registerRepr("numbers",m.typeMatcher("number","boolean"),m.reprNumber);
988 m.jsonRegistry=new m.AdapterRegistry();
989 var all=m.concat(m.EXPORT,m.EXPORT_OK);
990 m.EXPORT_TAGS={":common":m.concat(m.EXPORT_OK),":all":all};
991 m.nameFunctions(this);
992 };
993 MochiKit.Base.__new__();
994 if(MochiKit.__export__){
995 compare=MochiKit.Base.compare;
996 compose=MochiKit.Base.compose;
997 serializeJSON=MochiKit.Base.serializeJSON;
998 }
999 MochiKit.Base._exportSymbols(this,MochiKit.Base);
1000 if(typeof (dojo)!="undefined"){
1001 dojo.provide("MochiKit.Iter");
1002 dojo.require("MochiKit.Base");
1003 }
1004 if(typeof (JSAN)!="undefined"){
1005 JSAN.use("MochiKit.Base",[]);
1006 }
1007 try{
1008 if(typeof (MochiKit.Base)=="undefined"){
1009 throw "";
1010 }
1011 }
1012 catch(e){
1013 throw "MochiKit.Iter depends on MochiKit.Base!";
1014 }
1015 if(typeof (MochiKit.Iter)=="undefined"){
1016 MochiKit.Iter={};
1017 }
1018 MochiKit.Iter.NAME="MochiKit.Iter";
1019 MochiKit.Iter.VERSION="1.4";
1020 MochiKit.Base.update(MochiKit.Iter,{__repr__:function(){
1021 return "["+this.NAME+" "+this.VERSION+"]";
1022 },toString:function(){
1023 return this.__repr__();
1024 },registerIteratorFactory:function(name,_146,_147,_148){
1025 MochiKit.Iter.iteratorRegistry.register(name,_146,_147,_148);
1026 },iter:function(_149,_150){
1027 var self=MochiKit.Iter;
1028 if(arguments.length==2){
1029 return self.takewhile(function(a){
1030 return a!=_150;
1031 },_149);
1032 }
1033 if(typeof (_149.next)=="function"){
1034 return _149;
1035 }else{
1036 if(typeof (_149.iter)=="function"){
1037 return _149.iter();
1038 }
1039 }
1040 try{
1041 return self.iteratorRegistry.match(_149);
1042 }
1043 catch(e){
1044 var m=MochiKit.Base;
1045 if(e==m.NotFound){
1046 e=new TypeError(typeof (_149)+": "+m.repr(_149)+" is not iterable");
1047 }
1048 throw e;
1049 }
1050 },count:function(n){
1051 if(!n){
1052 n=0;
1053 }
1054 var m=MochiKit.Base;
1055 return {repr:function(){
1056 return "count("+n+")";
1057 },toString:m.forwardCall("repr"),next:m.counter(n)};
1058 },cycle:function(p){
1059 var self=MochiKit.Iter;
1060 var m=MochiKit.Base;
1061 var lst=[];
1062 var _153=self.iter(p);
1063 return {repr:function(){
1064 return "cycle(...)";
1065 },toString:m.forwardCall("repr"),next:function(){
1066 try{
1067 var rval=_153.next();
1068 lst.push(rval);
1069 return rval;
1070 }
1071 catch(e){
1072 if(e!=self.StopIteration){
1073 throw e;
1074 }
1075 if(lst.length===0){
1076 this.next=function(){
1077 throw self.StopIteration;
1078 };
1079 }else{
1080 var i=-1;
1081 this.next=function(){
1082 i=(i+1)%lst.length;
1083 return lst[i];
1084 };
1085 }
1086 return this.next();
1087 }
1088 }};
1089 },repeat:function(elem,n){
1090 var m=MochiKit.Base;
1091 if(typeof (n)=="undefined"){
1092 return {repr:function(){
1093 return "repeat("+m.repr(elem)+")";
1094 },toString:m.forwardCall("repr"),next:function(){
1095 return elem;
1096 }};
1097 }
1098 return {repr:function(){
1099 return "repeat("+m.repr(elem)+", "+n+")";
1100 },toString:m.forwardCall("repr"),next:function(){
1101 if(n<=0){
1102 throw MochiKit.Iter.StopIteration;
1103 }
1104 n-=1;
1105 return elem;
1106 }};
1107 },next:function(_155){
1108 return _155.next();
1109 },izip:function(p,q){
1110 var m=MochiKit.Base;
1111 var self=MochiKit.Iter;
1112 var next=self.next;
1113 var _158=m.map(self.iter,arguments);
1114 return {repr:function(){
1115 return "izip(...)";
1116 },toString:m.forwardCall("repr"),next:function(){
1117 return m.map(next,_158);
1118 }};
1119 },ifilter:function(pred,seq){
1120 var m=MochiKit.Base;
1121 seq=MochiKit.Iter.iter(seq);
1122 if(pred===null){
1123 pred=m.operator.truth;
1124 }
1125 return {repr:function(){
1126 return "ifilter(...)";
1127 },toString:m.forwardCall("repr"),next:function(){
1128 while(true){
1129 var rval=seq.next();
1130 if(pred(rval)){
1131 return rval;
1132 }
1133 }
1134 return undefined;
1135 }};
1136 },ifilterfalse:function(pred,seq){
1137 var m=MochiKit.Base;
1138 seq=MochiKit.Iter.iter(seq);
1139 if(pred===null){
1140 pred=m.operator.truth;
1141 }
1142 return {repr:function(){
1143 return "ifilterfalse(...)";
1144 },toString:m.forwardCall("repr"),next:function(){
1145 while(true){
1146 var rval=seq.next();
1147 if(!pred(rval)){
1148 return rval;
1149 }
1150 }
1151 return undefined;
1152 }};
1153 },islice:function(seq){
1154 var self=MochiKit.Iter;
1155 var m=MochiKit.Base;
1156 seq=self.iter(seq);
1157 var _161=0;
1158 var stop=0;
1159 var step=1;
1160 var i=-1;
1161 if(arguments.length==2){
1162 stop=arguments[1];
1163 }else{
1164 if(arguments.length==3){
1165 _161=arguments[1];
1166 stop=arguments[2];
1167 }else{
1168 _161=arguments[1];
1169 stop=arguments[2];
1170 step=arguments[3];
1171 }
1172 }
1173 return {repr:function(){
1174 return "islice("+["...",_161,stop,step].join(", ")+")";
1175 },toString:m.forwardCall("repr"),next:function(){
1176 var rval;
1177 while(i<_161){
1178 rval=seq.next();
1179 i++;
1180 }
1181 if(_161>=stop){
1182 throw self.StopIteration;
1183 }
1184 _161+=step;
1185 return rval;
1186 }};
1187 },imap:function(fun,p,q){
1188 var m=MochiKit.Base;
1189 var self=MochiKit.Iter;
1190 var _165=m.map(self.iter,m.extend(null,arguments,1));
1191 var map=m.map;
1192 var next=self.next;
1193 return {repr:function(){
1194 return "imap(...)";
1195 },toString:m.forwardCall("repr"),next:function(){
1196 return fun.apply(this,map(next,_165));
1197 }};
1198 },applymap:function(fun,seq,self){
1199 seq=MochiKit.Iter.iter(seq);
1200 var m=MochiKit.Base;
1201 return {repr:function(){
1202 return "applymap(...)";
1203 },toString:m.forwardCall("repr"),next:function(){
1204 return fun.apply(self,seq.next());
1205 }};
1206 },chain:function(p,q){
1207 var self=MochiKit.Iter;
1208 var m=MochiKit.Base;
1209 if(arguments.length==1){
1210 return self.iter(arguments[0]);
1211 }
1212 var _167=m.map(self.iter,arguments);
1213 return {repr:function(){
1214 return "chain(...)";
1215 },toString:m.forwardCall("repr"),next:function(){
1216 while(_167.length>1){
1217 try{
1218 return _167[0].next();
1219 }
1220 catch(e){
1221 if(e!=self.StopIteration){
1222 throw e;
1223 }
1224 _167.shift();
1225 }
1226 }
1227 if(_167.length==1){
1228 var arg=_167.shift();
1229 this.next=m.bind("next",arg);
1230 return this.next();
1231 }
1232 throw self.StopIteration;
1233 }};
1234 },takewhile:function(pred,seq){
1235 var self=MochiKit.Iter;
1236 seq=self.iter(seq);
1237 return {repr:function(){
1238 return "takewhile(...)";
1239 },toString:MochiKit.Base.forwardCall("repr"),next:function(){
1240 var rval=seq.next();
1241 if(!pred(rval)){
1242 this.next=function(){
1243 throw self.StopIteration;
1244 };
1245 this.next();
1246 }
1247 return rval;
1248 }};
1249 },dropwhile:function(pred,seq){
1250 seq=MochiKit.Iter.iter(seq);
1251 var m=MochiKit.Base;
1252 var bind=m.bind;
1253 return {"repr":function(){
1254 return "dropwhile(...)";
1255 },"toString":m.forwardCall("repr"),"next":function(){
1256 while(true){
1257 var rval=seq.next();
1258 if(!pred(rval)){
1259 break;
1260 }
1261 }
1262 this.next=bind("next",seq);
1263 return rval;
1264 }};
1265 },_tee:function(_169,sync,_171){
1266 sync.pos[_169]=-1;
1267 var m=MochiKit.Base;
1268 var _172=m.listMin;
1269 return {repr:function(){
1270 return "tee("+_169+", ...)";
1271 },toString:m.forwardCall("repr"),next:function(){
1272 var rval;
1273 var i=sync.pos[_169];
1274 if(i==sync.max){
1275 rval=_171.next();
1276 sync.deque.push(rval);
1277 sync.max+=1;
1278 sync.pos[_169]+=1;
1279 }else{
1280 rval=sync.deque[i-sync.min];
1281 sync.pos[_169]+=1;
1282 if(i==sync.min&&_172(sync.pos)!=sync.min){
1283 sync.min+=1;
1284 sync.deque.shift();
1285 }
1286 }
1287 return rval;
1288 }};
1289 },tee:function(_173,n){
1290 var rval=[];
1291 var sync={"pos":[],"deque":[],"max":-1,"min":-1};
1292 if(arguments.length==1||typeof (n)=="undefined"||n===null){
1293 n=2;
1294 }
1295 var self=MochiKit.Iter;
1296 _173=self.iter(_173);
1297 var _tee=self._tee;
1298 for(var i=0;i<n;i++){
1299 rval.push(_tee(i,sync,_173));
1300 }
1301 return rval;
1302 },list:function(_175){
1303 var m=MochiKit.Base;
1304 if(typeof (_175.slice)=="function"){
1305 return _175.slice();
1306 }else{
1307 if(m.isArrayLike(_175)){
1308 return m.concat(_175);
1309 }
1310 }
1311 var self=MochiKit.Iter;
1312 _175=self.iter(_175);
1313 var rval=[];
1314 try{
1315 while(true){
1316 rval.push(_175.next());
1317 }
1318 }
1319 catch(e){
1320 if(e!=self.StopIteration){
1321 throw e;
1322 }
1323 return rval;
1324 }
1325 return undefined;
1326 },reduce:function(fn,_176,_177){
1327 var i=0;
1328 var x=_177;
1329 var self=MochiKit.Iter;
1330 _176=self.iter(_176);
1331 if(arguments.length<3){
1332 try{
1333 x=_176.next();
1334 }
1335 catch(e){
1336 if(e==self.StopIteration){
1337 e=new TypeError("reduce() of empty sequence with no initial value");
1338 }
1339 throw e;
1340 }
1341 i++;
1342 }
1343 try{
1344 while(true){
1345 x=fn(x,_176.next());
1346 }
1347 }
1348 catch(e){
1349 if(e!=self.StopIteration){
1350 throw e;
1351 }
1352 }
1353 return x;
1354 },range:function(){
1355 var _179=0;
1356 var stop=0;
1357 var step=1;
1358 if(arguments.length==1){
1359 stop=arguments[0];
1360 }else{
1361 if(arguments.length==2){
1362 _179=arguments[0];
1363 stop=arguments[1];
1364 }else{
1365 if(arguments.length==3){
1366 _179=arguments[0];
1367 stop=arguments[1];
1368 step=arguments[2];
1369 }else{
1370 throw new TypeError("range() takes 1, 2, or 3 arguments!");
1371 }
1372 }
1373 }
1374 if(step===0){
1375 throw new TypeError("range() step must not be 0");
1376 }
1377 return {next:function(){
1378 if((step>0&&_179>=stop)||(step<0&&_179<=stop)){
1379 throw MochiKit.Iter.StopIteration;
1380 }
1381 var rval=_179;
1382 _179+=step;
1383 return rval;
1384 },repr:function(){
1385 return "range("+[_179,stop,step].join(", ")+")";
1386 },toString:MochiKit.Base.forwardCall("repr")};
1387 },sum:function(_180,_181){
1388 if(typeof (_181)=="undefined"||_181===null){
1389 _181=0;
1390 }
1391 var x=_181;
1392 var self=MochiKit.Iter;
1393 _180=self.iter(_180);
1394 try{
1395 while(true){
1396 x+=_180.next();
1397 }
1398 }
1399 catch(e){
1400 if(e!=self.StopIteration){
1401 throw e;
1402 }
1403 }
1404 return x;
1405 },exhaust:function(_182){
1406 var self=MochiKit.Iter;
1407 _182=self.iter(_182);
1408 try{
1409 while(true){
1410 _182.next();
1411 }
1412 }
1413 catch(e){
1414 if(e!=self.StopIteration){
1415 throw e;
1416 }
1417 }
1418 },forEach:function(_183,func,self){
1419 var m=MochiKit.Base;
1420 if(arguments.length>2){
1421 func=m.bind(func,self);
1422 }
1423 if(m.isArrayLike(_183)){
1424 try{
1425 for(var i=0;i<_183.length;i++){
1426 func(_183[i]);
1427 }
1428 }
1429 catch(e){
1430 if(e!=MochiKit.Iter.StopIteration){
1431 throw e;
1432 }
1433 }
1434 }else{
1435 self=MochiKit.Iter;
1436 self.exhaust(self.imap(func,_183));
1437 }
1438 },every:function(_184,func){
1439 var self=MochiKit.Iter;
1440 try{
1441 self.ifilterfalse(func,_184).next();
1442 return false;
1443 }
1444 catch(e){
1445 if(e!=self.StopIteration){
1446 throw e;
1447 }
1448 return true;
1449 }
1450 },sorted:function(_185,cmp){
1451 var rval=MochiKit.Iter.list(_185);
1452 if(arguments.length==1){
1453 cmp=MochiKit.Base.compare;
1454 }
1455 rval.sort(cmp);
1456 return rval;
1457 },reversed:function(_186){
1458 var rval=MochiKit.Iter.list(_186);
1459 rval.reverse();
1460 return rval;
1461 },some:function(_187,func){
1462 var self=MochiKit.Iter;
1463 try{
1464 self.ifilter(func,_187).next();
1465 return true;
1466 }
1467 catch(e){
1468 if(e!=self.StopIteration){
1469 throw e;
1470 }
1471 return false;
1472 }
1473 },iextend:function(lst,_188){
1474 if(MochiKit.Base.isArrayLike(_188)){
1475 for(var i=0;i<_188.length;i++){
1476 lst.push(_188[i]);
1477 }
1478 }else{
1479 var self=MochiKit.Iter;
1480 _188=self.iter(_188);
1481 try{
1482 while(true){
1483 lst.push(_188.next());
1484 }
1485 }
1486 catch(e){
1487 if(e!=self.StopIteration){
1488 throw e;
1489 }
1490 }
1491 }
1492 return lst;
1493 },groupby:function(_189,_190){
1494 var m=MochiKit.Base;
1495 var self=MochiKit.Iter;
1496 if(arguments.length<2){
1497 _190=m.operator.identity;
1498 }
1499 _189=self.iter(_189);
1500 var pk=undefined;
1501 var k=undefined;
1502 var v;
1503 function fetch(){
1504 v=_189.next();
1505 k=_190(v);
1506 }
1507 function eat(){
1508 var ret=v;
1509 v=undefined;
1510 return ret;
1511 }
1512 var _193=true;
1513 var _194=m.compare;
1514 return {repr:function(){
1515 return "groupby(...)";
1516 },next:function(){
1517 while(_194(k,pk)===0){
1518 fetch();
1519 if(_193){
1520 _193=false;
1521 break;
1522 }
1523 }
1524 pk=k;
1525 return [k,{next:function(){
1526 if(v==undefined){
1527 fetch();
1528 }
1529 if(_194(k,pk)!==0){
1530 throw self.StopIteration;
1531 }
1532 return eat();
1533 }}];
1534 }};
1535 },groupby_as_array:function(_195,_196){
1536 var m=MochiKit.Base;
1537 var self=MochiKit.Iter;
1538 if(arguments.length<2){
1539 _196=m.operator.identity;
1540 }
1541 _195=self.iter(_195);
1542 var _197=[];
1543 var _198=true;
1544 var _199;
1545 var _200=m.compare;
1546 while(true){
1547 try{
1548 var _201=_195.next();
1549 var key=_196(_201);
1550 }
1551 catch(e){
1552 if(e==self.StopIteration){
1553 break;
1554 }
1555 throw e;
1556 }
1557 if(_198||_200(key,_199)!==0){
1558 var _202=[];
1559 _197.push([key,_202]);
1560 }
1561 _202.push(_201);
1562 _198=false;
1563 _199=key;
1564 }
1565 return _197;
1566 },arrayLikeIter:function(_203){
1567 var i=0;
1568 return {repr:function(){
1569 return "arrayLikeIter(...)";
1570 },toString:MochiKit.Base.forwardCall("repr"),next:function(){
1571 if(i>=_203.length){
1572 throw MochiKit.Iter.StopIteration;
1573 }
1574 return _203[i++];
1575 }};
1576 },hasIterateNext:function(_204){
1577 return (_204&&typeof (_204.iterateNext)=="function");
1578 },iterateNextIter:function(_205){
1579 return {repr:function(){
1580 return "iterateNextIter(...)";
1581 },toString:MochiKit.Base.forwardCall("repr"),next:function(){
1582 var rval=_205.iterateNext();
1583 if(rval===null||rval===undefined){
1584 throw MochiKit.Iter.StopIteration;
1585 }
1586 return rval;
1587 }};
1588 }});
1589 MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter",];
1590 MochiKit.Iter.EXPORT=["StopIteration","registerIteratorFactory","iter","count","cycle","repeat","next","izip","ifilter","ifilterfalse","islice","imap","applymap","chain","takewhile","dropwhile","tee","list","reduce","range","sum","exhaust","forEach","every","sorted","reversed","some","iextend","groupby","groupby_as_array"];
1591 MochiKit.Iter.__new__=function(){
1592 var m=MochiKit.Base;
1593 if(typeof (StopIteration)!="undefined"){
1594 this.StopIteration=StopIteration;
1595 }else{
1596 this.StopIteration=new m.NamedError("StopIteration");
1597 }
1598 this.iteratorRegistry=new m.AdapterRegistry();
1599 this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter);
1600 this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter);
1601 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
1602 m.nameFunctions(this);
1603 };
1604 MochiKit.Iter.__new__();
1605 if(MochiKit.__export__){
1606 reduce=MochiKit.Iter.reduce;
1607 }
1608 MochiKit.Base._exportSymbols(this,MochiKit.Iter);
1609 if(typeof (dojo)!="undefined"){
1610 dojo.provide("MochiKit.Logging");
1611 dojo.require("MochiKit.Base");
1612 }
1613 if(typeof (JSAN)!="undefined"){
1614 JSAN.use("MochiKit.Base",[]);
1615 }
1616 try{
1617 if(typeof (MochiKit.Base)=="undefined"){
1618 throw "";
1619 }
1620 }
1621 catch(e){
1622 throw "MochiKit.Logging depends on MochiKit.Base!";
1623 }
1624 if(typeof (MochiKit.Logging)=="undefined"){
1625 MochiKit.Logging={};
1626 }
1627 MochiKit.Logging.NAME="MochiKit.Logging";
1628 MochiKit.Logging.VERSION="1.4";
1629 MochiKit.Logging.__repr__=function(){
1630 return "["+this.NAME+" "+this.VERSION+"]";
1631 };
1632 MochiKit.Logging.toString=function(){
1633 return this.__repr__();
1634 };
1635 MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"];
1636 MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"];
1637 MochiKit.Logging.LogMessage=function(num,_207,info){
1638 this.num=num;
1639 this.level=_207;
1640 this.info=info;
1641 this.timestamp=new Date();
1642 };
1643 MochiKit.Logging.LogMessage.prototype={repr:function(){
1644 var m=MochiKit.Base;
1645 return "LogMessage("+m.map(m.repr,[this.num,this.level,this.info]).join(", ")+")";
1646 },toString:MochiKit.Base.forwardCall("repr")};
1647 MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_209){
1648 var self=MochiKit.Logging;
1649 if(typeof (_209)=="string"){
1650 _209=self.LogLevel[_209];
1651 }
1652 return function(msg){
1653 var _211=msg.level;
1654 if(typeof (_211)=="string"){
1655 _211=self.LogLevel[_211];
1656 }
1657 return _211>=_209;
1658 };
1659 },isLogMessage:function(){
1660 var _212=MochiKit.Logging.LogMessage;
1661 for(var i=0;i<arguments.length;i++){
1662 if(!(arguments[i] instanceof _212)){
1663 return false;
1664 }
1665 }
1666 return true;
1667 },compareLogMessage:function(a,b){
1668 return MochiKit.Base.compare([a.level,a.info],[b.level,b.info]);
1669 },alertListener:function(msg){
1670 alert("num: "+msg.num+"\nlevel: "+msg.level+"\ninfo: "+msg.info.join(" "));
1671 }});
1672 MochiKit.Logging.Logger=function(_213){
1673 this.counter=0;
1674 if(typeof (_213)=="undefined"||_213===null){
1675 _213=-1;
1676 }
1677 this.maxSize=_213;
1678 this._messages=[];
1679 this.listeners={};
1680 this.useNativeConsole=false;
1681 };
1682 MochiKit.Logging.Logger.prototype={clear:function(){
1683 this._messages.splice(0,this._messages.length);
1684 },logToConsole:function(msg){
1685 if(typeof (window)!="undefined"&&window.console&&window.console.log){
1686 window.console.log(msg.replace(/%/g,"\uff05"));
1687 }else{
1688 if(typeof (opera)!="undefined"&&opera.postError){
1689 opera.postError(msg);
1690 }else{
1691 if(typeof (printfire)=="function"){
1692 printfire(msg);
1693 }else{
1694 if(typeof (Debug)!="undefined"&&Debug.writeln){
1695 Debug.writeln(msg);
1696 }else{
1697 if(typeof (debug)!="undefined"&&debug.trace){
1698 debug.trace(msg);
1699 }
1700 }
1701 }
1702 }
1703 }
1704 },dispatchListeners:function(msg){
1705 for(var k in this.listeners){
1706 var pair=this.listeners[k];
1707 if(pair.ident!=k||(pair[0]&&!pair[0](msg))){
1708 continue;
1709 }
1710 pair[1](msg);
1711 }
1712 },addListener:function(_214,_215,_216){
1713 if(typeof (_215)=="string"){
1714 _215=MochiKit.Logging.logLevelAtLeast(_215);
1715 }
1716 var _217=[_215,_216];
1717 _217.ident=_214;
1718 this.listeners[_214]=_217;
1719 },removeListener:function(_218){
1720 delete this.listeners[_218];
1721 },baseLog:function(_219,_220){
1722 var msg=new MochiKit.Logging.LogMessage(this.counter,_219,MochiKit.Base.extend(null,arguments,1));
1723 this._messages.push(msg);
1724 this.dispatchListeners(msg);
1725 if(this.useNativeConsole){
1726 this.logToConsole(msg.level+": "+msg.info.join(" "));
1727 }
1728 this.counter+=1;
1729 while(this.maxSize>=0&&this._messages.length>this.maxSize){
1730 this._messages.shift();
1731 }
1732 },getMessages:function(_221){
1733 var _222=0;
1734 if(!(typeof (_221)=="undefined"||_221===null)){
1735 _222=Math.max(0,this._messages.length-_221);
1736 }
1737 return this._messages.slice(_222);
1738 },getMessageText:function(_223){
1739 if(typeof (_223)=="undefined"||_223===null){
1740 _223=30;
1741 }
1742 var _224=this.getMessages(_223);
1743 if(_224.length){
1744 var lst=map(function(m){
1745 return "\n  ["+m.num+"] "+m.level+": "+m.info.join(" ");
1746 },_224);
1747 lst.unshift("LAST "+_224.length+" MESSAGES:");
1748 return lst.join("");
1749 }
1750 return "";
1751 },debuggingBookmarklet:function(_225){
1752 if(typeof (MochiKit.LoggingPane)=="undefined"){
1753 alert(this.getMessageText());
1754 }else{
1755 MochiKit.LoggingPane.createLoggingPane(_225||false);
1756 }
1757 }};
1758 MochiKit.Logging.__new__=function(){
1759 this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10};
1760 var m=MochiKit.Base;
1761 m.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage);
1762 var _226=m.partial;
1763 var _227=this.Logger;
1764 var _228=_227.prototype.baseLog;
1765 m.update(this.Logger.prototype,{debug:_226(_228,"DEBUG"),log:_226(_228,"INFO"),error:_226(_228,"ERROR"),fatal:_226(_228,"FATAL"),warning:_226(_228,"WARNING")});
1766 var self=this;
1767 var _229=function(name){
1768 return function(){
1769 self.logger[name].apply(self.logger,arguments);
1770 };
1771 };
1772 this.log=_229("log");
1773 this.logError=_229("error");
1774 this.logDebug=_229("debug");
1775 this.logFatal=_229("fatal");
1776 this.logWarning=_229("warning");
1777 this.logger=new _227();
1778 this.logger.useNativeConsole=true;
1779 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
1780 m.nameFunctions(this);
1781 };
1782 if(typeof (printfire)=="undefined"&&typeof (document)!="undefined"&&document.createEvent&&typeof (dispatchEvent)!="undefined"){
1783 printfire=function(){
1784 printfire.args=arguments;
1785 var ev=document.createEvent("Events");
1786 ev.initEvent("printfire",false,true);
1787 dispatchEvent(ev);
1788 };
1789 }
1790 MochiKit.Logging.__new__();
1791 MochiKit.Base._exportSymbols(this,MochiKit.Logging);
1792 if(typeof (dojo)!="undefined"){
1793 dojo.provide("MochiKit.DateTime");
1794 }
1795 if(typeof (MochiKit)=="undefined"){
1796 MochiKit={};
1797 }
1798 if(typeof (MochiKit.DateTime)=="undefined"){
1799 MochiKit.DateTime={};
1800 }
1801 MochiKit.DateTime.NAME="MochiKit.DateTime";
1802 MochiKit.DateTime.VERSION="1.4";
1803 MochiKit.DateTime.__repr__=function(){
1804 return "["+this.NAME+" "+this.VERSION+"]";
1805 };
1806 MochiKit.DateTime.toString=function(){
1807 return this.__repr__();
1808 };
1809 MochiKit.DateTime.isoDate=function(str){
1810 str=str+"";
1811 if(typeof (str)!="string"||str.length===0){
1812 return null;
1813 }
1814 var iso=str.split("-");
1815 if(iso.length===0){
1816 return null;
1817 }
1818 return new Date(iso[0],iso[1]-1,iso[2]);
1819 };
1820 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}))?)?)?)?)?/;
1821 MochiKit.DateTime.isoTimestamp=function(str){
1822 str=str+"";
1823 if(typeof (str)!="string"||str.length===0){
1824 return null;
1825 }
1826 var res=str.match(MochiKit.DateTime._isoRegexp);
1827 if(typeof (res)=="undefined"||res===null){
1828 return null;
1829 }
1830 var year,month,day,hour,min,sec,msec;
1831 year=parseInt(res[1],10);
1832 if(typeof (res[2])=="undefined"||res[2]===""){
1833 return new Date(year);
1834 }
1835 month=parseInt(res[2],10)-1;
1836 day=parseInt(res[3],10);
1837 if(typeof (res[4])=="undefined"||res[4]===""){
1838 return new Date(year,month,day);
1839 }
1840 hour=parseInt(res[4],10);
1841 min=parseInt(res[5],10);
1842 sec=(typeof (res[6])!="undefined"&&res[6]!=="")?parseInt(res[6],10):0;
1843 if(typeof (res[7])!="undefined"&&res[7]!==""){
1844 msec=Math.round(1000*parseFloat("0."+res[7]));
1845 }else{
1846 msec=0;
1847 }
1848 if((typeof (res[8])=="undefined"||res[8]==="")&&(typeof (res[9])=="undefined"||res[9]==="")){
1849 return new Date(year,month,day,hour,min,sec,msec);
1850 }
1851 var ofs;
1852 if(typeof (res[9])!="undefined"&&res[9]!==""){
1853 ofs=parseInt(res[10],10)*3600000;
1854 if(typeof (res[11])!="undefined"&&res[11]!==""){
1855 ofs+=parseInt(res[11],10)*60000;
1856 }
1857 if(res[9]=="-"){
1858 ofs=-ofs;
1859 }
1860 }else{
1861 ofs=0;
1862 }
1863 return new Date(Date.UTC(year,month,day,hour,min,sec,msec)-ofs);
1864 };
1865 MochiKit.DateTime.toISOTime=function(date,_236){
1866 if(typeof (date)=="undefined"||date===null){
1867 return null;
1868 }
1869 var hh=date.getHours();
1870 var mm=date.getMinutes();
1871 var ss=date.getSeconds();
1872 var lst=[((_236&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)];
1873 return lst.join(":");
1874 };
1875 MochiKit.DateTime.toISOTimestamp=function(date,_240){
1876 if(typeof (date)=="undefined"||date===null){
1877 return null;
1878 }
1879 var sep=_240?"T":" ";
1880 var foot=_240?"Z":"";
1881 if(_240){
1882 date=new Date(date.getTime()+(date.getTimezoneOffset()*60000));
1883 }
1884 return MochiKit.DateTime.toISODate(date)+sep+MochiKit.DateTime.toISOTime(date,_240)+foot;
1885 };
1886 MochiKit.DateTime.toISODate=function(date){
1887 if(typeof (date)=="undefined"||date===null){
1888 return null;
1889 }
1890 var _243=MochiKit.DateTime._padTwo;
1891 return [date.getFullYear(),_243(date.getMonth()+1),_243(date.getDate())].join("-");
1892 };
1893 MochiKit.DateTime.americanDate=function(d){
1894 d=d+"";
1895 if(typeof (d)!="string"||d.length===0){
1896 return null;
1897 }
1898 var a=d.split("/");
1899 return new Date(a[2],a[0]-1,a[1]);
1900 };
1901 MochiKit.DateTime._padTwo=function(n){
1902 return (n>9)?n:"0"+n;
1903 };
1904 MochiKit.DateTime.toPaddedAmericanDate=function(d){
1905 if(typeof (d)=="undefined"||d===null){
1906 return null;
1907 }
1908 var _245=MochiKit.DateTime._padTwo;
1909 return [_245(d.getMonth()+1),_245(d.getDate()),d.getFullYear()].join("/");
1910 };
1911 MochiKit.DateTime.toAmericanDate=function(d){
1912 if(typeof (d)=="undefined"||d===null){
1913 return null;
1914 }
1915 return [d.getMonth()+1,d.getDate(),d.getFullYear()].join("/");
1916 };
1917 MochiKit.DateTime.EXPORT=["isoDate","isoTimestamp","toISOTime","toISOTimestamp","toISODate","americanDate","toPaddedAmericanDate","toAmericanDate"];
1918 MochiKit.DateTime.EXPORT_OK=[];
1919 MochiKit.DateTime.EXPORT_TAGS={":common":MochiKit.DateTime.EXPORT,":all":MochiKit.DateTime.EXPORT};
1920 MochiKit.DateTime.__new__=function(){
1921 var base=this.NAME+".";
1922 for(var k in this){
1923 var o=this[k];
1924 if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){
1925 try{
1926 o.NAME=base+k;
1927 }
1928 catch(e){
1929 }
1930 }
1931 }
1932 };
1933 MochiKit.DateTime.__new__();
1934 if(typeof (MochiKit.Base)!="undefined"){
1935 MochiKit.Base._exportSymbols(this,MochiKit.DateTime);
1936 }else{
1937 (function(_246,_247){
1938 if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){
1939 var all=_247.EXPORT_TAGS[":all"];
1940 for(var i=0;i<all.length;i++){
1941 _246[all[i]]=_247[all[i]];
1942 }
1943 }
1944 })(this,MochiKit.DateTime);
1945 }
1946 if(typeof (dojo)!="undefined"){
1947 dojo.provide("MochiKit.Format");
1948 }
1949 if(typeof (MochiKit)=="undefined"){
1950 MochiKit={};
1951 }
1952 if(typeof (MochiKit.Format)=="undefined"){
1953 MochiKit.Format={};
1954 }
1955 MochiKit.Format.NAME="MochiKit.Format";
1956 MochiKit.Format.VERSION="1.4";
1957 MochiKit.Format.__repr__=function(){
1958 return "["+this.NAME+" "+this.VERSION+"]";
1959 };
1960 MochiKit.Format.toString=function(){
1961 return this.__repr__();
1962 };
1963 MochiKit.Format._numberFormatter=function(_248,_249,_250,_251,_252,_253,_254,_255,_256){
1964 return function(num){
1965 num=parseFloat(num);
1966 if(typeof (num)=="undefined"||num===null||isNaN(num)){
1967 return _248;
1968 }
1969 var _257=_249;
1970 var _258=_250;
1971 if(num<0){
1972 num=-num;
1973 }else{
1974 _257=_257.replace(/-/,"");
1975 }
1976 var me=arguments.callee;
1977 var fmt=MochiKit.Format.formatLocale(_251);
1978 if(_252){
1979 num=num*100;
1980 _258=fmt.percent+_258;
1981 }
1982 num=MochiKit.Format.roundToFixed(num,_253);
1983 var _260=num.split(/\./);
1984 var _261=_260[0];
1985 var frac=(_260.length==1)?"":_260[1];
1986 var res="";
1987 while(_261.length<_254){
1988 _261="0"+_261;
1989 }
1990 if(_255){
1991 while(_261.length>_255){
1992 var i=_261.length-_255;
1993 res=fmt.separator+_261.substring(i,_261.length)+res;
1994 _261=_261.substring(0,i);
1995 }
1996 }
1997 res=_261+res;
1998 if(_253>0){
1999 while(frac.length<_256){
2000 frac=frac+"0";
2001 }
2002 res=res+fmt.decimal+frac;
2003 }
2004 return _257+res+_258;
2005 };
2006 };
2007 MochiKit.Format.numberFormatter=function(_263,_264,_265){
2008 if(typeof (_264)=="undefined"){
2009 _264="";
2010 }
2011 var _266=_263.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/);
2012 if(!_266){
2013 throw TypeError("Invalid pattern");
2014 }
2015 var _267=_263.substr(0,_266.index);
2016 var _268=_263.substr(_266.index+_266[0].length);
2017 if(_267.search(/-/)==-1){
2018 _267=_267+"-";
2019 }
2020 var _269=_266[1];
2021 var frac=(typeof (_266[2])=="string"&&_266[2]!="")?_266[2]:"";
2022 var _270=(typeof (_266[3])=="string"&&_266[3]!="");
2023 var tmp=_269.split(/,/);
2024 var _272;
2025 if(typeof (_265)=="undefined"){
2026 _265="default";
2027 }
2028 if(tmp.length==1){
2029 _272=null;
2030 }else{
2031 _272=tmp[1].length;
2032 }
2033 var _273=_269.length-_269.replace(/0/g,"").length;
2034 var _274=frac.length-frac.replace(/0/g,"").length;
2035 var _275=frac.length;
2036 var rval=MochiKit.Format._numberFormatter(_264,_267,_268,_265,_270,_275,_273,_272,_274);
2037 var m=MochiKit.Base;
2038 if(m){
2039 var fn=arguments.callee;
2040 var args=m.concat(arguments);
2041 rval.repr=function(){
2042 return [self.NAME,"(",map(m.repr,args).join(", "),")"].join("");
2043 };
2044 }
2045 return rval;
2046 };
2047 MochiKit.Format.formatLocale=function(_276){
2048 if(typeof (_276)=="undefined"||_276===null){
2049 _276="default";
2050 }
2051 if(typeof (_276)=="string"){
2052 var rval=MochiKit.Format.LOCALE[_276];
2053 if(typeof (rval)=="string"){
2054 rval=arguments.callee(rval);
2055 MochiKit.Format.LOCALE[_276]=rval;
2056 }
2057 return rval;
2058 }else{
2059 return _276;
2060 }
2061 };
2062 MochiKit.Format.twoDigitAverage=function(_277,_278){
2063 if(_278){
2064 var res=_277/_278;
2065 if(!isNaN(res)){
2066 return MochiKit.Format.twoDigitFloat(_277/_278);
2067 }
2068 }
2069 return "0";
2070 };
2071 MochiKit.Format.twoDigitFloat=function(_279){
2072 var sign=(_279<0?"-":"");
2073 var s=Math.floor(Math.abs(_279)*100).toString();
2074 if(s=="0"){
2075 return s;
2076 }
2077 if(s.length<3){
2078 while(s.charAt(s.length-1)=="0"){
2079 s=s.substring(0,s.length-1);
2080 }
2081 return sign+"0."+s;
2082 }
2083 var head=sign+s.substring(0,s.length-2);
2084 var tail=s.substring(s.length-2,s.length);
2085 if(tail=="00"){
2086 return head;
2087 }else{
2088 if(tail.charAt(1)=="0"){
2089 return head+"."+tail.charAt(0);
2090 }else{
2091 return head+"."+tail;
2092 }
2093 }
2094 };
2095 MochiKit.Format.lstrip=function(str,_284){
2096 str=str+"";
2097 if(typeof (str)!="string"){
2098 return null;
2099 }
2100 if(!_284){
2101 return str.replace(/^\s+/,"");
2102 }else{
2103 return str.replace(new RegExp("^["+_284+"]+"),"");
2104 }
2105 };
2106 MochiKit.Format.rstrip=function(str,_285){
2107 str=str+"";
2108 if(typeof (str)!="string"){
2109 return null;
2110 }
2111 if(!_285){
2112 return str.replace(/\s+$/,"");
2113 }else{
2114 return str.replace(new RegExp("["+_285+"]+$"),"");
2115 }
2116 };
2117 MochiKit.Format.strip=function(str,_286){
2118 var self=MochiKit.Format;
2119 return self.rstrip(self.lstrip(str,_286),_286);
2120 };
2121 MochiKit.Format.truncToFixed=function(_287,_288){
2122 _287=Math.floor(_287*Math.pow(10,_288));
2123 var res=(_287*Math.pow(10,-_288)).toFixed(_288);
2124 if(res.charAt(0)=="."){
2125 res="0"+res;
2126 }
2127 return res;
2128 };
2129 MochiKit.Format.roundToFixed=function(_289,_290){
2130 return MochiKit.Format.truncToFixed(_289+0.5*Math.pow(10,-_290),_290);
2131 };
2132 MochiKit.Format.percentFormat=function(_291){
2133 return MochiKit.Format.twoDigitFloat(100*_291)+"%";
2134 };
2135 MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"];
2136 MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},"default":"en_US"};
2137 MochiKit.Format.EXPORT_OK=[];
2138 MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT};
2139 MochiKit.Format.__new__=function(){
2140 var base=this.NAME+".";
2141 var k,v,o;
2142 for(k in this.LOCALE){
2143 o=this.LOCALE[k];
2144 if(typeof (o)=="object"){
2145 o.repr=function(){
2146 return this.NAME;
2147 };
2148 o.NAME=base+"LOCALE."+k;
2149 }
2150 }
2151 for(k in this){
2152 o=this[k];
2153 if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){
2154 try{
2155 o.NAME=base+k;
2156 }
2157 catch(e){
2158 }
2159 }
2160 }
2161 };
2162 MochiKit.Format.__new__();
2163 if(typeof (MochiKit.Base)!="undefined"){
2164 MochiKit.Base._exportSymbols(this,MochiKit.Format);
2165 }else{
2166 (function(_292,_293){
2167 if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){
2168 var all=_293.EXPORT_TAGS[":all"];
2169 for(var i=0;i<all.length;i++){
2170 _292[all[i]]=_293[all[i]];
2171 }
2172 }
2173 })(this,MochiKit.Format);
2174 }
2175 if(typeof (dojo)!="undefined"){
2176 dojo.provide("MochiKit.Async");
2177 dojo.require("MochiKit.Base");
2178 }
2179 if(typeof (JSAN)!="undefined"){
2180 JSAN.use("MochiKit.Base",[]);
2181 }
2182 try{
2183 if(typeof (MochiKit.Base)=="undefined"){
2184 throw "";
2185 }
2186 }
2187 catch(e){
2188 throw "MochiKit.Async depends on MochiKit.Base!";
2189 }
2190 if(typeof (MochiKit.Async)=="undefined"){
2191 MochiKit.Async={};
2192 }
2193 MochiKit.Async.NAME="MochiKit.Async";
2194 MochiKit.Async.VERSION="1.4";
2195 MochiKit.Async.__repr__=function(){
2196 return "["+this.NAME+" "+this.VERSION+"]";
2197 };
2198 MochiKit.Async.toString=function(){
2199 return this.__repr__();
2200 };
2201 MochiKit.Async.Deferred=function(_294){
2202 this.chain=[];
2203 this.id=this._nextId();
2204 this.fired=-1;
2205 this.paused=0;
2206 this.results=[null,null];
2207 this.canceller=_294;
2208 this.silentlyCancelled=false;
2209 this.chained=false;
2210 };
2211 MochiKit.Async.Deferred.prototype={repr:function(){
2212 var _295;
2213 if(this.fired==-1){
2214 _295="unfired";
2215 }else{
2216 if(this.fired===0){
2217 _295="success";
2218 }else{
2219 _295="error";
2220 }
2221 }
2222 return "Deferred("+this.id+", "+_295+")";
2223 },toString:MochiKit.Base.forwardCall("repr"),_nextId:MochiKit.Base.counter(),cancel:function(){
2224 var self=MochiKit.Async;
2225 if(this.fired==-1){
2226 if(this.canceller){
2227 this.canceller(this);
2228 }else{
2229 this.silentlyCancelled=true;
2230 }
2231 if(this.fired==-1){
2232 this.errback(new self.CancelledError(this));
2233 }
2234 }else{
2235 if((this.fired===0)&&(this.results[0] instanceof self.Deferred)){
2236 this.results[0].cancel();
2237 }
2238 }
2239 },_resback:function(res){
2240 this.fired=((res instanceof Error)?1:0);
2241 this.results[this.fired]=res;
2242 this._fire();
2243 },_check:function(){
2244 if(this.fired!=-1){
2245 if(!this.silentlyCancelled){
2246 throw new MochiKit.Async.AlreadyCalledError(this);
2247 }
2248 this.silentlyCancelled=false;
2249 return;
2250 }
2251 },callback:function(res){
2252 this._check();
2253 if(res instanceof MochiKit.Async.Deferred){
2254 throw new Error("Deferred instances can only be chained if they are the result of a callback");
2255 }
2256 this._resback(res);
2257 },errback:function(res){
2258 this._check();
2259 var self=MochiKit.Async;
2260 if(res instanceof self.Deferred){
2261 throw new Error("Deferred instances can only be chained if they are the result of a callback");
2262 }
2263 if(!(res instanceof Error)){
2264 res=new self.GenericError(res);
2265 }
2266 this._resback(res);
2267 },addBoth:function(fn){
2268 if(arguments.length>1){
2269 fn=MochiKit.Base.partial.apply(null,arguments);
2270 }
2271 return this.addCallbacks(fn,fn);
2272 },addCallback:function(fn){
2273 if(arguments.length>1){
2274 fn=MochiKit.Base.partial.apply(null,arguments);
2275 }
2276 return this.addCallbacks(fn,null);
2277 },addErrback:function(fn){
2278 if(arguments.length>1){
2279 fn=MochiKit.Base.partial.apply(null,arguments);
2280 }
2281 return this.addCallbacks(null,fn);
2282 },addCallbacks:function(cb,eb){
2283 if(this.chained){
2284 throw new Error("Chained Deferreds can not be re-used");
2285 }
2286 this.chain.push([cb,eb]);
2287 if(this.fired>=0){
2288 this._fire();
2289 }
2290 return this;
2291 },_fire:function(){
2292 var _298=this.chain;
2293 var _299=this.fired;
2294 var res=this.results[_299];
2295 var self=this;
2296 var cb=null;
2297 while(_298.length>0&&this.paused===0){
2298 var pair=_298.shift();
2299 var f=pair[_299];
2300 if(f===null){
2301 continue;
2302 }
2303 try{
2304 res=f(res);
2305 _299=((res instanceof Error)?1:0);
2306 if(res instanceof MochiKit.Async.Deferred){
2307 cb=function(res){
2308 self._resback(res);
2309 self.paused--;
2310 if((self.paused===0)&&(self.fired>=0)){
2311 self._fire();
2312 }
2313 };
2314 this.paused++;
2315 }
2316 }
2317 catch(err){
2318 _299=1;
2319 if(!(err instanceof Error)){
2320 err=new MochiKit.Async.GenericError(err);
2321 }
2322 res=err;
2323 }
2324 }
2325 this.fired=_299;
2326 this.results[_299]=res;
2327 if(cb&&this.paused){
2328 res.addBoth(cb);
2329 res.chained=true;
2330 }
2331 }};
2332 MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(){
2333 return eval("("+arguments[0].responseText+")");
2334 },succeed:function(_301){
2335 var d=new MochiKit.Async.Deferred();
2336 d.callback.apply(d,arguments);
2337 return d;
2338 },fail:function(_302){
2339 var d=new MochiKit.Async.Deferred();
2340 d.errback.apply(d,arguments);
2341 return d;
2342 },getXMLHttpRequest:function(){
2343 var self=arguments.callee;
2344 if(!self.XMLHttpRequest){
2345 var _303=[function(){
2346 return new XMLHttpRequest();
2347 },function(){
2348 return new ActiveXObject("Msxml2.XMLHTTP");
2349 },function(){
2350 return new ActiveXObject("Microsoft.XMLHTTP");
2351 },function(){
2352 return new ActiveXObject("Msxml2.XMLHTTP.4.0");
2353 },function(){
2354 throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest");
2355 }];
2356 for(var i=0;i<_303.length;i++){
2357 var func=_303[i];
2358 try{
2359 self.XMLHttpRequest=func;
2360 return func();
2361 }
2362 catch(e){
2363 }
2364 }
2365 }
2366 return self.XMLHttpRequest();
2367 },_xhr_onreadystatechange:function(d){
2368 var m=MochiKit.Base;
2369 if(this.readyState==4){
2370 try{
2371 this.onreadystatechange=null;
2372 }
2373 catch(e){
2374 try{
2375 this.onreadystatechange=m.noop;
2376 }
2377 catch(e){
2378 }
2379 }
2380 var _304=null;
2381 try{
2382 _304=this.status;
2383 if(!_304&&m.isNotEmpty(this.responseText)){
2384 _304=304;
2385 }
2386 }
2387 catch(e){
2388 }
2389 if(_304==200||_304==304){
2390 d.callback(this);
2391 }else{
2392 var err=new MochiKit.Async.XMLHttpRequestError(this,"Request failed");
2393 if(err.number){
2394 d.errback(err);
2395 }else{
2396 d.errback(err);
2397 }
2398 }
2399 }
2400 },_xhr_canceller:function(req){
2401 try{
2402 req.onreadystatechange=null;
2403 }
2404 catch(e){
2405 try{
2406 req.onreadystatechange=MochiKit.Base.noop;
2407 }
2408 catch(e){
2409 }
2410 }
2411 req.abort();
2412 },sendXMLHttpRequest:function(req,_307){
2413 if(typeof (_307)=="undefined"||_307===null){
2414 _307="";
2415 }
2416 var m=MochiKit.Base;
2417 var self=MochiKit.Async;
2418 var d=new self.Deferred(m.partial(self._xhr_canceller,req));
2419 try{
2420 req.onreadystatechange=m.bind(self._xhr_onreadystatechange,req,d);
2421 req.send(_307);
2422 }
2423 catch(e){
2424 try{
2425 req.onreadystatechange=null;
2426 }
2427 catch(ignore){
2428 }
2429 d.errback(e);
2430 }
2431 return d;
2432 },doXHR:function(url,opts){
2433 var m=MochiKit.Base;
2434 opts=m.update({method:"GET",sendContent:""},opts);
2435 var self=MochiKit.Async;
2436 var req=self.getXMLHttpRequest();
2437 if(opts.queryString){
2438 var qs=m.queryString(opts.queryString);
2439 if(qs){
2440 url+="?"+qs;
2441 }
2442 }
2443 req.open(opts.method,url,true,opts.username,opts.password);
2444 if(req.overrideMimeType&&opts.mimeType){
2445 req.overrideMimeType(opts.mimeType);
2446 }
2447 if(opts.headers){
2448 var _311=opts.headers;
2449 if(!m.isArrayLike(_311)){
2450 _311=m.items(_311);
2451 }
2452 for(var i=0;i<_311.length;i++){
2453 var _312=_311[i];
2454 var name=_312[0];
2455 var _313=_312[1];
2456 req.setRequestHeader(name,_313);
2457 }
2458 }
2459 return self.sendXMLHttpRequest(req,opts.sendContent);
2460 },_buildURL:function(url){
2461 if(arguments.length>1){
2462 var m=MochiKit.Base;
2463 var qs=m.queryString.apply(null,m.extend(null,arguments,1));
2464 if(qs){
2465 return url+"?"+qs;
2466 }
2467 }
2468 return url;
2469 },doSimpleXMLHttpRequest:function(url){
2470 var self=MochiKit.Async;
2471 url=self._buildURL.apply(self,arguments);
2472 return self.doXHR(url);
2473 },loadJSONDoc:function(url){
2474 var self=MochiKit.Async;
2475 url=self._buildURL.apply(self,arguments);
2476 var d=self.doXHR(url,{"mimeType":"text/plain","headers":[["Accept","application/json"]]});
2477 d=d.addCallback(self.evalJSONRequest);
2478 return d;
2479 },wait:function(_314,_315){
2480 var d=new MochiKit.Async.Deferred();
2481 var m=MochiKit.Base;
2482 if(typeof (_315)!="undefined"){
2483 d.addCallback(function(){
2484 return _315;
2485 });
2486 }
2487 var _316=setTimeout(m.bind("callback",d),Math.floor(_314*1000));
2488 d.canceller=function(){
2489 try{
2490 clearTimeout(_316);
2491 }
2492 catch(e){
2493 }
2494 };
2495 return d;
2496 },callLater:function(_317,func){
2497 var m=MochiKit.Base;
2498 var _318=m.partial.apply(m,m.extend(null,arguments,1));
2499 return MochiKit.Async.wait(_317).addCallback(function(res){
2500 return _318();
2501 });
2502 }});
2503 MochiKit.Async.DeferredLock=function(){
2504 this.waiting=[];
2505 this.locked=false;
2506 this.id=this._nextId();
2507 };
2508 MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){
2509 var d=new MochiKit.Async.Deferred();
2510 if(this.locked){
2511 this.waiting.push(d);
2512 }else{
2513 this.locked=true;
2514 d.callback(this);
2515 }
2516 return d;
2517 },release:function(){
2518 if(!this.locked){
2519 throw TypeError("Tried to release an unlocked DeferredLock");
2520 }
2521 this.locked=false;
2522 if(this.waiting.length>0){
2523 this.locked=true;
2524 this.waiting.shift().callback(this);
2525 }
2526 },_nextId:MochiKit.Base.counter(),repr:function(){
2527 var _319;
2528 if(this.locked){
2529 _319="locked, "+this.waiting.length+" waiting";
2530 }else{
2531 _319="unlocked";
2532 }
2533 return "DeferredLock("+this.id+", "+_319+")";
2534 },toString:MochiKit.Base.forwardCall("repr")};
2535 MochiKit.Async.DeferredList=function(list,_321,_322,_323,_324){
2536 MochiKit.Async.Deferred.apply(this,[_324]);
2537 this.list=list;
2538 var _325=[];
2539 this.resultList=_325;
2540 this.finishedCount=0;
2541 this.fireOnOneCallback=_321;
2542 this.fireOnOneErrback=_322;
2543 this.consumeErrors=_323;
2544 var cb=MochiKit.Base.bind(this._cbDeferred,this);
2545 for(var i=0;i<list.length;i++){
2546 var d=list[i];
2547 _325.push(undefined);
2548 d.addCallback(cb,i,true);
2549 d.addErrback(cb,i,false);
2550 }
2551 if(list.length===0&&!_321){
2552 this.callback(this.resultList);
2553 }
2554 };
2555 MochiKit.Async.DeferredList.prototype=new MochiKit.Async.Deferred();
2556 MochiKit.Async.DeferredList.prototype._cbDeferred=function(_326,_327,_328){
2557 this.resultList[_326]=[_327,_328];
2558 this.finishedCount+=1;
2559 if(this.fired==-1){
2560 if(_327&&this.fireOnOneCallback){
2561 this.callback([_326,_328]);
2562 }else{
2563 if(!_327&&this.fireOnOneErrback){
2564 this.errback(_328);
2565 }else{
2566 if(this.finishedCount==this.list.length){
2567 this.callback(this.resultList);
2568 }
2569 }
2570 }
2571 }
2572 if(!_327&&this.consumeErrors){
2573 _328=null;
2574 }
2575 return _328;
2576 };
2577 MochiKit.Async.gatherResults=function(_329){
2578 var d=new MochiKit.Async.DeferredList(_329,false,true,false);
2579 d.addCallback(function(_330){
2580 var ret=[];
2581 for(var i=0;i<_330.length;i++){
2582 ret.push(_330[i][1]);
2583 }
2584 return ret;
2585 });
2586 return d;
2587 };
2588 MochiKit.Async.maybeDeferred=function(func){
2589 var self=MochiKit.Async;
2590 var _331;
2591 try{
2592 var r=func.apply(null,MochiKit.Base.extend([],arguments,1));
2593 if(r instanceof self.Deferred){
2594 _331=r;
2595 }else{
2596 if(r instanceof Error){
2597 _331=self.fail(r);
2598 }else{
2599 _331=self.succeed(r);
2600 }
2601 }
2602 }
2603 catch(e){
2604 _331=self.fail(e);
2605 }
2606 return _331;
2607 };
2608 MochiKit.Async.EXPORT=["AlreadyCalledError","CancelledError","BrowserComplianceError","GenericError","XMLHttpRequestError","Deferred","succeed","fail","getXMLHttpRequest","doSimpleXMLHttpRequest","loadJSONDoc","wait","callLater","sendXMLHttpRequest","DeferredLock","DeferredList","gatherResults","maybeDeferred","doXHR"];
2609 MochiKit.Async.EXPORT_OK=["evalJSONRequest"];
2610 MochiKit.Async.__new__=function(){
2611 var m=MochiKit.Base;
2612 var ne=m.partial(m._newNamedError,this);
2613 ne("AlreadyCalledError",function(_334){
2614 this.deferred=_334;
2615 });
2616 ne("CancelledError",function(_335){
2617 this.deferred=_335;
2618 });
2619 ne("BrowserComplianceError",function(msg){
2620 this.message=msg;
2621 });
2622 ne("GenericError",function(msg){
2623 this.message=msg;
2624 });
2625 ne("XMLHttpRequestError",function(req,msg){
2626 this.req=req;
2627 this.message=msg;
2628 try{
2629 this.number=req.status;
2630 }
2631 catch(e){
2632 }
2633 });
2634 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
2635 m.nameFunctions(this);
2636 };
2637 MochiKit.Async.__new__();
2638 MochiKit.Base._exportSymbols(this,MochiKit.Async);
2639 if(typeof (dojo)!="undefined"){
2640 dojo.provide("MochiKit.DOM");
2641 dojo.require("MochiKit.Base");
2642 }
2643 if(typeof (JSAN)!="undefined"){
2644 JSAN.use("MochiKit.Base",[]);
2645 }
2646 try{
2647 if(typeof (MochiKit.Base)=="undefined"){
2648 throw "";
2649 }
2650 }
2651 catch(e){
2652 throw "MochiKit.DOM depends on MochiKit.Base!";
2653 }
2654 if(typeof (MochiKit.DOM)=="undefined"){
2655 MochiKit.DOM={};
2656 }
2657 MochiKit.DOM.NAME="MochiKit.DOM";
2658 MochiKit.DOM.VERSION="1.4";
2659 MochiKit.DOM.__repr__=function(){
2660 return "["+this.NAME+" "+this.VERSION+"]";
2661 };
2662 MochiKit.DOM.toString=function(){
2663 return this.__repr__();
2664 };
2665 MochiKit.DOM.EXPORT=["removeEmptyTextNodes","formContents","currentWindow","currentDocument","withWindow","withDocument","registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","isChildNode","getNodeAttribute","setNodeAttribute","updateNodeAttributes","appendChildNodes","replaceChildNodes","removeElement","swapDOM","BUTTON","TT","PRE","H1","H2","H3","BR","CANVAS","HR","LABEL","TEXTAREA","FORM","STRONG","SELECT","OPTION","OPTGROUP","LEGEND","FIELDSET","P","UL","OL","LI","TD","TR","THEAD","TBODY","TFOOT","TABLE","TH","INPUT","SPAN","A","DIV","IMG","getElement","$","getElementsByTagAndClassName","addToCallStack","addLoadEvent","focusOnLoad","setElementClass","toggleElementClass","addElementClass","removeElementClass","swapElementClass","hasElementClass","escapeHTML","toHTML","emitHTML","scrapeText"];
2666 MochiKit.DOM.EXPORT_OK=["domConverters"];
2667 MochiKit.DOM.DEPRECATED=[["computedStyle","MochiKit.Style.computedStyle","1.4"],["elementDimensions","MochiKit.Style.getElementDimensions","1.4"],["elementPosition","MochiKit.Style.getElementPosition","1.4"],["hideElement","MochiKit.Style.hideElement","1.4"],["setElementDimensions","MochiKit.Style.setElementDimensions","1.4"],["setElementPosition","MochiKit.Style.setElementPosition","1.4"],["setDisplayForElement","MochiKit.Style.setDisplayForElement","1.4"],["setOpacity","MochiKit.Style.setOpacity","1.4"],["showElement","MochiKit.Style.showElement","1.4"],["Coordinates","MochiKit.Style.Coordinates","1.4"],["Dimensions","MochiKit.Style.Dimensions","1.4"]];
2668 MochiKit.DOM.getViewportDimensions=new Function(""+"if (!MochiKit[\"Style\"]) {"+"    throw new Error(\"This function has been deprecated and depends on MochiKit.Style.\");"+"}"+"return MochiKit.Style.getViewportDimensions.apply(this, arguments);");
2669 MochiKit.Base.update(MochiKit.DOM,{currentWindow:function(){
2670 return MochiKit.DOM._window;
2671 },currentDocument:function(){
2672 return MochiKit.DOM._document;
2673 },withWindow:function(win,func){
2674 var self=MochiKit.DOM;
2675 var _337=self._document;
2676 var _338=self._win;
2677 var rval;
2678 try{
2679 self._window=win;
2680 self._document=win.document;
2681 rval=func();
2682 }
2683 catch(e){
2684 self._window=_338;
2685 self._document=_337;
2686 throw e;
2687 }
2688 self._window=_338;
2689 self._document=_337;
2690 return rval;
2691 },formContents:function(elem){
2692 var _339=[];
2693 var _340=[];
2694 var m=MochiKit.Base;
2695 var self=MochiKit.DOM;
2696 if(typeof (elem)=="undefined"||elem===null){
2697 elem=self._document;
2698 }else{
2699 elem=self.getElement(elem);
2700 }
2701 m.nodeWalk(elem,function(elem){
2702 var name=elem.name;
2703 if(m.isNotEmpty(name)){
2704 var _341=elem.tagName.toUpperCase();
2705 if(_341==="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){
2706 return null;
2707 }
2708 if(_341==="SELECT"){
2709 if(elem.type=="select-one"){
2710 if(elem.selectedIndex>=0){
2711 var opt=elem.options[elem.selectedIndex];
2712 _339.push(name);
2713 _340.push(opt.value);
2714 return null;
2715 }
2716 _339.push(name);
2717 _340.push("");
2718 return null;
2719 }else{
2720 var opts=elem.options;
2721 if(!opts.length){
2722 _339.push(name);
2723 _340.push("");
2724 return null;
2725 }
2726 for(var i=0;i<opts.length;i++){
2727 var opt=opts[i];
2728 if(!opt.selected){
2729 continue;
2730 }
2731 _339.push(name);
2732 _340.push(opt.value);
2733 }
2734 return null;
2735 }
2736 }
2737 if(_341==="FORM"||_341==="P"||_341==="SPAN"||_341==="DIV"){
2738 return elem.childNodes;
2739 }
2740 _339.push(name);
2741 _340.push(elem.value||"");
2742 return null;
2743 }
2744 return elem.childNodes;
2745 });
2746 return [_339,_340];
2747 },withDocument:function(doc,func){
2748 var self=MochiKit.DOM;
2749 var _344=self._document;
2750 var rval;
2751 try{
2752 self._document=doc;
2753 rval=func();
2754 }
2755 catch(e){
2756 self._document=_344;
2757 throw e;
2758 }
2759 self._document=_344;
2760 return rval;
2761 },registerDOMConverter:function(name,_345,wrap,_346){
2762 MochiKit.DOM.domConverters.register(name,_345,wrap,_346);
2763 },coerceToDOM:function(node,ctx){
2764 var m=MochiKit.Base;
2765 var im=MochiKit.Iter;
2766 var self=MochiKit.DOM;
2767 if(im){
2768 var iter=im.iter;
2769 var _350=im.repeat;
2770 var map=m.map;
2771 }
2772 var _351=self.domConverters;
2773 var _352=arguments.callee;
2774 var _353=m.NotFound;
2775 while(true){
2776 if(typeof (node)=="undefined"||node===null){
2777 return null;
2778 }
2779 if(typeof (node.nodeType)!="undefined"&&node.nodeType>0){
2780 return node;
2781 }
2782 if(typeof (node)=="number"||typeof (node)=="boolean"){
2783 node=node.toString();
2784 }
2785 if(typeof (node)=="string"){
2786 return self._document.createTextNode(node);
2787 }
2788 if(typeof (node.__dom__)=="function"){
2789 node=node.__dom__(ctx);
2790 continue;
2791 }
2792 if(typeof (node.dom)=="function"){
2793 node=node.dom(ctx);
2794 continue;
2795 }
2796 if(typeof (node)=="function"){
2797 node=node.apply(ctx,[ctx]);
2798 continue;
2799 }
2800 if(im){
2801 var _354=null;
2802 try{
2803 _354=iter(node);
2804 }
2805 catch(e){
2806 }
2807 if(_354){
2808 return map(_352,_354,_350(ctx));
2809 }
2810 }
2811 try{
2812 node=_351.match(node,ctx);
2813 continue;
2814 }
2815 catch(e){
2816 if(e!=_353){
2817 throw e;
2818 }
2819 }
2820 return self._document.createTextNode(node.toString());
2821 }
2822 return undefined;
2823 },isChildNode:function(node,_355){
2824 var self=MochiKit.DOM;
2825 if(typeof (node)=="string"){
2826 node=self.getElement(node);
2827 }
2828 if(typeof (_355)=="string"){
2829 _355=self.getElement(_355);
2830 }
2831 if(node===_355){
2832 return true;
2833 }
2834 while(node&&node.tagName.toUpperCase()!="BODY"){
2835 node=node.parentNode;
2836 if(node===_355){
2837 return true;
2838 }
2839 }
2840 return false;
2841 },setNodeAttribute:function(node,attr,_357){
2842 var o={};
2843 o[attr]=_357;
2844 try{
2845 return MochiKit.DOM.updateNodeAttributes(node,o);
2846 }
2847 catch(e){
2848 }
2849 return null;
2850 },getNodeAttribute:function(node,attr){
2851 var self=MochiKit.DOM;
2852 var _358=self.attributeArray.renames[attr];
2853 node=self.getElement(node);
2854 try{
2855 if(_358){
2856 return node[_358];
2857 }
2858 return node.getAttribute(attr);
2859 }
2860 catch(e){
2861 }
2862 return null;
2863 },updateNodeAttributes:function(node,_359){
2864 var elem=node;
2865 var self=MochiKit.DOM;
2866 if(typeof (node)=="string"){
2867 elem=self.getElement(node);
2868 }
2869 if(_359){
2870 var _360=MochiKit.Base.updatetree;
2871 if(self.attributeArray.compliant){
2872 for(var k in _359){
2873 var v=_359[k];
2874 if(typeof (v)=="object"&&typeof (elem[k])=="object"){
2875 _360(elem[k],v);
2876 }else{
2877 if(k.substring(0,2)=="on"){
2878 if(typeof (v)=="string"){
2879 v=new Function(v);
2880 }
2881 elem[k]=v;
2882 }else{
2883 elem.setAttribute(k,v);
2884 }
2885 }
2886 }
2887 }else{
2888 var _361=self.attributeArray.renames;
2889 for(k in _359){
2890 v=_359[k];
2891 var _362=_361[k];
2892 if(k=="style"&&typeof (v)=="string"){
2893 elem.style.cssText=v;
2894 }else{
2895 if(typeof (_362)=="string"){
2896 elem[_362]=v;
2897 }else{
2898 if(typeof (elem[k])=="object"&&typeof (v)=="object"){
2899 _360(elem[k],v);
2900 }else{
2901 if(k.substring(0,2)=="on"){
2902 if(typeof (v)=="string"){
2903 v=new Function(v);
2904 }
2905 elem[k]=v;
2906 }else{
2907 elem.setAttribute(k,v);
2908 }
2909 }
2910 }
2911 }
2912 }
2913 }
2914 }
2915 return elem;
2916 },appendChildNodes:function(node){
2917 var elem=node;
2918 var self=MochiKit.DOM;
2919 if(typeof (node)=="string"){
2920 elem=self.getElement(node);
2921 }
2922 var _363=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];
2923 var _364=MochiKit.Base.concat;
2924 while(_363.length){
2925 var n=_363.shift();
2926 if(typeof (n)=="undefined"||n===null){
2927 }else{
2928 if(typeof (n.nodeType)=="number"){
2929 elem.appendChild(n);
2930 }else{
2931 _363=_364(n,_363);
2932 }
2933 }
2934 }
2935 return elem;
2936 },replaceChildNodes:function(node){
2937 var elem=node;
2938 var self=MochiKit.DOM;
2939 if(typeof (node)=="string"){
2940 elem=self.getElement(node);
2941 arguments[0]=elem;
2942 }
2943 var _365;
2944 while((_365=elem.firstChild)){
2945 elem.removeChild(_365);
2946 }
2947 if(arguments.length<2){
2948 return elem;
2949 }else{
2950 return self.appendChildNodes.apply(this,arguments);
2951 }
2952 },createDOM:function(name,_366){
2953 var elem;
2954 var self=MochiKit.DOM;
2955 var m=MochiKit.Base;
2956 if(typeof (_366)=="string"||typeof (_366)=="number"){
2957 var args=m.extend([name,null],arguments,1);
2958 return arguments.callee.apply(this,args);
2959 }
2960 if(typeof (name)=="string"){
2961 var _367=self._xhtml;
2962 if(_366&&!self.attributeArray.compliant){
2963 var _368="";
2964 if("name" in _366){
2965 _368+=" name=\""+self.escapeHTML(_366.name)+"\"";
2966 }
2967 if(name=="input"&&"type" in _366){
2968 _368+=" type=\""+self.escapeHTML(_366.type)+"\"";
2969 }
2970 if(_368){
2971 name="<"+name+_368+">";
2972 _367=false;
2973 }
2974 }
2975 var d=self._document;
2976 if(_367&&d===document){
2977 elem=d.createElementNS("http://www.w3.org/1999/xhtml",name);
2978 }else{
2979 elem=d.createElement(name);
2980 }
2981 }else{
2982 elem=name;
2983 }
2984 if(_366){
2985 self.updateNodeAttributes(elem,_366);
2986 }
2987 if(arguments.length<=2){
2988 return elem;
2989 }else{
2990 var args=m.extend([elem],arguments,2);
2991 return self.appendChildNodes.apply(this,args);
2992 }
2993 },createDOMFunc:function(){
2994 var m=MochiKit.Base;
2995 return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments));
2996 },removeElement:function(elem){
2997 var e=MochiKit.DOM.getElement(elem);
2998 e.parentNode.removeChild(e);
2999 return e;
3000 },swapDOM:function(dest,src){
3001 var self=MochiKit.DOM;
3002 dest=self.getElement(dest);
3003 var _371=dest.parentNode;
3004 if(src){
3005 src=self.getElement(src);
3006 _371.replaceChild(src,dest);
3007 }else{
3008 _371.removeChild(dest);
3009 }
3010 return src;
3011 },getElement:function(id){
3012 var self=MochiKit.DOM;
3013 if(arguments.length==1){
3014 return ((typeof (id)=="string")?self._document.getElementById(id):id);
3015 }else{
3016 return MochiKit.Base.map(self.getElement,arguments);
3017 }
3018 },getElementsByTagAndClassName:function(_373,_374,_375){
3019 var self=MochiKit.DOM;
3020 if(typeof (_373)=="undefined"||_373===null){
3021 _373="*";
3022 }
3023 if(typeof (_375)=="undefined"||_375===null){
3024 _375=self._document;
3025 }
3026 _375=self.getElement(_375);
3027 var _376=(_375.getElementsByTagName(_373)||self._document.all);
3028 if(typeof (_374)=="undefined"||_374===null){
3029 return MochiKit.Base.extend(null,_376);
3030 }
3031 var _377=[];
3032 for(var i=0;i<_376.length;i++){
3033 var _378=_376[i];
3034 var cls=_378.className;
3035 if(!cls){
3036 continue;
3037 }
3038 var _380=cls.split(" ");
3039 for(var j=0;j<_380.length;j++){
3040 if(_380[j]==_374){
3041 _377.push(_378);
3042 break;
3043 }
3044 }
3045 }
3046 return _377;
3047 },_newCallStack:function(path,once){
3048 var rval=function(){
3049 var _383=arguments.callee.callStack;
3050 for(var i=0;i<_383.length;i++){
3051 if(_383[i].apply(this,arguments)===false){
3052 break;
3053 }
3054 }
3055 if(once){
3056 try{
3057 this[path]=null;
3058 }
3059 catch(e){
3060 }
3061 }
3062 };
3063 rval.callStack=[];
3064 return rval;
3065 },addToCallStack:function(_384,path,func,once){
3066 var self=MochiKit.DOM;
3067 var _385=_384[path];
3068 var _386=_385;
3069 if(!(typeof (_385)=="function"&&typeof (_385.callStack)=="object"&&_385.callStack!==null)){
3070 _386=self._newCallStack(path,once);
3071 if(typeof (_385)=="function"){
3072 _386.callStack.push(_385);
3073 }
3074 _384[path]=_386;
3075 }
3076 _386.callStack.push(func);
3077 },addLoadEvent:function(func){
3078 var self=MochiKit.DOM;
3079 self.addToCallStack(self._window,"onload",func,true);
3080 },focusOnLoad:function(_387){
3081 var self=MochiKit.DOM;
3082 self.addLoadEvent(function(){
3083 _387=self.getElement(_387);
3084 if(_387){
3085 _387.focus();
3086 }
3087 });
3088 },setElementClass:function(_388,_389){
3089 var self=MochiKit.DOM;
3090 var obj=self.getElement(_388);
3091 if(self.attributeArray.compliant){
3092 obj.setAttribute("class",_389);
3093 }else{
3094 obj.setAttribute("className",_389);
3095 }
3096 },toggleElementClass:function(_390){
3097 var self=MochiKit.DOM;
3098 for(var i=1;i<arguments.length;i++){
3099 var obj=self.getElement(arguments[i]);
3100 if(!self.addElementClass(obj,_390)){
3101 self.removeElementClass(obj,_390);
3102 }
3103 }
3104 },addElementClass:function(_391,_392){
3105 var self=MochiKit.DOM;
3106 var obj=self.getElement(_391);
3107 var cls=obj.className;
3108 if(cls==undefined||cls.length===0){
3109 self.setElementClass(obj,_392);
3110 return true;
3111 }
3112 if(cls==_392){
3113 return false;
3114 }
3115 var _393=cls.split(" ");
3116 for(var i=0;i<_393.length;i++){
3117 if(_393[i]==_392){
3118 return false;
3119 }
3120 }
3121 self.setElementClass(obj,cls+" "+_392);
3122 return true;
3123 },removeElementClass:function(_394,_395){
3124 var self=MochiKit.DOM;
3125 var obj=self.getElement(_394);
3126 var cls=obj.className;
3127 if(cls==undefined||cls.length===0){
3128 return false;
3129 }
3130 if(cls==_395){
3131 self.setElementClass(obj,"");
3132 return true;
3133 }
3134 var _396=cls.split(" ");
3135 for(var i=0;i<_396.length;i++){
3136 if(_396[i]==_395){
3137 _396.splice(i,1);
3138 self.setElementClass(obj,_396.join(" "));
3139 return true;
3140 }
3141 }
3142 return false;
3143 },swapElementClass:function(_397,_398,_399){
3144 var obj=MochiKit.DOM.getElement(_397);
3145 var res=MochiKit.DOM.removeElementClass(obj,_398);
3146 if(res){
3147 MochiKit.DOM.addElementClass(obj,_399);
3148 }
3149 return res;
3150 },hasElementClass:function(_400,_401){
3151 var obj=MochiKit.DOM.getElement(_400);
3152 var cls=obj.className;
3153 if(!cls){
3154 return false;
3155 }
3156 var _402=cls.split(" ");
3157 for(var i=1;i<arguments.length;i++){
3158 var good=false;
3159 for(var j=0;j<_402.length;j++){
3160 if(_402[j]==arguments[i]){
3161 good=true;
3162 break;
3163 }
3164 }
3165 if(!good){
3166 return false;
3167 }
3168 }
3169 return true;
3170 },escapeHTML:function(s){
3171 return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
3172 },toHTML:function(dom){
3173 return MochiKit.DOM.emitHTML(dom).join("");
3174 },emitHTML:function(dom,lst){
3175 if(typeof (lst)=="undefined"||lst===null){
3176 lst=[];
3177 }
3178 var _405=[dom];
3179 var self=MochiKit.DOM;
3180 var _406=self.escapeHTML;
3181 var _407=self.attributeArray;
3182 while(_405.length){
3183 dom=_405.pop();
3184 if(typeof (dom)=="string"){
3185 lst.push(dom);
3186 }else{
3187 if(dom.nodeType==1){
3188 lst.push("<"+dom.tagName.toLowerCase());
3189 var _408=[];
3190 var _409=_407(dom);
3191 for(var i=0;i<_409.length;i++){
3192 var a=_409[i];
3193 _408.push([" ",a.name,"=\"",_406(a.value),"\""]);
3194 }
3195 _408.sort();
3196 for(i=0;i<_408.length;i++){
3197 var _410=_408[i];
3198 for(var j=0;j<_410.length;j++){
3199 lst.push(_410[j]);
3200 }
3201 }
3202 if(dom.hasChildNodes()){
3203 lst.push(">");
3204 _405.push("</"+dom.tagName.toLowerCase()+">");
3205 var _411=dom.childNodes;
3206 for(i=_411.length-1;i>=0;i--){
3207 _405.push(_411[i]);
3208 }
3209 }else{
3210 lst.push("/>");
3211 }
3212 }else{
3213 if(dom.nodeType==3){
3214 lst.push(_406(dom.nodeValue));
3215 }
3216 }
3217 }
3218 }
3219 return lst;
3220 },scrapeText:function(node,_412){
3221 var rval=[];
3222 (function(node){
3223 var cn=node.childNodes;
3224 if(cn){
3225 for(var i=0;i<cn.length;i++){
3226 arguments.callee.call(this,cn[i]);
3227 }
3228 }
3229 var _414=node.nodeValue;
3230 if(typeof (_414)=="string"){
3231 rval.push(_414);
3232 }
3233 })(MochiKit.DOM.getElement(node));
3234 if(_412){
3235 return rval;
3236 }else{
3237 return rval.join("");
3238 }
3239 },removeEmptyTextNodes:function(_415){
3240 _415=MochiKit.DOM.getElement(_415);
3241 for(var i=0;i<_415.childNodes.length;i++){
3242 var node=_415.childNodes[i];
3243 if(node.nodeType==3&&!/\S/.test(node.nodeValue)){
3244 node.parentNode.removeChild(node);
3245 }
3246 }
3247 },__new__:function(win){
3248 var m=MochiKit.Base;
3249 if(typeof (document)!="undefined"){
3250 this._document=document;
3251 var _416="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
3252 this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===_416);
3253 }else{
3254 if(MochiKit.MockDOM){
3255 this._document=MochiKit.MockDOM.document;
3256 }
3257 }
3258 this._window=win;
3259 this.domConverters=new m.AdapterRegistry();
3260 var _417=this._document.createElement("span");
3261 var _418;
3262 if(_417&&_417.attributes&&_417.attributes.length>0){
3263 var _419=m.filter;
3264 _418=function(node){
3265 return _419(_418.ignoreAttrFilter,node.attributes);
3266 };
3267 _418.ignoreAttr={};
3268 var _420=_417.attributes;
3269 var _421=_418.ignoreAttr;
3270 for(var i=0;i<_420.length;i++){
3271 var a=_420[i];
3272 _421[a.name]=a.value;
3273 }
3274 _418.ignoreAttrFilter=function(a){
3275 return (_418.ignoreAttr[a.name]!=a.value);
3276 };
3277 _418.compliant=false;
3278 _418.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor"};
3279 }else{
3280 _418=function(node){
3281 return node.attributes;
3282 };
3283 _418.compliant=true;
3284 _418.renames={};
3285 }
3286 this.attributeArray=_418;
3287 var _422=function(_423,arr){
3288 var _424=arr[1].split(".");
3289 var str="";
3290 var obj={};
3291 str+="if (!MochiKit."+_424[1]+") { throw new Error(\"";
3292 str+="This function has been deprecated and depends on MochiKit.";
3293 str+=_424[1]+".\");}";
3294 str+="return MochiKit."+_424[1]+"."+arr[0];
3295 str+=".apply(this, arguments);";
3296 obj[_424[2]]=new Function(str);
3297 MochiKit.Base.update(MochiKit[_423],obj);
3298 };
3299 for(var i;i<MochiKit.DOM.DEPRECATED.length;i++){
3300 _422("DOM",MochiKit.DOM.DEPRECATED[i]);
3301 }
3302 var _425=this.createDOMFunc;
3303 this.UL=_425("ul");
3304 this.OL=_425("ol");
3305 this.LI=_425("li");
3306 this.TD=_425("td");
3307 this.TR=_425("tr");
3308 this.TBODY=_425("tbody");
3309 this.THEAD=_425("thead");
3310 this.TFOOT=_425("tfoot");
3311 this.TABLE=_425("table");
3312 this.TH=_425("th");
3313 this.INPUT=_425("input");
3314 this.SPAN=_425("span");
3315 this.A=_425("a");
3316 this.DIV=_425("div");
3317 this.IMG=_425("img");
3318 this.BUTTON=_425("button");
3319 this.TT=_425("tt");
3320 this.PRE=_425("pre");
3321 this.H1=_425("h1");
3322 this.H2=_425("h2");
3323 this.H3=_425("h3");
3324 this.BR=_425("br");
3325 this.HR=_425("hr");
3326 this.LABEL=_425("label");
3327 this.TEXTAREA=_425("textarea");
3328 this.FORM=_425("form");
3329 this.P=_425("p");
3330 this.SELECT=_425("select");
3331 this.OPTION=_425("option");
3332 this.OPTGROUP=_425("optgroup");
3333 this.LEGEND=_425("legend");
3334 this.FIELDSET=_425("fieldset");
3335 this.STRONG=_425("strong");
3336 this.CANVAS=_425("canvas");
3337 this.$=this.getElement;
3338 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
3339 m.nameFunctions(this);
3340 }});
3341 MochiKit.DOM.__new__(((typeof (window)=="undefined")?this:window));
3342 if(MochiKit.__export__){
3343 withWindow=MochiKit.DOM.withWindow;
3344 withDocument=MochiKit.DOM.withDocument;
3345 }
3346 MochiKit.Base._exportSymbols(this,MochiKit.DOM);
3347 if(typeof (dojo)!="undefined"){
3348 dojo.provide("MochiKit.Style");
3349 dojo.require("MochiKit.Base");
3350 dojo.require("MochiKit.DOM");
3351 }
3352 if(typeof (JSAN)!="undefined"){
3353 JSAN.use("MochiKit.Base",[]);
3354 }
3355 try{
3356 if(typeof (MochiKit.Base)=="undefined"){
3357 throw "";
3358 }
3359 }
3360 catch(e){
3361 throw "MochiKit.Style depends on MochiKit.Base!";
3362 }
3363 try{
3364 if(typeof (MochiKit.DOM)=="undefined"){
3365 throw "";
3366 }
3367 }
3368 catch(e){
3369 throw "MochiKit.Style depends on MochiKit.DOM!";
3370 }
3371 if(typeof (MochiKit.Style)=="undefined"){
3372 MochiKit.Style={};
3373 }
3374 MochiKit.Style.NAME="MochiKit.Style";
3375 MochiKit.Style.VERSION="1.4";
3376 MochiKit.Style.__repr__=function(){
3377 return "["+this.NAME+" "+this.VERSION+"]";
3378 };
3379 MochiKit.Style.toString=function(){
3380 return this.__repr__();
3381 };
3382 MochiKit.Style.EXPORT_OK=[];
3383 MochiKit.Style.EXPORT=["setOpacity","getOpacity","setStyle","getStyle","computedStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"];
3384 MochiKit.Style.Dimensions=function(w,h){
3385 this.w=w;
3386 this.h=h;
3387 };
3388 MochiKit.Style.Dimensions.prototype.__repr__=function(){
3389 var repr=MochiKit.Base.repr;
3390 return "{w: "+repr(this.w)+", h: "+repr(this.h)+"}";
3391 };
3392 MochiKit.Style.Dimensions.prototype.toString=function(){
3393 return this.__repr__();
3394 };
3395 MochiKit.Style.Coordinates=function(x,y){
3396 this.x=x;
3397 this.y=y;
3398 };
3399 MochiKit.Style.Coordinates.prototype.__repr__=function(){
3400 var repr=MochiKit.Base.repr;
3401 return "{x: "+repr(this.x)+", y: "+repr(this.y)+"}";
3402 };
3403 MochiKit.Style.Coordinates.prototype.toString=function(){
3404 return this.__repr__();
3405 };
3406 MochiKit.Base.update(MochiKit.Style,{computedStyle:function(elem,_430){
3407 var dom=MochiKit.DOM;
3408 var d=dom._document;
3409 elem=dom.getElement(elem);
3410 _430=MochiKit.Base.camelize(_430);
3411 if(!elem||elem==d){
3412 return undefined;
3413 }
3414 if(_430=="opacity"&&elem.filters){
3415 try{
3416 return elem.filters.item("DXImageTransform.Microsoft.Alpha").opacity/100;
3417 }
3418 catch(e){
3419 try{
3420 return elem.filters.item("alpha").opacity/100;
3421 }
3422 catch(e){
3423 }
3424 }
3425 }
3426 if(elem.currentStyle){
3427 return elem.currentStyle[_430];
3428 }
3429 if(typeof (d.defaultView)=="undefined"){
3430 return undefined;
3431 }
3432 if(d.defaultView===null){
3433 return undefined;
3434 }
3435 var _431=d.defaultView.getComputedStyle(elem,null);
3436 if(typeof (_431)=="undefined"||_431===null){
3437 return undefined;
3438 }
3439 var _432=_430.replace(/([A-Z])/g,"-$1").toLowerCase();
3440 return _431.getPropertyValue(_432);
3441 },getStyle:function(elem,_433){
3442 elem=MochiKit.DOM.getElement(elem);
3443 var _434=elem.style[MochiKit.Base.camelize(_433)];
3444 if(!_434){
3445 if(document.defaultView&&document.defaultView.getComputedStyle){
3446 var css=document.defaultView.getComputedStyle(elem,null);
3447 _434=css?css.getPropertyValue(_433):null;
3448 }else{
3449 if(elem.currentStyle){
3450 _434=elem.currentStyle[MochiKit.Base.camelize(_433)];
3451 }
3452 }
3453 }
3454 if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_433)!=-1)){
3455 if(MochiKit.Style.getStyle(elem,"position")=="static"){
3456 _434="auto";
3457 }
3458 }
3459 return _434=="auto"?null:_434;
3460 },setStyle:function(elem,_436){
3461 elem=MochiKit.DOM.getElement(elem);
3462 for(name in _436){
3463 elem.style[MochiKit.Base.camelize(name)]=_436[name];
3464 }
3465 },getOpacity:function(elem){
3466 var _437;
3467 if(_437=MochiKit.Style.getStyle(elem,"opacity")){
3468 return parseFloat(_437);
3469 }
3470 if(_437=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/)){
3471 if(_437[1]){
3472 return parseFloat(_437[1])/100;
3473 }
3474 }
3475 return 1;
3476 },setOpacity:function(elem,o){
3477 elem=MochiKit.DOM.getElement(elem);
3478 var self=MochiKit.Style;
3479 if(o==1){
3480 var _438=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|Safari|KHTML/.test(navigator.userAgent));
3481 self.setStyle(elem,{opacity:_438?0.999999:1});
3482 if(/MSIE/.test(navigator.userAgent)){
3483 self.setStyle(elem,{filter:self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")});
3484 }
3485 }else{
3486 if(o<0.00001){
3487 o=0;
3488 }
3489 self.setStyle(elem,{opacity:o});
3490 if(/MSIE/.test(navigator.userAgent)){
3491 self.setStyle(elem,{filter:self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+o*100+")"});
3492 }
3493 }
3494 },getElementPosition:function(elem,_439){
3495 var self=MochiKit.Style;
3496 var dom=MochiKit.DOM;
3497 elem=dom.getElement(elem);
3498 if(!elem||(!(elem.x&&elem.y)&&(!elem.parentNode==null||self.computedStyle(elem,"display")=="none"))){
3499 return undefined;
3500 }
3501 var c=new self.Coordinates(0,0);
3502 var box=null;
3503 var _442=null;
3504 var d=MochiKit.DOM._document;
3505 var de=d.documentElement;
3506 var b=d.body;
3507 if(!elem.parentNode&&elem.x&&elem.y){
3508 c.x+=elem.x||0;
3509 c.y+=elem.y||0;
3510 }else{
3511 if(elem.getBoundingClientRect){
3512 box=elem.getBoundingClientRect();
3513 c.x+=box.left+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);
3514 c.y+=box.top+(de.scrollTop||b.scrollTop)-(de.clientTop||0);
3515 }else{
3516 if(elem.offsetParent){
3517 c.x+=elem.offsetLeft;
3518 c.y+=elem.offsetTop;
3519 _442=elem.offsetParent;
3520 if(_442!=elem){
3521 while(_442){
3522 c.x+=_442.offsetLeft;
3523 c.y+=_442.offsetTop;
3524 _442=_442.offsetParent;
3525 }
3526 }
3527 var ua=navigator.userAgent.toLowerCase();
3528 if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(ua.indexOf("safari")!=-1&&self.computedStyle(elem,"position")=="absolute")){
3529 c.x-=b.offsetLeft;
3530 c.y-=b.offsetTop;
3531 }
3532 }
3533 }
3534 }
3535 if(typeof (_439)!="undefined"){
3536 _439=arguments.callee(_439);
3537 if(_439){
3538 c.x-=(_439.x||0);
3539 c.y-=(_439.y||0);
3540 }
3541 }
3542 if(elem.parentNode){
3543 _442=elem.parentNode;
3544 }else{
3545 _442=null;
3546 }
3547 while(_442){
3548 var _445=_442.tagName.toUpperCase();
3549 if(_445==="BODY"||_445==="HTML"){
3550 break;
3551 }
3552 c.x-=_442.scrollLeft;
3553 c.y-=_442.scrollTop;
3554 if(_442.parentNode){
3555 _442=_442.parentNode;
3556 }else{
3557 _442=null;
3558 }
3559 }
3560 return c;
3561 },setElementPosition:function(elem,_446,_447){
3562 elem=MochiKit.DOM.getElement(elem);
3563 if(typeof (_447)=="undefined"){
3564 _447="px";
3565 }
3566 var _448={};
3567 var _449=MochiKit.Base.isUndefinedOrNull;
3568 if(!_449(_446.x)){
3569 _448["left"]=_446.x+_447;
3570 }
3571 if(!_449(_446.y)){
3572 _448["top"]=_446.y+_447;
3573 }
3574 MochiKit.DOM.updateNodeAttributes(elem,{"style":_448});
3575 },getElementDimensions:function(elem){
3576 var self=MochiKit.Style;
3577 var dom=MochiKit.DOM;
3578 if(typeof (elem.w)=="number"||typeof (elem.h)=="number"){
3579 return new self.Dimensions(elem.w||0,elem.h||0);
3580 }
3581 elem=dom.getElement(elem);
3582 if(!elem){
3583 return undefined;
3584 }
3585 var disp=self.computedStyle(elem,"display");
3586 if(disp!="none"&&disp!=""&&typeof (disp)!="undefined"){
3587 return new self.Dimensions(elem.offsetWidth||0,elem.offsetHeight||0);
3588 }
3589 var s=elem.style;
3590 var _451=s.visibility;
3591 var _452=s.position;
3592 s.visibility="hidden";
3593 s.position="absolute";
3594 s.display="";
3595 var _453=elem.offsetWidth;
3596 var _454=elem.offsetHeight;
3597 s.display="none";
3598 s.position=_452;
3599 s.visibility=_451;
3600 return new self.Dimensions(_453,_454);
3601 },setElementDimensions:function(elem,_455,_456){
3602 elem=MochiKit.DOM.getElement(elem);
3603 if(typeof (_456)=="undefined"){
3604 _456="px";
3605 }
3606 var _457={};
3607 var _458=MochiKit.Base.isUndefinedOrNull;
3608 if(!_458(_455.w)){
3609 _457["width"]=_455.w+_456;
3610 }
3611 if(!_458(_455.h)){
3612 _457["height"]=_455.h+_456;
3613 }
3614 MochiKit.DOM.updateNodeAttributes(elem,{"style":_457});
3615 },setDisplayForElement:function(_459,_460){
3616 var _461=MochiKit.Base.extend(null,arguments,1);
3617 var _462=MochiKit.DOM.getElement;
3618 for(var i=0;i<_461.length;i++){
3619 var _460=_462(_461[i]);
3620 if(_460){
3621 _460.style.display=_459;
3622 }
3623 }
3624 },getViewportDimensions:function(){
3625 var d=new MochiKit.Style.Dimensions();
3626 var w=MochiKit.DOM._window;
3627 var b=MochiKit.DOM._document.body;
3628 if(w.innerWidth){
3629 d.w=w.innerWidth;
3630 d.h=w.innerHeight;
3631 }else{
3632 if(b.parentElement.clientWidth){
3633 d.w=b.parentElement.clientWidth;
3634 d.h=b.parentElement.clientHeight;
3635 }else{
3636 if(b&&b.clientWidth){
3637 d.w=b.clientWidth;
3638 d.h=b.clientHeight;
3639 }
3640 }
3641 }
3642 return d;
3643 },getViewportPosition:function(){
3644 var c=new MochiKit.Style.Coordinates(0,0);
3645 var d=MochiKit.DOM._document;
3646 var de=d.documentElement;
3647 var db=d.body;
3648 if(de&&(de.scrollTop||de.scrollLeft)){
3649 c.x=de.scrollLeft;
3650 c.y=de.scrollTop;
3651 }else{
3652 if(db){
3653 c.x=db.scrollLeft;
3654 c.y=db.scrollTop;
3655 }
3656 }
3657 return c;
3658 },__new__:function(){
3659 var m=MochiKit.Base;
3660 this.elementPosition=this.getElementPosition;
3661 this.elementDimensions=this.getElementDimensions;
3662 this.hideElement=m.partial(this.setDisplayForElement,"none");
3663 this.showElement=m.partial(this.setDisplayForElement,"block");
3664 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
3665 m.nameFunctions(this);
3666 }});
3667 MochiKit.Style.__new__();
3668 MochiKit.Base._exportSymbols(this,MochiKit.Style);
3669 if(typeof (dojo)!="undefined"){
3670 dojo.provide("MochiKit.LoggingPane");
3671 dojo.require("MochiKit.Logging");
3672 dojo.require("MochiKit.Base");
3673 }
3674 if(typeof (JSAN)!="undefined"){
3675 JSAN.use("MochiKit.Logging",[]);
3676 JSAN.use("MochiKit.Base",[]);
3677 }
3678 try{
3679 if(typeof (MochiKit.Base)=="undefined"||typeof (MochiKit.Logging)=="undefined"){
3680 throw "";
3681 }
3682 }
3683 catch(e){
3684 throw "MochiKit.LoggingPane depends on MochiKit.Base and MochiKit.Logging!";
3685 }
3686 if(typeof (MochiKit.LoggingPane)=="undefined"){
3687 MochiKit.LoggingPane={};
3688 }
3689 MochiKit.LoggingPane.NAME="MochiKit.LoggingPane";
3690 MochiKit.LoggingPane.VERSION="1.4";
3691 MochiKit.LoggingPane.__repr__=function(){
3692 return "["+this.NAME+" "+this.VERSION+"]";
3693 };
3694 MochiKit.LoggingPane.toString=function(){
3695 return this.__repr__();
3696 };
3697 MochiKit.LoggingPane.createLoggingPane=function(_464){
3698 var m=MochiKit.LoggingPane;
3699 _464=!(!_464);
3700 if(m._loggingPane&&m._loggingPane.inline!=_464){
3701 m._loggingPane.closePane();
3702 m._loggingPane=null;
3703 }
3704 if(!m._loggingPane||m._loggingPane.closed){
3705 m._loggingPane=new m.LoggingPane(_464,MochiKit.Logging.logger);
3706 }
3707 return m._loggingPane;
3708 };
3709 MochiKit.LoggingPane.LoggingPane=function(_465,_466){
3710 if(typeof (_466)=="undefined"||_466===null){
3711 _466=MochiKit.Logging.logger;
3712 }
3713 this.logger=_466;
3714 var _467=MochiKit.Base.update;
3715 var _468=MochiKit.Base.updatetree;
3716 var bind=MochiKit.Base.bind;
3717 var _469=MochiKit.Base.clone;
3718 var win=window;
3719 var uid="_MochiKit_LoggingPane";
3720 if(typeof (MochiKit.DOM)!="undefined"){
3721 win=MochiKit.DOM.currentWindow();
3722 }
3723 if(!_465){
3724 var url=win.location.href.split("?")[0].replace(/[#:\/.><&-]/g,"_");
3725 var name=uid+"_"+url;
3726 var nwin=win.open("",name,"dependent,resizable,height=200");
3727 if(!nwin){
3728 alert("Not able to open debugging window due to pop-up blocking.");
3729 return undefined;
3730 }
3731 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>");
3732 nwin.document.close();
3733 nwin.document.title+=" "+win.document.title;
3734 win=nwin;
3735 }
3736 var doc=win.document;
3737 this.doc=doc;
3738 var _472=doc.getElementById(uid);
3739 var _473=!!_472;
3740 if(_472&&typeof (_472.loggingPane)!="undefined"){
3741 _472.loggingPane.logger=this.logger;
3742 _472.loggingPane.buildAndApplyFilter();
3743 return _472.loggingPane;
3744 }
3745 if(_473){
3746 var _474;
3747 while((_474=_472.firstChild)){
3748 _472.removeChild(_474);
3749 }
3750 }else{
3751 _472=doc.createElement("div");
3752 _472.id=uid;
3753 }
3754 _472.loggingPane=this;
3755 var _475=doc.createElement("input");
3756 var _476=doc.createElement("input");
3757 var _477=doc.createElement("button");
3758 var _478=doc.createElement("button");
3759 var _479=doc.createElement("button");
3760 var _480=doc.createElement("button");
3761 var _481=doc.createElement("div");
3762 var _482=doc.createElement("div");
3763 var _483=uid+"_Listener";
3764 this.colorTable=_469(this.colorTable);
3765 var _484=[];
3766 var _485=null;
3767 var _486=function(msg){
3768 var _487=msg.level;
3769 if(typeof (_487)=="number"){
3770 _487=MochiKit.Logging.LogLevel[_487];
3771 }
3772 return _487;
3773 };
3774 var _488=function(msg){
3775 return msg.info.join(" ");
3776 };
3777 var _489=bind(function(msg){
3778 var _490=_486(msg);
3779 var text=_488(msg);
3780 var c=this.colorTable[_490];
3781 var p=doc.createElement("span");
3782 p.className="MochiKit-LogMessage MochiKit-LogLevel-"+_490;
3783 p.style.cssText="margin: 0px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; wrap-option: emergency; color: "+c;
3784 p.appendChild(doc.createTextNode(_490+": "+text));
3785 _482.appendChild(p);
3786 _482.appendChild(doc.createElement("br"));
3787 if(_481.offsetHeight>_481.scrollHeight){
3788 _481.scrollTop=0;
3789 }else{
3790 _481.scrollTop=_481.scrollHeight;
3791 }
3792 },this);
3793 var _492=function(msg){
3794 _484[_484.length]=msg;
3795 _489(msg);
3796 };
3797 var _493=function(){
3798 var _494,infore;
3799 try{
3800 _494=new RegExp(_475.value);
3801 infore=new RegExp(_476.value);
3802 }
3803 catch(e){
3804 logDebug("Error in filter regex: "+e.message);
3805 return null;
3806 }
3807 return function(msg){
3808 return (_494.test(_486(msg))&&infore.test(_488(msg)));
3809 };
3810 };
3811 var _495=function(){
3812 while(_482.firstChild){
3813 _482.removeChild(_482.firstChild);
3814 }
3815 };
3816 var _496=function(){
3817 _484=[];
3818 _495();
3819 };
3820 var _497=bind(function(){
3821 if(this.closed){
3822 return;
3823 }
3824 this.closed=true;
3825 if(MochiKit.LoggingPane._loggingPane==this){
3826 MochiKit.LoggingPane._loggingPane=null;
3827 }
3828 this.logger.removeListener(_483);
3829 _472.loggingPane=null;
3830 if(_465){
3831 _472.parentNode.removeChild(_472);
3832 }else{
3833 this.win.close();
3834 }
3835 },this);
3836 var _498=function(){
3837 _495();
3838 for(var i=0;i<_484.length;i++){
3839 var msg=_484[i];
3840 if(_485===null||_485(msg)){
3841 _489(msg);
3842 }
3843 }
3844 };
3845 this.buildAndApplyFilter=function(){
3846 _485=_493();
3847 _498();
3848 this.logger.removeListener(_483);
3849 this.logger.addListener(_483,_485,_492);
3850 };
3851 var _499=bind(function(){
3852 _484=this.logger.getMessages();
3853 _498();
3854 },this);
3855 var _500=bind(function(_501){
3856 _501=_501||window.event;
3857 key=_501.which||_501.keyCode;
3858 if(key==13){
3859 this.buildAndApplyFilter();
3860 }
3861 },this);
3862 var _502="display: block; z-index: 1000; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: "+this.logFont;
3863 if(_465){
3864 _502+="; height: 10em; border-top: 2px solid black";
3865 }else{
3866 _502+="; height: 100%;";
3867 }
3868 _472.style.cssText=_502;
3869 if(!_473){
3870 doc.body.appendChild(_472);
3871 }
3872 _502={"cssText":"width: 33%; display: inline; font: "+this.logFont};
3873 _468(_475,{"value":"FATAL|ERROR|WARNING|INFO|DEBUG","onkeypress":_500,"style":_502});
3874 _472.appendChild(_475);
3875 _468(_476,{"value":".*","onkeypress":_500,"style":_502});
3876 _472.appendChild(_476);
3877 _502="width: 8%; display:inline; font: "+this.logFont;
3878 _477.appendChild(doc.createTextNode("Filter"));
3879 _477.onclick=bind("buildAndApplyFilter",this);
3880 _477.style.cssText=_502;
3881 _472.appendChild(_477);
3882 _478.appendChild(doc.createTextNode("Load"));
3883 _478.onclick=_499;
3884 _478.style.cssText=_502;
3885 _472.appendChild(_478);
3886 _479.appendChild(doc.createTextNode("Clear"));
3887 _479.onclick=_496;
3888 _479.style.cssText=_502;
3889 _472.appendChild(_479);
3890 _480.appendChild(doc.createTextNode("Close"));
3891 _480.onclick=_497;
3892 _480.style.cssText=_502;
3893 _472.appendChild(_480);
3894 _481.style.cssText="overflow: auto; width: 100%";
3895 _482.style.cssText="width: 100%; height: "+(_465?"8em":"100%");
3896 _481.appendChild(_482);
3897 _472.appendChild(_481);
3898 this.buildAndApplyFilter();
3899 _499();
3900 if(_465){
3901 this.win=undefined;
3902 }else{
3903 this.win=win;
3904 }
3905 this.inline=_465;
3906 this.closePane=_497;
3907 this.closed=false;
3908 return this;
3909 };
3910 MochiKit.LoggingPane.LoggingPane.prototype={"logFont":"8pt Verdana,sans-serif","colorTable":{"ERROR":"red","FATAL":"darkred","WARNING":"blue","INFO":"black","DEBUG":"green"}};
3911 MochiKit.LoggingPane.EXPORT_OK=["LoggingPane"];
3912 MochiKit.LoggingPane.EXPORT=["createLoggingPane"];
3913 MochiKit.LoggingPane.__new__=function(){
3914 this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)};
3915 MochiKit.Base.nameFunctions(this);
3916 MochiKit.LoggingPane._loggingPane=null;
3917 };
3918 MochiKit.LoggingPane.__new__();
3919 MochiKit.Base._exportSymbols(this,MochiKit.LoggingPane);
3920 if(typeof (dojo)!="undefined"){
3921 dojo.provide("MochiKit.Color");
3922 dojo.require("MochiKit.Base");
3923 dojo.require("MochiKit.DOM");
3924 dojo.require("MochiKit.Style");
3925 }
3926 if(typeof (JSAN)!="undefined"){
3927 JSAN.use("MochiKit.Base",[]);
3928 JSAN.use("MochiKit.DOM",[]);
3929 JSAN.use("MochiKit.Style",[]);
3930 }
3931 try{
3932 if(typeof (MochiKit.Base)=="undefined"){
3933 throw "";
3934 }
3935 }
3936 catch(e){
3937 throw "MochiKit.Color depends on MochiKit.Base";
3938 }
3939 try{
3940 if(typeof (MochiKit.Base)=="undefined"){
3941 throw "";
3942 }
3943 }
3944 catch(e){
3945 throw "MochiKit.Color depends on MochiKit.DOM";
3946 }
3947 try{
3948 if(typeof (MochiKit.Base)=="undefined"){
3949 throw "";
3950 }
3951 }
3952 catch(e){
3953 throw "MochiKit.Color depends on MochiKit.Style";
3954 }
3955 if(typeof (MochiKit.Color)=="undefined"){
3956 MochiKit.Color={};
3957 }
3958 MochiKit.Color.NAME="MochiKit.Color";
3959 MochiKit.Color.VERSION="1.4";
3960 MochiKit.Color.__repr__=function(){
3961 return "["+this.NAME+" "+this.VERSION+"]";
3962 };
3963 MochiKit.Color.toString=function(){
3964 return this.__repr__();
3965 };
3966 MochiKit.Color.Color=function(red,_504,blue,_506){
3967 if(typeof (_506)=="undefined"||_506===null){
3968 _506=1;
3969 }
3970 this.rgb={r:red,g:_504,b:blue,a:_506};
3971 };
3972 MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_507){
3973 var rgb=this.rgb;
3974 var m=MochiKit.Color;
3975 return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_507);
3976 },colorWithHue:function(hue){
3977 var hsl=this.asHSL();
3978 hsl.h=hue;
3979 var m=MochiKit.Color;
3980 return m.Color.fromHSL(hsl);
3981 },colorWithSaturation:function(_511){
3982 var hsl=this.asHSL();
3983 hsl.s=_511;
3984 var m=MochiKit.Color;
3985 return m.Color.fromHSL(hsl);
3986 },colorWithLightness:function(_512){
3987 var hsl=this.asHSL();
3988 hsl.l=_512;
3989 var m=MochiKit.Color;
3990 return m.Color.fromHSL(hsl);
3991 },darkerColorWithLevel:function(_513){
3992 var hsl=this.asHSL();
3993 hsl.l=Math.max(hsl.l-_513,0);
3994 var m=MochiKit.Color;
3995 return m.Color.fromHSL(hsl);
3996 },lighterColorWithLevel:function(_514){
3997 var hsl=this.asHSL();
3998 hsl.l=Math.min(hsl.l+_514,1);
3999 var m=MochiKit.Color;
4000 return m.Color.fromHSL(hsl);
4001 },blendedColor:function(_515,_516){
4002 if(typeof (_516)=="undefined"||_516===null){
4003 _516=0.5;
4004 }
4005 var sf=1-_516;
4006 var s=this.rgb;
4007 var d=_515.rgb;
4008 var df=_516;
4009 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));
4010 },compareRGB:function(_519){
4011 var a=this.asRGB();
4012 var b=_519.asRGB();
4013 return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]);
4014 },isLight:function(){
4015 return this.asHSL().b>0.5;
4016 },isDark:function(){
4017 return (!this.isLight());
4018 },toHSLString:function(){
4019 var c=this.asHSL();
4020 var ccc=MochiKit.Color.clampColorComponent;
4021 var rval=this._hslString;
4022 if(!rval){
4023 var mid=(ccc(c.h,360).toFixed(0)+","+ccc(c.s,100).toPrecision(4)+"%"+","+ccc(c.l,100).toPrecision(4)+"%");
4024 var a=c.a;
4025 if(a>=1){
4026 a=1;
4027 rval="hsl("+mid+")";
4028 }else{
4029 if(a<=0){
4030 a=0;
4031 }
4032 rval="hsla("+mid+","+a+")";
4033 }
4034 this._hslString=rval;
4035 }
4036 return rval;
4037 },toRGBString:function(){
4038 var c=this.rgb;
4039 var ccc=MochiKit.Color.clampColorComponent;
4040 var rval=this._rgbString;
4041 if(!rval){
4042 var mid=(ccc(c.r,255).toFixed(0)+","+ccc(c.g,255).toFixed(0)+","+ccc(c.b,255).toFixed(0));
4043 if(c.a!=1){
4044 rval="rgba("+mid+","+c.a+")";
4045 }else{
4046 rval="rgb("+mid+")";
4047 }
4048 this._rgbString=rval;
4049 }
4050 return rval;
4051 },asRGB:function(){
4052 return MochiKit.Base.clone(this.rgb);
4053 },toHexString:function(){
4054 var m=MochiKit.Color;
4055 var c=this.rgb;
4056 var ccc=MochiKit.Color.clampColorComponent;
4057 var rval=this._hexString;
4058 if(!rval){
4059 rval=("#"+m.toColorPart(ccc(c.r,255))+m.toColorPart(ccc(c.g,255))+m.toColorPart(ccc(c.b,255)));
4060 this._hexString=rval;
4061 }
4062 return rval;
4063 },asHSV:function(){
4064 var hsv=this.hsv;
4065 var c=this.rgb;
4066 if(typeof (hsv)=="undefined"||hsv===null){
4067 hsv=MochiKit.Color.rgbToHSV(this.rgb);
4068 this.hsv=hsv;
4069 }
4070 return MochiKit.Base.clone(hsv);
4071 },asHSL:function(){
4072 var hsl=this.hsl;
4073 var c=this.rgb;
4074 if(typeof (hsl)=="undefined"||hsl===null){
4075 hsl=MochiKit.Color.rgbToHSL(this.rgb);
4076 this.hsl=hsl;
4077 }
4078 return MochiKit.Base.clone(hsl);
4079 },toString:function(){
4080 return this.toRGBString();
4081 },repr:function(){
4082 var c=this.rgb;
4083 var col=[c.r,c.g,c.b,c.a];
4084 return this.__class__.NAME+"("+col.join(", ")+")";
4085 }};
4086 MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_524,blue,_525){
4087 var _526=MochiKit.Color.Color;
4088 if(arguments.length==1){
4089 var rgb=red;
4090 red=rgb.r;
4091 _524=rgb.g;
4092 blue=rgb.b;
4093 if(typeof (rgb.a)=="undefined"){
4094 _525=undefined;
4095 }else{
4096 _525=rgb.a;
4097 }
4098 }
4099 return new _526(red,_524,blue,_525);
4100 },fromHSL:function(hue,_527,_528,_529){
4101 var m=MochiKit.Color;
4102 return m.Color.fromRGB(m.hslToRGB.apply(m,arguments));
4103 },fromHSV:function(hue,_530,_531,_532){
4104 var m=MochiKit.Color;
4105 return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments));
4106 },fromName:function(name){
4107 var _533=MochiKit.Color.Color;
4108 if(name.charAt(0)=="\""){
4109 name=name.substr(1,name.length-2);
4110 }
4111 var _534=_533._namedColors[name.toLowerCase()];
4112 if(typeof (_534)=="string"){
4113 return _533.fromHexString(_534);
4114 }else{
4115 if(name=="transparent"){
4116 return _533.transparentColor();
4117 }
4118 }
4119 return null;
4120 },fromString:function(_535){
4121 var self=MochiKit.Color.Color;
4122 var _536=_535.substr(0,3);
4123 if(_536=="rgb"){
4124 return self.fromRGBString(_535);
4125 }else{
4126 if(_536=="hsl"){
4127 return self.fromHSLString(_535);
4128 }else{
4129 if(_535.charAt(0)=="#"){
4130 return self.fromHexString(_535);
4131 }
4132 }
4133 }
4134 return self.fromName(_535);
4135 },fromHexString:function(_537){
4136 if(_537.charAt(0)=="#"){
4137 _537=_537.substring(1);
4138 }
4139 var _538=[];
4140 var i,hex;
4141 if(_537.length==3){
4142 for(i=0;i<3;i++){
4143 hex=_537.substr(i,1);
4144 _538.push(parseInt(hex+hex,16)/255);
4145 }
4146 }else{
4147 for(i=0;i<6;i+=2){
4148 hex=_537.substr(i,2);
4149 _538.push(parseInt(hex,16)/255);
4150 }
4151 }
4152 var _539=MochiKit.Color.Color;
4153 return _539.fromRGB.apply(_539,_538);
4154 },_fromColorString:function(pre,_541,_542,_543){
4155 if(_543.indexOf(pre)===0){
4156 _543=_543.substring(_543.indexOf("(",3)+1,_543.length-1);
4157 }
4158 var _544=_543.split(/\s*,\s*/);
4159 var _545=[];
4160 for(var i=0;i<_544.length;i++){
4161 var c=_544[i];
4162 var val;
4163 var _546=c.substring(c.length-3);
4164 if(c.charAt(c.length-1)=="%"){
4165 val=0.01*parseFloat(c.substring(0,c.length-1));
4166 }else{
4167 if(_546=="deg"){
4168 val=parseFloat(c)/360;
4169 }else{
4170 if(_546=="rad"){
4171 val=parseFloat(c)/(Math.PI*2);
4172 }else{
4173 val=_542[i]*parseFloat(c);
4174 }
4175 }
4176 }
4177 _545.push(val);
4178 }
4179 return this[_541].apply(this,_545);
4180 },fromComputedStyle:function(elem,_547){
4181 var d=MochiKit.DOM;
4182 var cls=MochiKit.Color.Color;
4183 for(elem=d.getElement(elem);elem;elem=elem.parentNode){
4184 var _548=MochiKit.Style.computedStyle.apply(d,arguments);
4185 if(!_548){
4186 continue;
4187 }
4188 var _549=cls.fromString(_548);
4189 if(!_549){
4190 break;
4191 }
4192 if(_549.asRGB().a>0){
4193 return _549;
4194 }
4195 }
4196 return null;
4197 },fromBackground:function(elem){
4198 var cls=MochiKit.Color.Color;
4199 return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor();
4200 },fromText:function(elem){
4201 var cls=MochiKit.Color.Color;
4202 return cls.fromComputedStyle(elem,"color","color")||cls.blackColor();
4203 },namedColors:function(){
4204 return MochiKit.Base.clone(MochiKit.Color.Color._namedColors);
4205 }});
4206 MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_550){
4207 v*=_550;
4208 if(v<0){
4209 return 0;
4210 }else{
4211 if(v>_550){
4212 return _550;
4213 }else{
4214 return v;
4215 }
4216 }
4217 },_hslValue:function(n1,n2,hue){
4218 if(hue>6){
4219 hue-=6;
4220 }else{
4221 if(hue<0){
4222 hue+=6;
4223 }
4224 }
4225 var val;
4226 if(hue<1){
4227 val=n1+(n2-n1)*hue;
4228 }else{
4229 if(hue<3){
4230 val=n2;
4231 }else{
4232 if(hue<4){
4233 val=n1+(n2-n1)*(4-hue);
4234 }else{
4235 val=n1;
4236 }
4237 }
4238 }
4239 return val;
4240 },hsvToRGB:function(hue,_553,_554,_555){
4241 if(arguments.length==1){
4242 var hsv=hue;
4243 hue=hsv.h;
4244 _553=hsv.s;
4245 _554=hsv.v;
4246 _555=hsv.a;
4247 }
4248 var red;
4249 var _556;
4250 var blue;
4251 if(_553===0){
4252 red=0;
4253 _556=0;
4254 blue=0;
4255 }else{
4256 var i=Math.floor(hue*6);
4257 var f=(hue*6)-i;
4258 var p=_554*(1-_553);
4259 var q=_554*(1-(_553*f));
4260 var t=_554*(1-(_553*(1-f)));
4261 switch(i){
4262 case 1:
4263 red=q;
4264 _556=_554;
4265 blue=p;
4266 break;
4267 case 2:
4268 red=p;
4269 _556=_554;
4270 blue=t;
4271 break;
4272 case 3:
4273 red=p;
4274 _556=q;
4275 blue=_554;
4276 break;
4277 case 4:
4278 red=t;
4279 _556=p;
4280 blue=_554;
4281 break;
4282 case 5:
4283 red=_554;
4284 _556=p;
4285 blue=q;
4286 break;
4287 case 6:
4288 case 0:
4289 red=_554;
4290 _556=t;
4291 blue=p;
4292 break;
4293 }
4294 }
4295 return {r:red,g:_556,b:blue,a:_555};
4296 },hslToRGB:function(hue,_558,_559,_560){
4297 if(arguments.length==1){
4298 var hsl=hue;
4299 hue=hsl.h;
4300 _558=hsl.s;
4301 _559=hsl.l;
4302 _560=hsl.a;
4303 }
4304 var red;
4305 var _561;
4306 var blue;
4307 if(_558===0){
4308 red=_559;
4309 _561=_559;
4310 blue=_559;
4311 }else{
4312 var m2;
4313 if(_559<=0.5){
4314 m2=_559*(1+_558);
4315 }else{
4316 m2=_559+_558-(_559*_558);
4317 }
4318 var m1=(2*_559)-m2;
4319 var f=MochiKit.Color._hslValue;
4320 var h6=hue*6;
4321 red=f(m1,m2,h6+2);
4322 _561=f(m1,m2,h6);
4323 blue=f(m1,m2,h6-2);
4324 }
4325 return {r:red,g:_561,b:blue,a:_560};
4326 },rgbToHSV:function(red,_565,blue,_566){
4327 if(arguments.length==1){
4328 var rgb=red;
4329 red=rgb.r;
4330 _565=rgb.g;
4331 blue=rgb.b;
4332 _566=rgb.a;
4333 }
4334 var max=Math.max(Math.max(red,_565),blue);
4335 var min=Math.min(Math.min(red,_565),blue);
4336 var hue;
4337 var _569;
4338 var _570=max;
4339 if(min==max){
4340 hue=0;
4341 _569=0;
4342 }else{
4343 var _571=(max-min);
4344 _569=_571/max;
4345 if(red==max){
4346 hue=(_565-blue)/_571;
4347 }else{
4348 if(_565==max){
4349 hue=2+((blue-red)/_571);
4350 }else{
4351 hue=4+((red-_565)/_571);
4352 }
4353 }
4354 hue/=6;
4355 if(hue<0){
4356 hue+=1;
4357 }
4358 if(hue>1){
4359 hue-=1;
4360 }
4361 }
4362 return {h:hue,s:_569,v:_570,a:_566};
4363 },rgbToHSL:function(red,_572,blue,_573){
4364 if(arguments.length==1){
4365 var rgb=red;
4366 red=rgb.r;
4367 _572=rgb.g;
4368 blue=rgb.b;
4369 _573=rgb.a;
4370 }
4371 var max=Math.max(red,Math.max(_572,blue));
4372 var min=Math.min(red,Math.min(_572,blue));
4373 var hue;
4374 var _574;
4375 var _575=(max+min)/2;
4376 var _576=max-min;
4377 if(_576===0){
4378 hue=0;
4379 _574=0;
4380 }else{
4381 if(_575<=0.5){
4382 _574=_576/(max+min);
4383 }else{
4384 _574=_576/(2-max-min);
4385 }
4386 if(red==max){
4387 hue=(_572-blue)/_576;
4388 }else{
4389 if(_572==max){
4390 hue=2+((blue-red)/_576);
4391 }else{
4392 hue=4+((red-_572)/_576);
4393 }
4394 }
4395 hue/=6;
4396 if(hue<0){
4397 hue+=1;
4398 }
4399 if(hue>1){
4400 hue-=1;
4401 }
4402 }
4403 return {h:hue,s:_574,l:_575,a:_573};
4404 },toColorPart:function(num){
4405 num=Math.round(num);
4406 var _577=num.toString(16);
4407 if(num<16){
4408 return "0"+_577;
4409 }
4410 return _577;
4411 },__new__:function(){
4412 var m=MochiKit.Base;
4413 this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]);
4414 this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]);
4415 var _578=1/3;
4416 var _579={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[_578,_578,_578],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*_578,2*_578,2*_578],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]};
4417 var _580=function(name,r,g,b,a){
4418 var rval=this.fromRGB(r,g,b,a);
4419 this[name]=function(){
4420 return rval;
4421 };
4422 return rval;
4423 };
4424 for(var k in _579){
4425 var name=k+"Color";
4426 var _582=m.concat([_580,this.Color,name],_579[k]);
4427 this.Color[name]=m.bind.apply(null,_582);
4428 }
4429 var _583=function(){
4430 for(var i=0;i<arguments.length;i++){
4431 if(!(arguments[i] instanceof Color)){
4432 return false;
4433 }
4434 }
4435 return true;
4436 };
4437 var _584=function(a,b){
4438 return a.compareRGB(b);
4439 };
4440 m.nameFunctions(this);
4441 m.registerComparator(this.Color.NAME,_583,_584);
4442 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
4443 }});
4444 MochiKit.Color.EXPORT=["Color"];
4445 MochiKit.Color.EXPORT_OK=["clampColorComponent","rgbToHSL","hslToRGB","rgbToHSV","hsvToRGB","toColorPart"];
4446 MochiKit.Color.__new__();
4447 MochiKit.Base._exportSymbols(this,MochiKit.Color);
4448 MochiKit.Color.Color._namedColors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};
4449 if(typeof (dojo)!="undefined"){
4450 dojo.provide("MochiKit.Signal");
4451 dojo.require("MochiKit.Base");
4452 dojo.require("MochiKit.DOM");
4453 dojo.require("MochiKit.Style");
4454 }
4455 if(typeof (JSAN)!="undefined"){
4456 JSAN.use("MochiKit.Base",[]);
4457 JSAN.use("MochiKit.DOM",[]);
4458 JSAN.use("MochiKit.Style",[]);
4459 }
4460 try{
4461 if(typeof (MochiKit.Base)=="undefined"){
4462 throw "";
4463 }
4464 }
4465 catch(e){
4466 throw "MochiKit.Signal depends on MochiKit.Base!";
4467 }
4468 try{
4469 if(typeof (MochiKit.DOM)=="undefined"){
4470 throw "";
4471 }
4472 }
4473 catch(e){
4474 throw "MochiKit.Signal depends on MochiKit.DOM!";
4475 }
4476 try{
4477 if(typeof (MochiKit.Style)=="undefined"){
4478 throw "";
4479 }
4480 }
4481 catch(e){
4482 throw "MochiKit.Signal depends on MochiKit.Style!";
4483 }
4484 if(typeof (MochiKit.Signal)=="undefined"){
4485 MochiKit.Signal={};
4486 }
4487 MochiKit.Signal.NAME="MochiKit.Signal";
4488 MochiKit.Signal.VERSION="1.4";
4489 MochiKit.Signal._observers=[];
4490 MochiKit.Signal.Event=function(src,e){
4491 this._event=e||window.event;
4492 this._src=src;
4493 };
4494 MochiKit.Base.update(MochiKit.Signal.Event.prototype,{__repr__:function(){
4495 var repr=MochiKit.Base.repr;
4496 var str="{event(): "+repr(this.event())+", src(): "+repr(this.src())+", type(): "+repr(this.type())+", target(): "+repr(this.target())+", modifier(): "+"{alt: "+repr(this.modifier().alt)+", ctrl: "+repr(this.modifier().ctrl)+", meta: "+repr(this.modifier().meta)+", shift: "+repr(this.modifier().shift)+", any: "+repr(this.modifier().any)+"}";
4497 if(this.type()&&this.type().indexOf("key")===0){
4498 str+=", key(): {code: "+repr(this.key().code)+", string: "+repr(this.key().string)+"}";
4499 }
4500 if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){
4501 str+=", mouse(): {page: "+repr(this.mouse().page)+", client: "+repr(this.mouse().client);
4502 if(this.type()!="mousemove"){
4503 str+=", button: {left: "+repr(this.mouse().button.left)+", middle: "+repr(this.mouse().button.middle)+", right: "+repr(this.mouse().button.right)+"}}";
4504 }else{
4505 str+="}";
4506 }
4507 }
4508 if(this.type()=="mouseover"||this.type()=="mouseout"){
4509 str+=", relatedTarget(): "+repr(this.relatedTarget());
4510 }
4511 str+="}";
4512 return str;
4513 },toString:function(){
4514 return this.__repr__();
4515 },src:function(){
4516 return this._src;
4517 },event:function(){
4518 return this._event;
4519 },type:function(){
4520 return this._event.type||undefined;
4521 },target:function(){
4522 return this._event.target||this._event.srcElement;
4523 },_relatedTarget:null,relatedTarget:function(){
4524 if(this._relatedTarget!==null){
4525 return this._relatedTarget;
4526 }
4527 var elem=null;
4528 if(this.type()=="mouseover"){
4529 elem=(this._event.relatedTarget||this._event.fromElement);
4530 }else{
4531 if(this.type()=="mouseout"){
4532 elem=(this._event.relatedTarget||this._event.toElement);
4533 }
4534 }
4535 if(elem!==null){
4536 this._relatedTarget=elem;
4537 return elem;
4538 }
4539 return undefined;
4540 },_modifier:null,modifier:function(){
4541 if(this._modifier!==null){
4542 return this._modifier;
4543 }
4544 var m={};
4545 m.alt=this._event.altKey;
4546 m.ctrl=this._event.ctrlKey;
4547 m.meta=this._event.metaKey||false;
4548 m.shift=this._event.shiftKey;
4549 m.any=m.alt||m.ctrl||m.shift||m.meta;
4550 this._modifier=m;
4551 return m;
4552 },_key:null,key:function(){
4553 if(this._key!==null){
4554 return this._key;
4555 }
4556 var k={};
4557 if(this.type()&&this.type().indexOf("key")===0){
4558 if(this.type()=="keydown"||this.type()=="keyup"){
4559 k.code=this._event.keyCode;
4560 k.string=(MochiKit.Signal._specialKeys[k.code]||"KEY_UNKNOWN");
4561 this._key=k;
4562 return k;
4563 }else{
4564 if(this.type()=="keypress"){
4565 k.code=0;
4566 k.string="";
4567 if(typeof (this._event.charCode)!="undefined"&&this._event.charCode!==0&&!MochiKit.Signal._specialMacKeys[this._event.charCode]){
4568 k.code=this._event.charCode;
4569 k.string=String.fromCharCode(k.code);
4570 }else{
4571 if(this._event.keyCode&&typeof (this._event.charCode)=="undefined"){
4572 k.code=this._event.keyCode;
4573 k.string=String.fromCharCode(k.code);
4574 }
4575 }
4576 this._key=k;
4577 return k;
4578 }
4579 }
4580 }
4581 return undefined;
4582 },_mouse:null,mouse:function(){
4583 if(this._mouse!==null){
4584 return this._mouse;
4585 }
4586 var m={};
4587 var e=this._event;
4588 if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){
4589 m.client=new MochiKit.Style.Coordinates(0,0);
4590 if(e.clientX||e.clientY){
4591 m.client.x=(!e.clientX||e.clientX<0)?0:e.clientX;
4592 m.client.y=(!e.clientY||e.clientY<0)?0:e.clientY;
4593 }
4594 m.page=new MochiKit.Style.Coordinates(0,0);
4595 if(e.pageX||e.pageY){
4596 m.page.x=(!e.pageX||e.pageX<0)?0:e.pageX;
4597 m.page.y=(!e.pageY||e.pageY<0)?0:e.pageY;
4598 }else{
4599 var de=MochiKit.DOM._document.documentElement;
4600 var b=MochiKit.DOM._document.body;
4601 m.page.x=e.clientX+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);
4602 m.page.y=e.clientY+(de.scrollTop||b.scrollTop)-(de.clientTop||0);
4603 }
4604 if(this.type()!="mousemove"){
4605 m.button={};
4606 m.button.left=false;
4607 m.button.right=false;
4608 m.button.middle=false;
4609 if(e.which){
4610 m.button.left=(e.which==1);
4611 m.button.middle=(e.which==2);
4612 m.button.right=(e.which==3);
4613 }else{
4614 m.button.left=!!(e.button&1);
4615 m.button.right=!!(e.button&2);
4616 m.button.middle=!!(e.button&4);
4617 }
4618 }
4619 this._mouse=m;
4620 return m;
4621 }
4622 return undefined;
4623 },stop:function(){
4624 this.stopPropagation();
4625 this.preventDefault();
4626 },stopPropagation:function(){
4627 if(this._event.stopPropagation){
4628 this._event.stopPropagation();
4629 }else{
4630 this._event.cancelBubble=true;
4631 }
4632 },preventDefault:function(){
4633 if(this._event.preventDefault){
4634 this._event.preventDefault();
4635 }else{
4636 if(this._confirmUnload===null){
4637 this._event.returnValue=false;
4638 }
4639 }
4640 },_confirmUnload:null,confirmUnload:function(msg){
4641 if(this.type()=="beforeunload"){
4642 this._confirmUnload=msg;
4643 this._event.returnValue=msg;
4644 }
4645 }});
4646 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_ARROW_LEFT",63232:"KEY_ARROW_UP",63235:"KEY_ARROW_RIGHT",63233:"KEY_ARROW_DOWN",63302:"KEY_INSERT",63272:"KEY_DELETE"};
4647 (function(){
4648 var _585=MochiKit.Signal._specialMacKeys;
4649 for(i=63236;i<=63242;i++){
4650 _585[i]="KEY_F"+(i-63236+1);
4651 }
4652 })();
4653 MochiKit.Signal._specialKeys={8:"KEY_BACKSPACE",9:"KEY_TAB",12:"KEY_NUM_PAD_CLEAR",13:"KEY_ENTER",16:"KEY_SHIFT",17:"KEY_CTRL",18:"KEY_ALT",19:"KEY_PAUSE",20:"KEY_CAPS_LOCK",27:"KEY_ESCAPE",32:"KEY_SPACEBAR",33:"KEY_PAGE_UP",34:"KEY_PAGE_DOWN",35:"KEY_END",36:"KEY_HOME",37:"KEY_ARROW_LEFT",38:"KEY_ARROW_UP",39:"KEY_ARROW_RIGHT",40:"KEY_ARROW_DOWN",44:"KEY_PRINT_SCREEN",45:"KEY_INSERT",46:"KEY_DELETE",59:"KEY_SEMICOLON",91:"KEY_WINDOWS_LEFT",92:"KEY_WINDOWS_RIGHT",93:"KEY_SELECT",106:"KEY_NUM_PAD_ASTERISK",107:"KEY_NUM_PAD_PLUS_SIGN",109:"KEY_NUM_PAD_HYPHEN-MINUS",110:"KEY_NUM_PAD_FULL_STOP",111:"KEY_NUM_PAD_SOLIDUS",144:"KEY_NUM_LOCK",145:"KEY_SCROLL_LOCK",186:"KEY_SEMICOLON",187:"KEY_EQUALS_SIGN",188:"KEY_COMMA",189:"KEY_HYPHEN-MINUS",190:"KEY_FULL_STOP",191:"KEY_SOLIDUS",192:"KEY_GRAVE_ACCENT",219:"KEY_LEFT_SQUARE_BRACKET",220:"KEY_REVERSE_SOLIDUS",221:"KEY_RIGHT_SQUARE_BRACKET",222:"KEY_APOSTROPHE"};
4654 (function(){
4655 var _586=MochiKit.Signal._specialKeys;
4656 for(var i=48;i<=57;i++){
4657 _586[i]="KEY_"+(i-48);
4658 }
4659 for(i=65;i<=90;i++){
4660 _586[i]="KEY_"+String.fromCharCode(i);
4661 }
4662 for(i=96;i<=105;i++){
4663 _586[i]="KEY_NUM_PAD_"+(i-96);
4664 }
4665 for(i=112;i<=123;i++){
4666 _586[i]="KEY_F"+(i-112+1);
4667 }
4668 })();
4669 MochiKit.Base.update(MochiKit.Signal,{__repr__:function(){
4670 return "["+this.NAME+" "+this.VERSION+"]";
4671 },toString:function(){
4672 return this.__repr__();
4673 },_unloadCache:function(){
4674 var self=MochiKit.Signal;
4675 var _587=self._observers;
4676 for(var i=0;i<_587.length;i++){
4677 self._disconnect(_587[i]);
4678 }
4679 delete self._observers;
4680 try{
4681 window.onload=undefined;
4682 }
4683 catch(e){
4684 }
4685 try{
4686 window.onunload=undefined;
4687 }
4688 catch(e){
4689 }
4690 },_listener:function(src,func,obj,_588){
4691 var self=MochiKit.Signal;
4692 var E=self.Event;
4693 if(!_588){
4694 return MochiKit.Base.bind(func,obj);
4695 }
4696 obj=obj||src;
4697 if(typeof (func)=="string"){
4698 return function(_590){
4699 obj[func].apply(obj,[new E(src,_590)]);
4700 };
4701 }else{
4702 return function(_591){
4703 func.apply(obj,[new E(src,_591)]);
4704 };
4705 }
4706 },_browserAlreadyHasMouseEnterAndLeave:function(){
4707 return /MSIE/.test(navigator.userAgent);
4708 },_mouseEnterListener:function(src,sig,func,obj){
4709 var E=MochiKit.Signal.Event;
4710 return function(_593){
4711 var e=new E(src,_593);
4712 try{
4713 e.relatedTarget().nodeName;
4714 }
4715 catch(err){
4716 return;
4717 }
4718 e.stop();
4719 if(MochiKit.DOM.isChildNode(e.relatedTarget(),src)){
4720 return;
4721 }
4722 e.type=function(){
4723 return sig;
4724 };
4725 if(typeof (func)=="string"){
4726 return obj[func].apply(obj,[e]);
4727 }else{
4728 return func.apply(obj,[e]);
4729 }
4730 };
4731 },_getDestPair:function(_594,_595){
4732 var obj=null;
4733 var func=null;
4734 if(typeof (_595)!="undefined"){
4735 obj=_594;
4736 func=_595;
4737 if(typeof (_595)=="string"){
4738 if(typeof (_594[_595])!="function"){
4739 throw new Error("'funcOrStr' must be a function on 'objOrFunc'");
4740 }
4741 }else{
4742 if(typeof (_595)!="function"){
4743 throw new Error("'funcOrStr' must be a function or string");
4744 }
4745 }
4746 }else{
4747 if(typeof (_594)!="function"){
4748 throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given");
4749 }else{
4750 func=_594;
4751 }
4752 }
4753 return [obj,func];
4754 },connect:function(src,sig,_596,_597){
4755 src=MochiKit.DOM.getElement(src);
4756 var self=MochiKit.Signal;
4757 if(typeof (sig)!="string"){
4758 throw new Error("'sig' must be a string");
4759 }
4760 var _598=self._getDestPair(_596,_597);
4761 var obj=_598[0];
4762 var func=_598[1];
4763 if(typeof (obj)=="undefined"||obj===null){
4764 obj=src;
4765 }
4766 var _599=!!(src.addEventListener||src.attachEvent);
4767 if(_599&&(sig==="onmouseenter"||sig==="onmouseleave")&&!self._browserAlreadyHasMouseEnterAndLeave()){
4768 var _600=self._mouseEnterListener(src,sig.substr(2),func,obj);
4769 if(sig==="onmouseenter"){
4770 sig="onmouseover";
4771 }else{
4772 sig="onmouseout";
4773 }
4774 }else{
4775 var _600=self._listener(src,func,obj,_599);
4776 }
4777 if(src.addEventListener){
4778 src.addEventListener(sig.substr(2),_600,false);
4779 }else{
4780 if(src.attachEvent){
4781 src.attachEvent(sig,_600);
4782 }
4783 }
4784 var _601=[src,sig,_600,_599,_596,_597,true];
4785 self._observers.push(_601);
4786 if(!_599&&typeof (src.__connect__)=="function"){
4787 var args=MochiKit.Base.extend([_601],arguments,1);
4788 src.__connect__.apply(src,args);
4789 }
4790 return _601;
4791 },_disconnect:function(_602){
4792 if(!_602[6]){
4793 return;
4794 }
4795 _602[6]=false;
4796 if(!_602[3]){
4797 return;
4798 }
4799 var src=_602[0];
4800 var sig=_602[1];
4801 var _603=_602[2];
4802 if(src.removeEventListener){
4803 src.removeEventListener(sig.substr(2),_603,false);
4804 }else{
4805 if(src.detachEvent){
4806 src.detachEvent(sig,_603);
4807 }else{
4808 throw new Error("'src' must be a DOM element");
4809 }
4810 }
4811 },disconnect:function(_604){
4812 var self=MochiKit.Signal;
4813 var _605=self._observers;
4814 var m=MochiKit.Base;
4815 if(arguments.length>1){
4816 var src=MochiKit.DOM.getElement(arguments[0]);
4817 var sig=arguments[1];
4818 var obj=arguments[2];
4819 var func=arguments[3];
4820 for(var i=_605.length-1;i>=0;i--){
4821 var o=_605[i];
4822 if(o[0]===src&&o[1]===sig&&o[4]===obj&&o[5]===func){
4823 self._disconnect(o);
4824 if(!self._lock){
4825 _605.splice(i,1);
4826 }else{
4827 self._dirty=true;
4828 }
4829 return true;
4830 }
4831 }
4832 }else{
4833 var idx=m.findIdentical(_605,_604);
4834 if(idx>=0){
4835 self._disconnect(_604);
4836 if(!self._lock){
4837 _605.splice(idx,1);
4838 }else{
4839 self._dirty=true;
4840 }
4841 return true;
4842 }
4843 }
4844 return false;
4845 },disconnectAllTo:function(_606,_607){
4846 var self=MochiKit.Signal;
4847 var _608=self._observers;
4848 var _609=self._disconnect;
4849 var _610=self._lock;
4850 var _611=self._dirty;
4851 if(typeof (_607)==="undefined"){
4852 _607=null;
4853 }
4854 for(var i=_608.length-1;i>=0;i--){
4855 var _612=_608[i];
4856 if(_612[4]===_606&&(_607===null||_612[5]===_607)){
4857 _609(_612);
4858 if(_610){
4859 _611=true;
4860 }else{
4861 _608.splice(i,1);
4862 }
4863 }
4864 }
4865 self._dirty=_611;
4866 },disconnectAll:function(src,sig){
4867 src=MochiKit.DOM.getElement(src);
4868 var m=MochiKit.Base;
4869 var _613=m.flattenArguments(m.extend(null,arguments,1));
4870 var self=MochiKit.Signal;
4871 var _614=self._disconnect;
4872 var _615=self._observers;
4873 var i,ident;
4874 var _616=self._lock;
4875 var _617=self._dirty;
4876 if(_613.length===0){
4877 for(i=_615.length-1;i>=0;i--){
4878 ident=_615[i];
4879 if(ident[0]===src){
4880 _614(ident);
4881 if(!_616){
4882 _615.splice(i,1);
4883 }else{
4884 _617=true;
4885 }
4886 }
4887 }
4888 }else{
4889 var sigs={};
4890 for(i=0;i<_613.length;i++){
4891 sigs[_613[i]]=true;
4892 }
4893 for(i=_615.length-1;i>=0;i--){
4894 ident=_615[i];
4895 if(ident[0]===src&&ident[1] in sigs){
4896 _614(ident);
4897 if(!_616){
4898 _615.splice(i,1);
4899 }else{
4900 _617=true;
4901 }
4902 }
4903 }
4904 }
4905 self._dirty=_617;
4906 },signal:function(src,sig){
4907 var self=MochiKit.Signal;
4908 var _619=self._observers;
4909 src=MochiKit.DOM.getElement(src);
4910 var args=MochiKit.Base.extend(null,arguments,2);
4911 var _620=[];
4912 self._lock=true;
4913 for(var i=0;i<_619.length;i++){
4914 var _621=_619[i];
4915 if(_621[0]===src&&_621[1]===sig){
4916 try{
4917 _621[2].apply(src,args);
4918 }
4919 catch(e){
4920 _620.push(e);
4921 }
4922 }
4923 }
4924 self._lock=false;
4925 if(self._dirty){
4926 self._dirty=false;
4927 for(var i=_619.length-1;i>=0;i--){
4928 if(!_619[i][6]){
4929 _619.splice(i,1);
4930 }
4931 }
4932 }
4933 if(_620.length==1){
4934 throw _620[0];
4935 }else{
4936 if(_620.length>1){
4937 var e=new Error("Multiple errors thrown in handling 'sig', see errors property");
4938 e.errors=_620;
4939 throw e;
4940 }
4941 }
4942 }});
4943 MochiKit.Signal.EXPORT_OK=[];
4944 MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"];
4945 MochiKit.Signal.__new__=function(win){
4946 var m=MochiKit.Base;
4947 this._document=document;
4948 this._window=win;
4949 this._lock=false;
4950 this._dirty=false;
4951 try{
4952 this.connect(window,"onunload",this._unloadCache);
4953 }
4954 catch(e){
4955 }
4956 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
4957 m.nameFunctions(this);
4958 };
4959 MochiKit.Signal.__new__(this);
4960 if(MochiKit.__export__){
4961 connect=MochiKit.Signal.connect;
4962 disconnect=MochiKit.Signal.disconnect;
4963 disconnectAll=MochiKit.Signal.disconnectAll;
4964 signal=MochiKit.Signal.signal;
4965 }
4966 MochiKit.Base._exportSymbols(this,MochiKit.Signal);
4967 if(typeof (dojo)!="undefined"){
4968 dojo.provide("MochiKit.Visual");
4969 dojo.require("MochiKit.Base");
4970 dojo.require("MochiKit.DOM");
4971 dojo.require("MochiKit.Style");
4972 dojo.require("MochiKit.Color");
4973 }
4974 if(typeof (JSAN)!="undefined"){
4975 JSAN.use("MochiKit.Base",[]);
4976 JSAN.use("MochiKit.DOM",[]);
4977 JSAN.use("MochiKit.Style",[]);
4978 JSAN.use("MochiKit.Color",[]);
4979 }
4980 try{
4981 if(typeof (MochiKit.Base)==="undefined"||typeof (MochiKit.DOM)==="undefined"||typeof (MochiKit.Style)==="undefined"||typeof (MochiKit.Color)==="undefined"){
4982 throw "";
4983 }
4984 }
4985 catch(e){
4986 throw "MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style and MochiKit.Color!";
4987 }
4988 if(typeof (MochiKit.Visual)=="undefined"){
4989 MochiKit.Visual={};
4990 }
4991 MochiKit.Visual.NAME="MochiKit.Visual";
4992 MochiKit.Visual.VERSION="1.4";
4993 MochiKit.Visual.__repr__=function(){
4994 return "["+this.NAME+" "+this.VERSION+"]";
4995 };
4996 MochiKit.Visual.toString=function(){
4997 return this.__repr__();
4998 };
4999 MochiKit.Visual._RoundCorners=function(e,_622){
5000 e=MochiKit.DOM.getElement(e);
5001 this._setOptions(_622);
5002 if(this.options.__unstable__wrapElement){
5003 e=this._doWrap(e);
5004 }
5005 var _623=this.options.color;
5006 var C=MochiKit.Color.Color;
5007 if(this.options.color==="fromElement"){
5008 _623=C.fromBackground(e);
5009 }else{
5010 if(!(_623 instanceof C)){
5011 _623=C.fromString(_623);
5012 }
5013 }
5014 this.isTransparent=(_623.asRGB().a<=0);
5015 var _625=this.options.bgColor;
5016 if(this.options.bgColor==="fromParent"){
5017 _625=C.fromBackground(e.offsetParent);
5018 }else{
5019 if(!(_625 instanceof C)){
5020 _625=C.fromString(_625);
5021 }
5022 }
5023 this._roundCornersImpl(e,_623,_625);
5024 };
5025 MochiKit.Visual._RoundCorners.prototype={_doWrap:function(e){
5026 var _626=e.parentNode;
5027 var doc=MochiKit.DOM.currentDocument();
5028 if(typeof (doc.defaultView)==="undefined"||doc.defaultView===null){
5029 return e;
5030 }
5031 var _627=doc.defaultView.getComputedStyle(e,null);
5032 if(typeof (_627)==="undefined"||_627===null){
5033 return e;
5034 }
5035 var _628=MochiKit.DOM.DIV({"style":{display:"block",marginTop:_627.getPropertyValue("padding-top"),marginRight:_627.getPropertyValue("padding-right"),marginBottom:_627.getPropertyValue("padding-bottom"),marginLeft:_627.getPropertyValue("padding-left"),padding:"0px"}});
5036 _628.innerHTML=e.innerHTML;
5037 e.innerHTML="";
5038 e.appendChild(_628);
5039 return e;
5040 },_roundCornersImpl:function(e,_629,_630){
5041 if(this.options.border){
5042 this._renderBorder(e,_630);
5043 }
5044 if(this._isTopRounded()){
5045 this._roundTopCorners(e,_629,_630);
5046 }
5047 if(this._isBottomRounded()){
5048 this._roundBottomCorners(e,_629,_630);
5049 }
5050 },_renderBorder:function(el,_632){
5051 var _633="1px solid "+this._borderColor(_632);
5052 var _634="border-left: "+_633;
5053 var _635="border-right: "+_633;
5054 var _636="style='"+_634+";"+_635+"'";
5055 el.innerHTML="<div "+_636+">"+el.innerHTML+"</div>";
5056 },_roundTopCorners:function(el,_637,_638){
5057 var _639=this._createCorner(_638);
5058 for(var i=0;i<this.options.numSlices;i++){
5059 _639.appendChild(this._createCornerSlice(_637,_638,i,"top"));
5060 }
5061 el.style.paddingTop=0;
5062 el.insertBefore(_639,el.firstChild);
5063 },_roundBottomCorners:function(el,_640,_641){
5064 var _642=this._createCorner(_641);
5065 for(var i=(this.options.numSlices-1);i>=0;i--){
5066 _642.appendChild(this._createCornerSlice(_640,_641,i,"bottom"));
5067 }
5068 el.style.paddingBottom=0;
5069 el.appendChild(_642);
5070 },_createCorner:function(_643){
5071 var dom=MochiKit.DOM;
5072 return dom.DIV({style:{backgroundColor:_643.toString()}});
5073 },_createCornerSlice:function(_644,_645,n,_646){
5074 var _647=MochiKit.DOM.SPAN();
5075 var _648=_647.style;
5076 _648.backgroundColor=_644.toString();
5077 _648.display="block";
5078 _648.height="1px";
5079 _648.overflow="hidden";
5080 _648.fontSize="1px";
5081 var _649=this._borderColor(_644,_645);
5082 if(this.options.border&&n===0){
5083 _648.borderTopStyle="solid";
5084 _648.borderTopWidth="1px";
5085 _648.borderLeftWidth="0px";
5086 _648.borderRightWidth="0px";
5087 _648.borderBottomWidth="0px";
5088 _648.height="0px";
5089 _648.borderColor=_649.toString();
5090 }else{
5091 if(_649){
5092 _648.borderColor=_649.toString();
5093 _648.borderStyle="solid";
5094 _648.borderWidth="0px 1px";
5095 }
5096 }
5097 if(!this.options.compact&&(n==(this.options.numSlices-1))){
5098 _648.height="2px";
5099 }
5100 this._setMargin(_647,n,_646);
5101 this._setBorder(_647,n,_646);
5102 return _647;
5103 },_setOptions:function(_650){
5104 this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false};
5105 MochiKit.Base.update(this.options,_650);
5106 this.options.numSlices=(this.options.compact?2:4);
5107 },_whichSideTop:function(){
5108 var _651=this.options.corners;
5109 if(this._hasString(_651,"all","top")){
5110 return "";
5111 }
5112 var _652=(_651.indexOf("tl")!=-1);
5113 var _653=(_651.indexOf("tr")!=-1);
5114 if(_652&&_653){
5115 return "";
5116 }
5117 if(_652){
5118 return "left";
5119 }
5120 if(_653){
5121 return "right";
5122 }
5123 return "";
5124 },_whichSideBottom:function(){
5125 var _654=this.options.corners;
5126 if(this._hasString(_654,"all","bottom")){
5127 return "";
5128 }
5129 var _655=(_654.indexOf("bl")!=-1);
5130 var _656=(_654.indexOf("br")!=-1);
5131 if(_655&&_656){
5132 return "";
5133 }
5134 if(_655){
5135 return "left";
5136 }
5137 if(_656){
5138 return "right";
5139 }
5140 return "";
5141 },_borderColor:function(_657,_658){
5142 if(_657=="transparent"){
5143 return _658;
5144 }else{
5145 if(this.options.border){
5146 return this.options.border;
5147 }else{
5148 if(this.options.blend){
5149 return _658.blendedColor(_657);
5150 }
5151 }
5152 }
5153 return "";
5154 },_setMargin:function(el,n,_659){
5155 var _660=this._marginSize(n)+"px";
5156 var _661=(_659=="top"?this._whichSideTop():this._whichSideBottom());
5157 var _662=el.style;
5158 if(_661=="left"){
5159 _662.marginLeft=_660;
5160 _662.marginRight="0px";
5161 }else{
5162 if(_661=="right"){
5163 _662.marginRight=_660;
5164 _662.marginLeft="0px";
5165 }else{
5166 _662.marginLeft=_660;
5167 _662.marginRight=_660;
5168 }
5169 }
5170 },_setBorder:function(el,n,_663){
5171 var _664=this._borderSize(n)+"px";
5172 var _665=(_663=="top"?this._whichSideTop():this._whichSideBottom());
5173 var _666=el.style;
5174 if(_665=="left"){
5175 _666.borderLeftWidth=_664;
5176 _666.borderRightWidth="0px";
5177 }else{
5178 if(_665=="right"){
5179 _666.borderRightWidth=_664;
5180 _666.borderLeftWidth="0px";
5181 }else{
5182 _666.borderLeftWidth=_664;
5183 _666.borderRightWidth=_664;
5184 }
5185 }
5186 },_marginSize:function(n){
5187 if(this.isTransparent){
5188 return 0;
5189 }
5190 var o=this.options;
5191 if(o.compact&&o.blend){
5192 var _667=[1,0];
5193 return _667[n];
5194 }else{
5195 if(o.compact){
5196 var _668=[2,1];
5197 return _668[n];
5198 }else{
5199 if(o.blend){
5200 var _669=[3,2,1,0];
5201 return _669[n];
5202 }else{
5203 var _670=[5,3,2,1];
5204 return _670[n];
5205 }
5206 }
5207 }
5208 },_borderSize:function(n){
5209 var o=this.options;
5210 var _671;
5211 if(o.compact&&(o.blend||this.isTransparent)){
5212 return 1;
5213 }else{
5214 if(o.compact){
5215 _671=[1,0];
5216 }else{
5217 if(o.blend){
5218 _671=[2,1,1,1];
5219 }else{
5220 if(o.border){
5221 _671=[0,2,0,0];
5222 }else{
5223 if(this.isTransparent){
5224 _671=[5,3,2,1];
5225 }else{
5226 return 0;
5227 }
5228 }
5229 }
5230 }
5231 }
5232 return _671[n];
5233 },_hasString:function(str){
5234 for(var i=1;i<arguments.length;i++){
5235 if(str.indexOf(arguments[i])!=-1){
5236 return true;
5237 }
5238 }
5239 return false;
5240 },_isTopRounded:function(){
5241 return this._hasString(this.options.corners,"all","top","tl","tr");
5242 },_isBottomRounded:function(){
5243 return this._hasString(this.options.corners,"all","bottom","bl","br");
5244 },_hasSingleTextChild:function(el){
5245 return (el.childNodes.length==1&&el.childNodes[0].nodeType==3);
5246 }};
5247 MochiKit.Visual.roundElement=function(e,_672){
5248 new MochiKit.Visual._RoundCorners(e,_672);
5249 };
5250 MochiKit.Visual.roundClass=function(_673,_674,_675){
5251 var _676=MochiKit.DOM.getElementsByTagAndClassName(_673,_674);
5252 for(var i=0;i<_676.length;i++){
5253 MochiKit.Visual.roundElement(_676[i],_675);
5254 }
5255 };
5256 MochiKit.Visual.tagifyText=function(_677,_678){
5257 var _678=_678||"position:relative";
5258 if(/MSIE/.test(navigator.userAgent)){
5259 _678+=";zoom:1";
5260 }
5261 _677=MochiKit.DOM.getElement(_677);
5262 var ma=MochiKit.Base.map;
5263 ma(function(_680){
5264 if(_680.nodeType==3){
5265 ma(function(_681){
5266 _677.insertBefore(MochiKit.DOM.SPAN({style:_678},_681==" "?String.fromCharCode(160):_681),_680);
5267 },_680.nodeValue.split(""));
5268 MochiKit.DOM.removeElement(_680);
5269 }
5270 },_677.childNodes);
5271 };
5272 MochiKit.Visual.forceRerendering=function(_682){
5273 try{
5274 _682=MochiKit.DOM.getElement(_682);
5275 var n=document.createTextNode(" ");
5276 _682.appendChild(n);
5277 _682.removeChild(n);
5278 }
5279 catch(e){
5280 }
5281 };
5282 MochiKit.Visual.multiple=function(_683,_684,_685){
5283 _685=MochiKit.Base.update({speed:0.1,delay:0},_685||{});
5284 var _686=_685.delay;
5285 var _687=0;
5286 MochiKit.Base.map(function(_688){
5287 _685.delay=_687*_685.speed+_686;
5288 new _684(_688,_685);
5289 _687+=1;
5290 },_683);
5291 };
5292 MochiKit.Visual.PAIRS={"slide":["slideDown","slideUp"],"blind":["blindDown","blindUp"],"appear":["appear","fade"],"size":["grow","shrink"]};
5293 MochiKit.Visual.toggle=function(_689,_690,_691){
5294 _689=MochiKit.DOM.getElement(_689);
5295 _690=(_690||"appear").toLowerCase();
5296 _691=MochiKit.Base.update({queue:{position:"end",scope:(_689.id||"global"),limit:1}},_691||{});
5297 var v=MochiKit.Visual;
5298 v[_689.style.display!="none"?v.PAIRS[_690][1]:v.PAIRS[_690][0]](_689,_691);
5299 };
5300 MochiKit.Visual.Transitions={};
5301 MochiKit.Visual.Transitions.linear=function(pos){
5302 return pos;
5303 };
5304 MochiKit.Visual.Transitions.sinoidal=function(pos){
5305 return (-Math.cos(pos*Math.PI)/2)+0.5;
5306 };
5307 MochiKit.Visual.Transitions.reverse=function(pos){
5308 return 1-pos;
5309 };
5310 MochiKit.Visual.Transitions.flicker=function(pos){
5311 return ((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;
5312 };
5313 MochiKit.Visual.Transitions.wobble=function(pos){
5314 return (-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;
5315 };
5316 MochiKit.Visual.Transitions.pulse=function(pos){
5317 return (Math.floor(pos*10)%2==0?(pos*10-Math.floor(pos*10)):1-(pos*10-Math.floor(pos*10)));
5318 };
5319 MochiKit.Visual.Transitions.none=function(pos){
5320 return 0;
5321 };
5322 MochiKit.Visual.Transitions.full=function(pos){
5323 return 1;
5324 };
5325 MochiKit.Visual.ScopedQueue=function(){
5326 this.__init__();
5327 };
5328 MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype,{__init__:function(){
5329 this.effects=[];
5330 this.interval=null;
5331 },add:function(_693){
5332 var _694=new Date().getTime();
5333 var _695=(typeof (_693.options.queue)=="string")?_693.options.queue:_693.options.queue.position;
5334 var ma=MochiKit.Base.map;
5335 switch(_695){
5336 case "front":
5337 ma(function(e){
5338 if(e.state=="idle"){
5339 e.startOn+=_693.finishOn;
5340 e.finishOn+=_693.finishOn;
5341 }
5342 },this.effects);
5343 break;
5344 case "end":
5345 var _696;
5346 ma(function(e){
5347 var i=e.finishOn;
5348 if(i>=(_696||i)){
5349 _696=i;
5350 }
5351 },this.effects);
5352 _694=_696||_694;
5353 break;
5354 case "break":
5355 ma(function(e){
5356 e.finalize();
5357 },this.effects);
5358 break;
5359 }
5360 _693.startOn+=_694;
5361 _693.finishOn+=_694;
5362 if(!_693.options.queue.limit||this.effects.length<_693.options.queue.limit){
5363 this.effects.push(_693);
5364 }
5365 if(!this.interval){
5366 this.interval=this.startLoop(MochiKit.Base.bind(this.loop,this),40);
5367 }
5368 },startLoop:function(func,_697){
5369 return setInterval(func,_697);
5370 },remove:function(_698){
5371 this.effects=MochiKit.Base.filter(function(e){
5372 return e!=_698;
5373 },this.effects);
5374 if(this.effects.length==0){
5375 this.stopLoop(this.interval);
5376 this.interval=null;
5377 }
5378 },stopLoop:function(_699){
5379 clearInterval(_699);
5380 },loop:function(){
5381 var _700=new Date().getTime();
5382 MochiKit.Base.map(function(_701){
5383 _701.loop(_700);
5384 },this.effects);
5385 }});
5386 MochiKit.Visual.Queues={instances:{},get:function(_702){
5387 if(typeof (_702)!="string"){
5388 return _702;
5389 }
5390 if(!this.instances[_702]){
5391 this.instances[_702]=new MochiKit.Visual.ScopedQueue();
5392 }
5393 return this.instances[_702];
5394 }};
5395 MochiKit.Visual.Queue=MochiKit.Visual.Queues.get("global");
5396 MochiKit.Visual.DefaultOptions={transition:MochiKit.Visual.Transitions.sinoidal,duration:1,fps:25,sync:false,from:0,to:1,delay:0,queue:"parallel"};
5397 MochiKit.Visual.Base=function(){
5398 };
5399 MochiKit.Visual.Base.prototype={__class__:MochiKit.Visual.Base,start:function(_703){
5400 var v=MochiKit.Visual;
5401 this.options=MochiKit.Base.setdefault(_703||{},v.DefaultOptions);
5402 this.currentFrame=0;
5403 this.state="idle";
5404 this.startOn=this.options.delay*1000;
5405 this.finishOn=this.startOn+(this.options.duration*1000);
5406 this.event("beforeStart");
5407 if(!this.options.sync){
5408 v.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).add(this);
5409 }
5410 },loop:function(_704){
5411 if(_704>=this.startOn){
5412 if(_704>=this.finishOn){
5413 return this.finalize();
5414 }
5415 var pos=(_704-this.startOn)/(this.finishOn-this.startOn);
5416 var _705=Math.round(pos*this.options.fps*this.options.duration);
5417 if(_705>this.currentFrame){
5418 this.render(pos);
5419 this.currentFrame=_705;
5420 }
5421 }
5422 },render:function(pos){
5423 if(this.state=="idle"){
5424 this.state="running";
5425 this.event("beforeSetup");
5426 this.setup();
5427 this.event("afterSetup");
5428 }
5429 if(this.state=="running"){
5430 if(this.options.transition){
5431 pos=this.options.transition(pos);
5432 }
5433 pos*=(this.options.to-this.options.from);
5434 pos+=this.options.from;
5435 this.event("beforeUpdate");
5436 this.update(pos);
5437 this.event("afterUpdate");
5438 }
5439 },cancel:function(){
5440 if(!this.options.sync){
5441 MochiKit.Visual.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).remove(this);
5442 }
5443 this.state="finished";
5444 },finalize:function(){
5445 this.render(1);
5446 this.cancel();
5447 this.event("beforeFinish");
5448 this.finish();
5449 this.event("afterFinish");
5450 },setup:function(){
5451 },finish:function(){
5452 },update:function(_706){
5453 },event:function(_707){
5454 if(this.options[_707+"Internal"]){
5455 this.options[_707+"Internal"](this);
5456 }
5457 if(this.options[_707]){
5458 this.options[_707](this);
5459 }
5460 },repr:function(){
5461 return "["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]";
5462 }};
5463 MochiKit.Visual.Parallel=function(_708,_709){
5464 this.__init__(_708,_709);
5465 };
5466 MochiKit.Visual.Parallel.prototype=new MochiKit.Visual.Base();
5467 MochiKit.Base.update(MochiKit.Visual.Parallel.prototype,{__init__:function(_710,_711){
5468 this.effects=_710||[];
5469 this.start(_711);
5470 },update:function(_712){
5471 MochiKit.Base.map(function(_713){
5472 _713.render(_712);
5473 },this.effects);
5474 },finish:function(){
5475 MochiKit.Base.map(function(_714){
5476 _714.finalize();
5477 },this.effects);
5478 }});
5479 MochiKit.Visual.Opacity=function(_715,_716){
5480 this.__init__(_715,_716);
5481 };
5482 MochiKit.Visual.Opacity.prototype=new MochiKit.Visual.Base();
5483 MochiKit.Base.update(MochiKit.Visual.Opacity.prototype,{__init__:function(_717,_718){
5484 var b=MochiKit.Base;
5485 var s=MochiKit.Style;
5486 this.element=MochiKit.DOM.getElement(_717);
5487 if(this.element.currentStyle&&(!this.element.currentStyle.hasLayout)){
5488 s.setStyle(this.element,{zoom:1});
5489 }
5490 _718=b.update({from:s.getOpacity(this.element)||0,to:1},_718||{});
5491 this.start(_718);
5492 },update:function(_719){
5493 MochiKit.Style.setOpacity(this.element,_719);
5494 }});
5495 MochiKit.Visual.Move=function(_720,_721){
5496 this.__init__(_720,_721);
5497 };
5498 MochiKit.Visual.Move.prototype=new MochiKit.Visual.Base();
5499 MochiKit.Base.update(MochiKit.Visual.Move.prototype,{__init__:function(_722,_723){
5500 this.element=MochiKit.DOM.getElement(_722);
5501 _723=MochiKit.Base.update({x:0,y:0,mode:"relative"},_723||{});
5502 this.start(_723);
5503 },setup:function(){
5504 MochiKit.DOM.makePositioned(this.element);
5505 var s=this.element.style;
5506 var _724=s.visibility;
5507 var _725=s.display;
5508 if(_725=="none"){
5509 s.visibility="hidden";
5510 s.display="";
5511 }
5512 this.originalLeft=parseFloat(MochiKit.Style.getStyle(this.element,"left")||"0");
5513 this.originalTop=parseFloat(MochiKit.Style.getStyle(this.element,"top")||"0");
5514 if(this.options.mode=="absolute"){
5515 this.options.x-=this.originalLeft;
5516 this.options.y-=this.originalTop;
5517 }
5518 if(_725=="none"){
5519 s.visibility=_724;
5520 s.display=_725;
5521 }
5522 },update:function(_726){
5523 MochiKit.Style.setStyle(this.element,{left:Math.round(this.options.x*_726+this.originalLeft)+"px",top:Math.round(this.options.y*_726+this.originalTop)+"px"});
5524 }});
5525 MochiKit.Visual.Scale=function(_727,_728,_729){
5526 this.__init__(_727,_728,_729);
5527 };
5528 MochiKit.Visual.Scale.prototype=new MochiKit.Visual.Base();
5529 MochiKit.Base.update(MochiKit.Visual.Scale.prototype,{__init__:function(_730,_731,_732){
5530 this.element=MochiKit.DOM.getElement(_730);
5531 _732=MochiKit.Base.update({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:_731},_732||{});
5532 this.start(_732);
5533 },setup:function(){
5534 this.restoreAfterFinish=this.options.restoreAfterFinish||false;
5535 this.elementPositioning=MochiKit.Style.getStyle(this.element,"position");
5536 var ma=MochiKit.Base.map;
5537 var b=MochiKit.Base.bind;
5538 this.originalStyle={};
5539 ma(b(function(k){
5540 this.originalStyle[k]=this.element.style[k];
5541 },this),["top","left","width","height","fontSize"]);
5542 this.originalTop=this.element.offsetTop;
5543 this.originalLeft=this.element.offsetLeft;
5544 var _733=MochiKit.Style.getStyle(this.element,"font-size")||"100%";
5545 ma(b(function(_734){
5546 if(_733.indexOf(_734)>0){
5547 this.fontSize=parseFloat(_733);
5548 this.fontSizeType=_734;
5549 }
5550 },this),["em","px","%"]);
5551 this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;
5552 if(/^content/.test(this.options.scaleMode)){
5553 this.dims=[this.element.scrollHeight,this.element.scrollWidth];
5554 }else{
5555 if(this.options.scaleMode=="box"){
5556 this.dims=[this.element.offsetHeight,this.element.offsetWidth];
5557 }else{
5558 this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];
5559 }
5560 }
5561 },update:function(_735){
5562 var _736=(this.options.scaleFrom/100)+(this.factor*_735);
5563 if(this.options.scaleContent&&this.fontSize){
5564 MochiKit.Style.setStyle(this.element,{fontSize:this.fontSize*_736+this.fontSizeType});
5565 }
5566 this.setDimensions(this.dims[0]*_736,this.dims[1]*_736);
5567 },finish:function(){
5568 if(this.restoreAfterFinish){
5569 MochiKit.Style.setStyle(this.element,this.originalStyle);
5570 }
5571 },setDimensions:function(_737,_738){
5572 var d={};
5573 var r=Math.round;
5574 if(/MSIE/.test(navigator.userAgent)){
5575 r=Math.ceil;
5576 }
5577 if(this.options.scaleX){
5578 d.width=r(_738)+"px";
5579 }
5580 if(this.options.scaleY){
5581 d.height=r(_737)+"px";
5582 }
5583 if(this.options.scaleFromCenter){
5584 var topd=(_737-this.dims[0])/2;
5585 var _740=(_738-this.dims[1])/2;
5586 if(this.elementPositioning=="absolute"){
5587 if(this.options.scaleY){
5588 d.top=this.originalTop-topd+"px";
5589 }
5590 if(this.options.scaleX){
5591 d.left=this.originalLeft-_740+"px";
5592 }
5593 }else{
5594 if(this.options.scaleY){
5595 d.top=-topd+"px";
5596 }
5597 if(this.options.scaleX){
5598 d.left=-_740+"px";
5599 }
5600 }
5601 }
5602 MochiKit.Style.setStyle(this.element,d);
5603 }});
5604 MochiKit.Visual.Highlight=function(_741,_742){
5605 this.__init__(_741,_742);
5606 };
5607 MochiKit.Visual.Highlight.prototype=new MochiKit.Visual.Base();
5608 MochiKit.Base.update(MochiKit.Visual.Highlight.prototype,{__init__:function(_743,_744){
5609 this.element=MochiKit.DOM.getElement(_743);
5610 _744=MochiKit.Base.update({startcolor:"#ffff99"},_744||{});
5611 this.start(_744);
5612 },setup:function(){
5613 var b=MochiKit.Base;
5614 var s=MochiKit.Style;
5615 if(s.getStyle(this.element,"display")=="none"){
5616 this.cancel();
5617 return;
5618 }
5619 this.oldStyle={backgroundImage:s.getStyle(this.element,"background-image")};
5620 s.setStyle(this.element,{backgroundImage:"none"});
5621 if(!this.options.endcolor){
5622 this.options.endcolor=MochiKit.Color.Color.fromBackground(this.element).toHexString();
5623 }
5624 if(b.isUndefinedOrNull(this.options.restorecolor)){
5625 this.options.restorecolor=s.getStyle(this.element,"background-color");
5626 }
5627 this._base=b.map(b.bind(function(i){
5628 return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16);
5629 },this),[0,1,2]);
5630 this._delta=b.map(b.bind(function(i){
5631 return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i];
5632 },this),[0,1,2]);
5633 },update:function(_745){
5634 var m="#";
5635 MochiKit.Base.map(MochiKit.Base.bind(function(i){
5636 m+=MochiKit.Color.toColorPart(Math.round(this._base[i]+this._delta[i]*_745));
5637 },this),[0,1,2]);
5638 MochiKit.Style.setStyle(this.element,{backgroundColor:m});
5639 },finish:function(){
5640 MochiKit.Style.setStyle(this.element,MochiKit.Base.update(this.oldStyle,{backgroundColor:this.options.restorecolor}));
5641 }});
5642 MochiKit.Visual.ScrollTo=function(_746,_747){
5643 this.__init__(_746,_747);
5644 };
5645 MochiKit.Visual.ScrollTo.prototype=new MochiKit.Visual.Base();
5646 MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype,{__init__:function(_748,_749){
5647 this.element=MochiKit.DOM.getElement(_748);
5648 this.start(_749||{});
5649 },setup:function(){
5650 var p=MochiKit.Position;
5651 p.prepare();
5652 var _750=p.cumulativeOffset(this.element);
5653 if(this.options.offset){
5654 _750.y+=this.options.offset;
5655 }
5656 var max;
5657 if(window.innerHeight){
5658 max=window.innerHeight-window.height;
5659 }else{
5660 if(document.documentElement&&document.documentElement.clientHeight){
5661 max=document.documentElement.clientHeight-document.body.scrollHeight;
5662 }else{
5663 if(document.body){
5664 max=document.body.clientHeight-document.body.scrollHeight;
5665 }
5666 }
5667 }
5668 this.scrollStart=p.windowOffset.y;
5669 this.delta=(_750.y>max?max:_750.y)-this.scrollStart;
5670 },update:function(_751){
5671 var p=MochiKit.Position;
5672 p.prepare();
5673 window.scrollTo(p.windowOffset.x,this.scrollStart+(_751*this.delta));
5674 }});
5675 MochiKit.Visual.fade=function(_752,_753){
5676 var s=MochiKit.Style;
5677 var _754=MochiKit.DOM.getElement(_752).style.opacity||"";
5678 _753=MochiKit.Base.update({from:s.getOpacity(_752)||1,to:0,afterFinishInternal:function(_755){
5679 if(_755.options.to!==0){
5680 return;
5681 }
5682 s.hideElement(_755.element);
5683 s.setStyle(_755.element,{opacity:_754});
5684 }},_753||{});
5685 return new MochiKit.Visual.Opacity(_752,_753);
5686 };
5687 MochiKit.Visual.appear=function(_756,_757){
5688 var s=MochiKit.Style;
5689 var v=MochiKit.Visual;
5690 _757=MochiKit.Base.update({from:(s.getStyle(_756,"display")=="none"?0:s.getOpacity(_756)||0),to:1,afterFinishInternal:function(_758){
5691 v.forceRerendering(_758.element);
5692 },beforeSetupInternal:function(_759){
5693 s.setOpacity(_759.element,_759.options.from);
5694 s.showElement(_759.element);
5695 }},_757||{});
5696 return new v.Opacity(_756,_757);
5697 };
5698 MochiKit.Visual.puff=function(_760,_761){
5699 var s=MochiKit.Style;
5700 var v=MochiKit.Visual;
5701 _760=MochiKit.DOM.getElement(_760);
5702 var _762={opacity:_760.style.opacity||"",position:s.getStyle(_760,"position"),top:_760.style.top,left:_760.style.left,width:_760.style.width,height:_760.style.height};
5703 _761=MochiKit.Base.update({beforeSetupInternal:function(_763){
5704 MochiKit.Position.absolutize(_763.effects[0].element);
5705 },afterFinishInternal:function(_764){
5706 s.hideElement(_764.effects[0].element);
5707 s.setStyle(_764.effects[0].element,_762);
5708 }},_761||{});
5709 return new v.Parallel([new v.Scale(_760,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new v.Opacity(_760,{sync:true,to:0})],_761);
5710 };
5711 MochiKit.Visual.blindUp=function(_765,_766){
5712 var d=MochiKit.DOM;
5713 _765=d.getElement(_765);
5714 var _767=d.makeClipping(_765);
5715 _766=MochiKit.Base.update({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(_768){
5716 MochiKit.Style.hideElement(_768.element);
5717 d.undoClipping(_768.element,_767);
5718 }},_766||{});
5719 return new MochiKit.Visual.Scale(_765,0,_766);
5720 };
5721 MochiKit.Visual.blindDown=function(_769,_770){
5722 var d=MochiKit.DOM;
5723 var s=MochiKit.Style;
5724 _769=d.getElement(_769);
5725 var _771=s.getElementDimensions(_769);
5726 var _772;
5727 _770=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_771.h,originalWidth:_771.w},restoreAfterFinish:true,afterSetupInternal:function(_773){
5728 _772=d.makeClipping(_773.element);
5729 s.setStyle(_773.element,{height:"0px"});
5730 s.showElement(_773.element);
5731 },afterFinishInternal:function(_774){
5732 d.undoClipping(_774.element,_772);
5733 }},_770||{});
5734 return new MochiKit.Visual.Scale(_769,100,_770);
5735 };
5736 MochiKit.Visual.switchOff=function(_775,_776){
5737 var d=MochiKit.DOM;
5738 _775=d.getElement(_775);
5739 var _777=_775.style.opacity||"";
5740 var _778;
5741 var _776=MochiKit.Base.update({duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetupInternal:function(_779){
5742 d.makePositioned(_779.element);
5743 _778=d.makeClipping(_779.element);
5744 },afterFinishInternal:function(_780){
5745 MochiKit.Style.hideElement(_780.element);
5746 d.undoClipping(_780.element,_778);
5747 d.undoPositioned(_780.element);
5748 MochiKit.Style.setStyle(_780.element,{opacity:_777});
5749 }},_776||{});
5750 var v=MochiKit.Visual;
5751 return new v.appear(_775,{duration:0.4,from:0,transition:v.Transitions.flicker,afterFinishInternal:function(_781){
5752 new v.Scale(_781.element,1,_776);
5753 }});
5754 };
5755 MochiKit.Visual.dropOut=function(_782,_783){
5756 var d=MochiKit.DOM;
5757 var s=MochiKit.Style;
5758 _782=d.getElement(_782);
5759 var _784={top:s.getStyle(_782,"top"),left:s.getStyle(_782,"left"),opacity:_782.style.opacity||""};
5760 _783=MochiKit.Base.update({duration:0.5,beforeSetupInternal:function(_785){
5761 d.makePositioned(_785.effects[0].element);
5762 },afterFinishInternal:function(_786){
5763 s.hideElement(_786.effects[0].element);
5764 d.undoPositioned(_786.effects[0].element);
5765 s.setStyle(_786.effects[0].element,_784);
5766 }},_783||{});
5767 var v=MochiKit.Visual;
5768 return new v.Parallel([new v.Move(_782,{x:0,y:100,sync:true}),new v.Opacity(_782,{sync:true,to:0})],_783);
5769 };
5770 MochiKit.Visual.shake=function(_787,_788){
5771 var d=MochiKit.DOM;
5772 var v=MochiKit.Visual;
5773 var s=MochiKit.Style;
5774 _787=d.getElement(_787);
5775 _788=MochiKit.Base.update({x:-20,y:0,duration:0.05,afterFinishInternal:function(_789){
5776 d.undoPositioned(_789.element);
5777 s.setStyle(_789.element,oldStyle);
5778 }},_788||{});
5779 var _790={top:s.getStyle(_787,"top"),left:s.getStyle(_787,"left")};
5780 return new v.Move(_787,{x:20,y:0,duration:0.05,afterFinishInternal:function(_791){
5781 new v.Move(_791.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(_791){
5782 new v.Move(_791.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(_791){
5783 new v.Move(_791.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(_791){
5784 new v.Move(_791.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(_791){
5785 new v.Move(_791.element,_788);
5786 }});
5787 }});
5788 }});
5789 }});
5790 }});
5791 };
5792 MochiKit.Visual.slideDown=function(_792,_793){
5793 var d=MochiKit.DOM;
5794 var b=MochiKit.Base;
5795 var s=MochiKit.Style;
5796 _792=d.getElement(_792);
5797 if(!_792.firstChild){
5798 throw "MochiKit.Visual.slideDown must be used on a element with a child";
5799 }
5800 d.removeEmptyTextNodes(_792);
5801 var _794=s.getStyle(_792.firstChild,"bottom")||0;
5802 var _795=s.getElementDimensions(_792);
5803 var _796;
5804 _793=b.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_795.h,originalWidth:_795.w},restoreAfterFinish:true,afterSetupInternal:function(_797){
5805 d.makePositioned(_797.element);
5806 d.makePositioned(_797.element.firstChild);
5807 if(/Opera/.test(navigator.userAgent)){
5808 s.setStyle(_797.element,{top:""});
5809 }
5810 _796=d.makeClipping(_797.element);
5811 s.setStyle(_797.element,{height:"0px"});
5812 s.showElement(_797.element);
5813 },afterUpdateInternal:function(_798){
5814 s.setStyle(_798.element.firstChild,{bottom:(_798.dims[0]-_798.element.clientHeight)+"px"});
5815 },afterFinishInternal:function(_799){
5816 d.undoClipping(_799.element,_796);
5817 if(/MSIE/.test(navigator.userAgent)){
5818 d.undoPositioned(_799.element);
5819 d.undoPositioned(_799.element.firstChild);
5820 }else{
5821 d.undoPositioned(_799.element.firstChild);
5822 d.undoPositioned(_799.element);
5823 }
5824 s.setStyle(_799.element.firstChild,{bottom:_794});
5825 }},_793||{});
5826 return new MochiKit.Visual.Scale(_792,100,_793);
5827 };
5828 MochiKit.Visual.slideUp=function(_800,_801){
5829 var d=MochiKit.DOM;
5830 var b=MochiKit.Base;
5831 var s=MochiKit.Style;
5832 _800=d.getElement(_800);
5833 if(!_800.firstChild){
5834 throw "MochiKit.Visual.slideUp must be used on a element with a child";
5835 }
5836 d.removeEmptyTextNodes(_800);
5837 var _802=s.getStyle(_800.firstChild,"bottom");
5838 var _803;
5839 _801=b.update({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(_804){
5840 d.makePositioned(_804.element);
5841 d.makePositioned(_804.element.firstChild);
5842 if(/Opera/.test(navigator.userAgent)){
5843 s.setStyle(_804.element,{top:""});
5844 }
5845 _803=d.makeClipping(_804.element);
5846 s.showElement(_804.element);
5847 },afterUpdateInternal:function(_805){
5848 s.setStyle(_805.element.firstChild,{bottom:(_805.dims[0]-_805.element.clientHeight)+"px"});
5849 },afterFinishInternal:function(_806){
5850 s.hideElement(_806.element);
5851 d.undoClipping(_806.element,_803);
5852 d.undoPositioned(_806.element.firstChild);
5853 d.undoPositioned(_806.element);
5854 s.setStyle(_806.element.firstChild,{bottom:_802});
5855 }},_801||{});
5856 return new MochiKit.Visual.Scale(_800,0,_801);
5857 };
5858 MochiKit.Visual.squish=function(_807,_808){
5859 var d=MochiKit.DOM;
5860 var b=MochiKit.Base;
5861 var _809;
5862 _808=b.update({restoreAfterFinish:true,beforeSetupInternal:function(_810){
5863 _809=d.makeClipping(_810.element);
5864 },afterFinishInternal:function(_811){
5865 MochiKit.Style.hideElement(_811.element);
5866 d.undoClipping(_811.element,_809);
5867 }},_808||{});
5868 return new MochiKit.Visual.Scale(_807,/Opera/.test(navigator.userAgent)?1:0,_808);
5869 };
5870 MochiKit.Visual.grow=function(_812,_813){
5871 var d=MochiKit.DOM;
5872 var v=MochiKit.Visual;
5873 var s=MochiKit.Style;
5874 _812=d.getElement(_812);
5875 _813=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.full},_813||{});
5876 var _814={top:_812.style.top,left:_812.style.left,height:_812.style.height,width:_812.style.width,opacity:_812.style.opacity||""};
5877 var dims=s.getElementDimensions(_812);
5878 var _816,initialMoveY;
5879 var _817,moveY;
5880 switch(_813.direction){
5881 case "top-left":
5882 _816=initialMoveY=_817=moveY=0;
5883 break;
5884 case "top-right":
5885 _816=dims.w;
5886 initialMoveY=moveY=0;
5887 _817=-dims.w;
5888 break;
5889 case "bottom-left":
5890 _816=_817=0;
5891 initialMoveY=dims.h;
5892 moveY=-dims.h;
5893 break;
5894 case "bottom-right":
5895 _816=dims.w;
5896 initialMoveY=dims.h;
5897 _817=-dims.w;
5898 moveY=-dims.h;
5899 break;
5900 case "center":
5901 _816=dims.w/2;
5902 initialMoveY=dims.h/2;
5903 _817=-dims.w/2;
5904 moveY=-dims.h/2;
5905 break;
5906 }
5907 var _818=MochiKit.Base.update({beforeSetupInternal:function(_819){
5908 s.setStyle(_819.effects[0].element,{height:"0px"});
5909 s.showElement(_819.effects[0].element);
5910 },afterFinishInternal:function(_820){
5911 d.undoClipping(_820.effects[0].element);
5912 d.undoPositioned(_820.effects[0].element);
5913 s.setStyle(_820.effects[0].element,_814);
5914 }},_813||{});
5915 return new v.Move(_812,{x:_816,y:initialMoveY,duration:0.01,beforeSetupInternal:function(_821){
5916 s.hideElement(_821.element);
5917 d.makeClipping(_821.element);
5918 d.makePositioned(_821.element);
5919 },afterFinishInternal:function(_822){
5920 new v.Parallel([new v.Opacity(_822.element,{sync:true,to:1,from:0,transition:_813.opacityTransition}),new v.Move(_822.element,{x:_817,y:moveY,sync:true,transition:_813.moveTransition}),new v.Scale(_822.element,100,{scaleMode:{originalHeight:dims.h,originalWidth:dims.w},sync:true,scaleFrom:/Opera/.test(navigator.userAgent)?1:0,transition:_813.scaleTransition,restoreAfterFinish:true})],_818);
5921 }});
5922 };
5923 MochiKit.Visual.shrink=function(_823,_824){
5924 var d=MochiKit.DOM;
5925 var v=MochiKit.Visual;
5926 var s=MochiKit.Style;
5927 _823=d.getElement(_823);
5928 _824=MochiKit.Base.update({direction:"center",moveTransition:v.Transitions.sinoidal,scaleTransition:v.Transitions.sinoidal,opacityTransition:v.Transitions.none},_824||{});
5929 var _825={top:_823.style.top,left:_823.style.left,height:_823.style.height,width:_823.style.width,opacity:_823.style.opacity||""};
5930 var dims=s.getElementDimensions(_823);
5931 var _826,moveY;
5932 switch(_824.direction){
5933 case "top-left":
5934 _826=moveY=0;
5935 break;
5936 case "top-right":
5937 _826=dims.w;
5938 moveY=0;
5939 break;
5940 case "bottom-left":
5941 _826=0;
5942 moveY=dims.h;
5943 break;
5944 case "bottom-right":
5945 _826=dims.w;
5946 moveY=dims.h;
5947 break;
5948 case "center":
5949 _826=dims.w/2;
5950 moveY=dims.h/2;
5951 break;
5952 }
5953 var _827;
5954 var _828=MochiKit.Base.update({beforeStartInternal:function(_829){
5955 _827=d.makePositioned(_829.effects[0].element);
5956 d.makeClipping(_829.effects[0].element);
5957 },afterFinishInternal:function(_830){
5958 s.hideElement(_830.effects[0].element);
5959 d.undoClipping(_830.effects[0].element,_827);
5960 d.undoPositioned(_830.effects[0].element);
5961 s.setStyle(_830.effects[0].element,_825);
5962 }},_824||{});
5963 return new v.Parallel([new v.Opacity(_823,{sync:true,to:0,from:1,transition:_824.opacityTransition}),new v.Scale(_823,/Opera/.test(navigator.userAgent)?1:0,{sync:true,transition:_824.scaleTransition,restoreAfterFinish:true}),new v.Move(_823,{x:_826,y:moveY,sync:true,transition:_824.moveTransition})],_828);
5964 };
5965 MochiKit.Visual.pulsate=function(_831,_832){
5966 var d=MochiKit.DOM;
5967 var v=MochiKit.Visual;
5968 var b=MochiKit.Base;
5969 var _833=d.getElement(_831).style.opacity||"";
5970 _832=b.update({duration:3,from:0,afterFinishInternal:function(_834){
5971 MochiKit.Style.setStyle(_834.element,{opacity:_833});
5972 }},_832||{});
5973 var _835=_832.transition||v.Transitions.sinoidal;
5974 var _836=b.bind(function(pos){
5975 return _835(1-v.Transitions.pulse(pos));
5976 },_835);
5977 b.bind(_836,_835);
5978 return new v.Opacity(_831,b.update({transition:_836},_832));
5979 };
5980 MochiKit.Visual.fold=function(_837,_838){
5981 var d=MochiKit.DOM;
5982 var v=MochiKit.Visual;
5983 var s=MochiKit.Style;
5984 _837=d.getElement(_837);
5985 var _839={top:_837.style.top,left:_837.style.left,width:_837.style.width,height:_837.style.height};
5986 var _840=d.makeClipping(_837);
5987 _838=MochiKit.Base.update({scaleContent:false,scaleX:false,afterFinishInternal:function(_841){
5988 new v.Scale(_837,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(_841){
5989 s.hideElement(_841.element);
5990 d.undoClipping(_841.element,_840);
5991 s.setStyle(_841.element,_839);
5992 }});
5993 }},_838||{});
5994 return new v.Scale(_837,5,_838);
5995 };
5996 MochiKit.Visual.Color=MochiKit.Color.Color;
5997 MochiKit.Visual.getElementsComputedStyle=MochiKit.DOM.computedStyle;
5998 MochiKit.Visual.__new__=function(){
5999 var m=MochiKit.Base;
6000 m.nameFunctions(this);
6001 this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
6002 };
6003 MochiKit.Visual.EXPORT=["roundElement","roundClass","tagifyText","multiple","toggle","Base","Parallel","Opacity","Move","Scale","Highlight","ScrollTo","fade","appear","puff","blindUp","blindDown","switchOff","dropOut","shake","slideDown","slideUp","squish","grow","shrink","pulsate","fold"];
6004 MochiKit.Visual.EXPORT_OK=["PAIRS"];
6005 MochiKit.Visual.__new__();
6006 MochiKit.Base._exportSymbols(this,MochiKit.Visual);
6007 if(typeof (MochiKit)=="undefined"){
6008 MochiKit={};
6009 }
6010 if(typeof (MochiKit.MochiKit)=="undefined"){
6011 MochiKit.MochiKit={};
6012 }
6013 MochiKit.MochiKit.NAME="MochiKit.MochiKit";
6014 MochiKit.MochiKit.VERSION="1.4";
6015 MochiKit.MochiKit.__repr__=function(){
6016 return "["+this.NAME+" "+this.VERSION+"]";
6017 };
6018 MochiKit.MochiKit.toString=function(){
6019 return this.__repr__();
6020 };
6021 MochiKit.MochiKit.SUBMODULES=["Base","Iter","Logging","DateTime","Format","Async","DOM","Style","LoggingPane","Color","Signal","Visual"];
6022 if(typeof (JSAN)!="undefined"||typeof (dojo)!="undefined"){
6023 if(typeof (dojo)!="undefined"){
6024 dojo.provide("MochiKit.MochiKit");
6025 dojo.require("MochiKit.*");
6026 }
6027 if(typeof (JSAN)!="undefined"){
6028 (function(lst){
6029 for(var i=0;i<lst.length;i++){
6030 JSAN.use("MochiKit."+lst[i],[]);
6031 }
6032 })(MochiKit.MochiKit.SUBMODULES);
6033 }
6034 (function(){
6035 var _842=MochiKit.Base.extend;
6036 var self=MochiKit.MochiKit;
6037 var _843=self.SUBMODULES;
6038 var _844=[];
6039 var _845=[];
6040 var _846={};
6041 var i,k,m,all;
6042 for(i=0;i<_843.length;i++){
6043 m=MochiKit[_843[i]];
6044 _842(_844,m.EXPORT);
6045 _842(_845,m.EXPORT_OK);
6046 for(k in m.EXPORT_TAGS){
6047 _846[k]=_842(_846[k],m.EXPORT_TAGS[k]);
6048 }
6049 all=m.EXPORT_TAGS[":all"];
6050 if(!all){
6051 all=_842(null,m.EXPORT,m.EXPORT_OK);
6052 }
6053 var j;
6054 for(j=0;j<all.length;j++){
6055 k=all[j];
6056 self[k]=m[k];
6057 }
6058 }
6059 self.EXPORT=_844;
6060 self.EXPORT_OK=_845;
6061 self.EXPORT_TAGS=_846;
6062 }());
6063 }else{
6064 if(typeof (MochiKit.__compat__)=="undefined"){
6065 MochiKit.__compat__=true;
6066 }
6067 (function(){
6068 if(typeof (document)=="undefined"){
6069 return;
6070 }
6071 var _847=document.getElementsByTagName("script");
6072 var _848="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
6073 var base=null;
6074 var _849=null;
6075 var _850={};
6076 var i;
6077 for(i=0;i<_847.length;i++){
6078 var src=_847[i].getAttribute("src");
6079 if(!src){
6080 continue;
6081 }
6082 _850[src]=true;
6083 if(src.match(/MochiKit.js$/)){
6084 base=src.substring(0,src.lastIndexOf("MochiKit.js"));
6085 _849=_847[i];
6086 }
6087 }
6088 if(base===null){
6089 return;
6090 }
6091 var _851=MochiKit.MochiKit.SUBMODULES;
6092 for(var i=0;i<_851.length;i++){
6093 if(MochiKit[_851[i]]){
6094 continue;
6095 }
6096 var uri=base+_851[i]+".js";
6097 if(uri in _850){
6098 continue;
6099 }
6100 if(document.documentElement&&document.documentElement.namespaceURI==_848){
6101 var s=document.createElementNS(_848,"script");
6102 s.setAttribute("id","MochiKit_"+base+_851[i]);
6103 s.setAttribute("src",uri);
6104 s.setAttribute("type","application/x-javascript");
6105 _849.parentNode.appendChild(s);
6106 }else{
6107 document.write("<script src=\""+uri+"\" type=\"text/javascript\"></script>");
6108 }
6109 }
6110 })();
6111 }
6112 
6113 

This page was automatically generated by LXR.