-throw "PlotKit.Layout depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.Base";
-}
-if(typeof (PlotKit.Layout)=="undefined"){
-PlotKit.Layout={};
-}
-PlotKit.Layout.NAME="PlotKit.Layout";
-PlotKit.Layout.VERSION=PlotKit.VERSION;
-PlotKit.Layout.__repr__=function(){
-return "["+this.NAME+" "+this.VERSION+"]";
-};
-PlotKit.Layout.toString=function(){
-return this.__repr__();
-};
-PlotKit.Layout.valid_styles=["bar","line","pie","point"];
-PlotKit.Layout=function(_28,_29){
-this.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};
-this.style=_28;
-MochiKit.Base.update(this.options,_29?_29:{});
-if(!MochiKit.Base.isUndefinedOrNull(this.options.xAxis)){
-this.minxval=this.options.xAxis[0];
-this.maxxval=this.options.xAxis[1];
-this.xscale=this.maxxval-this.minxval;
-}else{
-this.minxval=0;
-this.maxxval=null;
-this.xscale=null;
-}
-if(!MochiKit.Base.isUndefinedOrNull(this.options.yAxis)){
-this.minyval=this.options.yAxis[0];
-this.maxyval=this.options.yAxis[1];
-this.yscale=this.maxyval-this.minyval;
-}else{
-this.minyval=0;
-this.maxyval=null;
-this.yscale=null;
-}
-this.bars=new Array();
-this.points=new Array();
-this.slices=new Array();
-this.xticks=new Array();
-this.yticks=new Array();
-this.datasets=new Array();
-this.minxdelta=0;
-this.xrange=1;
-this.yrange=1;
-this.hitTestCache={x2maxy:null};
-};
-PlotKit.Layout.prototype.addDataset=function(_30,_31){
-this.datasets[_30]=_31;
-};
-PlotKit.Layout.prototype.removeDataset=function(_32,_33){
-delete this.datasets[_32];
-};
-PlotKit.Layout.prototype.evaluate=function(){
-this._evaluateLimits();
-this._evaluateScales();
-if(this.style=="line"){
-this._evaluateLineCharts();
-this._evaluateLineTicks();
-}
-};
-PlotKit.Layout.prototype._evaluateLimits=function(){
-var map=PlotKit.Base.map;
-var _35=PlotKit.Base.items;
-var _36=MochiKit.Base.itemgetter;
-var _37=PlotKit.Base.collapse;
-var _38=MochiKit.Base.listMin;
-var _39=MochiKit.Base.listMax;
-var _40=MochiKit.Base.isUndefinedOrNull;
-var all=_37(map(_36(1),_35(this.datasets)));
-if(_40(this.options.xAxis)){
-if(this.options.xOriginIsZero){
-this.minxval=0;
-}else{
-this.minxval=_38(map(parseFloat,map(_36(0),all)));
-}
-this.maxxval=_39(map(parseFloat,map(_36(0),all)));
-}else{
-this.minxval=this.options.xAxis[0];
-this.maxxval=this.options.xAxis[1];
-this.xscale=this.maxval-this.minxval;
-}
-if(_40(this.options.yAxis)){
-if(this.options.yOriginIsZero){
-this.minyval=0;
-}else{
-this.minyval=_38(map(parseFloat,map(_36(1),all)));
-}
-this.maxyval=_39(map(parseFloat,map(_36(1),all)));
-}else{
-this.minyval=this.options.yAxis[0];
-this.maxyval=this.options.yAxis[1];
-this.yscale=this.maxyval-this.minyval;
-}
-};
-PlotKit.Layout.prototype._evaluateScales=function(){
-this.xrange=this.maxxval-this.minxval;
-if(this.xrange==0){
-this.xscale=1;
-}else{
-this.xscale=1/this.xrange;
-}
-this.yrange=this.maxyval-this.minyval;
-if(this.yrange==0){
-this.yscale=1;
-}else{
-this.yscale=1/this.yrange;
-}
-};
-PlotKit.Layout.prototype._evaluateLineCharts=function(){
-var _42=PlotKit.Base.items;
-var _43=_42(this.datasets).length;
-this.points=new Array();
-var i=0;
-for(var _44 in this.datasets){
-var _45=this.datasets[_44];
-if(PlotKit.Base.isFuncLike(_45)){
-continue;
-}
-_45.sort(function(a,b){
-return compare(parseFloat(a[0]),parseFloat(b[0]));
-});
-for(var j=0;j<_45.length;j++){
-var _49=_45[j];
-var _50={x:((parseFloat(_49[0])-this.minxval)*this.xscale),y:1-((parseFloat(_49[1])-this.minyval)*this.yscale),xval:parseFloat(_49[0]),yval:parseFloat(_49[1]),name:_44};
-if(_50.y<=0){
-_50.y=0;
-}
-if(_50.y>=1){
-_50.y=1;
-}
-if((_50.x>=0)&&(_50.x<=1)){
-this.points.push(_50);
-}
-}
-i++;
-}
-};
-PlotKit.Layout.prototype._evaluateLineTicksForXAxis=function(){
-var _51=MochiKit.Base.isUndefinedOrNull;
-this.xticks=new Array();
-var _52=function(_53){
-var _54=_53.label;
-if(_51(_54)){
-_54=_53.v.toString();
-}
-var pos=this.xscale*(_53.v-this.minxval);
-if((pos>=0)&&(pos<=1)){
-this.xticks.push([pos,_54]);
-}
-};
-MochiKit.Iter.forEach(this.options.xTicks,bind(_52,this));
-};
-PlotKit.Layout.prototype._evaluateLineTicksForYAxis=function(){
-var _56=MochiKit.Base.isUndefinedOrNull;
-this.yticks=new Array();
-var _57=function(_58){
-var _59=_58.label;
-if(_56(_59)){
-_59=_58.v.toString();
-}
-var pos=1-(this.yscale*(_58.v-this.minyval));
-if((pos>=0)&&(pos<=1)){
-this.yticks.push([pos,_59]);
-}
-};
-MochiKit.Iter.forEach(this.options.yTicks,bind(_57,this));
-};
-PlotKit.Layout.prototype._evaluateLineTicks=function(){
-this._evaluateLineTicksForXAxis();
-this._evaluateLineTicksForYAxis();
-};
-PlotKit.LayoutModule={};
-PlotKit.LayoutModule.Layout=PlotKit.Layout;
-PlotKit.LayoutModule.EXPORT=["Layout"];
-PlotKit.LayoutModule.EXPORT_OK=[];
-PlotKit.LayoutModule.__new__=function(){
-var m=MochiKit.Base;
-m.nameFunctions(this);
-this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
-};
-PlotKit.LayoutModule.__new__();
-MochiKit.Base._exportSymbols(this,PlotKit.LayoutModule);
-try{
-if((typeof (PlotKit.Base)=="undefined")||(typeof (PlotKit.Layout)=="undefined")){
-throw "";
-}
-}
-catch(e){