Changeset 31

Show
Ignore:
Timestamp:
04/06/06 13:59:06 (2 years ago)
Author:
al
Message:

Made context passing in line and bar chart plotting less crazy. Added EasyPlot? which boils down plotting charts to a single function, with primitive ajax support.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plotkit/trunk/PlotKit/Canvas.js

    r19 r31  
    252252         
    253253        // create paths 
    254         var makePath = function() { 
    255             context.beginPath(); 
    256             context.moveTo(this.area.x, this.area.y + this.area.h); 
    257             var addPoint = function(context, point) { 
     254        var makePath = function(ctx) { 
     255            ctx.beginPath(); 
     256            ctx.moveTo(this.area.x, this.area.y + this.area.h); 
     257            var addPoint = function(ctx_, point) { 
    258258            if (point.name == setName) 
    259                 context.lineTo(this.area.w * point.x + this.area.x, 
    260                                this.area.h * point.y + this.area.y); 
     259                ctx_.lineTo(this.area.w * point.x + this.area.x, 
     260                            this.area.h * point.y + this.area.y); 
    261261            }; 
    262             MochiKit.Iter.forEach(this.layout.points, partial(addPoint, context), this); 
    263             context.lineTo(this.area.w + this.area.x, 
     262            MochiKit.Iter.forEach(this.layout.points, partial(addPoint, ctx), this); 
     263            ctx.lineTo(this.area.w + this.area.x, 
    264264                           this.area.h + this.area.y); 
    265             context.lineTo(this.area.x, this.area.y + this.area.h); 
    266             context.closePath(); 
     265            ctx.lineTo(this.area.x, this.area.y + this.area.h); 
     266            ctx.closePath(); 
    267267        }; 
    268268 
    269269        if (this.options.shouldFill) { 
    270             bind(makePath, this)(); 
     270            bind(makePath, this)(context); 
    271271            context.fill(); 
    272272        } 
    273273        if (this.options.shouldStroke) { 
    274             bind(makePath, this)(); 
     274            bind(makePath, this)(context); 
    275275            context.stroke(); 
    276276        } 
  • plotkit/trunk/PlotKit/PlotKit.js

    r19 r31  
    8383     
    8484} else { 
    85     if (typeof(MochiKit.__compat__) == 'undefined') { 
    86         MochiKit.__compat__ = true; 
     85    if (typeof(PlotKit.__compat__) == 'undefined') { 
     86        PlotKit.__compat__ = true; 
    8787    } 
    8888    (function () { 
     89        if (typeof(document) == "undefined") { 
     90              return; 
     91        } 
     92         
    8993        var scripts = document.getElementsByTagName("script"); 
    9094        var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
     
    105109 
    106110        } 
     111 
    107112        if (base === null) { 
    108113            return; 
     
    110115        var modules = PlotKit.PlotKit.SUBMODULES; 
    111116        for (var i = 0; i < modules.length; i++) { 
    112             if (MochiKit[modules[i]]) { 
     117            if (PlotKit[modules[i]]) { 
    113118                continue; 
    114119            } 
  • plotkit/trunk/PlotKit/PlotKit_Packed.js

    r21 r31  
    209209PlotKit.Layout.valid_styles=["bar","line","pie","point"]; 
    210210PlotKit.Layout=function(_36,_37){ 
    211 this.options={"barWidthFillFraction":0.75,"xOriginIsZero":true,"yOriginIsZero":true,"xAxis":null,"yAxis":null,"xTicks":null,"yTicks":null,"xNumberOfTicks":10,"yNumberOfTicks":5,"xTickPrecision":1,"yTickPrecision":3,"pieRadius":0.4}; 
     211this.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":3,"pieRadius":0.4}; 
    212212this.style=_36; 
    213213MochiKit.Base.update(this.options,_37?_37:{}); 
     
    272272this._evaluateScales(); 
    273273if(this.style=="bar"){ 
     274if(this.options.barOrientation=="horizontal"){ 
     275this._evaluateHorizBarCharts(); 
     276}else{ 
    274277this._evaluateBarCharts(); 
     278} 
    275279this._evaluateBarTicks(); 
    276280}else{ 
     
    434438} 
    435439}; 
    436 PlotKit.Layout.prototype._evaluateLineCharts=function(){ 
     440PlotKit.Layout.prototype._evaluateHorizBarCharts=function(){ 
    437441var _93=MochiKit.Base.keys; 
    438442var _94=MochiKit.Base.items; 
    439443var _95=_93(this.datasets).length; 
     444var _96=10000000; 
     445var _97=this._uniqueXValues(); 
     446for(var i=1;i<_97.length;i++){ 
     447_96=Math.min(Math.abs(_97[i]-_97[i-1]),_96); 
     448} 
     449var _98=0; 
     450var _99=0; 
     451var _100=0; 
     452if(_97.length==1){ 
     453_96=1; 
     454this.xscale=1; 
     455this.minxval=_97[0]; 
     456_98=1*this.options.barWidthFillFraction; 
     457_99=_98/_95; 
     458_100=(1-this.options.barWidthFillFraction)/2; 
     459}else{ 
     460this.xscale=(1-_96/this.xrange)/this.xrange; 
     461_98=_96*this.xscale*this.options.barWidthFillFraction; 
     462_99=_98/_95; 
     463_100=_96*this.xscale*(1-this.options.barWidthFillFraction)/2; 
     464} 
     465this.minxdelta=_96; 
     466this.bars=new Array(); 
     467var i=0; 
     468for(var _101 in this.datasets){ 
     469var _102=this.datasets[_101]; 
     470for(var j=0;j<_102.length;j++){ 
     471var item=_102[j]; 
     472var rect={y:((parseFloat(item[0])-this.minxval)*this.xscale)+(i*_99)+_100,x:0,h:_99,w:((parseFloat(item[1])-this.minyval)*this.yscale),xval:parseFloat(item[0]),yval:parseFloat(item[1]),name:_101}; 
     473this.bars.push(rect); 
     474} 
     475i++; 
     476} 
     477}; 
     478PlotKit.Layout.prototype._evaluateLineCharts=function(){ 
     479var keys=MochiKit.Base.keys; 
     480var _106=MochiKit.Base.items; 
     481var _107=keys(this.datasets).length; 
    440482this.points=new Array(); 
    441483var i=0; 
    442 for(var _96 in this.datasets){ 
    443 var _97=this.datasets[_96]; 
    444 _97.sort(function(a,b){ 
     484for(var _108 in this.datasets){ 
     485var _109=this.datasets[_108]; 
     486_109.sort(function(a,b){ 
    445487return compare(parseFloat(a[0]),parseFloat(b[0])); 
    446488}); 
    447 for(var j=0;j<_97.length;j++){ 
    448 var item=_97[j]; 
    449 var _101={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:_96}; 
    450 this.points.push(_101); 
     489for(var j=0;j<_109.length;j++){ 
     490var item=_109[j]; 
     491var _112={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:_108}; 
     492this.points.push(_112); 
    451493} 
    452494i++; 
     
    454496}; 
    455497PlotKit.Layout.prototype._evaluatePieCharts=function(){ 
    456 var _102=MochiKit.Base.items; 
     498var _113=MochiKit.Base.items; 
    457499var sum=MochiKit.Iter.sum; 
    458 var _104=MochiKit.Base.itemgetter; 
    459 var _105=keys(this.datasets).length; 
    460 var _106=_102(this.datasets)[0][1]; 
    461 var _107=sum(map(_104(1),_106)); 
     500var _115=MochiKit.Base.itemgetter; 
     501var _116=keys(this.datasets).length; 
     502var _117=_113(this.datasets)[0][1]; 
     503var _118=sum(map(_115(1),_117)); 
    462504this.slices=new Array(); 
    463 var _108=0; 
    464 for(var i=0;i<_106.length;i++){ 
    465 var _109=_106[i][1]/_107
    466 var _110=_108*Math.PI*2; 
    467 var _111=(_108+_109)*Math.PI*2; 
    468 var _112={fraction:_109,xval:_106[i][0],yval:_106[i][1],startAngle:_110,endAngle:_111}; 
    469 this.slices.push(_112); 
    470 _108+=_109
     505var _119=0; 
     506for(var i=0;i<_117.length;i++){ 
     507var _120=_117[i][1]/_118
     508var _121=_119*Math.PI*2; 
     509var _122=(_119+_120)*Math.PI*2; 
     510var _123={fraction:_120,xval:_117[i][0],yval:_117[i][1],startAngle:_121,endAngle:_122}; 
     511this.slices.push(_123); 
     512_119+=_120
    471513} 
    472514}; 
    473515PlotKit.Layout.prototype._evaluateLineTicksForXAxis=function(){ 
    474 var _113=MochiKit.Base.isUndefinedOrNull; 
     516var _124=MochiKit.Base.isUndefinedOrNull; 
    475517if(this.options.xTicks){ 
    476518this.xticks=new Array(); 
    477 var _114=function(tick){ 
    478 var _116=tick.label; 
    479 if(_113(_116)){ 
    480 _116=tick.v.toString(); 
     519var _125=function(tick){ 
     520var _127=tick.label; 
     521if(_124(_127)){ 
     522_127=tick.v.toString(); 
    481523} 
    482524var pos=this.xscale*(tick.v-this.minxval); 
    483 this.xticks.push([pos,_116]); 
    484 }; 
    485 MochiKit.Iter.forEach(this.options.xTicks,bind(_114,this)); 
     525this.xticks.push([pos,_127]); 
     526}; 
     527MochiKit.Iter.forEach(this.options.xTicks,bind(_125,this)); 
    486528}else{ 
    487529if(this.options.xNumberOfTicks){ 
    488 var _118=this._uniqueXValues(); 
    489 var _119=this.xrange/this.options.xNumberOfTicks; 
    490 var _120=0; 
     530var _129=this._uniqueXValues(); 
     531var _130=this.xrange/this.options.xNumberOfTicks; 
     532var _131=0; 
    491533this.xticks=new Array(); 
    492 for(var i=0;i<=_118.length;i++){ 
    493 if(_118[i]>=(_120)*_119){ 
    494 var pos=this.xscale*(_118[i]-this.minxval); 
     534for(var i=0;i<=_129.length;i++){ 
     535if(_129[i]>=(_131)*_130){ 
     536var pos=this.xscale*(_129[i]-this.minxval); 
    495537if((pos>1)||(pos<0)){ 
    496538return; 
    497539} 
    498 this.xticks.push([pos,_118[i]]); 
    499 _120++; 
    500 } 
    501 if(_120>this.options.xNumberOfTicks){ 
     540this.xticks.push([pos,_129[i]]); 
     541_131++; 
     542} 
     543if(_131>this.options.xNumberOfTicks){ 
    502544break; 
    503545} 
     
    507549}; 
    508550PlotKit.Layout.prototype._evaluateLineTicksForYAxis=function(){ 
    509 var _121=MochiKit.Base.isUndefinedOrNull; 
     551var _132=MochiKit.Base.isUndefinedOrNull; 
    510552if(this.options.yTicks){ 
    511553this.yticks=new Array(); 
    512 var _122=function(tick){ 
    513 var _123=tick.label; 
    514 if(_121(_123)){ 
    515 _123=tick.v.toString(); 
     554var _133=function(tick){ 
     555var _134=tick.label; 
     556if(_132(_134)){ 
     557_134=tick.v.toString(); 
    516558} 
    517559var pos=1-(this.yscale*(tick.v+this.minxval)); 
     
    519561return; 
    520562} 
    521 this.yticks.push([pos,_123]); 
    522 }; 
    523 MochiKit.Iter.forEach(this.options.yTicks,bind(_122,this)); 
     563this.yticks.push([pos,_134]); 
     564}; 
     565MochiKit.Iter.forEach(this.options.yTicks,bind(_133,this)); 
    524566}else{ 
    525567if(this.options.yNumberOfTicks){ 
    526568this.yticks=new Array(); 
    527 var _124=PlotKit.Base.roundInterval; 
     569var _135=PlotKit.Base.roundInterval; 
    528570var prec=this.options.yTickPrecision; 
    529 var _126=_124(this.yrange,this.options.yNumberOfTicks,this.options.yTickPrecision); 
     571var _137=_135(this.yrange,this.options.yNumberOfTicks,this.options.yTickPrecision); 
    530572for(var i=0;i<=this.options.yNumberOfTicks;i++){ 
    531 var yval=this.minyval+(i*_126); 
     573var yval=this.minyval+(i*_137); 
    532574var pos=1-((yval-this.minyval)*this.yscale); 
    533575this.yticks.push([pos,MochiKit.Format.roundToFixed(yval,1)]); 
     
    542584PlotKit.Layout.prototype._evaluateBarTicks=function(){ 
    543585this._evaluateLineTicks(); 
    544 var _128=function(tick){ 
     586var _139=function(tick){ 
    545587return [tick[0]+(this.minxdelta*this.xscale)/2,tick[1]]; 
    546588}; 
    547 this.xticks=MochiKit.Base.map(bind(_128,this),this.xticks); 
     589this.xticks=MochiKit.Base.map(bind(_139,this),this.xticks); 
     590if(this.options.barOrientation=="horizontal"){ 
     591var _140=this.xticks; 
     592this.xticks=this.yticks; 
     593this.yticks=_140; 
     594var _141=function(tick){ 
     595return [1-tick[0],tick[1]]; 
     596}; 
     597this.xticks=MochiKit.Base.map(_141,this.xticks); 
     598
    548599}; 
    549600PlotKit.Layout.prototype._evaluatePieTicks=function(){ 
    550 var _129=MochiKit.Base.isUndefinedOrNull; 
    551 var _130=MochiKit.Format.numberFormatter("#%"); 
     601var _142=MochiKit.Base.isUndefinedOrNull; 
     602var _143=MochiKit.Format.numberFormatter("#%"); 
    552603this.xticks=new Array(); 
    553604if(this.options.xTicks){ 
    554 var _131=new Array(); 
     605var _144=new Array(); 
    555606for(var i=0;i<this.slices.length;i++){ 
    556 _131[this.slices[i].xval]=this.slices[i]; 
     607_144[this.slices[i].xval]=this.slices[i]; 
    557608} 
    558609for(var i=0;i<this.options.xTicks.length;i++){ 
    559610var tick=this.options.xTicks[i]; 
    560 var _132=_131[tick.v]; 
    561 var _133=tick.label; 
    562 if(_132){ 
    563 if(_129(_133)){ 
    564 _133=tick.v.toString(); 
    565 } 
    566 _133+=" ("+_130(_132.fraction)+")"; 
    567 this.xticks.push([tick.v,_133]); 
     611var _145=_144[tick.v]; 
     612var _146=tick.label; 
     613if(_145){ 
     614if(_142(_146)){ 
     615_146=tick.v.toString(); 
     616} 
     617_146+=" ("+_143(_145.fraction)+")"; 
     618this.xticks.push([tick.v,_146]); 
    568619} 
    569620} 
    570621}else{ 
    571622for(var i=0;i<this.slices.length;i++){ 
    572 var _132=this.slices[i]; 
    573 var _133=_132.xval+" ("+_130(_132.fraction)+")"; 
    574 this.xticks.push([_132.xval,_133]); 
     623var _145=this.slices[i]; 
     624var _146=_145.xval+" ("+_143(_145.fraction)+")"; 
     625this.xticks.push([_145.xval,_146]); 
    575626} 
    576627} 
     
    580631this.hitTestCache.xlookup=new Array(); 
    581632this.hitTestCache.x2maxy=new Array(); 
    582 var _134=MochiKit.Base.listMax; 
    583 var _135=MochiKit.Base.itemgetter; 
     633var _147=MochiKit.Base.listMax; 
     634var _148=MochiKit.Base.itemgetter; 
    584635var map=MochiKit.Base.map; 
    585 var _136=keys(this.datasets); 
    586 for(var i=0;i<_136.length;i++){ 
    587 var _137=this.datasets[_136[i]]; 
    588 for(var j=0;j<_137.length;j++){ 
    589 var xval=_137[j][0]; 
    590 var yval=_137[j][1]; 
     636var _149=keys(this.datasets); 
     637for(var i=0;i<_149.length;i++){ 
     638var _150=this.datasets[_149[i]]; 
     639for(var j=0;j<_150.length;j++){ 
     640var xval=_150[j][0]; 
     641var yval=_150[j][1]; 
    591642if(this.hitTestCache.xlookup[xval]){ 
    592 this.hitTestCache.xlookup[xval].push([yval,_136[i]]); 
    593 }else{ 
    594 this.hitTestCache.xlookup[xval]=[[yval,_136[i]]]; 
     643this.hitTestCache.xlookup[xval].push([yval,_149[i]]); 
     644}else{ 
     645this.hitTestCache.xlookup[xval]=[[yval,_149[i]]]; 
    595646} 
    596647} 
    597648} 
    598649for(var x in this.hitTestCache.xlookup){ 
    599 var _139=this.hitTestCache.xlookup[x]; 
    600 this.hitTestCache.x2maxy[x]=_134(map(_135(0),_139)); 
     650var _152=this.hitTestCache.xlookup[x]; 
     651this.hitTestCache.x2maxy[x]=_147(map(_148(0),_152)); 
    601652} 
    602653}; 
     
    631682return this.__repr__(); 
    632683}; 
    633 PlotKit.CanvasRenderer=function(_140,_141,_142){ 
     684PlotKit.CanvasRenderer=function(_153,_154,_155){ 
    634685if(arguments.length>0){ 
    635 this.__init__(_140,_141,_142); 
    636 } 
    637 }; 
    638 PlotKit.CanvasRenderer.prototype.__init__=function(_143,_144,_145){ 
    639 var _146=MochiKit.Base.isUndefinedOrNull; 
    640 var _147=MochiKit.Color.Color; 
    641 this.options={"drawBackground":true,"backgroundColor":_147.whiteColor(),"padding":{left:30,right:30,top:5,bottom:10},"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),"strokeColor":_147.whiteColor(),"strokeColorTransform":"asStrokeColor","strokeWidth":0.5,"shouldFill":true,"shouldStroke":true,"drawXAxis":true,"drawYAxis":true,"axisLineColor":_147.blackColor(),"axisLineWidth":0.5,"axisTickSize":3,"axisLabelColor":_147.blackColor(),"axisLabelFont":"Arial","axisLabelFontSize":9,"axisLabelWidth":50,"pieRadius":0.4,"enableEvents":true}; 
    642 MochiKit.Base.update(this.options,_145?_145:{}); 
    643 this.layout=_144
    644 this.style=_144.style; 
    645 this.element=_143
     686this.__init__(_153,_154,_155); 
     687} 
     688}; 
     689PlotKit.CanvasRenderer.prototype.__init__=function(_156,_157,_158){ 
     690var _159=MochiKit.Base.isUndefinedOrNull; 
     691var _160=MochiKit.Color.Color; 
     692this.options={"drawBackground":true,"backgroundColor":_160.whiteColor(),"padding":{left:30,right:30,top:5,bottom:10},"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),"strokeColor":_160.whiteColor(),"strokeColorTransform":"asStrokeColor","strokeWidth":0.5,"shouldFill":true,"shouldStroke":true,"drawXAxis":true,"drawYAxis":true,"axisLineColor":_160.blackColor(),"axisLineWidth":0.5,"axisTickSize":3,"axisLabelColor":_160.blackColor(),"axisLabelFont":"Arial","axisLabelFontSize":9,"axisLabelWidth":50,"pieRadius":0.4,"enableEvents":true}; 
     693MochiKit.Base.update(this.options,_158?_158:{}); 
     694this.layout=_157
     695this.style=_157.style; 
     696this.element=_156
    646697this.container=this.element.parentNode; 
    647698this.isIE=PlotKit.Base.excanvasSupported(); 
    648 if(this.isIE&&!_146(G_vmlCanvasManager)){ 
     699if(this.isIE&&!_159(G_vmlCanvasManager)){ 
    649700this.IEDelay=0.5; 
    650701this.maxTries=5; 
     
    655706this.height=this.element.height; 
    656707this.width=this.element.width; 
    657 if(_146(this.element)){ 
     708if(_159(this.element)){ 
    658709throw "CanvasRenderer() - passed canvas is not found"; 
    659710} 
     
    661712throw "CanvasRenderer() - Canvas is not supported."; 
    662713} 
    663 if(_146(this.container)||(this.container.nodeName.toLowerCase()!="div")){ 
     714if(_159(this.container)||(this.container.nodeName.toLowerCase()!="div")){ 
    664715throw "CanvasRenderer() - <canvas> needs to be enclosed in <div>"; 
    665716} 
     
    685736this.renderDelay=null; 
    686737} 
    687 var _148=this.element.getContext("2d"); 
     738var _161=this.element.getContext("2d"); 
    688739} 
    689740catch(e){ 
     
    714765} 
    715766}; 
    716 PlotKit.CanvasRenderer.prototype._renderBarChartWrap=function(data,_150){ 
    717 var _151=this.element.getContext("2d"); 
    718 var _152=this.options.colorScheme.length; 
    719 var _153=this.options.colorScheme; 
    720 var _154=MochiKit.Base.keys(this.layout.datasets); 
    721 var _155=_154.length; 
    722 for(var i=0;i<_155;i++){ 
    723 var _156=_154[i]; 
    724 var _157=_153[i%_152]; 
    725 _151.save(); 
    726 _151.fillStyle=_157.toRGBString(); 
     767PlotKit.CanvasRenderer.prototype._renderBarChartWrap=function(data,_163){ 
     768var _164=this.element.getContext("2d"); 
     769var _165=this.options.colorScheme.length; 
     770var _166=this.options.colorScheme; 
     771var _167=MochiKit.Base.keys(this.layout.datasets); 
     772var _168=_167.length; 
     773for(var i=0;i<_168;i++){ 
     774var _169=_167[i]; 
     775var _170=_166[i%_165]; 
     776_164.save(); 
     777_164.fillStyle=_170.toRGBString(); 
    727778if(this.options.strokeColor){ 
    728 _151.strokeStyle=this.options.strokeColor.toRGBString(); 
     779_164.strokeStyle=this.options.strokeColor.toRGBString(); 
    729780}else{ 
    730781if(this.options.strokeColorTransform){ 
    731 _151.strokeStyle=_157[this.options.strokeColorTransform]().toRGBString(); 
    732 } 
    733 } 
    734 _151.lineWidth=this.options.strokeWidth; 
    735 var _158=function(obj){ 
    736 if(obj.name==_156){ 
    737 _150(_151,obj); 
    738 } 
    739 }; 
    740 MochiKit.Iter.forEach(data,bind(_158,this)); 
    741 _151.restore(); 
     782_164.strokeStyle=_170[this.options.strokeColorTransform]().toRGBString(); 
     783} 
     784} 
     785_164.lineWidth=this.options.strokeWidth; 
     786var _171=function(obj){ 
     787if(obj.name==_169){ 
     788_163(_164,obj); 
     789} 
     790}; 
     791MochiKit.Iter.forEach(data,bind(_171,this)); 
     792_164.restore(); 
    742793} 
    743794}; 
    744795PlotKit.CanvasRenderer.prototype._renderBarChart=function(){ 
    745796var bind=MochiKit.Base.bind; 
    746 var _160=function(_161,bar){ 
     797var _173=function(_174,bar){ 
    747798var x=this.area.w*bar.x+this.area.x; 
    748799var y=this.area.h*bar.y+this.area.y; 
     
    753804} 
    754805if(this.options.shouldFill){ 
    755 _161.fillRect(x,y,w,h); 
     806_174.fillRect(x,y,w,h); 
    756807} 
    757808if(this.options.shouldStroke){ 
    758 _161.strokeRect(x,y,w,h); 
    759 } 
    760 }; 
    761 this._renderBarChartWrap(this.layout.bars,bind(_160,this)); 
     809_174.strokeRect(x,y,w,h); 
     810} 
     811}; 
     812this._renderBarChartWrap(this.layout.bars,bind(_173,this)); 
    762813}; 
    763814PlotKit.CanvasRenderer.prototype._renderLineChart=function(){ 
    764 var _164=this.element.getContext("2d"); 
    765 var _165=this.options.colorScheme.length; 
    766 var _166=this.options.colorScheme; 
    767 var _167=MochiKit.Base.keys(this.layout.datasets); 
    768 var _168=_167.length; 
     815var _177=this.element.getContext("2d"); 
     816var _178=this.options.colorScheme.length; 
     817var _179=this.options.colorScheme; 
     818var _180=MochiKit.Base.keys(this.layout.datasets); 
     819var _181=_180.length; 
    769820var bind=MochiKit.Base.bind; 
    770 var _169=MochiKit.Base.partial; 
    771 for(var i=0;i<_168;i++){ 
    772 var _170=_167[i]; 
    773 var _171=_166[i%_165]; 
    774 var _172=this.options.strokeColorTransform; 
    775 _164.save(); 
    776 _164.fillStyle=_171.toRGBString(); 
     821var _182=MochiKit.Base.partial; 
     822for(var i=0;i<_181;i++){ 
     823var _183=_180[i]; 
     824var _184=_179[i%_178]; 
     825var _185=this.options.strokeColorTransform; 
     826_177.save(); 
     827_177.fillStyle=_184.toRGBString(); 
    777828if(this.options.strokeColor){ 
    778 _164.strokeStyle=this.options.strokeColor.toRGBString(); 
     829_177.strokeStyle=this.options.strokeColor.toRGBString(); 
    779830}else{ 
    780831if(this.options.strokeColorTransform){ 
    781 _164.strokeStyle=_171[_172]().toRGBString(); 
    782 } 
    783 } 
    784 _164.lineWidth=this.options.strokeWidth; 
    785 var _173=function(){ 
    786 _164.beginPath(); 
    787 _164.moveTo(this.area.x,this.area.y+this.area.h); 
    788 var _174=function(_164,_175){ 
    789 if(_175.name==_170){ 
    790 _164.lineTo(this.area.w*_175.x+this.area.x,this.area.h*_175.y+this.area.y); 
    791 } 
    792 }; 
    793 MochiKit.Iter.forEach(this.layout.points,_169(_174,context),this); 
    794 context.lineTo(this.area.w+this.area.x,this.area.h+this.area.y); 
    795 context.lineTo(this.area.x,this.area.y+this.area.h); 
    796 context.closePath(); 
     832_177.strokeStyle=_184[_185]().toRGBString(); 
     833} 
     834} 
     835_177.lineWidth=this.options.strokeWidth; 
     836var _186=function(ctx){ 
     837ctx.beginPath(); 
     838ctx.moveTo(this.area.x,this.area.y+this.area.h); 
     839var _188=function(ctx_,_190){ 
     840if(_190.name==_183){ 
     841ctx_.lineTo(this.area.w*_190.x+this.area.x,this.area.h*_190.y+this.area.y); 
     842} 
     843}; 
     844MochiKit.Iter.forEach(this.layout.points,_182(_188,ctx),this); 
     845ctx.lineTo(this.area.w+this.area.x,this.area.h+this.area.y); 
     846ctx.lineTo(this.area.x,this.area.y+this.area.h); 
     847ctx.closePath(); 
    797848}; 
    798849if(this.options.shouldFill){ 
    799 bind(_173,this)(); 
    800 context.fill(); 
     850bind(_186,this)(_177); 
     851_177.fill(); 
    801852} 
    802853if(this.options.shouldStroke){ 
    803 bind(_173,this)(); 
    804 context.stroke(); 
    805 } 
    806 context.restore(); 
     854bind(_186,this)(_177); 
     855_177.stroke(); 
     856} 
     857_177.restore(); 
    807858} 
    808859}; 
    809860PlotKit.CanvasRenderer.prototype._renderPieChart=function(){ 
    810 var _176=this.element.getContext("2d"); 
    811 var _177=this.options.colorScheme.length; 
    812 var _178=this.layout.slices; 
    813 var _179=this.area.x+this.area.w*0.5; 
    814 var _180=this.area.y+this.area.h*0.5; 
    815 var _181=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius); 
     861var _191=this.element.getContext("2d"); 
     862var _192=this.options.colorScheme.length; 
     863var _193=this.layout.slices; 
     864var _194=this.area.x+this.area.w*0.5; 
     865var _195=this.area.y+this.area.h*0.5; 
     866var _196=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius); 
    816867if(this.isIE){ 
    817 _179=parseInt(_179); 
    818 _180=parseInt(_180); 
    819 _181=parseInt(_181); 
    820 } 
    821 for(var i=0;i<_178.length;i++){ 
    822 var _182=this.options.colorScheme[i%_177]; 
    823 _176.save(); 
    824 _176.fillStyle=_182.toRGBString(); 
    825 var _183=function(){ 
    826 _176.beginPath(); 
    827 _176.moveTo(_179,_180); 
    828 _176.arc(_179,_180,_181,_178[i].startAngle-Math.PI/2,_178[i].endAngle-Math.PI/2,false); 
    829 _176.lineTo(_179,_180); 
    830 _176.closePath(); 
    831 }; 
    832 if(Math.abs(_178[i].startAngle-_178[i].endAngle)>0.001){ 
     868_194=parseInt(_194); 
     869_195=parseInt(_195); 
     870_196=parseInt(_196); 
     871} 
     872for(var i=0;i<_193.length;i++){ 
     873var _197=this.options.colorScheme[i%_192]; 
     874_191.save(); 
     875_191.fillStyle=_197.toRGBString(); 
     876var _198=function(){ 
     877_191.beginPath(); 
     878_191.moveTo(_194,_195); 
     879_191.arc(_194,_195,_196,_193[i].startAngle-Math.PI/2,_193[i].endAngle-Math.PI/2,false); 
     880_191.lineTo(_194,_195); 
     881_191.closePath(); 
     882}; 
     883if(Math.abs(_193[i].startAngle-_193[i].endAngle)>0.001){ 
    833884if(this.options.shouldFill){ 
    834 _183(); 
    835 _176.fill(); 
     885_198(); 
     886_191.fill(); 
    836887} 
    837888if(this.options.shouldStroke){ 
    838 _183(); 
    839 _176.lineWidth=this.options.strokeWidth; 
     889_198(); 
     890_191.lineWidth=this.options.strokeWidth; 
    840891if(this.options.strokeColor){ 
    841 _176.strokeStyle=this.options.strokeColor.toRGBString(); 
     892_191.strokeStyle=this.options.strokeColor.toRGBString(); 
    842893}else{ 
    843894if(this.options.strokeColorTransform){ 
    844 _176.strokeStyle=_182[this.options.strokeColorTransform]().toRGBString(); 
    845 } 
    846 } 
    847 _176.stroke(); 
    848 } 
    849 } 
    850 _176.restore(); 
     895_191.strokeStyle=_197[this.options.strokeColorTransform]().toRGBString(); 
     896} 
     897} 
     898_191.stroke(); 
     899} 
     900} 
     901_191.restore(); 
    851902} 
    852903}; 
     
    861912return; 
    862913} 
    863 var _184=this.element.getContext("2d"); 
    864 var _185={"style":{"position":"absolute","fontSize":this.options.axisLabelFontSize+"px","zIndex":10,"color":this.options.axisLabelColor.toRGBString(),"width":this.options.axisLabelWidth+"px","overflow":"hidden"}}; 
    865 _184.save(); 
    866 _184.strokeStyle=this.options.axisLineColor.toRGBString(); 
    867 _184.lineWidth=this.options.axisLineWidth; 
     914var _199=this.element.getContext("2d"); 
     915var _200={"style":{"position":"absolute","fontSize":this.options.axisLabelFontSize+"px","zIndex":10,"color":this.options.axisLabelColor.toRGBString(),"width":this.options.axisLabelWidth+"px","overflow":"hidden"}}; 
     916_199.save(); 
     917_199.strokeStyle=this.options.axisLineColor.toRGBString(); 
     918_199.lineWidth=this.options.axisLineWidth; 
    868919if(this.options.drawYAxis){ 
    869920if(this.layout.yticks){ 
    870 var _186=function(tick){ 
     921var _201=function(tick){ 
    871922var x=this.area.x; 
    872923var y=this.area.y+tick[0]*this.area.h; 
    873 _184.beginPath(); 
    874 _184.moveTo(x,y); 
    875 _184.lineTo(x-this.options.axisTickSize,y); 
    876 _184.closePath(); 
    877 _184.stroke(); 
    878 var _187=DIV(_185,tick[1]); 
    879 _187.style.top=(y-this.options.axisLabelFontSize)+"px"; 
    880 _187.style.left=(x-this.options.padding.left-this.options.axisTickSize)+"px"; 
    881 _187.style.textAlign="right"; 
    882 _187.style.width=(this.options.padding.left-this.options.axisTickSize*2)+"px"; 
    883 MochiKit.DOM.appendChildNodes(this.container,_187); 
    884 this.ylabels.push(_187); 
    885 }; 
    886 MochiKit.Iter.forEach(this.layout.yticks,bind(_186,this)); 
    887 } 
    888 _184.beginPath(); 
    889 _184.moveTo(this.area.x,this.area.y); 
    890 _184.lineTo(this.area.x,this.area.y+this.area.h); 
    891 _184.closePath(); 
    892 _184.stroke(); 
     924_199.beginPath(); 
     925_199.moveTo(x,y); 
     926_199.lineTo(x-this.options.axisTickSize,y); 
     927_199.closePath(); 
     928_199.stroke(); 
     929var _202=DIV(_200,tick[1]); 
     930_202.style.top=(y-this.options.axisLabelFontSize)+"px"; 
     931_202.style.left=(x-this.options.padding.left-this.options.axisTickSize)+"px"; 
     932_202.style.textAlign="right"; 
     933_202.style.width=(this.options.padding.left-this.options.axisTickSize*2)+"px"; 
     934MochiKit.DOM.appendChildNodes(this.container,_202); 
     935this.ylabels.push(_202); 
     936}; 
     937MochiKit.Iter.forEach(this.layout.yticks,bind(_201,this)); 
     938} 
     939_199.beginPath(); 
     940_199.moveTo(this.area.x,this.area.y); 
     941_199.lineTo(this.area.x,this.area.y+this.area.h); 
     942_199.closePath(); 
     943_199.stroke(); 
    893944} 
    894945if(this.options.drawXAxis){ 
    895946if(this.layout.xticks){ 
    896 var _186=function(tick){ 
     947var _201=function(tick){ 
    897948var x=this.area.x+tick[0]*this.area.w; 
    898949var y=this.area.y+this.area.h; 
    899 _184.beginPath(); 
    900 _184.moveTo(x,y); 
    901 _184.lineTo(x,y+this.options.axisTickSize); 
    902 _184.closePath(); 
    903 _184.stroke(); 
    904 var _188=DIV(_185,tick[1]); 
    905 _188.style.top=(y+this.options.axisTickSize)+"px"; 
    906 _188.style.left=(x-this.options.axisLabelWidth/2)+"px"; 
    907 _188.style.textAlign="center"; 
    908 _188.style.width=this.options.axisLabelWidth+"px"; 
    909 MochiKit.DOM.appendChildNodes(this.container,_188); 
    910 this.xlabels.push(_188); 
    911 }; 
    912 MochiKit.Iter.forEach(this.layout.xticks,bind(_186,this)); 
    913 } 
    914 _184.beginPath(); 
    915 _184.moveTo(this.area.x,this.area.y+this.area.h); 
    916 _184.lineTo(this.area.x+this.area.w,this.area.y+this.area.h); 
    917 _184.closePath(); 
    918 _184.stroke(); 
    919 } 
    920 _184.restore(); 
     950_199.beginPath(); 
     951_199.moveTo(x,y); 
     952_199.lineTo(x,y+this.options.axisTickSize); 
     953_199.closePath(); 
     954_199.stroke(); 
     955var _203=DIV(_200,tick[1]); 
     956_203.style.top=(y+this.options.axisTickSize)+"px"; 
     957_203.style.left=(x-this.options.axisLabelWidth/2)+"px"; 
     958_203.style.textAlign="center"; 
     959_203.style.width=this.options.axisLabelWidth+"px"; 
     960MochiKit.DOM.appendChildNodes(this.container,_203); 
     961this.xlabels.push(_203); 
     962}; 
     963MochiKit.Iter.forEach(this.layout.xticks,bind(_201,this)); 
     964} 
     965_199.beginPath(); 
     966_199.moveTo(this.area.x,this.area.y+this.area.h); 
     967_199.lineTo(this.area.x+this.area.w,this.area.y+this.area.h); 
     968_199.closePath(); 
     969_199.stroke(); 
     970} 
     971_199.restore(); 
    921972}; 
    922973PlotKit.CanvasRenderer.prototype._renderPieAxis=function(){ 
     
    925976} 
    926977if(this.layout.xticks){ 
    927 var _189=new Array(); 
     978var _204=new Array(); 
    928979for(var i=0;i<this.layout.slices.length;i++){ 
    929 _189[this.layout.slices[i].xval]=this.layout.slices[i]; 
    930 } 
    931 var _190=this.area.x+this.area.w*0.5; 
    932 var _191=this.area.y+this.area.h*0.5; 
    933 var _192=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius); 
    934 var _193=this.options.axisLabelWidth; 
     980_204[this.layout.slices[i].xval]=this.layout.slices[i]; 
     981} 
     982var _205=this.area.x+this.area.w*0.5; 
     983var _206=this.area.y+this.area.h*0.5; 
     984var _207=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius); 
     985var _208=this.options.axisLabelWidth; 
    935986for(var i=0;i<this.layout.xticks.length;i++){ 
    936 var _194=_189[this.layout.xticks[i][0]]; 
    937 if(MochiKit.Base.isUndefinedOrNull(_194)){ 
     987var _209=_204[this.layout.xticks[i][0]]; 
     988if(MochiKit.Base.isUndefinedOrNull(_209)){ 
    938989continue; 
    939990} 
    940 var _195=(_194.startAngle+_194.endAngle)/2; 
    941 var _196=_195
    942 if(_196>Math.PI*2){ 
    943 _196=_196-Math.PI*2; 
    944 }else{ 
    945 if(_196<0){ 
    946 _196=_196+Math.PI*2; 
    947 } 
    948 } 
    949 var _197=_190+Math.sin(_196)*(_192+10); 
    950 var _198=_191-Math.cos(_196)*(_192+10); 
    951 var _199={"position":"absolute","zIndex":11,"width":_193+"px","fontSize":this.options.axisLabelFontSize+"px","overflow":"hidden","color":this.options.axisLabelColor.toHexString()}; 
    952 if(_196<=Math.PI*0.5){ 
    953 _199["textAlign"]="left"; 
    954 _199["verticalAlign"]="top"; 
    955 _199["left"]=_197+"px"; 
    956 _199["top"]=(_198-this.options.axisLabelFontSize)+"px"; 
    957 }else{ 
    958 if((_196>Math.PI*0.5)&&(_196<=Math.PI)){ 
    959 _199["textAlign"]="left"; 
    960 _199["verticalAlign"]="bottom"; 
    961 _199["left"]=_197+"px"; 
    962 _199["top"]=_198+"px"; 
    963 }else{ 
    964 if((_196>Math.PI)&&(_196<=Math.PI*1.5)){ 
    965 _199["textAlign"]="right"; 
    966 _199["verticalAlign"]="bottom"; 
    967 _199["left"]=(_197-_193)+"px"; 
    968 _199["top"]=_198+"px"; 
    969 }else{ 
    970 _199["textAlign"]="right"; 
    971 _199["verticalAlign"]="bottom"; 
    972 _199["left"]=(_197-_193)+"px"; 
    973 _199["top"]=(_198-this.options.axisLabelFontSize)+"px"; 
    974 } 
    975 } 
    976 } 
    977 var _200=DIV({"style":_199},this.layout.xticks[i][1]); 
    978 this.xlabels.push(_200); 
    979 MochiKit.DOM.appendChildNodes(this.container,_200); 
     991var _210=(_209.startAngle+_209.endAngle)/2; 
     992var _211=_210
     993if(_211>Math.PI*2){ 
     994_211=_211-Math.PI*2; 
     995}else{ 
     996if(_211<0){ 
     997_211=_211+Math.PI*2; 
     998} 
     999} 
     1000var _212=_205+Math.sin(_211)*(_207+10); 
     1001var _213=_206-Math.cos(_211)*(_207+10); 
     1002var _214={"position":"absolute","zIndex":11,"width":_208+"px","fontSize":this.options.axisLabelFontSize+"px","overflow":"hidden","color":this.options.axisLabelColor.toHexString()}; 
     1003if(_211<=Math.PI*0.5){ 
     1004_214["textAlign"]="left"; 
     1005_214["verticalAlign"]="top"; 
     1006_214["left"]=_212+"px"; 
     1007_214["top"]=(_213-this.options.axisLabelFontSize)+"px"; 
     1008}else{ 
     1009if((_211>Math.PI*0.5)&&(_211<=Math.PI)){ 
     1010_214["textAlign"]="left"; 
     1011_214["verticalAlign"]="bottom"; 
     1012_214["left"]=_212+"px"; 
     1013_214["top"]=_213+"px"; 
     1014}else{ 
     1015if((_211>Math.PI)&&(_211<=Math.PI*1.5)){ 
     1016_214["textAlign"]="right"; 
     1017_214["verticalAlign"]="bottom"; 
     1018_214["left"]=(_212-_208)+"px"; 
     1019_214["top"]=_213+"px"; 
     1020}else{ 
     1021_214["textAlign"]="right"; 
     1022_214["verticalAlign"]="bottom"; 
     1023_214["left"]=(_212-_208)+"px"; 
     1024_214["top"]=(_213-this.options.axisLabelFontSize)+"px"; 
     1025} 
     1026} 
     1027} 
     1028var _215=DIV({"style":_214},this.layout.xticks[i][1]); 
     1029this.xlabels.push(_215); 
     1030MochiKit.DOM.appendChildNodes(this.container,_215); 
    9801031} 
    9811032} 
    9821033}; 
    9831034PlotKit.CanvasRenderer.prototype._renderBackground=function(){ 
    984 var _201=this.element.getContext("2d"); 
    985 _201.save(); 
    986 _201.fillStyle=this.options.backgroundColor.toRGBString(); 
    987 _201.fillRect(0,0,this.width,this.height); 
    988 _201.restore(); 
     1035var _216=this.element.getContext("2d"); 
     1036_216.save(); 
     1037_216.fillStyle=this.options.backgroundColor.toRGBString(); 
     1038_216.fillRect(0,0,this.width,this.height); 
     1039_216.restore(); 
    9891040}; 
    9901041PlotKit.CanvasRenderer.prototype.clear=function(){ 
     
    9951046this.clearDelay=null; 
    9961047} 
    997 var _202=this.element.getContext("2d"); 
     1048var _217=this.element.getContext("2d"); 
    9981049} 
    9991050catch(e){ 
     
    10041055} 
    10051056} 
    1006 var _202=this.element.getContext("2d"); 
    1007 _202.clearRect(0,0,this.width,this.height); 
     1057var _217=this.element.getContext("2d"); 
     1058_217.clearRect(0,0,this.width,this.height); 
    10081059MochiKit.Iter.forEach(this.xlabels,MochiKit.DOM.removeElement); 
    10091060MochiKit.Iter.forEach(this.ylabels,MochiKit.DOM.removeElement); 
     
    10121063}; 
    10131064PlotKit.CanvasRenderer.prototype._initialiseEvents=function(){ 
    1014 var _203=MochiKit.Signal.connect; 
     1065var _218=MochiKit.Signal.connect; 
    10151066var bind=MochiKit.Base.bind; 
    10161067MochiKit.Signal.registerSignals(this,["onmouseover","onclick","onmouseout","onmousemove"]); 
    1017 _203(this.element,"onclick",bind(this.onclick,this)); 
     1068_218(this.element,"onclick",bind(this.onclick,this)); 
    10181069}; 
    10191070PlotKit.CanvasRenderer.prototype._resolveObject=function(e){ 
    10201071var x=(e.mouse().page.x-PlotKit.Base.findPosX(this.element)-this.area.x)/this.area.w; 
    10211072var y=(e.mouse().page.y-PlotKit.Base.findPosY(this.element)-this.area.y)/this.area.h; 
    1022 var _205=this.layout.hitTest(x,y); 
    1023 if(_205){ 
    1024 return _205
     1073var _220=this.layout.hitTest(x,y); 
     1074if(_220){ 
     1075return _220
    10251076} 
    10261077return null; 
    10271078}; 
    1028 PlotKit.CanvasRenderer.prototype._createEventObject=function(_206,e){ 
    1029 if(_206==null){ 
     1079PlotKit.CanvasRenderer.prototype._createEventObject=function(_221,e){ 
     1080if(_221==null){ 
    10301081return null; 
    10311082} 
    1032 e.chart=_206
     1083e.chart=_221
    10331084return e; 
    10341085}; 
    10351086PlotKit.CanvasRenderer.prototype.onclick=function(e){ 
    1036 var _207=this._resolveObject(e); 
    1037 var _208=this._createEventObject(_207,e); 
    1038 if(_208!=null){ 
    1039 MochiKit.Signal.signal(this,"onclick",_208); 
     1087var _222=this._resolveObject(e); 
     1088var _223=this._createEventObject(_222,e); 
     1089if(_223!=null){ 
     1090MochiKit.Signal.signal(this,"onclick",_223); 
    10401091} 
    10411092}; 
    10421093PlotKit.CanvasRenderer.prototype.onmouseover=function(e){ 
    1043 var _209=this._resolveObject(e); 
    1044 var _210=this._createEventObject(_209,e); 
    1045 if(_210!=null){ 
    1046 signal(this,"onmouseover",_210); 
     1094var _224=this._resolveObject(e); 
     1095var _225=this._createEventObject(_224,e); 
     1096if(_225!=null){ 
     1097signal(this,"onmouseover",_225); 
    10471098} 
    10481099}; 
    10491100PlotKit.CanvasRenderer.prototype.onmouseout=function(e){ 
    1050 var _211=this._resolveObject(e); 
    1051 var _212=this._createEventObject(_211,e); 
    1052 if(_212==null){ 
     1101var _226=this._resolveObject(e); 
     1102var _227=this._createEventObject(_226,e); 
     1103if(_227==null){ 
    10531104signal(this,"onmouseout",e); 
    10541105}else{ 
    1055 signal(this,"onmouseout",_212); 
     1106signal(this,"onmouseout",_227); 
    10561107} 
    10571108}; 
    10581109PlotKit.CanvasRenderer.prototype.onmousemove=function(e){ 
    1059 var _213=this._resolveObject(e); 
    1060 var _214=this._createEventObject(_213,e); 
    1061 if((_213==null)&&(this.event_isinside==null)){ 
     1110var _228=this._resolveObject(e); 
     1111var _229=this._createEventObject(_228,e); 
     1112if((_228==null)&&(this.event_isinside==null)){ 
    10621113return; 
    10631114} 
    1064 if((_213!=null)&&(this.event_isinside==null)){ 
    1065 signal(this,"onmouseover",_214); 
    1066 } 
    1067 if((_213==null)&&(this.event_isinside!=null)){ 
    1068 signal(this,"onmouseout",_214); 
    1069 } 
    1070 if((_213!=null)&&(this.event_isinside!=null)){ 
    1071 signal(this,"onmousemove",_214); 
    1072 } 
    1073 this.event_isinside=_213
    1074 }; 
    1075 PlotKit.CanvasRenderer.isSupported=function(_215){ 
    1076 var _216=null; 
     1115if((_228!=null)&&(this.event_isinside==null)){ 
     1116signal(this,"onmouseover",_229); 
     1117} 
     1118if((_228==null)&&(this.event_isinside!=null)){ 
     1119signal(this,"onmouseout",_229); 
     1120} 
     1121if((_228!=null)&&(this.event_isinside!=null)){ 
     1122signal(this,"onmousemove",_229); 
     1123} 
     1124this.event_isinside=_228
     1125}; 
     1126PlotKit.CanvasRenderer.isSupported=function(_230){ 
     1127var _231=null; 
    10771128try{ 
    1078 if(MochiKit.Base.isUndefinedOrNull(_215)){ 
    1079 _216=MochiKit.DOM.CANVAS({}); 
    1080 }else{ 
    1081 _216=MochiKit.DOM.getElement(_215); 
    1082 } 
    1083 var _217=_216.getContext("2d"); 
     1129if(MochiKit.Base.isUndefinedOrNull(_230)){ 
     1130_231=MochiKit.DOM.CANVAS({}); 
     1131}else{ 
     1132_231=MochiKit.DOM.getElement(_230); 
     1133} 
     1134var _232=_231.getContext("2d"); 
    10841135} 
    10851136catch(e){ 
    10861137var ie=navigator.appVersion.match(/MSIE (\d\.\d)/); 
    1087 var _219=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1); 
    1088 if((!ie)||(ie[1]<6)||(_219)){ 
     1138var _234=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1); 
     1139if((!ie)||(ie[1]<6)||(_234)){ 
    10891140return false; 
    10901141} 
     
    11121163throw "PlotKit depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.Layout"; 
    11131164} 
    1114 PlotKit.SVGRenderer=function(_220,_221,_222){ 
     1165PlotKit.SVGRenderer=function(_235,_236,_237){ 
    11151166if(arguments.length>0){ 
    1116 this.__init__(_220,_221,_222); 
     1167this.__init__(_