/*
  Generate dates of month for calendar
*/
export default function(year, month) {
  var rows = [], day, weeks = generateWeekTemplate();
  var days = daysInGregorianMonth(year, month);

  var pastYear, pastMonth;
  if (month === 1) {
    pastYear = year - 1;
    pastMonth = 12;
  } else {
    pastYear = year;
    pastMonth = month - 1;
  }
  var pastMonthDays = daysInGregorianMonth(pastYear, pastMonth);

  var nextYear, nextMonth;
  if (month === 12) {
    nextYear = year + 1;
    nextMonth = 1;
  } else {
    nextYear = year;
    nextMonth = month + 1;
  }

  for (var i = 1; i <= days; i++) {
    day = dayOfWeek(year, month, i);

    if (i === 1) {
      pastMonthDays = pastMonthDays - day + 2;
      for (var j = 1; j < day; j++, pastMonthDays++) {
        weeks[j - 1] = Calendar.generate(pastYear, pastMonth, pastMonthDays);
      }
    }

    weeks[day - 1] = Calendar.generate(year, month, i);
    if (day === 7 || i === days) {
      if (i === days) {
        for (var z = day, d = 1; z < 7; z++, d++) {
          weeks[z] = Calendar.generate(nextYear, nextMonth, d);
        }
      }

      rows.push(weeks);
      weeks = generateWeekTemplate();
    }
  }

  return rows;
}
 cnCalendar: Ember.computed('year', 'month', 'date', function () {
   return Calendar.generate(this.get('year'), this.get('month'), this.get('date'));
 }),