-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(){
-var _42=MochiKit.Base.isUndefinedOrNull;
-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._uniqueXValues=function(){
-var _43=PlotKit.Base.collapse;
-var map=PlotKit.Base.map;
-var _44=PlotKit.Base.uniq;
-var _45=MochiKit.Base.itemgetter;
-var _46=PlotKit.Base.items;
-var _47=map(parseFloat,map(_45(0),_43(map(_45(1),_46(this.datasets)))));
-_47.sort(MochiKit.Base.compare);
-return _44(_47);
-};
-PlotKit.Layout.prototype._evaluateLineCharts=function(){
-var _48=PlotKit.Base.items;
-var _49=_48(this.datasets).length;
-this.points=new Array();
-var i=0;
-for(var _50 in this.datasets){
-var _51=this.datasets[_50];
-if(PlotKit.Base.isFuncLike(_51)){
-continue;
-}
-_51.sort(function(a,b){
-return compare(parseFloat(a[0]),parseFloat(b[0]));
-});
-for(var j=0;j<_51.length;j++){
-var _55=_51[j];
-var _56={x:((parseFloat(_55[0])-this.minxval)*this.xscale),y:1-((parseFloat(_55[1])-this.minyval)*this.yscale),xval:parseFloat(_55[0]),yval:parseFloat(_55[1]),name:_50};
-if(_56.y<=0){
-_56.y=0;
-}
-if(_56.y>=1){
-_56.y=1;
-}
-if((_56.x>=0)&&(_56.x<=1)){
-this.points.push(_56);
-}
-}
-i++;
-}
-};
-PlotKit.Layout.prototype._evaluateLineTicksForXAxis=function(){
-var _57=MochiKit.Base.isUndefinedOrNull;
-if(this.options.xTicks){
-this.xticks=new Array();
-var _58=function(_59){
-var _60=_59.label;
-if(_57(_60)){
-_60=_59.v.toString();
-}
-var pos=this.xscale*(_59.v-this.minxval);
-if((pos>=0)&&(pos<=1)){
-this.xticks.push([pos,_60]);
-}
-};
-MochiKit.Iter.forEach(this.options.xTicks,bind(_58,this));
-}else{
-if(this.options.xNumberOfTicks){
-var _62=this._uniqueXValues();
-var _63=this.xrange/this.options.xNumberOfTicks;
-var _64=0;
-this.xticks=new Array();
-for(var i=0;i<=_62.length;i++){
-if((_62[i]-this.minxval)>=(_64*_63)){
-var pos=this.xscale*(_62[i]-this.minxval);
-if((pos>1)||(pos<0)){
-continue;
-}
-this.xticks.push([pos,_62[i]]);
-_64++;
-}
-if(_64>this.options.xNumberOfTicks){
-break;
-}
-}
-}
-}
-};
-PlotKit.Layout.prototype._evaluateLineTicksForYAxis=function(){
-var _65=MochiKit.Base.isUndefinedOrNull;
-if(this.options.yTicks){
-this.yticks=new Array();
-var _66=function(_67){
-var _68=_67.label;
-if(_65(_68)){
-_68=_67.v.toString();
-}
-var pos=1-(this.yscale*(_67.v-this.minyval));
-if((pos>=0)&&(pos<=1)){
-this.yticks.push([pos,_68]);
-}
-};
-MochiKit.Iter.forEach(this.options.yTicks,bind(_66,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){