var calendarUrl = '?date='; var calendarYear = 2010; var calendarMonth = 6; var calendarViewId = 'calendar'; var calendarNavId = 'month'; function setPreviousYear() { calendarYear--; displayCalendar(); } function setPreviousMonth() { if (calendarMonth <= 0) { calendarMonth = 11; calendarYear--; } else { calendarMonth--; } displayCalendar(); } function setNextMonth() { if (calendarMonth >= 11) { calendarMonth = 0; calendarYear++; } else { calendarMonth++; } displayCalendar(); } function setNextYear() { calendarYear++; displayCalendar(); } function displayCalendar() { // отрисовка календаря var month = calendarMonth; var year = calendarYear; var htmlCod = ''; htmlCod += ''; htmlCod += ''; htmlCod += ''; htmlCod += ''; htmlCod += ''; htmlCod += ''; htmlCod += ''; htmlCod += ''; htmlCod += ''; htmlCod += ''; month = parseInt(month); year = parseInt(year); var i = 0; var days = getDaysInMonth(month + 1, year); var firstOfMonth = new Date (year, month, 1); // возвращает день недели для первого дня месяца (0-Вс, 1-Пн, ...) var startingPos = firstOfMonth.getDay(); days += startingPos; // проставляем пустые ячейки в начале for (i = 0; i < startingPos; i++) { if (i % 7 == 0) { htmlCod += ''; } htmlCod += ""; } // отрисовываем календарь for (i = startingPos; i < days; i++) { if (i % 7 == 0) { htmlCod += ''; } htmlCod += ''; } // проставляем пустые ячейки в конце for (i = days; i < 42; i++) { if (i % 7 == 0) { htmlCod += ''; } htmlCod += ''; } htmlCod += '
' + arrWeekDays[0] + '' + arrWeekDays[1] + '' + arrWeekDays[2] + '' + arrWeekDays[3] + '' + arrWeekDays[4] + '' + arrWeekDays[5] + '' + arrWeekDays[6] + '
'; htmlCod += linkDay; htmlCod += '
'; document.getElementById(calendarViewId).innerHTML = htmlCod; // отрисовка страницы навигации var navStringCod = '
'; navStringCod += '<< '; navStringCod += ' ' + arrMonth[calendarMonth] + ' ' + calendarYear + ' '; navStringCod += ' >>'; navStringCod += '
'; document.getElementById(calendarNavId).innerHTML = navStringCod; } function getDaysInMonth(month, year) { var days; if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { days = 31; } else if (month == 4 || month == 6 || month == 9 || month == 11) { days = 30; } else if (month == 2) { if (isLeapYear(year)) { days = 29; } else { days = 28; } } return (days); } function isLeapYear (year) { if (((year % 4) == 0) && ((year % 100) != 0) || ((year % 400) == 0)) { return (true); } else { return (false); } }