amcharts.rb 3.11.2.14 → 3.11.2.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +5 -13
  2. data/.travis.yml +12 -0
  3. data/README.md +1 -1
  4. data/amcharts.rb.gemspec +12 -5
  5. data/lib/amcharts/chart.rb +22 -2
  6. data/lib/amcharts/settings.rb +2 -2
  7. data/lib/amcharts/version.rb +1 -1
  8. data/spec/chart_spec.rb +96 -11
  9. data/vendor/assets/javascripts/amcharts/amcharts.js +380 -380
  10. data/vendor/assets/javascripts/amcharts/amstock.js +97 -97
  11. data/vendor/assets/javascripts/amcharts/changeLog.txt +1070 -1070
  12. data/vendor/assets/javascripts/amcharts/exporting/amexport.js +854 -854
  13. data/vendor/assets/javascripts/amcharts/exporting/canvg.js +2841 -2841
  14. data/vendor/assets/javascripts/amcharts/exporting/rgbcolor.js +288 -288
  15. data/vendor/assets/javascripts/amcharts/funnel.js +16 -16
  16. data/vendor/assets/javascripts/amcharts/gauge.js +19 -19
  17. data/vendor/assets/javascripts/amcharts/lang/de.js +12 -12
  18. data/vendor/assets/javascripts/amcharts/licence.txt +15 -15
  19. data/vendor/assets/javascripts/amcharts/pie.js +9 -9
  20. data/vendor/assets/javascripts/amcharts/radar.js +9 -9
  21. data/vendor/assets/javascripts/amcharts/serial.js +56 -56
  22. data/vendor/assets/javascripts/amcharts/themes/black.js +205 -205
  23. data/vendor/assets/javascripts/amcharts/themes/chalk.js +216 -216
  24. data/vendor/assets/javascripts/amcharts/themes/dark.js +204 -204
  25. data/vendor/assets/javascripts/amcharts/themes/light.js +198 -198
  26. data/vendor/assets/javascripts/amcharts/themes/patterns.js +258 -258
  27. data/vendor/assets/javascripts/amcharts/thirdPartySoftwareList.txt +33 -33
  28. data/vendor/assets/javascripts/amcharts/xy.js +16 -16
  29. metadata +69 -49
@@ -1,98 +1,98 @@
1
- AmCharts.AmStockChart=AmCharts.Class({construct:function(a){this.type="stock";this.cname="AmStockChart";this.version="3.11.2";this.theme=a;this.createEvents("zoomed","rollOverStockEvent","rollOutStockEvent","clickStockEvent","panelRemoved","dataUpdated","init","rendered","drawn");this.colors="#FF6600 #FCD202 #B0DE09 #0D8ECF #2A0CD0 #CD0D74 #CC0000 #00CC00 #0000CC #DDDDDD #999999 #333333 #990000".split(" ");this.firstDayOfWeek=1;this.glueToTheEnd=!1;this.dataSetCounter=-1;this.zoomOutOnDataSetChange=
2
- !1;this.panels=[];this.dataSets=[];this.chartCursors=[];this.comparedDataSets=[];this.categoryAxesSettings=new AmCharts.CategoryAxesSettings(a);this.valueAxesSettings=new AmCharts.ValueAxesSettings(a);this.panelsSettings=new AmCharts.PanelsSettings(a);this.chartScrollbarSettings=new AmCharts.ChartScrollbarSettings(a);this.chartCursorSettings=new AmCharts.ChartCursorSettings(a);this.stockEventsSettings=new AmCharts.StockEventsSettings(a);this.legendSettings=new AmCharts.LegendSettings(a);this.balloon=
3
- new AmCharts.AmBalloon(a);this.previousEndDate=new Date(0);this.previousStartDate=new Date(0);this.dataSetCount=this.graphCount=0;this.chartCreated=!1;this.extendToFullPeriod=!0;AmCharts.applyTheme(this,a,this.cname)},write:function(a){var b=this.theme;this.initHC||(AmCharts.callInitHandler(this),this.initHC=!0);AmCharts.applyLang(this.language,this);var c=this.exportConfig;c&&AmCharts.AmExport&&!this.AmExport&&(this.AmExport=new AmCharts.AmExport(this,c));this.amExport&&AmCharts.AmExport&&(this.AmExport=
4
- AmCharts.extend(this.amExport,new AmCharts.AmExport(this),!0));this.AmExport&&this.AmExport.init();this.chartRendered=!1;a="object"!=typeof a?document.getElementById(a):a;this.zoomOutOnDataSetChange&&(this.endDate=this.startDate=void 0);this.categoryAxesSettings=AmCharts.processObject(this.categoryAxesSettings,AmCharts.CategoryAxesSettings,b);this.valueAxesSettings=AmCharts.processObject(this.valueAxesSettings,AmCharts.ValueAxesSettings,b);this.chartCursorSettings=AmCharts.processObject(this.chartCursorSettings,
5
- AmCharts.ChartCursorSettings,b);this.chartScrollbarSettings=AmCharts.processObject(this.chartScrollbarSettings,AmCharts.ChartScrollbarSettings,b);this.legendSettings=AmCharts.processObject(this.legendSettings,AmCharts.LegendSettings,b);this.panelsSettings=AmCharts.processObject(this.panelsSettings,AmCharts.PanelsSettings,b);this.stockEventsSettings=AmCharts.processObject(this.stockEventsSettings,AmCharts.StockEventsSettings,b);this.dataSetSelector&&(this.dataSetSelector=AmCharts.processObject(this.dataSetSelector,
6
- AmCharts.DataSetSelector,b));this.periodSelector&&(this.periodSelector=AmCharts.processObject(this.periodSelector,AmCharts.PeriodSelector,b));a.innerHTML="";this.div=a;this.measure();this.createLayout();this.updateDataSets();this.addDataSetSelector();this.addPeriodSelector();this.addPanels();this.updatePanels();this.addChartScrollbar();this.updateData();this.skipDefault||this.setDefaultPeriod()},setDefaultPeriod:function(a){var b=this.periodSelector;b&&(this.animationPlayed=!1,b.setDefaultPeriod(a))},
7
- validateSize:function(){var a,b=this.panels;this.measurePanels();for(a=0;a<b.length;a++)panel=b[a],panel.invalidateSize()},updateDataSets:function(){var a=this.mainDataSet,b=this.dataSets,c;for(c=0;c<b.length;c++){var d=b[c],d=AmCharts.processObject(d,AmCharts.DataSet);b[c]=d;d.id||(this.dataSetCount++,d.id="ds"+this.dataSetCount);void 0===d.color&&(d.color=this.colors.length-1>c?this.colors[c]:AmCharts.randomColor())}!a&&AmCharts.ifArray(b)&&(this.mainDataSet=this.dataSets[0])},updateEvents:function(a){AmCharts.ifArray(a.stockEvents)&&
8
- AmCharts.parseEvents(a,this.panels,this.stockEventsSettings,this.firstDayOfWeek,this,this.dataDateFormat)},getLastDate:function(a){var b=this.dataDateFormat;a=a instanceof Date?new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()):b?AmCharts.stringToDate(a,b):new Date(a);return new Date(AmCharts.changeDate(a,this.categoryAxesSettings.minPeriod,1,!0).getTime()-1)},getFirstDate:function(a){var b=this.dataDateFormat;a=a instanceof Date?new Date(a.getFullYear(),
9
- a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()):b?AmCharts.stringToDate(a,b):new Date(a);return new Date(AmCharts.resetDateToMin(a,this.categoryAxesSettings.minPeriod,1,this.firstDayOfWeek))},updateData:function(){var a=this.mainDataSet;if(a){var b=this.categoryAxesSettings;-1==AmCharts.getItemIndex(b.minPeriod,b.groupToPeriods)&&b.groupToPeriods.unshift(b.minPeriod);var c=a.dataProvider;if(AmCharts.ifArray(c)){var d=a.categoryField;this.firstDate=this.getFirstDate(c[0][d]);
10
- this.lastDate=this.getLastDate(c[c.length-1][d]);this.periodSelector&&this.periodSelector.setRanges(this.firstDate,this.lastDate);a.dataParsed||(AmCharts.parseStockData(a,b.minPeriod,b.groupToPeriods,this.firstDayOfWeek,this.dataDateFormat),a.dataParsed=!0);this.updateComparingData();this.updateEvents(a)}else this.lastDate=this.firstDate=void 0;this.glueToTheEnd&&this.startDate&&this.endDate&&this.lastDate&&(AmCharts.getPeriodDuration(b.minPeriod),this.startDate=new Date(this.startDate.getTime()+
11
- (this.lastDate.getTime()-this.endDate.getTime())),this.endDate=this.lastDate,this.updateScrollbar=!0);this.updatePanelsWithNewData()}a={type:"dataUpdated",chart:this};this.fire(a.type,a)},updateComparingData:function(){var a=this.comparedDataSets,b=this.categoryAxesSettings,c;for(c=0;c<a.length;c++){var d=a[c];d.dataParsed||(AmCharts.parseStockData(d,b.minPeriod,b.groupToPeriods,this.firstDayOfWeek,this.dataDateFormat),d.dataParsed=!0);this.updateEvents(d)}},createLayout:function(){var a=this.div,
12
- b,c,d=document.createElement("div");d.style.position="relative";this.containerDiv=d;a.appendChild(d);if(a=this.periodSelector)b=a.position;if(a=this.dataSetSelector)c=a.position;if("left"==b||"left"==c)a=document.createElement("div"),a.style.cssFloat="left",a.style.styleFloat="left",a.style.width="0px",a.style.position="absolute",d.appendChild(a),this.leftContainer=a;if("right"==b||"right"==c)b=document.createElement("div"),b.style.cssFloat="right",b.style.styleFloat="right",b.style.width="0px",d.appendChild(b),
13
- this.rightContainer=b;b=document.createElement("div");d.appendChild(b);this.centerContainer=b;d=document.createElement("div");b.appendChild(d);this.panelsContainer=d},addPanels:function(){this.measurePanels();for(var a=this.panels,b=0;b<a.length;b++){var c=a[b],c=AmCharts.processObject(c,AmCharts.StockPanel,this.theme);a[b]=c;this.addStockPanel(c,b)}this.panelsAdded=!0},measurePanels:function(){this.measure();var a=this.chartScrollbarSettings,b=this.divRealHeight,c=this.panelsSettings.panelSpacing;
14
- a.enabled&&(b-=a.height);(a=this.periodSelector)&&!a.vertical&&(a=a.offsetHeight,b-=a+c);(a=this.dataSetSelector)&&!a.vertical&&(a=a.offsetHeight,b-=a+c);a=this.panels;this.panelsContainer.style.height=b+"px";this.chartCursors=[];var d=0,e,k;for(e=0;e<a.length;e++){k=a[e];var f=k.percentHeight;isNaN(f)&&(f=100/a.length,k.percentHeight=f);d+=f}this.panelsHeight=Math.max(b-c*(a.length-1),0);for(e=0;e<a.length;e++)k=a[e],k.percentHeight=k.percentHeight/d*100,k.panelBox&&(k.panelBox.style.height=Math.round(k.percentHeight*
15
- this.panelsHeight/100)+"px")},addStockPanel:function(a,b){var c=this.panelsSettings,d=document.createElement("div");d.className="amChartsPanel";0<b&&!this.panels[b-1].showCategoryAxis&&(d.style.marginTop=c.panelSpacing+"px");a.panelBox=d;a.stockChart=this;a.id||(a.id="stockPanel"+b);a.pathToImages=this.pathToImages;d.style.height=Math.round(a.percentHeight*this.panelsHeight/100)+"px";d.style.width="100%";this.panelsContainer.appendChild(d);0<c.backgroundAlpha&&(d.style.backgroundColor=c.backgroundColor);
16
- if(d=a.stockLegend)d.container=void 0,d.title=a.title,d.marginLeft=c.marginLeft,d.marginRight=c.marginRight,d.verticalGap=3,d.position="top",AmCharts.copyProperties(this.legendSettings,d),a.addLegend(d,d.divId);a.zoomOutText="";this.addCursor(a)},enableCursors:function(a){var b=this.chartCursors,c;for(c=0;c<b.length;c++)b[c].enabled=a},updatePanels:function(){var a=this.panels,b;for(b=0;b<a.length;b++)this.updatePanel(a[b]);this.mainDataSet&&this.updateGraphs();this.currentPeriod=void 0},updatePanel:function(a){a.seriesIdField=
17
- "amCategoryIdField";a.dataProvider=[];a.chartData=[];a.graphs=[];var b=a.categoryAxis,c=this.categoryAxesSettings;AmCharts.copyProperties(this.panelsSettings,a);AmCharts.copyProperties(c,b);b.parseDates=!0;a.zoomOutOnDataUpdate=!1;a.mouseWheelScrollEnabled=this.mouseWheelScrollEnabled;a.dataDateFormat=this.dataDateFormat;a.language=this.language;a.showCategoryAxis?"top"==b.position?a.marginTop=c.axisHeight:a.marginBottom=c.axisHeight:(a.categoryAxis.labelsEnabled=!1,a.chartCursor&&(a.chartCursor.categoryBalloonEnabled=
18
- !1));var c=a.valueAxes,d=c.length,e;0===d&&(e=new AmCharts.ValueAxis(this.theme),a.addValueAxis(e));b=new AmCharts.AmBalloon(this.theme);AmCharts.copyProperties(this.balloon,b);a.balloon=b;c=a.valueAxes;d=c.length;for(b=0;b<d;b++)e=c[b],AmCharts.copyProperties(this.valueAxesSettings,e);a.listenersAdded=!1;a.write(a.panelBox)},zoom:function(a,b){this.zoomChart(a,b)},zoomOut:function(){this.zoomChart(this.firstDate,this.lastDate)},updatePanelsWithNewData:function(){var a=this.mainDataSet,b=this.scrollbarChart;
19
- if(a){var c=this.panels;this.currentPeriod=void 0;var d;for(d=0;d<c.length;d++){var e=c[d];e.categoryField=a.categoryField;0===a.dataProvider.length&&(e.dataProvider=[]);e.scrollbarChart=b}b&&(c=this.categoryAxesSettings,d=c.minPeriod,b.categoryField=a.categoryField,0<a.dataProvider.length?(e=this.chartScrollbarSettings.usePeriod,b.dataProvider=e?a.agregatedDataProviders[e]:a.agregatedDataProviders[d]):b.dataProvider=[],e=b.categoryAxis,e.minPeriod=d,e.firstDayOfWeek=this.firstDayOfWeek,e.equalSpacing=
20
- c.equalSpacing,e.axisAlpha=0,e.markPeriodChange=c.markPeriodChange,b.bbsetr=!0,b.validateData(),c=this.panelsSettings,b.maxSelectedTime=c.maxSelectedTime,b.minSelectedTime=c.minSelectedTime);0<a.dataProvider.length&&this.zoomChart(this.startDate,this.endDate)}this.panelDataInvalidated=!1},addChartScrollbar:function(){var a=this.chartScrollbarSettings,b=this.scrollbarChart;b&&(b.clear(),b.destroy());if(a.enabled){var c=this.panelsSettings,d=this.categoryAxesSettings,b=new AmCharts.AmSerialChart(this.theme);
21
- b.language=this.language;b.pathToImages=this.pathToImages;b.autoMargins=!1;this.scrollbarChart=b;b.id="scrollbarChart";b.scrollbarOnly=!0;b.zoomOutText="";b.panEventsEnabled=this.panelsSettings.panEventsEnabled;b.marginLeft=c.marginLeft;b.marginRight=c.marginRight;b.marginTop=0;b.marginBottom=0;var c=d.dateFormats,e=b.categoryAxis;e.boldPeriodBeginning=d.boldPeriodBeginning;c&&(e.dateFormats=d.dateFormats);e.labelsEnabled=!1;e.parseDates=!0;d=a.graph;if(AmCharts.isString(d)){c=this.panels;for(e=0;e<
22
- c.length;e++){var k=AmCharts.getObjById(c[e].stockGraphs,a.graph);k&&(d=k)}a.graph=d}var f;d&&(f=new AmCharts.AmGraph(this.theme),f.valueField=d.valueField,f.periodValue=d.periodValue,f.type=d.type,f.connect=d.connect,f.minDistance=a.minDistance,b.addGraph(f));d=new AmCharts.ChartScrollbar(this.theme);b.addChartScrollbar(d);AmCharts.copyProperties(a,d);d.scrollbarHeight=a.height;d.graph=f;this.listenTo(d,"zoomed",this.handleScrollbarZoom);f=document.createElement("div");f.style.height=a.height+"px";
23
- d=this.periodSelectorContainer;c=this.periodSelector;e=this.centerContainer;"bottom"==a.position?c?"bottom"==c.position?e.insertBefore(f,d):e.appendChild(f):e.appendChild(f):c?"top"==c.position?e.insertBefore(f,d.nextSibling):e.insertBefore(f,e.firstChild):e.insertBefore(f,e.firstChild);b.write(f)}},handleScrollbarZoom:function(a){if(this.skipScrollbarEvent)this.skipScrollbarEvent=!1;else{var b=a.endDate,c={};c.startDate=a.startDate;c.endDate=b;this.updateScrollbar=!1;this.handleZoom(c)}},addPeriodSelector:function(){var a=
24
- this.periodSelector;if(a){var b=this.categoryAxesSettings.minPeriod;a.minDuration=AmCharts.getPeriodDuration(b);a.minPeriod=b;a.chart=this;var c=this.dataSetSelector,d,b=this.dssContainer;c&&(d=c.position);var c=this.panelsSettings.panelSpacing,e=document.createElement("div");this.periodSelectorContainer=e;var k=this.leftContainer,f=this.rightContainer,h=this.centerContainer,g=this.panelsContainer,n=a.width+2*c+"px";switch(a.position){case "left":k.style.width=a.width+"px";k.appendChild(e);h.style.paddingLeft=
25
- n;break;case "right":h.style.marginRight=n;f.appendChild(e);f.style.width=a.width+"px";break;case "top":g.style.clear="both";h.insertBefore(e,g);e.style.paddingBottom=c+"px";e.style.overflow="hidden";break;case "bottom":e.style.marginTop=c+"px","bottom"==d?h.insertBefore(e,b):h.appendChild(e)}this.listenTo(a,"changed",this.handlePeriodSelectorZoom);a.write(e)}},addDataSetSelector:function(){var a=this.dataSetSelector;if(a){a.chart=this;a.dataProvider=this.dataSets;var b=a.position,c=this.panelsSettings.panelSpacing,
26
- d=document.createElement("div");this.dssContainer=d;var e=this.leftContainer,k=this.rightContainer,f=this.centerContainer,h=this.panelsContainer,c=a.width+2*c+"px";switch(b){case "left":e.style.width=a.width+"px";e.appendChild(d);f.style.paddingLeft=c;break;case "right":f.style.marginRight=c;k.appendChild(d);k.style.width=a.width+"px";break;case "top":h.style.clear="both";f.insertBefore(d,h);d.style.overflow="hidden";break;case "bottom":f.appendChild(d)}a.write(d)}},handlePeriodSelectorZoom:function(a){var b=
27
- this.scrollbarChart;b&&(b.updateScrollbar=!0);a.predefinedPeriod?(this.predefinedStart=a.startDate,this.predefinedEnd=a.endDate):this.predefinedEnd=this.predefinedStart=null;this.zoomChart(a.startDate,a.endDate)},addCursor:function(a){var b=this.chartCursorSettings;if(b.enabled){var c=new AmCharts.ChartCursor(this.theme);AmCharts.copyProperties(b,c);a.chartCursor&&AmCharts.copyProperties(a.chartCursor,c);a.removeChartCursor();a.addChartCursor(c);this.listenTo(c,"changed",this.handleCursorChange);
28
- this.listenTo(c,"onHideCursor",this.hideChartCursor);this.listenTo(c,"zoomed",this.handleCursorZoom);this.chartCursors.push(c)}},hideChartCursor:function(){var a=this.chartCursors,b;for(b=0;b<a.length;b++){var c=a[b];c.hideCursor(!1);(c=c.chart)&&c.updateLegendValues()}},handleCursorZoom:function(a){var b=this.scrollbarChart;b&&(b.updateScrollbar=!0);var b={},c;if(this.categoryAxesSettings.equalSpacing){var d=this.mainDataSet.categoryField,e=this.mainDataSet.agregatedDataProviders[this.currentPeriod];
29
- c=new Date(e[a.start][d]);a=new Date(e[a.end][d])}else c=new Date(a.start),a=new Date(a.end);b.startDate=c;b.endDate=a;this.handleZoom(b)},handleZoom:function(a){this.zoomChart(a.startDate,a.endDate)},zoomChart:function(a,b){var c=new Date(a),d=this,e=d.firstDate,k=d.lastDate,f=d.currentPeriod,h=d.categoryAxesSettings,g=h.minPeriod,n=d.panelsSettings,m=d.periodSelector,t=d.panels,r=d.comparedGraphs,v=d.scrollbarChart,w=d.firstDayOfWeek;if(e&&k){a||(a=e);b||(b=k);if(f){var l=AmCharts.extractPeriod(f);
30
- a.getTime()==b.getTime()&&l!=g&&(b=AmCharts.changeDate(b,l.period,l.count),b.setTime(b.getTime()-1))}a.getTime()<e.getTime()&&(a=e);a.getTime()>k.getTime()&&(a=k);b.getTime()<e.getTime()&&(b=e);b.getTime()>k.getTime()&&(b=k);l=AmCharts.getItemIndex(g,h.groupToPeriods);h=f;f=d.choosePeriod(l,a,b);d.currentPeriod=f;var l=AmCharts.extractPeriod(f),y=AmCharts.getPeriodDuration(l.period,l.count);AmCharts.getPeriodDuration(g);1>b.getTime()-a.getTime()&&(a=new Date(b.getTime()-1));g=AmCharts.newDate(a);
31
- d.extendToFullPeriod&&(g.getTime()-e.getTime()<.1*y&&(g=AmCharts.resetDateToMin(a,l.period,l.count,w)),k.getTime()-b.getTime()<.1*y&&(b=AmCharts.resetDateToMin(k,l.period,l.count,w),b=AmCharts.changeDate(b,l.period,l.count,!0)));for(e=0;e<t.length;e++)k=t[e],k.chartCursor&&k.chartCursor.panning&&(g=c);for(e=0;e<t.length;e++){k=t[e];if(f!=h){for(c=0;c<r.length;c++)y=r[c].graph,y.dataProvider=y.dataSet.agregatedDataProviders[f];c=k.categoryAxis;c.firstDayOfWeek=w;c.minPeriod=f;k.dataProvider=d.mainDataSet.agregatedDataProviders[f];
32
- if(c=k.chartCursor)c.categoryBalloonDateFormat=d.chartCursorSettings.categoryBalloonDateFormat(l.period),k.showCategoryAxis||(c.categoryBalloonEnabled=!1);k.startTime=g.getTime();k.endTime=b.getTime();k.validateData(!0)}c=!1;k.chartCursor&&k.chartCursor.panning&&(c=!0);c||(k.startTime=void 0,k.endTime=void 0,k.zoomToDates(g,b));0<n.startDuration&&d.animationPlayed&&!c?(k.startDuration=0,k.animateAgain()):0<n.startDuration&&!c&&k.animateAgain()}d.animationPlayed=!0;AmCharts.extractPeriod(f);n=new Date(b);
33
- v&&d.updateScrollbar&&(v.zoomToDates(a,n),d.skipScrollbarEvent=!0,setTimeout(function(){d.resetSkip.call(d)},100));d.updateScrollbar=!0;d.startDate=a;d.endDate=b;m&&m.zoom(a,b);if(a.getTime()!=d.previousStartDate.getTime()||b.getTime()!=d.previousEndDate.getTime())m={type:"zoomed"},m.startDate=a,m.endDate=b,m.chart=d,m.period=f,d.fire(m.type,m),d.previousStartDate=new Date(a),d.previousEndDate=new Date(b)}d.eventsHidden&&d.showHideEvents(!1);d.chartCreated||(f="init",d.fire(f,{type:f,chart:d}));d.chartRendered||
34
- (f="rendered",d.fire(f,{type:f,chart:d}),d.chartRendered=!0);f="drawn";d.fire(f,{type:f,chart:d});d.chartCreated=!0;d.animationPlayed=!0},resetSkip:function(){this.skipScrollbarEvent=!1},updateGraphs:function(){this.getSelections();if(0<this.dataSets.length){var a=this.panels;this.comparedGraphs=[];var b;for(b=0;b<a.length;b++){var c=a[b],d=c.valueAxes,e;for(e=0;e<d.length;e++){var k=d[e];k.prevLog&&(k.logarithmic=k.prevLog);k.recalculateToPercents="always"==c.recalculateToPercents?!0:!1}d=this.mainDataSet;
35
- e=this.comparedDataSets;k=c.stockGraphs;c.graphs=[];var f;for(f=0;f<k.length;f++){var h=k[f],h=AmCharts.processObject(h,AmCharts.StockGraph,this.theme);k[f]=h;if(!h.title||h.resetTitleOnDataSetChange)h.title=d.title,h.resetTitleOnDataSetChange=!0;h.useDataSetColors&&(h.lineColor=d.color,h.fillColors=void 0,h.bulletColor=void 0);var g=!1,n=d.fieldMappings,m;for(m=0;m<n.length;m++){var t=n[m],r=h.valueField;r&&t.toField==r&&(g=!0);(r=h.openField)&&t.toField==r&&(g=!0);(r=h.closeField)&&t.toField==r&&
36
- (g=!0);(r=h.lowField)&&t.toField==r&&(g=!0)}g&&c.addGraph(h);r=!1;"always"==c.recalculateToPercents&&(r=!0);var v=c.stockLegend,w,l,y,z;v&&(v=AmCharts.processObject(v,AmCharts.StockLegend,this.theme),c.stockLegend=v,w=v.valueTextComparing,l=v.valueTextRegular,y=v.periodValueTextComparing,z=v.periodValueTextRegular);if(h.comparable){var x=e.length;0<x&&h.valueAxis.logarithmic&&"never"!=c.recalculateToPercents&&(h.valueAxis.logarithmic=!1,h.valueAxis.prevLog=!0);0<x&&"whenComparing"==c.recalculateToPercents&&
37
- (h.valueAxis.recalculateToPercents=!0);v&&h.valueAxis&&!0===h.valueAxis.recalculateToPercents&&(r=!0);var B;for(B=0;B<x;B++){var A=e[B],q=h.comparedGraphs[A.id];q||(q=new AmCharts.AmGraph(this.theme),q.id="comparedGraph"+B+"_"+f+A.id);q.periodValue=h.periodValue;q.dataSet=A;q.behindColumns=h.behindColumns;h.comparedGraphs[A.id]=q;q.seriesIdField="amCategoryIdField";q.connect=h.connect;var s=h.compareField;s||(s=h.valueField);g=!1;n=A.fieldMappings;m;for(m=0;m<n.length;m++)t=n[m],t.toField==s&&(g=
38
- !0);if(g){q.valueField=s;q.title=A.title;q.lineColor=A.color;h.compareGraphType&&(q.type=h.compareGraphType);g=h.compareGraphLineThickness;isNaN(g)||(q.lineThickness=g);g=h.compareGraphDashLength;isNaN(g)||(q.dashLength=g);g=h.compareGraphLineAlpha;isNaN(g)||(q.lineAlpha=g);g=h.compareGraphCornerRadiusTop;isNaN(g)||(q.cornerRadiusTop=g);g=h.compareGraphCornerRadiusBottom;isNaN(g)||(q.cornerRadiusBottom=g);g=h.compareGraphBalloonColor;isNaN(g)||(q.balloonColor=g);g=h.compareGraphBulletColor;isNaN(g)||
39
- (q.bulletColor=g);if(g=h.compareGraphFillColors)q.fillColors=g;if(g=h.compareGraphNegativeFillColors)q.negativeFillColors=g;if(g=h.compareGraphFillAlphas)q.fillAlphas=g;if(g=h.compareGraphNegativeFillAlphas)q.negativeFillAlphas=g;if(g=h.compareGraphBullet)q.bullet=g;if(g=h.compareGraphNumberFormatter)q.numberFormatter=g;g=h.compareGraphPrecision;isNaN(g)||(q.precision=g);if(g=h.compareGraphBalloonText)q.balloonText=g;g=h.compareGraphBulletSize;isNaN(g)||(q.bulletSize=g);g=h.compareGraphBulletAlpha;
40
- isNaN(g)||(q.bulletAlpha=g);g=h.compareGraphBulletBorderAlpha;isNaN(g)||(q.bulletBorderAlpha=g);if(g=h.compareGraphBulletBorderColor)q.bulletBorderColor=g;g=h.compareGraphBulletBorderThickness;isNaN(g)||(q.bulletBorderThickness=g);q.visibleInLegend=h.compareGraphVisibleInLegend;q.balloonFunction=h.compareGraphBalloonFunction;q.hideBulletsCount=h.hideBulletsCount;q.valueAxis=h.valueAxis;v&&(r&&w?(q.legendValueText=w,q.legendPeriodValueText=y):(l&&(q.legendValueText=l),q.legendPeriodValueText=z));c.showComparedOnTop?
41
- c.graphs.push(q):c.graphs.unshift(q);this.comparedGraphs.push({graph:q,dataSet:A})}}}v&&(r&&w?(h.legendValueText=w,h.legendPeriodValueText=y):(l&&(h.legendValueText=l),h.legendPeriodValueText=z))}}}},choosePeriod:function(a,b,c){var d=this.categoryAxesSettings,e=d.groupToPeriods,k=e[a],e=e[a+1],f=AmCharts.extractPeriod(k),f=AmCharts.getPeriodDuration(f.period,f.count),h=b.getTime(),g=c.getTime(),d=d.maxSeries;return(g-h)/f>d&&0<d&&e?this.choosePeriod(a+1,b,c):k},handleCursorChange:function(a){var b=
42
- a.target,c=a.position,d=a.zooming;a=a.index;var e=this.chartCursors,k;for(k=0;k<e.length;k++){var f=e[k];f!=b&&c&&(f.isZooming(d),f.previousMousePosition=NaN,f.forceShow=!0,f.initialMouse=b.initialMouse,f.selectionPosX=b.selectionPosX,f.setPosition(c,!1,a))}},getSelections:function(){var a=[],b=this.dataSets,c;for(c=0;c<b.length;c++){var d=b[c];d.compared&&a.push(d)}this.comparedDataSets=a;b=this.panels;for(c=0;c<b.length;c++)d=b[c],"never"!=d.recalculateToPercents&&0<a.length?d.hideDrawingIcons(!0):
43
- d.drawingIconsEnabled&&d.hideDrawingIcons(!1)},addPanel:function(a){this.panels.push(a);AmCharts.removeChart(a);AmCharts.addChart(a)},addPanelAt:function(a,b){this.panels.splice(b,0,a);AmCharts.removeChart(a);AmCharts.addChart(a)},removePanel:function(a){var b=this.panels,c;for(c=b.length-1;0<=c;c--)if(b[c]==a){var d={type:"panelRemoved",panel:a,chart:this};this.fire(d.type,d);b.splice(c,1);a.destroy();a.clear()}},validateData:function(){this.resetDataParsed();this.updateDataSets();this.mainDataSet.compared=
44
- !1;this.updateGraphs();this.updateData();var a=this.dataSetSelector;a&&a.write(a.div)},resetDataParsed:function(){var a=this.dataSets,b;for(b=0;b<a.length;b++)a[b].dataParsed=!1},validateNow:function(){this.skipDefault=!0;this.chartRendered=!1;this.clear(!0);this.write(this.div)},hideStockEvents:function(){this.showHideEvents(!1);this.eventsHidden=!0},showStockEvents:function(){this.showHideEvents(!0);this.eventsHidden=!1},showHideEvents:function(a){var b=this.panels,c;for(c=0;c<b.length;c++){var d=
45
- b[c].graphs,e;for(e=0;e<d.length;e++){var k=d[e];!0===a?k.showBullets():k.hideBullets()}}},invalidateSize:function(){var a=this;clearTimeout(a.validateTO);var b=setTimeout(function(){a.validateNow()},5);a.validateTO=b},measure:function(){var a=this.div,b=a.offsetWidth,c=a.offsetHeight;a.clientHeight&&(b=a.clientWidth,c=a.clientHeight);this.divRealWidth=b;this.divRealHeight=c},clear:function(a){var b=this.panels,c;if(b)for(c=0;c<b.length;c++){var d=b[c];a||(d.cleanChart(),d.destroy());d.clear(a)}(b=
46
- this.scrollbarChart)&&b.clear();if(b=this.div)b.innerHTML="";a||(this.div=null,AmCharts.deleteObject(this))}});AmCharts.StockEvent=AmCharts.Class({construct:function(){}});AmCharts.DataSet=AmCharts.Class({construct:function(){this.cname="DataSet";this.fieldMappings=[];this.dataProvider=[];this.agregatedDataProviders=[];this.stockEvents=[];this.compared=!1;this.showInCompare=this.showInSelect=!0}});AmCharts.PeriodSelector=AmCharts.Class({construct:function(a){this.cname="PeriodSelector";this.theme=a;this.createEvents("changed");this.inputFieldsEnabled=!0;this.position="bottom";this.width=180;this.fromText="From: ";this.toText="to: ";this.periodsText="Zoom: ";this.periods=[];this.inputFieldWidth=100;this.dateFormat="DD-MM-YYYY";this.hideOutOfScopePeriods=!0;AmCharts.applyTheme(this,a,this.cname)},zoom:function(a,b){var c=this.chart;this.inputFieldsEnabled&&(this.startDateField.value=AmCharts.formatDate(a,
47
- this.dateFormat,c),this.endDateField.value=AmCharts.formatDate(b,this.dateFormat,c));this.markButtonAsSelected()},write:function(a){var b=this;a.className="amChartsPeriodSelector";var c=b.width,d=b.position;b.width=void 0;b.position=void 0;AmCharts.applyStyles(a.style,b);b.width=c;b.position=d;b.div=a;a.innerHTML="";c=b.theme;d=b.position;d="top"==d||"bottom"==d?!1:!0;b.vertical=d;var e=0,k=0;if(b.inputFieldsEnabled){var f=document.createElement("div");a.appendChild(f);var h=document.createTextNode(AmCharts.lang.fromText||
48
- b.fromText);f.appendChild(h);d?AmCharts.addBr(f):(f.style.styleFloat="left",f.style.display="inline");var g=document.createElement("input");g.className="amChartsInputField";c&&AmCharts.applyStyles(g.style,c.PeriodInputField);g.style.textAlign="center";g.onblur=function(a){b.handleCalChange(a)};AmCharts.isNN&&g.addEventListener("keypress",function(a){b.handleCalendarChange.call(b,a)},!0);AmCharts.isIE&&g.attachEvent("onkeypress",function(a){b.handleCalendarChange.call(b,a)});f.appendChild(g);b.startDateField=
49
- g;if(d)h=b.width-6+"px",AmCharts.addBr(f);else{var h=b.inputFieldWidth+"px",n=document.createTextNode(" ");f.appendChild(n)}g.style.width=h;g=document.createTextNode(AmCharts.lang.toText||b.toText);f.appendChild(g);d&&AmCharts.addBr(f);g=document.createElement("input");g.className="amChartsInputField";c&&AmCharts.applyStyles(g.style,c.PeriodInputField);g.style.textAlign="center";g.onblur=function(){b.handleCalChange()};AmCharts.isNN&&g.addEventListener("keypress",function(a){b.handleCalendarChange.call(b,
50
- a)},!0);AmCharts.isIE&&g.attachEvent("onkeypress",function(a){b.handleCalendarChange.call(b,a)});f.appendChild(g);b.endDateField=g;d?AmCharts.addBr(f):e=g.offsetHeight+2;h&&(g.style.width=h)}f=b.periods;if(AmCharts.ifArray(f)){h=document.createElement("div");d||(h.style.cssFloat="right",h.style.styleFloat="right",h.style.display="inline");a.appendChild(h);d&&AmCharts.addBr(h);a=document.createTextNode(AmCharts.lang.periodsText||b.periodsText);h.appendChild(a);b.periodContainer=h;var m;for(a=0;a<f.length;a++)g=
51
- f[a],m=document.createElement("input"),m.type="button",m.value=g.label,m.period=g.period,m.count=g.count,m.periodObj=g,m.className="amChartsButton",c&&AmCharts.applyStyles(m.style,c.PeriodButton),d&&(m.style.width=b.width-1+"px"),m.style.boxSizing="border-box",h.appendChild(m),b.addEventListeners(m),g.button=m;!d&&m&&(k=m.offsetHeight);b.offsetHeight=Math.max(e,k)}},addEventListeners:function(a){var b=this;AmCharts.isNN&&a.addEventListener("click",function(a){b.handlePeriodChange.call(b,a)},!0);AmCharts.isIE&&
52
- a.attachEvent("onclick",function(a){b.handlePeriodChange.call(b,a)})},getPeriodDates:function(){var a=this.periods,b;for(b=0;b<a.length;b++)this.selectPeriodButton(a[b],!0)},handleCalendarChange:function(a){13==a.keyCode&&this.handleCalChange(a)},handleCalChange:function(a){var b=this.dateFormat,c=AmCharts.stringToDate(this.startDateField.value,b),b=this.chart.getLastDate(AmCharts.stringToDate(this.endDateField.value,b));try{this.startDateField.blur(),this.endDateField.blur()}catch(d){}if(c&&b){var e=
53
- {type:"changed"};e.startDate=c;e.endDate=b;e.chart=this.chart;e.event=a;this.fire(e.type,e)}},handlePeriodChange:function(a){this.selectPeriodButton((a.srcElement?a.srcElement:a.target).periodObj,!1,a)},setRanges:function(a,b){this.firstDate=a;this.lastDate=b;this.getPeriodDates()},selectPeriodButton:function(a,b,c){var d=a.button,e=d.count,k=d.period,f,h,g=this.firstDate,n=this.lastDate,m,t=this.theme;g&&n&&("MAX"==k?(f=g,h=n):"YTD"==k?(f=new Date,f.setMonth(0,1),f.setHours(0,0,0,0),0===e&&f.setDate(f.getDate()-
54
- 1),h=this.lastDate):"YYYY"==k||"MM"==k?this.selectFromStart?(f=g,h=new Date(g),h.setMonth(h.getMonth()+e)):(f=new Date(n),AmCharts.changeDate(f,k,e,!1),f.setDate(f.getDate()-1),h=n):(m=AmCharts.getPeriodDuration(k,e),this.selectFromStart?(f=g,h=new Date(g.getTime()+m-1)):(f=new Date(n.getTime()-m+1),h=n)),a.startTime=f.getTime(),this.hideOutOfScopePeriods&&(b&&a.startTime<g.getTime()?d.style.display="none":d.style.display="inline"),f.getTime()>n.getTime()&&(m=AmCharts.getPeriodDuration("DD",1),f=
55
- new Date(n.getTime()-m)),f.getTime()<g.getTime()&&(f=g),"YTD"==k&&(a.startTime=f.getTime()),a.endTime=h.getTime(),b||(this.skipMark=!0,this.unselectButtons(),d.className="amChartsButtonSelected",t&&AmCharts.applyStyles(d.style,t.PeriodButtonSelected),a={type:"changed"},a.startDate=f,a.endDate=h,a.predefinedPeriod=k,a.chart=this.chart,a.count=e,a.event=c,this.fire(a.type,a)))},markButtonAsSelected:function(){if(!this.skipMark){var a=this.chart,b=this.periods,c=a.startDate.getTime(),a=a.endDate.getTime(),
56
- d=this.lastDate.getTime();a>d&&(a=d);d=this.theme;this.unselectButtons();var e;for(e=b.length-1;0<=e;e--){var k=b[e],f=k.button;k.startTime&&k.endTime&&c==k.startTime&&a==k.endTime&&(this.unselectButtons(),f.className="amChartsButtonSelected",d&&AmCharts.applyStyles(f.style,d.PeriodButtonSelected))}}this.skipMark=!1},unselectButtons:function(){var a=this.periods,b,c=this.theme;for(b=a.length-1;0<=b;b--){var d=a[b].button;d.className="amChartsButton";c&&AmCharts.applyStyles(d.style,c.PeriodButton)}},
57
- setDefaultPeriod:function(){var a=this.periods,b;for(b=0;b<a.length;b++){var c=a[b];c.selected&&this.selectPeriodButton(c)}}});AmCharts.StockGraph=AmCharts.Class({inherits:AmCharts.AmGraph,construct:function(a){AmCharts.StockGraph.base.construct.call(this,a);this.cname="StockGraph";this.useDataSetColors=!0;this.periodValue="Close";this.compareGraphType="line";this.compareGraphVisibleInLegend=!0;this.comparable=this.resetTitleOnDataSetChange=!1;this.comparedGraphs={};this.showEventsOnComparedGraphs=!1;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.StockPanel=AmCharts.Class({inherits:AmCharts.AmSerialChart,construct:function(a){AmCharts.StockPanel.base.construct.call(this,a);this.cname="StockPanel";this.theme=a;this.showCategoryAxis=this.showComparedOnTop=!0;this.recalculateToPercents="whenComparing";this.panelHeaderPaddingBottom=this.panelHeaderPaddingLeft=this.panelHeaderPaddingRight=this.panelHeaderPaddingTop=0;this.trendLineAlpha=1;this.trendLineColor="#00CC00";this.trendLineColorHover="#CC0000";this.trendLineThickness=2;this.trendLineDashLength=
58
- 0;this.stockGraphs=[];this.drawingIconsEnabled=!1;this.iconSize=18;this.autoMargins=this.allowTurningOff=this.eraseAll=this.erasingEnabled=this.drawingEnabled=!1;AmCharts.applyTheme(this,a,this.cname)},initChart:function(a){AmCharts.StockPanel.base.initChart.call(this,a);this.drawingIconsEnabled&&this.createDrawIcons();(a=this.chartCursor)&&this.listenTo(a,"draw",this.handleDraw)},addStockGraph:function(a){this.stockGraphs.push(a);return a},handleCursorZoom:function(a){this.chartCursor&&this.chartCursor.pan&&
59
- AmCharts.StockPanel.base.handleCursorZoom.call(this,a)},removeStockGraph:function(a){var b=this.stockGraphs,c;for(c=b.length-1;0<=c;c--)b[c]==a&&b.splice(c,1)},createDrawIcons:function(){var a=this,b=a.iconSize,c=a.container,d=a.pathToImages,e=a.realWidth-2*b-1-a.marginRight,k=AmCharts.rect(c,b,b,"#000",.005),f=AmCharts.rect(c,b,b,"#000",.005);f.translate(b+1,0);var h=c.image(d+"pencilIcon.gif",0,0,b,b);a.pencilButton=h;f.setAttr("cursor","pointer");k.setAttr("cursor","pointer");k.mouseup(function(){a.handlePencilClick()});
60
- var g=c.image(d+"pencilIconH.gif",0,0,b,b);a.pencilButtonPushed=g;a.drawingEnabled||g.hide();var n=c.image(d+"eraserIcon.gif",b+1,0,b,b);a.eraserButton=n;f.mouseup(function(){a.handleEraserClick()});k.touchend&&(k.touchend(function(){a.handlePencilClick()}),f.touchend(function(){a.handleEraserClick()}));b=c.image(d+"eraserIconH.gif",b+1,0,b,b);a.eraserButtonPushed=b;a.erasingEnabled||b.hide();c=c.set([h,g,n,b,k,f]);c.translate(e,1);this.hideIcons&&c.hide()},handlePencilClick:function(){var a=!this.drawingEnabled;
61
- this.disableDrawing(!a);this.erasingEnabled=!1;var b=this.eraserButtonPushed;b&&b.hide();b=this.pencilButtonPushed;a?b&&b.show():(b&&b.hide(),this.setMouseCursor("auto"))},disableDrawing:function(a){this.drawingEnabled=!a;var b=this.chartCursor;this.stockChart.enableCursors(a);b&&b.enableDrawing(!a)},handleEraserClick:function(){this.disableDrawing(!0);var a=this.pencilButtonPushed;a&&a.hide();a=this.eraserButtonPushed;if(this.eraseAll){var a=this.trendLines,b;for(b=a.length-1;0<=b;b--){var c=a[b];
62
- c.isProtected||this.removeTrendLine(c)}this.validateNow()}else(this.erasingEnabled=b=!this.erasingEnabled)?(a&&a.show(),this.setTrendColorHover(this.trendLineColorHover),this.setMouseCursor("auto")):(a&&a.hide(),this.setTrendColorHover())},setTrendColorHover:function(a){var b=this.trendLines,c;for(c=b.length-1;0<=c;c--){var d=b[c];d.isProtected||(d.rollOverColor=a)}},handleDraw:function(a){var b=this.drawOnAxis;AmCharts.isString(b)&&(b=this.getValueAxisById(b));b||(b=this.valueAxes[0]);this.drawOnAxis=
63
- b;var c=this.categoryAxis,d=a.initialX,e=a.finalX,k=a.initialY;a=a.finalY;var f=new AmCharts.TrendLine(this.theme);f.initialDate=c.coordinateToDate(d);f.finalDate=c.coordinateToDate(e);f.initialValue=b.coordinateToValue(k);f.finalValue=b.coordinateToValue(a);f.lineAlpha=this.trendLineAlpha;f.lineColor=this.trendLineColor;f.lineThickness=this.trendLineThickness;f.dashLength=this.trendLineDashLength;f.valueAxis=b;f.categoryAxis=c;this.addTrendLine(f);this.listenTo(f,"click",this.handleTrendClick);this.validateNow()},
64
- hideDrawingIcons:function(a){(this.hideIcons=a)&&this.disableDrawing(a)},handleTrendClick:function(a){this.erasingEnabled&&(a=a.trendLine,this.eraseAll||a.isProtected||this.removeTrendLine(a),this.validateNow())},handleWheelReal:function(a,b){var c=this.scrollbarChart;if(!this.wheelBusy&&c){var d=1;b&&(d=-1);var c=c.chartScrollbar,e=this.categoryAxis.minDuration();0>a?(d=this.startTime+d*e,e=this.endTime+1*e):(d=this.startTime-d*e,e=this.endTime-1*e);d<this.firstTime&&(d=this.firstTime);e>this.lastTime&&
65
- (e=this.lastTime);d<e&&c.timeZoom(d,e,!0)}}});AmCharts.CategoryAxesSettings=AmCharts.Class({construct:function(a){this.cname="CategoryAxesSettings";this.minPeriod="DD";this.equalSpacing=!1;this.axisHeight=28;this.tickLength=this.axisAlpha=0;this.gridCount=10;this.maxSeries=150;this.groupToPeriods="ss 10ss 30ss mm 10mm 30mm hh DD WW MM YYYY".split(" ");this.markPeriodChange=this.autoGridCount=!0;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.ChartCursorSettings=AmCharts.Class({construct:function(a){this.cname="ChartCursorSettings";this.enabled=!0;this.bulletsEnabled=this.valueBalloonsEnabled=!1;this.categoryBalloonDateFormats=[{period:"YYYY",format:"YYYY"},{period:"MM",format:"MMM, YYYY"},{period:"WW",format:"MMM DD, YYYY"},{period:"DD",format:"MMM DD, YYYY"},{period:"hh",format:"JJ:NN"},{period:"mm",format:"JJ:NN"},{period:"ss",format:"JJ:NN:SS"},{period:"fff",format:"JJ:NN:SS"}];AmCharts.applyTheme(this,a,this.cname)},categoryBalloonDateFormat:function(a){var b=
66
- this.categoryBalloonDateFormats,c,d;for(d=0;d<b.length;d++)b[d].period==a&&(c=b[d].format);return c}});AmCharts.ChartScrollbarSettings=AmCharts.Class({construct:function(a){this.cname="ChartScrollbarSettings";this.height=40;this.enabled=!0;this.color="#FFFFFF";this.updateOnReleaseOnly=this.autoGridCount=!0;this.hideResizeGrips=!1;this.position="bottom";this.minDistance=1;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.LegendSettings=AmCharts.Class({construct:function(a){this.cname="LegendSettings";this.marginBottom=this.marginTop=0;this.usePositiveNegativeOnPercentsOnly=!0;this.positiveValueColor="#00CC00";this.negativeValueColor="#CC0000";this.autoMargins=this.equalWidths=this.textClickEnabled=!1;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.PanelsSettings=AmCharts.Class({construct:function(a){this.cname="PanelsSettings";this.marginBottom=this.marginTop=this.marginRight=this.marginLeft=0;this.backgroundColor="#FFFFFF";this.backgroundAlpha=0;this.panelSpacing=8;this.panEventsEnabled=!0;this.creditsPosition="top-right";AmCharts.applyTheme(this,a,this.cname)}});AmCharts.StockEventsSettings=AmCharts.Class({construct:function(a){this.cname="StockEventsSettings";this.type="sign";this.backgroundAlpha=1;this.backgroundColor="#DADADA";this.borderAlpha=1;this.borderColor="#888888";this.balloonColor=this.rollOverColor="#CC0000";AmCharts.applyTheme(this,a,this.cname)}});AmCharts.ValueAxesSettings=AmCharts.Class({construct:function(a){this.cname="ValueAxesSettings";this.tickLength=0;this.showFirstLabel=this.autoGridCount=this.inside=!0;this.showLastLabel=!1;this.axisAlpha=0;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.getItemIndex=function(a,b){var c=-1,d;for(d=0;d<b.length;d++)a==b[d]&&(c=d);return c};AmCharts.addBr=function(a){a.appendChild(document.createElement("br"))};AmCharts.applyStyles=function(a,b){if(b&&a)for(var c in a){var d=c,e=b[d];if(void 0!==e)try{a[d]=e}catch(k){}}};
67
- AmCharts.parseStockData=function(a,b,c,d,e){(new Date).getTime();var k={},f=a.dataProvider,h=a.categoryField;if(h){var g=AmCharts.getItemIndex(b,c),n=c.length,m,t=f.length,r,v={};for(m=g;m<n;m++)r=c[m],k[r]=[];var w={},l=a.fieldMappings,y=l.length;for(m=0;m<t;m++){var z=f[m],x=z[h],x=x instanceof Date?AmCharts.newDate(x,b):e?AmCharts.stringToDate(x,e):new Date(x),B=x.getTime(),A={};for(r=0;r<y;r++)A[l[r].toField]=z[l[r].fromField];var q;for(q=g;q<n;q++){r=c[q];var s=AmCharts.extractPeriod(r),C=s.period,
68
- E=s.count,u,p;if(q==g||B>=v[r]||!v[r]){w[r]={};w[r].amCategoryIdField=String(AmCharts.resetDateToMin(x,C,E,d).getTime());var D;for(D=0;D<y;D++)s=l[D].toField,u=w[r],p=Number(A[s]),u[s+"Count"]=0,u[s+"Sum"]=0,isNaN(p)||(u[s+"Open"]=p,u[s+"Sum"]=p,u[s+"High"]=p,u[s+"Low"]=p,u[s+"Close"]=p,u[s+"Count"]=1,u[s+"Average"]=p);u.dataContext=z;k[r].push(w[r]);q>g&&(s=AmCharts.newDate(x,b),s=AmCharts.changeDate(s,C,E,!0),s=AmCharts.resetDateToMin(s,C,E,d),v[r]=s.getTime());if(q==g)for(var F in z)z.hasOwnProperty(F)&&
69
- (w[r][F]=z[F]);w[r][h]=AmCharts.newDate(x,b)}else for(C=0;C<y;C++)s=l[C].toField,u=w[r],m==t-1&&(u[h]=AmCharts.newDate(x,b)),p=Number(A[s]),isNaN(p)||(isNaN(u[s+"Low"])&&(u[s+"Low"]=p),p<u[s+"Low"]&&(u[s+"Low"]=p),isNaN(u[s+"High"])&&(u[s+"High"]=p),p>u[s+"High"]&&(u[s+"High"]=p),u[s+"Close"]=p,E=AmCharts.getDecimals(u[s+"Sum"]),D=AmCharts.getDecimals(p),u[s+"Sum"]+=p,u[s+"Sum"]=AmCharts.roundTo(u[s+"Sum"],Math.max(E,D)),u[s+"Count"]++,u[s+"Average"]=u[s+"Sum"]/u[s+"Count"])}}}a.agregatedDataProviders=
70
- k};
71
- AmCharts.parseEvents=function(a,b,c,d,e,k){var f=a.stockEvents,h=a.agregatedDataProviders,g=b.length,n,m,t,r,v,w,l,y;for(n=0;n<g;n++){w=b[n];v=w.graphs;t=v.length;var z;for(m=0;m<t;m++)r=v[m],r.customBulletField="amCustomBullet"+r.id+"_"+w.id,r.bulletConfigField="amCustomBulletConfig"+r.id+"_"+w.id;for(var x=0;x<f.length;x++)if(l=f[x],z=l.graph,AmCharts.isString(z)&&(z=AmCharts.getObjById(v,z)))l.graph=z}for(var B in h)if(h.hasOwnProperty(B)){z=h[B];var A=AmCharts.extractPeriod(B),q=z.length,s;for(s=
72
- 0;s<q;s++){var C=z[s];n=C[a.categoryField];y=n instanceof Date;k&&!y&&(n=AmCharts.stringToDate(n,k));var E=n.getTime();v=A.period;var x=A.count,u;u="fff"==v?n.getTime()+1:AmCharts.resetDateToMin(AmCharts.changeDate(new Date(n),A.period,A.count),v,x,d).getTime();for(n=0;n<g;n++)for(w=b[n],v=w.graphs,t=v.length,m=0;m<t;m++){r=v[m];var p={};p.eventDispatcher=e;p.eventObjects=[];p.letters=[];p.descriptions=[];p.shapes=[];p.backgroundColors=[];p.backgroundAlphas=[];p.borderColors=[];p.borderAlphas=[];
73
- p.colors=[];p.rollOverColors=[];p.showOnAxis=[];p.values=[];p.showAts=[];for(x=0;x<f.length;x++){l=f[x];y=l.date instanceof Date;k&&!y&&(l.date=AmCharts.stringToDate(l.date,k));y=l.date.getTime();var D=!1;l.graph&&(l.graph.showEventsOnComparedGraphs&&l.graph.comparedGraphs[a.id]&&(D=!0),(r==l.graph||D)&&y>=E&&y<u&&(p.eventObjects.push(l),p.letters.push(l.text),p.descriptions.push(l.description),l.type?p.shapes.push(l.type):p.shapes.push(c.type),void 0!==l.backgroundColor?p.backgroundColors.push(l.backgroundColor):
74
- p.backgroundColors.push(c.backgroundColor),isNaN(l.backgroundAlpha)?p.backgroundAlphas.push(c.backgroundAlpha):p.backgroundAlphas.push(l.backgroundAlpha),isNaN(l.borderAlpha)?p.borderAlphas.push(c.borderAlpha):p.borderAlphas.push(l.borderAlpha),void 0!==l.borderColor?p.borderColors.push(l.borderColor):p.borderColors.push(c.borderColor),void 0!==l.rollOverColor?p.rollOverColors.push(l.rollOverColor):p.rollOverColors.push(c.rollOverColor),void 0!==l.showAt?p.showAts.push(l.showAt):p.showAts.push(c.showAt),
75
- p.colors.push(l.color),p.values.push(l.value),!l.panel&&l.graph&&(l.panel=l.graph.chart),p.showOnAxis.push(l.showOnAxis),p.date=new Date(l.date)));0<p.shapes.length&&(l="amCustomBullet"+r.id+"_"+w.id,y="amCustomBulletConfig"+r.id+"_"+w.id,C[l]=AmCharts.StackedBullet,C[y]=p)}}}}};AmCharts.StockLegend=AmCharts.Class({inherits:AmCharts.AmLegend,construct:function(a){AmCharts.StockLegend.base.construct.call(this,a);this.cname="StockLegend";this.valueTextComparing="[[percents.value]]%";this.valueTextRegular="[[value]]";AmCharts.applyTheme(this,a,this.cname)},drawLegend:function(){var a=this;AmCharts.StockLegend.base.drawLegend.call(a);var b=a.chart;if(b.allowTurningOff){var c=a.container,d=c.image(b.pathToImages+"xIcon.gif",b.realWidth-17,3,17,17),b=c.image(b.pathToImages+"xIconH.gif",
76
- b.realWidth-17,3,17,17);b.hide();a.xButtonHover=b;d.mouseup(function(){a.handleXClick()}).mouseover(function(){a.handleXOver()});b.mouseup(function(){a.handleXClick()}).mouseout(function(){a.handleXOut()})}},handleXOver:function(){this.xButtonHover.show()},handleXOut:function(){this.xButtonHover.hide()},handleXClick:function(){var a=this.chart,b=a.stockChart;b.removePanel(a);b.validateNow()}});AmCharts.DataSetSelector=AmCharts.Class({construct:function(a){this.cname="DataSetSelector";this.theme=a;this.createEvents("dataSetSelected","dataSetCompared","dataSetUncompared");this.position="left";this.selectText="Select:";this.comboBoxSelectText="Select...";this.compareText="Compare to:";this.width=180;this.dataProvider=[];this.listHeight=150;this.listCheckBoxSize=14;this.rollOverBackgroundColor="#b2e1ff";this.selectedBackgroundColor="#7fceff";AmCharts.applyTheme(this,a,this.cname)},write:function(a){var b=
77
- this,c,d=b.theme;a.className="amChartsDataSetSelector";var e=b.width;c=b.position;b.width=void 0;b.position=void 0;AmCharts.applyStyles(a.style,b);b.div=a;b.width=e;b.position=c;a.innerHTML="";var e=b.position,k;k="top"==e||"bottom"==e?!1:!0;b.vertical=k;var f;k&&(f=b.width+"px");var e=b.dataProvider,h,g;if(1<b.countDataSets("showInSelect")){c=document.createTextNode(AmCharts.lang.selectText||b.selectText);a.appendChild(c);k&&AmCharts.addBr(a);var n=document.createElement("select");f&&(n.style.width=
78
- f);b.selectCB=n;d&&AmCharts.applyStyles(n.style,d.DataSetSelect);a.appendChild(n);AmCharts.isNN&&n.addEventListener("change",function(a){b.handleDataSetChange.call(b,a)},!0);AmCharts.isIE&&n.attachEvent("onchange",function(a){b.handleDataSetChange.call(b,a)});for(c=0;c<e.length;c++)if(h=e[c],!0===h.showInSelect){g=document.createElement("option");g.text=h.title;g.value=c;h==b.chart.mainDataSet&&(g.selected=!0);try{n.add(g,null)}catch(m){n.add(g)}}b.offsetHeight=n.offsetHeight}if(0<b.countDataSets("showInCompare")&&
79
- 1<e.length)if(k?(AmCharts.addBr(a),AmCharts.addBr(a)):(c=document.createTextNode(" "),a.appendChild(c)),c=document.createTextNode(AmCharts.lang.compareText||b.compareText),a.appendChild(c),g=b.listCheckBoxSize,k){AmCharts.addBr(a);f=document.createElement("div");a.appendChild(f);f.className="amChartsCompareList";d&&AmCharts.applyStyles(f.style,d.DataSetCompareList);f.style.overflow="auto";f.style.overflowX="hidden";f.style.width=b.width-2+"px";f.style.maxHeight=b.listHeight+"px";for(c=0;c<e.length;c++)h=
80
- e[c],!0===h.showInCompare&&h!=b.chart.mainDataSet&&(d=document.createElement("div"),d.style.padding="4px",d.style.position="relative",d.name="amCBContainer",d.dataSet=h,d.style.height=g+"px",h.compared&&(d.style.backgroundColor=b.selectedBackgroundColor),f.appendChild(d),k=document.createElement("div"),k.style.width=g+"px",k.style.height=g+"px",k.style.position="absolute",k.style.backgroundColor=h.color,d.appendChild(k),k=document.createElement("div"),k.style.width="100%",k.style.position="absolute",
81
- k.style.left=g+10+"px",d.appendChild(k),h=document.createTextNode(h.title),k.style.whiteSpace="nowrap",k.style.cursor="default",k.appendChild(h),b.addEventListeners(d));AmCharts.addBr(a);AmCharts.addBr(a)}else{d=document.createElement("select");b.compareCB=d;f&&(d.style.width=f);a.appendChild(d);AmCharts.isNN&&d.addEventListener("change",function(a){b.handleCBSelect.call(b,a)},!0);AmCharts.isIE&&d.attachEvent("onchange",function(a){b.handleCBSelect.call(b,a)});g=document.createElement("option");g.text=
82
- AmCharts.lang.comboBoxSelectText||b.comboBoxSelectText;try{d.add(g,null)}catch(t){d.add(g)}for(c=0;c<e.length;c++)if(h=e[c],!0===h.showInCompare&&h!=b.chart.mainDataSet){g=document.createElement("option");g.text=h.title;g.value=c;h.compared&&(g.selected=!0);try{d.add(g,null)}catch(r){d.add(g)}}b.offsetHeight=d.offsetHeight}},addEventListeners:function(a){var b=this;AmCharts.isNN&&(a.addEventListener("mouseover",function(a){b.handleRollOver.call(b,a)},!0),a.addEventListener("mouseout",function(a){b.handleRollOut.call(b,
83
- a)},!0),a.addEventListener("click",function(a){b.handleClick.call(b,a)},!0));AmCharts.isIE&&(a.attachEvent("onmouseout",function(a){b.handleRollOut.call(b,a)}),a.attachEvent("onmouseover",function(a){b.handleRollOver.call(b,a)}),a.attachEvent("onclick",function(a){b.handleClick.call(b,a)}))},handleDataSetChange:function(){var a=this.selectCB,a=this.dataProvider[a.options[a.selectedIndex].value],b=this.chart;b.mainDataSet=a;b.zoomOutOnDataSetChange&&(b.startDate=void 0,b.endDate=void 0);b.validateData();
84
- a={type:"dataSetSelected",dataSet:a,chart:this.chart};this.fire(a.type,a)},handleRollOver:function(a){a=this.getRealDiv(a);a.dataSet.compared||(a.style.backgroundColor=this.rollOverBackgroundColor)},handleRollOut:function(a){a=this.getRealDiv(a);a.dataSet.compared||(a.style.removeProperty&&a.style.removeProperty("background-color"),a.style.removeAttribute&&a.style.removeAttribute("backgroundColor"))},handleCBSelect:function(a){var b=this.compareCB,c=this.dataProvider,d,e;for(d=0;d<c.length;d++)e=
85
- c[d],e.compared&&(a={type:"dataSetUncompared",dataSet:e}),e.compared=!1;c=b.selectedIndex;0<c&&(e=this.dataProvider[b.options[c].value],e.compared||(a={type:"dataSetCompared",dataSet:e}),e.compared=!0);b=this.chart;b.validateData();a.chart=b;this.fire(a.type,a)},handleClick:function(a){a=this.getRealDiv(a).dataSet;!0===a.compared?(a.compared=!1,a={type:"dataSetUncompared",dataSet:a}):(a.compared=!0,a={type:"dataSetCompared",dataSet:a});var b=this.chart;b.validateData();a.chart=b;this.fire(a.type,
86
- a)},getRealDiv:function(a){a||(a=window.event);a=a.currentTarget?a.currentTarget:a.srcElement;"amCBContainer"==a.parentNode.name&&(a=a.parentNode);return a},countDataSets:function(a){var b=this.dataProvider,c=0,d;for(d=0;d<b.length;d++)!0===b[d][a]&&c++;return c}});AmCharts.StackedBullet=AmCharts.Class({construct:function(){this.fontSize=11;this.stackDown=!1;this.mastHeight=8;this.shapes=[];this.backgroundColors=[];this.backgroundAlphas=[];this.borderAlphas=[];this.borderColors=[];this.colors=[];this.rollOverColors=[];this.showOnAxiss=[];this.values=[];this.showAts=[];this.textColor="#000000";this.nextY=0;this.size=16},parseConfig:function(){var a=this.bulletConfig;this.eventObjects=a.eventObjects;this.letters=a.letters;this.shapes=a.shapes;this.backgroundColors=
87
- a.backgroundColors;this.backgroundAlphas=a.backgroundAlphas;this.borderColors=a.borderColors;this.borderAlphas=a.borderAlphas;this.colors=a.colors;this.rollOverColors=a.rollOverColors;this.date=a.date;this.showOnAxiss=a.showOnAxis;this.axisCoordinate=a.minCoord;this.showAts=a.showAts;this.values=a.values},write:function(a){this.parseConfig();this.container=a;this.bullets=[];if(this.graph){var b=this.graph.fontSize;b&&(this.fontSize=b)}b=this.letters.length;(this.mastHeight+2*(this.fontSize/2+2))*
88
- b>this.availableSpace&&(this.stackDown=!0);this.set=a.set();a=0;var c;for(c=0;c<b;c++)this.shape=this.shapes[c],this.backgroundColor=this.backgroundColors[c],this.backgroundAlpha=this.backgroundAlphas[c],this.borderAlpha=this.borderAlphas[c],this.borderColor=this.borderColors[c],this.rollOverColor=this.rollOverColors[c],this.showOnAxis=this.showOnAxiss[c],this.color=this.colors[c],this.value=this.values[c],this.showAt=this.showAts[c],this.addLetter(this.letters[c],a,c),this.showOnAxis||a++},addLetter:function(a,
89
- b,c){var d=this.container;b=d.set();var e=-1,k=this.stackDown,f=this.graph.valueAxis;this.showOnAxis&&(this.stackDown=f.reversed?!0:!1);this.stackDown&&(e=1);var h=0,g=0,n=0,m,t=this.fontSize,r=this.mastHeight,v=this.shape,w=this.textColor;void 0!==this.color&&(w=this.color);void 0===a&&(a="");a=AmCharts.fixBrakes(a);a=AmCharts.text(d,a,w,this.chart.fontFamily,this.fontSize);a.node.style.pointerEvents="none";d=a.getBBox();this.labelWidth=w=d.width;this.labelHeight=d.height;var l,d=0;switch(v){case "sign":l=
90
- this.drawSign(b);h=r+4+t/2;d=r+t+4;1==e&&(h-=4);break;case "flag":l=this.drawFlag(b);g=w/2+3;h=r+4+t/2;d=r+t+4;1==e&&(h-=4);break;case "pin":l=this.drawPin(b);h=6+t/2;d=t+8;break;case "triangleUp":l=this.drawTriangleUp(b);h=-t-1;d=t+4;e=-1;break;case "triangleDown":l=this.drawTriangleDown(b);h=t+1;d=t+4;e=-1;break;case "triangleLeft":l=this.drawTriangleLeft(b);g=t;d=t+4;e=-1;break;case "triangleRight":l=this.drawTriangleRight(b);g=-t;e=-1;d=t+4;break;case "arrowUp":l=this.drawArrowUp(b);a.hide();
91
- break;case "arrowDown":l=this.drawArrowDown(b);a.hide();d=t+4;break;case "text":e=-1;l=this.drawTextBackground(b,a);h=this.labelHeight+3;d=t+10;break;case "round":l=this.drawCircle(b)}this.bullets[c]=l;this.showOnAxis?(m=isNaN(this.nextAxisY)?this.axisCoordinate:this.nextY,n=h*e,this.nextAxisY=m+e*d):this.value?(m=this.value,f.recalculateToPercents&&(m=m/f.recBaseValue*100-100),m=f.getCoordinate(m)-this.bulletY,n=h*e):this.showAt?(l=this.graphDataItem.values,f.recalculateToPercents&&(l=this.graphDataItem.percents),
92
- l&&(m=f.getCoordinate(l[this.showAt])-this.bulletY,n=h*e)):(m=this.nextY,n=h*e);a.translate(g,n);b.push(a);b.translate(0,m);this.addEventListeners(b,c);this.nextY=m+e*d;this.stackDown=k},addEventListeners:function(a,b){var c=this;a.click(function(){c.handleClick(b)}).mouseover(function(){c.handleMouseOver(b)}).touchend(function(){c.handleMouseOver(b,!0)}).mouseout(function(){c.handleMouseOut(b)})},drawPin:function(a){var b=-1;this.stackDown&&(b=1);var c=this.fontSize+4;return this.drawRealPolygon(a,
93
- [0,c/2,c/2,-c/2,-c/2,0],[0,b*c/4,b*(c+c/4),b*(c+c/4),b*c/4,0])},drawSign:function(a){var b=-1;this.stackDown&&(b=1);var c=this.mastHeight*b,d=this.fontSize/2+2,e=AmCharts.line(this.container,[0,0],[0,c],this.borderColor,this.borderAlpha,1),k=AmCharts.circle(this.container,d,this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);k.translate(0,c+d*b);a.push(e);a.push(k);this.set.push(a);return k},drawFlag:function(a){var b=-1;this.stackDown&&(b=1);var c=this.fontSize+4,d=this.labelWidth+
94
- 6,e=this.mastHeight,b=1==b?b*e:b*e-c,e=AmCharts.line(this.container,[0,0],[0,b],this.borderColor,this.borderAlpha,1),c=AmCharts.polygon(this.container,[0,d,d,0],[0,0,c,c],this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);c.translate(0,b);a.push(e);a.push(c);this.set.push(a);return c},drawTriangleUp:function(a){var b=this.fontSize+7;return this.drawRealPolygon(a,[0,b/2,-b/2,0],[0,b,b,0])},drawArrowUp:function(a){var b=this.size,c=b/2,d=b/4;return this.drawRealPolygon(a,
95
- [0,c,d,d,-d,-d,-c,0],[0,c,c,b,b,c,c,0])},drawArrowDown:function(a){var b=this.size,c=b/2,d=b/4;return this.drawRealPolygon(a,[0,c,d,d,-d,-d,-c,0],[0,-c,-c,-b,-b,-c,-c,0])},drawTriangleDown:function(a){var b=this.fontSize+7;return this.drawRealPolygon(a,[0,b/2,-b/2,0],[0,-b,-b,0])},drawTriangleLeft:function(a){var b=this.fontSize+7;return this.drawRealPolygon(a,[0,b,b,0],[0,-b/2,b/2])},drawTriangleRight:function(a){var b=this.fontSize+7;return this.drawRealPolygon(a,[0,-b,-b,0],[0,-b/2,b/2,0])},drawRealPolygon:function(a,
96
- b,c){b=AmCharts.polygon(this.container,b,c,this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);a.push(b);this.set.push(a);return b},drawCircle:function(a){shape=AmCharts.circle(this.container,this.fontSize/2,this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);a.push(shape);this.set.push(a);return shape},drawTextBackground:function(a,b){var c=b.getBBox(),d=-c.width/2-5,e=c.width/2+5,c=-c.height-12;return this.drawRealPolygon(a,[d,-5,0,5,e,e,d,d],
97
- [-5,-5,0,-5,-5,c,c,-5])},handleMouseOver:function(a,b){b||this.bullets[a].attr({fill:this.rollOverColors[a]});var c=this.eventObjects[a],d={type:"rollOverStockEvent",eventObject:c,graph:this.graph,date:this.date},e=this.bulletConfig.eventDispatcher;d.chart=e;e.fire(d.type,d);c.url&&this.bullets[a].setAttr("cursor","pointer");this.chart.showBalloon(AmCharts.fixNewLines(c.description),e.stockEventsSettings.balloonColor,!0)},handleClick:function(a){a=this.eventObjects[a];var b={type:"clickStockEvent",
1
+ AmCharts.AmStockChart=AmCharts.Class({construct:function(a){this.type="stock";this.cname="AmStockChart";this.version="3.11.2";this.theme=a;this.createEvents("zoomed","rollOverStockEvent","rollOutStockEvent","clickStockEvent","panelRemoved","dataUpdated","init","rendered","drawn");this.colors="#FF6600 #FCD202 #B0DE09 #0D8ECF #2A0CD0 #CD0D74 #CC0000 #00CC00 #0000CC #DDDDDD #999999 #333333 #990000".split(" ");this.firstDayOfWeek=1;this.glueToTheEnd=!1;this.dataSetCounter=-1;this.zoomOutOnDataSetChange=
2
+ !1;this.panels=[];this.dataSets=[];this.chartCursors=[];this.comparedDataSets=[];this.categoryAxesSettings=new AmCharts.CategoryAxesSettings(a);this.valueAxesSettings=new AmCharts.ValueAxesSettings(a);this.panelsSettings=new AmCharts.PanelsSettings(a);this.chartScrollbarSettings=new AmCharts.ChartScrollbarSettings(a);this.chartCursorSettings=new AmCharts.ChartCursorSettings(a);this.stockEventsSettings=new AmCharts.StockEventsSettings(a);this.legendSettings=new AmCharts.LegendSettings(a);this.balloon=
3
+ new AmCharts.AmBalloon(a);this.previousEndDate=new Date(0);this.previousStartDate=new Date(0);this.dataSetCount=this.graphCount=0;this.chartCreated=!1;this.extendToFullPeriod=!0;AmCharts.applyTheme(this,a,this.cname)},write:function(a){var b=this.theme;this.initHC||(AmCharts.callInitHandler(this),this.initHC=!0);AmCharts.applyLang(this.language,this);var c=this.exportConfig;c&&AmCharts.AmExport&&!this.AmExport&&(this.AmExport=new AmCharts.AmExport(this,c));this.amExport&&AmCharts.AmExport&&(this.AmExport=
4
+ AmCharts.extend(this.amExport,new AmCharts.AmExport(this),!0));this.AmExport&&this.AmExport.init();this.chartRendered=!1;a="object"!=typeof a?document.getElementById(a):a;this.zoomOutOnDataSetChange&&(this.endDate=this.startDate=void 0);this.categoryAxesSettings=AmCharts.processObject(this.categoryAxesSettings,AmCharts.CategoryAxesSettings,b);this.valueAxesSettings=AmCharts.processObject(this.valueAxesSettings,AmCharts.ValueAxesSettings,b);this.chartCursorSettings=AmCharts.processObject(this.chartCursorSettings,
5
+ AmCharts.ChartCursorSettings,b);this.chartScrollbarSettings=AmCharts.processObject(this.chartScrollbarSettings,AmCharts.ChartScrollbarSettings,b);this.legendSettings=AmCharts.processObject(this.legendSettings,AmCharts.LegendSettings,b);this.panelsSettings=AmCharts.processObject(this.panelsSettings,AmCharts.PanelsSettings,b);this.stockEventsSettings=AmCharts.processObject(this.stockEventsSettings,AmCharts.StockEventsSettings,b);this.dataSetSelector&&(this.dataSetSelector=AmCharts.processObject(this.dataSetSelector,
6
+ AmCharts.DataSetSelector,b));this.periodSelector&&(this.periodSelector=AmCharts.processObject(this.periodSelector,AmCharts.PeriodSelector,b));a.innerHTML="";this.div=a;this.measure();this.createLayout();this.updateDataSets();this.addDataSetSelector();this.addPeriodSelector();this.addPanels();this.updatePanels();this.addChartScrollbar();this.updateData();this.skipDefault||this.setDefaultPeriod()},setDefaultPeriod:function(a){var b=this.periodSelector;b&&(this.animationPlayed=!1,b.setDefaultPeriod(a))},
7
+ validateSize:function(){var a,b=this.panels;this.measurePanels();for(a=0;a<b.length;a++)panel=b[a],panel.invalidateSize()},updateDataSets:function(){var a=this.mainDataSet,b=this.dataSets,c;for(c=0;c<b.length;c++){var d=b[c],d=AmCharts.processObject(d,AmCharts.DataSet);b[c]=d;d.id||(this.dataSetCount++,d.id="ds"+this.dataSetCount);void 0===d.color&&(d.color=this.colors.length-1>c?this.colors[c]:AmCharts.randomColor())}!a&&AmCharts.ifArray(b)&&(this.mainDataSet=this.dataSets[0])},updateEvents:function(a){AmCharts.ifArray(a.stockEvents)&&
8
+ AmCharts.parseEvents(a,this.panels,this.stockEventsSettings,this.firstDayOfWeek,this,this.dataDateFormat)},getLastDate:function(a){var b=this.dataDateFormat;a=a instanceof Date?new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()):b?AmCharts.stringToDate(a,b):new Date(a);return new Date(AmCharts.changeDate(a,this.categoryAxesSettings.minPeriod,1,!0).getTime()-1)},getFirstDate:function(a){var b=this.dataDateFormat;a=a instanceof Date?new Date(a.getFullYear(),
9
+ a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()):b?AmCharts.stringToDate(a,b):new Date(a);return new Date(AmCharts.resetDateToMin(a,this.categoryAxesSettings.minPeriod,1,this.firstDayOfWeek))},updateData:function(){var a=this.mainDataSet;if(a){var b=this.categoryAxesSettings;-1==AmCharts.getItemIndex(b.minPeriod,b.groupToPeriods)&&b.groupToPeriods.unshift(b.minPeriod);var c=a.dataProvider;if(AmCharts.ifArray(c)){var d=a.categoryField;this.firstDate=this.getFirstDate(c[0][d]);
10
+ this.lastDate=this.getLastDate(c[c.length-1][d]);this.periodSelector&&this.periodSelector.setRanges(this.firstDate,this.lastDate);a.dataParsed||(AmCharts.parseStockData(a,b.minPeriod,b.groupToPeriods,this.firstDayOfWeek,this.dataDateFormat),a.dataParsed=!0);this.updateComparingData();this.updateEvents(a)}else this.lastDate=this.firstDate=void 0;this.glueToTheEnd&&this.startDate&&this.endDate&&this.lastDate&&(AmCharts.getPeriodDuration(b.minPeriod),this.startDate=new Date(this.startDate.getTime()+
11
+ (this.lastDate.getTime()-this.endDate.getTime())),this.endDate=this.lastDate,this.updateScrollbar=!0);this.updatePanelsWithNewData()}a={type:"dataUpdated",chart:this};this.fire(a.type,a)},updateComparingData:function(){var a=this.comparedDataSets,b=this.categoryAxesSettings,c;for(c=0;c<a.length;c++){var d=a[c];d.dataParsed||(AmCharts.parseStockData(d,b.minPeriod,b.groupToPeriods,this.firstDayOfWeek,this.dataDateFormat),d.dataParsed=!0);this.updateEvents(d)}},createLayout:function(){var a=this.div,
12
+ b,c,d=document.createElement("div");d.style.position="relative";this.containerDiv=d;a.appendChild(d);if(a=this.periodSelector)b=a.position;if(a=this.dataSetSelector)c=a.position;if("left"==b||"left"==c)a=document.createElement("div"),a.style.cssFloat="left",a.style.styleFloat="left",a.style.width="0px",a.style.position="absolute",d.appendChild(a),this.leftContainer=a;if("right"==b||"right"==c)b=document.createElement("div"),b.style.cssFloat="right",b.style.styleFloat="right",b.style.width="0px",d.appendChild(b),
13
+ this.rightContainer=b;b=document.createElement("div");d.appendChild(b);this.centerContainer=b;d=document.createElement("div");b.appendChild(d);this.panelsContainer=d},addPanels:function(){this.measurePanels();for(var a=this.panels,b=0;b<a.length;b++){var c=a[b],c=AmCharts.processObject(c,AmCharts.StockPanel,this.theme);a[b]=c;this.addStockPanel(c,b)}this.panelsAdded=!0},measurePanels:function(){this.measure();var a=this.chartScrollbarSettings,b=this.divRealHeight,c=this.panelsSettings.panelSpacing;
14
+ a.enabled&&(b-=a.height);(a=this.periodSelector)&&!a.vertical&&(a=a.offsetHeight,b-=a+c);(a=this.dataSetSelector)&&!a.vertical&&(a=a.offsetHeight,b-=a+c);a=this.panels;this.panelsContainer.style.height=b+"px";this.chartCursors=[];var d=0,e,k;for(e=0;e<a.length;e++){k=a[e];var f=k.percentHeight;isNaN(f)&&(f=100/a.length,k.percentHeight=f);d+=f}this.panelsHeight=Math.max(b-c*(a.length-1),0);for(e=0;e<a.length;e++)k=a[e],k.percentHeight=k.percentHeight/d*100,k.panelBox&&(k.panelBox.style.height=Math.round(k.percentHeight*
15
+ this.panelsHeight/100)+"px")},addStockPanel:function(a,b){var c=this.panelsSettings,d=document.createElement("div");d.className="amChartsPanel";0<b&&!this.panels[b-1].showCategoryAxis&&(d.style.marginTop=c.panelSpacing+"px");a.panelBox=d;a.stockChart=this;a.id||(a.id="stockPanel"+b);a.pathToImages=this.pathToImages;d.style.height=Math.round(a.percentHeight*this.panelsHeight/100)+"px";d.style.width="100%";this.panelsContainer.appendChild(d);0<c.backgroundAlpha&&(d.style.backgroundColor=c.backgroundColor);
16
+ if(d=a.stockLegend)d.container=void 0,d.title=a.title,d.marginLeft=c.marginLeft,d.marginRight=c.marginRight,d.verticalGap=3,d.position="top",AmCharts.copyProperties(this.legendSettings,d),a.addLegend(d,d.divId);a.zoomOutText="";this.addCursor(a)},enableCursors:function(a){var b=this.chartCursors,c;for(c=0;c<b.length;c++)b[c].enabled=a},updatePanels:function(){var a=this.panels,b;for(b=0;b<a.length;b++)this.updatePanel(a[b]);this.mainDataSet&&this.updateGraphs();this.currentPeriod=void 0},updatePanel:function(a){a.seriesIdField=
17
+ "amCategoryIdField";a.dataProvider=[];a.chartData=[];a.graphs=[];var b=a.categoryAxis,c=this.categoryAxesSettings;AmCharts.copyProperties(this.panelsSettings,a);AmCharts.copyProperties(c,b);b.parseDates=!0;a.zoomOutOnDataUpdate=!1;a.mouseWheelScrollEnabled=this.mouseWheelScrollEnabled;a.dataDateFormat=this.dataDateFormat;a.language=this.language;a.showCategoryAxis?"top"==b.position?a.marginTop=c.axisHeight:a.marginBottom=c.axisHeight:(a.categoryAxis.labelsEnabled=!1,a.chartCursor&&(a.chartCursor.categoryBalloonEnabled=
18
+ !1));var c=a.valueAxes,d=c.length,e;0===d&&(e=new AmCharts.ValueAxis(this.theme),a.addValueAxis(e));b=new AmCharts.AmBalloon(this.theme);AmCharts.copyProperties(this.balloon,b);a.balloon=b;c=a.valueAxes;d=c.length;for(b=0;b<d;b++)e=c[b],AmCharts.copyProperties(this.valueAxesSettings,e);a.listenersAdded=!1;a.write(a.panelBox)},zoom:function(a,b){this.zoomChart(a,b)},zoomOut:function(){this.zoomChart(this.firstDate,this.lastDate)},updatePanelsWithNewData:function(){var a=this.mainDataSet,b=this.scrollbarChart;
19
+ if(a){var c=this.panels;this.currentPeriod=void 0;var d;for(d=0;d<c.length;d++){var e=c[d];e.categoryField=a.categoryField;0===a.dataProvider.length&&(e.dataProvider=[]);e.scrollbarChart=b}b&&(c=this.categoryAxesSettings,d=c.minPeriod,b.categoryField=a.categoryField,0<a.dataProvider.length?(e=this.chartScrollbarSettings.usePeriod,b.dataProvider=e?a.agregatedDataProviders[e]:a.agregatedDataProviders[d]):b.dataProvider=[],e=b.categoryAxis,e.minPeriod=d,e.firstDayOfWeek=this.firstDayOfWeek,e.equalSpacing=
20
+ c.equalSpacing,e.axisAlpha=0,e.markPeriodChange=c.markPeriodChange,b.bbsetr=!0,b.validateData(),c=this.panelsSettings,b.maxSelectedTime=c.maxSelectedTime,b.minSelectedTime=c.minSelectedTime);0<a.dataProvider.length&&this.zoomChart(this.startDate,this.endDate)}this.panelDataInvalidated=!1},addChartScrollbar:function(){var a=this.chartScrollbarSettings,b=this.scrollbarChart;b&&(b.clear(),b.destroy());if(a.enabled){var c=this.panelsSettings,d=this.categoryAxesSettings,b=new AmCharts.AmSerialChart(this.theme);
21
+ b.language=this.language;b.pathToImages=this.pathToImages;b.autoMargins=!1;this.scrollbarChart=b;b.id="scrollbarChart";b.scrollbarOnly=!0;b.zoomOutText="";b.panEventsEnabled=this.panelsSettings.panEventsEnabled;b.marginLeft=c.marginLeft;b.marginRight=c.marginRight;b.marginTop=0;b.marginBottom=0;var c=d.dateFormats,e=b.categoryAxis;e.boldPeriodBeginning=d.boldPeriodBeginning;c&&(e.dateFormats=d.dateFormats);e.labelsEnabled=!1;e.parseDates=!0;d=a.graph;if(AmCharts.isString(d)){c=this.panels;for(e=0;e<
22
+ c.length;e++){var k=AmCharts.getObjById(c[e].stockGraphs,a.graph);k&&(d=k)}a.graph=d}var f;d&&(f=new AmCharts.AmGraph(this.theme),f.valueField=d.valueField,f.periodValue=d.periodValue,f.type=d.type,f.connect=d.connect,f.minDistance=a.minDistance,b.addGraph(f));d=new AmCharts.ChartScrollbar(this.theme);b.addChartScrollbar(d);AmCharts.copyProperties(a,d);d.scrollbarHeight=a.height;d.graph=f;this.listenTo(d,"zoomed",this.handleScrollbarZoom);f=document.createElement("div");f.style.height=a.height+"px";
23
+ d=this.periodSelectorContainer;c=this.periodSelector;e=this.centerContainer;"bottom"==a.position?c?"bottom"==c.position?e.insertBefore(f,d):e.appendChild(f):e.appendChild(f):c?"top"==c.position?e.insertBefore(f,d.nextSibling):e.insertBefore(f,e.firstChild):e.insertBefore(f,e.firstChild);b.write(f)}},handleScrollbarZoom:function(a){if(this.skipScrollbarEvent)this.skipScrollbarEvent=!1;else{var b=a.endDate,c={};c.startDate=a.startDate;c.endDate=b;this.updateScrollbar=!1;this.handleZoom(c)}},addPeriodSelector:function(){var a=
24
+ this.periodSelector;if(a){var b=this.categoryAxesSettings.minPeriod;a.minDuration=AmCharts.getPeriodDuration(b);a.minPeriod=b;a.chart=this;var c=this.dataSetSelector,d,b=this.dssContainer;c&&(d=c.position);var c=this.panelsSettings.panelSpacing,e=document.createElement("div");this.periodSelectorContainer=e;var k=this.leftContainer,f=this.rightContainer,h=this.centerContainer,g=this.panelsContainer,n=a.width+2*c+"px";switch(a.position){case "left":k.style.width=a.width+"px";k.appendChild(e);h.style.paddingLeft=
25
+ n;break;case "right":h.style.marginRight=n;f.appendChild(e);f.style.width=a.width+"px";break;case "top":g.style.clear="both";h.insertBefore(e,g);e.style.paddingBottom=c+"px";e.style.overflow="hidden";break;case "bottom":e.style.marginTop=c+"px","bottom"==d?h.insertBefore(e,b):h.appendChild(e)}this.listenTo(a,"changed",this.handlePeriodSelectorZoom);a.write(e)}},addDataSetSelector:function(){var a=this.dataSetSelector;if(a){a.chart=this;a.dataProvider=this.dataSets;var b=a.position,c=this.panelsSettings.panelSpacing,
26
+ d=document.createElement("div");this.dssContainer=d;var e=this.leftContainer,k=this.rightContainer,f=this.centerContainer,h=this.panelsContainer,c=a.width+2*c+"px";switch(b){case "left":e.style.width=a.width+"px";e.appendChild(d);f.style.paddingLeft=c;break;case "right":f.style.marginRight=c;k.appendChild(d);k.style.width=a.width+"px";break;case "top":h.style.clear="both";f.insertBefore(d,h);d.style.overflow="hidden";break;case "bottom":f.appendChild(d)}a.write(d)}},handlePeriodSelectorZoom:function(a){var b=
27
+ this.scrollbarChart;b&&(b.updateScrollbar=!0);a.predefinedPeriod?(this.predefinedStart=a.startDate,this.predefinedEnd=a.endDate):this.predefinedEnd=this.predefinedStart=null;this.zoomChart(a.startDate,a.endDate)},addCursor:function(a){var b=this.chartCursorSettings;if(b.enabled){var c=new AmCharts.ChartCursor(this.theme);AmCharts.copyProperties(b,c);a.chartCursor&&AmCharts.copyProperties(a.chartCursor,c);a.removeChartCursor();a.addChartCursor(c);this.listenTo(c,"changed",this.handleCursorChange);
28
+ this.listenTo(c,"onHideCursor",this.hideChartCursor);this.listenTo(c,"zoomed",this.handleCursorZoom);this.chartCursors.push(c)}},hideChartCursor:function(){var a=this.chartCursors,b;for(b=0;b<a.length;b++){var c=a[b];c.hideCursor(!1);(c=c.chart)&&c.updateLegendValues()}},handleCursorZoom:function(a){var b=this.scrollbarChart;b&&(b.updateScrollbar=!0);var b={},c;if(this.categoryAxesSettings.equalSpacing){var d=this.mainDataSet.categoryField,e=this.mainDataSet.agregatedDataProviders[this.currentPeriod];
29
+ c=new Date(e[a.start][d]);a=new Date(e[a.end][d])}else c=new Date(a.start),a=new Date(a.end);b.startDate=c;b.endDate=a;this.handleZoom(b)},handleZoom:function(a){this.zoomChart(a.startDate,a.endDate)},zoomChart:function(a,b){var c=new Date(a),d=this,e=d.firstDate,k=d.lastDate,f=d.currentPeriod,h=d.categoryAxesSettings,g=h.minPeriod,n=d.panelsSettings,m=d.periodSelector,t=d.panels,r=d.comparedGraphs,v=d.scrollbarChart,w=d.firstDayOfWeek;if(e&&k){a||(a=e);b||(b=k);if(f){var l=AmCharts.extractPeriod(f);
30
+ a.getTime()==b.getTime()&&l!=g&&(b=AmCharts.changeDate(b,l.period,l.count),b.setTime(b.getTime()-1))}a.getTime()<e.getTime()&&(a=e);a.getTime()>k.getTime()&&(a=k);b.getTime()<e.getTime()&&(b=e);b.getTime()>k.getTime()&&(b=k);l=AmCharts.getItemIndex(g,h.groupToPeriods);h=f;f=d.choosePeriod(l,a,b);d.currentPeriod=f;var l=AmCharts.extractPeriod(f),y=AmCharts.getPeriodDuration(l.period,l.count);AmCharts.getPeriodDuration(g);1>b.getTime()-a.getTime()&&(a=new Date(b.getTime()-1));g=AmCharts.newDate(a);
31
+ d.extendToFullPeriod&&(g.getTime()-e.getTime()<.1*y&&(g=AmCharts.resetDateToMin(a,l.period,l.count,w)),k.getTime()-b.getTime()<.1*y&&(b=AmCharts.resetDateToMin(k,l.period,l.count,w),b=AmCharts.changeDate(b,l.period,l.count,!0)));for(e=0;e<t.length;e++)k=t[e],k.chartCursor&&k.chartCursor.panning&&(g=c);for(e=0;e<t.length;e++){k=t[e];if(f!=h){for(c=0;c<r.length;c++)y=r[c].graph,y.dataProvider=y.dataSet.agregatedDataProviders[f];c=k.categoryAxis;c.firstDayOfWeek=w;c.minPeriod=f;k.dataProvider=d.mainDataSet.agregatedDataProviders[f];
32
+ if(c=k.chartCursor)c.categoryBalloonDateFormat=d.chartCursorSettings.categoryBalloonDateFormat(l.period),k.showCategoryAxis||(c.categoryBalloonEnabled=!1);k.startTime=g.getTime();k.endTime=b.getTime();k.validateData(!0)}c=!1;k.chartCursor&&k.chartCursor.panning&&(c=!0);c||(k.startTime=void 0,k.endTime=void 0,k.zoomToDates(g,b));0<n.startDuration&&d.animationPlayed&&!c?(k.startDuration=0,k.animateAgain()):0<n.startDuration&&!c&&k.animateAgain()}d.animationPlayed=!0;AmCharts.extractPeriod(f);n=new Date(b);
33
+ v&&d.updateScrollbar&&(v.zoomToDates(a,n),d.skipScrollbarEvent=!0,setTimeout(function(){d.resetSkip.call(d)},100));d.updateScrollbar=!0;d.startDate=a;d.endDate=b;m&&m.zoom(a,b);if(a.getTime()!=d.previousStartDate.getTime()||b.getTime()!=d.previousEndDate.getTime())m={type:"zoomed"},m.startDate=a,m.endDate=b,m.chart=d,m.period=f,d.fire(m.type,m),d.previousStartDate=new Date(a),d.previousEndDate=new Date(b)}d.eventsHidden&&d.showHideEvents(!1);d.chartCreated||(f="init",d.fire(f,{type:f,chart:d}));d.chartRendered||
34
+ (f="rendered",d.fire(f,{type:f,chart:d}),d.chartRendered=!0);f="drawn";d.fire(f,{type:f,chart:d});d.chartCreated=!0;d.animationPlayed=!0},resetSkip:function(){this.skipScrollbarEvent=!1},updateGraphs:function(){this.getSelections();if(0<this.dataSets.length){var a=this.panels;this.comparedGraphs=[];var b;for(b=0;b<a.length;b++){var c=a[b],d=c.valueAxes,e;for(e=0;e<d.length;e++){var k=d[e];k.prevLog&&(k.logarithmic=k.prevLog);k.recalculateToPercents="always"==c.recalculateToPercents?!0:!1}d=this.mainDataSet;
35
+ e=this.comparedDataSets;k=c.stockGraphs;c.graphs=[];var f;for(f=0;f<k.length;f++){var h=k[f],h=AmCharts.processObject(h,AmCharts.StockGraph,this.theme);k[f]=h;if(!h.title||h.resetTitleOnDataSetChange)h.title=d.title,h.resetTitleOnDataSetChange=!0;h.useDataSetColors&&(h.lineColor=d.color,h.fillColors=void 0,h.bulletColor=void 0);var g=!1,n=d.fieldMappings,m;for(m=0;m<n.length;m++){var t=n[m],r=h.valueField;r&&t.toField==r&&(g=!0);(r=h.openField)&&t.toField==r&&(g=!0);(r=h.closeField)&&t.toField==r&&
36
+ (g=!0);(r=h.lowField)&&t.toField==r&&(g=!0)}g&&c.addGraph(h);r=!1;"always"==c.recalculateToPercents&&(r=!0);var v=c.stockLegend,w,l,y,z;v&&(v=AmCharts.processObject(v,AmCharts.StockLegend,this.theme),c.stockLegend=v,w=v.valueTextComparing,l=v.valueTextRegular,y=v.periodValueTextComparing,z=v.periodValueTextRegular);if(h.comparable){var x=e.length;0<x&&h.valueAxis.logarithmic&&"never"!=c.recalculateToPercents&&(h.valueAxis.logarithmic=!1,h.valueAxis.prevLog=!0);0<x&&"whenComparing"==c.recalculateToPercents&&
37
+ (h.valueAxis.recalculateToPercents=!0);v&&h.valueAxis&&!0===h.valueAxis.recalculateToPercents&&(r=!0);var B;for(B=0;B<x;B++){var A=e[B],q=h.comparedGraphs[A.id];q||(q=new AmCharts.AmGraph(this.theme),q.id="comparedGraph"+B+"_"+f+A.id);q.periodValue=h.periodValue;q.dataSet=A;q.behindColumns=h.behindColumns;h.comparedGraphs[A.id]=q;q.seriesIdField="amCategoryIdField";q.connect=h.connect;var s=h.compareField;s||(s=h.valueField);g=!1;n=A.fieldMappings;m;for(m=0;m<n.length;m++)t=n[m],t.toField==s&&(g=
38
+ !0);if(g){q.valueField=s;q.title=A.title;q.lineColor=A.color;h.compareGraphType&&(q.type=h.compareGraphType);g=h.compareGraphLineThickness;isNaN(g)||(q.lineThickness=g);g=h.compareGraphDashLength;isNaN(g)||(q.dashLength=g);g=h.compareGraphLineAlpha;isNaN(g)||(q.lineAlpha=g);g=h.compareGraphCornerRadiusTop;isNaN(g)||(q.cornerRadiusTop=g);g=h.compareGraphCornerRadiusBottom;isNaN(g)||(q.cornerRadiusBottom=g);g=h.compareGraphBalloonColor;isNaN(g)||(q.balloonColor=g);g=h.compareGraphBulletColor;isNaN(g)||
39
+ (q.bulletColor=g);if(g=h.compareGraphFillColors)q.fillColors=g;if(g=h.compareGraphNegativeFillColors)q.negativeFillColors=g;if(g=h.compareGraphFillAlphas)q.fillAlphas=g;if(g=h.compareGraphNegativeFillAlphas)q.negativeFillAlphas=g;if(g=h.compareGraphBullet)q.bullet=g;if(g=h.compareGraphNumberFormatter)q.numberFormatter=g;g=h.compareGraphPrecision;isNaN(g)||(q.precision=g);if(g=h.compareGraphBalloonText)q.balloonText=g;g=h.compareGraphBulletSize;isNaN(g)||(q.bulletSize=g);g=h.compareGraphBulletAlpha;
40
+ isNaN(g)||(q.bulletAlpha=g);g=h.compareGraphBulletBorderAlpha;isNaN(g)||(q.bulletBorderAlpha=g);if(g=h.compareGraphBulletBorderColor)q.bulletBorderColor=g;g=h.compareGraphBulletBorderThickness;isNaN(g)||(q.bulletBorderThickness=g);q.visibleInLegend=h.compareGraphVisibleInLegend;q.balloonFunction=h.compareGraphBalloonFunction;q.hideBulletsCount=h.hideBulletsCount;q.valueAxis=h.valueAxis;v&&(r&&w?(q.legendValueText=w,q.legendPeriodValueText=y):(l&&(q.legendValueText=l),q.legendPeriodValueText=z));c.showComparedOnTop?
41
+ c.graphs.push(q):c.graphs.unshift(q);this.comparedGraphs.push({graph:q,dataSet:A})}}}v&&(r&&w?(h.legendValueText=w,h.legendPeriodValueText=y):(l&&(h.legendValueText=l),h.legendPeriodValueText=z))}}}},choosePeriod:function(a,b,c){var d=this.categoryAxesSettings,e=d.groupToPeriods,k=e[a],e=e[a+1],f=AmCharts.extractPeriod(k),f=AmCharts.getPeriodDuration(f.period,f.count),h=b.getTime(),g=c.getTime(),d=d.maxSeries;return(g-h)/f>d&&0<d&&e?this.choosePeriod(a+1,b,c):k},handleCursorChange:function(a){var b=
42
+ a.target,c=a.position,d=a.zooming;a=a.index;var e=this.chartCursors,k;for(k=0;k<e.length;k++){var f=e[k];f!=b&&c&&(f.isZooming(d),f.previousMousePosition=NaN,f.forceShow=!0,f.initialMouse=b.initialMouse,f.selectionPosX=b.selectionPosX,f.setPosition(c,!1,a))}},getSelections:function(){var a=[],b=this.dataSets,c;for(c=0;c<b.length;c++){var d=b[c];d.compared&&a.push(d)}this.comparedDataSets=a;b=this.panels;for(c=0;c<b.length;c++)d=b[c],"never"!=d.recalculateToPercents&&0<a.length?d.hideDrawingIcons(!0):
43
+ d.drawingIconsEnabled&&d.hideDrawingIcons(!1)},addPanel:function(a){this.panels.push(a);AmCharts.removeChart(a);AmCharts.addChart(a)},addPanelAt:function(a,b){this.panels.splice(b,0,a);AmCharts.removeChart(a);AmCharts.addChart(a)},removePanel:function(a){var b=this.panels,c;for(c=b.length-1;0<=c;c--)if(b[c]==a){var d={type:"panelRemoved",panel:a,chart:this};this.fire(d.type,d);b.splice(c,1);a.destroy();a.clear()}},validateData:function(){this.resetDataParsed();this.updateDataSets();this.mainDataSet.compared=
44
+ !1;this.updateGraphs();this.updateData();var a=this.dataSetSelector;a&&a.write(a.div)},resetDataParsed:function(){var a=this.dataSets,b;for(b=0;b<a.length;b++)a[b].dataParsed=!1},validateNow:function(){this.skipDefault=!0;this.chartRendered=!1;this.clear(!0);this.write(this.div)},hideStockEvents:function(){this.showHideEvents(!1);this.eventsHidden=!0},showStockEvents:function(){this.showHideEvents(!0);this.eventsHidden=!1},showHideEvents:function(a){var b=this.panels,c;for(c=0;c<b.length;c++){var d=
45
+ b[c].graphs,e;for(e=0;e<d.length;e++){var k=d[e];!0===a?k.showBullets():k.hideBullets()}}},invalidateSize:function(){var a=this;clearTimeout(a.validateTO);var b=setTimeout(function(){a.validateNow()},5);a.validateTO=b},measure:function(){var a=this.div,b=a.offsetWidth,c=a.offsetHeight;a.clientHeight&&(b=a.clientWidth,c=a.clientHeight);this.divRealWidth=b;this.divRealHeight=c},clear:function(a){var b=this.panels,c;if(b)for(c=0;c<b.length;c++){var d=b[c];a||(d.cleanChart(),d.destroy());d.clear(a)}(b=
46
+ this.scrollbarChart)&&b.clear();if(b=this.div)b.innerHTML="";a||(this.div=null,AmCharts.deleteObject(this))}});AmCharts.StockEvent=AmCharts.Class({construct:function(){}});AmCharts.DataSet=AmCharts.Class({construct:function(){this.cname="DataSet";this.fieldMappings=[];this.dataProvider=[];this.agregatedDataProviders=[];this.stockEvents=[];this.compared=!1;this.showInCompare=this.showInSelect=!0}});AmCharts.PeriodSelector=AmCharts.Class({construct:function(a){this.cname="PeriodSelector";this.theme=a;this.createEvents("changed");this.inputFieldsEnabled=!0;this.position="bottom";this.width=180;this.fromText="From: ";this.toText="to: ";this.periodsText="Zoom: ";this.periods=[];this.inputFieldWidth=100;this.dateFormat="DD-MM-YYYY";this.hideOutOfScopePeriods=!0;AmCharts.applyTheme(this,a,this.cname)},zoom:function(a,b){var c=this.chart;this.inputFieldsEnabled&&(this.startDateField.value=AmCharts.formatDate(a,
47
+ this.dateFormat,c),this.endDateField.value=AmCharts.formatDate(b,this.dateFormat,c));this.markButtonAsSelected()},write:function(a){var b=this;a.className="amChartsPeriodSelector";var c=b.width,d=b.position;b.width=void 0;b.position=void 0;AmCharts.applyStyles(a.style,b);b.width=c;b.position=d;b.div=a;a.innerHTML="";c=b.theme;d=b.position;d="top"==d||"bottom"==d?!1:!0;b.vertical=d;var e=0,k=0;if(b.inputFieldsEnabled){var f=document.createElement("div");a.appendChild(f);var h=document.createTextNode(AmCharts.lang.fromText||
48
+ b.fromText);f.appendChild(h);d?AmCharts.addBr(f):(f.style.styleFloat="left",f.style.display="inline");var g=document.createElement("input");g.className="amChartsInputField";c&&AmCharts.applyStyles(g.style,c.PeriodInputField);g.style.textAlign="center";g.onblur=function(a){b.handleCalChange(a)};AmCharts.isNN&&g.addEventListener("keypress",function(a){b.handleCalendarChange.call(b,a)},!0);AmCharts.isIE&&g.attachEvent("onkeypress",function(a){b.handleCalendarChange.call(b,a)});f.appendChild(g);b.startDateField=
49
+ g;if(d)h=b.width-6+"px",AmCharts.addBr(f);else{var h=b.inputFieldWidth+"px",n=document.createTextNode(" ");f.appendChild(n)}g.style.width=h;g=document.createTextNode(AmCharts.lang.toText||b.toText);f.appendChild(g);d&&AmCharts.addBr(f);g=document.createElement("input");g.className="amChartsInputField";c&&AmCharts.applyStyles(g.style,c.PeriodInputField);g.style.textAlign="center";g.onblur=function(){b.handleCalChange()};AmCharts.isNN&&g.addEventListener("keypress",function(a){b.handleCalendarChange.call(b,
50
+ a)},!0);AmCharts.isIE&&g.attachEvent("onkeypress",function(a){b.handleCalendarChange.call(b,a)});f.appendChild(g);b.endDateField=g;d?AmCharts.addBr(f):e=g.offsetHeight+2;h&&(g.style.width=h)}f=b.periods;if(AmCharts.ifArray(f)){h=document.createElement("div");d||(h.style.cssFloat="right",h.style.styleFloat="right",h.style.display="inline");a.appendChild(h);d&&AmCharts.addBr(h);a=document.createTextNode(AmCharts.lang.periodsText||b.periodsText);h.appendChild(a);b.periodContainer=h;var m;for(a=0;a<f.length;a++)g=
51
+ f[a],m=document.createElement("input"),m.type="button",m.value=g.label,m.period=g.period,m.count=g.count,m.periodObj=g,m.className="amChartsButton",c&&AmCharts.applyStyles(m.style,c.PeriodButton),d&&(m.style.width=b.width-1+"px"),m.style.boxSizing="border-box",h.appendChild(m),b.addEventListeners(m),g.button=m;!d&&m&&(k=m.offsetHeight);b.offsetHeight=Math.max(e,k)}},addEventListeners:function(a){var b=this;AmCharts.isNN&&a.addEventListener("click",function(a){b.handlePeriodChange.call(b,a)},!0);AmCharts.isIE&&
52
+ a.attachEvent("onclick",function(a){b.handlePeriodChange.call(b,a)})},getPeriodDates:function(){var a=this.periods,b;for(b=0;b<a.length;b++)this.selectPeriodButton(a[b],!0)},handleCalendarChange:function(a){13==a.keyCode&&this.handleCalChange(a)},handleCalChange:function(a){var b=this.dateFormat,c=AmCharts.stringToDate(this.startDateField.value,b),b=this.chart.getLastDate(AmCharts.stringToDate(this.endDateField.value,b));try{this.startDateField.blur(),this.endDateField.blur()}catch(d){}if(c&&b){var e=
53
+ {type:"changed"};e.startDate=c;e.endDate=b;e.chart=this.chart;e.event=a;this.fire(e.type,e)}},handlePeriodChange:function(a){this.selectPeriodButton((a.srcElement?a.srcElement:a.target).periodObj,!1,a)},setRanges:function(a,b){this.firstDate=a;this.lastDate=b;this.getPeriodDates()},selectPeriodButton:function(a,b,c){var d=a.button,e=d.count,k=d.period,f,h,g=this.firstDate,n=this.lastDate,m,t=this.theme;g&&n&&("MAX"==k?(f=g,h=n):"YTD"==k?(f=new Date,f.setMonth(0,1),f.setHours(0,0,0,0),0===e&&f.setDate(f.getDate()-
54
+ 1),h=this.lastDate):"YYYY"==k||"MM"==k?this.selectFromStart?(f=g,h=new Date(g),h.setMonth(h.getMonth()+e)):(f=new Date(n),AmCharts.changeDate(f,k,e,!1),f.setDate(f.getDate()-1),h=n):(m=AmCharts.getPeriodDuration(k,e),this.selectFromStart?(f=g,h=new Date(g.getTime()+m-1)):(f=new Date(n.getTime()-m+1),h=n)),a.startTime=f.getTime(),this.hideOutOfScopePeriods&&(b&&a.startTime<g.getTime()?d.style.display="none":d.style.display="inline"),f.getTime()>n.getTime()&&(m=AmCharts.getPeriodDuration("DD",1),f=
55
+ new Date(n.getTime()-m)),f.getTime()<g.getTime()&&(f=g),"YTD"==k&&(a.startTime=f.getTime()),a.endTime=h.getTime(),b||(this.skipMark=!0,this.unselectButtons(),d.className="amChartsButtonSelected",t&&AmCharts.applyStyles(d.style,t.PeriodButtonSelected),a={type:"changed"},a.startDate=f,a.endDate=h,a.predefinedPeriod=k,a.chart=this.chart,a.count=e,a.event=c,this.fire(a.type,a)))},markButtonAsSelected:function(){if(!this.skipMark){var a=this.chart,b=this.periods,c=a.startDate.getTime(),a=a.endDate.getTime(),
56
+ d=this.lastDate.getTime();a>d&&(a=d);d=this.theme;this.unselectButtons();var e;for(e=b.length-1;0<=e;e--){var k=b[e],f=k.button;k.startTime&&k.endTime&&c==k.startTime&&a==k.endTime&&(this.unselectButtons(),f.className="amChartsButtonSelected",d&&AmCharts.applyStyles(f.style,d.PeriodButtonSelected))}}this.skipMark=!1},unselectButtons:function(){var a=this.periods,b,c=this.theme;for(b=a.length-1;0<=b;b--){var d=a[b].button;d.className="amChartsButton";c&&AmCharts.applyStyles(d.style,c.PeriodButton)}},
57
+ setDefaultPeriod:function(){var a=this.periods,b;for(b=0;b<a.length;b++){var c=a[b];c.selected&&this.selectPeriodButton(c)}}});AmCharts.StockGraph=AmCharts.Class({inherits:AmCharts.AmGraph,construct:function(a){AmCharts.StockGraph.base.construct.call(this,a);this.cname="StockGraph";this.useDataSetColors=!0;this.periodValue="Close";this.compareGraphType="line";this.compareGraphVisibleInLegend=!0;this.comparable=this.resetTitleOnDataSetChange=!1;this.comparedGraphs={};this.showEventsOnComparedGraphs=!1;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.StockPanel=AmCharts.Class({inherits:AmCharts.AmSerialChart,construct:function(a){AmCharts.StockPanel.base.construct.call(this,a);this.cname="StockPanel";this.theme=a;this.showCategoryAxis=this.showComparedOnTop=!0;this.recalculateToPercents="whenComparing";this.panelHeaderPaddingBottom=this.panelHeaderPaddingLeft=this.panelHeaderPaddingRight=this.panelHeaderPaddingTop=0;this.trendLineAlpha=1;this.trendLineColor="#00CC00";this.trendLineColorHover="#CC0000";this.trendLineThickness=2;this.trendLineDashLength=
58
+ 0;this.stockGraphs=[];this.drawingIconsEnabled=!1;this.iconSize=18;this.autoMargins=this.allowTurningOff=this.eraseAll=this.erasingEnabled=this.drawingEnabled=!1;AmCharts.applyTheme(this,a,this.cname)},initChart:function(a){AmCharts.StockPanel.base.initChart.call(this,a);this.drawingIconsEnabled&&this.createDrawIcons();(a=this.chartCursor)&&this.listenTo(a,"draw",this.handleDraw)},addStockGraph:function(a){this.stockGraphs.push(a);return a},handleCursorZoom:function(a){this.chartCursor&&this.chartCursor.pan&&
59
+ AmCharts.StockPanel.base.handleCursorZoom.call(this,a)},removeStockGraph:function(a){var b=this.stockGraphs,c;for(c=b.length-1;0<=c;c--)b[c]==a&&b.splice(c,1)},createDrawIcons:function(){var a=this,b=a.iconSize,c=a.container,d=a.pathToImages,e=a.realWidth-2*b-1-a.marginRight,k=AmCharts.rect(c,b,b,"#000",.005),f=AmCharts.rect(c,b,b,"#000",.005);f.translate(b+1,0);var h=c.image(d+"pencilIcon.gif",0,0,b,b);a.pencilButton=h;f.setAttr("cursor","pointer");k.setAttr("cursor","pointer");k.mouseup(function(){a.handlePencilClick()});
60
+ var g=c.image(d+"pencilIconH.gif",0,0,b,b);a.pencilButtonPushed=g;a.drawingEnabled||g.hide();var n=c.image(d+"eraserIcon.gif",b+1,0,b,b);a.eraserButton=n;f.mouseup(function(){a.handleEraserClick()});k.touchend&&(k.touchend(function(){a.handlePencilClick()}),f.touchend(function(){a.handleEraserClick()}));b=c.image(d+"eraserIconH.gif",b+1,0,b,b);a.eraserButtonPushed=b;a.erasingEnabled||b.hide();c=c.set([h,g,n,b,k,f]);c.translate(e,1);this.hideIcons&&c.hide()},handlePencilClick:function(){var a=!this.drawingEnabled;
61
+ this.disableDrawing(!a);this.erasingEnabled=!1;var b=this.eraserButtonPushed;b&&b.hide();b=this.pencilButtonPushed;a?b&&b.show():(b&&b.hide(),this.setMouseCursor("auto"))},disableDrawing:function(a){this.drawingEnabled=!a;var b=this.chartCursor;this.stockChart.enableCursors(a);b&&b.enableDrawing(!a)},handleEraserClick:function(){this.disableDrawing(!0);var a=this.pencilButtonPushed;a&&a.hide();a=this.eraserButtonPushed;if(this.eraseAll){var a=this.trendLines,b;for(b=a.length-1;0<=b;b--){var c=a[b];
62
+ c.isProtected||this.removeTrendLine(c)}this.validateNow()}else(this.erasingEnabled=b=!this.erasingEnabled)?(a&&a.show(),this.setTrendColorHover(this.trendLineColorHover),this.setMouseCursor("auto")):(a&&a.hide(),this.setTrendColorHover())},setTrendColorHover:function(a){var b=this.trendLines,c;for(c=b.length-1;0<=c;c--){var d=b[c];d.isProtected||(d.rollOverColor=a)}},handleDraw:function(a){var b=this.drawOnAxis;AmCharts.isString(b)&&(b=this.getValueAxisById(b));b||(b=this.valueAxes[0]);this.drawOnAxis=
63
+ b;var c=this.categoryAxis,d=a.initialX,e=a.finalX,k=a.initialY;a=a.finalY;var f=new AmCharts.TrendLine(this.theme);f.initialDate=c.coordinateToDate(d);f.finalDate=c.coordinateToDate(e);f.initialValue=b.coordinateToValue(k);f.finalValue=b.coordinateToValue(a);f.lineAlpha=this.trendLineAlpha;f.lineColor=this.trendLineColor;f.lineThickness=this.trendLineThickness;f.dashLength=this.trendLineDashLength;f.valueAxis=b;f.categoryAxis=c;this.addTrendLine(f);this.listenTo(f,"click",this.handleTrendClick);this.validateNow()},
64
+ hideDrawingIcons:function(a){(this.hideIcons=a)&&this.disableDrawing(a)},handleTrendClick:function(a){this.erasingEnabled&&(a=a.trendLine,this.eraseAll||a.isProtected||this.removeTrendLine(a),this.validateNow())},handleWheelReal:function(a,b){var c=this.scrollbarChart;if(!this.wheelBusy&&c){var d=1;b&&(d=-1);var c=c.chartScrollbar,e=this.categoryAxis.minDuration();0>a?(d=this.startTime+d*e,e=this.endTime+1*e):(d=this.startTime-d*e,e=this.endTime-1*e);d<this.firstTime&&(d=this.firstTime);e>this.lastTime&&
65
+ (e=this.lastTime);d<e&&c.timeZoom(d,e,!0)}}});AmCharts.CategoryAxesSettings=AmCharts.Class({construct:function(a){this.cname="CategoryAxesSettings";this.minPeriod="DD";this.equalSpacing=!1;this.axisHeight=28;this.tickLength=this.axisAlpha=0;this.gridCount=10;this.maxSeries=150;this.groupToPeriods="ss 10ss 30ss mm 10mm 30mm hh DD WW MM YYYY".split(" ");this.markPeriodChange=this.autoGridCount=!0;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.ChartCursorSettings=AmCharts.Class({construct:function(a){this.cname="ChartCursorSettings";this.enabled=!0;this.bulletsEnabled=this.valueBalloonsEnabled=!1;this.categoryBalloonDateFormats=[{period:"YYYY",format:"YYYY"},{period:"MM",format:"MMM, YYYY"},{period:"WW",format:"MMM DD, YYYY"},{period:"DD",format:"MMM DD, YYYY"},{period:"hh",format:"JJ:NN"},{period:"mm",format:"JJ:NN"},{period:"ss",format:"JJ:NN:SS"},{period:"fff",format:"JJ:NN:SS"}];AmCharts.applyTheme(this,a,this.cname)},categoryBalloonDateFormat:function(a){var b=
66
+ this.categoryBalloonDateFormats,c,d;for(d=0;d<b.length;d++)b[d].period==a&&(c=b[d].format);return c}});AmCharts.ChartScrollbarSettings=AmCharts.Class({construct:function(a){this.cname="ChartScrollbarSettings";this.height=40;this.enabled=!0;this.color="#FFFFFF";this.updateOnReleaseOnly=this.autoGridCount=!0;this.hideResizeGrips=!1;this.position="bottom";this.minDistance=1;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.LegendSettings=AmCharts.Class({construct:function(a){this.cname="LegendSettings";this.marginBottom=this.marginTop=0;this.usePositiveNegativeOnPercentsOnly=!0;this.positiveValueColor="#00CC00";this.negativeValueColor="#CC0000";this.autoMargins=this.equalWidths=this.textClickEnabled=!1;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.PanelsSettings=AmCharts.Class({construct:function(a){this.cname="PanelsSettings";this.marginBottom=this.marginTop=this.marginRight=this.marginLeft=0;this.backgroundColor="#FFFFFF";this.backgroundAlpha=0;this.panelSpacing=8;this.panEventsEnabled=!0;this.creditsPosition="top-right";AmCharts.applyTheme(this,a,this.cname)}});AmCharts.StockEventsSettings=AmCharts.Class({construct:function(a){this.cname="StockEventsSettings";this.type="sign";this.backgroundAlpha=1;this.backgroundColor="#DADADA";this.borderAlpha=1;this.borderColor="#888888";this.balloonColor=this.rollOverColor="#CC0000";AmCharts.applyTheme(this,a,this.cname)}});AmCharts.ValueAxesSettings=AmCharts.Class({construct:function(a){this.cname="ValueAxesSettings";this.tickLength=0;this.showFirstLabel=this.autoGridCount=this.inside=!0;this.showLastLabel=!1;this.axisAlpha=0;AmCharts.applyTheme(this,a,this.cname)}});AmCharts.getItemIndex=function(a,b){var c=-1,d;for(d=0;d<b.length;d++)a==b[d]&&(c=d);return c};AmCharts.addBr=function(a){a.appendChild(document.createElement("br"))};AmCharts.applyStyles=function(a,b){if(b&&a)for(var c in a){var d=c,e=b[d];if(void 0!==e)try{a[d]=e}catch(k){}}};
67
+ AmCharts.parseStockData=function(a,b,c,d,e){(new Date).getTime();var k={},f=a.dataProvider,h=a.categoryField;if(h){var g=AmCharts.getItemIndex(b,c),n=c.length,m,t=f.length,r,v={};for(m=g;m<n;m++)r=c[m],k[r]=[];var w={},l=a.fieldMappings,y=l.length;for(m=0;m<t;m++){var z=f[m],x=z[h],x=x instanceof Date?AmCharts.newDate(x,b):e?AmCharts.stringToDate(x,e):new Date(x),B=x.getTime(),A={};for(r=0;r<y;r++)A[l[r].toField]=z[l[r].fromField];var q;for(q=g;q<n;q++){r=c[q];var s=AmCharts.extractPeriod(r),C=s.period,
68
+ E=s.count,u,p;if(q==g||B>=v[r]||!v[r]){w[r]={};w[r].amCategoryIdField=String(AmCharts.resetDateToMin(x,C,E,d).getTime());var D;for(D=0;D<y;D++)s=l[D].toField,u=w[r],p=Number(A[s]),u[s+"Count"]=0,u[s+"Sum"]=0,isNaN(p)||(u[s+"Open"]=p,u[s+"Sum"]=p,u[s+"High"]=p,u[s+"Low"]=p,u[s+"Close"]=p,u[s+"Count"]=1,u[s+"Average"]=p);u.dataContext=z;k[r].push(w[r]);q>g&&(s=AmCharts.newDate(x,b),s=AmCharts.changeDate(s,C,E,!0),s=AmCharts.resetDateToMin(s,C,E,d),v[r]=s.getTime());if(q==g)for(var F in z)z.hasOwnProperty(F)&&
69
+ (w[r][F]=z[F]);w[r][h]=AmCharts.newDate(x,b)}else for(C=0;C<y;C++)s=l[C].toField,u=w[r],m==t-1&&(u[h]=AmCharts.newDate(x,b)),p=Number(A[s]),isNaN(p)||(isNaN(u[s+"Low"])&&(u[s+"Low"]=p),p<u[s+"Low"]&&(u[s+"Low"]=p),isNaN(u[s+"High"])&&(u[s+"High"]=p),p>u[s+"High"]&&(u[s+"High"]=p),u[s+"Close"]=p,E=AmCharts.getDecimals(u[s+"Sum"]),D=AmCharts.getDecimals(p),u[s+"Sum"]+=p,u[s+"Sum"]=AmCharts.roundTo(u[s+"Sum"],Math.max(E,D)),u[s+"Count"]++,u[s+"Average"]=u[s+"Sum"]/u[s+"Count"])}}}a.agregatedDataProviders=
70
+ k};
71
+ AmCharts.parseEvents=function(a,b,c,d,e,k){var f=a.stockEvents,h=a.agregatedDataProviders,g=b.length,n,m,t,r,v,w,l,y;for(n=0;n<g;n++){w=b[n];v=w.graphs;t=v.length;var z;for(m=0;m<t;m++)r=v[m],r.customBulletField="amCustomBullet"+r.id+"_"+w.id,r.bulletConfigField="amCustomBulletConfig"+r.id+"_"+w.id;for(var x=0;x<f.length;x++)if(l=f[x],z=l.graph,AmCharts.isString(z)&&(z=AmCharts.getObjById(v,z)))l.graph=z}for(var B in h)if(h.hasOwnProperty(B)){z=h[B];var A=AmCharts.extractPeriod(B),q=z.length,s;for(s=
72
+ 0;s<q;s++){var C=z[s];n=C[a.categoryField];y=n instanceof Date;k&&!y&&(n=AmCharts.stringToDate(n,k));var E=n.getTime();v=A.period;var x=A.count,u;u="fff"==v?n.getTime()+1:AmCharts.resetDateToMin(AmCharts.changeDate(new Date(n),A.period,A.count),v,x,d).getTime();for(n=0;n<g;n++)for(w=b[n],v=w.graphs,t=v.length,m=0;m<t;m++){r=v[m];var p={};p.eventDispatcher=e;p.eventObjects=[];p.letters=[];p.descriptions=[];p.shapes=[];p.backgroundColors=[];p.backgroundAlphas=[];p.borderColors=[];p.borderAlphas=[];
73
+ p.colors=[];p.rollOverColors=[];p.showOnAxis=[];p.values=[];p.showAts=[];for(x=0;x<f.length;x++){l=f[x];y=l.date instanceof Date;k&&!y&&(l.date=AmCharts.stringToDate(l.date,k));y=l.date.getTime();var D=!1;l.graph&&(l.graph.showEventsOnComparedGraphs&&l.graph.comparedGraphs[a.id]&&(D=!0),(r==l.graph||D)&&y>=E&&y<u&&(p.eventObjects.push(l),p.letters.push(l.text),p.descriptions.push(l.description),l.type?p.shapes.push(l.type):p.shapes.push(c.type),void 0!==l.backgroundColor?p.backgroundColors.push(l.backgroundColor):
74
+ p.backgroundColors.push(c.backgroundColor),isNaN(l.backgroundAlpha)?p.backgroundAlphas.push(c.backgroundAlpha):p.backgroundAlphas.push(l.backgroundAlpha),isNaN(l.borderAlpha)?p.borderAlphas.push(c.borderAlpha):p.borderAlphas.push(l.borderAlpha),void 0!==l.borderColor?p.borderColors.push(l.borderColor):p.borderColors.push(c.borderColor),void 0!==l.rollOverColor?p.rollOverColors.push(l.rollOverColor):p.rollOverColors.push(c.rollOverColor),void 0!==l.showAt?p.showAts.push(l.showAt):p.showAts.push(c.showAt),
75
+ p.colors.push(l.color),p.values.push(l.value),!l.panel&&l.graph&&(l.panel=l.graph.chart),p.showOnAxis.push(l.showOnAxis),p.date=new Date(l.date)));0<p.shapes.length&&(l="amCustomBullet"+r.id+"_"+w.id,y="amCustomBulletConfig"+r.id+"_"+w.id,C[l]=AmCharts.StackedBullet,C[y]=p)}}}}};AmCharts.StockLegend=AmCharts.Class({inherits:AmCharts.AmLegend,construct:function(a){AmCharts.StockLegend.base.construct.call(this,a);this.cname="StockLegend";this.valueTextComparing="[[percents.value]]%";this.valueTextRegular="[[value]]";AmCharts.applyTheme(this,a,this.cname)},drawLegend:function(){var a=this;AmCharts.StockLegend.base.drawLegend.call(a);var b=a.chart;if(b.allowTurningOff){var c=a.container,d=c.image(b.pathToImages+"xIcon.gif",b.realWidth-17,3,17,17),b=c.image(b.pathToImages+"xIconH.gif",
76
+ b.realWidth-17,3,17,17);b.hide();a.xButtonHover=b;d.mouseup(function(){a.handleXClick()}).mouseover(function(){a.handleXOver()});b.mouseup(function(){a.handleXClick()}).mouseout(function(){a.handleXOut()})}},handleXOver:function(){this.xButtonHover.show()},handleXOut:function(){this.xButtonHover.hide()},handleXClick:function(){var a=this.chart,b=a.stockChart;b.removePanel(a);b.validateNow()}});AmCharts.DataSetSelector=AmCharts.Class({construct:function(a){this.cname="DataSetSelector";this.theme=a;this.createEvents("dataSetSelected","dataSetCompared","dataSetUncompared");this.position="left";this.selectText="Select:";this.comboBoxSelectText="Select...";this.compareText="Compare to:";this.width=180;this.dataProvider=[];this.listHeight=150;this.listCheckBoxSize=14;this.rollOverBackgroundColor="#b2e1ff";this.selectedBackgroundColor="#7fceff";AmCharts.applyTheme(this,a,this.cname)},write:function(a){var b=
77
+ this,c,d=b.theme;a.className="amChartsDataSetSelector";var e=b.width;c=b.position;b.width=void 0;b.position=void 0;AmCharts.applyStyles(a.style,b);b.div=a;b.width=e;b.position=c;a.innerHTML="";var e=b.position,k;k="top"==e||"bottom"==e?!1:!0;b.vertical=k;var f;k&&(f=b.width+"px");var e=b.dataProvider,h,g;if(1<b.countDataSets("showInSelect")){c=document.createTextNode(AmCharts.lang.selectText||b.selectText);a.appendChild(c);k&&AmCharts.addBr(a);var n=document.createElement("select");f&&(n.style.width=
78
+ f);b.selectCB=n;d&&AmCharts.applyStyles(n.style,d.DataSetSelect);a.appendChild(n);AmCharts.isNN&&n.addEventListener("change",function(a){b.handleDataSetChange.call(b,a)},!0);AmCharts.isIE&&n.attachEvent("onchange",function(a){b.handleDataSetChange.call(b,a)});for(c=0;c<e.length;c++)if(h=e[c],!0===h.showInSelect){g=document.createElement("option");g.text=h.title;g.value=c;h==b.chart.mainDataSet&&(g.selected=!0);try{n.add(g,null)}catch(m){n.add(g)}}b.offsetHeight=n.offsetHeight}if(0<b.countDataSets("showInCompare")&&
79
+ 1<e.length)if(k?(AmCharts.addBr(a),AmCharts.addBr(a)):(c=document.createTextNode(" "),a.appendChild(c)),c=document.createTextNode(AmCharts.lang.compareText||b.compareText),a.appendChild(c),g=b.listCheckBoxSize,k){AmCharts.addBr(a);f=document.createElement("div");a.appendChild(f);f.className="amChartsCompareList";d&&AmCharts.applyStyles(f.style,d.DataSetCompareList);f.style.overflow="auto";f.style.overflowX="hidden";f.style.width=b.width-2+"px";f.style.maxHeight=b.listHeight+"px";for(c=0;c<e.length;c++)h=
80
+ e[c],!0===h.showInCompare&&h!=b.chart.mainDataSet&&(d=document.createElement("div"),d.style.padding="4px",d.style.position="relative",d.name="amCBContainer",d.dataSet=h,d.style.height=g+"px",h.compared&&(d.style.backgroundColor=b.selectedBackgroundColor),f.appendChild(d),k=document.createElement("div"),k.style.width=g+"px",k.style.height=g+"px",k.style.position="absolute",k.style.backgroundColor=h.color,d.appendChild(k),k=document.createElement("div"),k.style.width="100%",k.style.position="absolute",
81
+ k.style.left=g+10+"px",d.appendChild(k),h=document.createTextNode(h.title),k.style.whiteSpace="nowrap",k.style.cursor="default",k.appendChild(h),b.addEventListeners(d));AmCharts.addBr(a);AmCharts.addBr(a)}else{d=document.createElement("select");b.compareCB=d;f&&(d.style.width=f);a.appendChild(d);AmCharts.isNN&&d.addEventListener("change",function(a){b.handleCBSelect.call(b,a)},!0);AmCharts.isIE&&d.attachEvent("onchange",function(a){b.handleCBSelect.call(b,a)});g=document.createElement("option");g.text=
82
+ AmCharts.lang.comboBoxSelectText||b.comboBoxSelectText;try{d.add(g,null)}catch(t){d.add(g)}for(c=0;c<e.length;c++)if(h=e[c],!0===h.showInCompare&&h!=b.chart.mainDataSet){g=document.createElement("option");g.text=h.title;g.value=c;h.compared&&(g.selected=!0);try{d.add(g,null)}catch(r){d.add(g)}}b.offsetHeight=d.offsetHeight}},addEventListeners:function(a){var b=this;AmCharts.isNN&&(a.addEventListener("mouseover",function(a){b.handleRollOver.call(b,a)},!0),a.addEventListener("mouseout",function(a){b.handleRollOut.call(b,
83
+ a)},!0),a.addEventListener("click",function(a){b.handleClick.call(b,a)},!0));AmCharts.isIE&&(a.attachEvent("onmouseout",function(a){b.handleRollOut.call(b,a)}),a.attachEvent("onmouseover",function(a){b.handleRollOver.call(b,a)}),a.attachEvent("onclick",function(a){b.handleClick.call(b,a)}))},handleDataSetChange:function(){var a=this.selectCB,a=this.dataProvider[a.options[a.selectedIndex].value],b=this.chart;b.mainDataSet=a;b.zoomOutOnDataSetChange&&(b.startDate=void 0,b.endDate=void 0);b.validateData();
84
+ a={type:"dataSetSelected",dataSet:a,chart:this.chart};this.fire(a.type,a)},handleRollOver:function(a){a=this.getRealDiv(a);a.dataSet.compared||(a.style.backgroundColor=this.rollOverBackgroundColor)},handleRollOut:function(a){a=this.getRealDiv(a);a.dataSet.compared||(a.style.removeProperty&&a.style.removeProperty("background-color"),a.style.removeAttribute&&a.style.removeAttribute("backgroundColor"))},handleCBSelect:function(a){var b=this.compareCB,c=this.dataProvider,d,e;for(d=0;d<c.length;d++)e=
85
+ c[d],e.compared&&(a={type:"dataSetUncompared",dataSet:e}),e.compared=!1;c=b.selectedIndex;0<c&&(e=this.dataProvider[b.options[c].value],e.compared||(a={type:"dataSetCompared",dataSet:e}),e.compared=!0);b=this.chart;b.validateData();a.chart=b;this.fire(a.type,a)},handleClick:function(a){a=this.getRealDiv(a).dataSet;!0===a.compared?(a.compared=!1,a={type:"dataSetUncompared",dataSet:a}):(a.compared=!0,a={type:"dataSetCompared",dataSet:a});var b=this.chart;b.validateData();a.chart=b;this.fire(a.type,
86
+ a)},getRealDiv:function(a){a||(a=window.event);a=a.currentTarget?a.currentTarget:a.srcElement;"amCBContainer"==a.parentNode.name&&(a=a.parentNode);return a},countDataSets:function(a){var b=this.dataProvider,c=0,d;for(d=0;d<b.length;d++)!0===b[d][a]&&c++;return c}});AmCharts.StackedBullet=AmCharts.Class({construct:function(){this.fontSize=11;this.stackDown=!1;this.mastHeight=8;this.shapes=[];this.backgroundColors=[];this.backgroundAlphas=[];this.borderAlphas=[];this.borderColors=[];this.colors=[];this.rollOverColors=[];this.showOnAxiss=[];this.values=[];this.showAts=[];this.textColor="#000000";this.nextY=0;this.size=16},parseConfig:function(){var a=this.bulletConfig;this.eventObjects=a.eventObjects;this.letters=a.letters;this.shapes=a.shapes;this.backgroundColors=
87
+ a.backgroundColors;this.backgroundAlphas=a.backgroundAlphas;this.borderColors=a.borderColors;this.borderAlphas=a.borderAlphas;this.colors=a.colors;this.rollOverColors=a.rollOverColors;this.date=a.date;this.showOnAxiss=a.showOnAxis;this.axisCoordinate=a.minCoord;this.showAts=a.showAts;this.values=a.values},write:function(a){this.parseConfig();this.container=a;this.bullets=[];if(this.graph){var b=this.graph.fontSize;b&&(this.fontSize=b)}b=this.letters.length;(this.mastHeight+2*(this.fontSize/2+2))*
88
+ b>this.availableSpace&&(this.stackDown=!0);this.set=a.set();a=0;var c;for(c=0;c<b;c++)this.shape=this.shapes[c],this.backgroundColor=this.backgroundColors[c],this.backgroundAlpha=this.backgroundAlphas[c],this.borderAlpha=this.borderAlphas[c],this.borderColor=this.borderColors[c],this.rollOverColor=this.rollOverColors[c],this.showOnAxis=this.showOnAxiss[c],this.color=this.colors[c],this.value=this.values[c],this.showAt=this.showAts[c],this.addLetter(this.letters[c],a,c),this.showOnAxis||a++},addLetter:function(a,
89
+ b,c){var d=this.container;b=d.set();var e=-1,k=this.stackDown,f=this.graph.valueAxis;this.showOnAxis&&(this.stackDown=f.reversed?!0:!1);this.stackDown&&(e=1);var h=0,g=0,n=0,m,t=this.fontSize,r=this.mastHeight,v=this.shape,w=this.textColor;void 0!==this.color&&(w=this.color);void 0===a&&(a="");a=AmCharts.fixBrakes(a);a=AmCharts.text(d,a,w,this.chart.fontFamily,this.fontSize);a.node.style.pointerEvents="none";d=a.getBBox();this.labelWidth=w=d.width;this.labelHeight=d.height;var l,d=0;switch(v){case "sign":l=
90
+ this.drawSign(b);h=r+4+t/2;d=r+t+4;1==e&&(h-=4);break;case "flag":l=this.drawFlag(b);g=w/2+3;h=r+4+t/2;d=r+t+4;1==e&&(h-=4);break;case "pin":l=this.drawPin(b);h=6+t/2;d=t+8;break;case "triangleUp":l=this.drawTriangleUp(b);h=-t-1;d=t+4;e=-1;break;case "triangleDown":l=this.drawTriangleDown(b);h=t+1;d=t+4;e=-1;break;case "triangleLeft":l=this.drawTriangleLeft(b);g=t;d=t+4;e=-1;break;case "triangleRight":l=this.drawTriangleRight(b);g=-t;e=-1;d=t+4;break;case "arrowUp":l=this.drawArrowUp(b);a.hide();
91
+ break;case "arrowDown":l=this.drawArrowDown(b);a.hide();d=t+4;break;case "text":e=-1;l=this.drawTextBackground(b,a);h=this.labelHeight+3;d=t+10;break;case "round":l=this.drawCircle(b)}this.bullets[c]=l;this.showOnAxis?(m=isNaN(this.nextAxisY)?this.axisCoordinate:this.nextY,n=h*e,this.nextAxisY=m+e*d):this.value?(m=this.value,f.recalculateToPercents&&(m=m/f.recBaseValue*100-100),m=f.getCoordinate(m)-this.bulletY,n=h*e):this.showAt?(l=this.graphDataItem.values,f.recalculateToPercents&&(l=this.graphDataItem.percents),
92
+ l&&(m=f.getCoordinate(l[this.showAt])-this.bulletY,n=h*e)):(m=this.nextY,n=h*e);a.translate(g,n);b.push(a);b.translate(0,m);this.addEventListeners(b,c);this.nextY=m+e*d;this.stackDown=k},addEventListeners:function(a,b){var c=this;a.click(function(){c.handleClick(b)}).mouseover(function(){c.handleMouseOver(b)}).touchend(function(){c.handleMouseOver(b,!0)}).mouseout(function(){c.handleMouseOut(b)})},drawPin:function(a){var b=-1;this.stackDown&&(b=1);var c=this.fontSize+4;return this.drawRealPolygon(a,
93
+ [0,c/2,c/2,-c/2,-c/2,0],[0,b*c/4,b*(c+c/4),b*(c+c/4),b*c/4,0])},drawSign:function(a){var b=-1;this.stackDown&&(b=1);var c=this.mastHeight*b,d=this.fontSize/2+2,e=AmCharts.line(this.container,[0,0],[0,c],this.borderColor,this.borderAlpha,1),k=AmCharts.circle(this.container,d,this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);k.translate(0,c+d*b);a.push(e);a.push(k);this.set.push(a);return k},drawFlag:function(a){var b=-1;this.stackDown&&(b=1);var c=this.fontSize+4,d=this.labelWidth+
94
+ 6,e=this.mastHeight,b=1==b?b*e:b*e-c,e=AmCharts.line(this.container,[0,0],[0,b],this.borderColor,this.borderAlpha,1),c=AmCharts.polygon(this.container,[0,d,d,0],[0,0,c,c],this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);c.translate(0,b);a.push(e);a.push(c);this.set.push(a);return c},drawTriangleUp:function(a){var b=this.fontSize+7;return this.drawRealPolygon(a,[0,b/2,-b/2,0],[0,b,b,0])},drawArrowUp:function(a){var b=this.size,c=b/2,d=b/4;return this.drawRealPolygon(a,
95
+ [0,c,d,d,-d,-d,-c,0],[0,c,c,b,b,c,c,0])},drawArrowDown:function(a){var b=this.size,c=b/2,d=b/4;return this.drawRealPolygon(a,[0,c,d,d,-d,-d,-c,0],[0,-c,-c,-b,-b,-c,-c,0])},drawTriangleDown:function(a){var b=this.fontSize+7;return this.drawRealPolygon(a,[0,b/2,-b/2,0],[0,-b,-b,0])},drawTriangleLeft:function(a){var b=this.fontSize+7;return this.drawRealPolygon(a,[0,b,b,0],[0,-b/2,b/2])},drawTriangleRight:function(a){var b=this.fontSize+7;return this.drawRealPolygon(a,[0,-b,-b,0],[0,-b/2,b/2,0])},drawRealPolygon:function(a,
96
+ b,c){b=AmCharts.polygon(this.container,b,c,this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);a.push(b);this.set.push(a);return b},drawCircle:function(a){shape=AmCharts.circle(this.container,this.fontSize/2,this.backgroundColor,this.backgroundAlpha,1,this.borderColor,this.borderAlpha);a.push(shape);this.set.push(a);return shape},drawTextBackground:function(a,b){var c=b.getBBox(),d=-c.width/2-5,e=c.width/2+5,c=-c.height-12;return this.drawRealPolygon(a,[d,-5,0,5,e,e,d,d],
97
+ [-5,-5,0,-5,-5,c,c,-5])},handleMouseOver:function(a,b){b||this.bullets[a].attr({fill:this.rollOverColors[a]});var c=this.eventObjects[a],d={type:"rollOverStockEvent",eventObject:c,graph:this.graph,date:this.date},e=this.bulletConfig.eventDispatcher;d.chart=e;e.fire(d.type,d);c.url&&this.bullets[a].setAttr("cursor","pointer");this.chart.showBalloon(AmCharts.fixNewLines(c.description),e.stockEventsSettings.balloonColor,!0)},handleClick:function(a){a=this.eventObjects[a];var b={type:"clickStockEvent",
98
98
  eventObject:a,graph:this.graph,date:this.date},c=this.bulletConfig.eventDispatcher;b.chart=c;c.fire(b.type,b);b=a.urlTarget;b||(b=c.stockEventsSettings.urlTarget);AmCharts.getURL(a.url,b)},handleMouseOut:function(a){this.bullets[a].attr({fill:this.backgroundColors[a]});a={type:"rollOutStockEvent",eventObject:this.eventObjects[a],graph:this.graph,date:this.date};var b=this.bulletConfig.eventDispatcher;a.chart=b;b.fire(a.type,a)}});
@@ -1,1071 +1,1071 @@
1
- ###############################################################################################################################
2
-
3
- Since version 3.4.3, change log moved to: http://www.amcharts.com/javascript-charts/changelog/
4
-
5
- #### 3.4.2 ####################################################################################################################
6
-
7
- Bug fix: if pie slice had no label, the external method rollOverSlice(index) was not working
8
-
9
- Bug fix: x switch of the legend position adjusted
10
-
11
- Bug fix: when autoWrap for category axis was set to true, in some cases axis title was cut.
12
-
13
- markPeriodChange was set to true in CategoryAxesSettings.
14
-
15
- #### 3.4.1 ####################################################################################################################
16
-
17
- "patterns" theme added.
18
-
19
- themes were updated a bit.
20
-
21
- labels of angular gauge axis adjusted.
22
-
23
- when scrolling serial/stock charts with mousewheel (chart.mouseWheelScrollEnabled must be set to true), if user press shift
24
- button, the chart will zoom-in or zoom-out;
25
-
26
- adjustment property added to ChartCursor. Default value is 0, if you set it to -1, the balloon will show near previous, if
27
- you set it to 1 - near next data point.
28
-
29
- #### 3.4.0 ####################################################################################################################
30
-
31
- Link to amCharts.com site in a free version was made less noticable - it uses chart's font color and font size and you can
32
- adjust it's position using creditsPosition property of AmChart. Possible values are: top-left, top-right, bottom-right and
33
- bottom-left. This will help you to achieve better layout of a chart.
34
-
35
- We fixed typo in chart cursors property - it was showNextAvalable and now is showNextAvailable. The old one won't work.
36
-
37
- Since now you can scroll serial and stock charts with mouse wheel. To enable this, set chart.mouseWheelScrollEnabled = true
38
- (default is false)
39
-
40
- moved event added to chart cursor. It is dispatched every time the mouse is moved. The event object has the following
41
- properties: x, y (coordinates of the cursor), target (reference to cursor), chart, zooming.
42
-
43
- axisX and axisY properties added to AxisBase. They are read-only and returns x and y positions of the axis.
44
-
45
- unit and unitPosition (with possible values left and right) added to GaugeAxis class.
46
-
47
- autoWrap property added to CategoryAxis, with default value false. If you set it to true, the axis labels will be wrapped
48
- if they won't fit in the allocated space.
49
-
50
- minHorizontalGap (default 75) and minVerticalGap (35) properties added to AxisBase. They are used to calculate the number of
51
- gridLines when autoGridCount is true. You can modify these values to have more or less grid lines.
52
-
53
-
54
- #### 3.3.6 ####################################################################################################################
55
-
56
- # Bug fix - charts with legend could fail if there was a google analytics script in the page.
57
-
58
- # stepDirection property added to AmGraph. If you set it to "left", step line graph will draw the step to the left of the
59
- date/category.
60
-
61
- #### 3.3.5 ####################################################################################################################
62
-
63
- # Bug fix - 3D pie chart was not rendered in IE8 and older (since 3.3.4 version only)
64
-
65
- # Candlestick graphs can display patterns
66
-
67
- # Old listeners are removed automatically if the same listener was added, this helps to avoid duplicate calls of event
68
- handlers
69
-
70
- # \n in labelText of AmGraph is now properly displayed as new line.
71
-
72
- #### 3.3.4 ####################################################################################################################
73
-
74
- # export as image script fixed - bullets of charts with scrollbars were not exported.
75
-
76
- # dataContext property added to SerialDataItem. It holds reference to original data object and might be used when using
77
- labelFunction to format custom balloon text and in some other cases.
78
-
79
- # XY chart can display bullets with patterns (if valueField is set).
80
-
81
-
82
- #### 3.3.3 ####################################################################################################################
83
-
84
- # hideBalloonTime property added to AmChart class, default value is 150 (milliseconds). It sets time after which balloon is
85
- hidden if user rolls-out of the object. Increasing the time might help to prevent balloon flickering while moving the
86
- mouse over the object.
87
-
88
- # useLineColorForBulletBorder property added to AmGraph. Might help in some situations, especially when using themes.
89
-
90
- # 3D charts now look a lot better with patterns.
91
-
92
- # endWidth property added to GaugeArrow (default 0). This will allow having more modern, rectangular arrows.
93
-
94
- # facePattern property added to AmAngularGauge. You can fill gauge's face with some pattern using it.
95
-
96
- # bug fix: new lines were ignored in balloons
97
-
98
- #### 3.3.2 ####################################################################################################################
99
-
100
- # You can now set theme for all the charts on your page by setting:
101
- AmCharts.theme = AmCharts.themes.light; // or some other theme
102
- If you are creating charts using JavaScript API, not JSON, then this is quite a comfortable way, as you won't need to
103
- pass theme to each object you create.
104
-
105
- # bug fix: rendered event was fired only on first render, now it is fired each time the chart is rendered after
106
- chart.validateNow(); method is called. This bug caused the export buttons to dissapear after the validateNow() method.
107
-
108
- # chartCursror.showNextAvalable property added (default is false). If true, the graph will display balloon on next
109
- available data point if currently hovered item doesn't have value for this graph.
110
-
111
- # graph.periodSpan property added (default is 1). This property can be used by step graphs - you can set how many periods
112
- one horizontal line should span.
113
-
114
- # "end" option added to graph.pointPosition property.
115
-
116
-
117
- #### 3.3.1 ####################################################################################################################
118
-
119
- # bug fix - \n was replaced with <br> in category axis and the tag was displayed
120
- # bug fix - if lineColorField or dashLengthField or fillColorsField was set, the graph could loose the setting if zoomed.
121
-
122
- #### 3.3.0 ####################################################################################################################
123
-
124
- # Since this version amCharts and amMap support themes. This means that instead of seting every property for each graph
125
- or axis or any other object, you can set new defaults in a theme file. This will make devs' life a lot easier.
126
-
127
- Currently you can find three themes in amcharts/themes folder - dark.js, light.js and chalk.js To set a theme for a chart,
128
- simply set theme property to the name of the file: theme:"light". Note, this will work only if you are creating chart
129
- using JSON config. If you do it in old way (JSON config is supported since v 3.2.0), you should pass theme object for
130
- each new object you build, for example: var graph = new AmCharts.AmGraph(AmCharts.themes.light);
131
-
132
- We will be adding more themes soon. Check _usingThemes.html file in samples folder to see themes in action.
133
-
134
- # patterns property added to AmSlicedChart and AmCoordinateChart - instead of setting a pattern for a slice/graph, you can
135
- pass array of patterns using this property.
136
-
137
- # you can now control zoom-out buttons with the following new properties of AmRectangularChart:
138
-
139
- zoomOutButtonImageSize
140
- zoomOutButtonImage
141
- zoomOutButtonColor
142
- zoomOutButtonAlpha
143
- zoomOutButtonRollOverAlpha
144
- zoomOutButtonPadding
145
-
146
- # some minor bugs fixed
147
-
148
- #### 3.2.0 ####################################################################################################################
149
-
150
-
151
- # AmCharts.makeChart(divID, chartConfig); method added. divID is id of a div where your chart should appear. chartConfig is
152
- JSON object with chart configuration. Check examples with _JSON_ prefix in samples folder to see this in action.
153
-
154
- # type property added to AmChart class. It is required to specify type to one of the following, when creating charts from
155
- JSON config: serial, xy, radar, pie, gauge, funnel, map, stock
156
-
157
- # a possibility to export charts as image/pdf/svg added for all modern browsers except IE9 (IE10 is supported). The
158
- exporting doesn't require any server side software and is made using js libraries only. Check samples with
159
- _exporting_ prefix to see this in action. Exporting to SVG doesn't work very properly with stock chart or charts with
160
- legend (will offer saving multiple files).
161
-
162
- # You can set any legend items via legend.data property, for example:
163
- legend.data = [{title:"first", color:"#CC0000", value:50}, {title:"second", color:"#00CC00", value:100}];
164
- This allows creating any legend items you want. Call chart.legend.validateNow(); if you change legend's data at run time.
165
-
166
- # AmAngularGauge supports legend now
167
-
168
- # bug fix - if a chart with scrollbar was rotated after the chart is created, the scrollbar's graph was shifted to a wrong
169
- position.
170
-
171
- # bug fix - column graph type wasn't displayed in chart scrollbar (since 3.1.0)
172
-
173
- # gridAboveGraphs property added to AmCoordinate chart. This allow to show grid lines above your graphs, as world-famous
174
- data visualization guru Edward Tufte suggests. Note, this won't work properly with 3D charts.
175
-
176
- # negative axis labels rotation possible. You can use values from -90 to -1 for labelRotation property since now.
177
-
178
- # bug fix: step line with changing line color was rendered incorrectly if some values were missing.
179
-
180
- # bug fix: labelPosition "inside" and "middle" for bar charts fixed.
181
-
182
- # bug fix: AmAngularGauge chart wasn't firing "rendered" event.
183
-
184
-
185
- #### 3.1.1 ####################################################################################################################
186
-
187
- # FireFox error messages about style declarations fixed
188
-
189
- # Bug fix: maxWidth property of AmBalloon was ignored
190
-
191
- # Some other minor bugs fixed
192
-
193
-
194
- #### 3.1.0 ####################################################################################################################
195
-
196
- Great new features added - charts now support patterns (can fill bars, lines and slices with images) and can simulate
197
- hand drawn charts - the lines will be a bit distorted and produce a nice effect. Check our new inspiring samples at
198
- http://www.amcharts.com/inspiration/ to see new possibilities in action.
199
-
200
- # patterns
201
- Patterns can be set for entire graphs or for individual columns/slices. In case you want to set pattern for a graph, use
202
- pattern property of AmGraph. If you want to set individual pattern for a column or slice, describe patterns in chart's
203
- data and set patternField for a graph or pie/funnel chart. Value of pattern should be object with url, width, height of an
204
- image, optionally it might have x, y, randomX and randomY values. For example:
205
-
206
- graph.pattern = {"url":"../amcharts/patterns/black/pattern1.png", "width":4, "height":4};
207
-
208
- check amcharts/patterns folder for some patterns. You can create your own patterns and use them.
209
-
210
- Note, x, y, randomX and randomY properties won't work with IE8 and older.
211
-
212
- Check handDrawnChart.html, pieWithPatterns.html or columnWithPatterns.html examples to see this in action.
213
-
214
- Note, 3D bar/Pie charts won't work properly with patterns.
215
-
216
- # hand-drawn style
217
- if you set chart.handDrawn = true, the lines of a chart will be distorted and will produce hand-drawn effect.
218
- You can also modify chart.handDrawScatter (default value is 2) and chart.handDrawThickness (default value 1) values for
219
- more scattered view.
220
-
221
- # offsetY and offsetX properties added to AmBalloon. Specifies the distance from the mouse position to balloon's pointer.
222
- You might want to increase distance when using hand drawn style.
223
-
224
- # Some minor problems fixed
225
-
226
- #### 3.0.1 ####################################################################################################################
227
-
228
- Some very minor bugs which usually pop right after big release fixed.
229
-
230
- #### 3.0.0 ####################################################################################################################
231
-
232
- **** Several files ****
233
-
234
- As not all users require all type of charts, we spilt the js file into several files - one main amcharts.js file, plus
235
- a separate js file for each chart type. This means you can include only the charts you need. If you are worried about
236
- number of requests, you can simply copy/paste the source of the charts you use to the main file.
237
-
238
- **** Upgrading / 100% backwards compatibility ****
239
-
240
- Although we changed some default values in order to improve usability of the charts, the only thing you should worry
241
- about when upgrading from v2 to v3 is the feature mention above – you should include two or more js files in order your
242
- charts to work. If you don’t like the changed defaults, you can always set them to the previous values in your chart
243
- setup.
244
-
245
- **** New chart types ****
246
-
247
- # Funnel / Pyramid chart.
248
- Check funnelChart.html and pyramidChart.html examples. As this chart type has a lot of in common
249
- with pie chart, we created one base class for these chart types - AmSlicedChart. AmPieChart and AmFunnelChart now extend
250
- this class. Visit our online class reference for properties and methods of AmFunnelChart.
251
-
252
- # Angular Gauge
253
- Supports multiple axes and multiple arrows. Check the following examples: angularGauge.html,
254
- angularGaugeWithTwoAxes.html, clock.html, clockWithTwoFaces.html. Visit our online class reference for properties and
255
- methods of classes used by this chart type.
256
-
257
- *** New chart types made with new possibilities of Serial/XY charts ***
258
-
259
- We added lots of new features to our charts and with these features you can create new chart types, like:
260
-
261
- # Horizontal or vertical bullet chart - bulletChart.html
262
-
263
- # Waterfall chart - waterFallChart.html
264
-
265
- # Step chart without risers - lineStepNoRisers.html
266
-
267
- # Error chart (both Serial and XY) - errorChart.html
268
-
269
- *** Other new features ***
270
-
271
- # Possibility to show minor grid for both Category and Value axis. minorGridEnabled (default value false) and
272
- minorGridAlpha (default 0.07) properties added to AxisBase class.
273
- Example: lineWithScrollAndZoom.html
274
-
275
-
276
- # Possibility to change line graphs' line/fill color on any data point to create highlighted sections of the graph.
277
- To achieve this, you should set lineColorField and/or fillColorsField for your graph and have a field in your data
278
- which would contain color values at a point where you want the graph to change it's color.
279
- Example: lineWithChangingColor.html
280
-
281
-
282
- # Possibility to switch line from solid to dashed. Columns can also have dashed outline. To achieve this, you should set
283
- dashLengthField for your graph and have a field in your data which would contain dashLength value at a point where you
284
- want the graph to change from solid to dashed or vice versa.
285
- Example: lineWithDifferentBulletSizes.html and columnAndLineMix.html
286
-
287
-
288
- # Date strings in data now supported. Even if your chart parses dates, you can pass them as strings in your data – all you
289
- need to do is to set data date format and the chart will parse dates to date objects. This means that now data for
290
- date-based chart can be in legit JSON format. dataDateFormat property added to AmSerialChart and AmStockChart.
291
- Example: lineWithChangingColor.html, lineWithTrendLines.html and some more.
292
-
293
-
294
- # When moving chart cursor over the chart, hovered bullets can change their size. If a graph has bullets and you added
295
- ChartCursor to the chart, bullets will become bigger when char cursor is over them. graphBulletSize property with
296
- default value 1.7 added to ChartCursor. If you want to disable this feature, set the value to 1.
297
- Example: lineWithLogarithmicValueAxis.html, lineWithScrollAndZoom.html and some more.
298
-
299
-
300
- # Legend can now display period value. When user is not hovering the chart, legend can show sum, average, open, close, low
301
- or high values of selected period. periodValueText added to AmLegend and legendPeriodValueText added to AmGraph to
302
- achieve this. The tags should be made out of two parts - the name of a field (value / open / close / high / low) and the
303
- value of the period you want to be show - open / close / high / low / sum / average / count. For example: [[value.sum]]
304
- means that sum of all data points of value field in the selected period will be displayed.
305
- Example: area100PercentStacked.html and areaStacked.html
306
-
307
- To achieve the same with stock chart, we added periodValueTextRegular and periodValueTextComparing proprties to
308
- StockLegend. To show percent period values, you should add "percent." prefix for your tag, for example:
309
- [[percents.value.close]] means that last percent value of a period will be displayed.
310
- Example: stockMultiplePanels.html and stockMultipleDataSets.html
311
-
312
-
313
- # Legend markers can now mirror graph’s settings, displaying a line and a real bullet as in the graph itself.
314
- useGraphSettings property with default value false was added to AmLegend. Note, we also removed "line" and "dashedLine"
315
- marker types because of this - use the useGraphSettings feature in case you need lines as markers in the legend.
316
- Example: lineWithDifferentBulletSizes.html and lineWithMultipleValueAxes.html
317
-
318
-
319
- # Legend now supports custom markers (images). customMarker property was added to AmGraph. You should set path to the image
320
- which should be displayed in the legend.
321
-
322
-
323
- # Diamond bullet type added. Set graph.bullet = "diamond" to use it.
324
-
325
-
326
- # Dynamic bullet size based on value axis / Error chart.
327
- Error chart is a regular serial or XY chart with bullet type set to "errorX" or "errorY". The graph should know which axis
328
- should be used to determine the size of this bullet - that's when graph.bulletAxis property should be set. Besides that,
329
- you should also set graph.errorField. You can also use other bullet types with this feature too. For example, if you set
330
- bulletAxis for XY chart, the size of a bullet will change as you zoom the chart.
331
- Example: errorChart.html
332
-
333
-
334
- # You can specify custom column width for each graph individually. columnWidth property added to AmGraph. Note, you set
335
- relative width here (0 - 1), not width in pixels.
336
- Example: bulletChart.html
337
-
338
-
339
- # Columns can be overlaid on other columns, without making axis as stacked. clustered property added to AmGraph. In case you
340
- want to place graph's columns in front of other columns, set it to false.
341
- Example: bulletChart.html
342
-
343
-
344
- # Resize grips were made bigger to make life easier for users on touch devices.
345
-
346
-
347
- # Balloons can now display any HTML and CSS inside them. This means you can add images, format text or display just about
348
- any HTML/CSS content. Because of this new feature, we removed textShadow property of AmBalloon in this version.
349
- Example: areaStacked.html, barStacked.html and many other.
350
-
351
-
352
- # Balloon now can animate from point to point and also fade out when user moves away from the chart. animationDuration and
353
- fadeOutDuration properties added to AmBalloon, with default values 0.3. animationDuration property was also added to
354
- ChartCursor, so that the cursor line would also animate to its position.
355
- Example: any chart with balloon.
356
-
357
-
358
- # Balloon now can display shadow. shadowColor (default #000000) and shadowAlpha (default 0.4) added to AmBalloon.
359
- Example: any chart with balloon.
360
-
361
-
362
- # Some default values of AmBalloon changed for a better usability - adjustBorderColor to true, cornerRadius to 0,
363
- pointerWidth to 6, color to #000000.
364
- Example: any chart with balloon.
365
-
366
-
367
- # Stock chart can display scrollbar on top of the chart.
368
- Example: stockIntradayData.html
369
-
370
-
371
-
372
- *******************************************************************************************************************************
373
- *******************************************************************************************************************************
374
- *******************************************************************************************************************************
375
-
376
-
377
-
378
- 2.11.3
379
- With IE8 and older, in some cases not all category axis labels were shown.
380
-
381
- 2.11.2
382
- "drawn" event added to AmChart. Fired every time chart is drawn - on zoom, hide graph, etc.
383
- bug fixed - in some cases last grid items of category axis were not drawn.
384
-
385
- 2.11.1
386
- Bug fixed: if chart.usePrefixes was set to true, numbers near value axis grid could be rounded and duplicated.
387
- This bug only occured in v 2.11.0.
388
-
389
- 2.11.0
390
- Bug fixed:
391
- FireFox 3.6 failed to show all columns of a graph.
392
- NumberFormatter was ignored if usePrefixes was set to true.
393
-
394
- Features added:
395
- baloonFunction added to AmGraph. If you set some function, the graph will call it and pass graphDataItem and graph object to it
396
- this function should return a string which will be displayed in a balloon.
397
-
398
- Custom fields now supported in labels/balloons/legend of Pie and Radar chart.
399
-
400
- Guide.above property added, the guide will be placed above the graphs if set to true (default is false).
401
-
402
- 2.10.8
403
- Bug with stacked step charts fixed.
404
- categoryBalloonFunction property added to ChartCursor. It allows formatting any category balloon text you want.
405
- The categoryBalloonFunction should return a string which will be displayed in a balloon. When categoryBalloonFunction
406
- is called, category value (or date) is passed as an argument.
407
-
408
- 2.10.7
409
- Bugs related to new behavior of CategoryAxis fixed.
410
- CategoryAxis.centerLabelOnFullPeriod property added, with default value true. This setting works only when
411
- parseDates is set to true and equalSpacing is set to false. In case you set it to false,
412
- labels will never be centered between grid lines.
413
-
414
- 2.10.6
415
- Some minor improvements.
416
-
417
- 2.10.5
418
- CategoryAxis labeling, when parseDates is true was improved.
419
- CategoryAxis.markPeriodChange property added, with default value set to true. If you set it to false,
420
- the start of longer periods won't use a different date format and won't be bold.
421
-
422
-
423
- 2.10.4
424
-
425
- charts can be rendered in "rtl" (right-to-left) mode. You have to set AmCharts.rtl = true in order this mode to be enabled.
426
- categoryAxis.minPeriod now supports intervals like 15mm, 10ss (previously only equal intervals like ss, mm were supported).
427
- some minor bugs fixed.
428
-
429
- 2.10.3
430
-
431
- milliseconds problem with firefox & IE fixed
432
-
433
- 2.10.2
434
-
435
- AmCharts.useUTC problems fixed.
436
-
437
- guide.color property added (changes text color of guide label).
438
-
439
- some other minor bugs fixed.
440
-
441
-
442
- 2.10.1
443
-
444
- showHandOnHover property added to AmGraph.
445
-
446
- totalTextColor property added to ValueAxis.
447
-
448
- minimum and maximum properties added to ChartScrollbar class. In case your scrollbar has a graph, you can set
449
- minimum and maximum values of scrollbar's value axis.
450
-
451
- "rendered" event added to AmChart class. fired only once, when chart is first rendered.
452
-
453
- bug with graph.negativeBase and line graph fixed.
454
-
455
- columnSpacing3D added to AmSerialChart. Allows setting space between 3d stacked columns.
456
-
457
- 2.10.0
458
- ******
459
- categoryFunction property added to CategoryAxis. It specifies a method that returns the value that should be
460
- used as categoryValue for current item. If this property is set, the return value of the custom data function
461
- takes precedence over categoryField. When a chart calls this method, it passes category value, data item from
462
- chart's data provider and reference to categoryAxis: categoryFunction(category, dataItem, categoryAxis);
463
- This method can be used both when category axis parses dates and when it doesn't. If axis parses dates, your
464
- categoryFunction should return Date object.
465
-
466
- ******
467
- labelFunction added to AxisBase. You can use it to format both Value and Category axis labels. If this function
468
- is set for ValueAxis, it is called and these parameters are passed: labelFunction(value, valueText, valueAxis);
469
- Where value is numeric value, valueText is formatted string and valueAxis is a reference to valueAxis object.
470
-
471
- If this function is set for CategoryAxis, then it is called with the following parameters passed:
472
-
473
- if dates are not parsed:
474
- labelFunction(valueText, serialDataItem, categoryAxis)
475
-
476
- if dates are parsed:
477
- labelFunction(valueText, date, categoryAxis)
478
-
479
- ******
480
- fontSize property added to Guide.
481
- position property added to Guide.
482
-
483
- ******
484
- useMarkerColorForValues property added to AmLegend.
485
-
486
- ******
487
- rightClickSlice event added to AmPieChart.
488
-
489
- ******
490
- Some minor bugs fixed.
491
-
492
- **************************************************************************************************************
493
-
494
- 2.9.2
495
-
496
- Problem with lines not visible on XP+IE8 fixed.
497
-
498
- 2.9.1
499
-
500
- 'selected' event of ChartCursor was added. It is fired when selectWithoutZooming is set to true and
501
- user makes selection.
502
-
503
- Fixed XY chart external zoom (with valueAxis.zoomToValues() method)
504
-
505
- labelColorField added to AmGraph, it allows setting different color for individual data labels.
506
-
507
- forceShowField added to CategoryAxis. It allows setting which of the categories should
508
- always be displayed. Works only when categoryAxis.parseDates = false
509
-
510
- rightClickGraphItem event added to AmCoordinateChart.
511
-
512
- "changed" event of chart cursor has a new property, called mostCloseGraph. It is
513
- set if you are using chartCursor.oneBalloonOnly = true.
514
-
515
- Fix: IE used to hide legend of pie chart after validateNow() method was called.
516
-
517
- labelRadiusField property added to AmPieChart. It allows specifying the distance from pie
518
- to data label manually. Note, if you set labelRadiusField, the chart won't try to
519
- arrange labels so that they won't overlap.
520
-
521
-
522
- 2.9.0
523
-
524
- Since this version, when setting zooming date-based chart, you have to set
525
- exact "to" date. For example, if you want the chart to display one day only,
526
- set from date as 2012,1,1 (first of February) and the to date as
527
- new Date(2012,1,2) or new Date(2012,1,1,23,59,59). Previously you could set the
528
- same date for start and end dates and the chart used to select one "minPeriod"
529
- automatically, however this caused a lot of problems for charts displaying
530
- monthly or yearly data.
531
-
532
- AmCharts.clear method added. Call this method if you want completely to remove all charts from a page.
533
-
534
- Memory leak fixed.
535
-
536
- Last item was not displayed if minPeriod was bigger than day.
537
-
538
- Switch of legend marker was in wrong position when marker size was quite small.
539
-
540
- validateData() method caused error when fillToGraph property was set.
541
-
542
- if valueAxis.minimum was set and values were smaller than this minimum, columns were not displayed.
543
-
544
- align property wasn't working when using external container for the legend.
545
-
546
- some other minor bugs fixed.
547
-
548
- 2.8.5
549
-
550
- above property added to Guide. If you set it to true, guides will be displayed above graphs.
551
- Some minor bugs fixed.
552
-
553
- 2.8.4
554
-
555
- NEW FEATURE:
556
- you can set a customly created div element as a container of your legend. To do this,
557
- you should pass id or reference of the div in this method:
558
-
559
- chart.addLegend(legend, divID);
560
-
561
- FIXES:
562
- balloon could be wrongly positioned in marginTop style was added directly to <html> element.
563
- chart.animateAgain(); worked only if validateNow() method was called after.
564
- in some specific cases scrollbar could act icorrectly on IE8/IE7.
565
-
566
-
567
- 2.8.3
568
-
569
- When panEventsEnabled was set to true, balloons over bullets were not shown.
570
-
571
- Text in balloons was not properly vertically aligned if verticalSpacing was set
572
- to some different than default value.
573
-
574
- Balloon wasn't positioned properly if chart was in a scrollable div.
575
-
576
- Init event wasn't fired by AmPieChart.
577
-
578
- 2.8.2
579
-
580
- Step line's corners sometimes were not perfect (one extra pixel could be added
581
- in the end of horizontal line)
582
-
583
- You couldn't change panEventsEnabled of AmChart class after the chart was
584
- initialized.
585
-
586
- You couldn't chane legend's position after the chart was initialized.
587
-
588
- Step line chart was not correctly filled if Value axis was of some stacked type.
589
-
590
- Some other minor bugs fixed.
591
-
592
- 2.8.1
593
-
594
- hideXScrollbar and hideYScrollbar properties added to AmXYChart. This will
595
- allow you to show one scrollbar only.
596
-
597
- 2.8.0
598
-
599
- New features:
600
- you can pass dates as timestamps instead of date objects.
601
-
602
- ChartCursor.selectWithoutZooming property added which allows marking desired area
603
- with chart cursor without zooming-in.
604
-
605
- graph.fillToGraph property added. This allows creating band or range graphs.
606
- The area between graph and fillToGraph will be filled with a color if graph.fillAlphas
607
- is set to > 0 value. Works with "line" graph type only.
608
-
609
- Bug fixes:
610
-
611
- Blurry lines on all browsers fixed
612
-
613
- right/bottom grid line was hidden if marginRight/marginBottom were set to 0
614
-
615
- category balloon was shifted a bit since last version
616
-
617
- background image was incorrectly sized
618
-
619
- 2.7.10
620
- Problem with balloon position in IE10 fixed.
621
-
622
- 2.7.9
623
-
624
- FIX: If you used to add/remove some graphs for several times, some graphs could disappear.
625
-
626
- FIX: balloon could be positioned in a wrong place in some specific cases with IE.
627
-
628
- Some other minor bugs fixed.
629
-
630
- 2.7.8
631
-
632
- url parameter added to chart.addLabel method
633
-
634
- Printing in IE8 fixed;
635
-
636
- Two typos in property names fixed:
637
-
638
- ValueAxis.minMaxMultiplier (instead of minMaxMultiplayer)
639
- and
640
- ValueAxis.synchronizationMultiplier (instead of synchronizationMultiplyer)
641
-
642
- We do not longer support old names with errors, so you should adjust names if you use
643
- them in your scripts. Sorry for inconvenience.
644
-
645
- some other minor bugs fixed.
646
-
647
- 2.7.7
648
-
649
- ValueAxis.minMaxMultiplier was ignored if min (or max) value was equal to 0.
650
- In some cases, when legend position was set to "left", chart might be positioned
651
- incorrectly.
652
-
653
- 2.7.6
654
-
655
- chart.invalidateSize() method was fixed
656
- charts used to ignore padding of a div.
657
- chartCursor.showCursorAt(category) method added. It will make the cursor to
658
- appear at specified cateogry or date.
659
-
660
- 2.7.5
661
- Bug with smoothed line in scrollbar fixed.
662
- minMaxMultiplayer property added to ValueAxis. Default value is 1. You can increase
663
- min/max range using this property. Useful for bubble charts - prevents from bubbles
664
- being cut.
665
- Some other minor bugs fixed.
666
-
667
- 2.7.4
668
- In case open and close values were equal, horizontal line wasn't drawn by candlestick chart.
669
-
670
- In case pie chart had one slice only, a tiny gap might be visible in IE8 and older.
671
-
672
- markerBorderColor of AmLegend was ignored.
673
-
674
- Ticks with no labels (when labelFrequency was > 1) were not hidden by categoryAxis.
675
-
676
- Balloons could overlap "show all" button preventing it from being clicked.
677
-
678
-
679
- 2.7.3
680
- new line symbol \n was ignored in some browsers.
681
-
682
- smaller than 1 numbers were formatted incorrectly in some cases.
683
-
684
- 2.7.2
685
- Usabilty with touch devices improved - scrollbar's drag icons has a bigger hit area.
686
-
687
- Some bugs fixed.
688
-
689
- 2.7.1
690
- chart.removeLegend() was not working properly.
691
-
692
- chart.startDate wasn't returning value.
693
-
694
- lineColorField added to graph's properties.
695
-
696
- 2.7.0
697
- textAlign property added to AmBalloon. Possible values are left/middle/right,
698
- default is "middle".
699
-
700
- behindColumns property added to AmGraph. If set to true, line graph will be
701
- displayed behind column graphs.
702
-
703
- "init" event added to AmChart. Event is fired right after the chart is initialized
704
- for the very first time.
705
-
706
- totalText property added to ValueAxis. Usage example:
707
- valueAxis.totalText = "total: [[total]]"
708
- It works only if the chart has column graphs and stackType is set to "regular" or "100%".
709
-
710
- showEntries property added to AmLegend. It might be used by StockChart - in case you want
711
- legend as it displayes title of the chart but don't want legend entries to be visible.
712
-
713
- A bug with separate data provider set to graph fixed.
714
-
715
- 2.6.13
716
- FIXES:
717
- When viewing a page with a chart from iOS browser, console logged some errors
718
-
719
- gradientOrientation was ignored by area charts
720
-
721
- plotAreaGradientAngle property added to AmRectangularChart, can accept 0, 90,
722
- 180 and 270 values.
723
-
724
- 2.6.12
725
- FIXES:
726
- Pie chart data labels were hidden behind other slices if labelRadius < 0
727
-
728
- If chart was in a div with scrollbar, cursor was displayed in wrong position after
729
- scrolling with FF.
730
-
731
- Some other minor bugs fixed.
732
-
733
- 2.6.11
734
- cursor and balloons were not shown on iPad when cursor.pan was set to true
735
-
736
- Labels near XY chart bullets were placed incorrectly (since last version only)
737
-
738
- some other minor bugs fixed
739
-
740
- 2.6.10
741
- AmCharts.baseHref property added. Set it to true if you are using base href in your
742
- HTML. This will help so solve svg/base href bug (clip paths are not working and
743
- gradient fills are displayed as balck).
744
-
745
- Text can be wrapped again. Add \n in places you need new line in text.
746
-
747
- Some other minor bugs fixed.
748
-
749
- 2.6.9
750
- AmCharts.useUTC property added, default value is false. Set it to true if you
751
- create dates using timestamps, like new Date(1256953732) and wish dates to be
752
- formatted usin UTC instead of local time.
753
-
754
- FIX:
755
- If more than two colors were set for graph.fillColors, only two first colors
756
- were used.
757
-
758
- FIX:
759
- chartCursor.bulletsEnabled was ignored, even set to true.
760
-
761
- FIX: on IE8, if one slice was 100%, the circle wasn't displayed.
762
-
763
- FIX: custom fields in balloonText were not supported by XY chart.
764
-
765
- 2.6.8
766
- pieAlpha property was ignored.
767
- plotAreaBorderAlpha was ignored if plotAreaAlphas was 0
768
- column graph type was ignoring startEffect property.
769
- chart property referencing to the chart object added to all event objects.
770
-
771
- 2.6.7
772
- Pie slices became invisible if startAlpha was < 1 on <= IE8 browsers (since 2.6.6 only)
773
- Performance with IE6 increased.
774
-
775
- 2.6.6
776
- short year (YY) was incorrectly formatted in <= IE8 browsers
777
- alphaField was ignored by column graph
778
- chartScrollbar was not working properly when parseDates was set to false.
779
- some other minor bugs fixed.
780
-
781
- 2.6.5
782
- some minor bugs fixed.
783
-
784
- 2.6.4
785
- minSelectedTime property added to AmSerialTime
786
-
787
- some minor bugs fixed.
788
-
789
- 2.6.3
790
- zoom-out button wasn't working on iPad (only since 2.6.0)
791
-
792
- 2.6.2
793
- Bug with paneEventsEnabled and older firefox (< 4) fixed
794
-
795
- //////////////////////////////////////////////////////////////////////////////////////
796
- // IMPOTANT UPDATE ///////////////////////////////////////////////////////////////////
797
- // 2.6.0 ///////////////////////////////////////////////////////////////////
798
- //////////////////////////////////////////////////////////////////////////////////////
799
-
800
- amCharts is no longer using raphael drawing library. New drawing engine is included
801
- inside amcharts.js file. The charts got a lot faster, the file size reduced by 70Kb!
802
-
803
- //////////////////////////////////////////////////////////////////////////////////////
804
- 2.5.5
805
- In new version of Chrome (17) a new bug was introduced - if touchEventsEnabled was set
806
- to true, mouse events stopped working on normal browsers. Bug fixed in this version.
807
-
808
- //////////////////////////////////////////////////////////////////////////////////////
809
- 2.5.4
810
- Some minor bugs fixed
811
-
812
- //////////////////////////////////////////////////////////////////////////////////////
813
- 2.5.3
814
- Some minor bugs fixed
815
-
816
- //////////////////////////////////////////////////////////////////////////////////////
817
- 2.5.2
818
- Some minor bugs fixed
819
-
820
- //////////////////////////////////////////////////////////////////////////////////////
821
- 2.5.1
822
-
823
- TrendLines are supported by XY chart from this version
824
-
825
- //////////////////////////////////////////////////////////////////////////////////////
826
- // IMPORTANT UPDATE //////////////////////////////////////////////////////////////////
827
- // 2.5.0 //////////////////////////////////////////////////////////////////
828
- //////////////////////////////////////////////////////////////////////////////////////
829
-
830
- Since v 2.5 we no longer distribute our old flash charts in this package, we hope this
831
- will help to avoid a lot of misunderstandings. If you still want to use flash charts,
832
- download them in a separate package from www.amcharts.com/download/
833
-
834
- We added a lot of new examples, to the "samples" folder. They are better structured,
835
- source code commented.
836
-
837
- BIG NEW FEATURES:
838
-
839
- Automatic margins
840
- margins of RectangularChart (Serial and XY charts) are calculated automatically now.
841
- You can still work in old way by setting margins manually - set chart.autoMargins to
842
- false.
843
-
844
- Axis titles
845
- Previously you had to use addLabel method in order to give name to the axis. Since
846
- this version we introduced title property for AxisBase, so you can name both Category
847
- and Value Axes now much more easily.
848
-
849
- Chart title
850
- Same as with axes titles - previously you had to use addLabel method to name a chart.
851
- Now you can add any number of titles using
852
- chart.addTitle(text, size, color, alpha, bold) method. Chart title is taken into account
853
- when calculating margins, also position of pie/radar center.
854
-
855
- Trend lines
856
- Chart can display Trend lines now.
857
-
858
- AmCharts.ready() method added so you don't need to use window.onload anymore. You can
859
- use amCharts.ready as many times in one page as you want.
860
-
861
- NOT SO BIG NEW FEATURES:
862
-
863
- precision property added to ValueAxis.
864
-
865
- if chart.usePrefixes is set, prefixes will be used both in balloons and legend, not only
866
- by valueAxis as before.
867
-
868
-
869
- SOME OTHER THINGS TO MENTION:
870
-
871
- default value of autoGridCount property of AxisBase changed to true
872
-
873
- default value of textClickEnabled of AmLegend changed to false
874
-
875
- default value of hideResizeGrips of ChartScrollbar changed to false
876
-
877
- All margins of RectangularChart changed to 20, as they can still be used for sides
878
- without axes.
879
-
880
-
881
- //////////////////////////////////////////////////////////////////////////////////////
882
- //////////////////////////////////////////////////////////////////////////////////////
883
-
884
- 2.4.7
885
- FEATURE:
886
- you can use custom tags like [[myCustomField]] in labelText / balloonText. If data item
887
- from your data provider has such field, the tag will be replaced with this value.
888
-
889
- FIXES:
890
- [[percents]] were not displayed in stacked chart labels.
891
- labels on the 3D columns were positioned in wrong position in some cases.
892
-
893
- 2.4.6
894
- FIXES:
895
- if chartCursor.pan was set to true, mouse pointer didn't change back when off the area.
896
-
897
- in some cases balloon flashed in a wrong position (IE only) for a second.
898
-
899
- amFallback used to fail on older IE with <visible_in_legend> set to false.
900
-
901
- Rollover balloons used to overlap when all of the datapoints were very near the top of
902
- the plot area.
903
-
904
- Sometimes lines became blurry after window was resized.
905
-
906
- v16 of Chrome used to display warning about deprecated layerX and layerY properties
907
-
908
- guides on CategoryAxis with not date based values used not to work properly.
909
-
910
- Some other minor bugs fixed.
911
-
912
- FEATURES:
913
-
914
- boldPeriodBeginning property with default value true added to CoordinateAxis.
915
- You can disable bolding of the beginning of a period (like year/month/etc) using
916
- it.
917
-
918
- 2.4.5
919
- some bugs fixed
920
-
921
- 2.4.4
922
- some bugs fixed
923
-
924
- 2.4.3
925
- labels added using addLabel method weren't rotated (this bug was since v 2.4.0)
926
- Raphael.js updated to 2.0.1, some related issues in amCharts fixed.
927
-
928
- 2.4.2
929
- equalWidths with default value true added to AmLegend. Allows to save space
930
- in the legend. Won't look good if legend has more than one line.
931
-
932
- version property added to AmChart. Indicates current version of the chart script.
933
-
934
- FIXES:
935
- If labelRotation was set to 90, some labels were hidden.
936
-
937
- It was impossible to drag chart scrollbar if the mouse was over text in scrollbar.
938
- Chart cursor stayed visible sometimes even mouse wasn't over the chart.
939
-
940
- [[category]] metatag was ignored in legend value text.
941
-
942
- [[percents.value]] couldn't be displayed in value balloon.
943
-
944
- labelPosition was ignored with not stacked columns
945
-
946
-
947
- 2.4.1
948
- raphael.js file was updated in order to fix conflicts with mootools.
949
-
950
- some minor bugs fixed.
951
-
952
- 2.4.0
953
- JavaScript version moved to newly released Raphael v.2 (raphael.js file was updated).
954
-
955
- some minor bugs fixed.
956
-
957
- 2.3.0
958
- Fixes in Flash version:
959
-
960
- Since the release of Flash Player 11, calling setSettings could cause browser
961
- crash. This problem fixed in this version. You only need to overwrite swf files.
962
-
963
- Fixes in JavaScript version:
964
-
965
- Rollover balloon with cornerRadius set to 0 was distorted when it's close to the
966
- plot area's top.
967
-
968
- amClickGraphItem event wasn't working for Radar Chart.
969
-
970
- graph.showBalloon = false was ignored.
971
-
972
- The last item in chart.colors array was ignored.
973
-
974
- 3D stacked bar charts had layer order problems.
975
-
976
- New features in JavaScript version:
977
-
978
- minBulletSize property added to AmGraph. Might be useful for XY chart.
979
-
980
- animateAgain() method added to all charts. Will trigger animation.
981
-
982
- 2.2.1
983
- Changes were made in JavaScript version only.
984
-
985
- We used Google's Closure Compiler (http://closure-compiler.appspot.com/home)
986
- app to optimize the code and now size of amCharts is less by ~13 KB!
987
-
988
- oneBalloonOnly property added to ChartCursor. If true, only one value balloon
989
- at a time will be displayed. Default value is false.
990
-
991
- Some minor bugs were fixed.
992
-
993
- 2.2.0
994
- JavaScript version of XY Chart is now available.
995
- Code was optimized so even with this new chart the size of a file got smaller!
996
- Some minor bugs fixed in JS version.
997
- We decided to remove a possibility to have gradient fills of JS pie chart as this
998
- might cause some unsolvable bugs.
999
-
1000
- 2.1.5
1001
- Fix in JavaScript version:
1002
- Some garbage used to appear on plot area while zooming candlestick chart.
1003
-
1004
- 2.1.4
1005
- Fix in JavaScript version:
1006
- One i variable was't declared so it became global. This might cause some conflicts
1007
- with other scripts on a page.
1008
-
1009
- 2.1.3
1010
-
1011
- Fixes / tweaks in JavaScript version:
1012
-
1013
- If duration of ValueAxis is set, value balloons now also display duration.
1014
-
1015
- If a label was added with chart.addLabel method after the chart is created, these
1016
- labels used to dissapear after validateNow() methos was called.
1017
-
1018
- Some issues with positive/negative graph masking fixed.
1019
-
1020
- If graph type was column, startDuration was > 0, and there were values equal to 0,
1021
- an error used to happen with Chrome while animating.
1022
-
1023
- Legend marker type "bubble" wasn't working at all.
1024
-
1025
- Legend marker type "line" or "dashed line" wasn't registering clicks on the marker.
1026
-
1027
- 2.1.0
1028
- Radar/Polar chart added to JavaScript charts
1029
- Some bug fixes/tweaks in both flash and JavaScript versions.
1030
-
1031
-
1032
- 2.0.7
1033
- Memory leaks fixed and performance inproved for JavaScript version.
1034
-
1035
-
1036
- 2.0.6
1037
- Changes in JavaScript version:
1038
- We strongly recommend upgrading to this version, as it contains some important
1039
- updates and fixes.
1040
-
1041
- One important change which might affect chart behavior on touch devices was made.
1042
- As our charts have a possibility to zoom-in or scroll, we are capturing touch events
1043
- and zoom or pan or scroll the chart if such event happens. This means that if a
1044
- chart is on a page, and user is moving a page with a finger, the page won't move if
1045
- he touches the chart first. Understanding that in most cases moving a page is a
1046
- primary purpose of a user, we disabled our pan behaviors by default. If you think
1047
- that selecting or or panning the chart is a primary purpose of your chart users,
1048
- you should set:
1049
-
1050
- chart.panEventsEnabled = true;
1051
-
1052
- Another important fix - the charts were redrawing when browser was resized even
1053
- if chart containers size didn't changed. This affected performance a lot.
1054
-
1055
- Some other minor fixes were made.
1056
-
1057
-
1058
- 2.0.5
1059
- Changes in JavaScript version:
1060
- Some minor bugs fixed.
1061
-
1062
-
1063
- 2.0.4
1064
- Changes in JavaScript version:
1065
- gridPosition property with possible values "start" and "middle" added to CategroryAxis;
1066
- usePrefixes added to valueAxis;
1067
-
1068
-
1069
- 2.0.3
1070
- Changes in JavaScript version:
1
+ ###############################################################################################################################
2
+
3
+ Since version 3.4.3, change log moved to: http://www.amcharts.com/javascript-charts/changelog/
4
+
5
+ #### 3.4.2 ####################################################################################################################
6
+
7
+ Bug fix: if pie slice had no label, the external method rollOverSlice(index) was not working
8
+
9
+ Bug fix: x switch of the legend position adjusted
10
+
11
+ Bug fix: when autoWrap for category axis was set to true, in some cases axis title was cut.
12
+
13
+ markPeriodChange was set to true in CategoryAxesSettings.
14
+
15
+ #### 3.4.1 ####################################################################################################################
16
+
17
+ "patterns" theme added.
18
+
19
+ themes were updated a bit.
20
+
21
+ labels of angular gauge axis adjusted.
22
+
23
+ when scrolling serial/stock charts with mousewheel (chart.mouseWheelScrollEnabled must be set to true), if user press shift
24
+ button, the chart will zoom-in or zoom-out;
25
+
26
+ adjustment property added to ChartCursor. Default value is 0, if you set it to -1, the balloon will show near previous, if
27
+ you set it to 1 - near next data point.
28
+
29
+ #### 3.4.0 ####################################################################################################################
30
+
31
+ Link to amCharts.com site in a free version was made less noticable - it uses chart's font color and font size and you can
32
+ adjust it's position using creditsPosition property of AmChart. Possible values are: top-left, top-right, bottom-right and
33
+ bottom-left. This will help you to achieve better layout of a chart.
34
+
35
+ We fixed typo in chart cursors property - it was showNextAvalable and now is showNextAvailable. The old one won't work.
36
+
37
+ Since now you can scroll serial and stock charts with mouse wheel. To enable this, set chart.mouseWheelScrollEnabled = true
38
+ (default is false)
39
+
40
+ moved event added to chart cursor. It is dispatched every time the mouse is moved. The event object has the following
41
+ properties: x, y (coordinates of the cursor), target (reference to cursor), chart, zooming.
42
+
43
+ axisX and axisY properties added to AxisBase. They are read-only and returns x and y positions of the axis.
44
+
45
+ unit and unitPosition (with possible values left and right) added to GaugeAxis class.
46
+
47
+ autoWrap property added to CategoryAxis, with default value false. If you set it to true, the axis labels will be wrapped
48
+ if they won't fit in the allocated space.
49
+
50
+ minHorizontalGap (default 75) and minVerticalGap (35) properties added to AxisBase. They are used to calculate the number of
51
+ gridLines when autoGridCount is true. You can modify these values to have more or less grid lines.
52
+
53
+
54
+ #### 3.3.6 ####################################################################################################################
55
+
56
+ # Bug fix - charts with legend could fail if there was a google analytics script in the page.
57
+
58
+ # stepDirection property added to AmGraph. If you set it to "left", step line graph will draw the step to the left of the
59
+ date/category.
60
+
61
+ #### 3.3.5 ####################################################################################################################
62
+
63
+ # Bug fix - 3D pie chart was not rendered in IE8 and older (since 3.3.4 version only)
64
+
65
+ # Candlestick graphs can display patterns
66
+
67
+ # Old listeners are removed automatically if the same listener was added, this helps to avoid duplicate calls of event
68
+ handlers
69
+
70
+ # \n in labelText of AmGraph is now properly displayed as new line.
71
+
72
+ #### 3.3.4 ####################################################################################################################
73
+
74
+ # export as image script fixed - bullets of charts with scrollbars were not exported.
75
+
76
+ # dataContext property added to SerialDataItem. It holds reference to original data object and might be used when using
77
+ labelFunction to format custom balloon text and in some other cases.
78
+
79
+ # XY chart can display bullets with patterns (if valueField is set).
80
+
81
+
82
+ #### 3.3.3 ####################################################################################################################
83
+
84
+ # hideBalloonTime property added to AmChart class, default value is 150 (milliseconds). It sets time after which balloon is
85
+ hidden if user rolls-out of the object. Increasing the time might help to prevent balloon flickering while moving the
86
+ mouse over the object.
87
+
88
+ # useLineColorForBulletBorder property added to AmGraph. Might help in some situations, especially when using themes.
89
+
90
+ # 3D charts now look a lot better with patterns.
91
+
92
+ # endWidth property added to GaugeArrow (default 0). This will allow having more modern, rectangular arrows.
93
+
94
+ # facePattern property added to AmAngularGauge. You can fill gauge's face with some pattern using it.
95
+
96
+ # bug fix: new lines were ignored in balloons
97
+
98
+ #### 3.3.2 ####################################################################################################################
99
+
100
+ # You can now set theme for all the charts on your page by setting:
101
+ AmCharts.theme = AmCharts.themes.light; // or some other theme
102
+ If you are creating charts using JavaScript API, not JSON, then this is quite a comfortable way, as you won't need to
103
+ pass theme to each object you create.
104
+
105
+ # bug fix: rendered event was fired only on first render, now it is fired each time the chart is rendered after
106
+ chart.validateNow(); method is called. This bug caused the export buttons to dissapear after the validateNow() method.
107
+
108
+ # chartCursror.showNextAvalable property added (default is false). If true, the graph will display balloon on next
109
+ available data point if currently hovered item doesn't have value for this graph.
110
+
111
+ # graph.periodSpan property added (default is 1). This property can be used by step graphs - you can set how many periods
112
+ one horizontal line should span.
113
+
114
+ # "end" option added to graph.pointPosition property.
115
+
116
+
117
+ #### 3.3.1 ####################################################################################################################
118
+
119
+ # bug fix - \n was replaced with <br> in category axis and the tag was displayed
120
+ # bug fix - if lineColorField or dashLengthField or fillColorsField was set, the graph could loose the setting if zoomed.
121
+
122
+ #### 3.3.0 ####################################################################################################################
123
+
124
+ # Since this version amCharts and amMap support themes. This means that instead of seting every property for each graph
125
+ or axis or any other object, you can set new defaults in a theme file. This will make devs' life a lot easier.
126
+
127
+ Currently you can find three themes in amcharts/themes folder - dark.js, light.js and chalk.js To set a theme for a chart,
128
+ simply set theme property to the name of the file: theme:"light". Note, this will work only if you are creating chart
129
+ using JSON config. If you do it in old way (JSON config is supported since v 3.2.0), you should pass theme object for
130
+ each new object you build, for example: var graph = new AmCharts.AmGraph(AmCharts.themes.light);
131
+
132
+ We will be adding more themes soon. Check _usingThemes.html file in samples folder to see themes in action.
133
+
134
+ # patterns property added to AmSlicedChart and AmCoordinateChart - instead of setting a pattern for a slice/graph, you can
135
+ pass array of patterns using this property.
136
+
137
+ # you can now control zoom-out buttons with the following new properties of AmRectangularChart:
138
+
139
+ zoomOutButtonImageSize
140
+ zoomOutButtonImage
141
+ zoomOutButtonColor
142
+ zoomOutButtonAlpha
143
+ zoomOutButtonRollOverAlpha
144
+ zoomOutButtonPadding
145
+
146
+ # some minor bugs fixed
147
+
148
+ #### 3.2.0 ####################################################################################################################
149
+
150
+
151
+ # AmCharts.makeChart(divID, chartConfig); method added. divID is id of a div where your chart should appear. chartConfig is
152
+ JSON object with chart configuration. Check examples with _JSON_ prefix in samples folder to see this in action.
153
+
154
+ # type property added to AmChart class. It is required to specify type to one of the following, when creating charts from
155
+ JSON config: serial, xy, radar, pie, gauge, funnel, map, stock
156
+
157
+ # a possibility to export charts as image/pdf/svg added for all modern browsers except IE9 (IE10 is supported). The
158
+ exporting doesn't require any server side software and is made using js libraries only. Check samples with
159
+ _exporting_ prefix to see this in action. Exporting to SVG doesn't work very properly with stock chart or charts with
160
+ legend (will offer saving multiple files).
161
+
162
+ # You can set any legend items via legend.data property, for example:
163
+ legend.data = [{title:"first", color:"#CC0000", value:50}, {title:"second", color:"#00CC00", value:100}];
164
+ This allows creating any legend items you want. Call chart.legend.validateNow(); if you change legend's data at run time.
165
+
166
+ # AmAngularGauge supports legend now
167
+
168
+ # bug fix - if a chart with scrollbar was rotated after the chart is created, the scrollbar's graph was shifted to a wrong
169
+ position.
170
+
171
+ # bug fix - column graph type wasn't displayed in chart scrollbar (since 3.1.0)
172
+
173
+ # gridAboveGraphs property added to AmCoordinate chart. This allow to show grid lines above your graphs, as world-famous
174
+ data visualization guru Edward Tufte suggests. Note, this won't work properly with 3D charts.
175
+
176
+ # negative axis labels rotation possible. You can use values from -90 to -1 for labelRotation property since now.
177
+
178
+ # bug fix: step line with changing line color was rendered incorrectly if some values were missing.
179
+
180
+ # bug fix: labelPosition "inside" and "middle" for bar charts fixed.
181
+
182
+ # bug fix: AmAngularGauge chart wasn't firing "rendered" event.
183
+
184
+
185
+ #### 3.1.1 ####################################################################################################################
186
+
187
+ # FireFox error messages about style declarations fixed
188
+
189
+ # Bug fix: maxWidth property of AmBalloon was ignored
190
+
191
+ # Some other minor bugs fixed
192
+
193
+
194
+ #### 3.1.0 ####################################################################################################################
195
+
196
+ Great new features added - charts now support patterns (can fill bars, lines and slices with images) and can simulate
197
+ hand drawn charts - the lines will be a bit distorted and produce a nice effect. Check our new inspiring samples at
198
+ http://www.amcharts.com/inspiration/ to see new possibilities in action.
199
+
200
+ # patterns
201
+ Patterns can be set for entire graphs or for individual columns/slices. In case you want to set pattern for a graph, use
202
+ pattern property of AmGraph. If you want to set individual pattern for a column or slice, describe patterns in chart's
203
+ data and set patternField for a graph or pie/funnel chart. Value of pattern should be object with url, width, height of an
204
+ image, optionally it might have x, y, randomX and randomY values. For example:
205
+
206
+ graph.pattern = {"url":"../amcharts/patterns/black/pattern1.png", "width":4, "height":4};
207
+
208
+ check amcharts/patterns folder for some patterns. You can create your own patterns and use them.
209
+
210
+ Note, x, y, randomX and randomY properties won't work with IE8 and older.
211
+
212
+ Check handDrawnChart.html, pieWithPatterns.html or columnWithPatterns.html examples to see this in action.
213
+
214
+ Note, 3D bar/Pie charts won't work properly with patterns.
215
+
216
+ # hand-drawn style
217
+ if you set chart.handDrawn = true, the lines of a chart will be distorted and will produce hand-drawn effect.
218
+ You can also modify chart.handDrawScatter (default value is 2) and chart.handDrawThickness (default value 1) values for
219
+ more scattered view.
220
+
221
+ # offsetY and offsetX properties added to AmBalloon. Specifies the distance from the mouse position to balloon's pointer.
222
+ You might want to increase distance when using hand drawn style.
223
+
224
+ # Some minor problems fixed
225
+
226
+ #### 3.0.1 ####################################################################################################################
227
+
228
+ Some very minor bugs which usually pop right after big release fixed.
229
+
230
+ #### 3.0.0 ####################################################################################################################
231
+
232
+ **** Several files ****
233
+
234
+ As not all users require all type of charts, we spilt the js file into several files - one main amcharts.js file, plus
235
+ a separate js file for each chart type. This means you can include only the charts you need. If you are worried about
236
+ number of requests, you can simply copy/paste the source of the charts you use to the main file.
237
+
238
+ **** Upgrading / 100% backwards compatibility ****
239
+
240
+ Although we changed some default values in order to improve usability of the charts, the only thing you should worry
241
+ about when upgrading from v2 to v3 is the feature mention above – you should include two or more js files in order your
242
+ charts to work. If you don’t like the changed defaults, you can always set them to the previous values in your chart
243
+ setup.
244
+
245
+ **** New chart types ****
246
+
247
+ # Funnel / Pyramid chart.
248
+ Check funnelChart.html and pyramidChart.html examples. As this chart type has a lot of in common
249
+ with pie chart, we created one base class for these chart types - AmSlicedChart. AmPieChart and AmFunnelChart now extend
250
+ this class. Visit our online class reference for properties and methods of AmFunnelChart.
251
+
252
+ # Angular Gauge
253
+ Supports multiple axes and multiple arrows. Check the following examples: angularGauge.html,
254
+ angularGaugeWithTwoAxes.html, clock.html, clockWithTwoFaces.html. Visit our online class reference for properties and
255
+ methods of classes used by this chart type.
256
+
257
+ *** New chart types made with new possibilities of Serial/XY charts ***
258
+
259
+ We added lots of new features to our charts and with these features you can create new chart types, like:
260
+
261
+ # Horizontal or vertical bullet chart - bulletChart.html
262
+
263
+ # Waterfall chart - waterFallChart.html
264
+
265
+ # Step chart without risers - lineStepNoRisers.html
266
+
267
+ # Error chart (both Serial and XY) - errorChart.html
268
+
269
+ *** Other new features ***
270
+
271
+ # Possibility to show minor grid for both Category and Value axis. minorGridEnabled (default value false) and
272
+ minorGridAlpha (default 0.07) properties added to AxisBase class.
273
+ Example: lineWithScrollAndZoom.html
274
+
275
+
276
+ # Possibility to change line graphs' line/fill color on any data point to create highlighted sections of the graph.
277
+ To achieve this, you should set lineColorField and/or fillColorsField for your graph and have a field in your data
278
+ which would contain color values at a point where you want the graph to change it's color.
279
+ Example: lineWithChangingColor.html
280
+
281
+
282
+ # Possibility to switch line from solid to dashed. Columns can also have dashed outline. To achieve this, you should set
283
+ dashLengthField for your graph and have a field in your data which would contain dashLength value at a point where you
284
+ want the graph to change from solid to dashed or vice versa.
285
+ Example: lineWithDifferentBulletSizes.html and columnAndLineMix.html
286
+
287
+
288
+ # Date strings in data now supported. Even if your chart parses dates, you can pass them as strings in your data – all you
289
+ need to do is to set data date format and the chart will parse dates to date objects. This means that now data for
290
+ date-based chart can be in legit JSON format. dataDateFormat property added to AmSerialChart and AmStockChart.
291
+ Example: lineWithChangingColor.html, lineWithTrendLines.html and some more.
292
+
293
+
294
+ # When moving chart cursor over the chart, hovered bullets can change their size. If a graph has bullets and you added
295
+ ChartCursor to the chart, bullets will become bigger when char cursor is over them. graphBulletSize property with
296
+ default value 1.7 added to ChartCursor. If you want to disable this feature, set the value to 1.
297
+ Example: lineWithLogarithmicValueAxis.html, lineWithScrollAndZoom.html and some more.
298
+
299
+
300
+ # Legend can now display period value. When user is not hovering the chart, legend can show sum, average, open, close, low
301
+ or high values of selected period. periodValueText added to AmLegend and legendPeriodValueText added to AmGraph to
302
+ achieve this. The tags should be made out of two parts - the name of a field (value / open / close / high / low) and the
303
+ value of the period you want to be show - open / close / high / low / sum / average / count. For example: [[value.sum]]
304
+ means that sum of all data points of value field in the selected period will be displayed.
305
+ Example: area100PercentStacked.html and areaStacked.html
306
+
307
+ To achieve the same with stock chart, we added periodValueTextRegular and periodValueTextComparing proprties to
308
+ StockLegend. To show percent period values, you should add "percent." prefix for your tag, for example:
309
+ [[percents.value.close]] means that last percent value of a period will be displayed.
310
+ Example: stockMultiplePanels.html and stockMultipleDataSets.html
311
+
312
+
313
+ # Legend markers can now mirror graph’s settings, displaying a line and a real bullet as in the graph itself.
314
+ useGraphSettings property with default value false was added to AmLegend. Note, we also removed "line" and "dashedLine"
315
+ marker types because of this - use the useGraphSettings feature in case you need lines as markers in the legend.
316
+ Example: lineWithDifferentBulletSizes.html and lineWithMultipleValueAxes.html
317
+
318
+
319
+ # Legend now supports custom markers (images). customMarker property was added to AmGraph. You should set path to the image
320
+ which should be displayed in the legend.
321
+
322
+
323
+ # Diamond bullet type added. Set graph.bullet = "diamond" to use it.
324
+
325
+
326
+ # Dynamic bullet size based on value axis / Error chart.
327
+ Error chart is a regular serial or XY chart with bullet type set to "errorX" or "errorY". The graph should know which axis
328
+ should be used to determine the size of this bullet - that's when graph.bulletAxis property should be set. Besides that,
329
+ you should also set graph.errorField. You can also use other bullet types with this feature too. For example, if you set
330
+ bulletAxis for XY chart, the size of a bullet will change as you zoom the chart.
331
+ Example: errorChart.html
332
+
333
+
334
+ # You can specify custom column width for each graph individually. columnWidth property added to AmGraph. Note, you set
335
+ relative width here (0 - 1), not width in pixels.
336
+ Example: bulletChart.html
337
+
338
+
339
+ # Columns can be overlaid on other columns, without making axis as stacked. clustered property added to AmGraph. In case you
340
+ want to place graph's columns in front of other columns, set it to false.
341
+ Example: bulletChart.html
342
+
343
+
344
+ # Resize grips were made bigger to make life easier for users on touch devices.
345
+
346
+
347
+ # Balloons can now display any HTML and CSS inside them. This means you can add images, format text or display just about
348
+ any HTML/CSS content. Because of this new feature, we removed textShadow property of AmBalloon in this version.
349
+ Example: areaStacked.html, barStacked.html and many other.
350
+
351
+
352
+ # Balloon now can animate from point to point and also fade out when user moves away from the chart. animationDuration and
353
+ fadeOutDuration properties added to AmBalloon, with default values 0.3. animationDuration property was also added to
354
+ ChartCursor, so that the cursor line would also animate to its position.
355
+ Example: any chart with balloon.
356
+
357
+
358
+ # Balloon now can display shadow. shadowColor (default #000000) and shadowAlpha (default 0.4) added to AmBalloon.
359
+ Example: any chart with balloon.
360
+
361
+
362
+ # Some default values of AmBalloon changed for a better usability - adjustBorderColor to true, cornerRadius to 0,
363
+ pointerWidth to 6, color to #000000.
364
+ Example: any chart with balloon.
365
+
366
+
367
+ # Stock chart can display scrollbar on top of the chart.
368
+ Example: stockIntradayData.html
369
+
370
+
371
+
372
+ *******************************************************************************************************************************
373
+ *******************************************************************************************************************************
374
+ *******************************************************************************************************************************
375
+
376
+
377
+
378
+ 2.11.3
379
+ With IE8 and older, in some cases not all category axis labels were shown.
380
+
381
+ 2.11.2
382
+ "drawn" event added to AmChart. Fired every time chart is drawn - on zoom, hide graph, etc.
383
+ bug fixed - in some cases last grid items of category axis were not drawn.
384
+
385
+ 2.11.1
386
+ Bug fixed: if chart.usePrefixes was set to true, numbers near value axis grid could be rounded and duplicated.
387
+ This bug only occured in v 2.11.0.
388
+
389
+ 2.11.0
390
+ Bug fixed:
391
+ FireFox 3.6 failed to show all columns of a graph.
392
+ NumberFormatter was ignored if usePrefixes was set to true.
393
+
394
+ Features added:
395
+ baloonFunction added to AmGraph. If you set some function, the graph will call it and pass graphDataItem and graph object to it
396
+ this function should return a string which will be displayed in a balloon.
397
+
398
+ Custom fields now supported in labels/balloons/legend of Pie and Radar chart.
399
+
400
+ Guide.above property added, the guide will be placed above the graphs if set to true (default is false).
401
+
402
+ 2.10.8
403
+ Bug with stacked step charts fixed.
404
+ categoryBalloonFunction property added to ChartCursor. It allows formatting any category balloon text you want.
405
+ The categoryBalloonFunction should return a string which will be displayed in a balloon. When categoryBalloonFunction
406
+ is called, category value (or date) is passed as an argument.
407
+
408
+ 2.10.7
409
+ Bugs related to new behavior of CategoryAxis fixed.
410
+ CategoryAxis.centerLabelOnFullPeriod property added, with default value true. This setting works only when
411
+ parseDates is set to true and equalSpacing is set to false. In case you set it to false,
412
+ labels will never be centered between grid lines.
413
+
414
+ 2.10.6
415
+ Some minor improvements.
416
+
417
+ 2.10.5
418
+ CategoryAxis labeling, when parseDates is true was improved.
419
+ CategoryAxis.markPeriodChange property added, with default value set to true. If you set it to false,
420
+ the start of longer periods won't use a different date format and won't be bold.
421
+
422
+
423
+ 2.10.4
424
+
425
+ charts can be rendered in "rtl" (right-to-left) mode. You have to set AmCharts.rtl = true in order this mode to be enabled.
426
+ categoryAxis.minPeriod now supports intervals like 15mm, 10ss (previously only equal intervals like ss, mm were supported).
427
+ some minor bugs fixed.
428
+
429
+ 2.10.3
430
+
431
+ milliseconds problem with firefox & IE fixed
432
+
433
+ 2.10.2
434
+
435
+ AmCharts.useUTC problems fixed.
436
+
437
+ guide.color property added (changes text color of guide label).
438
+
439
+ some other minor bugs fixed.
440
+
441
+
442
+ 2.10.1
443
+
444
+ showHandOnHover property added to AmGraph.
445
+
446
+ totalTextColor property added to ValueAxis.
447
+
448
+ minimum and maximum properties added to ChartScrollbar class. In case your scrollbar has a graph, you can set
449
+ minimum and maximum values of scrollbar's value axis.
450
+
451
+ "rendered" event added to AmChart class. fired only once, when chart is first rendered.
452
+
453
+ bug with graph.negativeBase and line graph fixed.
454
+
455
+ columnSpacing3D added to AmSerialChart. Allows setting space between 3d stacked columns.
456
+
457
+ 2.10.0
458
+ ******
459
+ categoryFunction property added to CategoryAxis. It specifies a method that returns the value that should be
460
+ used as categoryValue for current item. If this property is set, the return value of the custom data function
461
+ takes precedence over categoryField. When a chart calls this method, it passes category value, data item from
462
+ chart's data provider and reference to categoryAxis: categoryFunction(category, dataItem, categoryAxis);
463
+ This method can be used both when category axis parses dates and when it doesn't. If axis parses dates, your
464
+ categoryFunction should return Date object.
465
+
466
+ ******
467
+ labelFunction added to AxisBase. You can use it to format both Value and Category axis labels. If this function
468
+ is set for ValueAxis, it is called and these parameters are passed: labelFunction(value, valueText, valueAxis);
469
+ Where value is numeric value, valueText is formatted string and valueAxis is a reference to valueAxis object.
470
+
471
+ If this function is set for CategoryAxis, then it is called with the following parameters passed:
472
+
473
+ if dates are not parsed:
474
+ labelFunction(valueText, serialDataItem, categoryAxis)
475
+
476
+ if dates are parsed:
477
+ labelFunction(valueText, date, categoryAxis)
478
+
479
+ ******
480
+ fontSize property added to Guide.
481
+ position property added to Guide.
482
+
483
+ ******
484
+ useMarkerColorForValues property added to AmLegend.
485
+
486
+ ******
487
+ rightClickSlice event added to AmPieChart.
488
+
489
+ ******
490
+ Some minor bugs fixed.
491
+
492
+ **************************************************************************************************************
493
+
494
+ 2.9.2
495
+
496
+ Problem with lines not visible on XP+IE8 fixed.
497
+
498
+ 2.9.1
499
+
500
+ 'selected' event of ChartCursor was added. It is fired when selectWithoutZooming is set to true and
501
+ user makes selection.
502
+
503
+ Fixed XY chart external zoom (with valueAxis.zoomToValues() method)
504
+
505
+ labelColorField added to AmGraph, it allows setting different color for individual data labels.
506
+
507
+ forceShowField added to CategoryAxis. It allows setting which of the categories should
508
+ always be displayed. Works only when categoryAxis.parseDates = false
509
+
510
+ rightClickGraphItem event added to AmCoordinateChart.
511
+
512
+ "changed" event of chart cursor has a new property, called mostCloseGraph. It is
513
+ set if you are using chartCursor.oneBalloonOnly = true.
514
+
515
+ Fix: IE used to hide legend of pie chart after validateNow() method was called.
516
+
517
+ labelRadiusField property added to AmPieChart. It allows specifying the distance from pie
518
+ to data label manually. Note, if you set labelRadiusField, the chart won't try to
519
+ arrange labels so that they won't overlap.
520
+
521
+
522
+ 2.9.0
523
+
524
+ Since this version, when setting zooming date-based chart, you have to set
525
+ exact "to" date. For example, if you want the chart to display one day only,
526
+ set from date as 2012,1,1 (first of February) and the to date as
527
+ new Date(2012,1,2) or new Date(2012,1,1,23,59,59). Previously you could set the
528
+ same date for start and end dates and the chart used to select one "minPeriod"
529
+ automatically, however this caused a lot of problems for charts displaying
530
+ monthly or yearly data.
531
+
532
+ AmCharts.clear method added. Call this method if you want completely to remove all charts from a page.
533
+
534
+ Memory leak fixed.
535
+
536
+ Last item was not displayed if minPeriod was bigger than day.
537
+
538
+ Switch of legend marker was in wrong position when marker size was quite small.
539
+
540
+ validateData() method caused error when fillToGraph property was set.
541
+
542
+ if valueAxis.minimum was set and values were smaller than this minimum, columns were not displayed.
543
+
544
+ align property wasn't working when using external container for the legend.
545
+
546
+ some other minor bugs fixed.
547
+
548
+ 2.8.5
549
+
550
+ above property added to Guide. If you set it to true, guides will be displayed above graphs.
551
+ Some minor bugs fixed.
552
+
553
+ 2.8.4
554
+
555
+ NEW FEATURE:
556
+ you can set a customly created div element as a container of your legend. To do this,
557
+ you should pass id or reference of the div in this method:
558
+
559
+ chart.addLegend(legend, divID);
560
+
561
+ FIXES:
562
+ balloon could be wrongly positioned in marginTop style was added directly to <html> element.
563
+ chart.animateAgain(); worked only if validateNow() method was called after.
564
+ in some specific cases scrollbar could act icorrectly on IE8/IE7.
565
+
566
+
567
+ 2.8.3
568
+
569
+ When panEventsEnabled was set to true, balloons over bullets were not shown.
570
+
571
+ Text in balloons was not properly vertically aligned if verticalSpacing was set
572
+ to some different than default value.
573
+
574
+ Balloon wasn't positioned properly if chart was in a scrollable div.
575
+
576
+ Init event wasn't fired by AmPieChart.
577
+
578
+ 2.8.2
579
+
580
+ Step line's corners sometimes were not perfect (one extra pixel could be added
581
+ in the end of horizontal line)
582
+
583
+ You couldn't change panEventsEnabled of AmChart class after the chart was
584
+ initialized.
585
+
586
+ You couldn't chane legend's position after the chart was initialized.
587
+
588
+ Step line chart was not correctly filled if Value axis was of some stacked type.
589
+
590
+ Some other minor bugs fixed.
591
+
592
+ 2.8.1
593
+
594
+ hideXScrollbar and hideYScrollbar properties added to AmXYChart. This will
595
+ allow you to show one scrollbar only.
596
+
597
+ 2.8.0
598
+
599
+ New features:
600
+ you can pass dates as timestamps instead of date objects.
601
+
602
+ ChartCursor.selectWithoutZooming property added which allows marking desired area
603
+ with chart cursor without zooming-in.
604
+
605
+ graph.fillToGraph property added. This allows creating band or range graphs.
606
+ The area between graph and fillToGraph will be filled with a color if graph.fillAlphas
607
+ is set to > 0 value. Works with "line" graph type only.
608
+
609
+ Bug fixes:
610
+
611
+ Blurry lines on all browsers fixed
612
+
613
+ right/bottom grid line was hidden if marginRight/marginBottom were set to 0
614
+
615
+ category balloon was shifted a bit since last version
616
+
617
+ background image was incorrectly sized
618
+
619
+ 2.7.10
620
+ Problem with balloon position in IE10 fixed.
621
+
622
+ 2.7.9
623
+
624
+ FIX: If you used to add/remove some graphs for several times, some graphs could disappear.
625
+
626
+ FIX: balloon could be positioned in a wrong place in some specific cases with IE.
627
+
628
+ Some other minor bugs fixed.
629
+
630
+ 2.7.8
631
+
632
+ url parameter added to chart.addLabel method
633
+
634
+ Printing in IE8 fixed;
635
+
636
+ Two typos in property names fixed:
637
+
638
+ ValueAxis.minMaxMultiplier (instead of minMaxMultiplayer)
639
+ and
640
+ ValueAxis.synchronizationMultiplier (instead of synchronizationMultiplyer)
641
+
642
+ We do not longer support old names with errors, so you should adjust names if you use
643
+ them in your scripts. Sorry for inconvenience.
644
+
645
+ some other minor bugs fixed.
646
+
647
+ 2.7.7
648
+
649
+ ValueAxis.minMaxMultiplier was ignored if min (or max) value was equal to 0.
650
+ In some cases, when legend position was set to "left", chart might be positioned
651
+ incorrectly.
652
+
653
+ 2.7.6
654
+
655
+ chart.invalidateSize() method was fixed
656
+ charts used to ignore padding of a div.
657
+ chartCursor.showCursorAt(category) method added. It will make the cursor to
658
+ appear at specified cateogry or date.
659
+
660
+ 2.7.5
661
+ Bug with smoothed line in scrollbar fixed.
662
+ minMaxMultiplayer property added to ValueAxis. Default value is 1. You can increase
663
+ min/max range using this property. Useful for bubble charts - prevents from bubbles
664
+ being cut.
665
+ Some other minor bugs fixed.
666
+
667
+ 2.7.4
668
+ In case open and close values were equal, horizontal line wasn't drawn by candlestick chart.
669
+
670
+ In case pie chart had one slice only, a tiny gap might be visible in IE8 and older.
671
+
672
+ markerBorderColor of AmLegend was ignored.
673
+
674
+ Ticks with no labels (when labelFrequency was > 1) were not hidden by categoryAxis.
675
+
676
+ Balloons could overlap "show all" button preventing it from being clicked.
677
+
678
+
679
+ 2.7.3
680
+ new line symbol \n was ignored in some browsers.
681
+
682
+ smaller than 1 numbers were formatted incorrectly in some cases.
683
+
684
+ 2.7.2
685
+ Usabilty with touch devices improved - scrollbar's drag icons has a bigger hit area.
686
+
687
+ Some bugs fixed.
688
+
689
+ 2.7.1
690
+ chart.removeLegend() was not working properly.
691
+
692
+ chart.startDate wasn't returning value.
693
+
694
+ lineColorField added to graph's properties.
695
+
696
+ 2.7.0
697
+ textAlign property added to AmBalloon. Possible values are left/middle/right,
698
+ default is "middle".
699
+
700
+ behindColumns property added to AmGraph. If set to true, line graph will be
701
+ displayed behind column graphs.
702
+
703
+ "init" event added to AmChart. Event is fired right after the chart is initialized
704
+ for the very first time.
705
+
706
+ totalText property added to ValueAxis. Usage example:
707
+ valueAxis.totalText = "total: [[total]]"
708
+ It works only if the chart has column graphs and stackType is set to "regular" or "100%".
709
+
710
+ showEntries property added to AmLegend. It might be used by StockChart - in case you want
711
+ legend as it displayes title of the chart but don't want legend entries to be visible.
712
+
713
+ A bug with separate data provider set to graph fixed.
714
+
715
+ 2.6.13
716
+ FIXES:
717
+ When viewing a page with a chart from iOS browser, console logged some errors
718
+
719
+ gradientOrientation was ignored by area charts
720
+
721
+ plotAreaGradientAngle property added to AmRectangularChart, can accept 0, 90,
722
+ 180 and 270 values.
723
+
724
+ 2.6.12
725
+ FIXES:
726
+ Pie chart data labels were hidden behind other slices if labelRadius < 0
727
+
728
+ If chart was in a div with scrollbar, cursor was displayed in wrong position after
729
+ scrolling with FF.
730
+
731
+ Some other minor bugs fixed.
732
+
733
+ 2.6.11
734
+ cursor and balloons were not shown on iPad when cursor.pan was set to true
735
+
736
+ Labels near XY chart bullets were placed incorrectly (since last version only)
737
+
738
+ some other minor bugs fixed
739
+
740
+ 2.6.10
741
+ AmCharts.baseHref property added. Set it to true if you are using base href in your
742
+ HTML. This will help so solve svg/base href bug (clip paths are not working and
743
+ gradient fills are displayed as balck).
744
+
745
+ Text can be wrapped again. Add \n in places you need new line in text.
746
+
747
+ Some other minor bugs fixed.
748
+
749
+ 2.6.9
750
+ AmCharts.useUTC property added, default value is false. Set it to true if you
751
+ create dates using timestamps, like new Date(1256953732) and wish dates to be
752
+ formatted usin UTC instead of local time.
753
+
754
+ FIX:
755
+ If more than two colors were set for graph.fillColors, only two first colors
756
+ were used.
757
+
758
+ FIX:
759
+ chartCursor.bulletsEnabled was ignored, even set to true.
760
+
761
+ FIX: on IE8, if one slice was 100%, the circle wasn't displayed.
762
+
763
+ FIX: custom fields in balloonText were not supported by XY chart.
764
+
765
+ 2.6.8
766
+ pieAlpha property was ignored.
767
+ plotAreaBorderAlpha was ignored if plotAreaAlphas was 0
768
+ column graph type was ignoring startEffect property.
769
+ chart property referencing to the chart object added to all event objects.
770
+
771
+ 2.6.7
772
+ Pie slices became invisible if startAlpha was < 1 on <= IE8 browsers (since 2.6.6 only)
773
+ Performance with IE6 increased.
774
+
775
+ 2.6.6
776
+ short year (YY) was incorrectly formatted in <= IE8 browsers
777
+ alphaField was ignored by column graph
778
+ chartScrollbar was not working properly when parseDates was set to false.
779
+ some other minor bugs fixed.
780
+
781
+ 2.6.5
782
+ some minor bugs fixed.
783
+
784
+ 2.6.4
785
+ minSelectedTime property added to AmSerialTime
786
+
787
+ some minor bugs fixed.
788
+
789
+ 2.6.3
790
+ zoom-out button wasn't working on iPad (only since 2.6.0)
791
+
792
+ 2.6.2
793
+ Bug with paneEventsEnabled and older firefox (< 4) fixed
794
+
795
+ //////////////////////////////////////////////////////////////////////////////////////
796
+ // IMPOTANT UPDATE ///////////////////////////////////////////////////////////////////
797
+ // 2.6.0 ///////////////////////////////////////////////////////////////////
798
+ //////////////////////////////////////////////////////////////////////////////////////
799
+
800
+ amCharts is no longer using raphael drawing library. New drawing engine is included
801
+ inside amcharts.js file. The charts got a lot faster, the file size reduced by 70Kb!
802
+
803
+ //////////////////////////////////////////////////////////////////////////////////////
804
+ 2.5.5
805
+ In new version of Chrome (17) a new bug was introduced - if touchEventsEnabled was set
806
+ to true, mouse events stopped working on normal browsers. Bug fixed in this version.
807
+
808
+ //////////////////////////////////////////////////////////////////////////////////////
809
+ 2.5.4
810
+ Some minor bugs fixed
811
+
812
+ //////////////////////////////////////////////////////////////////////////////////////
813
+ 2.5.3
814
+ Some minor bugs fixed
815
+
816
+ //////////////////////////////////////////////////////////////////////////////////////
817
+ 2.5.2
818
+ Some minor bugs fixed
819
+
820
+ //////////////////////////////////////////////////////////////////////////////////////
821
+ 2.5.1
822
+
823
+ TrendLines are supported by XY chart from this version
824
+
825
+ //////////////////////////////////////////////////////////////////////////////////////
826
+ // IMPORTANT UPDATE //////////////////////////////////////////////////////////////////
827
+ // 2.5.0 //////////////////////////////////////////////////////////////////
828
+ //////////////////////////////////////////////////////////////////////////////////////
829
+
830
+ Since v 2.5 we no longer distribute our old flash charts in this package, we hope this
831
+ will help to avoid a lot of misunderstandings. If you still want to use flash charts,
832
+ download them in a separate package from www.amcharts.com/download/
833
+
834
+ We added a lot of new examples, to the "samples" folder. They are better structured,
835
+ source code commented.
836
+
837
+ BIG NEW FEATURES:
838
+
839
+ Automatic margins
840
+ margins of RectangularChart (Serial and XY charts) are calculated automatically now.
841
+ You can still work in old way by setting margins manually - set chart.autoMargins to
842
+ false.
843
+
844
+ Axis titles
845
+ Previously you had to use addLabel method in order to give name to the axis. Since
846
+ this version we introduced title property for AxisBase, so you can name both Category
847
+ and Value Axes now much more easily.
848
+
849
+ Chart title
850
+ Same as with axes titles - previously you had to use addLabel method to name a chart.
851
+ Now you can add any number of titles using
852
+ chart.addTitle(text, size, color, alpha, bold) method. Chart title is taken into account
853
+ when calculating margins, also position of pie/radar center.
854
+
855
+ Trend lines
856
+ Chart can display Trend lines now.
857
+
858
+ AmCharts.ready() method added so you don't need to use window.onload anymore. You can
859
+ use amCharts.ready as many times in one page as you want.
860
+
861
+ NOT SO BIG NEW FEATURES:
862
+
863
+ precision property added to ValueAxis.
864
+
865
+ if chart.usePrefixes is set, prefixes will be used both in balloons and legend, not only
866
+ by valueAxis as before.
867
+
868
+
869
+ SOME OTHER THINGS TO MENTION:
870
+
871
+ default value of autoGridCount property of AxisBase changed to true
872
+
873
+ default value of textClickEnabled of AmLegend changed to false
874
+
875
+ default value of hideResizeGrips of ChartScrollbar changed to false
876
+
877
+ All margins of RectangularChart changed to 20, as they can still be used for sides
878
+ without axes.
879
+
880
+
881
+ //////////////////////////////////////////////////////////////////////////////////////
882
+ //////////////////////////////////////////////////////////////////////////////////////
883
+
884
+ 2.4.7
885
+ FEATURE:
886
+ you can use custom tags like [[myCustomField]] in labelText / balloonText. If data item
887
+ from your data provider has such field, the tag will be replaced with this value.
888
+
889
+ FIXES:
890
+ [[percents]] were not displayed in stacked chart labels.
891
+ labels on the 3D columns were positioned in wrong position in some cases.
892
+
893
+ 2.4.6
894
+ FIXES:
895
+ if chartCursor.pan was set to true, mouse pointer didn't change back when off the area.
896
+
897
+ in some cases balloon flashed in a wrong position (IE only) for a second.
898
+
899
+ amFallback used to fail on older IE with <visible_in_legend> set to false.
900
+
901
+ Rollover balloons used to overlap when all of the datapoints were very near the top of
902
+ the plot area.
903
+
904
+ Sometimes lines became blurry after window was resized.
905
+
906
+ v16 of Chrome used to display warning about deprecated layerX and layerY properties
907
+
908
+ guides on CategoryAxis with not date based values used not to work properly.
909
+
910
+ Some other minor bugs fixed.
911
+
912
+ FEATURES:
913
+
914
+ boldPeriodBeginning property with default value true added to CoordinateAxis.
915
+ You can disable bolding of the beginning of a period (like year/month/etc) using
916
+ it.
917
+
918
+ 2.4.5
919
+ some bugs fixed
920
+
921
+ 2.4.4
922
+ some bugs fixed
923
+
924
+ 2.4.3
925
+ labels added using addLabel method weren't rotated (this bug was since v 2.4.0)
926
+ Raphael.js updated to 2.0.1, some related issues in amCharts fixed.
927
+
928
+ 2.4.2
929
+ equalWidths with default value true added to AmLegend. Allows to save space
930
+ in the legend. Won't look good if legend has more than one line.
931
+
932
+ version property added to AmChart. Indicates current version of the chart script.
933
+
934
+ FIXES:
935
+ If labelRotation was set to 90, some labels were hidden.
936
+
937
+ It was impossible to drag chart scrollbar if the mouse was over text in scrollbar.
938
+ Chart cursor stayed visible sometimes even mouse wasn't over the chart.
939
+
940
+ [[category]] metatag was ignored in legend value text.
941
+
942
+ [[percents.value]] couldn't be displayed in value balloon.
943
+
944
+ labelPosition was ignored with not stacked columns
945
+
946
+
947
+ 2.4.1
948
+ raphael.js file was updated in order to fix conflicts with mootools.
949
+
950
+ some minor bugs fixed.
951
+
952
+ 2.4.0
953
+ JavaScript version moved to newly released Raphael v.2 (raphael.js file was updated).
954
+
955
+ some minor bugs fixed.
956
+
957
+ 2.3.0
958
+ Fixes in Flash version:
959
+
960
+ Since the release of Flash Player 11, calling setSettings could cause browser
961
+ crash. This problem fixed in this version. You only need to overwrite swf files.
962
+
963
+ Fixes in JavaScript version:
964
+
965
+ Rollover balloon with cornerRadius set to 0 was distorted when it's close to the
966
+ plot area's top.
967
+
968
+ amClickGraphItem event wasn't working for Radar Chart.
969
+
970
+ graph.showBalloon = false was ignored.
971
+
972
+ The last item in chart.colors array was ignored.
973
+
974
+ 3D stacked bar charts had layer order problems.
975
+
976
+ New features in JavaScript version:
977
+
978
+ minBulletSize property added to AmGraph. Might be useful for XY chart.
979
+
980
+ animateAgain() method added to all charts. Will trigger animation.
981
+
982
+ 2.2.1
983
+ Changes were made in JavaScript version only.
984
+
985
+ We used Google's Closure Compiler (http://closure-compiler.appspot.com/home)
986
+ app to optimize the code and now size of amCharts is less by ~13 KB!
987
+
988
+ oneBalloonOnly property added to ChartCursor. If true, only one value balloon
989
+ at a time will be displayed. Default value is false.
990
+
991
+ Some minor bugs were fixed.
992
+
993
+ 2.2.0
994
+ JavaScript version of XY Chart is now available.
995
+ Code was optimized so even with this new chart the size of a file got smaller!
996
+ Some minor bugs fixed in JS version.
997
+ We decided to remove a possibility to have gradient fills of JS pie chart as this
998
+ might cause some unsolvable bugs.
999
+
1000
+ 2.1.5
1001
+ Fix in JavaScript version:
1002
+ Some garbage used to appear on plot area while zooming candlestick chart.
1003
+
1004
+ 2.1.4
1005
+ Fix in JavaScript version:
1006
+ One i variable was't declared so it became global. This might cause some conflicts
1007
+ with other scripts on a page.
1008
+
1009
+ 2.1.3
1010
+
1011
+ Fixes / tweaks in JavaScript version:
1012
+
1013
+ If duration of ValueAxis is set, value balloons now also display duration.
1014
+
1015
+ If a label was added with chart.addLabel method after the chart is created, these
1016
+ labels used to dissapear after validateNow() methos was called.
1017
+
1018
+ Some issues with positive/negative graph masking fixed.
1019
+
1020
+ If graph type was column, startDuration was > 0, and there were values equal to 0,
1021
+ an error used to happen with Chrome while animating.
1022
+
1023
+ Legend marker type "bubble" wasn't working at all.
1024
+
1025
+ Legend marker type "line" or "dashed line" wasn't registering clicks on the marker.
1026
+
1027
+ 2.1.0
1028
+ Radar/Polar chart added to JavaScript charts
1029
+ Some bug fixes/tweaks in both flash and JavaScript versions.
1030
+
1031
+
1032
+ 2.0.7
1033
+ Memory leaks fixed and performance inproved for JavaScript version.
1034
+
1035
+
1036
+ 2.0.6
1037
+ Changes in JavaScript version:
1038
+ We strongly recommend upgrading to this version, as it contains some important
1039
+ updates and fixes.
1040
+
1041
+ One important change which might affect chart behavior on touch devices was made.
1042
+ As our charts have a possibility to zoom-in or scroll, we are capturing touch events
1043
+ and zoom or pan or scroll the chart if such event happens. This means that if a
1044
+ chart is on a page, and user is moving a page with a finger, the page won't move if
1045
+ he touches the chart first. Understanding that in most cases moving a page is a
1046
+ primary purpose of a user, we disabled our pan behaviors by default. If you think
1047
+ that selecting or or panning the chart is a primary purpose of your chart users,
1048
+ you should set:
1049
+
1050
+ chart.panEventsEnabled = true;
1051
+
1052
+ Another important fix - the charts were redrawing when browser was resized even
1053
+ if chart containers size didn't changed. This affected performance a lot.
1054
+
1055
+ Some other minor fixes were made.
1056
+
1057
+
1058
+ 2.0.5
1059
+ Changes in JavaScript version:
1060
+ Some minor bugs fixed.
1061
+
1062
+
1063
+ 2.0.4
1064
+ Changes in JavaScript version:
1065
+ gridPosition property with possible values "start" and "middle" added to CategroryAxis;
1066
+ usePrefixes added to valueAxis;
1067
+
1068
+
1069
+ 2.0.3
1070
+ Changes in JavaScript version:
1071
1071
  Mouse and text related problems which appeared in newly released IE9 were fixed.