//>>built define("dojo/_base/lang dojo/_base/declare dojo/_base/array dojo/sniff ./CartesianBase ./common dojox/lang/utils dojox/gfx/fx".split(" "),function(n,t,p,m,u,v,q,w){var r=function(a,d){return a.value-d.value};return t("dojox.charting.plot2d.Grid",u,{defaultParams:{hMajorLines:!0,hMinorLines:!1,vMajorLines:!0,vMinorLines:!1,hStripes:!1,vStripes:!1,animate:null,enableCache:!1,renderOnAxis:!0},optionalParams:{majorHLine:{},minorHLine:{},majorVLine:{},minorVLine:{},hFill:{},vFill:{},hAlternateFill:{}, vAlternateFill:{}},constructor:function(a,d){this.opt=n.clone(this.defaultParams);q.updateWithObject(this.opt,d);q.updateWithPattern(this.opt,d,this.optionalParams);this.animate=this.opt.animate;this.opt.enableCache&&(this._lineFreePool=[],this._lineUsePool=[],this._rectFreePool=[],this._rectUsePool=[])},addSeries:function(a){return this},getSeriesStats:function(){return n.delegate(v.defaultStats)},cleanGroup:function(){this.inherited(arguments);this.opt.enableCache&&(this._lineFreePool=this._lineFreePool.concat(this._lineUsePool), this._lineUsePool=[],this._rectFreePool=this._rectFreePool.concat(this._rectUsePool),this._rectUsePool=[])},createLine:function(a,d){var c;this.opt.enableCache&&0m("ios")||m("safari")&&!m("ios"))&&c.createRect({x:d.l,y:d.t,width:Math.max(0,a.width-d.l-d.r),height:Math.max(0,a.height-d.t-d.b)});if(this._vAxis){e=this._vAxis.getTicks();var g=this._vAxis.getScaler();if(null!=e&&null!=g){var f=g.scaler.getTransformerFromModel(g);this.opt.hStripes&&this._renderHRect(e, b.grid,a,d,g,f);this.opt.hMinorLines&&(c=this.opt.minorHLine||b.grid&&b.grid.minorLine||b.axis.minorTick,this._renderHLines(e.minor,c,a,d,g,f));this.opt.hMajorLines&&(c=this.opt.majorHLine||b.grid&&b.grid.majorLine||b.axis.majorTick,this._renderHLines(e.major,c,a,d,g,f))}}this._hAxis&&(e=this._hAxis.getTicks(),g=this._hAxis.getScaler(),null!=e&&null!=g&&(f=g.scaler.getTransformerFromModel(g),this.opt.vStripes&&this._renderVRect(e,b.grid,a,d,g,f),e&&this.opt.vMinorLines&&(c=this.opt.minorVLine||b.grid&& b.grid.minorLine||b.axis.minorTick,this._renderVLines(e.minor,c,a,d,g,f)),e&&this.opt.vMajorLines&&(c=this.opt.majorVLine||b.grid&&b.grid.majorLine||b.axis.majorTick,this._renderVLines(e.major,c,a,d,g,f))));this.dirty=!1;return this},_renderHLines:function(a,d,c,b,e,g){var f=this.getGroup();p.forEach(a,function(a){if(this.opt.renderOnAxis||a.value!=(this._vAxis.opt.leftBottom?e.bounds.from:e.bounds.to))a=c.height-b.b-g(a.value),a=this.createLine(f,{x1:b.l,y1:a,x2:c.width-b.r,y2:a}).setStroke(d),this.animate&& this._animateGrid(a,"h",b.l,b.r+b.l-c.width)},this)},_renderVLines:function(a,d,c,b,e,g){var f=this.getGroup();p.forEach(a,function(a){if(this.opt.renderOnAxis||a.value!=(this._hAxis.opt.leftBottom?e.bounds.from:e.bounds.to))a=b.l+g(a.value),a=this.createLine(f,{x1:a,y1:b.t,x2:a,y2:c.height-b.b}).setStroke(d),this.animate&&this._animateGrid(a,"v",c.height-b.b,c.height-b.b-b.t)},this)},_renderHRect:function(a,d,c,b,e,g){var f,k,l;a=a.major.concat(a.minor);a.sort(r);a[0].value>e.bounds.from&&a.splice(0, 0,{value:e.bounds.from});a[a.length-1].value e.bounds.from&&a.splice(0,0,{value:e.bounds.from});a[a.length-1].value