(function(){var a=window.AmCharts;a.AmRectangularChart=a.Class({inherits:a.AmCoordinateChart,construct:function(b){a.AmRectangularChart.base.construct.call(this,b);this.theme=b;this.createEvents("zoomed","changed");this.marginRight=this.marginBottom=this.marginTop=this.marginLeft=20;this.depth3D=this.angle=0;this.plotAreaFillColors="#FFFFFF";this.plotAreaFillAlphas=0;this.plotAreaBorderColor="#000000";this.plotAreaBorderAlpha=0;this.maxZoomFactor=20;this.zoomOutButtonImageSize=19;this.zoomOutButtonImage="lens";this.zoomOutText="Show all";this.zoomOutButtonColor="#e5e5e5";this.zoomOutButtonAlpha=0;this.zoomOutButtonRollOverAlpha=1;this.zoomOutButtonPadding=8;this.trendLines=[];this.autoMargins=!0;this.marginsUpdated=!1;this.autoMarginOffset=10;a.applyTheme(this,b,"AmRectangularChart")},initChart:function(){a.AmRectangularChart.base.initChart.call(this);this.updateDxy();!this.marginsUpdated&&this.autoMargins&&(this.resetMargins(),this.drawGraphs=!1);this.processScrollbars();this.updateMargins();this.updatePlotArea();this.updateScrollbars();this.updateTrendLines();this.updateChartCursor();this.updateValueAxes();this.scrollbarOnly||this.updateGraphs()},drawChart:function(){a.AmRectangularChart.base.drawChart.call(this);this.drawPlotArea();if(a.ifArray(this.chartData)){var b=this.chartCursor;b&&b.draw()}},resetMargins:function(){var f={},e;if("xy"==this.type){var j=this.xAxes,i=this.yAxes;for(e=0;e=n-r&&(this.marginRight=Math.round(j-n+r),!isNaN(this.minMarginRight)&&this.marginRightk-r&&(this.marginBottom=Math.round(this.marginBottom+s-k+r),!isNaN(this.minMarginBottom)&&this.marginBottomi&&(m=i);break;case"bottom":i=j.y+j.height;ki&&(e=i)}}}return{l:e,t:m,r:n,b:k}},drawZoomOutButton:function(){var y=this;if(!y.zbSet){var x=y.container.set();y.zoomButtonSet.push(x);var w=y.color,v=y.fontSize,s=y.zoomOutButtonImageSize,r=y.zoomOutButtonImage.replace(/\.[a-z]*$/i,""),t=y.langObj.zoomOutText||y.zoomOutText,q=y.zoomOutButtonColor,o=y.zoomOutButtonAlpha,j=y.zoomOutButtonFontSize,e=y.zoomOutButtonPadding;isNaN(j)||(v=j);(j=y.zoomOutButtonFontColor)&&(w=j);var j=y.zoomOutButton,i;j&&(j.fontSize&&(v=j.fontSize),j.color&&(w=j.color),j.backgroundColor&&(q=j.backgroundColor),isNaN(j.backgroundAlpha)||(y.zoomOutButtonRollOverAlpha=j.backgroundAlpha));var z=j=0,z=y.pathToImages;if(r){if(a.isAbsolute(r)||void 0===z){z=""}i=y.container.image(z+r+y.extension,0,0,s,s);a.setCN(y,i,"zoom-out-image");x.push(i);i=i.getBBox();j=i.width+5}void 0!==t&&(w=a.text(y.container,t,w,y.fontFamily,v,"start"),a.setCN(y,w,"zoom-out-label"),v=w.getBBox(),z=i?i.height/2-3:v.height/2,w.translate(j,z),x.push(w));i=x.getBBox();w=1;a.isModern||(w=0);q=a.rect(y.container,i.width+2*e+5,i.height+2*e-2,q,1,1,q,w);q.setAttr("opacity",o);q.translate(-e,-e);a.setCN(y,q,"zoom-out-bg");x.push(q);q.toBack();y.zbBG=q;i=q.getBBox();x.translate(y.marginLeftReal+y.plotAreaWidth-i.width+e,y.marginTopReal+e);x.hide();x.mouseover(function(){y.rollOverZB()}).mouseout(function(){y.rollOutZB()}).click(function(){y.clickZB()}).touchstart(function(){y.rollOverZB()}).touchend(function(){y.rollOutZB();y.clickZB()});for(o=0;of&&(f=1);1>e&&(e=1);this.plotAreaWidth=Math.round(f);this.plotAreaHeight=Math.round(e);this.plotBalloonsSet.translate(h,g)},updateDxy:function(){this.dx=Math.round(this.depth3D*Math.cos(this.angle*Math.PI/180));this.dy=Math.round(-this.depth3D*Math.sin(this.angle*Math.PI/180));this.d3x=Math.round(this.columnSpacing3D*Math.cos(this.angle*Math.PI/180));this.d3y=Math.round(-this.columnSpacing3D*Math.sin(this.angle*Math.PI/180))},updateMargins:function(){var b=this.getTitleHeight();this.titleHeight=b;this.marginTopReal=this.marginTop-this.dy;this.fixMargins&&!this.fixMargins.top&&(this.marginTopReal+=b);this.marginBottomReal=this.marginBottom;this.marginLeftReal=this.marginLeft;this.marginRightReal=this.marginRight},updateValueAxes:function(){var e=this.valueAxes,d;for(d=0;di){var h=j,j=i,i=h}this.relativeZoomValueAxes(e,j,i);this.updateAfterValueZoom()},updateAfterValueZoom:function(){this.zoomAxesAndGraphs();this.zoomScrollbar()},relativeZoomValueAxes:function(f,e,l){this.hideBalloonReal();e=a.fitToBounds(e,0,1);l=a.fitToBounds(l,0,1);if(e>l){var k=e;e=l;l=k}var k=1/this.maxZoomFactor,j=a.getDecimals(k)+4;l-ee&&(e=0,l=k));e=a.roundTo(e,j);l=a.roundTo(l,j);k=!1;if(f){for(j=0;je.min-k*e.step&&(l+=k,k=0);0>=e.max&&0h&&(h=1);n*=h;m*=h;if(!o||p.equalSpacing){n=Math.round(n),m=Math.round(m)}}i=this.chartData.length;p=this.lastTime;h=this.firstTime;0>r?o?(i=this.endTime-this.startTime,o=this.startTime+n*j,j=this.endTime+m*j,0=p&&(j=p,o=p-i),this.zoomToDates(new Date(o),new Date(j))):(0=i-1&&(n=m=0),o=this.start+n,j=this.end+m,this.zoomToIndexes(o,j)):o?(i=this.endTime-this.startTime,o=this.startTime-n*j,j=this.endTime-m*j,0this.start&&(n=m=0),o=this.start-n,j=this.end-m,this.zoomToIndexes(o,j))}},validateData:function(f){this.marginsUpdated=!1;this.zoomOutOnDataUpdate&&!f&&(this.endTime=this.end=this.startTime=this.start=NaN);var e=f=!1,h=!1,g=this.chartScrollbar;g&&(g.dragging&&(f=!0,g.handleDragStop()),g.resizingRight&&(h=!0,g.rightDragStop()),g.resizingLeft&&(e=!0,g.leftDragStop()));a.AmSerialChart.base.validateData.call(this);f&&g.handleDragStart();h&&g.rightDragStart();e&&g.leftDragStart()},drawChart:function(){if(0p&&(i=e-p),i!=this.startTime&&e-i>p&&(e=i+p));var o=this.minSelectedTime;if(0j&&(i=j);ej&&(e=j);ethis.firstTime&&(d=!0),this.endTimej&&(f=e-j,i=!0),f!=this.start&&e-f>j&&(e=f+j,i=!0));if(i&&(i=this.chartScrollbar)&&i.dragger){var h=i.dragger.getBBox();i.maxWidth=h.width;i.maxHeight=h.height}if(f!=this.start||e!=this.end){i=this.chartData.length-1,isNaN(f)&&(f=0,isNaN(j)||(f=i-j)),isNaN(e)&&(e=i),ei&&(e=i),f>i&&(f=i-1),0>f&&(f=0),this.start=f,this.end=e,this.categoryAxis.zoom(f,e),this.zoomAxesAndGraphs(),this.zoomScrollbar(),this.fixCursor(),0!==f||e!=this.chartData.length-1?this.showZB(!0):this.showZB(!1),this.syncGrid(),this.updateColumnsDepth(),this.dispatchIndexZoomEvent()}},updateGraphs:function(){a.AmSerialChart.base.updateGraphs.call(this);var e=this.graphs,d;for(d=0;dc.depth?1:-1},zoomScrollbar:function(){var e=this.chartScrollbar,d=this.categoryAxis;if(e){if(!this.zoomedByScrollbar){var f=e.dragger;f&&f.stop()}this.zoomedByScrollbar=!1;d.parseDates&&!d.equalSpacing?e.timeZoom(this.startTime,this.endTime):e.zoom(this.start,this.end)}this.zoomValueScrollbar(this.valueScrollbar)},updateTrendLines:function(){var e=this.trendLines,d;for(d=0;dl&&(l=0);n>i.length-1&&(n=i.length-1);var m=l+Math.round((n-l)/2),j=i[m][h];return p==j?m:1>=n-l?o?l:Math.abs(i[l][h]-p)f&&(f=0),e>g-1&&(e=g-1),g=this.categoryAxis,g.parseDates&&!g.equalSpacing?this.zoom(h[f].time,this.getEndTime(h[e].time)):this.zoom(f,e))}},zoomToDates:function(f,e){var h=this.chartData;if(h){if(this.categoryAxis.equalSpacing){var g=this.getClosestIndex(h,"time",f.getTime(),!0,0,h.length);e=a.resetDateToMin(e,this.categoryAxis.minPeriod,1);h=this.getClosestIndex(h,"time",e.getTime(),!1,0,h.length);this.zoom(g,h)}else{this.zoom(f.getTime(),e.getTime())}}},zoomToCategoryValues:function(d,c){this.chartData&&this.zoom(this.getCategoryIndexByValue(d),this.getCategoryIndexByValue(c))},formatPeriodString:function(ab,aa){if(aa){aa.periodDataItem={};aa.periodPercentDataItem={};var Z=["value","open","low","high","close"],Y="value open low high close average sum count".split(" "),W=aa.valueAxis,V=this.chartData,X=aa.numberFormatter;X||(X=this.nf);for(var U=0;UK||K>P.graph.height){e=NaN}}else{if(0>K||K>P.graph.width){e=NaN}}if(!isNaN(e)){isNaN(s)&&(s=e);j=e;if(isNaN(I)||I>e){I=e}if(isNaN(J)||JP){o=P}if(isNaN(i)||iA&&0===g&&(g=180):0>z&&270==g&&(g=90);this.gradientRotation=g;0===y&&0===w&&(this.cornerRadius=i);this.draw()},draw:function(){var ay=this.set;ay.clear();var ax=this.container,aw=ax.chart,av=this.w,at=this.h,ar=this.dx,au=this.dy,aq=this.colors,ap=this.alpha,ao=this.bwidth,am=this.bcolor,an=this.balpha,ai=this.gradientRotation,ah=this.cornerRadius,af=this.dashLength,Y=this.pattern,aj=this.topRadius,ak=this.bcn,ab=aq,al=aq;"object"==typeof aq&&(ab=aq[0],al=aq[aq.length-1]);var ag,ae,aa,X,Z,ac,ad,R,s,e=ap;Y&&(ap=0);var W,V,U,T,S=this.rotate;if(0Math.abs(at)&&(at=0);1>Math.abs(av)&&(av=0);!isNaN(aj)&&(0at&&(ao=" A"),ap+=ao+Math.round(av/2-U)+","+Math.round(at-T)+","+Math.round(av/2+U)+","+Math.round(at+T)+",0,"+at+","+av+","+at,ap+=" L"+av+",0",ap+=ao+Math.round(av/2+W)+","+Math.round(V)+","+Math.round(av/2-W)+","+Math.round(-V)+","+av+",0,0,0"):(ap+="A"+U+","+T+",0,0,0,"+(av-av/2*(1-aj))+","+at+"L"+av+",0",ap+="A"+W+","+V+",0,0,1,0,0"),W=180),ax=ax.path(ap).attr(aq),ax.gradient("linearGradient",[ab,a.adjustLuminosity(ab,-0.3),a.adjustLuminosity(ab,-0.3),ab],W),S?ax.translate(ar/2,0):ax.translate(0,au/2)):ax=0===at?a.line(ax,[0,av],[0,0],am,an,ao,af):0===av?a.line(ax,[0,0],[0,at],am,an,ao,af):0at?[ag,s,ae,aa,X,Z,ac,ad,R,ax]:[ad,R,ae,aa,X,Z,ag,s,ac,ax]:S?0at?[ag,ax,ad]:[ad,ax,ag];a.setCN(aw,ax,ak+"front");a.setCN(aw,ae,ak+"back");a.setCN(aw,ad,ak+"top");a.setCN(aw,ag,ak+"bottom");a.setCN(aw,X,ak+"left");a.setCN(aw,Z,ak+"right");for(ag=0;agY&&(this.endTime=Y);K=this.minorGridEnabled;i=this.gridAlpha;var e=0,J=0;if(this.widthField){for(Y=this.start;Y<=this.end;Y++){if(H=this.data[Y]){var s=Number(this.data[Y].dataContext[this.widthField]);isNaN(s)||(e+=s,H.widthValue=s)}}}if(this.parseDates&&!this.equalSpacing){this.lastTime=Z[Z.length-1].time,this.maxTime=a.resetDateToMin(new Date(this.lastTime+1.05*z),this.minPeriod,1,L).getTime(),this.timeDifference=this.endTime-this.startTime,this.parseDatesDraw()}else{if(!this.parseDates){if(this.cellWidth=this.getStepWidth(V),VV&&(V=0),j=0,this.widthField&&(V=this.start,L=1),this.end-V+1>=this.autoRotateCount&&(this.labelRotationR=this.autoRotateAngle),Y=V;Y<=this.end+2;Y++){S=!1;0<=Y&&Ythis.end&&"start"==this.tickPosition&&(P=" ");this.rotate&&this.inside&&(S-=2);isNaN(o.widthValue)||(o.percentWidthValue=o.widthValue/e*100,Z=this.rotate?this.height*o.widthValue/e:this.width*o.widthValue/e,V=J,J+=Z,G=S=Z/2);O=new this.axisItemRenderer(this,V,P,O,Z,S,void 0,z,G,!1,o.labelColor,o.className);O.serialDataItem=o;this.pushAxisItem(O);this.gridAlpha=i}}}else{if(this.parseDates&&this.equalSpacing){T=this.start;this.startTime=this.data[this.start].time;this.endTime=this.data[this.end].time;this.timeDifference=this.endTime-this.startTime;Y=this.choosePeriod(0);U=Y.period;o=Y.count;Y=a.getPeriodDuration(U,o);YV&&(V=0);J=this.end+2;J>=this.data.length&&(J=this.data.length);Z=!1;Z=!R;this.previousPos=-1000;20=s){V=this.getCoordinate(Y-this.start);K=!1;this.nextPeriod[i]&&(K=this.checkPeriodChange(this.nextPeriod[i],1,H,P,i))&&a.resetDateToMin(new Date(H),this.nextPeriod[i],1,L).getTime()!=H&&(K=!1);z=!1;K&&this.markPeriodChange?(K=this.dateFormatsObject[this.nextPeriod[i]],z=!0):K=this.dateFormatsObject[i];P=a.formatDate(new Date(H),K,X);if(Y==W&&!R||Y==S&&!Q){P=" "}Z?Z=!1:(j||(z=!1),V-this.previousPos>this.safeDistance*Math.cos(this.labelRotationR*Math.PI/180)&&(this.labelFunction&&(P=this.labelFunction(P,new Date(H),this,U,o,G)),this.boldLabels&&(z=!0),O=new this.axisItemRenderer(this,V,P,void 0,void 0,void 0,void 0,z),K=O.graphics(),this.pushAxisItem(O),K=K.getBBox().width,a.isModern||(K-=V),this.previousPos=V+K));G=P=H}}}}}}for(Y=R=0;Ythis.height+1&&l--:j>this.width+1&&l--;0>j&&l++;return l=a.fitToBounds(l,0,e.length-1)},dateToCoordinate:function(b){return this.parseDates&&!this.equalSpacing?(b.getTime()-this.startTime)*this.stepWidth:this.parseDates&&this.equalSpacing?(b=this.chart.getClosestIndex(this.data,"time",b.getTime(),!1,0,this.data.length-1),this.getCoordinate(b-this.start)):NaN},categoryToCoordinate:function(b){if(this.chart){if(this.parseDates){return this.dateToCoordinate(new Date(b))}b=this.chart.getCategoryIndexByValue(b);if(!isNaN(b)){return this.getCoordinate(b-this.start)}}else{return NaN}},coordinateToDate:function(b){return this.equalSpacing?(b=this.xToIndex(b),new Date(this.data[b].time)):new Date(this.startTime+b/this.stepWidth)},coordinateToValue:function(b){b=this.xToIndex(b);if(b=this.data[b]){return this.parseDates?b.time:b.category}},getCoordinate:function(b){b*=this.stepWidth;this.startOnAxis||(b+=this.stepWidth/2);return Math.round(b)},formatValue:function(d,c){c||(c=this.currentDateFormat);this.parseDates&&(d=a.formatDate(new Date(d),c,this.chart));return d},showBalloonAt:function(d,c){void 0===c&&(c=this.parseDates?this.dateToCoordinate(new Date(d)):this.categoryToCoordinate(d));return this.adjustBalloonCoordinate(c)},formatBalloonText:function(i,e,p){var o="",m="",l=this.chart,n=this.data[e];if(n){if(this.parseDates){o=a.formatDate(n.category,p,l),e=a.changeDate(new Date(n.category),this.minPeriod,1),m=a.formatDate(e,p,l),-1!=o.indexOf("fff")&&(o=a.formatMilliseconds(o,n.category),m=a.formatMilliseconds(m,e))}else{var j;this.data[e+1]&&(j=this.data[e+1]);o=a.fixNewLines(n.category);j&&(m=a.fixNewLines(j.category))}}i=i.replace(/\[\[category\]\]/g,String(o));return i=i.replace(/\[\[toCategory\]\]/g,String(m))},adjustBalloonCoordinate:function(i,g){var p=this.xToIndex(i),o=this.chart.chartCursor;if(this.stickBalloonToCategory){var n=this.data[p];n&&(i=n.x[this.id]);this.stickBalloonToStart&&(i-=this.cellWidth/2);var l=0;if(o){var m=o.limitToGraph;if(m){var j=m.valueAxis.id;m.hidden||(l=n.axes[j].graphs[m.id].y)}this.rotate?("left"==this.position?(m&&(l-=o.width),0l&&(l=0),o.fixHLine(i,l)):("top"==this.position?(m&&(l-=o.height),0l&&(l=0),o.fullWidth&&(i+=1),o.fixVLine(i,l))}}o&&!g&&(o.setIndex(p),this.parseDates&&o.setTimestamp(this.coordinateToDate(i).getTime()));return i}})})();