`;
},
plotDayNames: function () {
for (let i = 0; i < calendarControl.calWeekDays.length; i++) {
document.querySelector(
".calendar .calendar-body"
).innerHTML += `
${calendarControl.calWeekDays[i]}
`;
}
},
plotDates: function () {
document.querySelector(".calendar .calendar-body").innerHTML = "";
calendarControl.plotDayNames();
let count = 1;
let prevDateCount = 0;
let calendarDays = calendarControl.daysInMonth(
calendar.getMonth() + 1,
calendar.getFullYear()
);
// dates of current month
for (let i = 1; i < calendarDays; i++) {
if (i < calendarControl.firstDayNumber()) {
prevDateCount += 1;
document.querySelector(
".calendar .calendar-body"
).innerHTML += `
`;
} else {
document.querySelector(
".calendar .calendar-body"
).innerHTML += `
`;
}
}
//remaining dates after month dates
for (let j = 0; j < prevDateCount + 1; j++) {
document.querySelector(
".calendar .calendar-body"
).innerHTML += `
`;
}
calendarControl.highlightToday();
},
attachEvents: function () {
let dateNumber = document.querySelectorAll(".calendar .dateNumber");
for (var i = 0; i < dateNumber.length; i++) {
dateNumber[i].addEventListener(
"click",
calendarControl.selectDate,
false
);
}
},
highlightToday: function () {
let currentMonth = calendarControl.localDate.getMonth() + 1;
let changedMonth = calendar.getMonth() + 1;
let currentYear = calendarControl.localDate.getFullYear();
let changedYear = calendar.getFullYear();
if (
currentYear === changedYear &&
currentMonth === changedMonth &&
document.querySelectorAll(".number-item")
) {
document
.querySelectorAll(".number-item")
[calendar.getDate() - 1].classList.add("calendar-today");
}
},
init: function () {
calendarControl.plotSelectors();
calendarControl.plotDates();
calendarControl.attachEvents();
},
};
calendarControl.init();
}
const calendarControl = new CalendarControl();