var months = ["Январь","Февраль","Март","Апрель","Май","Июнь", "Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"]; function isLeapYear(year) { return new Date(year,2-1,29).getDate()==29; } function TotalDays(month,year) { var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; return (month==1 && isLeapYear(year)) ? 29 : days[month]; } function onAjaxSuccess(){ $("#loading").fadeOut(500); } function Calendar(ID,date,actio) { /* Private */ var fromDate = new Date(); /* Private */ var today = new Date(); /* Private */ var year; /* Private */ var month; /* Private */ var day; /* Private */ var currentDateStyle; // Style for current date /* Private */ var selectedDateStyle; // Style for selected dates /* Private */ var normalDateStyle; // Style for unselected dates fromDate.setDate(1); if (document.all) { window.attachEvent('onload',attachCalendarEvent); } else { window.addEventListener('load',attachCalendarEvent,true); } /* Private */ function UID(Name) { return ID + Name; } /* Private */ function setDate() { year = fromDate.getFullYear(); month = fromDate.getMonth(); day = fromDate.getDay(); } /* Private */ function setSelectedDate(SelDay) { var selectedObj = document.getElementById(UID('item['+(SelDay+day)+']')).className = selectedDateStyle; var linkObj = document.getElementById(UID('hlink['+(SelDay+day)+']')).className = selectedDateStyle; } /* Private */ function setToday() { var Today = today.getDate(); if (today.getMonth()==month && today.getFullYear()==year) { document.getElementById(UID("item["+(Today+fromDate.getDay())+"]")).className = currentDateStyle; document.getElementById(UID("hlink["+(Today+fromDate.getDay())+"]")).className = currentDateStyle; } } /* Public */ this.setStyles = function() { currentDateStyle = this.currentDateStyle; selectedDateStyle = this.selectedDateStyle; normalDateStyle = this.normalDateStyle; } /* Public */ this.setCalendarInput = function(day) { var month2 = '',day2 = ''; for (i=1;i<=42;i++) { var Obj = document.getElementById(UID("item["+i+"]")); var LObj = document.getElementById(UID("hlink["+i+"]")); Obj.className = normalDateStyle; if (LObj != null) LObj.className = normalDateStyle; } setToday(); setSelectedDate(day); var inpObj = document.getElementById(UID('calendar')); day2 = day;month2 = month; if(day2 < 10) day2 = '0' + day2; month2 += 1; if(month2 < 10) month2 = '0' + month2; inpObj.value = year + "-" + (month+1) + "-" + day; $("#nd").html(''); $("#nd").html(" Идет Загрузка новостей за "+day2 + "." + month2 + "." + year); $("#loading").show(); $("#newsbodyajax").html(''); $("#newsbodyajax").load("/load"+actio,{act: 'load'+actio,dateval:year + "-" + month2 + "-" + day2},onAjaxSuccess ); document.documentElement.scrollTop = 0; } /* Private */ function attachCalendarEvent() { var DateSet = (date == undefined) ? false : true; document.getElementById(UID('navigateback')).href = "javascript:"+UID('calendar')+".previousMonth()"; document.getElementById(UID('navigatenext')).href = "javascript:"+UID('calendar')+".nextMonth()"; if (DateSet) { var DateString = date.split("-"); fromDate.setYear(DateString[0]); fromDate.setMonth((DateString[1]-1)); } setCalendar(); if (DateSet) { setSelectedDate(parseInt(DateString[2])); } } /* Private */ function setCalendar() { setDate(); for (i=1;i<=42;i++) { var Obj = document.getElementById(UID("item["+i+"]")); Obj.innerHTML=""; Obj.className = normalDateStyle; } document.getElementById(UID("Month")).innerHTML = months[month]+" "+year; for (i=1;i<=TotalDays(month,year);i++) { document.getElementById(UID("item["+(i+day)+"]")).innerHTML='' + i + ''; } setToday(); } /* Public */ this.selectMonth = function(month) { fromDate.setMonth(month); setCalendar(); } /* Public */ this.nextMonth = function() { fromDate.setMonth(fromDate.getMonth()+1); setCalendar(); } /* Public */ this.previousMonth = function() { fromDate.setMonth(fromDate.getMonth()-1); setCalendar(); }