+
+this.pickMonthlyChartData = function(data) {
+ var newdata = [];
+ var ticks = [];
+ var grid = [];
+ var prevRow;
+ var prevMonth;
+ for (var i = data.length - 1; i >= 0; i--) {
+ var row = data[i];
+ if (!prevRow) {
+ prevRow = row;
+ var eom = this.parseDate(row[0]).endOf('month');
+ prevRow[0] = this.toDateString(eom);
+ prevMonth = eom.month();
+ continue;
+ }
+ var date = this.parseDate(row[0]);
+ if (prevMonth !== date.month()) {
+ var newrow = [prevRow[0]];
+ for (var r = 1; r < 5; r++) {
+ newrow.push(prevRow[r] - row[r]);
+ }
+ newdata.unshift(newrow);
+ ticks.unshift(prevRow[0]);
+ grid.unshift({ value: prevRow[0] });
+ prevRow = row;
+ prevMonth = date.month();
+ }
+ }
+ return { monthly: true, data: newdata, tick: ticks, grid: grid, width: 0.5 };
+};