pack dygraph js as well -> 22k smaller
[dygraphs.git] / dygraph-combined.js
CommitLineData
6a1aa64f
DV
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
14if(typeof (dojo)!="undefined"){
15dojo.provide("MochiKit.Base");
16}
17if(typeof (MochiKit)=="undefined"){
18MochiKit={};
19}
20if(typeof (MochiKit.Base)=="undefined"){
21MochiKit.Base={};
22}
23if(typeof (MochiKit.__export__)=="undefined"){
24MochiKit.__export__=(MochiKit.__compat__||(typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined"));
25}
26MochiKit.Base.VERSION="1.4";
27MochiKit.Base.NAME="MochiKit.Base";
28MochiKit.Base.update=function(_1,_2){
29if(_1===null){
30_1={};
31}
32for(var i=1;i<arguments.length;i++){
33var o=arguments[i];
34if(typeof (o)!="undefined"&&o!==null){
35for(var k in o){
36_1[k]=o[k];
37}
38}
39}
40return _1;
41};
42MochiKit.Base.update(MochiKit.Base,{__repr__:function(){
43return "["+this.NAME+" "+this.VERSION+"]";
44},toString:function(){
45return this.__repr__();
46},camelize:function(_6){
47var _7=_6.split("-");
48var cc=_7[0];
49for(var i=1;i<_7.length;i++){
50cc+=_7[i].charAt(0).toUpperCase()+_7[i].substring(1);
51}
52return cc;
53},counter:function(n){
54if(arguments.length===0){
55n=1;
56}
57return function(){
58return n++;
59};
60},clone:function(_b){
61var me=arguments.callee;
62if(arguments.length==1){
63me.prototype=_b;
64return new me();
65}
66},_flattenArray:function(_d,_e){
67for(var i=0;i<_e.length;i++){
68var o=_e[i];
69if(o instanceof Array){
70arguments.callee(_d,o);
71}else{
72_d.push(o);
73}
74}
75return _d;
76},flattenArray:function(lst){
77return MochiKit.Base._flattenArray([],lst);
78},flattenArguments:function(lst){
79var res=[];
80var m=MochiKit.Base;
81var _15=m.extend(null,arguments);
82while(_15.length){
83var o=_15.shift();
84if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){
85for(var i=o.length-1;i>=0;i--){
86_15.unshift(o[i]);
87}
88}else{
89res.push(o);
90}
91}
92return res;
93},extend:function(_18,obj,_1a){
94if(!_1a){
95_1a=0;
96}
97if(obj){
98var l=obj.length;
99if(typeof (l)!="number"){
100if(typeof (MochiKit.Iter)!="undefined"){
101obj=MochiKit.Iter.list(obj);
102l=obj.length;
103}else{
104throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
105}
106}
107if(!_18){
108_18=[];
109}
110for(var i=_1a;i<l;i++){
111_18.push(obj[i]);
112}
113}
114return _18;
115},updatetree:function(_1d,obj){
116if(_1d===null){
117_1d={};
118}
119for(var i=1;i<arguments.length;i++){
120var o=arguments[i];
121if(typeof (o)!="undefined"&&o!==null){
122for(var k in o){
123var v=o[k];
124if(typeof (_1d[k])=="object"&&typeof (v)=="object"){
125arguments.callee(_1d[k],v);
126}else{
127_1d[k]=v;
128}
129}
130}
131}
132return _1d;
133},setdefault:function(_23,obj){
134if(_23===null){
135_23={};
136}
137for(var i=1;i<arguments.length;i++){
138var o=arguments[i];
139for(var k in o){
140if(!(k in _23)){
141_23[k]=o[k];
142}
143}
144}
145return _23;
146},keys:function(obj){
147var _29=[];
148for(var _2a in obj){
149_29.push(_2a);
150}
151return _29;
152},values:function(obj){
153var _2c=[];
154for(var _2d in obj){
155_2c.push(obj[_2d]);
156}
157return _2c;
158},items:function(obj){
159var _2f=[];
160var e;
161for(var _31 in obj){
162var v;
163try{
164v=obj[_31];
165}
166catch(e){
167continue;
168}
169_2f.push([_31,v]);
170}
171return _2f;
172},_newNamedError:function(_33,_34,_35){
173_35.prototype=new MochiKit.Base.NamedError(_33.NAME+"."+_34);
174_33[_34]=_35;
175},operator:{truth:function(a){
176return !!a;
177},lognot:function(a){
178return !a;
179},identity:function(a){
180return a;
181},not:function(a){
182return ~a;
183},neg:function(a){
184return -a;
185},add:function(a,b){
186return a+b;
187},sub:function(a,b){
188return a-b;
189},div:function(a,b){
190return a/b;
191},mod:function(a,b){
192return a%b;
193},mul:function(a,b){
194return a*b;
195},and:function(a,b){
196return a&b;
197},or:function(a,b){
198return a|b;
199},xor:function(a,b){
200return a^b;
201},lshift:function(a,b){
202return a<<b;
203},rshift:function(a,b){
204return a>>b;
205},zrshift:function(a,b){
206return a>>>b;
207},eq:function(a,b){
208return a==b;
209},ne:function(a,b){
210return a!=b;
211},gt:function(a,b){
212return a>b;
213},ge:function(a,b){
214return a>=b;
215},lt:function(a,b){
216return a<b;
217},le:function(a,b){
218return a<=b;
219},seq:function(a,b){
220return a===b;
221},sne:function(a,b){
222return a!==b;
223},ceq:function(a,b){
224return MochiKit.Base.compare(a,b)===0;
225},cne:function(a,b){
226return MochiKit.Base.compare(a,b)!==0;
227},cgt:function(a,b){
228return MochiKit.Base.compare(a,b)==1;
229},cge:function(a,b){
230return MochiKit.Base.compare(a,b)!=-1;
231},clt:function(a,b){
232return MochiKit.Base.compare(a,b)==-1;
233},cle:function(a,b){
234return MochiKit.Base.compare(a,b)!=1;
235},logand:function(a,b){
236return a&&b;
237},logor:function(a,b){
238return a||b;
239},contains:function(a,b){
240return b in a;
241}},forwardCall:function(_73){
242return function(){
243return this[_73].apply(this,arguments);
244};
245},itemgetter:function(_74){
246return function(arg){
247return arg[_74];
248};
249},typeMatcher:function(){
250var _76={};
251for(var i=0;i<arguments.length;i++){
252var typ=arguments[i];
253_76[typ]=typ;
254}
255return function(){
256for(var i=0;i<arguments.length;i++){
257if(!(typeof (arguments[i]) in _76)){
258return false;
259}
260}
261return true;
262};
263},isNull:function(){
264for(var i=0;i<arguments.length;i++){
265if(arguments[i]!==null){
266return false;
267}
268}
269return true;
270},isUndefinedOrNull:function(){
271for(var i=0;i<arguments.length;i++){
272var o=arguments[i];
273if(!(typeof (o)=="undefined"||o===null)){
274return false;
275}
276}
277return true;
278},isEmpty:function(obj){
279return !MochiKit.Base.isNotEmpty.apply(this,arguments);
280},isNotEmpty:function(obj){
281for(var i=0;i<arguments.length;i++){
282var o=arguments[i];
283if(!(o&&o.length)){
284return false;
285}
286}
287return true;
288},isArrayLike:function(){
289for(var i=0;i<arguments.length;i++){
290var o=arguments[i];
291var typ=typeof (o);
292if((typ!="object"&&!(typ=="function"&&typeof (o.item)=="function"))||o===null||typeof (o.length)!="number"||o.nodeType===3){
293return false;
294}
295}
296return true;
297},isDateLike:function(){
298for(var i=0;i<arguments.length;i++){
299var o=arguments[i];
300if(typeof (o)!="object"||o===null||typeof (o.getTime)!="function"){
301return false;
302}
303}
304return true;
305},xmap:function(fn){
306if(fn===null){
307return MochiKit.Base.extend(null,arguments,1);
308}
309var _87=[];
310for(var i=1;i<arguments.length;i++){
311_87.push(fn(arguments[i]));
312}
313return _87;
314},map:function(fn,lst){
315var m=MochiKit.Base;
316var itr=MochiKit.Iter;
317var _8d=m.isArrayLike;
318if(arguments.length<=2){
319if(!_8d(lst)){
320if(itr){
321lst=itr.list(lst);
322if(fn===null){
323return lst;
324}
325}else{
326throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
327}
328}
329if(fn===null){
330return m.extend(null,lst);
331}
332var _8e=[];
333for(var i=0;i<lst.length;i++){
334_8e.push(fn(lst[i]));
335}
336return _8e;
337}else{
338if(fn===null){
339fn=Array;
340}
341var _90=null;
342for(i=1;i<arguments.length;i++){
343if(!_8d(arguments[i])){
344if(itr){
345return itr.list(itr.imap.apply(null,arguments));
346}else{
347throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
348}
349}
350var l=arguments[i].length;
351if(_90===null||_90>l){
352_90=l;
353}
354}
355_8e=[];
356for(i=0;i<_90;i++){
357var _92=[];
358for(var j=1;j<arguments.length;j++){
359_92.push(arguments[j][i]);
360}
361_8e.push(fn.apply(this,_92));
362}
363return _8e;
364}
365},xfilter:function(fn){
366var _95=[];
367if(fn===null){
368fn=MochiKit.Base.operator.truth;
369}
370for(var i=1;i<arguments.length;i++){
371var o=arguments[i];
372if(fn(o)){
373_95.push(o);
374}
375}
376return _95;
377},filter:function(fn,lst,_9a){
378var _9b=[];
379var m=MochiKit.Base;
380if(!m.isArrayLike(lst)){
381if(MochiKit.Iter){
382lst=MochiKit.Iter.list(lst);
383}else{
384throw new TypeError("Argument not an array-like and MochiKit.Iter not present");
385}
386}
387if(fn===null){
388fn=m.operator.truth;
389}
390if(typeof (Array.prototype.filter)=="function"){
391return Array.prototype.filter.call(lst,fn,_9a);
392}else{
393if(typeof (_9a)=="undefined"||_9a===null){
394for(var i=0;i<lst.length;i++){
395var o=lst[i];
396if(fn(o)){
397_9b.push(o);
398}
399}
400}else{
401for(i=0;i<lst.length;i++){
402o=lst[i];
403if(fn.call(_9a,o)){
404_9b.push(o);
405}
406}
407}
408}
409return _9b;
410},_wrapDumbFunction:function(_9f){
411return function(){
412switch(arguments.length){
413case 0:
414return _9f();
415case 1:
416return _9f(arguments[0]);
417case 2:
418return _9f(arguments[0],arguments[1]);
419case 3:
420return _9f(arguments[0],arguments[1],arguments[2]);
421}
422var _a0=[];
423for(var i=0;i<arguments.length;i++){
424_a0.push("arguments["+i+"]");
425}
426return eval("(func("+_a0.join(",")+"))");
427};
428},methodcaller:function(_a2){
429var _a3=MochiKit.Base.extend(null,arguments,1);
430if(typeof (_a2)=="function"){
431return function(obj){
432return _a2.apply(obj,_a3);
433};
434}else{
435return function(obj){
436return obj[_a2].apply(obj,_a3);
437};
438}
439},method:function(_a6,_a7){
440var m=MochiKit.Base;
441return m.bind.apply(this,m.extend([_a7,_a6],arguments,2));
442},compose:function(f1,f2){
443var _ab=[];
444var m=MochiKit.Base;
445if(arguments.length===0){
446throw new TypeError("compose() requires at least one argument");
447}
448for(var i=0;i<arguments.length;i++){
449var fn=arguments[i];
450if(typeof (fn)!="function"){
451throw new TypeError(m.repr(fn)+" is not a function");
452}
453_ab.push(fn);
454}
455return function(){
456var _af=arguments;
457for(var i=_ab.length-1;i>=0;i--){
458_af=[_ab[i].apply(this,_af)];
459}
460return _af[0];
461};
462},bind:function(_b1,_b2){
463if(typeof (_b1)=="string"){
464_b1=_b2[_b1];
465}
466var _b3=_b1.im_func;
467var _b4=_b1.im_preargs;
468var _b5=_b1.im_self;
469var m=MochiKit.Base;
470if(typeof (_b1)=="function"&&typeof (_b1.apply)=="undefined"){
471_b1=m._wrapDumbFunction(_b1);
472}
473if(typeof (_b3)!="function"){
474_b3=_b1;
475}
476if(typeof (_b2)!="undefined"){
477_b5=_b2;
478}
479if(typeof (_b4)=="undefined"){
480_b4=[];
481}else{
482_b4=_b4.slice();
483}
484m.extend(_b4,arguments,2);
485var _b7=function(){
486var _b8=arguments;
487var me=arguments.callee;
488if(me.im_preargs.length>0){
489_b8=m.concat(me.im_preargs,_b8);
490}
491var _ba=me.im_self;
492if(!_ba){
493_ba=this;
494}
495return me.im_func.apply(_ba,_b8);
496};
497_b7.im_self=_b5;
498_b7.im_func=_b3;
499_b7.im_preargs=_b4;
500return _b7;
501},bindMethods:function(_bb){
502var _bc=MochiKit.Base.bind;
503for(var k in _bb){
504var _be=_bb[k];
505if(typeof (_be)=="function"){
506_bb[k]=_bc(_be,_bb);
507}
508}
509},registerComparator:function(_bf,_c0,_c1,_c2){
510MochiKit.Base.comparatorRegistry.register(_bf,_c0,_c1,_c2);
511},_primitives:{"boolean":true,"string":true,"number":true},compare:function(a,b){
512if(a==b){
513return 0;
514}
515var _c5=(typeof (a)=="undefined"||a===null);
516var _c6=(typeof (b)=="undefined"||b===null);
517if(_c5&&_c6){
518return 0;
519}else{
520if(_c5){
521return -1;
522}else{
523if(_c6){
524return 1;
525}
526}
527}
528var m=MochiKit.Base;
529var _c8=m._primitives;
530if(!(typeof (a) in _c8&&typeof (b) in _c8)){
531try{
532return m.comparatorRegistry.match(a,b);
533}
534catch(e){
535if(e!=m.NotFound){
536throw e;
537}
538}
539}
540if(a<b){
541return -1;
542}else{
543if(a>b){
544return 1;
545}
546}
547var _c9=m.repr;
548throw new TypeError(_c9(a)+" and "+_c9(b)+" can not be compared");
549},compareDateLike:function(a,b){
550return MochiKit.Base.compare(a.getTime(),b.getTime());
551},compareArrayLike:function(a,b){
552var _ce=MochiKit.Base.compare;
553var _cf=a.length;
554var _d0=0;
555if(_cf>b.length){
556_d0=1;
557_cf=b.length;
558}else{
559if(_cf<b.length){
560_d0=-1;
561}
562}
563for(var i=0;i<_cf;i++){
564var cmp=_ce(a[i],b[i]);
565if(cmp){
566return cmp;
567}
568}
569return _d0;
570},registerRepr:function(_d3,_d4,_d5,_d6){
571MochiKit.Base.reprRegistry.register(_d3,_d4,_d5,_d6);
572},repr:function(o){
573if(typeof (o)=="undefined"){
574return "undefined";
575}else{
576if(o===null){
577return "null";
578}
579}
580try{
581if(typeof (o.__repr__)=="function"){
582return o.__repr__();
583}else{
584if(typeof (o.repr)=="function"&&o.repr!=arguments.callee){
585return o.repr();
586}
587}
588return MochiKit.Base.reprRegistry.match(o);
589}
590catch(e){
591if(typeof (o.NAME)=="string"&&(o.toString==Function.prototype.toString||o.toString==Object.prototype.toString)){
592return o.NAME;
593}
594}
595try{
596var _d8=(o+"");
597}
598catch(e){
599return "["+typeof (o)+"]";
600}
601if(typeof (o)=="function"){
602o=_d8.replace(/^\s+/,"");
603var idx=o.indexOf("{");
604if(idx!=-1){
605o=o.substr(0,idx)+"{...}";
606}
607}
608return _d8;
609},reprArrayLike:function(o){
610var m=MochiKit.Base;
611return "["+m.map(m.repr,o).join(", ")+"]";
612},reprString:function(o){
613return ("\""+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){
615return o+"";
616},registerJSON:function(_de,_df,_e0,_e1){
617MochiKit.Base.jsonRegistry.register(_de,_df,_e0,_e1);
618},evalJSON:function(){
619return eval("("+arguments[0]+")");
620},serializeJSON:function(o){
621var _e3=typeof (o);
622if(_e3=="number"||_e3=="boolean"){
623return o+"";
624}else{
625if(o===null){
626return "null";
627}
628}
629var m=MochiKit.Base;
630var _e5=m.reprString;
631if(_e3=="string"){
632return _e5(o);
633}
634var me=arguments.callee;
635var _e7;
636if(typeof (o.__json__)=="function"){
637_e7=o.__json__();
638if(o!==_e7){
639return me(_e7);
640}
641}
642if(typeof (o.json)=="function"){
643_e7=o.json();
644if(o!==_e7){
645return me(_e7);
646}
647}
648if(_e3!="function"&&typeof (o.length)=="number"){
649var res=[];
650for(var i=0;i<o.length;i++){
651var val=me(o[i]);
652if(typeof (val)!="string"){
653val="undefined";
654}
655res.push(val);
656}
657return "["+res.join(", ")+"]";
658}
659try{
660_e7=m.jsonRegistry.match(o);
661if(o!==_e7){
662return me(_e7);
663}
664}
665catch(e){
666if(e!=m.NotFound){
667throw e;
668}
669}
670if(_e3=="undefined"){
671throw new TypeError("undefined can not be serialized as JSON");
672}
673if(_e3=="function"){
674return null;
675}
676res=[];
677for(var k in o){
678var _ec;
679if(typeof (k)=="number"){
680_ec="\""+k+"\"";
681}else{
682if(typeof (k)=="string"){
683_ec=_e5(k);
684}else{
685continue;
686}
687}
688val=me(o[k]);
689if(typeof (val)!="string"){
690continue;
691}
692res.push(_ec+":"+val);
693}
694return "{"+res.join(", ")+"}";
695},objEqual:function(a,b){
696return (MochiKit.Base.compare(a,b)===0);
697},arrayEqual:function(_ef,arr){
698if(_ef.length!=arr.length){
699return false;
700}
701return (MochiKit.Base.compare(_ef,arr)===0);
702},concat:function(){
703var _f1=[];
704var _f2=MochiKit.Base.extend;
705for(var i=0;i<arguments.length;i++){
706_f2(_f1,arguments[i]);
707}
708return _f1;
709},keyComparator:function(key){
710var m=MochiKit.Base;
711var _f6=m.compare;
712if(arguments.length==1){
713return function(a,b){
714return _f6(a[key],b[key]);
715};
716}
717var _f9=m.extend(null,arguments);
718return function(a,b){
719var _fc=0;
720for(var i=0;(_fc===0)&&(i<_f9.length);i++){
721var key=_f9[i];
722_fc=_f6(a[key],b[key]);
723}
724return _fc;
725};
726},reverseKeyComparator:function(key){
727var _100=MochiKit.Base.keyComparator.apply(this,arguments);
728return function(a,b){
729return _100(b,a);
730};
731},partial:function(func){
732var m=MochiKit.Base;
733return m.bind.apply(this,m.extend([func,undefined],arguments,1));
734},listMinMax:function(_105,lst){
735if(lst.length===0){
736return null;
737}
738var cur=lst[0];
739var _108=MochiKit.Base.compare;
740for(var i=1;i<lst.length;i++){
741var o=lst[i];
742if(_108(o,cur)==_105){
743cur=o;
744}
745}
746return cur;
747},objMax:function(){
748return MochiKit.Base.listMinMax(1,arguments);
749},objMin:function(){
750return MochiKit.Base.listMinMax(-1,arguments);
751},findIdentical:function(lst,_10c,_10d,end){
752if(typeof (end)=="undefined"||end===null){
753end=lst.length;
754}
755if(typeof (_10d)=="undefined"||_10d===null){
756_10d=0;
757}
758for(var i=_10d;i<end;i++){
759if(lst[i]===_10c){
760return i;
761}
762}
763return -1;
764},mean:function(){
765var sum=0;
766var m=MochiKit.Base;
767var args=m.extend(null,arguments);
768var _113=args.length;
769while(args.length){
770var o=args.shift();
771if(o&&typeof (o)=="object"&&typeof (o.length)=="number"){
772_113+=o.length-1;
773for(var i=o.length-1;i>=0;i--){
774sum+=o[i];
775}
776}else{
777sum+=o;
778}
779}
780if(_113<=0){
781throw new TypeError("mean() requires at least one argument");
782}
783return sum/_113;
784},median:function(){
785var data=MochiKit.Base.flattenArguments(arguments);
786if(data.length===0){
787throw new TypeError("median() requires at least one argument");
788}
789data.sort(compare);
790if(data.length%2==0){
791var _117=data.length/2;
792return (data[_117]+data[_117-1])/2;
793}else{
794return data[(data.length-1)/2];
795}
796},findValue:function(lst,_119,_11a,end){
797if(typeof (end)=="undefined"||end===null){
798end=lst.length;
799}
800if(typeof (_11a)=="undefined"||_11a===null){
801_11a=0;
802}
803var cmp=MochiKit.Base.compare;
804for(var i=_11a;i<end;i++){
805if(cmp(lst[i],_119)===0){
806return i;
807}
808}
809return -1;
810},nodeWalk:function(node,_11f){
811var _120=[node];
812var _121=MochiKit.Base.extend;
813while(_120.length){
814var res=_11f(_120.shift());
815if(res){
816_121(_120,res);
817}
818}
819},nameFunctions:function(_123){
820var base=_123.NAME;
821if(typeof (base)=="undefined"){
822base="";
823}else{
824base=base+".";
825}
826for(var name in _123){
827var o=_123[name];
828if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){
829try{
830o.NAME=base+name;
831}
832catch(e){
833}
834}
835}
836},queryString:function(_127,_128){
837if(typeof (MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof (_127)=="string"||(typeof (_127.nodeType)!="undefined"&&_127.nodeType>0))){
838var kv=MochiKit.DOM.formContents(_127);
839_127=kv[0];
840_128=kv[1];
841}else{
842if(arguments.length==1){
843if(typeof (_127.length)=="number"&&_127.length==2){
844return arguments.callee(_127[0],_127[1]);
845}
846var o=_127;
847_127=[];
848_128=[];
849for(var k in o){
850var v=o[k];
851if(typeof (v)=="function"){
852continue;
853}else{
854if(typeof (v)!="string"&&typeof (v.length)=="number"){
855for(var i=0;i<v.length;i++){
856_127.push(k);
857_128.push(v[i]);
858}
859}else{
860_127.push(k);
861_128.push(v);
862}
863}
864}
865}
866}
867var rval=[];
868var len=Math.min(_127.length,_128.length);
869var _130=MochiKit.Base.urlEncode;
870for(var i=0;i<len;i++){
871v=_128[i];
872if(typeof (v)!="undefined"&&v!==null){
873rval.push(_130(_127[i])+"="+_130(v));
874}
875}
876return rval.join("&");
877},parseQueryString:function(_131,_132){
878var qstr=(_131.charAt(0)=="?")?_131.substring(1):_131;
879var _134=qstr.replace(/\+/g,"%20").split(/(\&amp\;|\&\#38\;|\&#x26;|\&)/);
880var o={};
881var _136;
882if(typeof (decodeURIComponent)!="undefined"){
883_136=decodeURIComponent;
884}else{
885_136=unescape;
886}
887if(_132){
888for(var i=0;i<_134.length;i++){
889var pair=_134[i].split("=");
890var name=_136(pair.shift());
891if(!name){
892continue;
893}
894var arr=o[name];
895if(!(arr instanceof Array)){
896arr=[];
897o[name]=arr;
898}
899arr.push(_136(pair.join("=")));
900}
901}else{
902for(i=0;i<_134.length;i++){
903pair=_134[i].split("=");
904var name=pair.shift();
905if(!name){
906continue;
907}
908o[_136(name)]=_136(pair.join("="));
909}
910}
911return o;
912}});
913MochiKit.Base.AdapterRegistry=function(){
914this.pairs=[];
915};
916MochiKit.Base.AdapterRegistry.prototype={register:function(name,_13c,wrap,_13e){
917if(_13e){
918this.pairs.unshift([name,_13c,wrap]);
919}else{
920this.pairs.push([name,_13c,wrap]);
921}
922},match:function(){
923for(var i=0;i<this.pairs.length;i++){
924var pair=this.pairs[i];
925if(pair[1].apply(this,arguments)){
926return pair[2].apply(this,arguments);
927}
928}
929throw MochiKit.Base.NotFound;
930},unregister:function(name){
931for(var i=0;i<this.pairs.length;i++){
932var pair=this.pairs[i];
933if(pair[0]==name){
934this.pairs.splice(i,1);
935return true;
936}
937}
938return false;
939}};
940MochiKit.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"];
941MochiKit.Base.EXPORT_OK=["nameFunctions","comparatorRegistry","reprRegistry","jsonRegistry","compareDateLike","compareArrayLike","reprArrayLike","reprString","reprNumber"];
942MochiKit.Base._exportSymbols=function(_144,_145){
943if(!MochiKit.__export__){
944return;
945}
946var all=_145.EXPORT_TAGS[":all"];
947for(var i=0;i<all.length;i++){
948_144[all[i]]=_145[all[i]];
949}
950};
951MochiKit.Base.__new__=function(){
952var m=this;
953m.noop=m.operator.identity;
954m.forward=m.forwardCall;
955m.find=m.findValue;
956if(typeof (encodeURIComponent)!="undefined"){
957m.urlEncode=function(_149){
958return encodeURIComponent(_149).replace(/\'/g,"%27");
959};
960}else{
961m.urlEncode=function(_14a){
962return escape(_14a).replace(/\+/g,"%2B").replace(/\"/g,"%22").rval.replace(/\'/g,"%27");
963};
964}
965m.NamedError=function(name){
966this.message=name;
967this.name=name;
968};
969m.NamedError.prototype=new Error();
970m.update(m.NamedError.prototype,{repr:function(){
971if(this.message&&this.message!=this.name){
972return this.name+"("+m.repr(this.message)+")";
973}else{
974return this.name+"()";
975}
976},toString:m.forwardCall("repr")});
977m.NotFound=new m.NamedError("MochiKit.Base.NotFound");
978m.listMax=m.partial(m.listMinMax,1);
979m.listMin=m.partial(m.listMinMax,-1);
980m.isCallable=m.typeMatcher("function");
981m.isUndefined=m.typeMatcher("undefined");
982m.merge=m.partial(m.update,null);
983m.zip=m.partial(m.map,null);
984m.average=m.mean;
985m.comparatorRegistry=new m.AdapterRegistry();
986m.registerComparator("dateLike",m.isDateLike,m.compareDateLike);
987m.registerComparator("arrayLike",m.isArrayLike,m.compareArrayLike);
988m.reprRegistry=new m.AdapterRegistry();
989m.registerRepr("arrayLike",m.isArrayLike,m.reprArrayLike);
990m.registerRepr("string",m.typeMatcher("string"),m.reprString);
991m.registerRepr("numbers",m.typeMatcher("number","boolean"),m.reprNumber);
992m.jsonRegistry=new m.AdapterRegistry();
993var all=m.concat(m.EXPORT,m.EXPORT_OK);
994m.EXPORT_TAGS={":common":m.concat(m.EXPORT_OK),":all":all};
995m.nameFunctions(this);
996};
997MochiKit.Base.__new__();
998if(MochiKit.__export__){
999compare=MochiKit.Base.compare;
1000compose=MochiKit.Base.compose;
1001serializeJSON=MochiKit.Base.serializeJSON;
1002}
1003MochiKit.Base._exportSymbols(this,MochiKit.Base);
1004if(typeof (dojo)!="undefined"){
165759fa
DV
1005dojo.provide("MochiKit.Iter");
1006dojo.require("MochiKit.Base");
1007}
1008if(typeof (JSAN)!="undefined"){
1009JSAN.use("MochiKit.Base",[]);
1010}
1011try{
1012if(typeof (MochiKit.Base)=="undefined"){
1013throw "";
1014}
1015}
1016catch(e){
1017throw "MochiKit.Iter depends on MochiKit.Base!";
1018}
1019if(typeof (MochiKit.Iter)=="undefined"){
1020MochiKit.Iter={};
1021}
1022MochiKit.Iter.NAME="MochiKit.Iter";
1023MochiKit.Iter.VERSION="1.4";
1024MochiKit.Base.update(MochiKit.Iter,{__repr__:function(){
1025return "["+this.NAME+" "+this.VERSION+"]";
1026},toString:function(){
1027return this.__repr__();
1028},registerIteratorFactory:function(name,_14e,_14f,_150){
1029MochiKit.Iter.iteratorRegistry.register(name,_14e,_14f,_150);
1030},iter:function(_151,_152){
1031var self=MochiKit.Iter;
1032if(arguments.length==2){
1033return self.takewhile(function(a){
1034return a!=_152;
1035},_151);
1036}
1037if(typeof (_151.next)=="function"){
1038return _151;
1039}else{
1040if(typeof (_151.iter)=="function"){
1041return _151.iter();
1042}
1043}
1044try{
1045return self.iteratorRegistry.match(_151);
1046}
1047catch(e){
1048var m=MochiKit.Base;
1049if(e==m.NotFound){
1050e=new TypeError(typeof (_151)+": "+m.repr(_151)+" is not iterable");
1051}
1052throw e;
1053}
1054},count:function(n){
1055if(!n){
1056n=0;
1057}
1058var m=MochiKit.Base;
1059return {repr:function(){
1060return "count("+n+")";
1061},toString:m.forwardCall("repr"),next:m.counter(n)};
1062},cycle:function(p){
1063var self=MochiKit.Iter;
1064var m=MochiKit.Base;
1065var lst=[];
1066var _15c=self.iter(p);
1067return {repr:function(){
1068return "cycle(...)";
1069},toString:m.forwardCall("repr"),next:function(){
1070try{
1071var rval=_15c.next();
1072lst.push(rval);
1073return rval;
1074}
1075catch(e){
1076if(e!=self.StopIteration){
1077throw e;
1078}
1079if(lst.length===0){
1080this.next=function(){
1081throw self.StopIteration;
1082};
1083}else{
1084var i=-1;
1085this.next=function(){
1086i=(i+1)%lst.length;
1087return lst[i];
1088};
1089}
1090return this.next();
1091}
1092}};
1093},repeat:function(elem,n){
1094var m=MochiKit.Base;
1095if(typeof (n)=="undefined"){
1096return {repr:function(){
1097return "repeat("+m.repr(elem)+")";
1098},toString:m.forwardCall("repr"),next:function(){
1099return elem;
1100}};
1101}
1102return {repr:function(){
1103return "repeat("+m.repr(elem)+", "+n+")";
1104},toString:m.forwardCall("repr"),next:function(){
1105if(n<=0){
1106throw MochiKit.Iter.StopIteration;
1107}
1108n-=1;
1109return elem;
1110}};
1111},next:function(_162){
1112return _162.next();
1113},izip:function(p,q){
1114var m=MochiKit.Base;
1115var self=MochiKit.Iter;
1116var next=self.next;
1117var _168=m.map(self.iter,arguments);
1118return {repr:function(){
1119return "izip(...)";
1120},toString:m.forwardCall("repr"),next:function(){
1121return m.map(next,_168);
1122}};
1123},ifilter:function(pred,seq){
1124var m=MochiKit.Base;
1125seq=MochiKit.Iter.iter(seq);
1126if(pred===null){
1127pred=m.operator.truth;
1128}
1129return {repr:function(){
1130return "ifilter(...)";
1131},toString:m.forwardCall("repr"),next:function(){
1132while(true){
1133var rval=seq.next();
1134if(pred(rval)){
1135return rval;
1136}
1137}
1138return undefined;
1139}};
1140},ifilterfalse:function(pred,seq){
1141var m=MochiKit.Base;
1142seq=MochiKit.Iter.iter(seq);
1143if(pred===null){
1144pred=m.operator.truth;
1145}
1146return {repr:function(){
1147return "ifilterfalse(...)";
1148},toString:m.forwardCall("repr"),next:function(){
1149while(true){
1150var rval=seq.next();
1151if(!pred(rval)){
1152return rval;
1153}
1154}
1155return undefined;
1156}};
1157},islice:function(seq){
1158var self=MochiKit.Iter;
1159var m=MochiKit.Base;
1160seq=self.iter(seq);
1161var _174=0;
1162var stop=0;
1163var step=1;
1164var i=-1;
1165if(arguments.length==2){
1166stop=arguments[1];
1167}else{
1168if(arguments.length==3){
1169_174=arguments[1];
1170stop=arguments[2];
1171}else{
1172_174=arguments[1];
1173stop=arguments[2];
1174step=arguments[3];
1175}
1176}
1177return {repr:function(){
1178return "islice("+["...",_174,stop,step].join(", ")+")";
1179},toString:m.forwardCall("repr"),next:function(){
1180var rval;
1181while(i<_174){
1182rval=seq.next();
1183i++;
1184}
1185if(_174>=stop){
1186throw self.StopIteration;
1187}
1188_174+=step;
1189return rval;
1190}};
1191},imap:function(fun,p,q){
1192var m=MochiKit.Base;
1193var self=MochiKit.Iter;
1194var _17e=m.map(self.iter,m.extend(null,arguments,1));
1195var map=m.map;
1196var next=self.next;
1197return {repr:function(){
1198return "imap(...)";
1199},toString:m.forwardCall("repr"),next:function(){
1200return fun.apply(this,map(next,_17e));
1201}};
1202},applymap:function(fun,seq,self){
1203seq=MochiKit.Iter.iter(seq);
1204var m=MochiKit.Base;
1205return {repr:function(){
1206return "applymap(...)";
1207},toString:m.forwardCall("repr"),next:function(){
1208return fun.apply(self,seq.next());
1209}};
1210},chain:function(p,q){
1211var self=MochiKit.Iter;
1212var m=MochiKit.Base;
1213if(arguments.length==1){
1214return self.iter(arguments[0]);
1215}
1216var _189=m.map(self.iter,arguments);
1217return {repr:function(){
1218return "chain(...)";
1219},toString:m.forwardCall("repr"),next:function(){
1220while(_189.length>1){
1221try{
1222return _189[0].next();
1223}
1224catch(e){
1225if(e!=self.StopIteration){
1226throw e;
1227}
1228_189.shift();
1229}
1230}
1231if(_189.length==1){
1232var arg=_189.shift();
1233this.next=m.bind("next",arg);
1234return this.next();
1235}
1236throw self.StopIteration;
1237}};
1238},takewhile:function(pred,seq){
1239var self=MochiKit.Iter;
1240seq=self.iter(seq);
1241return {repr:function(){
1242return "takewhile(...)";
1243},toString:MochiKit.Base.forwardCall("repr"),next:function(){
1244var rval=seq.next();
1245if(!pred(rval)){
1246this.next=function(){
1247throw self.StopIteration;
1248};
1249this.next();
1250}
1251return rval;
1252}};
1253},dropwhile:function(pred,seq){
1254seq=MochiKit.Iter.iter(seq);
1255var m=MochiKit.Base;
1256var bind=m.bind;
1257return {"repr":function(){
1258return "dropwhile(...)";
1259},"toString":m.forwardCall("repr"),"next":function(){
1260while(true){
1261var rval=seq.next();
1262if(!pred(rval)){
1263break;
1264}
1265}
1266this.next=bind("next",seq);
1267return rval;
1268}};
1269},_tee:function(_194,sync,_196){
1270sync.pos[_194]=-1;
1271var m=MochiKit.Base;
1272var _198=m.listMin;
1273return {repr:function(){
1274return "tee("+_194+", ...)";
1275},toString:m.forwardCall("repr"),next:function(){
1276var rval;
1277var i=sync.pos[_194];
1278if(i==sync.max){
1279rval=_196.next();
1280sync.deque.push(rval);
1281sync.max+=1;
1282sync.pos[_194]+=1;
1283}else{
1284rval=sync.deque[i-sync.min];
1285sync.pos[_194]+=1;
1286if(i==sync.min&&_198(sync.pos)!=sync.min){
1287sync.min+=1;
1288sync.deque.shift();
1289}
1290}
1291return rval;
1292}};
1293},tee:function(_19b,n){
1294var rval=[];
1295var sync={"pos":[],"deque":[],"max":-1,"min":-1};
1296if(arguments.length==1||typeof (n)=="undefined"||n===null){
1297n=2;
1298}
1299var self=MochiKit.Iter;
1300_19b=self.iter(_19b);
1301var _tee=self._tee;
1302for(var i=0;i<n;i++){
1303rval.push(_tee(i,sync,_19b));
1304}
1305return rval;
1306},list:function(_1a2){
1307var rval;
1308if(_1a2 instanceof Array){
1309return _1a2.slice();
1310}
1311if(typeof (_1a2)=="function"&&!(_1a2 instanceof Function)&&typeof (_1a2.length)=="number"){
1312rval=[];
1313for(var i=0;i<_1a2.length;i++){
1314rval.push(_1a2[i]);
1315}
1316return rval;
1317}
1318var self=MochiKit.Iter;
1319_1a2=self.iter(_1a2);
1320var rval=[];
1321try{
1322while(true){
1323rval.push(_1a2.next());
1324}
1325}
1326catch(e){
1327if(e!=self.StopIteration){
1328throw e;
1329}
1330return rval;
1331}
1332return undefined;
1333},reduce:function(fn,_1a7,_1a8){
1334var i=0;
1335var x=_1a8;
1336var self=MochiKit.Iter;
1337_1a7=self.iter(_1a7);
1338if(arguments.length<3){
1339try{
1340x=_1a7.next();
1341}
1342catch(e){
1343if(e==self.StopIteration){
1344e=new TypeError("reduce() of empty sequence with no initial value");
1345}
1346throw e;
1347}
1348i++;
1349}
1350try{
1351while(true){
1352x=fn(x,_1a7.next());
1353}
1354}
1355catch(e){
1356if(e!=self.StopIteration){
1357throw e;
1358}
1359}
1360return x;
1361},range:function(){
1362var _1ac=0;
1363var stop=0;
1364var step=1;
1365if(arguments.length==1){
1366stop=arguments[0];
1367}else{
1368if(arguments.length==2){
1369_1ac=arguments[0];
1370stop=arguments[1];
1371}else{
1372if(arguments.length==3){
1373_1ac=arguments[0];
1374stop=arguments[1];
1375step=arguments[2];
1376}else{
1377throw new TypeError("range() takes 1, 2, or 3 arguments!");
1378}
1379}
1380}
1381if(step===0){
1382throw new TypeError("range() step must not be 0");
1383}
1384return {next:function(){
1385if((step>0&&_1ac>=stop)||(step<0&&_1ac<=stop)){
1386throw MochiKit.Iter.StopIteration;
1387}
1388var rval=_1ac;
1389_1ac+=step;
1390return rval;
1391},repr:function(){
1392return "range("+[_1ac,stop,step].join(", ")+")";
1393},toString:MochiKit.Base.forwardCall("repr")};
1394},sum:function(_1b0,_1b1){
1395if(typeof (_1b1)=="undefined"||_1b1===null){
1396_1b1=0;
1397}
1398var x=_1b1;
1399var self=MochiKit.Iter;
1400_1b0=self.iter(_1b0);
1401try{
1402while(true){
1403x+=_1b0.next();
1404}
1405}
1406catch(e){
1407if(e!=self.StopIteration){
1408throw e;
1409}
1410}
1411return x;
1412},exhaust:function(_1b4){
1413var self=MochiKit.Iter;
1414_1b4=self.iter(_1b4);
1415try{
1416while(true){
1417_1b4.next();
1418}
1419}
1420catch(e){
1421if(e!=self.StopIteration){
1422throw e;
1423}
1424}
1425},forEach:function(_1b6,func,self){
1426var m=MochiKit.Base;
1427if(arguments.length>2){
1428func=m.bind(func,self);
1429}
1430if(m.isArrayLike(_1b6)){
1431try{
1432for(var i=0;i<_1b6.length;i++){
1433func(_1b6[i]);
1434}
1435}
1436catch(e){
1437if(e!=MochiKit.Iter.StopIteration){
1438throw e;
1439}
1440}
1441}else{
1442self=MochiKit.Iter;
1443self.exhaust(self.imap(func,_1b6));
1444}
1445},every:function(_1bb,func){
1446var self=MochiKit.Iter;
1447try{
1448self.ifilterfalse(func,_1bb).next();
1449return false;
1450}
1451catch(e){
1452if(e!=self.StopIteration){
1453throw e;
1454}
1455return true;
1456}
1457},sorted:function(_1be,cmp){
1458var rval=MochiKit.Iter.list(_1be);
1459if(arguments.length==1){
1460cmp=MochiKit.Base.compare;
1461}
1462rval.sort(cmp);
1463return rval;
1464},reversed:function(_1c1){
1465var rval=MochiKit.Iter.list(_1c1);
1466rval.reverse();
1467return rval;
1468},some:function(_1c3,func){
1469var self=MochiKit.Iter;
1470try{
1471self.ifilter(func,_1c3).next();
1472return true;
1473}
1474catch(e){
1475if(e!=self.StopIteration){
1476throw e;
1477}
1478return false;
1479}
1480},iextend:function(lst,_1c7){
1481if(MochiKit.Base.isArrayLike(_1c7)){
1482for(var i=0;i<_1c7.length;i++){
1483lst.push(_1c7[i]);
1484}
1485}else{
1486var self=MochiKit.Iter;
1487_1c7=self.iter(_1c7);
1488try{
1489while(true){
1490lst.push(_1c7.next());
1491}
1492}
1493catch(e){
1494if(e!=self.StopIteration){
1495throw e;
1496}
1497}
1498}
1499return lst;
1500},groupby:function(_1ca,_1cb){
1501var m=MochiKit.Base;
1502var self=MochiKit.Iter;
1503if(arguments.length<2){
1504_1cb=m.operator.identity;
1505}
1506_1ca=self.iter(_1ca);
1507var pk=undefined;
1508var k=undefined;
1509var v;
1510function fetch(){
1511v=_1ca.next();
1512k=_1cb(v);
1513}
1514function eat(){
1515var ret=v;
1516v=undefined;
1517return ret;
1518}
1519var _1d2=true;
1520var _1d3=m.compare;
1521return {repr:function(){
1522return "groupby(...)";
1523},next:function(){
1524while(_1d3(k,pk)===0){
1525fetch();
1526if(_1d2){
1527_1d2=false;
1528break;
1529}
1530}
1531pk=k;
1532return [k,{next:function(){
1533if(v==undefined){
1534fetch();
1535}
1536if(_1d3(k,pk)!==0){
1537throw self.StopIteration;
1538}
1539return eat();
1540}}];
1541}};
1542},groupby_as_array:function(_1d4,_1d5){
1543var m=MochiKit.Base;
1544var self=MochiKit.Iter;
1545if(arguments.length<2){
1546_1d5=m.operator.identity;
1547}
1548_1d4=self.iter(_1d4);
1549var _1d8=[];
1550var _1d9=true;
1551var _1da;
1552var _1db=m.compare;
1553while(true){
1554try{
1555var _1dc=_1d4.next();
1556var key=_1d5(_1dc);
1557}
1558catch(e){
1559if(e==self.StopIteration){
1560break;
1561}
1562throw e;
1563}
1564if(_1d9||_1db(key,_1da)!==0){
1565var _1de=[];
1566_1d8.push([key,_1de]);
1567}
1568_1de.push(_1dc);
1569_1d9=false;
1570_1da=key;
1571}
1572return _1d8;
1573},arrayLikeIter:function(_1df){
1574var i=0;
1575return {repr:function(){
1576return "arrayLikeIter(...)";
1577},toString:MochiKit.Base.forwardCall("repr"),next:function(){
1578if(i>=_1df.length){
1579throw MochiKit.Iter.StopIteration;
1580}
1581return _1df[i++];
1582}};
1583},hasIterateNext:function(_1e1){
1584return (_1e1&&typeof (_1e1.iterateNext)=="function");
1585},iterateNextIter:function(_1e2){
1586return {repr:function(){
1587return "iterateNextIter(...)";
1588},toString:MochiKit.Base.forwardCall("repr"),next:function(){
1589var rval=_1e2.iterateNext();
1590if(rval===null||rval===undefined){
1591throw MochiKit.Iter.StopIteration;
1592}
1593return rval;
1594}};
1595}});
1596MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter",];
1597MochiKit.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"];
1598MochiKit.Iter.__new__=function(){
1599var m=MochiKit.Base;
1600if(typeof (StopIteration)!="undefined"){
1601this.StopIteration=StopIteration;
1602}else{
1603this.StopIteration=new m.NamedError("StopIteration");
1604}
1605this.iteratorRegistry=new m.AdapterRegistry();
1606this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter);
1607this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter);
1608this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
1609m.nameFunctions(this);
1610};
1611MochiKit.Iter.__new__();
1612if(MochiKit.__export__){
1613reduce=MochiKit.Iter.reduce;
1614}
1615MochiKit.Base._exportSymbols(this,MochiKit.Iter);
1616if(typeof (dojo)!="undefined"){
79f17b42 1617dojo.provide("MochiKit.Format");
6a1aa64f 1618}
79f17b42
DV
1619if(typeof (MochiKit)=="undefined"){
1620MochiKit={};
6a1aa64f 1621}
79f17b42
DV
1622if(typeof (MochiKit.Format)=="undefined"){
1623MochiKit.Format={};
6a1aa64f 1624}
79f17b42
DV
1625MochiKit.Format.NAME="MochiKit.Format";
1626MochiKit.Format.VERSION="1.4";
1627MochiKit.Format.__repr__=function(){
6a1aa64f 1628return "["+this.NAME+" "+this.VERSION+"]";
79f17b42
DV
1629};
1630MochiKit.Format.toString=function(){
6a1aa64f 1631return this.__repr__();
79f17b42 1632};
165759fa 1633MochiKit.Format._numberFormatter=function(_1e5,_1e6,_1e7,_1e8,_1e9,_1ea,_1eb,_1ec,_1ed){
79f17b42
DV
1634return function(num){
1635num=parseFloat(num);
1636if(typeof (num)=="undefined"||num===null||isNaN(num)){
165759fa 1637return _1e5;
6a1aa64f 1638}
165759fa
DV
1639var _1ef=_1e6;
1640var _1f0=_1e7;
79f17b42
DV
1641if(num<0){
1642num=-num;
6a1aa64f 1643}else{
165759fa 1644_1ef=_1ef.replace(/-/,"");
6a1aa64f 1645}
79f17b42 1646var me=arguments.callee;
165759fa
DV
1647var fmt=MochiKit.Format.formatLocale(_1e8);
1648if(_1e9){
79f17b42 1649num=num*100;
165759fa 1650_1f0=fmt.percent+_1f0;
6a1aa64f 1651}
165759fa
DV
1652num=MochiKit.Format.roundToFixed(num,_1ea);
1653var _1f3=num.split(/\./);
1654var _1f4=_1f3[0];
1655var frac=(_1f3.length==1)?"":_1f3[1];
79f17b42 1656var res="";
165759fa
DV
1657while(_1f4.length<_1eb){
1658_1f4="0"+_1f4;
6a1aa64f 1659}
165759fa
DV
1660if(_1ec){
1661while(_1f4.length>_1ec){
1662var i=_1f4.length-_1ec;
1663res=fmt.separator+_1f4.substring(i,_1f4.length)+res;
1664_1f4=_1f4.substring(0,i);
6a1aa64f 1665}
6a1aa64f 1666}
165759fa
DV
1667res=_1f4+res;
1668if(_1ea>0){
1669while(frac.length<_1ed){
79f17b42 1670frac=frac+"0";
6a1aa64f 1671}
79f17b42 1672res=res+fmt.decimal+frac;
6a1aa64f 1673}
165759fa 1674return _1ef+res+_1f0;
6a1aa64f 1675};
6a1aa64f 1676};
165759fa
DV
1677MochiKit.Format.numberFormatter=function(_1f8,_1f9,_1fa){
1678if(typeof (_1f9)=="undefined"){
1679_1f9="";
6a1aa64f 1680}
165759fa
DV
1681var _1fb=_1f8.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/);
1682if(!_1fb){
79f17b42 1683throw TypeError("Invalid pattern");
6a1aa64f 1684}
165759fa
DV
1685var _1fc=_1f8.substr(0,_1fb.index);
1686var _1fd=_1f8.substr(_1fb.index+_1fb[0].length);
1687if(_1fc.search(/-/)==-1){
1688_1fc=_1fc+"-";
6a1aa64f 1689}
165759fa
DV
1690var _1fe=_1fb[1];
1691var frac=(typeof (_1fb[2])=="string"&&_1fb[2]!="")?_1fb[2]:"";
1692var _200=(typeof (_1fb[3])=="string"&&_1fb[3]!="");
1693var tmp=_1fe.split(/,/);
1694var _202;
1695if(typeof (_1fa)=="undefined"){
1696_1fa="default";
6a1aa64f 1697}
79f17b42 1698if(tmp.length==1){
165759fa 1699_202=null;
79f17b42 1700}else{
165759fa 1701_202=tmp[1].length;
6a1aa64f 1702}
165759fa
DV
1703var _203=_1fe.length-_1fe.replace(/0/g,"").length;
1704var _204=frac.length-frac.replace(/0/g,"").length;
1705var _205=frac.length;
1706var rval=MochiKit.Format._numberFormatter(_1f9,_1fc,_1fd,_1fa,_200,_205,_203,_202,_204);
6a1aa64f 1707var m=MochiKit.Base;
79f17b42
DV
1708if(m){
1709var fn=arguments.callee;
1710var args=m.concat(arguments);
1711rval.repr=function(){
1712return [self.NAME,"(",map(m.repr,args).join(", "),")"].join("");
1713};
6a1aa64f 1714}
6a1aa64f 1715return rval;
79f17b42 1716};
165759fa
DV
1717MochiKit.Format.formatLocale=function(_20a){
1718if(typeof (_20a)=="undefined"||_20a===null){
1719_20a="default";
6a1aa64f 1720}
165759fa
DV
1721if(typeof (_20a)=="string"){
1722var rval=MochiKit.Format.LOCALE[_20a];
79f17b42
DV
1723if(typeof (rval)=="string"){
1724rval=arguments.callee(rval);
165759fa 1725MochiKit.Format.LOCALE[_20a]=rval;
6a1aa64f 1726}
6a1aa64f 1727return rval;
79f17b42 1728}else{
165759fa 1729return _20a;
6a1aa64f 1730}
79f17b42 1731};
165759fa
DV
1732MochiKit.Format.twoDigitAverage=function(_20c,_20d){
1733if(_20d){
1734var res=_20c/_20d;
79f17b42 1735if(!isNaN(res)){
165759fa 1736return MochiKit.Format.twoDigitFloat(_20c/_20d);
6a1aa64f 1737}
6a1aa64f 1738}
79f17b42 1739return "0";
6a1aa64f 1740};
165759fa
DV
1741MochiKit.Format.twoDigitFloat=function(_20f){
1742var sign=(_20f<0?"-":"");
1743var s=Math.floor(Math.abs(_20f)*100).toString();
79f17b42
DV
1744if(s=="0"){
1745return s;
6a1aa64f 1746}
79f17b42
DV
1747if(s.length<3){
1748while(s.charAt(s.length-1)=="0"){
1749s=s.substring(0,s.length-1);
6a1aa64f 1750}
79f17b42 1751return sign+"0."+s;
6a1aa64f 1752}
79f17b42
DV
1753var head=sign+s.substring(0,s.length-2);
1754var tail=s.substring(s.length-2,s.length);
1755if(tail=="00"){
1756return head;
6a1aa64f 1757}else{
79f17b42
DV
1758if(tail.charAt(1)=="0"){
1759return head+"."+tail.charAt(0);
1760}else{
1761return head+"."+tail;
6a1aa64f 1762}
6a1aa64f 1763}
79f17b42 1764};
165759fa 1765MochiKit.Format.lstrip=function(str,_215){
79f17b42
DV
1766str=str+"";
1767if(typeof (str)!="string"){
1768return null;
6a1aa64f 1769}
165759fa 1770if(!_215){
79f17b42
DV
1771return str.replace(/^\s+/,"");
1772}else{
165759fa 1773return str.replace(new RegExp("^["+_215+"]+"),"");
6a1aa64f 1774}
79f17b42 1775};
165759fa 1776MochiKit.Format.rstrip=function(str,_217){
79f17b42
DV
1777str=str+"";
1778if(typeof (str)!="string"){
1779return null;
6a1aa64f 1780}
165759fa 1781if(!_217){
79f17b42
DV
1782return str.replace(/\s+$/,"");
1783}else{
165759fa 1784return str.replace(new RegExp("["+_217+"]+$"),"");
6a1aa64f 1785}
79f17b42 1786};
165759fa 1787MochiKit.Format.strip=function(str,_219){
79f17b42 1788var self=MochiKit.Format;
165759fa 1789return self.rstrip(self.lstrip(str,_219),_219);
79f17b42 1790};
165759fa
DV
1791MochiKit.Format.truncToFixed=function(_21b,_21c){
1792_21b=Math.floor(_21b*Math.pow(10,_21c));
1793var res=(_21b*Math.pow(10,-_21c)).toFixed(_21c);
79f17b42
DV
1794if(res.charAt(0)=="."){
1795res="0"+res;
6a1aa64f 1796}
79f17b42
DV
1797return res;
1798};
165759fa
DV
1799MochiKit.Format.roundToFixed=function(_21e,_21f){
1800return MochiKit.Format.truncToFixed(_21e+0.5*Math.pow(10,-_21f),_21f);
79f17b42 1801};
165759fa
DV
1802MochiKit.Format.percentFormat=function(_220){
1803return MochiKit.Format.twoDigitFloat(100*_220)+"%";
79f17b42
DV
1804};
1805MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"];
1806MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},"default":"en_US"};
1807MochiKit.Format.EXPORT_OK=[];
1808MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT};
1809MochiKit.Format.__new__=function(){
1810var base=this.NAME+".";
1811var k,v,o;
1812for(k in this.LOCALE){
1813o=this.LOCALE[k];
1814if(typeof (o)=="object"){
1815o.repr=function(){
1816return this.NAME;
1817};
1818o.NAME=base+"LOCALE."+k;
6a1aa64f 1819}
6a1aa64f 1820}
79f17b42
DV
1821for(k in this){
1822o=this[k];
1823if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){
6a1aa64f 1824try{
79f17b42 1825o.NAME=base+k;
6a1aa64f
DV
1826}
1827catch(e){
6a1aa64f 1828}
6a1aa64f
DV
1829}
1830}
79f17b42
DV
1831};
1832MochiKit.Format.__new__();
1833if(typeof (MochiKit.Base)!="undefined"){
1834MochiKit.Base._exportSymbols(this,MochiKit.Format);
6a1aa64f 1835}else{
165759fa 1836(function(_225,_226){
79f17b42 1837if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(MochiKit.__export__===false)){
165759fa 1838var all=_226.EXPORT_TAGS[":all"];
79f17b42 1839for(var i=0;i<all.length;i++){
165759fa 1840_225[all[i]]=_226[all[i]];
6a1aa64f
DV
1841}
1842}
79f17b42 1843})(this,MochiKit.Format);
6a1aa64f 1844}
79f17b42
DV
1845if(typeof (dojo)!="undefined"){
1846dojo.provide("MochiKit.DOM");
1847dojo.require("MochiKit.Base");
6a1aa64f 1848}
79f17b42
DV
1849if(typeof (JSAN)!="undefined"){
1850JSAN.use("MochiKit.Base",[]);
6a1aa64f 1851}
6a1aa64f 1852try{
79f17b42
DV
1853if(typeof (MochiKit.Base)=="undefined"){
1854throw "";
6a1aa64f
DV
1855}
1856}
1857catch(e){
79f17b42 1858throw "MochiKit.DOM depends on MochiKit.Base!";
6a1aa64f 1859}
79f17b42
DV
1860if(typeof (MochiKit.DOM)=="undefined"){
1861MochiKit.DOM={};
6a1aa64f 1862}
79f17b42
DV
1863MochiKit.DOM.NAME="MochiKit.DOM";
1864MochiKit.DOM.VERSION="1.4";
1865MochiKit.DOM.__repr__=function(){
1866return "["+this.NAME+" "+this.VERSION+"]";
1867};
1868MochiKit.DOM.toString=function(){
1869return this.__repr__();
1870};
1871MochiKit.DOM.EXPORT=["removeEmptyTextNodes","formContents","currentWindow","currentDocument","withWindow","withDocument","registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","isChildNode","getNodeAttribute","removeNodeAttribute","setNodeAttribute","updateNodeAttributes","appendChildNodes","insertSiblingNodesAfter","insertSiblingNodesBefore","replaceChildNodes","removeElement","swapDOM","BUTTON","TT","PRE","H1","H2","H3","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","isParent","getFirstParentByTagAndClassName","makeClipping","undoClipping","makePositioned","undoPositioned","getFirstElementByTagAndClassName"];
1872MochiKit.DOM.EXPORT_OK=["domConverters"];
1873MochiKit.DOM.DEPRECATED=[["computedStyle","MochiKit.Style.getStyle","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"]];
1874MochiKit.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);");
1875MochiKit.Base.update(MochiKit.DOM,{currentWindow:function(){
1876return MochiKit.DOM._window;
1877},currentDocument:function(){
1878return MochiKit.DOM._document;
1879},withWindow:function(win,func){
1880var self=MochiKit.DOM;
165759fa
DV
1881var _22c=self._document;
1882var _22d=self._window;
79f17b42 1883var rval;
6a1aa64f 1884try{
79f17b42
DV
1885self._window=win;
1886self._document=win.document;
1887rval=func();
6a1aa64f
DV
1888}
1889catch(e){
165759fa
DV
1890self._window=_22d;
1891self._document=_22c;
6a1aa64f
DV
1892throw e;
1893}
165759fa
DV
1894self._window=_22d;
1895self._document=_22c;
79f17b42
DV
1896return rval;
1897},formContents:function(elem){
165759fa
DV
1898var _230=[];
1899var _231=[];
6a1aa64f 1900var m=MochiKit.Base;
79f17b42
DV
1901var self=MochiKit.DOM;
1902if(typeof (elem)=="undefined"||elem===null){
1903elem=self._document.body;
1904}else{
1905elem=self.getElement(elem);
6a1aa64f 1906}
79f17b42
DV
1907m.nodeWalk(elem,function(elem){
1908var name=elem.name;
1909if(m.isNotEmpty(name)){
165759fa
DV
1910var _236=elem.tagName.toUpperCase();
1911if(_236==="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){
79f17b42 1912return null;
6a1aa64f 1913}
165759fa 1914if(_236==="SELECT"){
79f17b42
DV
1915if(elem.type=="select-one"){
1916if(elem.selectedIndex>=0){
1917var opt=elem.options[elem.selectedIndex];
1918var v=opt.value;
1919if(!v){
1920var h=opt.outerHTML;
1921if(h&&!h.match(/^[^>]+\svalue\s*=/i)){
1922v=opt.text;
6a1aa64f 1923}
6a1aa64f 1924}
165759fa
DV
1925_230.push(name);
1926_231.push(v);
79f17b42 1927return null;
6a1aa64f 1928}
165759fa
DV
1929_230.push(name);
1930_231.push("");
79f17b42 1931return null;
6a1aa64f 1932}else{
79f17b42
DV
1933var opts=elem.options;
1934if(!opts.length){
165759fa
DV
1935_230.push(name);
1936_231.push("");
79f17b42 1937return null;
6a1aa64f 1938}
79f17b42
DV
1939for(var i=0;i<opts.length;i++){
1940var opt=opts[i];
1941if(!opt.selected){
1942continue;
6a1aa64f 1943}
79f17b42
DV
1944var v=opt.value;
1945if(!v){
1946var h=opt.outerHTML;
1947if(h&&!h.match(/^[^>]+\svalue\s*=/i)){
1948v=opt.text;
6a1aa64f 1949}
6a1aa64f 1950}
165759fa
DV
1951_230.push(name);
1952_231.push(v);
6a1aa64f 1953}
79f17b42 1954return null;
6a1aa64f 1955}
6a1aa64f 1956}
165759fa 1957if(_236==="FORM"||_236==="P"||_236==="SPAN"||_236==="DIV"){
79f17b42 1958return elem.childNodes;
6a1aa64f 1959}
165759fa
DV
1960_230.push(name);
1961_231.push(elem.value||"");
79f17b42 1962return null;
6a1aa64f 1963}
79f17b42
DV
1964return elem.childNodes;
1965});
165759fa 1966return [_230,_231];
79f17b42
DV
1967},withDocument:function(doc,func){
1968var self=MochiKit.DOM;
165759fa 1969var _23f=self._document;
79f17b42 1970var rval;
6a1aa64f 1971try{
79f17b42
DV
1972self._document=doc;
1973rval=func();
6a1aa64f
DV
1974}
1975catch(e){
165759fa 1976self._document=_23f;
6a1aa64f
DV
1977throw e;
1978}
165759fa 1979self._document=_23f;
79f17b42 1980return rval;
165759fa
DV
1981},registerDOMConverter:function(name,_242,wrap,_244){
1982MochiKit.DOM.domConverters.register(name,_242,wrap,_244);
79f17b42
DV
1983},coerceToDOM:function(node,ctx){
1984var m=MochiKit.Base;
1985var im=MochiKit.Iter;
1986var self=MochiKit.DOM;
1987if(im){
1988var iter=im.iter;
165759fa 1989var _24b=im.repeat;
79f17b42
DV
1990var map=m.map;
1991}
165759fa
DV
1992var _24d=self.domConverters;
1993var _24e=arguments.callee;
1994var _24f=m.NotFound;
79f17b42
DV
1995while(true){
1996if(typeof (node)=="undefined"||node===null){
1997return null;
6a1aa64f 1998}
79f17b42
DV
1999if(typeof (node)=="function"&&typeof (node.length)=="number"&&!(node instanceof Function)){
2000node=im.list(node);
6a1aa64f 2001}
79f17b42
DV
2002if(typeof (node.nodeType)!="undefined"&&node.nodeType>0){
2003return node;
6a1aa64f 2004}
79f17b42
DV
2005if(typeof (node)=="number"||typeof (node)=="boolean"){
2006node=node.toString();
6a1aa64f 2007}
79f17b42
DV
2008if(typeof (node)=="string"){
2009return self._document.createTextNode(node);
6a1aa64f 2010}
79f17b42
DV
2011if(typeof (node.__dom__)=="function"){
2012node=node.__dom__(ctx);
2013continue;
6a1aa64f 2014}
79f17b42
DV
2015if(typeof (node.dom)=="function"){
2016node=node.dom(ctx);
2017continue;
6a1aa64f 2018}
79f17b42
DV
2019if(typeof (node)=="function"){
2020node=node.apply(ctx,[ctx]);
2021continue;
6a1aa64f 2022}
79f17b42 2023if(im){
165759fa 2024var _250=null;
6a1aa64f 2025try{
165759fa 2026_250=iter(node);
6a1aa64f
DV
2027}
2028catch(e){
6a1aa64f 2029}
165759fa
DV
2030if(_250){
2031return map(_24e,_250,_24b(ctx));
79f17b42
DV
2032}
2033}
2034try{
165759fa 2035node=_24d.match(node,ctx);
79f17b42
DV
2036continue;
2037}
2038catch(e){
165759fa 2039if(e!=_24f){
6a1aa64f
DV
2040throw e;
2041}
6a1aa64f 2042}
79f17b42 2043return self._document.createTextNode(node.toString());
6a1aa64f 2044}
79f17b42 2045return undefined;
165759fa 2046},isChildNode:function(node,_252){
79f17b42
DV
2047var self=MochiKit.DOM;
2048if(typeof (node)=="string"){
2049node=self.getElement(node);
6a1aa64f 2050}
165759fa
DV
2051if(typeof (_252)=="string"){
2052_252=self.getElement(_252);
6a1aa64f 2053}
165759fa 2054if(node===_252){
79f17b42 2055return true;
6a1aa64f 2056}
79f17b42
DV
2057while(node&&node.tagName.toUpperCase()!="BODY"){
2058node=node.parentNode;
165759fa 2059if(node===_252){
79f17b42 2060return true;
6a1aa64f 2061}
6a1aa64f 2062}
79f17b42 2063return false;
165759fa 2064},setNodeAttribute:function(node,attr,_256){
79f17b42 2065var o={};
165759fa 2066o[attr]=_256;
79f17b42
DV
2067try{
2068return MochiKit.DOM.updateNodeAttributes(node,o);
6a1aa64f 2069}
79f17b42
DV
2070catch(e){
2071}
2072return null;
2073},getNodeAttribute:function(node,attr){
2074var self=MochiKit.DOM;
165759fa 2075var _25b=self.attributeArray.renames[attr];
79f17b42 2076node=self.getElement(node);
6a1aa64f 2077try{
165759fa
DV
2078if(_25b){
2079return node[_25b];
6a1aa64f 2080}
79f17b42 2081return node.getAttribute(attr);
6a1aa64f
DV
2082}
2083catch(e){
6a1aa64f 2084}
79f17b42
DV
2085return null;
2086},removeNodeAttribute:function(node,attr){
2087var self=MochiKit.DOM;
165759fa 2088var _25f=self.attributeArray.renames[attr];
79f17b42
DV
2089node=self.getElement(node);
2090try{
165759fa
DV
2091if(_25f){
2092return node[_25f];
6a1aa64f 2093}
79f17b42 2094return node.removeAttribute(attr);
6a1aa64f 2095}
79f17b42 2096catch(e){
6a1aa64f 2097}
79f17b42 2098return null;
165759fa 2099},updateNodeAttributes:function(node,_261){
79f17b42
DV
2100var elem=node;
2101var self=MochiKit.DOM;
2102if(typeof (node)=="string"){
2103elem=self.getElement(node);
2104}
165759fa
DV
2105if(_261){
2106var _264=MochiKit.Base.updatetree;
79f17b42 2107if(self.attributeArray.compliant){
165759fa
DV
2108for(var k in _261){
2109var v=_261[k];
79f17b42
DV
2110if(typeof (v)=="object"&&typeof (elem[k])=="object"){
2111if(k=="style"&&MochiKit.Style){
2112MochiKit.Style.setStyle(elem,v);
6a1aa64f 2113}else{
165759fa 2114_264(elem[k],v);
79f17b42 2115}
6a1aa64f 2116}else{
79f17b42
DV
2117if(k.substring(0,2)=="on"){
2118if(typeof (v)=="string"){
2119v=new Function(v);
2120}
2121elem[k]=v;
6a1aa64f 2122}else{
79f17b42 2123elem.setAttribute(k,v);
6a1aa64f
DV
2124}
2125}
2126}
79f17b42 2127}else{
165759fa
DV
2128var _267=self.attributeArray.renames;
2129for(var k in _261){
2130v=_261[k];
2131var _268=_267[k];
79f17b42
DV
2132if(k=="style"&&typeof (v)=="string"){
2133elem.style.cssText=v;
2134}else{
165759fa
DV
2135if(typeof (_268)=="string"){
2136elem[_268]=v;
79f17b42
DV
2137}else{
2138if(typeof (elem[k])=="object"&&typeof (v)=="object"){
2139if(k=="style"&&MochiKit.Style){
2140MochiKit.Style.setStyle(elem,v);
2141}else{
165759fa 2142_264(elem[k],v);
6a1aa64f 2143}
79f17b42
DV
2144}else{
2145if(k.substring(0,2)=="on"){
2146if(typeof (v)=="string"){
2147v=new Function(v);
6a1aa64f 2148}
79f17b42
DV
2149elem[k]=v;
2150}else{
2151elem.setAttribute(k,v);
6a1aa64f 2152}
6a1aa64f 2153}
6a1aa64f 2154}
6a1aa64f 2155}
6a1aa64f 2156}
6a1aa64f 2157}
6a1aa64f 2158}
79f17b42
DV
2159return elem;
2160},appendChildNodes:function(node){
2161var elem=node;
2162var self=MochiKit.DOM;
2163if(typeof (node)=="string"){
2164elem=self.getElement(node);
6a1aa64f 2165}
165759fa
DV
2166var _26c=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];
2167var _26d=MochiKit.Base.concat;
2168while(_26c.length){
2169var n=_26c.shift();
79f17b42
DV
2170if(typeof (n)=="undefined"||n===null){
2171}else{
2172if(typeof (n.nodeType)=="number"){
2173elem.appendChild(n);
2174}else{
165759fa 2175_26c=_26d(n,_26c);
6a1aa64f 2176}
6a1aa64f 2177}
6a1aa64f 2178}
79f17b42
DV
2179return elem;
2180},insertSiblingNodesBefore:function(node){
2181var elem=node;
2182var self=MochiKit.DOM;
2183if(typeof (node)=="string"){
2184elem=self.getElement(node);
6a1aa64f 2185}
165759fa
DV
2186var _272=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];
2187var _273=elem.parentNode;
2188var _274=MochiKit.Base.concat;
2189while(_272.length){
2190var n=_272.shift();
79f17b42 2191if(typeof (n)=="undefined"||n===null){
6a1aa64f 2192}else{
79f17b42 2193if(typeof (n.nodeType)=="number"){
165759fa 2194_273.insertBefore(n,elem);
79f17b42 2195}else{
165759fa 2196_272=_274(n,_272);
6a1aa64f 2197}
6a1aa64f 2198}
6a1aa64f 2199}
165759fa 2200return _273;
79f17b42
DV
2201},insertSiblingNodesAfter:function(node){
2202var elem=node;
2203var self=MochiKit.DOM;
2204if(typeof (node)=="string"){
2205elem=self.getElement(node);
6a1aa64f 2206}
165759fa 2207var _279=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];
79f17b42 2208if(elem.nextSibling){
165759fa 2209return self.insertSiblingNodesBefore(elem.nextSibling,_279);
6a1aa64f 2210}else{
165759fa 2211return self.appendChildNodes(elem.parentNode,_279);
6a1aa64f 2212}
79f17b42
DV
2213},replaceChildNodes:function(node){
2214var elem=node;
2215var self=MochiKit.DOM;
2216if(typeof (node)=="string"){
2217elem=self.getElement(node);
2218arguments[0]=elem;
6a1aa64f 2219}
165759fa
DV
2220var _27d;
2221while((_27d=elem.firstChild)){
2222elem.removeChild(_27d);
6a1aa64f 2223}
79f17b42
DV
2224if(arguments.length<2){
2225return elem;
2226}else{
2227return self.appendChildNodes.apply(this,arguments);
6a1aa64f 2228}
165759fa 2229},createDOM:function(name,_27f){
79f17b42
DV
2230var elem;
2231var self=MochiKit.DOM;
2232var m=MochiKit.Base;
165759fa 2233if(typeof (_27f)=="string"||typeof (_27f)=="number"){
79f17b42
DV
2234var args=m.extend([name,null],arguments,1);
2235return arguments.callee.apply(this,args);
6a1aa64f 2236}
79f17b42 2237if(typeof (name)=="string"){
165759fa
DV
2238var _284=self._xhtml;
2239if(_27f&&!self.attributeArray.compliant){
2240var _285="";
2241if("name" in _27f){
2242_285+=" name=\""+self.escapeHTML(_27f.name)+"\"";
6a1aa64f 2243}
165759fa
DV
2244if(name=="input"&&"type" in _27f){
2245_285+=" type=\""+self.escapeHTML(_27f.type)+"\"";
6a1aa64f 2246}
165759fa
DV
2247if(_285){
2248name="<"+name+_285+">";
2249_284=false;
6a1aa64f 2250}
6a1aa64f 2251}
79f17b42 2252var d=self._document;
165759fa 2253if(_284&&d===document){
79f17b42
DV
2254elem=d.createElementNS("http://www.w3.org/1999/xhtml",name);
2255}else{
2256elem=d.createElement(name);
6a1aa64f 2257}
79f17b42
DV
2258}else{
2259elem=name;
6a1aa64f 2260}
165759fa
DV
2261if(_27f){
2262self.updateNodeAttributes(elem,_27f);
6a1aa64f 2263}
79f17b42
DV
2264if(arguments.length<=2){
2265return elem;
6a1aa64f 2266}else{
79f17b42
DV
2267var args=m.extend([elem],arguments,2);
2268return self.appendChildNodes.apply(this,args);
6a1aa64f 2269}
79f17b42
DV
2270},createDOMFunc:function(){
2271var m=MochiKit.Base;
2272return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments));
2273},removeElement:function(elem){
2274var e=MochiKit.DOM.getElement(elem);
2275e.parentNode.removeChild(e);
2276return e;
2277},swapDOM:function(dest,src){
2278var self=MochiKit.DOM;
2279dest=self.getElement(dest);
165759fa 2280var _28d=dest.parentNode;
79f17b42
DV
2281if(src){
2282src=self.getElement(src);
165759fa 2283_28d.replaceChild(src,dest);
79f17b42 2284}else{
165759fa 2285_28d.removeChild(dest);
6a1aa64f 2286}
79f17b42
DV
2287return src;
2288},getElement:function(id){
2289var self=MochiKit.DOM;
2290if(arguments.length==1){
2291return ((typeof (id)=="string")?self._document.getElementById(id):id);
2292}else{
2293return MochiKit.Base.map(self.getElement,arguments);
6a1aa64f 2294}
165759fa 2295},getElementsByTagAndClassName:function(_290,_291,_292){
79f17b42 2296var self=MochiKit.DOM;
165759fa
DV
2297if(typeof (_290)=="undefined"||_290===null){
2298_290="*";
6a1aa64f 2299}
165759fa
DV
2300if(typeof (_292)=="undefined"||_292===null){
2301_292=self._document;
6a1aa64f 2302}
165759fa
DV
2303_292=self.getElement(_292);
2304var _294=(_292.getElementsByTagName(_290)||self._document.all);
2305if(typeof (_291)=="undefined"||_291===null){
2306return MochiKit.Base.extend(null,_294);
6a1aa64f 2307}
165759fa
DV
2308var _295=[];
2309for(var i=0;i<_294.length;i++){
2310var _297=_294[i];
2311var cls=_297.className;
79f17b42
DV
2312if(!cls){
2313continue;
6a1aa64f 2314}
165759fa
DV
2315var _299=cls.split(" ");
2316for(var j=0;j<_299.length;j++){
2317if(_299[j]==_291){
2318_295.push(_297);
79f17b42 2319break;
6a1aa64f 2320}
6a1aa64f 2321}
6a1aa64f 2322}
165759fa 2323return _295;
79f17b42
DV
2324},_newCallStack:function(path,once){
2325var rval=function(){
165759fa
DV
2326var _29e=arguments.callee.callStack;
2327for(var i=0;i<_29e.length;i++){
2328if(_29e[i].apply(this,arguments)===false){
79f17b42 2329break;
6a1aa64f
DV
2330}
2331}
79f17b42
DV
2332if(once){
2333try{
2334this[path]=null;
6a1aa64f 2335}
79f17b42 2336catch(e){
6a1aa64f 2337}
6a1aa64f 2338}
79f17b42
DV
2339};
2340rval.callStack=[];
2341return rval;
165759fa 2342},addToCallStack:function(_2a0,path,func,once){
79f17b42 2343var self=MochiKit.DOM;
165759fa
DV
2344var _2a5=_2a0[path];
2345var _2a6=_2a5;
2346if(!(typeof (_2a5)=="function"&&typeof (_2a5.callStack)=="object"&&_2a5.callStack!==null)){
2347_2a6=self._newCallStack(path,once);
2348if(typeof (_2a5)=="function"){
2349_2a6.callStack.push(_2a5);
6a1aa64f 2350}
165759fa 2351_2a0[path]=_2a6;
6a1aa64f 2352}
165759fa 2353_2a6.callStack.push(func);
79f17b42
DV
2354},addLoadEvent:function(func){
2355var self=MochiKit.DOM;
2356self.addToCallStack(self._window,"onload",func,true);
165759fa 2357},focusOnLoad:function(_2a9){
79f17b42
DV
2358var self=MochiKit.DOM;
2359self.addLoadEvent(function(){
165759fa
DV
2360_2a9=self.getElement(_2a9);
2361if(_2a9){
2362_2a9.focus();
6a1aa64f 2363}
79f17b42 2364});
165759fa 2365},setElementClass:function(_2ab,_2ac){
79f17b42 2366var self=MochiKit.DOM;
165759fa 2367var obj=self.getElement(_2ab);
79f17b42 2368if(self.attributeArray.compliant){
165759fa 2369obj.setAttribute("class",_2ac);
6a1aa64f 2370}else{
165759fa 2371obj.setAttribute("className",_2ac);
6a1aa64f 2372}
165759fa 2373},toggleElementClass:function(_2af){
79f17b42
DV
2374var self=MochiKit.DOM;
2375for(var i=1;i<arguments.length;i++){
2376var obj=self.getElement(arguments[i]);
165759fa
DV
2377if(!self.addElementClass(obj,_2af)){
2378self.removeElementClass(obj,_2af);
6a1aa64f 2379}
6a1aa64f 2380}
165759fa 2381},addElementClass:function(_2b3,_2b4){
79f17b42 2382var self=MochiKit.DOM;
165759fa 2383var obj=self.getElement(_2b3);
79f17b42
DV
2384var cls=obj.className;
2385if(cls==undefined||cls.length===0){
165759fa 2386self.setElementClass(obj,_2b4);
79f17b42 2387return true;
6a1aa64f 2388}
165759fa 2389if(cls==_2b4){
79f17b42 2390return false;
6a1aa64f 2391}
165759fa
DV
2392var _2b8=cls.split(" ");
2393for(var i=0;i<_2b8.length;i++){
2394if(_2b8[i]==_2b4){
79f17b42 2395return false;
6a1aa64f 2396}
6a1aa64f 2397}
165759fa 2398self.setElementClass(obj,cls+" "+_2b4);
79f17b42 2399return true;
165759fa 2400},removeElementClass:function(_2ba,_2bb){
79f17b42 2401var self=MochiKit.DOM;
165759fa 2402var obj=self.getElement(_2ba);
79f17b42
DV
2403var cls=obj.className;
2404if(cls==undefined||cls.length===0){
2405return false;
6a1aa64f 2406}
165759fa 2407if(cls==_2bb){
79f17b42
DV
2408self.setElementClass(obj,"");
2409return true;
6a1aa64f 2410}
165759fa
DV
2411var _2bf=cls.split(" ");
2412for(var i=0;i<_2bf.length;i++){
2413if(_2bf[i]==_2bb){
2414_2bf.splice(i,1);
2415self.setElementClass(obj,_2bf.join(" "));
79f17b42 2416return true;
6a1aa64f
DV
2417}
2418}
79f17b42 2419return false;
165759fa
DV
2420},swapElementClass:function(_2c1,_2c2,_2c3){
2421var obj=MochiKit.DOM.getElement(_2c1);
2422var res=MochiKit.DOM.removeElementClass(obj,_2c2);
79f17b42 2423if(res){
165759fa 2424MochiKit.DOM.addElementClass(obj,_2c3);
6a1aa64f 2425}
79f17b42 2426return res;
165759fa
DV
2427},hasElementClass:function(_2c6,_2c7){
2428var obj=MochiKit.DOM.getElement(_2c6);
79f17b42
DV
2429var cls=obj.className;
2430if(!cls){
2431return false;
6a1aa64f 2432}
165759fa 2433var _2ca=cls.split(" ");
79f17b42
DV
2434for(var i=1;i<arguments.length;i++){
2435var good=false;
165759fa
DV
2436for(var j=0;j<_2ca.length;j++){
2437if(_2ca[j]==arguments[i]){
79f17b42
DV
2438good=true;
2439break;
6a1aa64f 2440}
6a1aa64f 2441}
79f17b42
DV
2442if(!good){
2443return false;
6a1aa64f 2444}
6a1aa64f 2445}
79f17b42
DV
2446return true;
2447},escapeHTML:function(s){
2448return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
2449},toHTML:function(dom){
2450return MochiKit.DOM.emitHTML(dom).join("");
2451},emitHTML:function(dom,lst){
2452if(typeof (lst)=="undefined"||lst===null){
2453lst=[];
6a1aa64f 2454}
165759fa 2455var _2d2=[dom];
79f17b42 2456var self=MochiKit.DOM;
165759fa
DV
2457var _2d4=self.escapeHTML;
2458var _2d5=self.attributeArray;
2459while(_2d2.length){
2460dom=_2d2.pop();
79f17b42
DV
2461if(typeof (dom)=="string"){
2462lst.push(dom);
2463}else{
2464if(dom.nodeType==1){
2465lst.push("<"+dom.tagName.toLowerCase());
165759fa
DV
2466var _2d6=[];
2467var _2d7=_2d5(dom);
2468for(var i=0;i<_2d7.length;i++){
2469var a=_2d7[i];
2470_2d6.push([" ",a.name,"=\"",_2d4(a.value),"\""]);
6a1aa64f 2471}
165759fa
DV
2472_2d6.sort();
2473for(i=0;i<_2d6.length;i++){
2474var _2da=_2d6[i];
2475for(var j=0;j<_2da.length;j++){
2476lst.push(_2da[j]);
6a1aa64f
DV
2477}
2478}
79f17b42
DV
2479if(dom.hasChildNodes()){
2480lst.push(">");
165759fa
DV
2481_2d2.push("</"+dom.tagName.toLowerCase()+">");
2482var _2dc=dom.childNodes;
2483for(i=_2dc.length-1;i>=0;i--){
2484_2d2.push(_2dc[i]);
6a1aa64f 2485}
6a1aa64f 2486}else{
79f17b42 2487lst.push("/>");
6a1aa64f 2488}
79f17b42
DV
2489}else{
2490if(dom.nodeType==3){
165759fa 2491lst.push(_2d4(dom.nodeValue));
6a1aa64f 2492}
6a1aa64f 2493}
6a1aa64f 2494}
6a1aa64f 2495}
79f17b42 2496return lst;
165759fa 2497},scrapeText:function(node,_2de){
79f17b42
DV
2498var rval=[];
2499(function(node){
2500var cn=node.childNodes;
2501if(cn){
2502for(var i=0;i<cn.length;i++){
2503arguments.callee.call(this,cn[i]);
6a1aa64f 2504}
6a1aa64f 2505}
165759fa
DV
2506var _2e3=node.nodeValue;
2507if(typeof (_2e3)=="string"){
2508rval.push(_2e3);
6a1aa64f 2509}
79f17b42 2510})(MochiKit.DOM.getElement(node));
165759fa 2511if(_2de){
79f17b42 2512return rval;
6a1aa64f 2513}else{
79f17b42 2514return rval.join("");
6a1aa64f 2515}
165759fa
DV
2516},removeEmptyTextNodes:function(_2e4){
2517_2e4=MochiKit.DOM.getElement(_2e4);
2518for(var i=0;i<_2e4.childNodes.length;i++){
2519var node=_2e4.childNodes[i];
79f17b42
DV
2520if(node.nodeType==3&&!/\S/.test(node.nodeValue)){
2521node.parentNode.removeChild(node);
6a1aa64f 2522}
6a1aa64f 2523}
165759fa
DV
2524},makeClipping:function(_2e7){
2525_2e7=MochiKit.DOM.getElement(_2e7);
2526var _2e8=_2e7.style.overflow;
2527if((MochiKit.Style.getStyle(_2e7,"overflow")||"visible")!="hidden"){
2528_2e7.style.overflow="hidden";
6a1aa64f 2529}
165759fa
DV
2530return _2e8;
2531},undoClipping:function(_2e9,_2ea){
2532_2e9=MochiKit.DOM.getElement(_2e9);
2533if(!_2ea){
79f17b42 2534return;
6a1aa64f 2535}
165759fa
DV
2536_2e9.style.overflow=_2ea;
2537},makePositioned:function(_2eb){
2538_2eb=MochiKit.DOM.getElement(_2eb);
2539var pos=MochiKit.Style.getStyle(_2eb,"position");
79f17b42 2540if(pos=="static"||!pos){
165759fa 2541_2eb.style.position="relative";
79f17b42 2542if(/Opera/.test(navigator.userAgent)){
165759fa
DV
2543_2eb.style.top=0;
2544_2eb.style.left=0;
6a1aa64f 2545}
6a1aa64f 2546}
165759fa
DV
2547},undoPositioned:function(_2ed){
2548_2ed=MochiKit.DOM.getElement(_2ed);
2549if(_2ed.style.position=="relative"){
2550_2ed.style.position=_2ed.style.top=_2ed.style.left=_2ed.style.bottom=_2ed.style.right="";
6a1aa64f 2551}
165759fa 2552},getFirstElementByTagAndClassName:function(_2ee,_2ef,_2f0){
79f17b42 2553var self=MochiKit.DOM;
165759fa
DV
2554if(typeof (_2ee)=="undefined"||_2ee===null){
2555_2ee="*";
6a1aa64f 2556}
165759fa
DV
2557if(typeof (_2f0)=="undefined"||_2f0===null){
2558_2f0=self._document;
6a1aa64f 2559}
165759fa
DV
2560_2f0=self.getElement(_2f0);
2561var _2f2=(_2f0.getElementsByTagName(_2ee)||self._document.all);
2562if(typeof (_2ef)=="undefined"||_2ef===null){
2563return _2f2[0];
6a1aa64f 2564}
165759fa
DV
2565for(var i=0;i<_2f2.length;i++){
2566var _2f4=_2f2[i];
2567var _2f5=_2f4.className.split(" ");
2568for(var j=0;j<_2f5.length;j++){
2569if(_2f5[j]==_2ef){
2570return _2f4;
6a1aa64f 2571}
6a1aa64f 2572}
6a1aa64f 2573}
165759fa 2574},getFirstParentByTagAndClassName:function(elem,_2f8,_2f9){
79f17b42
DV
2575var self=MochiKit.DOM;
2576elem=self.getElement(elem);
165759fa
DV
2577if(typeof (_2f8)=="undefined"||_2f8===null){
2578_2f8="*";
79f17b42 2579}else{
165759fa 2580_2f8=_2f8.toUpperCase();
6a1aa64f 2581}
165759fa
DV
2582if(typeof (_2f9)=="undefined"||_2f9===null){
2583_2f9=null;
6a1aa64f 2584}
165759fa
DV
2585var _2fb="";
2586var _2fc="";
79f17b42
DV
2587while(elem&&elem.tagName){
2588elem=elem.parentNode;
165759fa 2589if(_2f8=="*"&&_2f9===null){
79f17b42 2590return elem;
6a1aa64f 2591}
165759fa
DV
2592_2fb=elem.className.split(" ");
2593_2fc=elem.tagName.toUpperCase();
2594if(_2f9===null&&_2f8==_2fc){
79f17b42
DV
2595return elem;
2596}else{
165759fa
DV
2597if(_2f9!==null){
2598for(var i=0;i<_2fb.length;i++){
2599if(_2f8=="*"&&_2fb[i]==_2f9){
79f17b42
DV
2600return elem;
2601}else{
165759fa 2602if(_2f8==_2fc&&_2fb[i]==_2f9){
79f17b42 2603return elem;
6a1aa64f 2604}
6a1aa64f
DV
2605}
2606}
6a1aa64f 2607}
6a1aa64f 2608}
6a1aa64f 2609}
79f17b42 2610return elem;
165759fa
DV
2611},isParent:function(_2fe,_2ff){
2612if(!_2fe.parentNode||_2fe==_2ff){
79f17b42 2613return false;
6a1aa64f 2614}
165759fa 2615if(_2fe.parentNode==_2ff){
79f17b42 2616return true;
6a1aa64f 2617}
165759fa 2618return MochiKit.DOM.isParent(_2fe.parentNode,_2ff);
79f17b42 2619},__new__:function(win){
6a1aa64f 2620var m=MochiKit.Base;
79f17b42
DV
2621if(typeof (document)!="undefined"){
2622this._document=document;
165759fa
DV
2623var _302="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
2624this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===_302);
79f17b42
DV
2625}else{
2626if(MochiKit.MockDOM){
2627this._document=MochiKit.MockDOM.document;
2628}
2629}
2630this._window=win;
2631this.domConverters=new m.AdapterRegistry();
165759fa
DV
2632var _303=this._document.createElement("span");
2633var _304;
2634if(_303&&_303.attributes&&_303.attributes.length>0){
2635var _305=m.filter;
2636_304=function(node){
2637return _305(_304.ignoreAttrFilter,node.attributes);
2638};
2639_304.ignoreAttr={};
2640var _307=_303.attributes;
2641var _308=_304.ignoreAttr;
2642for(var i=0;i<_307.length;i++){
2643var a=_307[i];
2644_308[a.name]=a.value;
2645}
2646_304.ignoreAttrFilter=function(a){
2647return (_304.ignoreAttr[a.name]!=a.value);
2648};
2649_304.compliant=false;
2650_304.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor","cellspacing":"cellSpacing","cellpadding":"cellPadding"};
2651}else{
2652_304=function(node){
79f17b42
DV
2653return node.attributes;
2654};
165759fa
DV
2655_304.compliant=true;
2656_304.renames={};
79f17b42 2657}
165759fa
DV
2658this.attributeArray=_304;
2659var _30d=function(_30e,arr){
2660var _310=arr[1].split(".");
79f17b42
DV
2661var str="";
2662var obj={};
165759fa 2663str+="if (!MochiKit."+_310[1]+") { throw new Error(\"";
79f17b42 2664str+="This function has been deprecated and depends on MochiKit.";
165759fa
DV
2665str+=_310[1]+".\");}";
2666str+="return MochiKit."+_310[1]+"."+arr[0];
79f17b42 2667str+=".apply(this, arguments);";
165759fa
DV
2668obj[_310[2]]=new Function(str);
2669MochiKit.Base.update(MochiKit[_30e],obj);
79f17b42
DV
2670};
2671for(var i;i<MochiKit.DOM.DEPRECATED.length;i++){
165759fa
DV
2672_30d("DOM",MochiKit.DOM.DEPRECATED[i]);
2673}
2674var _313=this.createDOMFunc;
2675this.UL=_313("ul");
2676this.OL=_313("ol");
2677this.LI=_313("li");
2678this.TD=_313("td");
2679this.TR=_313("tr");
2680this.TBODY=_313("tbody");
2681this.THEAD=_313("thead");
2682this.TFOOT=_313("tfoot");
2683this.TABLE=_313("table");
2684this.TH=_313("th");
2685this.INPUT=_313("input");
2686this.SPAN=_313("span");
2687this.A=_313("a");
2688this.DIV=_313("div");
2689this.IMG=_313("img");
2690this.BUTTON=_313("button");
2691this.TT=_313("tt");
2692this.PRE=_313("pre");
2693this.H1=_313("h1");
2694this.H2=_313("h2");
2695this.H3=_313("h3");
2696this.BR=_313("br");
2697this.HR=_313("hr");
2698this.LABEL=_313("label");
2699this.TEXTAREA=_313("textarea");
2700this.FORM=_313("form");
2701this.P=_313("p");
2702this.SELECT=_313("select");
2703this.OPTION=_313("option");
2704this.OPTGROUP=_313("optgroup");
2705this.LEGEND=_313("legend");
2706this.FIELDSET=_313("fieldset");
2707this.STRONG=_313("strong");
2708this.CANVAS=_313("canvas");
79f17b42
DV
2709this.$=this.getElement;
2710this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
2711m.nameFunctions(this);
2712}});
2713MochiKit.DOM.__new__(((typeof (window)=="undefined")?this:window));
2714if(MochiKit.__export__){
2715withWindow=MochiKit.DOM.withWindow;
2716withDocument=MochiKit.DOM.withDocument;
2717}
2718MochiKit.Base._exportSymbols(this,MochiKit.DOM);
2719if(typeof (dojo)!="undefined"){
2720dojo.provide("MochiKit.Style");
2721dojo.require("MochiKit.Base");
2722dojo.require("MochiKit.DOM");
2723}
2724if(typeof (JSAN)!="undefined"){
2725JSAN.use("MochiKit.Base",[]);
2726JSAN.use("MochiKit.DOM",[]);
2727}
6a1aa64f 2728try{
79f17b42
DV
2729if(typeof (MochiKit.Base)=="undefined"){
2730throw "";
2731}
6a1aa64f
DV
2732}
2733catch(e){
79f17b42
DV
2734throw "MochiKit.Style depends on MochiKit.Base!";
2735}
6a1aa64f 2736try{
79f17b42
DV
2737if(typeof (MochiKit.DOM)=="undefined"){
2738throw "";
2739}
6a1aa64f
DV
2740}
2741catch(e){
79f17b42 2742throw "MochiKit.Style depends on MochiKit.DOM!";
6a1aa64f 2743}
79f17b42
DV
2744if(typeof (MochiKit.Style)=="undefined"){
2745MochiKit.Style={};
6a1aa64f 2746}
79f17b42
DV
2747MochiKit.Style.NAME="MochiKit.Style";
2748MochiKit.Style.VERSION="1.4";
2749MochiKit.Style.__repr__=function(){
2750return "["+this.NAME+" "+this.VERSION+"]";
2751};
2752MochiKit.Style.toString=function(){
2753return this.__repr__();
2754};
2755MochiKit.Style.EXPORT_OK=[];
2756MochiKit.Style.EXPORT=["setStyle","setOpacity","getStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"];
2757MochiKit.Style.Dimensions=function(w,h){
2758this.w=w;
2759this.h=h;
2760};
2761MochiKit.Style.Dimensions.prototype.__repr__=function(){
2762var repr=MochiKit.Base.repr;
2763return "{w: "+repr(this.w)+", h: "+repr(this.h)+"}";
2764};
2765MochiKit.Style.Dimensions.prototype.toString=function(){
2766return this.__repr__();
2767};
2768MochiKit.Style.Coordinates=function(x,y){
2769this.x=x;
2770this.y=y;
2771};
2772MochiKit.Style.Coordinates.prototype.__repr__=function(){
2773var repr=MochiKit.Base.repr;
2774return "{x: "+repr(this.x)+", y: "+repr(this.y)+"}";
2775};
2776MochiKit.Style.Coordinates.prototype.toString=function(){
2777return this.__repr__();
2778};
165759fa 2779MochiKit.Base.update(MochiKit.Style,{getStyle:function(elem,_31b){
79f17b42
DV
2780var dom=MochiKit.DOM;
2781var d=dom._document;
2782elem=dom.getElement(elem);
165759fa 2783_31b=MochiKit.Base.camelize(_31b);
79f17b42
DV
2784if(!elem||elem==d){
2785return undefined;
6a1aa64f 2786}
165759fa
DV
2787if(_31b=="opacity"&&elem.filters){
2788var _31e=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/);
2789if(_31e&&_31e[1]){
2790return parseFloat(_31e[1])/100;
6a1aa64f 2791}
79f17b42 2792return 1;
6a1aa64f 2793}
165759fa
DV
2794var _31f=elem.style?elem.style[_31b]:null;
2795if(!_31f){
79f17b42
DV
2796if(d.defaultView&&d.defaultView.getComputedStyle){
2797var css=d.defaultView.getComputedStyle(elem,null);
165759fa
DV
2798_31b=_31b.replace(/([A-Z])/g,"-$1").toLowerCase();
2799_31f=css?css.getPropertyValue(_31b):null;
6a1aa64f 2800}else{
79f17b42 2801if(elem.currentStyle){
165759fa 2802_31f=elem.currentStyle[_31b];
6a1aa64f
DV
2803}
2804}
6a1aa64f 2805}
165759fa
DV
2806if(_31b=="opacity"){
2807_31f=parseFloat(_31f);
6a1aa64f 2808}
165759fa 2809if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_31b)!=-1)){
79f17b42 2810if(MochiKit.Style.getStyle(elem,"position")=="static"){
165759fa 2811_31f="auto";
6a1aa64f
DV
2812}
2813}
165759fa
DV
2814return _31f=="auto"?null:_31f;
2815},setStyle:function(elem,_322){
79f17b42 2816elem=MochiKit.DOM.getElement(elem);
165759fa 2817for(var name in _322){
79f17b42 2818if(name=="opacity"){
165759fa 2819MochiKit.Style.setOpacity(elem,_322[name]);
79f17b42 2820}else{
165759fa 2821elem.style[MochiKit.Base.camelize(name)]=_322[name];
6a1aa64f 2822}
6a1aa64f 2823}
79f17b42
DV
2824},setOpacity:function(elem,o){
2825elem=MochiKit.DOM.getElement(elem);
2826var self=MochiKit.Style;
2827if(o==1){
165759fa
DV
2828var _327=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent));
2829elem.style["opacity"]=_327?0.999999:1;
79f17b42
DV
2830if(/MSIE/.test(navigator.userAgent)){
2831elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"");
6a1aa64f 2832}
79f17b42
DV
2833}else{
2834if(o<0.00001){
2835o=0;
6a1aa64f 2836}
79f17b42
DV
2837elem.style["opacity"]=o;
2838if(/MSIE/.test(navigator.userAgent)){
2839elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+o*100+")";
6a1aa64f 2840}
6a1aa64f 2841}
165759fa 2842},getElementPosition:function(elem,_329){
79f17b42
DV
2843var self=MochiKit.Style;
2844var dom=MochiKit.DOM;
2845elem=dom.getElement(elem);
2846if(!elem||(!(elem.x&&elem.y)&&(!elem.parentNode===null||self.getStyle(elem,"display")=="none"))){
2847return undefined;
6a1aa64f 2848}
79f17b42
DV
2849var c=new self.Coordinates(0,0);
2850var box=null;
165759fa 2851var _32e=null;
79f17b42
DV
2852var d=MochiKit.DOM._document;
2853var de=d.documentElement;
2854var b=d.body;
2855if(!elem.parentNode&&elem.x&&elem.y){
2856c.x+=elem.x||0;
2857c.y+=elem.y||0;
2858}else{
2859if(elem.getBoundingClientRect){
2860box=elem.getBoundingClientRect();
2861c.x+=box.left+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);
2862c.y+=box.top+(de.scrollTop||b.scrollTop)-(de.clientTop||0);
6a1aa64f 2863}else{
79f17b42
DV
2864if(elem.offsetParent){
2865c.x+=elem.offsetLeft;
2866c.y+=elem.offsetTop;
165759fa
DV
2867_32e=elem.offsetParent;
2868if(_32e!=elem){
2869while(_32e){
2870c.x+=_32e.offsetLeft;
2871c.y+=_32e.offsetTop;
2872_32e=_32e.offsetParent;
6a1aa64f 2873}
6a1aa64f 2874}
79f17b42
DV
2875var ua=navigator.userAgent.toLowerCase();
2876if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(ua.indexOf("AppleWebKit")!=-1&&self.getStyle(elem,"position")=="absolute")){
2877c.x-=b.offsetLeft;
2878c.y-=b.offsetTop;
6a1aa64f 2879}
6a1aa64f
DV
2880}
2881}
6a1aa64f 2882}
165759fa
DV
2883if(typeof (_329)!="undefined"){
2884_329=arguments.callee(_329);
2885if(_329){
2886c.x-=(_329.x||0);
2887c.y-=(_329.y||0);
6a1aa64f 2888}
6a1aa64f 2889}
79f17b42 2890if(elem.parentNode){
165759fa 2891_32e=elem.parentNode;
6a1aa64f 2892}else{
165759fa 2893_32e=null;
6a1aa64f 2894}
165759fa
DV
2895while(_32e){
2896var _333=_32e.tagName.toUpperCase();
2897if(_333==="BODY"||_333==="HTML"){
79f17b42 2898break;
6a1aa64f 2899}
165759fa 2900var disp=self.getStyle(_32e,"display");
79f17b42 2901if(disp!="inline"&&disp!="table-row"){
165759fa
DV
2902c.x-=_32e.scrollLeft;
2903c.y-=_32e.scrollTop;
6a1aa64f 2904}
165759fa
DV
2905if(_32e.parentNode){
2906_32e=_32e.parentNode;
79f17b42 2907}else{
165759fa 2908_32e=null;
6a1aa64f
DV
2909}
2910}
79f17b42 2911return c;
165759fa 2912},setElementPosition:function(elem,_336,_337){
79f17b42 2913elem=MochiKit.DOM.getElement(elem);
165759fa
DV
2914if(typeof (_337)=="undefined"){
2915_337="px";
6a1aa64f 2916}
165759fa
DV
2917var _338={};
2918var _339=MochiKit.Base.isUndefinedOrNull;
2919if(!_339(_336.x)){
2920_338["left"]=_336.x+_337;
6a1aa64f 2921}
165759fa
DV
2922if(!_339(_336.y)){
2923_338["top"]=_336.y+_337;
6a1aa64f 2924}
165759fa 2925MochiKit.DOM.updateNodeAttributes(elem,{"style":_338});
79f17b42
DV
2926},getElementDimensions:function(elem){
2927var self=MochiKit.Style;
2928var dom=MochiKit.DOM;
2929if(typeof (elem.w)=="number"||typeof (elem.h)=="number"){
2930return new self.Dimensions(elem.w||0,elem.h||0);
6a1aa64f 2931}
79f17b42
DV
2932elem=dom.getElement(elem);
2933if(!elem){
2934return undefined;
6a1aa64f 2935}
79f17b42
DV
2936var disp=self.getStyle(elem,"display");
2937if(disp!="none"&&disp!==""&&typeof (disp)!="undefined"){
2938return new self.Dimensions(elem.offsetWidth||0,elem.offsetHeight||0);
6a1aa64f 2939}
79f17b42 2940var s=elem.style;
165759fa
DV
2941var _33f=s.visibility;
2942var _340=s.position;
79f17b42
DV
2943s.visibility="hidden";
2944s.position="absolute";
2945s.display="";
165759fa
DV
2946var _341=elem.offsetWidth;
2947var _342=elem.offsetHeight;
79f17b42 2948s.display="none";
165759fa
DV
2949s.position=_340;
2950s.visibility=_33f;
2951return new self.Dimensions(_341,_342);
2952},setElementDimensions:function(elem,_344,_345){
79f17b42 2953elem=MochiKit.DOM.getElement(elem);
165759fa
DV
2954if(typeof (_345)=="undefined"){
2955_345="px";
6a1aa64f 2956}
165759fa
DV
2957var _346={};
2958var _347=MochiKit.Base.isUndefinedOrNull;
2959if(!_347(_344.w)){
2960_346["width"]=_344.w+_345;
6a1aa64f 2961}
165759fa
DV
2962if(!_347(_344.h)){
2963_346["height"]=_344.h+_345;
6a1aa64f 2964}
165759fa
DV
2965MochiKit.DOM.updateNodeAttributes(elem,{"style":_346});
2966},setDisplayForElement:function(_348,_349){
2967var _34a=MochiKit.Base.extend(null,arguments,1);
2968var _34b=MochiKit.DOM.getElement;
2969for(var i=0;i<_34a.length;i++){
2970_349=_34b(_34a[i]);
2971if(_349){
2972_349.style.display=_348;
6a1aa64f 2973}
6a1aa64f 2974}
79f17b42
DV
2975},getViewportDimensions:function(){
2976var d=new MochiKit.Style.Dimensions();
2977var w=MochiKit.DOM._window;
2978var b=MochiKit.DOM._document.body;
2979if(w.innerWidth){
2980d.w=w.innerWidth;
2981d.h=w.innerHeight;
2982}else{
2983if(b.parentElement.clientWidth){
2984d.w=b.parentElement.clientWidth;
2985d.h=b.parentElement.clientHeight;
2986}else{
2987if(b&&b.clientWidth){
2988d.w=b.clientWidth;
2989d.h=b.clientHeight;
6a1aa64f 2990}
6a1aa64f 2991}
6a1aa64f 2992}
79f17b42
DV
2993return d;
2994},getViewportPosition:function(){
2995var c=new MochiKit.Style.Coordinates(0,0);
2996var d=MochiKit.DOM._document;
2997var de=d.documentElement;
2998var db=d.body;
2999if(de&&(de.scrollTop||de.scrollLeft)){
3000c.x=de.scrollLeft;
3001c.y=de.scrollTop;
6a1aa64f 3002}else{
79f17b42
DV
3003if(db){
3004c.x=db.scrollLeft;
3005c.y=db.scrollTop;
6a1aa64f
DV
3006}
3007}
79f17b42
DV
3008return c;
3009},__new__:function(){
3010var m=MochiKit.Base;
3011this.elementPosition=this.getElementPosition;
3012this.elementDimensions=this.getElementDimensions;
3013this.hideElement=m.partial(this.setDisplayForElement,"none");
3014this.showElement=m.partial(this.setDisplayForElement,"block");
6a1aa64f 3015this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
79f17b42 3016m.nameFunctions(this);
6a1aa64f 3017}});
79f17b42
DV
3018MochiKit.Style.__new__();
3019MochiKit.Base._exportSymbols(this,MochiKit.Style);
6a1aa64f 3020if(typeof (dojo)!="undefined"){
79f17b42 3021dojo.provide("MochiKit.Color");
6a1aa64f
DV
3022dojo.require("MochiKit.Base");
3023dojo.require("MochiKit.DOM");
3024dojo.require("MochiKit.Style");
3025}
3026if(typeof (JSAN)!="undefined"){
3027JSAN.use("MochiKit.Base",[]);
3028JSAN.use("MochiKit.DOM",[]);
3029JSAN.use("MochiKit.Style",[]);
3030}
3031try{
3032if(typeof (MochiKit.Base)=="undefined"){
3033throw "";
3034}
3035}
3036catch(e){
79f17b42 3037throw "MochiKit.Color depends on MochiKit.Base";
6a1aa64f
DV
3038}
3039try{
3040if(typeof (MochiKit.DOM)=="undefined"){
3041throw "";
3042}
3043}
3044catch(e){
79f17b42 3045throw "MochiKit.Color depends on MochiKit.DOM";
6a1aa64f
DV
3046}
3047try{
3048if(typeof (MochiKit.Style)=="undefined"){
3049throw "";
3050}
3051}
3052catch(e){
79f17b42 3053throw "MochiKit.Color depends on MochiKit.Style";
6a1aa64f 3054}
79f17b42
DV
3055if(typeof (MochiKit.Color)=="undefined"){
3056MochiKit.Color={};
6a1aa64f 3057}
79f17b42
DV
3058MochiKit.Color.NAME="MochiKit.Color";
3059MochiKit.Color.VERSION="1.4";
3060MochiKit.Color.__repr__=function(){
3061return "["+this.NAME+" "+this.VERSION+"]";
6a1aa64f 3062};
79f17b42 3063MochiKit.Color.toString=function(){
6a1aa64f 3064return this.__repr__();
79f17b42 3065};
165759fa
DV
3066MochiKit.Color.Color=function(red,_356,blue,_358){
3067if(typeof (_358)=="undefined"||_358===null){
3068_358=1;
6a1aa64f 3069}
165759fa 3070this.rgb={r:red,g:_356,b:blue,a:_358};
79f17b42 3071};
165759fa 3072MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_359){
79f17b42
DV
3073var rgb=this.rgb;
3074var m=MochiKit.Color;
165759fa 3075return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_359);
79f17b42
DV
3076},colorWithHue:function(hue){
3077var hsl=this.asHSL();
3078hsl.h=hue;
3079var m=MochiKit.Color;
3080return m.Color.fromHSL(hsl);
165759fa 3081},colorWithSaturation:function(_35f){
79f17b42 3082var hsl=this.asHSL();
165759fa 3083hsl.s=_35f;
79f17b42
DV
3084var m=MochiKit.Color;
3085return m.Color.fromHSL(hsl);
165759fa 3086},colorWithLightness:function(_362){
79f17b42 3087var hsl=this.asHSL();
165759fa 3088hsl.l=_362;
79f17b42
DV
3089var m=MochiKit.Color;
3090return m.Color.fromHSL(hsl);
165759fa 3091},darkerColorWithLevel:function(_365){
79f17b42 3092var hsl=this.asHSL();
165759fa 3093hsl.l=Math.max(hsl.l-_365,0);
79f17b42
DV
3094var m=MochiKit.Color;
3095return m.Color.fromHSL(hsl);
165759fa 3096},lighterColorWithLevel:function(_368){
79f17b42 3097var hsl=this.asHSL();
165759fa 3098hsl.l=Math.min(hsl.l+_368,1);
79f17b42
DV
3099var m=MochiKit.Color;
3100return m.Color.fromHSL(hsl);
165759fa
DV
3101},blendedColor:function(_36b,_36c){
3102if(typeof (_36c)=="undefined"||_36c===null){
3103_36c=0.5;
6a1aa64f 3104}
165759fa 3105var sf=1-_36c;
79f17b42 3106var s=this.rgb;
165759fa
DV
3107var d=_36b.rgb;
3108var df=_36c;
79f17b42 3109return 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));
165759fa 3110},compareRGB:function(_371){
79f17b42 3111var a=this.asRGB();
165759fa 3112var b=_371.asRGB();
79f17b42
DV
3113return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]);
3114},isLight:function(){
3115return this.asHSL().b>0.5;
3116},isDark:function(){
3117return (!this.isLight());
3118},toHSLString:function(){
3119var c=this.asHSL();
3120var ccc=MochiKit.Color.clampColorComponent;
3121var rval=this._hslString;
3122if(!rval){
3123var mid=(ccc(c.h,360).toFixed(0)+","+ccc(c.s,100).toPrecision(4)+"%"+","+ccc(c.l,100).toPrecision(4)+"%");
3124var a=c.a;
3125if(a>=1){
3126a=1;
3127rval="hsl("+mid+")";
6a1aa64f 3128}else{
79f17b42
DV
3129if(a<=0){
3130a=0;
6a1aa64f 3131}
79f17b42 3132rval="hsla("+mid+","+a+")";
6a1aa64f 3133}
79f17b42 3134this._hslString=rval;
6a1aa64f 3135}
79f17b42
DV
3136return rval;
3137},toRGBString:function(){
3138var c=this.rgb;
3139var ccc=MochiKit.Color.clampColorComponent;
3140var rval=this._rgbString;
3141if(!rval){
3142var mid=(ccc(c.r,255).toFixed(0)+","+ccc(c.g,255).toFixed(0)+","+ccc(c.b,255).toFixed(0));
3143if(c.a!=1){
3144rval="rgba("+mid+","+c.a+")";
6a1aa64f 3145}else{
79f17b42 3146rval="rgb("+mid+")";
6a1aa64f 3147}
79f17b42 3148this._rgbString=rval;
6a1aa64f 3149}
79f17b42
DV
3150return rval;
3151},asRGB:function(){
3152return MochiKit.Base.clone(this.rgb);
3153},toHexString:function(){
3154var m=MochiKit.Color;
3155var c=this.rgb;
3156var ccc=MochiKit.Color.clampColorComponent;
3157var rval=this._hexString;
3158if(!rval){
3159rval=("#"+m.toColorPart(ccc(c.r,255))+m.toColorPart(ccc(c.g,255))+m.toColorPart(ccc(c.b,255)));
3160this._hexString=rval;
6a1aa64f 3161}
79f17b42
DV
3162return rval;
3163},asHSV:function(){
3164var hsv=this.hsv;
3165var c=this.rgb;
3166if(typeof (hsv)=="undefined"||hsv===null){
3167hsv=MochiKit.Color.rgbToHSV(this.rgb);
3168this.hsv=hsv;
6a1aa64f 3169}
79f17b42
DV
3170return MochiKit.Base.clone(hsv);
3171},asHSL:function(){
3172var hsl=this.hsl;
3173var c=this.rgb;
3174if(typeof (hsl)=="undefined"||hsl===null){
3175hsl=MochiKit.Color.rgbToHSL(this.rgb);
3176this.hsl=hsl;
6a1aa64f 3177}
79f17b42 3178return MochiKit.Base.clone(hsl);
6a1aa64f 3179},toString:function(){
79f17b42
DV
3180return this.toRGBString();
3181},repr:function(){
3182var c=this.rgb;
3183var col=[c.r,c.g,c.b,c.a];
3184return this.__class__.NAME+"("+col.join(", ")+")";
3185}};
165759fa
DV
3186MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_388,blue,_38a){
3187var _38b=MochiKit.Color.Color;
79f17b42
DV
3188if(arguments.length==1){
3189var rgb=red;
3190red=rgb.r;
165759fa 3191_388=rgb.g;
79f17b42
DV
3192blue=rgb.b;
3193if(typeof (rgb.a)=="undefined"){
165759fa 3194_38a=undefined;
79f17b42 3195}else{
165759fa 3196_38a=rgb.a;
6a1aa64f
DV
3197}
3198}
165759fa
DV
3199return new _38b(red,_388,blue,_38a);
3200},fromHSL:function(hue,_38e,_38f,_390){
79f17b42
DV
3201var m=MochiKit.Color;
3202return m.Color.fromRGB(m.hslToRGB.apply(m,arguments));
165759fa 3203},fromHSV:function(hue,_393,_394,_395){
79f17b42
DV
3204var m=MochiKit.Color;
3205return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments));
3206},fromName:function(name){
165759fa 3207var _398=MochiKit.Color.Color;
79f17b42
DV
3208if(name.charAt(0)=="\""){
3209name=name.substr(1,name.length-2);
6a1aa64f 3210}
165759fa
DV
3211var _399=_398._namedColors[name.toLowerCase()];
3212if(typeof (_399)=="string"){
3213return _398.fromHexString(_399);
6a1aa64f 3214}else{
79f17b42 3215if(name=="transparent"){
165759fa 3216return _398.transparentColor();
6a1aa64f 3217}
79f17b42
DV
3218}
3219return null;
165759fa 3220},fromString:function(_39a){
79f17b42 3221var self=MochiKit.Color.Color;
165759fa
DV
3222var _39c=_39a.substr(0,3);
3223if(_39c=="rgb"){
3224return self.fromRGBString(_39a);
6a1aa64f 3225}else{
165759fa
DV
3226if(_39c=="hsl"){
3227return self.fromHSLString(_39a);
6a1aa64f 3228}else{
165759fa
DV
3229if(_39a.charAt(0)=="#"){
3230return self.fromHexString(_39a);
6a1aa64f
DV
3231}
3232}
6a1aa64f 3233}
165759fa
DV
3234return self.fromName(_39a);
3235},fromHexString:function(_39d){
3236if(_39d.charAt(0)=="#"){
3237_39d=_39d.substring(1);
6a1aa64f 3238}
165759fa 3239var _39e=[];
79f17b42 3240var i,hex;
165759fa 3241if(_39d.length==3){
79f17b42 3242for(i=0;i<3;i++){
165759fa
DV
3243hex=_39d.substr(i,1);
3244_39e.push(parseInt(hex+hex,16)/255);
6a1aa64f 3245}
6a1aa64f 3246}else{
79f17b42 3247for(i=0;i<6;i+=2){
165759fa
DV
3248hex=_39d.substr(i,2);
3249_39e.push(parseInt(hex,16)/255);
6a1aa64f 3250}
6a1aa64f 3251}
165759fa
DV
3252var _3a1=MochiKit.Color.Color;
3253return _3a1.fromRGB.apply(_3a1,_39e);
3254},_fromColorString:function(pre,_3a3,_3a4,_3a5){
3255if(_3a5.indexOf(pre)===0){
3256_3a5=_3a5.substring(_3a5.indexOf("(",3)+1,_3a5.length-1);
6a1aa64f 3257}
165759fa
DV
3258var _3a6=_3a5.split(/\s*,\s*/);
3259var _3a7=[];
3260for(var i=0;i<_3a6.length;i++){
3261var c=_3a6[i];
79f17b42 3262var val;
165759fa 3263var _3ab=c.substring(c.length-3);
79f17b42
DV
3264if(c.charAt(c.length-1)=="%"){
3265val=0.01*parseFloat(c.substring(0,c.length-1));
6a1aa64f 3266}else{
165759fa 3267if(_3ab=="deg"){
79f17b42 3268val=parseFloat(c)/360;
6a1aa64f 3269}else{
165759fa 3270if(_3ab=="rad"){
79f17b42 3271val=parseFloat(c)/(Math.PI*2);
6a1aa64f 3272}else{
165759fa 3273val=_3a4[i]*parseFloat(c);
6a1aa64f 3274}
6a1aa64f 3275}
6a1aa64f 3276}
165759fa 3277_3a7.push(val);
6a1aa64f 3278}
165759fa
DV
3279return this[_3a3].apply(this,_3a7);
3280},fromComputedStyle:function(elem,_3ad){
79f17b42
DV
3281var d=MochiKit.DOM;
3282var cls=MochiKit.Color.Color;
3283for(elem=d.getElement(elem);elem;elem=elem.parentNode){
165759fa
DV
3284var _3b0=MochiKit.Style.getStyle.apply(d,arguments);
3285if(!_3b0){
79f17b42 3286continue;
6a1aa64f 3287}
165759fa
DV
3288var _3b1=cls.fromString(_3b0);
3289if(!_3b1){
79f17b42 3290break;
6a1aa64f 3291}
165759fa
DV
3292if(_3b1.asRGB().a>0){
3293return _3b1;
6a1aa64f 3294}
79f17b42
DV
3295}
3296return null;
3297},fromBackground:function(elem){
3298var cls=MochiKit.Color.Color;
3299return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor();
3300},fromText:function(elem){
3301var cls=MochiKit.Color.Color;
3302return cls.fromComputedStyle(elem,"color","color")||cls.blackColor();
3303},namedColors:function(){
3304return MochiKit.Base.clone(MochiKit.Color.Color._namedColors);
3305}});
165759fa
DV
3306MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_3b7){
3307v*=_3b7;
79f17b42
DV
3308if(v<0){
3309return 0;
6a1aa64f 3310}else{
165759fa
DV
3311if(v>_3b7){
3312return _3b7;
6a1aa64f 3313}else{
79f17b42 3314return v;
6a1aa64f
DV
3315}
3316}
79f17b42
DV
3317},_hslValue:function(n1,n2,hue){
3318if(hue>6){
3319hue-=6;
6a1aa64f 3320}else{
79f17b42
DV
3321if(hue<0){
3322hue+=6;
6a1aa64f
DV
3323}
3324}
79f17b42
DV
3325var val;
3326if(hue<1){
3327val=n1+(n2-n1)*hue;
6a1aa64f 3328}else{
79f17b42
DV
3329if(hue<3){
3330val=n2;
6a1aa64f 3331}else{
79f17b42
DV
3332if(hue<4){
3333val=n1+(n2-n1)*(4-hue);
3334}else{
3335val=n1;
6a1aa64f 3336}
6a1aa64f
DV
3337}
3338}
79f17b42 3339return val;
165759fa 3340},hsvToRGB:function(hue,_3bd,_3be,_3bf){
79f17b42
DV
3341if(arguments.length==1){
3342var hsv=hue;
3343hue=hsv.h;
165759fa
DV
3344_3bd=hsv.s;
3345_3be=hsv.v;
3346_3bf=hsv.a;
6a1aa64f 3347}
79f17b42 3348var red;
165759fa 3349var _3c2;
79f17b42 3350var blue;
165759fa
DV
3351if(_3bd===0){
3352red=_3be;
3353_3c2=_3be;
3354blue=_3be;
6a1aa64f 3355}else{
79f17b42
DV
3356var i=Math.floor(hue*6);
3357var f=(hue*6)-i;
165759fa
DV
3358var p=_3be*(1-_3bd);
3359var q=_3be*(1-(_3bd*f));
3360var t=_3be*(1-(_3bd*(1-f)));
79f17b42
DV
3361switch(i){
3362case 1:
3363red=q;
165759fa 3364_3c2=_3be;
79f17b42
DV
3365blue=p;
3366break;
3367case 2:
3368red=p;
165759fa 3369_3c2=_3be;
79f17b42
DV
3370blue=t;
3371break;
3372case 3:
3373red=p;
165759fa
DV
3374_3c2=q;
3375blue=_3be;
79f17b42
DV
3376break;
3377case 4:
3378red=t;
165759fa
DV
3379_3c2=p;
3380blue=_3be;
79f17b42
DV
3381break;
3382case 5:
165759fa
DV
3383red=_3be;
3384_3c2=p;
79f17b42
DV
3385blue=q;
3386break;
3387case 6:
3388case 0:
165759fa
DV
3389red=_3be;
3390_3c2=t;
79f17b42
DV
3391blue=p;
3392break;
6a1aa64f
DV
3393}
3394}
165759fa
DV
3395return {r:red,g:_3c2,b:blue,a:_3bf};
3396},hslToRGB:function(hue,_3ca,_3cb,_3cc){
79f17b42
DV
3397if(arguments.length==1){
3398var hsl=hue;
3399hue=hsl.h;
165759fa
DV
3400_3ca=hsl.s;
3401_3cb=hsl.l;
3402_3cc=hsl.a;
6a1aa64f 3403}
79f17b42 3404var red;
165759fa 3405var _3cf;
79f17b42 3406var blue;
165759fa
DV
3407if(_3ca===0){
3408red=_3cb;
3409_3cf=_3cb;
3410blue=_3cb;
79f17b42
DV
3411}else{
3412var m2;
165759fa
DV
3413if(_3cb<=0.5){
3414m2=_3cb*(1+_3ca);
6a1aa64f 3415}else{
165759fa 3416m2=_3cb+_3ca-(_3cb*_3ca);
6a1aa64f 3417}
165759fa 3418var m1=(2*_3cb)-m2;
79f17b42
DV
3419var f=MochiKit.Color._hslValue;
3420var h6=hue*6;
3421red=f(m1,m2,h6+2);
165759fa 3422_3cf=f(m1,m2,h6);
79f17b42 3423blue=f(m1,m2,h6-2);
6a1aa64f 3424}
165759fa
DV
3425return {r:red,g:_3cf,b:blue,a:_3cc};
3426},rgbToHSV:function(red,_3d6,blue,_3d8){
79f17b42
DV
3427if(arguments.length==1){
3428var rgb=red;
3429red=rgb.r;
165759fa 3430_3d6=rgb.g;
79f17b42 3431blue=rgb.b;
165759fa 3432_3d8=rgb.a;
6a1aa64f 3433}
165759fa
DV
3434var max=Math.max(Math.max(red,_3d6),blue);
3435var min=Math.min(Math.min(red,_3d6),blue);
79f17b42 3436var hue;
165759fa
DV
3437var _3dd;
3438var _3de=max;
79f17b42
DV
3439if(min==max){
3440hue=0;
165759fa 3441_3dd=0;
6a1aa64f 3442}else{
165759fa
DV
3443var _3df=(max-min);
3444_3dd=_3df/max;
79f17b42 3445if(red==max){
165759fa 3446hue=(_3d6-blue)/_3df;
79f17b42 3447}else{
165759fa
DV
3448if(_3d6==max){
3449hue=2+((blue-red)/_3df);
6a1aa64f 3450}else{
165759fa 3451hue=4+((red-_3d6)/_3df);
6a1aa64f
DV
3452}
3453}
79f17b42
DV
3454hue/=6;
3455if(hue<0){
3456hue+=1;
6a1aa64f 3457}
79f17b42
DV
3458if(hue>1){
3459hue-=1;
6a1aa64f 3460}
6a1aa64f 3461}
165759fa
DV
3462return {h:hue,s:_3dd,v:_3de,a:_3d8};
3463},rgbToHSL:function(red,_3e1,blue,_3e3){
79f17b42
DV
3464if(arguments.length==1){
3465var rgb=red;
3466red=rgb.r;
165759fa 3467_3e1=rgb.g;
79f17b42 3468blue=rgb.b;
165759fa 3469_3e3=rgb.a;
6a1aa64f 3470}
165759fa
DV
3471var max=Math.max(red,Math.max(_3e1,blue));
3472var min=Math.min(red,Math.min(_3e1,blue));
79f17b42 3473var hue;
165759fa
DV
3474var _3e8;
3475var _3e9=(max+min)/2;
3476var _3ea=max-min;
3477if(_3ea===0){
79f17b42 3478hue=0;
165759fa 3479_3e8=0;
79f17b42 3480}else{
165759fa
DV
3481if(_3e9<=0.5){
3482_3e8=_3ea/(max+min);
79f17b42 3483}else{
165759fa 3484_3e8=_3ea/(2-max-min);
6a1aa64f 3485}
79f17b42 3486if(red==max){
165759fa 3487hue=(_3e1-blue)/_3ea;
79f17b42 3488}else{
165759fa
DV
3489if(_3e1==max){
3490hue=2+((blue-red)/_3ea);
79f17b42 3491}else{
165759fa 3492hue=4+((red-_3e1)/_3ea);
6a1aa64f 3493}
6a1aa64f 3494}
79f17b42
DV
3495hue/=6;
3496if(hue<0){
3497hue+=1;
6a1aa64f 3498}
79f17b42
DV
3499if(hue>1){
3500hue-=1;
6a1aa64f 3501}
6a1aa64f 3502}
165759fa 3503return {h:hue,s:_3e8,l:_3e9,a:_3e3};
79f17b42
DV
3504},toColorPart:function(num){
3505num=Math.round(num);
165759fa 3506var _3ec=num.toString(16);
79f17b42 3507if(num<16){
165759fa 3508return "0"+_3ec;
6a1aa64f 3509}
165759fa 3510return _3ec;
79f17b42 3511},__new__:function(){
6a1aa64f 3512var m=MochiKit.Base;
79f17b42
DV
3513this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]);
3514this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]);
165759fa
DV
3515var _3ee=1/3;
3516var _3ef={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[_3ee,_3ee,_3ee],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*_3ee,2*_3ee,2*_3ee],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]};
3517var _3f0=function(name,r,g,b,a){
79f17b42
DV
3518var rval=this.fromRGB(r,g,b,a);
3519this[name]=function(){
3520return rval;
3521};
3522return rval;
3523};
165759fa 3524for(var k in _3ef){
79f17b42 3525var name=k+"Color";
165759fa
DV
3526var _3f9=m.concat([_3f0,this.Color,name],_3ef[k]);
3527this.Color[name]=m.bind.apply(null,_3f9);
6a1aa64f 3528}
165759fa 3529var _3fa=function(){
79f17b42
DV
3530for(var i=0;i<arguments.length;i++){
3531if(!(arguments[i] instanceof Color)){
3532return false;
6a1aa64f 3533}
6a1aa64f 3534}
79f17b42
DV
3535return true;
3536};
165759fa 3537var _3fc=function(a,b){
79f17b42
DV
3538return a.compareRGB(b);
3539};
3540m.nameFunctions(this);
165759fa 3541m.registerComparator(this.Color.NAME,_3fa,_3fc);
79f17b42
DV
3542this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
3543}});
3544MochiKit.Color.EXPORT=["Color"];
3545MochiKit.Color.EXPORT_OK=["clampColorComponent","rgbToHSL","hslToRGB","rgbToHSV","hsvToRGB","toColorPart"];
3546MochiKit.Color.__new__();
3547MochiKit.Base._exportSymbols(this,MochiKit.Color);
3548MochiKit.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"};
6a1aa64f 3549if(typeof (dojo)!="undefined"){
79f17b42 3550dojo.provide("MochiKit.Signal");
6a1aa64f
DV
3551dojo.require("MochiKit.Base");
3552dojo.require("MochiKit.DOM");
3553dojo.require("MochiKit.Style");
3554}
3555if(typeof (JSAN)!="undefined"){
3556JSAN.use("MochiKit.Base",[]);
3557JSAN.use("MochiKit.DOM",[]);
3558JSAN.use("MochiKit.Style",[]);
3559}
3560try{
79f17b42 3561if(typeof (MochiKit.Base)=="undefined"){
6a1aa64f
DV
3562throw "";
3563}
3564}
3565catch(e){
79f17b42 3566throw "MochiKit.Signal depends on MochiKit.Base!";
6a1aa64f 3567}
79f17b42
DV
3568try{
3569if(typeof (MochiKit.DOM)=="undefined"){
3570throw "";
6a1aa64f 3571}
6a1aa64f 3572}
79f17b42
DV
3573catch(e){
3574throw "MochiKit.Signal depends on MochiKit.DOM!";
6a1aa64f 3575}
79f17b42
DV
3576try{
3577if(typeof (MochiKit.Style)=="undefined"){
3578throw "";
6a1aa64f
DV
3579}
3580}
79f17b42
DV
3581catch(e){
3582throw "MochiKit.Signal depends on MochiKit.Style!";
6a1aa64f 3583}
79f17b42
DV
3584if(typeof (MochiKit.Signal)=="undefined"){
3585MochiKit.Signal={};
6a1aa64f 3586}
79f17b42
DV
3587MochiKit.Signal.NAME="MochiKit.Signal";
3588MochiKit.Signal.VERSION="1.4";
3589MochiKit.Signal._observers=[];
3590MochiKit.Signal.Event=function(src,e){
3591this._event=e||window.event;
3592this._src=src;
6a1aa64f 3593};
79f17b42
DV
3594MochiKit.Base.update(MochiKit.Signal.Event.prototype,{__repr__:function(){
3595var repr=MochiKit.Base.repr;
3596var str="{event(): "+repr(this.event())+", src(): "+repr(this.src())+", type(): "+repr(this.type())+", target(): "+repr(this.target());
3597if(this.type()&&this.type().indexOf("key")===0||this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu"){
3598str+=", 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)+"}";
6a1aa64f 3599}
79f17b42
DV
3600if(this.type()&&this.type().indexOf("key")===0){
3601str+=", key(): {code: "+repr(this.key().code)+", string: "+repr(this.key().string)+"}";
6a1aa64f 3602}
79f17b42
DV
3603if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){
3604str+=", mouse(): {page: "+repr(this.mouse().page)+", client: "+repr(this.mouse().client);
3605if(this.type()!="mousemove"){
3606str+=", button: {left: "+repr(this.mouse().button.left)+", middle: "+repr(this.mouse().button.middle)+", right: "+repr(this.mouse().button.right)+"}}";
3607}else{
3608str+="}";
6a1aa64f 3609}
6a1aa64f 3610}
79f17b42
DV
3611if(this.type()=="mouseover"||this.type()=="mouseout"){
3612str+=", relatedTarget(): "+repr(this.relatedTarget());
6a1aa64f 3613}
79f17b42
DV
3614str+="}";
3615return str;
3616},toString:function(){
6a1aa64f 3617return this.__repr__();
79f17b42
DV
3618},src:function(){
3619return this._src;
3620},event:function(){
3621return this._event;
3622},type:function(){
3623return this._event.type||undefined;
3624},target:function(){
3625return this._event.target||this._event.srcElement;
3626},_relatedTarget:null,relatedTarget:function(){
3627if(this._relatedTarget!==null){
3628return this._relatedTarget;
6a1aa64f 3629}
79f17b42
DV
3630var elem=null;
3631if(this.type()=="mouseover"){
3632elem=(this._event.relatedTarget||this._event.fromElement);
6a1aa64f 3633}else{
79f17b42
DV
3634if(this.type()=="mouseout"){
3635elem=(this._event.relatedTarget||this._event.toElement);
3636}
3637}
3638if(elem!==null){
3639this._relatedTarget=elem;
3640return elem;
3641}
3642return undefined;
3643},_modifier:null,modifier:function(){
3644if(this._modifier!==null){
3645return this._modifier;
6a1aa64f 3646}
79f17b42
DV
3647var m={};
3648m.alt=this._event.altKey;
3649m.ctrl=this._event.ctrlKey;
3650m.meta=this._event.metaKey||false;
3651m.shift=this._event.shiftKey;
3652m.any=m.alt||m.ctrl||m.shift||m.meta;
3653this._modifier=m;
3654return m;
3655},_key:null,key:function(){
3656if(this._key!==null){
3657return this._key;
6a1aa64f 3658}
79f17b42
DV
3659var k={};
3660if(this.type()&&this.type().indexOf("key")===0){
3661if(this.type()=="keydown"||this.type()=="keyup"){
3662k.code=this._event.keyCode;
3663k.string=(MochiKit.Signal._specialKeys[k.code]||"KEY_UNKNOWN");
3664this._key=k;
3665return k;
3666}else{
3667if(this.type()=="keypress"){
3668k.code=0;
3669k.string="";
3670if(typeof (this._event.charCode)!="undefined"&&this._event.charCode!==0&&!MochiKit.Signal._specialMacKeys[this._event.charCode]){
3671k.code=this._event.charCode;
3672k.string=String.fromCharCode(k.code);
6a1aa64f 3673}else{
79f17b42
DV
3674if(this._event.keyCode&&typeof (this._event.charCode)=="undefined"){
3675k.code=this._event.keyCode;
3676k.string=String.fromCharCode(k.code);
6a1aa64f
DV
3677}
3678}
79f17b42
DV
3679this._key=k;
3680return k;
6a1aa64f 3681}
6a1aa64f
DV
3682}
3683}
79f17b42
DV
3684return undefined;
3685},_mouse:null,mouse:function(){
3686if(this._mouse!==null){
3687return this._mouse;
6a1aa64f 3688}
79f17b42
DV
3689var m={};
3690var e=this._event;
3691if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){
3692m.client=new MochiKit.Style.Coordinates(0,0);
3693if(e.clientX||e.clientY){
3694m.client.x=(!e.clientX||e.clientX<0)?0:e.clientX;
3695m.client.y=(!e.clientY||e.clientY<0)?0:e.clientY;
3696}
3697m.page=new MochiKit.Style.Coordinates(0,0);
3698if(e.pageX||e.pageY){
3699m.page.x=(!e.pageX||e.pageX<0)?0:e.pageX;
3700m.page.y=(!e.pageY||e.pageY<0)?0:e.pageY;
6a1aa64f 3701}else{
79f17b42
DV
3702var de=MochiKit.DOM._document.documentElement;
3703var b=MochiKit.DOM._document.body;
3704m.page.x=e.clientX+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);
3705m.page.y=e.clientY+(de.scrollTop||b.scrollTop)-(de.clientTop||0);
3706}
3707if(this.type()!="mousemove"){
3708m.button={};
3709m.button.left=false;
3710m.button.right=false;
3711m.button.middle=false;
3712if(e.which){
3713m.button.left=(e.which==1);
3714m.button.middle=(e.which==2);
3715m.button.right=(e.which==3);
6a1aa64f 3716}else{
79f17b42
DV
3717m.button.left=!!(e.button&1);
3718m.button.right=!!(e.button&2);
3719m.button.middle=!!(e.button&4);
6a1aa64f
DV
3720}
3721}
79f17b42
DV
3722this._mouse=m;
3723return m;
6a1aa64f 3724}
79f17b42
DV
3725return undefined;
3726},stop:function(){
3727this.stopPropagation();
3728this.preventDefault();
3729},stopPropagation:function(){
3730if(this._event.stopPropagation){
3731this._event.stopPropagation();
6a1aa64f 3732}else{
79f17b42
DV
3733this._event.cancelBubble=true;
3734}
3735},preventDefault:function(){
3736if(this._event.preventDefault){
3737this._event.preventDefault();
6a1aa64f 3738}else{
79f17b42
DV
3739if(this._confirmUnload===null){
3740this._event.returnValue=false;
3741}
6a1aa64f 3742}
79f17b42
DV
3743},_confirmUnload:null,confirmUnload:function(msg){
3744if(this.type()=="beforeunload"){
3745this._confirmUnload=msg;
3746this._event.returnValue=msg;
6a1aa64f 3747}
79f17b42
DV
3748}});
3749MochiKit.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"};
3750(function(){
165759fa 3751var _40b=MochiKit.Signal._specialMacKeys;
79f17b42 3752for(i=63236;i<=63242;i++){
165759fa 3753_40b[i]="KEY_F"+(i-63236+1);
6a1aa64f 3754}
79f17b42
DV
3755})();
3756MochiKit.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"};
3757(function(){
165759fa 3758var _40c=MochiKit.Signal._specialKeys;
79f17b42 3759for(var i=48;i<=57;i++){
165759fa 3760_40c[i]="KEY_"+(i-48);
6a1aa64f 3761}
79f17b42 3762for(i=65;i<=90;i++){
165759fa 3763_40c[i]="KEY_"+String.fromCharCode(i);
6a1aa64f 3764}
79f17b42 3765for(i=96;i<=105;i++){
165759fa 3766_40c[i]="KEY_NUM_PAD_"+(i-96);
6a1aa64f 3767}
79f17b42 3768for(i=112;i<=123;i++){
165759fa 3769_40c[i]="KEY_F"+(i-112+1);
6a1aa64f 3770}
79f17b42 3771})();
165759fa
DV
3772MochiKit.Signal.Ident=function(_40e){
3773this.source=_40e.source;
3774this.signal=_40e.signal;
3775this.listener=_40e.listener;
3776this.isDOM=_40e.isDOM;
3777this.objOrFunc=_40e.objOrFunc;
3778this.funcOrStr=_40e.funcOrStr;
3779this.connected=_40e.connected;
6a1aa64f 3780};
79f17b42
DV
3781MochiKit.Signal.Ident.prototype={};
3782MochiKit.Base.update(MochiKit.Signal,{__repr__:function(){
3783return "["+this.NAME+" "+this.VERSION+"]";
3784},toString:function(){
3785return this.__repr__();
3786},_unloadCache:function(){
3787var self=MochiKit.Signal;
165759fa
DV
3788var _410=self._observers;
3789for(var i=0;i<_410.length;i++){
3790if(_410[i].signal!=="onload"&&_410[i].signal!=="onunload"){
3791self._disconnect(_410[i]);
6a1aa64f 3792}
6a1aa64f 3793}
165759fa 3794},_listener:function(src,sig,func,obj,_416){
79f17b42
DV
3795var self=MochiKit.Signal;
3796var E=self.Event;
165759fa 3797if(!_416){
79f17b42 3798return MochiKit.Base.bind(func,obj);
6a1aa64f 3799}
79f17b42
DV
3800obj=obj||src;
3801if(typeof (func)=="string"){
3802if(sig==="onload"||sig==="onunload"){
165759fa
DV
3803return function(_419){
3804obj[func].apply(obj,[new E(src,_419)]);
3805var _41a=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:obj,funcOrStr:func});
3806MochiKit.Signal._disconnect(_41a);
6a1aa64f 3807};
79f17b42 3808}else{
165759fa
DV
3809return function(_41b){
3810obj[func].apply(obj,[new E(src,_41b)]);
6a1aa64f 3811};
6a1aa64f 3812}
79f17b42
DV
3813}else{
3814if(sig==="onload"||sig==="onunload"){
165759fa
DV
3815return function(_41c){
3816func.apply(obj,[new E(src,_41c)]);
79f17b42 3817MochiKit.Signal.disconnect(src,sig,func);
165759fa
DV
3818var _41d=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:func});
3819MochiKit.Signal._disconnect(_41d);
6a1aa64f 3820};
79f17b42 3821}else{
165759fa
DV
3822return function(_41e){
3823func.apply(obj,[new E(src,_41e)]);
6a1aa64f 3824};
6a1aa64f 3825}
6a1aa64f 3826}
79f17b42
DV
3827},_browserAlreadyHasMouseEnterAndLeave:function(){
3828return /MSIE/.test(navigator.userAgent);
3829},_mouseEnterListener:function(src,sig,func,obj){
3830var E=MochiKit.Signal.Event;
165759fa
DV
3831return function(_424){
3832var e=new E(src,_424);
79f17b42
DV
3833try{
3834e.relatedTarget().nodeName;
6a1aa64f 3835}
79f17b42
DV
3836catch(err){
3837return;
6a1aa64f 3838}
79f17b42
DV
3839e.stop();
3840if(MochiKit.DOM.isChildNode(e.relatedTarget(),src)){
3841return;
6a1aa64f 3842}
79f17b42
DV
3843e.type=function(){
3844return sig;
6a1aa64f 3845};
79f17b42
DV
3846if(typeof (func)=="string"){
3847return obj[func].apply(obj,[e]);
3848}else{
3849return func.apply(obj,[e]);
6a1aa64f 3850}
6a1aa64f 3851};
165759fa 3852},_getDestPair:function(_426,_427){
79f17b42
DV
3853var obj=null;
3854var func=null;
165759fa
DV
3855if(typeof (_427)!="undefined"){
3856obj=_426;
3857func=_427;
3858if(typeof (_427)=="string"){
3859if(typeof (_426[_427])!="function"){
79f17b42 3860throw new Error("'funcOrStr' must be a function on 'objOrFunc'");
6a1aa64f 3861}
79f17b42 3862}else{
165759fa 3863if(typeof (_427)!="function"){
79f17b42 3864throw new Error("'funcOrStr' must be a function or string");
6a1aa64f 3865}
6a1aa64f 3866}
79f17b42 3867}else{
165759fa 3868if(typeof (_426)!="function"){
79f17b42
DV
3869throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given");
3870}else{
165759fa 3871func=_426;
6a1aa64f 3872}
6a1aa64f 3873}
79f17b42 3874return [obj,func];
165759fa 3875},connect:function(src,sig,_42c,_42d){
79f17b42
DV
3876src=MochiKit.DOM.getElement(src);
3877var self=MochiKit.Signal;
3878if(typeof (sig)!="string"){
3879throw new Error("'sig' must be a string");
6a1aa64f 3880}
165759fa
DV
3881var _42f=self._getDestPair(_42c,_42d);
3882var obj=_42f[0];
3883var func=_42f[1];
79f17b42
DV
3884if(typeof (obj)=="undefined"||obj===null){
3885obj=src;
6a1aa64f 3886}
165759fa
DV
3887var _432=!!(src.addEventListener||src.attachEvent);
3888if(_432&&(sig==="onmouseenter"||sig==="onmouseleave")&&!self._browserAlreadyHasMouseEnterAndLeave()){
3889var _433=self._mouseEnterListener(src,sig.substr(2),func,obj);
79f17b42
DV
3890if(sig==="onmouseenter"){
3891sig="onmouseover";
3892}else{
3893sig="onmouseout";
6a1aa64f
DV
3894}
3895}else{
165759fa 3896var _433=self._listener(src,sig,func,obj,_432);
6a1aa64f 3897}
79f17b42 3898if(src.addEventListener){
165759fa 3899src.addEventListener(sig.substr(2),_433,false);
79f17b42
DV
3900}else{
3901if(src.attachEvent){
165759fa 3902src.attachEvent(sig,_433);
6a1aa64f
DV
3903}
3904}
165759fa
DV
3905var _434=new MochiKit.Signal.Ident({source:src,signal:sig,listener:_433,isDOM:_432,objOrFunc:_42c,funcOrStr:_42d,connected:true});
3906self._observers.push(_434);
3907if(!_432&&typeof (src.__connect__)=="function"){
3908var args=MochiKit.Base.extend([_434],arguments,1);
79f17b42 3909src.__connect__.apply(src,args);
6a1aa64f 3910}
165759fa
DV
3911return _434;
3912},_disconnect:function(_436){
3913if(!_436.connected){
79f17b42 3914return;
6a1aa64f 3915}
165759fa
DV
3916_436.connected=false;
3917if(!_436.isDOM){
6a1aa64f
DV
3918return;
3919}
165759fa
DV
3920var src=_436.source;
3921var sig=_436.signal;
3922var _439=_436.listener;
79f17b42 3923if(src.removeEventListener){
165759fa 3924src.removeEventListener(sig.substr(2),_439,false);
79f17b42
DV
3925}else{
3926if(src.detachEvent){
165759fa 3927src.detachEvent(sig,_439);
79f17b42
DV
3928}else{
3929throw new Error("'src' must be a DOM element");
6a1aa64f 3930}
6a1aa64f 3931}
165759fa 3932},disconnect:function(_43a){
79f17b42 3933var self=MochiKit.Signal;
165759fa 3934var _43c=self._observers;
79f17b42
DV
3935var m=MochiKit.Base;
3936if(arguments.length>1){
3937var src=MochiKit.DOM.getElement(arguments[0]);
3938var sig=arguments[1];
3939var obj=arguments[2];
3940var func=arguments[3];
165759fa
DV
3941for(var i=_43c.length-1;i>=0;i--){
3942var o=_43c[i];
79f17b42
DV
3943if(o.source===src&&o.signal===sig&&o.objOrFunc===obj&&o.funcOrStr===func){
3944self._disconnect(o);
3945if(!self._lock){
165759fa 3946_43c.splice(i,1);
79f17b42
DV
3947}else{
3948self._dirty=true;
6a1aa64f 3949}
79f17b42 3950return true;
6a1aa64f 3951}
6a1aa64f 3952}
6a1aa64f 3953}else{
165759fa 3954var idx=m.findIdentical(_43c,_43a);
79f17b42 3955if(idx>=0){
165759fa 3956self._disconnect(_43a);
79f17b42 3957if(!self._lock){
165759fa 3958_43c.splice(idx,1);
79f17b42
DV
3959}else{
3960self._dirty=true;
6a1aa64f 3961}
79f17b42 3962return true;
6a1aa64f 3963}
6a1aa64f 3964}
79f17b42 3965return false;
165759fa 3966},disconnectAllTo:function(_445,_446){
79f17b42 3967var self=MochiKit.Signal;
165759fa
DV
3968var _448=self._observers;
3969var _449=self._disconnect;
3970var _44a=self._lock;
3971var _44b=self._dirty;
3972if(typeof (_446)==="undefined"){
3973_446=null;
79f17b42 3974}
165759fa
DV
3975for(var i=_448.length-1;i>=0;i--){
3976var _44d=_448[i];
3977if(_44d.objOrFunc===_445&&(_446===null||_44d.funcOrStr===_446)){
3978_449(_44d);
3979if(_44a){
3980_44b=true;
79f17b42 3981}else{
165759fa 3982_448.splice(i,1);
79f17b42
DV
3983}
3984}
3985}
165759fa 3986self._dirty=_44b;
79f17b42
DV
3987},disconnectAll:function(src,sig){
3988src=MochiKit.DOM.getElement(src);
6a1aa64f 3989var m=MochiKit.Base;
165759fa 3990var _451=m.flattenArguments(m.extend(null,arguments,1));
79f17b42 3991var self=MochiKit.Signal;
165759fa
DV
3992var _453=self._disconnect;
3993var _454=self._observers;
3994var i,_456;
3995var _457=self._lock;
3996var _458=self._dirty;
3997if(_451.length===0){
3998for(i=_454.length-1;i>=0;i--){
3999_456=_454[i];
4000if(_456.source===src){
4001_453(_456);
4002if(!_457){
4003_454.splice(i,1);
79f17b42 4004}else{
165759fa 4005_458=true;
6a1aa64f 4006}
6a1aa64f 4007}
6a1aa64f 4008}
79f17b42
DV
4009}else{
4010var sigs={};
165759fa
DV
4011for(i=0;i<_451.length;i++){
4012sigs[_451[i]]=true;
6a1aa64f 4013}
165759fa
DV
4014for(i=_454.length-1;i>=0;i--){
4015_456=_454[i];
4016if(_456.source===src&&_456.signal in sigs){
4017_453(_456);
4018if(!_457){
4019_454.splice(i,1);
79f17b42 4020}else{
165759fa 4021_458=true;
6a1aa64f 4022}
6a1aa64f 4023}
6a1aa64f 4024}
6a1aa64f 4025}
165759fa 4026self._dirty=_458;
79f17b42
DV
4027},signal:function(src,sig){
4028var self=MochiKit.Signal;
165759fa 4029var _45d=self._observers;
79f17b42
DV
4030src=MochiKit.DOM.getElement(src);
4031var args=MochiKit.Base.extend(null,arguments,2);
165759fa 4032var _45f=[];
79f17b42 4033self._lock=true;
165759fa
DV
4034for(var i=0;i<_45d.length;i++){
4035var _461=_45d[i];
4036if(_461.source===src&&_461.signal===sig){
79f17b42 4037try{
165759fa 4038_461.listener.apply(src,args);
6a1aa64f 4039}
79f17b42 4040catch(e){
165759fa 4041_45f.push(e);
6a1aa64f 4042}
6a1aa64f 4043}
6a1aa64f 4044}
79f17b42
DV
4045self._lock=false;
4046if(self._dirty){
4047self._dirty=false;
165759fa
DV
4048for(var i=_45d.length-1;i>=0;i--){
4049if(!_45d[i].connected){
4050_45d.splice(i,1);
79f17b42 4051}
6a1aa64f 4052}
79f17b42 4053}
165759fa
DV
4054if(_45f.length==1){
4055throw _45f[0];
6a1aa64f 4056}else{
165759fa 4057if(_45f.length>1){
79f17b42 4058var e=new Error("Multiple errors thrown in handling 'sig', see errors property");
165759fa 4059e.errors=_45f;
79f17b42 4060throw e;
6a1aa64f
DV
4061}
4062}
79f17b42
DV
4063}});
4064MochiKit.Signal.EXPORT_OK=[];
4065MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"];
4066MochiKit.Signal.__new__=function(win){
4067var m=MochiKit.Base;
4068this._document=document;
4069this._window=win;
4070this._lock=false;
4071this._dirty=false;
4072try{
4073this.connect(window,"onunload",this._unloadCache);
4074}
4075catch(e){
4076}
4077this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
4078m.nameFunctions(this);
4079};
4080MochiKit.Signal.__new__(this);
4081if(MochiKit.__export__){
4082connect=MochiKit.Signal.connect;
4083disconnect=MochiKit.Signal.disconnect;
4084disconnectAll=MochiKit.Signal.disconnectAll;
4085signal=MochiKit.Signal.signal;
6a1aa64f 4086}
79f17b42 4087MochiKit.Base._exportSymbols(this,MochiKit.Signal);
6a1aa64f
DV
4088
4089
4090/***
4091
4092 PlotKit.PlotKit 0.9.1 : PACKED VERSION
4093
4094 THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please
4095 diff against the source tree, not this file.
4096
4097 For more information, <http://www.liquidx.net/plotkit/>.
4098
4099 Copyright (c) 2006. Alastair Tse.
4100
4101***/
4102
4103try{
4104if(typeof (MochiKit.Base)=="undefined"||typeof (MochiKit.DOM)=="undefined"||typeof (MochiKit.Color)=="undefined"||typeof (MochiKit.Format)=="undefined"){
4105throw "";
4106}
4107}
4108catch(e){
4109throw "PlotKit depends on MochiKit.{Base,Color,DOM,Format}";
4110}
4111MochiKit.Base.update(MochiKit.Color.Color.prototype,{asFillColor:function(){
4112return this.lighterColorWithLevel(0.3);
4113},asStrokeColor:function(){
4114return this.darkerColorWithLevel(0.1);
4115},asPointColor:function(){
4116return this.lighterColorWithLevel(0.1);
4117}});
4118if(typeof (PlotKit)=="undefined"){
4119PlotKit={};
4120}
4121PlotKit.NAME="PlotKit";
4122PlotKit.VERSION="0.8";
4123PlotKit.__repr__=function(){
4124return "["+this.NAME+" "+this.VERSION+"]";
4125};
4126PlotKit.toString=function(){
4127return this.__repr__();
4128};
4129if(typeof (PlotKit.Base)=="undefined"){
4130PlotKit.Base={};
4131}
4132PlotKit.Base.NAME="PlotKit.Base";
4133PlotKit.Base.VERSION=PlotKit.VERSION;
4134PlotKit.Base.__repr__=function(){
4135return "["+this.NAME+" "+this.VERSION+"]";
4136};
4137PlotKit.Base.toString=function(){
4138return this.__repr__();
4139};
4140PlotKit.Base.usingPrototype=function(){
4141try{
4142return (typeof (Object.extend)=="function");
4143}
4144catch(e){
4145return false;
4146}
4147};
4148MochiKit.Base.update(PlotKit.Base,{roundInterval:function(_1,_2,_3){
4149var _4=MochiKit.Format.roundToFixed;
4150var _5=_1/_2;
4151return parseFloat(_4(_5,_3));
4152},collapse:function(_6){
4153var m=MochiKit.Base;
4154var _8=new Array();
4155for(var i=0;i<_6.length;i++){
4156_8=m.concat(_8,_6[i]);
4157}
4158if(PlotKit.Base.usingPrototype()){
4159delete _8.extend;
4160delete _8.from;
4161delete _8.inspect;
4162}
4163return _8;
4164},uniq:function(_10){
4165var m=MochiKit.Base;
4166if(!m.isArrayLike(_10)||(_10.length<1)){
4167return new Array();
4168}
4169var _11=new Array();
4170var _12=_10[0];
4171_11.push(_10[0]);
4172for(var i=1;i<_10.length;i++){
4173if(m.compare(_10[i],_12)!=0){
4174_12=_10[i];
4175_11.push(_10[i]);
4176}
4177}
4178return _11;
4179},colorScheme:function(){
4180var mb=MochiKit.Base;
4181var mc=MochiKit.Color;
4182var _15=["red","orange","yellow","green","cyan","blue","purple","magenta"];
4183var _16=function(_17){
4184return mc.Color[_17+"Color"]();
4185};
4186return mb.map(_16,_15);
4187},baseDarkPrimaryColors:function(){
4188var _18=MochiKit.Color.Color.fromHexString;
4189return [_18("#ad3f40"),_18("#ddac2c"),_18("#dfdd0c"),_18("#5276c4"),_18("#739c5a")];
4190},basePrimaryColors:function(){
4191var _19=MochiKit.Color.Color.fromHexString;
4192return [_19("#d24c4d"),_19("#f2b32f"),_19("#ece90e"),_19("#5d83da"),_19("#78a15d")];
4193},baseBlueColors:function(){
4194var _20=MochiKit.Color.Color.fromHexString;
4195return [_20("#4b6b94"),_20("#5d81b4"),_20("#acbad2")];
4196},palette:function(_21,_22,_23,_24){
4197var _25=MochiKit.Base.isUndefinedOrNull;
4198var _26=new Array();
4199if(_25(_24)){
4200_24=0.1;
4201}
4202if(_25(_23)){
4203_23=0.4;
4204}
4205if(_25(_22)){
4206_22=-0.2;
4207}
4208var _27=_22;
4209while(_27<=_23){
4210_26.push(_27);
4211_27+=_24;
4212}
4213var _28=function(_29,_30){
4214return _29.lighterColorWithLevel(_30);
4215};
4216return MochiKit.Base.map(partial(_28,_21),_26);
4217},excanvasSupported:function(){
4218if(/MSIE/.test(navigator.userAgent)&&!window.opera){
4219return true;
4220}
4221return false;
4222},findPosX:function(obj){
4223var _32=0;
4224if(obj.offsetParent){
4225while(obj.offsetParent){
4226_32+=obj.offsetLeft;
4227obj=obj.offsetParent;
4228}
4229}else{
4230if(obj.x){
4231_32+=obj.x;
4232}
4233}
4234return _32;
4235},findPosY:function(obj){
4236var _33=0;
4237if(obj.offsetParent){
4238while(obj.offsetParent){
4239_33+=obj.offsetTop;
4240obj=obj.offsetParent;
4241}
4242}else{
4243if(obj.y){
4244_33+=obj.y;
4245}
4246}
4247return _33;
4248},isFuncLike:function(obj){
4249return (typeof (obj)=="function");
4250}});
4251PlotKit.Base.map=function(fn,lst){
4252if(PlotKit.Base.usingPrototype()){
4253var _36=[];
4254for(var x in lst){
4255if(typeof (lst[x])=="function"){
4256continue;
4257}
4258_36.push(fn(lst[x]));
4259}
4260return _36;
4261}else{
4262return MochiKit.Base.map(fn,lst);
4263}
4264};
4265PlotKit.Base.items=function(lst){
4266if(PlotKit.Base.usingPrototype()){
4267var _38=[];
4268for(var x in lst){
4269if(typeof (lst[x])=="function"){
4270continue;
4271}
4272_38.push([x,lst[x]]);
4273}
4274return _38;
4275}else{
4276return MochiKit.Base.items(lst);
4277}
4278};
4279PlotKit.Base.keys=function(lst){
4280if(PlotKit.Base.usingPrototype()){
4281var _39=[];
4282for(var x in lst){
4283if(typeof (lst[x])=="function"){
4284continue;
4285}
4286_39.push(x);
4287}
4288return _39;
4289}else{
4290return MochiKit.Base.keys(lst);
4291}
4292};
4293PlotKit.Base.baseColors=function(){
4294var _40=MochiKit.Color.Color.fromHexString;
4295return [_40("#476fb2"),_40("#be2c2b"),_40("#85b730"),_40("#734a99"),_40("#26a1c5"),_40("#fb8707"),_40("#000000")];
4296};
4297PlotKit.Base.officeBaseStyle={"axisLineWidth":2,"axisLabelColor":Color.grayColor(),"axisLineColor":Color.whiteColor(),"padding":{top:5,bottom:10,left:30,right:30}};
4298MochiKit.Base.update(PlotKit.Base,{officeBlue:function(){
4299var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),"backgroundColor":PlotKit.Base.baseColors()[0].lighterColorWithLevel(0.45)};
4300MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
4301return r;
4302},officeRed:function(){
4303var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[1]),"backgroundColor":PlotKit.Base.baseColors()[1].lighterColorWithLevel(0.5)};
4304MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
4305return r;
4306},officeGreen:function(){
4307var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[2]),"backgroundColor":PlotKit.Base.baseColors()[2].lighterColorWithLevel(0.5)};
4308MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
4309return r;
4310},officePurple:function(){
4311var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[3]),"backgroundColor":PlotKit.Base.baseColors()[3].lighterColorWithLevel(0.5)};
4312MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
4313return r;
4314},officeCyan:function(){
4315var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[4]),"backgroundColor":PlotKit.Base.baseColors()[4].lighterColorWithLevel(0.5)};
4316MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
4317return r;
4318},officeOrange:function(){
4319var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[5]),"backgroundColor":PlotKit.Base.baseColors()[5].lighterColorWithLevel(0.4)};
4320MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
4321return r;
4322},officeBlack:function(){
4323var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[6],0,0.6),"backgroundColor":PlotKit.Base.baseColors()[6].lighterColorWithLevel(0.9)};
4324MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
4325return r;
4326}});
4327PlotKit.Base.EXPORT=["baseColors","collapse","colorScheme","findPosX","findPosY","officeBaseStyle","officeBlue","officeRed","officeGreen","officePurple","officeCyan","officeOrange","officeBlack","roundInterval","uniq","isFuncLike","excanvasSupported"];
4328PlotKit.Base.EXPORT_OK=[];
4329PlotKit.Base.__new__=function(){
4330var m=MochiKit.Base;
4331m.nameFunctions(this);
4332this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
4333};
4334PlotKit.Base.__new__();
4335MochiKit.Base._exportSymbols(this,PlotKit.Base);
4336try{
4337if(typeof (PlotKit.Base)=="undefined"){
4338throw "";
4339}
4340}
4341catch(e){
4342throw "PlotKit.Layout depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.Base";
4343}
4344if(typeof (PlotKit.Layout)=="undefined"){
4345PlotKit.Layout={};
4346}
4347PlotKit.Layout.NAME="PlotKit.Layout";
4348PlotKit.Layout.VERSION=PlotKit.VERSION;
4349PlotKit.Layout.__repr__=function(){
4350return "["+this.NAME+" "+this.VERSION+"]";
4351};
4352PlotKit.Layout.toString=function(){
4353return this.__repr__();
4354};
4355PlotKit.Layout.valid_styles=["bar","line","pie","point"];
4356PlotKit.Layout=function(_42,_43){
4357this.options={"barWidthFillFraction":0.75,"barOrientation":"vertical","xOriginIsZero":true,"yOriginIsZero":true,"xAxis":null,"yAxis":null,"xTicks":null,"yTicks":null,"xNumberOfTicks":10,"yNumberOfTicks":5,"xTickPrecision":1,"yTickPrecision":1,"pieRadius":0.4};
4358this.style=_42;
4359MochiKit.Base.update(this.options,_43?_43:{});
4360if(!MochiKit.Base.isUndefinedOrNull(this.options.xAxis)){
4361this.minxval=this.options.xAxis[0];
4362this.maxxval=this.options.xAxis[1];
4363this.xscale=this.maxxval-this.minxval;
4364}else{
4365this.minxval=0;
4366this.maxxval=null;
4367this.xscale=null;
4368}
4369if(!MochiKit.Base.isUndefinedOrNull(this.options.yAxis)){
4370this.minyval=this.options.yAxis[0];
4371this.maxyval=this.options.yAxis[1];
4372this.yscale=this.maxyval-this.minyval;
4373}else{
4374this.minyval=0;
4375this.maxyval=null;
4376this.yscale=null;
4377}
4378this.bars=new Array();
4379this.points=new Array();
4380this.slices=new Array();
4381this.xticks=new Array();
4382this.yticks=new Array();
4383this.datasets=new Array();
4384this.minxdelta=0;
4385this.xrange=1;
4386this.yrange=1;
4387this.hitTestCache={x2maxy:null};
4388};
4389PlotKit.Layout.prototype.addDataset=function(_44,_45){
4390this.datasets[_44]=_45;
4391};
4392PlotKit.Layout.prototype.removeDataset=function(_46,_47){
4393delete this.datasets[_46];
4394};
4395PlotKit.Layout.prototype.addDatasetFromTable=function(_48,_49,_50,_51,_52){
4396var _53=MochiKit.Base.isUndefinedOrNull;
4397var _54=MochiKit.DOM.scrapeText;
4398var _55=MochiKit.Format.strip;
4399if(_53(_50)){
4400_50=0;
4401}
4402if(_53(_51)){
4403_51=1;
4404}
4405if(_53(_52)){
4406_52=-1;
4407}
4408var _56=_49.tBodies[0].rows;
4409var _57=new Array();
4410var _58=new Array();
4411if(!_53(_56)){
4412for(var i=0;i<_56.length;i++){
4413_57.push([parseFloat(_55(_54(_56[i].cells[_50]))),parseFloat(_55(_54(_56[i].cells[_51])))]);
4414if(_52>=0){
4415_58.push({v:parseFloat(_55(_54(_56[i].cells[_50]))),label:_55(_54(_56[i].cells[_52]))});
4416}
4417}
4418this.addDataset(_48,_57);
4419if(_52>=0){
4420this.options.xTicks=_58;
4421}
4422return true;
4423}
4424return false;
4425};
4426PlotKit.Layout.prototype.evaluate=function(){
4427this._evaluateLimits();
4428this._evaluateScales();
4429if(this.style=="bar"){
4430if(this.options.barOrientation=="horizontal"){
4431this._evaluateHorizBarCharts();
4432}else{
4433this._evaluateBarCharts();
4434}
4435this._evaluateBarTicks();
4436}else{
4437if(this.style=="line"){
4438this._evaluateLineCharts();
4439this._evaluateLineTicks();
4440}else{
4441if(this.style=="pie"){
4442this._evaluatePieCharts();
4443this._evaluatePieTicks();
4444}
4445}
4446}
4447};
4448PlotKit.Layout.prototype.hitTest=function(x,y){
4449var f=MochiKit.Format.twoDigitFloat;
4450if((this.style=="bar")&&this.bars&&(this.bars.length>0)){
4451for(var i=0;i<this.bars.length;i++){
4452var bar=this.bars[i];
4453if((x>=bar.x)&&(x<=bar.x+bar.w)&&(y>=bar.y)&&(y-bar.y<=bar.h)){
4454return bar;
4455}
4456}
4457}else{
4458if(this.style=="line"){
4459if(this.hitTestCache.x2maxy==null){
4460this._regenerateHitTestCache();
4461}
4462var _62=x/this.xscale;
4463var _63=this.hitTestCache.xvalues;
4464var _64=null;
4465var _65=null;
4466for(var i=1;i<_63.length;i++){
4467if(_63[i]>_62){
4468_64=_63[i-1];
4469_65=_63[i];
4470break;
4471}
4472}
4473if((_64!=null)){
4474var _66=this.hitTestCache.x2maxy[_64];
4475var _67=this.hitTestCache.x2maxy[_65];
4476var _68=(1-y)/this.yscale;
4477var _69=(_67-_66)/(_65-_64);
4478var _70=_66+_69*(_62-_64);
4479if(_70>=_68){
4480var obj={xval:_62,yval:_68,xafter:_65,yafter:_67,xbefore:_64,ybefore:_66,yprojected:_70};
4481return obj;
4482}
4483}
4484}else{
4485if(this.style=="pie"){
4486var _71=Math.sqrt((y-0.5)*(y-0.5)+(x-0.5)*(x-0.5));
4487if(_71>this.options.pieRadius){
4488return null;
4489}
4490var _72=Math.atan2(y-0.5,x-0.5)-Math.PI/2;
4491for(var i=0;i<this.slices.length;i++){
4492var _73=this.slices[i];
4493if(_73.startAngle<_72&&_73.endAngle>=_72){
4494return _73;
4495}
4496}
4497}
4498}
4499}
4500return null;
4501};
4502PlotKit.Layout.prototype.rectForX=function(x){
4503return null;
4504};
4505PlotKit.Layout.prototype.angleRangeForX=function(x){
4506return null;
4507};
4508PlotKit.Layout.prototype._evaluateLimits=function(){
4509var map=PlotKit.Base.map;
4510var _75=PlotKit.Base.items;
4511var _76=MochiKit.Base.itemgetter;
4512var _77=PlotKit.Base.collapse;
4513var _78=MochiKit.Base.listMin;
4514var _79=MochiKit.Base.listMax;
4515var _80=MochiKit.Base.isUndefinedOrNull;
4516var all=_77(map(_76(1),_75(this.datasets)));
4517if(_80(this.options.xAxis)){
4518if(this.options.xOriginIsZero){
4519this.minxval=0;
4520}else{
4521this.minxval=_78(map(parseFloat,map(_76(0),all)));
4522}
4523this.maxxval=_79(map(parseFloat,map(_76(0),all)));
4524}else{
4525this.minxval=this.options.xAxis[0];
4526this.maxxval=this.options.xAxis[1];
4527this.xscale=this.maxval-this.minxval;
4528}
4529if(_80(this.options.yAxis)){
4530if(this.options.yOriginIsZero){
4531this.minyval=0;
4532}else{
4533this.minyval=_78(map(parseFloat,map(_76(1),all)));
4534}
4535this.maxyval=_79(map(parseFloat,map(_76(1),all)));
4536}else{
4537this.minyval=this.options.yAxis[0];
4538this.maxyval=this.options.yAxis[1];
4539this.yscale=this.maxyval-this.minyval;
4540}
4541};
4542PlotKit.Layout.prototype._evaluateScales=function(){
4543var _82=MochiKit.Base.isUndefinedOrNull;
4544this.xrange=this.maxxval-this.minxval;
4545if(this.xrange==0){
4546this.xscale=1;
4547}else{
4548this.xscale=1/this.xrange;
4549}
4550this.yrange=this.maxyval-this.minyval;
4551if(this.yrange==0){
4552this.yscale=1;
4553}else{
4554this.yscale=1/this.yrange;
4555}
4556};
4557PlotKit.Layout.prototype._uniqueXValues=function(){
4558var _83=PlotKit.Base.collapse;
4559var map=PlotKit.Base.map;
4560var _84=PlotKit.Base.uniq;
4561var _85=MochiKit.Base.itemgetter;
4562var _86=PlotKit.Base.items;
4563var _87=map(parseFloat,map(_85(0),_83(map(_85(1),_86(this.datasets)))));
4564_87.sort(MochiKit.Base.compare);
4565return _84(_87);
4566};
4567PlotKit.Layout.prototype._evaluateBarCharts=function(){
4568var _88=PlotKit.Base.items;
4569var _89=_88(this.datasets).length;
4570var _90=10000000;
4571var _91=this._uniqueXValues();
4572for(var i=1;i<_91.length;i++){
4573_90=Math.min(Math.abs(_91[i]-_91[i-1]),_90);
4574}
4575var _92=0;
4576var _93=0;
4577var _94=0;
4578if(_91.length==1){
4579_90=1;
4580this.xscale=1;
4581this.minxval=_91[0];
4582_92=1*this.options.barWidthFillFraction;
4583_93=_92/_89;
4584_94=(1-this.options.barWidthFillFraction)/2;
4585}else{
4586if(this.xrange==1){
4587this.xscale=0.5;
4588}else{
4589if(this.xrange==2){
4590this.xscale=1/3;
4591}else{
4592this.xscale=(1-_90/this.xrange)/this.xrange;
4593}
4594}
4595_92=_90*this.xscale*this.options.barWidthFillFraction;
4596_93=_92/_89;
4597_94=_90*this.xscale*(1-this.options.barWidthFillFraction)/2;
4598}
4599this.minxdelta=_90;
4600this.bars=new Array();
4601var i=0;
4602for(var _95 in this.datasets){
4603var _96=this.datasets[_95];
4604if(PlotKit.Base.isFuncLike(_96)){
4605continue;
4606}
4607for(var j=0;j<_96.length;j++){
4608var _98=_96[j];
4609var _99={x:((parseFloat(_98[0])-this.minxval)*this.xscale)+(i*_93)+_94,y:1-((parseFloat(_98[1])-this.minyval)*this.yscale),w:_93,h:((parseFloat(_98[1])-this.minyval)*this.yscale),xval:parseFloat(_98[0]),yval:parseFloat(_98[1]),name:_95};
4610if((_99.x>=0)&&(_99.x<=1)&&(_99.y>=0)&&(_99.y<=1)){
4611this.bars.push(_99);
4612}
4613}
4614i++;
4615}
4616};
4617PlotKit.Layout.prototype._evaluateHorizBarCharts=function(){
4618var _100=PlotKit.Base.items;
4619var _101=_100(this.datasets).length;
4620var _102=10000000;
4621var _103=this._uniqueXValues();
4622for(var i=1;i<_103.length;i++){
4623_102=Math.min(Math.abs(_103[i]-_103[i-1]),_102);
4624}
4625var _104=0;
4626var _105=0;
4627var _106=0;
4628if(_103.length==1){
4629_102=1;
4630this.xscale=1;
4631this.minxval=_103[0];
4632_104=1*this.options.barWidthFillFraction;
4633_105=_104/_101;
4634_106=(1-this.options.barWidthFillFraction)/2;
4635}else{
4636this.xscale=(1-_102/this.xrange)/this.xrange;
4637_104=_102*this.xscale*this.options.barWidthFillFraction;
4638_105=_104/_101;
4639_106=_102*this.xscale*(1-this.options.barWidthFillFraction)/2;
4640}
4641this.minxdelta=_102;
4642this.bars=new Array();
4643var i=0;
4644for(var _107 in this.datasets){
4645var _108=this.datasets[_107];
4646if(PlotKit.Base.isFuncLike(_108)){
4647continue;
4648}
4649for(var j=0;j<_108.length;j++){
4650var item=_108[j];
4651var rect={y:((parseFloat(item[0])-this.minxval)*this.xscale)+(i*_105)+_106,x:0,h:_105,w:((parseFloat(item[1])-this.minyval)*this.yscale),xval:parseFloat(item[0]),yval:parseFloat(item[1]),name:_107};
4652if(rect.y<=0){
4653rect.y=0;
4654}
4655if(rect.y>=1){
4656rect.y=1;
4657}
4658if((rect.x>=0)&&(rect.x<=1)){
4659this.bars.push(rect);
4660}
4661}
4662i++;
4663}
4664};
4665PlotKit.Layout.prototype._evaluateLineCharts=function(){
4666var _111=PlotKit.Base.items;
4667var _112=_111(this.datasets).length;
4668this.points=new Array();
4669var i=0;
4670for(var _113 in this.datasets){
4671var _114=this.datasets[_113];
4672if(PlotKit.Base.isFuncLike(_114)){
4673continue;
4674}
4675_114.sort(function(a,b){
4676return compare(parseFloat(a[0]),parseFloat(b[0]));
4677});
4678for(var j=0;j<_114.length;j++){
4679var item=_114[j];
4680var _117={x:((parseFloat(item[0])-this.minxval)*this.xscale),y:1-((parseFloat(item[1])-this.minyval)*this.yscale),xval:parseFloat(item[0]),yval:parseFloat(item[1]),name:_113};
4681if(_117.y<=0){
4682_117.y=0;
4683}
4684if(_117.y>=1){
4685_117.y=1;
4686}
4687if((_117.x>=0)&&(_117.x<=1)){
4688this.points.push(_117);
4689}
4690}
4691i++;
4692}
4693};
4694PlotKit.Layout.prototype._evaluatePieCharts=function(){
4695var _118=PlotKit.Base.items;
4696var sum=MochiKit.Iter.sum;
4697var _120=MochiKit.Base.itemgetter;
4698var _121=_118(this.datasets).length;
4699var _122=_118(this.datasets)[0][1];
4700var _123=sum(map(_120(1),_122));
4701this.slices=new Array();
4702var _124=0;
4703for(var i=0;i<_122.length;i++){
4704var _125=_122[i][1]/_123;
4705var _126=_124*Math.PI*2;
4706var _127=(_124+_125)*Math.PI*2;
4707var _128={fraction:_125,xval:_122[i][0],yval:_122[i][1],startAngle:_126,endAngle:_127};
4708if(_122[i][1]!=0){
4709this.slices.push(_128);
4710}
4711_124+=_125;
4712}
4713};
4714PlotKit.Layout.prototype._evaluateLineTicksForXAxis=function(){
4715var _129=MochiKit.Base.isUndefinedOrNull;
4716if(this.options.xTicks){
4717this.xticks=new Array();
4718var _130=function(tick){
4719var _132=tick.label;
4720if(_129(_132)){
4721_132=tick.v.toString();
4722}
4723var pos=this.xscale*(tick.v-this.minxval);
4724if((pos>=0)&&(pos<=1)){
4725this.xticks.push([pos,_132]);
4726}
4727};
4728MochiKit.Iter.forEach(this.options.xTicks,bind(_130,this));
4729}else{
4730if(this.options.xNumberOfTicks){
4731var _134=this._uniqueXValues();
4732var _135=this.xrange/this.options.xNumberOfTicks;
4733var _136=0;
4734this.xticks=new Array();
4735for(var i=0;i<=_134.length;i++){
4736if((_134[i]-this.minxval)>=(_136*_135)){
4737var pos=this.xscale*(_134[i]-this.minxval);
4738if((pos>1)||(pos<0)){
4739continue;
4740}
4741this.xticks.push([pos,_134[i]]);
4742_136++;
4743}
4744if(_136>this.options.xNumberOfTicks){
4745break;
4746}
4747}
4748}
4749}
4750};
4751PlotKit.Layout.prototype._evaluateLineTicksForYAxis=function(){
4752var _137=MochiKit.Base.isUndefinedOrNull;
4753if(this.options.yTicks){
4754this.yticks=new Array();
4755var _138=function(tick){
4756var _139=tick.label;
4757if(_137(_139)){
4758_139=tick.v.toString();
4759}
4760var pos=1-(this.yscale*(tick.v-this.minyval));
4761if((pos>=0)&&(pos<=1)){
4762this.yticks.push([pos,_139]);
4763}
4764};
4765MochiKit.Iter.forEach(this.options.yTicks,bind(_138,this));
4766}else{
4767if(this.options.yNumberOfTicks){
4768this.yticks=new Array();
4769var _140=PlotKit.Base.roundInterval;
4770var prec=this.options.yTickPrecision;
4771var _142=_140(this.yrange,this.options.yNumberOfTicks,prec);
4772for(var i=0;i<=this.options.yNumberOfTicks;i++){
4773var yval=this.minyval+(i*_142);
4774var pos=1-((yval-this.minyval)*this.yscale);
4775if((pos>1)||(pos<0)){
4776continue;
4777}
4778this.yticks.push([pos,MochiKit.Format.roundToFixed(yval,prec)]);
4779}
4780}
4781}
4782};
4783PlotKit.Layout.prototype._evaluateLineTicks=function(){
4784this._evaluateLineTicksForXAxis();
4785this._evaluateLineTicksForYAxis();
4786};
4787PlotKit.Layout.prototype._evaluateBarTicks=function(){
4788this._evaluateLineTicks();
4789var _144=function(tick){
4790return [tick[0]+(this.minxdelta*this.xscale)/2,tick[1]];
4791};
4792this.xticks=MochiKit.Base.map(bind(_144,this),this.xticks);
4793if(this.options.barOrientation=="horizontal"){
4794var _145=this.xticks;
4795this.xticks=this.yticks;
4796this.yticks=_145;
4797var _146=function(tick){
4798return [1-tick[0],tick[1]];
4799};
4800this.xticks=MochiKit.Base.map(_146,this.xticks);
4801}
4802};
4803PlotKit.Layout.prototype._evaluatePieTicks=function(){
4804var _147=MochiKit.Base.isUndefinedOrNull;
4805var _148=MochiKit.Format.numberFormatter("#%");
4806this.xticks=new Array();
4807if(this.options.xTicks){
4808var _149=new Array();
4809for(var i=0;i<this.slices.length;i++){
4810_149[this.slices[i].xval]=this.slices[i];
4811}
4812for(var i=0;i<this.options.xTicks.length;i++){
4813var tick=this.options.xTicks[i];
4814var _150=_149[tick.v];
4815var _151=tick.label;
4816if(_150){
4817if(_147(_151)){
4818_151=tick.v.toString();
4819}
4820_151+=" ("+_148(_150.fraction)+")";
4821this.xticks.push([tick.v,_151]);
4822}
4823}
4824}else{
4825for(var i=0;i<this.slices.length;i++){
4826var _150=this.slices[i];
4827var _151=_150.xval+" ("+_148(_150.fraction)+")";
4828this.xticks.push([_150.xval,_151]);
4829}
4830}
4831};
4832PlotKit.Layout.prototype._regenerateHitTestCache=function(){
4833this.hitTestCache.xvalues=this._uniqueXValues();
4834this.hitTestCache.xlookup=new Array();
4835this.hitTestCache.x2maxy=new Array();
4836var _152=MochiKit.Base.listMax;
4837var _153=MochiKit.Base.itemgetter;
4838var map=MochiKit.Base.map;
4839var _154=keys(this.datasets);
4840for(var i=0;i<_154.length;i++){
4841var _155=this.datasets[_154[i]];
4842for(var j=0;j<_155.length;j++){
4843var xval=_155[j][0];
4844var yval=_155[j][1];
4845if(this.hitTestCache.xlookup[xval]){
4846this.hitTestCache.xlookup[xval].push([yval,_154[i]]);
4847}else{
4848this.hitTestCache.xlookup[xval]=[[yval,_154[i]]];
4849}
4850}
4851}
4852for(var x in this.hitTestCache.xlookup){
4853var _157=this.hitTestCache.xlookup[x];
4854this.hitTestCache.x2maxy[x]=_152(map(_153(0),_157));
4855}
4856};
4857PlotKit.LayoutModule={};
4858PlotKit.LayoutModule.Layout=PlotKit.Layout;
4859PlotKit.LayoutModule.EXPORT=["Layout"];
4860PlotKit.LayoutModule.EXPORT_OK=[];
4861PlotKit.LayoutModule.__new__=function(){
4862var m=MochiKit.Base;
4863m.nameFunctions(this);
4864this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
4865};
4866PlotKit.LayoutModule.__new__();
4867MochiKit.Base._exportSymbols(this,PlotKit.LayoutModule);
4868try{
4869if((typeof (PlotKit.Base)=="undefined")||(typeof (PlotKit.Layout)=="undefined")){
4870throw "";
4871}
4872}
4873catch(e){
4874throw "PlotKit.Layout depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.{Base,Layout}";
4875}
4876if(typeof (PlotKit.CanvasRenderer)=="undefined"){
4877PlotKit.CanvasRenderer={};
4878}
4879PlotKit.CanvasRenderer.NAME="PlotKit.CanvasRenderer";
4880PlotKit.CanvasRenderer.VERSION=PlotKit.VERSION;
4881PlotKit.CanvasRenderer.__repr__=function(){
4882return "["+this.NAME+" "+this.VERSION+"]";
4883};
4884PlotKit.CanvasRenderer.toString=function(){
4885return this.__repr__();
4886};
4887PlotKit.CanvasRenderer=function(_158,_159,_160){
4888if(arguments.length>0){
4889this.__init__(_158,_159,_160);
4890}
4891};
4892PlotKit.CanvasRenderer.prototype.__init__=function(_161,_162,_163){
4893var _164=MochiKit.Base.isUndefinedOrNull;
4894var _165=MochiKit.Color.Color;
4895this.options={"drawBackground":true,"backgroundColor":_165.whiteColor(),"padding":{left:30,right:30,top:5,bottom:10},"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),"strokeColor":_165.whiteColor(),"strokeColorTransform":"asStrokeColor","strokeWidth":0.5,"shouldFill":true,"shouldStroke":true,"drawXAxis":true,"drawYAxis":true,"axisLineColor":_165.blackColor(),"axisLineWidth":0.5,"axisTickSize":3,"axisLabelColor":_165.blackColor(),"axisLabelFont":"Arial","axisLabelFontSize":9,"axisLabelWidth":50,"pieRadius":0.4,"enableEvents":true};
4896MochiKit.Base.update(this.options,_163?_163:{});
4897this.layout=_162;
4898this.element=MochiKit.DOM.getElement(_161);
4899this.container=this.element.parentNode;
4900this.isIE=PlotKit.Base.excanvasSupported();
4901if(this.isIE&&!_164(G_vmlCanvasManager)){
4902this.IEDelay=0.5;
4903this.maxTries=5;
4904this.renderDelay=null;
4905this.clearDelay=null;
4906this.element=G_vmlCanvasManager.initElement(this.element);
4907}
4908this.height=this.element.height;
4909this.width=this.element.width;
4910if(_164(this.element)){
4911throw "CanvasRenderer() - passed canvas is not found";
4912}
4913if(!this.isIE&&!(PlotKit.CanvasRenderer.isSupported(this.element))){
4914throw "CanvasRenderer() - Canvas is not supported.";
4915}
4916if(_164(this.container)||(this.container.nodeName.toLowerCase()!="div")){
4917throw "CanvasRenderer() - <canvas> needs to be enclosed in <div>";
4918}
4919this.xlabels=new Array();
4920this.ylabels=new Array();
4921this.isFirstRender=true;
4922this.area={x:this.options.padding.left,y:this.options.padding.top,w:this.width-this.options.padding.left-this.options.padding.right,h:this.height-this.options.padding.top-this.options.padding.bottom};
4923MochiKit.DOM.updateNodeAttributes(this.container,{"style":{"position":"relative","width":this.width+"px"}});
4924};
4925PlotKit.CanvasRenderer.prototype.render=function(){
4926if(this.isIE){
4927try{
4928if(this.renderDelay){
4929this.renderDelay.cancel();
4930this.renderDelay=null;
4931}
4932var _166=this.element.getContext("2d");
4933}
4934catch(e){
4935this.isFirstRender=false;
4936if(this.maxTries-->0){
4937this.renderDelay=MochiKit.Async.wait(this.IEDelay);
4938this.renderDelay.addCallback(bind(this.render,this));
4939}
4940return;
4941}
4942}
4943if(this.options.drawBackground){
4944this._renderBackground();
4945}
4946if(this.layout.style=="bar"){
4947this._renderBarChart();
4948this._renderBarAxis();
4949}else{
4950if(this.layout.style=="pie"){
4951this._renderPieChart();
4952this._renderPieAxis();
4953}else{
4954if(this.layout.style=="line"){
4955this._renderLineChart();
4956this._renderLineAxis();
4957}
4958}
4959}
4960};
4961PlotKit.CanvasRenderer.prototype._renderBarChartWrap=function(data,_168){
4962var _169=this.element.getContext("2d");
4963var _170=this.options.colorScheme.length;
4964var _171=this.options.colorScheme;
4965var _172=MochiKit.Base.keys(this.layout.datasets);
4966var _173=_172.length;
4967for(var i=0;i<_173;i++){
4968var _174=_172[i];
4969var _175=_171[i%_170];
4970_169.save();
4971_169.fillStyle=_175.toRGBString();
4972if(this.options.strokeColor){
4973_169.strokeStyle=this.options.strokeColor.toRGBString();
4974}else{
4975if(this.options.strokeColorTransform){
4976_169.strokeStyle=_175[this.options.strokeColorTransform]().toRGBString();
4977}
4978}
4979_169.lineWidth=this.options.strokeWidth;
4980var _176=function(obj){
4981if(obj.name==_174){
4982_168(_169,obj);
4983}
4984};
4985MochiKit.Iter.forEach(data,bind(_176,this));
4986_169.restore();
4987}
4988};
4989PlotKit.CanvasRenderer.prototype._renderBarChart=function(){
4990var bind=MochiKit.Base.bind;
4991var _178=function(_179,bar){
4992var x=this.area.w*bar.x+this.area.x;
4993var y=this.area.h*bar.y+this.area.y;
4994var w=this.area.w*bar.w;
4995var h=this.area.h*bar.h;
4996if((w<1)||(h<1)){
4997return;
4998}
4999if(this.options.shouldFill){
5000_179.fillRect(x,y,w,h);
5001}
5002if(this.options.shouldStroke){
5003_179.strokeRect(x,y,w,h);
5004}
5005};
5006this._renderBarChartWrap(this.layout.bars,bind(_178,this));
5007};
5008PlotKit.CanvasRenderer.prototype._renderLineChart=function(){
5009var _182=this.element.getContext("2d");
5010var _183=this.options.colorScheme.length;
5011var _184=this.options.colorScheme;
5012var _185=MochiKit.Base.keys(this.layout.datasets);
5013var _186=_185.length;
5014var bind=MochiKit.Base.bind;
5015var _187=MochiKit.Base.partial;
5016for(var i=0;i<_186;i++){
5017var _188=_185[i];
5018var _189=_184[i%_183];
5019var _190=this.options.strokeColorTransform;
5020_182.save();
5021_182.fillStyle=_189.toRGBString();
5022if(this.options.strokeColor){
5023_182.strokeStyle=this.options.strokeColor.toRGBString();
5024}else{
5025if(this.options.strokeColorTransform){
5026_182.strokeStyle=_189[_190]().toRGBString();
5027}
5028}
5029_182.lineWidth=this.options.strokeWidth;
5030var _191=function(ctx){
5031ctx.beginPath();
5032ctx.moveTo(this.area.x,this.area.y+this.area.h);
5033var _193=function(ctx_,_195){
5034if(_195.name==_188){
5035ctx_.lineTo(this.area.w*_195.x+this.area.x,this.area.h*_195.y+this.area.y);
5036}
5037};
5038MochiKit.Iter.forEach(this.layout.points,_187(_193,ctx),this);
5039ctx.lineTo(this.area.w+this.area.x,this.area.h+this.area.y);
5040ctx.lineTo(this.area.x,this.area.y+this.area.h);
5041ctx.closePath();
5042};
5043if(this.options.shouldFill){
5044bind(_191,this)(_182);
5045_182.fill();
5046}
5047if(this.options.shouldStroke){
5048bind(_191,this)(_182);
5049_182.stroke();
5050}
5051_182.restore();
5052}
5053};
5054PlotKit.CanvasRenderer.prototype._renderPieChart=function(){
5055var _196=this.element.getContext("2d");
5056var _197=this.options.colorScheme.length;
5057var _198=this.layout.slices;
5058var _199=this.area.x+this.area.w*0.5;
5059var _200=this.area.y+this.area.h*0.5;
5060var _201=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);
5061if(this.isIE){
5062_199=parseInt(_199);
5063_200=parseInt(_200);
5064_201=parseInt(_201);
5065}
5066for(var i=0;i<_198.length;i++){
5067var _202=this.options.colorScheme[i%_197];
5068_196.save();
5069_196.fillStyle=_202.toRGBString();
5070var _203=function(){
5071_196.beginPath();
5072_196.moveTo(_199,_200);
5073_196.arc(_199,_200,_201,_198[i].startAngle-Math.PI/2,_198[i].endAngle-Math.PI/2,false);
5074_196.lineTo(_199,_200);
5075_196.closePath();
5076};
5077if(Math.abs(_198[i].startAngle-_198[i].endAngle)>0.001){
5078if(this.options.shouldFill){
5079_203();
5080_196.fill();
5081}
5082if(this.options.shouldStroke){
5083_203();
5084_196.lineWidth=this.options.strokeWidth;
5085if(this.options.strokeColor){
5086_196.strokeStyle=this.options.strokeColor.toRGBString();
5087}else{
5088if(this.options.strokeColorTransform){
5089_196.strokeStyle=_202[this.options.strokeColorTransform]().toRGBString();
5090}
5091}
5092_196.stroke();
5093}
5094}
5095_196.restore();
5096}
5097};
5098PlotKit.CanvasRenderer.prototype._renderBarAxis=function(){
5099this._renderAxis();
5100};
5101PlotKit.CanvasRenderer.prototype._renderLineAxis=function(){
5102this._renderAxis();
5103};
5104PlotKit.CanvasRenderer.prototype._renderAxis=function(){
5105if(!this.options.drawXAxis&&!this.options.drawYAxis){
5106return;
5107}
5108var _204=this.element.getContext("2d");
5109var _205={"style":{"position":"absolute","fontSize":this.options.axisLabelFontSize+"px","zIndex":10,"color":this.options.axisLabelColor.toRGBString(),"width":this.options.axisLabelWidth+"px","overflow":"hidden"}};
5110_204.save();
5111_204.strokeStyle=this.options.axisLineColor.toRGBString();
5112_204.lineWidth=this.options.axisLineWidth;
5113if(this.options.drawYAxis){
5114if(this.layout.yticks){
5115var _206=function(tick){
5116if(typeof (tick)=="function"){
5117return;
5118}
5119var x=this.area.x;
5120var y=this.area.y+tick[0]*this.area.h;
5121_204.beginPath();
5122_204.moveTo(x,y);
5123_204.lineTo(x-this.options.axisTickSize,y);
5124_204.closePath();
5125_204.stroke();
5126var _207=DIV(_205,tick[1]);
5127_207.style.top=(y-this.options.axisLabelFontSize)+"px";
5128_207.style.left=(x-this.options.padding.left-this.options.axisTickSize)+"px";
5129_207.style.textAlign="right";
5130_207.style.width=(this.options.padding.left-this.options.axisTickSize*2)+"px";
5131MochiKit.DOM.appendChildNodes(this.container,_207);
5132this.ylabels.push(_207);
5133};
5134MochiKit.Iter.forEach(this.layout.yticks,bind(_206,this));
5135}
5136_204.beginPath();
5137_204.moveTo(this.area.x,this.area.y);
5138_204.lineTo(this.area.x,this.area.y+this.area.h);
5139_204.closePath();
5140_204.stroke();
5141}
5142if(this.options.drawXAxis){
5143if(this.layout.xticks){
5144var _206=function(tick){
5145if(typeof (dataset)=="function"){
5146return;
5147}
5148var x=this.area.x+tick[0]*this.area.w;
5149var y=this.area.y+this.area.h;
5150_204.beginPath();
5151_204.moveTo(x,y);
5152_204.lineTo(x,y+this.options.axisTickSize);
5153_204.closePath();
5154_204.stroke();
5155var _208=DIV(_205,tick[1]);
5156_208.style.top=(y+this.options.axisTickSize)+"px";
5157_208.style.left=(x-this.options.axisLabelWidth/2)+"px";
5158_208.style.textAlign="center";
5159_208.style.width=this.options.axisLabelWidth+"px";
5160MochiKit.DOM.appendChildNodes(this.container,_208);
5161this.xlabels.push(_208);
5162};
5163MochiKit.Iter.forEach(this.layout.xticks,bind(_206,this));
5164}
5165_204.beginPath();
5166_204.moveTo(this.area.x,this.area.y+this.area.h);
5167_204.lineTo(this.area.x+this.area.w,this.area.y+this.area.h);
5168_204.closePath();
5169_204.stroke();
5170}
5171_204.restore();
5172};
5173PlotKit.CanvasRenderer.prototype._renderPieAxis=function(){
5174if(!this.options.drawXAxis){
5175return;
5176}
5177if(this.layout.xticks){
5178var _209=new Array();
5179for(var i=0;i<this.layout.slices.length;i++){
5180_209[this.layout.slices[i].xval]=this.layout.slices[i];
5181}
5182var _210=this.area.x+this.area.w*0.5;
5183var _211=this.area.y+this.area.h*0.5;
5184var _212=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);
5185var _213=this.options.axisLabelWidth;
5186for(var i=0;i<this.layout.xticks.length;i++){
5187var _214=_209[this.layout.xticks[i][0]];
5188if(MochiKit.Base.isUndefinedOrNull(_214)){
5189continue;
5190}
5191var _215=(_214.startAngle+_214.endAngle)/2;
5192var _216=_215;
5193if(_216>Math.PI*2){
5194_216=_216-Math.PI*2;
5195}else{
5196if(_216<0){
5197_216=_216+Math.PI*2;
5198}
5199}
5200var _217=_210+Math.sin(_216)*(_212+10);
5201var _218=_211-Math.cos(_216)*(_212+10);
5202var _219={"position":"absolute","zIndex":11,"width":_213+"px","fontSize":this.options.axisLabelFontSize+"px","overflow":"hidden","color":this.options.axisLabelColor.toHexString()};
5203if(_216<=Math.PI*0.5){
5204_219["textAlign"]="left";
5205_219["verticalAlign"]="top";
5206_219["left"]=_217+"px";
5207_219["top"]=(_218-this.options.axisLabelFontSize)+"px";
5208}else{
5209if((_216>Math.PI*0.5)&&(_216<=Math.PI)){
5210_219["textAlign"]="left";
5211_219["verticalAlign"]="bottom";
5212_219["left"]=_217+"px";
5213_219["top"]=_218+"px";
5214}else{
5215if((_216>Math.PI)&&(_216<=Math.PI*1.5)){
5216_219["textAlign"]="right";
5217_219["verticalAlign"]="bottom";
5218_219["left"]=(_217-_213)+"px";
5219_219["top"]=_218+"px";
5220}else{
5221_219["textAlign"]="right";
5222_219["verticalAlign"]="bottom";
5223_219["left"]=(_217-_213)+"px";
5224_219["top"]=(_218-this.options.axisLabelFontSize)+"px";
5225}
5226}
5227}
5228var _220=DIV({"style":_219},this.layout.xticks[i][1]);
5229this.xlabels.push(_220);
5230MochiKit.DOM.appendChildNodes(this.container,_220);
5231}
5232}
5233};
5234PlotKit.CanvasRenderer.prototype._renderBackground=function(){
5235var _221=this.element.getContext("2d");
5236_221.save();
5237_221.fillStyle=this.options.backgroundColor.toRGBString();
5238_221.fillRect(0,0,this.width,this.height);
5239_221.restore();
5240};
5241PlotKit.CanvasRenderer.prototype.clear=function(){
5242if(this.isIE){
5243try{
5244if(this.clearDelay){
5245this.clearDelay.cancel();
5246this.clearDelay=null;
5247}
5248var _222=this.element.getContext("2d");
5249}
5250catch(e){
5251this.isFirstRender=false;
5252this.clearDelay=MochiKit.Async.wait(this.IEDelay);
5253this.clearDelay.addCallback(bind(this.clear,this));
5254return;
5255}
5256}
5257var _222=this.element.getContext("2d");
5258_222.clearRect(0,0,this.width,this.height);
5259MochiKit.Iter.forEach(this.xlabels,MochiKit.DOM.removeElement);
5260MochiKit.Iter.forEach(this.ylabels,MochiKit.DOM.removeElement);
5261this.xlabels=new Array();
5262this.ylabels=new Array();
5263};
5264PlotKit.CanvasRenderer.prototype._initialiseEvents=function(){
5265var _223=MochiKit.Signal.connect;
5266var bind=MochiKit.Base.bind;
5267_223(this.element,"onclick",bind(this.onclick,this));
5268};
5269PlotKit.CanvasRenderer.prototype._resolveObject=function(e){
5270var x=(e.mouse().page.x-PlotKit.Base.findPosX(this.element)-this.area.x)/this.area.w;
5271var y=(e.mouse().page.y-PlotKit.Base.findPosY(this.element)-this.area.y)/this.area.h;
5272var _225=this.layout.hitTest(x,y);
5273if(_225){
5274return _225;
5275}
5276return null;
5277};
5278PlotKit.CanvasRenderer.prototype._createEventObject=function(_226,e){
5279if(_226==null){
5280return null;
5281}
5282e.chart=_226;
5283return e;
5284};
5285PlotKit.CanvasRenderer.prototype.onclick=function(e){
5286var _227=this._resolveObject(e);
5287var _228=this._createEventObject(_227,e);
5288if(_228!=null){
5289MochiKit.Signal.signal(this,"onclick",_228);
5290}
5291};
5292PlotKit.CanvasRenderer.prototype.onmouseover=function(e){
5293var _229=this._resolveObject(e);
5294var _230=this._createEventObject(_229,e);
5295if(_230!=null){
5296signal(this,"onmouseover",_230);
5297}
5298};
5299PlotKit.CanvasRenderer.prototype.onmouseout=function(e){
5300var _231=this._resolveObject(e);
5301var _232=this._createEventObject(_231,e);
5302if(_232==null){
5303signal(this,"onmouseout",e);
5304}else{
5305signal(this,"onmouseout",_232);
5306}
5307};
5308PlotKit.CanvasRenderer.prototype.onmousemove=function(e){
5309var _233=this._resolveObject(e);
5310var _234=this._createEventObject(_233,e);
5311if((_233==null)&&(this.event_isinside==null)){
5312return;
5313}
5314if((_233!=null)&&(this.event_isinside==null)){
5315signal(this,"onmouseover",_234);
5316}
5317if((_233==null)&&(this.event_isinside!=null)){
5318signal(this,"onmouseout",_234);
5319}
5320if((_233!=null)&&(this.event_isinside!=null)){
5321signal(this,"onmousemove",_234);
5322}
5323this.event_isinside=_233;
5324};
5325PlotKit.CanvasRenderer.isSupported=function(_235){
5326var _236=null;
5327try{
5328if(MochiKit.Base.isUndefinedOrNull(_235)){
5329_236=MochiKit.DOM.CANVAS({});
5330}else{
5331_236=MochiKit.DOM.getElement(_235);
5332}
5333var _237=_236.getContext("2d");
5334}
5335catch(e){
5336var ie=navigator.appVersion.match(/MSIE (\d\.\d)/);
5337var _239=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
5338if((!ie)||(ie[1]<6)||(_239)){
5339return false;
5340}
5341return true;
5342}
5343return true;
5344};
5345PlotKit.Canvas={};
5346PlotKit.Canvas.CanvasRenderer=PlotKit.CanvasRenderer;
5347PlotKit.Canvas.EXPORT=["CanvasRenderer"];
5348PlotKit.Canvas.EXPORT_OK=["CanvasRenderer"];
5349PlotKit.Canvas.__new__=function(){
5350var m=MochiKit.Base;
5351m.nameFunctions(this);
5352this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
5353};
5354PlotKit.Canvas.__new__();
5355MochiKit.Base._exportSymbols(this,PlotKit.Canvas);
6a1aa64f
DV
5356
5357
b2a516b8
DV
5358DateGraphLayout=function(_1){
5359PlotKit.Layout.call(this,"line",_1);
6a1aa64f 5360};
b2a516b8
DV
5361DateGraphLayout.prototype=new PlotKit.Layout();
5362DateGraphLayout.prototype.evaluateWithError=function(){
5363this.evaluate();
5364if(!this.options.errorBars){
5365return;
5366}
5367var i=0;
5368for(var _3 in this.datasets){
5369var j=0;
5370var _5=this.datasets[_3];
5371if(PlotKit.Base.isFuncLike(_5)){
5372continue;
5373}
5374for(var j=0;j<_5.length;j++,i++){
5375var _6=_5[j];
5376var xv=parseFloat(_6[0]);
5377var yv=parseFloat(_6[1]);
5378if(xv==this.points[i].xval&&yv==this.points[i].yval){
5379this.points[i].errorMinus=parseFloat(_6[2]);
5380this.points[i].errorPlus=parseFloat(_6[3]);
5381}
5382}
5383}
6a1aa64f 5384};
b2a516b8
DV
5385DateGraphLayout.prototype.removeAllDatasets=function(){
5386delete this.datasets;
5387this.datasets=new Array();
6a1aa64f 5388};
b2a516b8
DV
5389DateGraphLayout.prototype.updateOptions=function(_9){
5390MochiKit.Base.update(this.options,_9?_9:{});
5391};
5392DateGraphCanvasRenderer=function(_10,_11,_12){
5393PlotKit.CanvasRenderer.call(this,_10,_11,_12);
5394this.options.shouldFill=false;
5395this.options.shouldStroke=true;
5396this.options.drawYGrid=true;
5397this.options.drawXGrid=true;
5398this.options.gridLineColor=MochiKit.Color.Color.grayColor();
5399MochiKit.Base.update(this.options,_12);
5400this.options.drawBackground=false;
5401};
5402DateGraphCanvasRenderer.prototype=new PlotKit.CanvasRenderer();
5403DateGraphCanvasRenderer.prototype.render=function(){
5404this._renderLineChart();
5405this._renderLineAxis();
5406var ctx=this.element.getContext("2d");
5407if(this.options.drawYGrid){
5408var _14=this.layout.yticks;
5409ctx.save();
5410ctx.strokeStyle=this.options.gridLineColor.toRGBString();
5411ctx.lineWidth=this.options.axisLineWidth;
5412for(var i=0;i<_14.length;i++){
5413var x=this.area.x;
5414var y=this.area.y+_14[i][0]*this.area.h;
5415ctx.beginPath();
5416ctx.moveTo(x,y);
5417ctx.lineTo(x+this.area.w,y);
5418ctx.closePath();
5419ctx.stroke();
5420}
5421}
5422if(this.options.drawXGrid){
5423var _14=this.layout.xticks;
5424ctx.save();
5425ctx.strokeStyle=this.options.gridLineColor.toRGBString();
5426ctx.lineWidth=this.options.axisLineWidth;
5427for(var i=0;i<_14.length;i++){
5428var x=this.area.x+_14[i][0]*this.area.w;
5429var y=this.area.y+this.area.h;
5430ctx.beginPath();
5431ctx.moveTo(x,y);
5432ctx.lineTo(x,this.area.y);
5433ctx.closePath();
5434ctx.stroke();
5435}
5436}
5437};
5438DateGraphCanvasRenderer.prototype._renderLineChart=function(){
5439var _17=this.element.getContext("2d");
5440var _18=this.options.colorScheme.length;
5441var _19=this.options.colorScheme;
5442var _20=MochiKit.Base.keys(this.layout.datasets);
5443var _21=this.layout.options.errorBars;
5444var _22=_20.length;
5445var _23=MochiKit.Base.bind;
5446var _24=MochiKit.Base.partial;
5447var _25=function(_26){
5448_26.canvasx=this.area.w*_26.x+this.area.x;
5449_26.canvasy=this.area.h*_26.y+this.area.y;
5450};
5451MochiKit.Iter.forEach(this.layout.points,_25,this);
5452var _27=function(ctx){
5453for(var i=0;i<_22;i++){
5454var _28=_20[i];
5455var _29=_19[i%_18];
5456var _30=this.options.strokeColorTransform;
5457_17.save();
5458_17.strokeStyle=_29.toRGBString();
5459_17.lineWidth=this.options.strokeWidth;
5460ctx.beginPath();
5461var _31=this.layout.points[0];
5462var _32=true;
5463var _33=function(_34,_31){
5464if(_31.name==_28){
5465if(_32){
5466_34.moveTo(_31.canvasx,_31.canvasy);
5467}else{
5468_34.lineTo(_31.canvasx,_31.canvasy);
5469}
5470_32=false;
5471}
5472};
5473MochiKit.Iter.forEach(this.layout.points,_24(_33,ctx),this);
5474ctx.stroke();
5475}
5476};
5477var _35=function(ctx){
5478for(var i=0;i<_22;i++){
5479var _36=_20[i];
5480var _37=_19[i%_18];
5481var _38=this.options.strokeColorTransform;
5482_17.save();
5483_17.strokeStyle=_37.toRGBString();
5484_17.lineWidth=this.options.strokeWidth;
5485var _39=-1;
5486var _40=[-1,-1];
5487var _41=0;
5488var _42=this.layout.yscale;
5489var _43=function(_44,_45){
5490_41++;
5491if(_45.name==_36){
5492var _46=[_45.y-_45.errorPlus*_42,_45.y+_45.errorMinus*_42];
5493_46[0]=this.area.h*_46[0]+this.area.y;
5494_46[1]=this.area.h*_46[1]+this.area.y;
5495if(_39>=0){
5496_44.moveTo(_39,_40[0]);
5497_44.lineTo(_45.canvasx,_46[0]);
5498_44.lineTo(_45.canvasx,_46[1]);
5499_44.lineTo(_39,_40[1]);
5500_44.closePath();
5501}
5502_40[0]=_46[0];
5503_40[1]=_46[1];
5504_39=_45.canvasx;
5505}
5506};
5507var _47=_37.colorWithAlpha(0.15);
5508ctx.fillStyle=_47.toRGBString();
5509ctx.beginPath();
5510MochiKit.Iter.forEach(this.layout.points,_24(_43,ctx),this);
5511ctx.fill();
5512}
6a1aa64f 5513};
b2a516b8
DV
5514if(_21){
5515_23(_35,this)(_17);
5516}
5517_23(_27,this)(_17);
5518_17.restore();
6a1aa64f 5519};
b2a516b8
DV
5520DateGraph=function(div,_49,_50,_51){
5521if(arguments.length>0){
5522this.__init__(div,_49,_50,_51);
5523}
6a1aa64f 5524};
b2a516b8
DV
5525DateGraph.NAME="DateGraph";
5526DateGraph.VERSION="1.1";
5527DateGraph.__repr__=function(){
5528return "["+this.NAME+" "+this.VERSION+"]";
6a1aa64f 5529};
b2a516b8
DV
5530DateGraph.toString=function(){
5531return this.__repr__();
6a1aa64f 5532};
b2a516b8
DV
5533DateGraph.DEFAULT_ROLL_PERIOD=1;
5534DateGraph.DEFAULT_WIDTH=480;
5535DateGraph.DEFAULT_HEIGHT=320;
5536DateGraph.DEFAULT_STROKE_WIDTH=1;
5537DateGraph.AXIS_LINE_WIDTH=0.3;
5538DateGraph.prototype.__init__=function(div,_52,_53,_54){
5539this.maindiv_=div;
5540this.labels_=_53;
5541this.file_=_52;
5542this.rollPeriod_=_54.rollPeriod||DateGraph.DEFAULT_ROLL_PERIOD;
5543this.previousVerticalX_=-1;
5544this.width_=parseInt(div.style.width,10);
5545this.height_=parseInt(div.style.height,10);
5546this.errorBars_=_54.errorBars||false;
5547this.fractions_=_54.fractions||false;
5548this.strokeWidth_=_54.strokeWidth||DateGraph.DEFAULT_STROKE_WIDTH;
5549this.dateWindow_=_54.dateWindow||null;
5550this.valueRange_=_54.valueRange||null;
5551this.labelsSeparateLines=_54.labelsSeparateLines||false;
5552this.labelsDiv_=_54.labelsDiv||null;
5553this.labelsKMB_=_54.labelsKMB||false;
5554this.minTickSize_=_54.minTickSize||0;
5555this.xValueParser_=_54.xValueParser||DateGraph.prototype.dateParser;
5556this.xValueFormatter_=_54.xValueFormatter||DateGraph.prototype.dateString_;
5557this.xTicker_=_54.xTicker||DateGraph.prototype.dateTicker;
5558this.sigma_=_54.sigma||2;
5559this.wilsonInterval_=_54.wilsonInterval||true;
5560this.customBars_=_54.customBars||false;
5561this.attrs_=_54;
5562this.labelsFromCSV_=(this.labels_==null);
5563if(this.labels_==null){
5564this.labels_=[];
5565}
5566this.clickCallback_=_54.clickCallback||null;
5567this.zoomCallback_=_54.zoomCallback||null;
5568this.createInterface_();
5569this.layoutOptions_={"errorBars":(this.errorBars_||this.customBars_),"xOriginIsZero":false};
5570MochiKit.Base.update(this.layoutOptions_,_54);
5571this.setColors_(_54);
5572this.layout_=new DateGraphLayout(this.layoutOptions_);
5573this.renderOptions_={colorScheme:this.colors_,strokeColor:null,strokeWidth:this.strokeWidth_,axisLabelFontSize:14,axisLineWidth:DateGraph.AXIS_LINE_WIDTH};
5574MochiKit.Base.update(this.renderOptions_,_54);
5575this.plotter_=new DateGraphCanvasRenderer(this.hidden_,this.layout_,this.renderOptions_);
5576this.createStatusMessage_();
5577this.createRollInterface_();
5578this.createDragInterface_();
5579connect(window,"onload",this,function(e){
5580this.start_();
5581});
6a1aa64f 5582};
b2a516b8
DV
5583DateGraph.prototype.rollPeriod=function(){
5584return this.rollPeriod_;
5585};
5586DateGraph.prototype.createInterface_=function(){
5587var _56=this.maindiv_;
5588this.graphDiv=MochiKit.DOM.DIV({style:{"width":this.width_+"px","height":this.height_+"px"}});
5589appendChildNodes(_56,this.graphDiv);
5590var _57=MochiKit.DOM.CANVAS;
5591this.canvas_=_57({style:{"position":"absolute"},width:this.width_,height:this.height_});
5592appendChildNodes(this.graphDiv,this.canvas_);
5593this.hidden_=this.createPlotKitCanvas_(this.canvas_);
5594connect(this.hidden_,"onmousemove",this,function(e){
5595this.mouseMove_(e);
5596});
5597connect(this.hidden_,"onmouseout",this,function(e){
5598this.mouseOut_(e);
5599});
6a1aa64f 5600};
b2a516b8
DV
5601DateGraph.prototype.createPlotKitCanvas_=function(_58){
5602var h=document.createElement("canvas");
5603h.style.position="absolute";
5604h.style.top=_58.style.top;
5605h.style.left=_58.style.left;
5606h.width=this.width_;
5607h.height=this.height_;
5608MochiKit.DOM.appendChildNodes(this.graphDiv,h);
5609return h;
5610};
5611DateGraph.prototype.setColors_=function(_60){
5612var num=this.labels_.length;
5613this.colors_=[];
5614if(!_60.colors){
5615var sat=_60.colorSaturation||1;
5616var val=_60.colorValue||0.5;
5617for(var i=1;i<=num;i++){
5618var hue=(1*i/(1+num));
5619this.colors_.push(MochiKit.Color.Color.fromHSV(hue,sat,val));
5620}
5621}else{
5622for(var i=0;i<num;i++){
5623var _65=_60.colors[i%_60.colors.length];
5624this.colors_.push(MochiKit.Color.Color.fromString(_65));
5625}
5626}
5627};
5628DateGraph.prototype.createStatusMessage_=function(){
5629if(!this.labelsDiv_){
5630var _66=250;
5631var _67={"style":{"position":"absolute","fontSize":"14px","zIndex":10,"width":_66+"px","top":"0px","left":this.width_-_66+"px","background":"white","textAlign":"left","overflow":"hidden"}};
5632this.labelsDiv_=MochiKit.DOM.DIV(_67);
5633MochiKit.DOM.appendChildNodes(this.graphDiv,this.labelsDiv_);
5634}
5635};
5636DateGraph.prototype.createRollInterface_=function(){
5637var _68=this.plotter_.options.padding;
5638var _69={"type":"text","size":"2","value":this.rollPeriod_,"style":{"position":"absolute","zIndex":10,"top":(this.height_-25-_68.bottom)+"px","left":(_68.left+1)+"px"}};
5639var _70=MochiKit.DOM.INPUT(_69);
5640var pa=this.graphDiv;
5641MochiKit.DOM.appendChildNodes(pa,_70);
5642connect(_70,"onchange",this,function(){
5643this.adjustRoll(_70.value);
5644});
5645return _70;
5646};
5647DateGraph.prototype.createDragInterface_=function(){
5648var _72=this;
5649var _73=false;
5650var _74=null;
5651var _75=null;
5652var _76=null;
5653var _77=null;
5654var _78=null;
5655var px=PlotKit.Base.findPosX(this.canvas_);
5656var py=PlotKit.Base.findPosY(this.canvas_);
5657var _81=function(e){
5658return e.mouse().page.x-px;
5659};
5660var _82=function(e){
5661return e.mouse().page.y-py;
5662};
5663connect(this.hidden_,"onmousemove",function(_83){
5664if(_73){
5665_76=_81(_83);
5666_77=_82(_83);
5667_72.drawZoomRect_(_74,_76,_78);
5668_78=_76;
6a1aa64f 5669}
b2a516b8
DV
5670});
5671connect(this.hidden_,"onmousedown",function(_84){
5672_73=true;
5673_74=_81(_84);
5674_75=_82(_84);
5675});
5676connect(document,"onmouseup",this,function(_85){
5677if(_73){
5678_73=false;
5679_74=null;
5680_75=null;
6a1aa64f 5681}
b2a516b8
DV
5682});
5683connect(this.hidden_,"onmouseout",this,function(_86){
5684if(_73){
5685_76=null;
5686_77=null;
6a1aa64f 5687}
b2a516b8
DV
5688});
5689connect(this.hidden_,"onmouseup",this,function(_87){
5690if(_73){
5691_73=false;
5692_76=_81(_87);
5693_77=_82(_87);
5694var _88=Math.abs(_76-_74);
5695var _89=Math.abs(_77-_75);
5696if(_88<2&&_89<2&&_72.clickCallback_!=null&&_72.lastx_!=undefined){
5697_72.clickCallback_(_87,new Date(_72.lastx_));
6a1aa64f 5698}
b2a516b8
DV
5699if(_88>=10){
5700_72.doZoom_(Math.min(_74,_76),Math.max(_74,_76));
5701}else{
5702_72.canvas_.getContext("2d").clearRect(0,0,_72.canvas_.width,_72.canvas_.height);
5703}
5704_74=null;
5705_75=null;
5706}
5707});
5708connect(this.hidden_,"ondblclick",this,function(_90){
5709_72.dateWindow_=null;
5710_72.drawGraph_(_72.rawData_);
5711var _91=_72.rawData_[0][0];
5712var _92=_72.rawData_[_72.rawData_.length-1][0];
5713_72.zoomCallback_(_91,_92);
5714});
6a1aa64f 5715};
b2a516b8
DV
5716DateGraph.prototype.drawZoomRect_=function(_93,_94,_95){
5717var ctx=this.canvas_.getContext("2d");
5718if(_95){
5719ctx.clearRect(Math.min(_93,_95),0,Math.abs(_93-_95),this.height_);
5720}
5721if(_94&&_93){
5722ctx.fillStyle="rgba(128,128,128,0.33)";
5723ctx.fillRect(Math.min(_93,_94),0,Math.abs(_94-_93),this.height_);
5724}
5725};
5726DateGraph.prototype.doZoom_=function(_96,_97){
5727var _98=this.layout_.points;
5728var _99=null;
5729var _100=null;
5730for(var i=0;i<_98.length;i++){
5731var cx=_98[i].canvasx;
5732var x=_98[i].xval;
5733if(cx<_96&&(_99==null||x>_99)){
5734_99=x;
5735}
5736if(cx>_97&&(_100==null||x<_100)){
5737_100=x;
5738}
5739}
5740if(_99==null){
5741_99=_98[0].xval;
5742}
5743if(_100==null){
5744_100=_98[_98.length-1].xval;
5745}
5746this.dateWindow_=[_99,_100];
5747this.drawGraph_(this.rawData_);
5748this.zoomCallback_(_99,_100);
5749};
5750DateGraph.prototype.mouseMove_=function(_102){
5751var _103=_102.mouse().page.x-PlotKit.Base.findPosX(this.hidden_);
5752var _104=this.layout_.points;
5753var _105=-1;
5754var _106=-1;
5755var _107=1e+100;
5756var idx=-1;
5757for(var i=0;i<_104.length;i++){
5758var dist=Math.abs(_104[i].canvasx-_103);
5759if(dist>_107){
5760break;
5761}
5762_107=dist;
5763idx=i;
5764}
5765if(idx>=0){
5766_105=_104[idx].xval;
5767}
5768if(_103>_104[_104.length-1].canvasx){
5769_105=_104[_104.length-1].xval;
5770}
5771var _110=[];
5772for(var i=0;i<_104.length;i++){
5773if(_104[i].xval==_105){
5774_110.push(_104[i]);
5775}
5776}
5777var _111=3;
5778var ctx=this.canvas_.getContext("2d");
5779if(this.previousVerticalX_>=0){
5780var px=this.previousVerticalX_;
5781ctx.clearRect(px-_111-1,0,2*_111+2,this.height_);
5782}
5783if(_110.length>0){
5784var _103=_110[0].canvasx;
5785var _112=this.xValueFormatter_(_105)+":";
5786var clen=this.colors_.length;
5787for(var i=0;i<_110.length;i++){
5788if(this.labelsSeparateLines){
5789_112+="<br/>";
5790}
5791var _114=_110[i];
5792_112+=" <b><font color='"+this.colors_[i%clen].toHexString()+"'>"+_114.name+"</font></b>:"+this.round_(_114.yval,2);
5793}
5794this.labelsDiv_.innerHTML=_112;
5795this.lastx_=_105;
5796ctx.save();
5797for(var i=0;i<_110.length;i++){
5798ctx.beginPath();
5799ctx.fillStyle=this.colors_[i%clen].toRGBString();
5800ctx.arc(_103,_110[i%clen].canvasy,_111,0,360,false);
5801ctx.fill();
5802}
5803ctx.restore();
5804this.previousVerticalX_=_103;
5805}
6a1aa64f 5806};
b2a516b8
DV
5807DateGraph.prototype.mouseOut_=function(_115){
5808var ctx=this.canvas_.getContext("2d");
5809ctx.clearRect(0,0,this.width_,this.height_);
5810this.labelsDiv_.innerHTML="";
6a1aa64f 5811};
b2a516b8
DV
5812DateGraph.prototype.dateString_=function(date){
5813var d=new Date(date);
5814var year=""+d.getFullYear();
5815var _119=""+(d.getMonth()+1);
5816if(_119.length<2){
5817_119="0"+_119;
5818}
5819var day=""+d.getDate();
5820if(day.length<2){
5821day="0"+day;
5822}
5823return year+"/"+_119+"/"+day;
6a1aa64f 5824};
b2a516b8
DV
5825DateGraph.prototype.round_=function(num,_121){
5826var _122=Math.pow(10,_121);
5827return Math.round(num*_122)/_122;
6a1aa64f 5828};
b2a516b8
DV
5829DateGraph.prototype.loadedEvent_=function(data){
5830this.rawData_=this.parseCSV_(data);
5831this.drawGraph_(this.rawData_);
6a1aa64f 5832};
b2a516b8
DV
5833DateGraph.prototype.months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5834DateGraph.prototype.quarters=["Jan","Apr","Jul","Oct"];
5835DateGraph.prototype.addXTicks_=function(){
5836var _124,endDate;
5837if(this.dateWindow_){
5838_124=this.dateWindow_[0];
5839endDate=this.dateWindow_[1];
5840}else{
5841_124=this.rawData_[0][0];
5842endDate=this.rawData_[this.rawData_.length-1][0];
5843}
5844var _125=this.xTicker_(_124,endDate);
5845this.layout_.updateOptions({xTicks:_125});
6a1aa64f 5846};
b2a516b8
DV
5847DateGraph.prototype.dateTicker=function(_126,_127){
5848var _128=24*60*60*1000;
5849_126=_126/_128;
5850_127=_127/_128;
5851var _129=_127-_126;
5852var _130=[];
5853var _131=false;
5854var _132=1;
5855if(_129>30*366){
5856_131=true;
5857_130=["Jan"];
5858_132=10;
5859}else{
5860if(_129>4*366){
5861_130=["Jan"];
5862_131=true;
5863}else{
5864if(_129>366){
5865_130=this.quarters;
5866_131=true;
5867}else{
5868if(_129>40){
5869_130=this.months;
5870_131=true;
5871}else{
5872if(_129>10){
5873for(var week=_126-14;week<_127+14;week+=7){
5874_130.push(week*_128);
5875}
5876}else{
5877for(var day=_126-14;day<_127+14;day+=1){
5878_130.push(day*_128);
5879}
5880}
5881}
5882}
5883}
5884}
5885var _134=[];
5886if(_131){
5887var _135=1900+(new Date(_126*_128)).getYear();
5888var _136=1900+(new Date(_127*_128)).getYear();
5889for(var i=_135;i<=_136;i++){
5890if(i%_132!=0){
5891continue;
5892}
5893for(var j=0;j<_130.length;j++){
5894var date=Date.parse(_130[j]+" 1, "+i);
5895_134.push({label:_130[j]+"'"+(""+i).substr(2,2),v:date});
5896}
5897}
5898}else{
5899for(var i=0;i<_130.length;i++){
5900var date=new Date(_130[i]);
5901var year=date.getFullYear().toString();
5902var _137=this.months[date.getMonth()]+date.getDate();
5903_137+="'"+year.substr(year.length-2,2);
5904_134.push({label:_137,v:date});
5905}
5906}
5907return _134;
6a1aa64f 5908};
b2a516b8
DV
5909DateGraph.prototype.numericTicks=function(minV,maxV){
5910var _140;
5911if(maxV<=0){
5912_140=1;
5913}else{
5914_140=Math.pow(10,Math.floor(Math.log(maxV)/Math.log(10)));
6a1aa64f 5915}
b2a516b8
DV
5916var _141=(maxV-minV)/_140;
5917while(2*_141<20){
5918_141*=2;
5919}
5920if((maxV-minV)/_141<this.minTickSize_){
5921_141=this.round_((maxV-minV)/this.minTickSize_,1);
5922}
5923var _142=[];
5924for(var i=0;i<=_141;i++){
5925var _143=minV+i*(maxV-minV)/_141;
5926var _144=this.round_(_143,2);
5927if(this.labelsKMB_){
5928var k=1000;
5929if(_143>=k*k*k){
5930_144=this.round_(_143/(k*k*k),1)+"B";
5931}else{
5932if(_143>=k*k){
5933_144=this.round_(_143/(k*k),1)+"M";
5934}else{
5935if(_143>=k){
5936_144=this.round_(_143/k,1)+"K";
5937}
5938}
5939}
5940}
5941_142.push({label:_144,v:_143});
5942}
5943return _142;
6a1aa64f 5944};
b2a516b8
DV
5945DateGraph.prototype.addYTicks_=function(minY,maxY){
5946var _148=this.numericTicks(minY,maxY);
5947this.layout_.updateOptions({yAxis:[minY,maxY],yTicks:_148});
6a1aa64f 5948};
b2a516b8
DV
5949DateGraph.prototype.drawGraph_=function(data){
5950var maxY=null;
5951this.layout_.removeAllDatasets();
5952for(var i=1;i<data[0].length;i++){
5953var _149=[];
5954for(var j=0;j<data.length;j++){
5955var date=data[j][0];
5956_149[j]=[date,data[j][i]];
5957}
5958_149=this.rollingAverage(_149,this.rollPeriod_);
5959var bars=this.errorBars_||this.customBars_;
5960if(this.dateWindow_){
5961var low=this.dateWindow_[0];
5962var high=this.dateWindow_[1];
5963var _153=[];
5964for(var k=0;k<_149.length;k++){
5965if(_149[k][0]>=low&&_149[k][0]<=high){
5966_153.push(_149[k]);
5967var y=bars?_149[k][1][0]:_149[k][1];
5968if(maxY==null||y>maxY){
5969maxY=y;
5970}
5971}
5972}
5973_149=_153;
5974}else{
5975for(var j=0;j<_149.length;j++){
5976var y=bars?_149[j][1][0]:_149[j][1];
5977if(maxY==null||y>maxY){
5978maxY=bars?y+_149[j][1][1]:y;
5979}
5980}
5981}
5982if(bars){
5983var vals=[];
5984for(var j=0;j<_149.length;j++){
5985vals[j]=[_149[j][0],_149[j][1][0],_149[j][1][1],_149[j][1][2]];
5986}
5987this.layout_.addDataset(this.labels_[i-1],vals);
5988}else{
5989this.layout_.addDataset(this.labels_[i-1],_149);
5990}
5991}
5992if(this.valueRange_!=null){
5993this.addYTicks_(this.valueRange_[0],this.valueRange_[1]);
5994}else{
5995maxY*=1.1;
5996if(maxY<=0){
5997maxY=1;
5998}else{
5999var _155=Math.pow(10,Math.floor(Math.log(maxY)/Math.log(10)));
6000maxY=_155*Math.ceil(maxY/_155);
6001}
6002this.addYTicks_(0,maxY);
6003}
6004this.addXTicks_();
6005this.layout_.evaluateWithError();
6006this.plotter_.clear();
6007this.plotter_.render();
6008this.canvas_.getContext("2d").clearRect(0,0,this.canvas_.width,this.canvas_.height);
6a1aa64f 6009};
b2a516b8
DV
6010DateGraph.prototype.rollingAverage=function(_156,_157){
6011if(_156.length<2){
6012return _156;
6013}
6014var _157=Math.min(_157,_156.length-1);
6015var _158=[];
6016var _159=this.sigma_;
6017if(this.fractions_){
6018var num=0;
6019var den=0;
6020var mult=100;
6021for(var i=0;i<_156.length;i++){
6022num+=_156[i][1][0];
6023den+=_156[i][1][1];
6024if(i-_157>=0){
6025num-=_156[i-_157][1][0];
6026den-=_156[i-_157][1][1];
6027}
6028var date=_156[i][0];
6029var _162=den?num/den:0;
6030if(this.errorBars_){
6031if(this.wilsonInterval_){
6032if(den){
6033var p=_162<0?0:_162,n=den;
6034var pm=_159*Math.sqrt(p*(1-p)/n+_159*_159/(4*n*n));
6035var _165=1+_159*_159/den;
6036var low=(p+_159*_159/(2*den)-pm)/_165;
6037var high=(p+_159*_159/(2*den)+pm)/_165;
6038_158[i]=[date,[p*mult,(p-low)*mult,(high-p)*mult]];
6039}else{
6040_158[i]=[date,[0,0,0]];
6041}
6042}else{
6043var _166=den?_159*Math.sqrt(_162*(1-_162)/den):1;
6044_158[i]=[date,[mult*_162,mult*_166,mult*_166]];
6045}
6046}else{
6047_158[i]=[date,mult*_162];
6048}
6049}
6050}else{
6051if(this.customBars_){
6052for(var i=0;i<_156.length;i++){
6053var data=_156[i][1];
6054var y=data[1];
6055_158[i]=[_156[i][0],[y,y-data[0],data[2]-y]];
6056}
6057}else{
6058var _167=Math.min(_157-1,_156.length-2);
6059if(!this.errorBars_){
6060for(var i=0;i<_167;i++){
6061var sum=0;
6062for(var j=0;j<i+1;j++){
6063sum+=_156[j][1];
6064}
6065_158[i]=[_156[i][0],sum/(i+1)];
6066}
6067for(var i=Math.min(_157-1,_156.length-2);i<_156.length;i++){
6068var sum=0;
6069for(var j=i-_157+1;j<i+1;j++){
6070sum+=_156[j][1];
6071}
6072_158[i]=[_156[i][0],sum/_157];
6073}
6074}else{
6075for(var i=0;i<_167;i++){
6076var sum=0;
6077var _169=0;
6078for(var j=0;j<i+1;j++){
6079sum+=_156[j][1][0];
6080_169+=Math.pow(_156[j][1][1],2);
6081}
6082var _166=Math.sqrt(_169)/(i+1);
6083_158[i]=[_156[i][0],[sum/(i+1),_159*_166,_159*_166]];
6084}
6085for(var i=Math.min(_157-1,_156.length-2);i<_156.length;i++){
6086var sum=0;
6087var _169=0;
6088for(var j=i-_157+1;j<i+1;j++){
6089sum+=_156[j][1][0];
6090_169+=Math.pow(_156[j][1][1],2);
6091}
6092var _166=Math.sqrt(_169)/_157;
6093_158[i]=[_156[i][0],[sum/_157,_159*_166,_159*_166]];
6094}
6095}
6096}
6097}
6098return _158;
6a1aa64f 6099};
b2a516b8
DV
6100DateGraph.prototype.dateParser=function(_170){
6101var _171;
6102if(_170.search("-")!=-1){
6103_171=_170.replace("-","/","g");
6104}else{
6105if(_170.search("/")!=-1){
6106return Date.parse(_170);
6107}else{
6108_171=_170.substr(0,4)+"/"+_170.substr(4,2)+"/"+_170.substr(6,2);
6109}
6110}
6111return Date.parse(_171);
6a1aa64f 6112};
b2a516b8
DV
6113DateGraph.prototype.parseCSV_=function(data){
6114var ret=[];
6115var _173=data.split("\n");
6116var _174=this.labelsFromCSV_?1:0;
6117if(this.labelsFromCSV_){
6118var _175=_173[0].split(",");
6119_175.shift();
6120this.labels_=_175;
6121this.setColors_(this.attrs_);
6122this.renderOptions_.colorScheme=this.colors_;
6123MochiKit.Base.update(this.plotter_.options,this.renderOptions_);
6124MochiKit.Base.update(this.layoutOptions_,this.attrs_);
6125}
6126for(var i=_174;i<_173.length;i++){
6127var line=_173[i];
6128if(line.length==0){
6129continue;
6130}
6131var _177=line.split(",");
6132if(_177.length<2){
6133continue;
6134}
6135var _178=[];
6136_178[0]=this.xValueParser_(_177[0]);
6137if(this.fractions_){
6138for(var j=1;j<_177.length;j++){
6139var vals=_177[j].split("/");
6140_178[j]=[parseFloat(vals[0]),parseFloat(vals[1])];
6141}
6142}else{
6143if(this.errorBars_){
6144for(var j=1;j<_177.length;j+=2){
6145_178[(j+1)/2]=[parseFloat(_177[j]),parseFloat(_177[j+1])];
6146}
6147}else{
6148if(this.customBars_){
6149for(var j=1;j<_177.length;j++){
6150var vals=_177[j].split(";");
6151_178[j]=[parseFloat(vals[0]),parseFloat(vals[1]),parseFloat(vals[2])];
6152}
6153}else{
6154for(var j=1;j<_177.length;j++){
6155_178[j]=parseFloat(_177[j]);
6156}
6157}
6158}
6159}
6160ret.push(_178);
6161}
6162return ret;
6a1aa64f 6163};
b2a516b8
DV
6164DateGraph.prototype.start_=function(){
6165if(typeof this.file_=="function"){
6166this.loadedEvent_(this.file_());
6167}else{
6168var req=new XMLHttpRequest();
6169var _180=this;
6170req.onreadystatechange=function(){
6171if(req.readyState==4){
6172if(req.status==200){
6173_180.loadedEvent_(req.responseText);
6174}
6175}
6a1aa64f 6176};
b2a516b8
DV
6177req.open("GET",this.file_,true);
6178req.send(null);
6179}
6a1aa64f 6180};
b2a516b8
DV
6181DateGraph.prototype.updateOptions=function(_181){
6182if(_181.errorBars){
6183this.errorBars_=_181.errorBars;
6184}
6185if(_181.customBars){
6186this.customBars_=_181.customBars;
6187}
6188if(_181.strokeWidth){
6189this.strokeWidth_=_181.strokeWidth;
6190}
6191if(_181.rollPeriod){
6192this.rollPeriod_=_181.rollPeriod;
6193}
6194if(_181.dateWindow){
6195this.dateWindow_=_181.dateWindow;
6196}
6197if(_181.valueRange){
6198this.valueRange_=_181.valueRange;
6199}
6200if(_181.minTickSize){
6201this.minTickSize_=_181.minTickSize;
6202}
6203if(typeof (_181.labels)!="undefined"){
6204this.labels_=_181.labels;
6205this.labelsFromCSV_=(_181.labels==null);
6206}
6207this.layout_.updateOptions({"errorBars":this.errorBars_});
6208if(_181["file"]&&_181["file"]!=this.file_){
6209this.file_=_181["file"];
6210this.start_();
6211}else{
6212this.drawGraph_(this.rawData_);
6213}
6a1aa64f 6214};
b2a516b8
DV
6215DateGraph.prototype.adjustRoll=function(_182){
6216this.rollPeriod_=_182;
6217this.drawGraph_(this.rawData_);
6a1aa64f 6218};
b2a516b8 6219