var Calendar = {
				WeekTitles : ['пн','вт','ср','чт','пт','сб','вс'],
				Months : ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
				
				showallweektitles : function() {
					var i, answer = "<tr>"
					for(i = 0; i < this.WeekTitles.length; i++) answer += "<td class='week_titles'>" + this.WeekTitles[i] + "</td>";
					answer += "</tr>";
					return answer;
				},
				
				show : function(m, d, y) {
					var sdate = new Date(m+'/1/'+y);
					var mdate = new Date(m+'/'+d+'/'+y);
					var todaydate = new Date();
					var days = this.dayonmonth(m,y);
					var iday = 0, day, answer = '';
					
					answer+='<table border=0 cellpadding=0 cellspacing=0 class="calendar">';
					answer+='<tr>';
					answer+='<td colspan=7>';
					answer+='<table width="100%" border=0 cellpadding=0 cellspacing=0 class="header">';
					answer+='<tr>';
					answer+='<td class="left" onclick="Calendar.calendar_move(\'-\',\'m\',' + m + ',' + d + ',' + y + ')">&nbsp;</td>';
					answer+='<td class="center">' + this.Months[m - 1] +'</td>';
					answer+='<td class="right" onclick="Calendar.calendar_move(\'+\',\'m\',' + m + ',' + d + ',' + y + ')">&nbsp;</td>';
					answer+='</tr>';
					answer+='</table>';
					answer+='</td>';
					answer+='</tr>';
					answer+='<tr>';
					answer+=this.showallweektitles();
					answer+='</tr>';
					answer+='<tr>';
					for(day = 1; day < sdate.getDay(); day++){
						iday++;
						answer+="<td></td>";
					}
					for(day = 1; day <= days; day++){
						iday++;
						var s = '';
						if (iday == 6 || iday == 7) s = 'class="freeday"';
						if ((todaydate.getMonth() + 1) == m && todaydate.getDate() == day && todaydate.getFullYear() == y)
							answer+="<td class=\"today\"><table border=0 cellpadding=0 cellspacing=0 width=\"100%\" height=\"100%\"><tr><td " + s + ">" + day + "</td></tr></table></td>"
						else
							answer+="<td  class=\"day\"><table border=0 cellpadding=0 cellspacing=0 width=\"100%\" height=\"100%\"><tr><td " + s + ">" + day + "</td></tr></table></td>"
						if(iday == 7){
							answer += "</tr><tr>";
							iday = 0;
						}
					}
					answer+="</tr>";
					answer+="<tr><td colspan='7' class='bottom'>&nbsp;</td><tr>";
					answer+='</table>';
					document.getElementById('calendar').innerHTML = answer;
				},
				
				calendar_move: function(to, index, m, d, y){
					switch (to) {
						case ('-'):
							switch (index) {
								case ('m'):
									if (m > 1) {
										m--;
									}
									else {
										m = 1;
										y--;
									}
									break
								case ('d'):
									var mm = (m > 1) ? --m : 1;
									var yy = (m > 1) ? y : --y;
									var days = this.dayonmonth(mm, yy);
									if (d > 1) {
										d--;
									}
									else {
										d = days;
										m = mm;
										y = yy;
									}
									break
								case ('y'):
									y--;
									break;
							}
							break
						case ('+'):
							switch (index) {
								case ('m'):
									if (m < 12) {
										m++;
									}
									else {
										m = 1;
										y++;
									}
									break;
								case ('d'):
									var mm = (m < 12) ? ++m : 1;
									var yy = (m < 12) ? y : ++y;
									var days = this.dayonmonth(m, y);
									if (d < days) {
										d++;
									}
									else {
										d = 1;
										m = mm;
										y = yy;
									}
									break
								case ('y'):
									y++;
									break;
							}
							break;
					}
					this.show(m, d, y);
				},
				
				dayonmonth : function(m, y) {
					var answer;
					if(m!=2){
						var date1=new Date(m+'/31/'+y);
						var mm=(m<12)?(m+1):1;
						var yy=(m<12)?y:(y+1);
						var date2=new Date(mm+'/1/'+yy);
						answer=(date1.getDay()==date2.getDay())?'30':'31';
					}else{
						var date1=new Date(m+'/29/'+y);
						var mm=(m<12)?(m+1):1;
						var yy=(m<12)?y:(y+1);
						var date2=new Date(mm+'/1/'+yy);
						answer=(date1.getDay()==date2.getDay())?'28':'29';
					}
					return answer;
				}	
			}
			
			var d = new Date();
			Calendar.show(d.getMonth() + 1 , d.getDay() ,d.getFullYear());
