﻿/*
* Title:  jMonthCalendar 1.0.0
* Dependencies:  jQuery 1.3.0 +
* Author:  Kyle LeNeau
* Email:  kyle.leneau@gmail.com
* Project Hompage:  http://www.bytecyclist.com/projects/jmonthcalendar
*
* 1/15/2009
*/

(function($) {
	var cfg_live_site = 'http://1941-45.su';
	var idsMain = {
			container: "#jWarCalendar",
			head: "#CalendarHead",
			body: "#CalendarBody"
	};
	var _selectedDateMain;
	var _beginDateMain;
	var _endDateMain;
	var defaultsMain = {
			firstDayOfWeek: 1,
			navLinks: {
				p:'Prev', 
				n:'Next', 
				t:'Today'
			},
			onMonthChangingMain: function(dateIn) { return true; },
			onMonthChangedMain: function(dateIn) { return true; },
			locale: {
				days: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"],
				daysShort: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"],
				daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"],
				months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
				monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
				weekMin: 'wk'
			}
		};
	var getDateFromId = function(dateidstring) {
		//c_01012009		
		return new Date(dateidstring.substring(6, 10), dateidstring.substring(2, 4)-1, dateidstring.substring(4, 6));
	};
	var getDateId = function(date) {
		var month = ((date.getMonth()+1)<10) ? "0" + (date.getMonth()+1) : (date.getMonth()+1);
		var day = (date.getDate() < 10) ? "0" + date.getDate() : date.getDate();
		return "c_" + month + day + date.getFullYear();
	};
	jQuery.jWarCalendar = jQuery.W = function() {};


			
		
	jQuery.W.ExtendDate = function(options) {
		if (Date.prototype.tempDate) {
			return;
		}
		Date.prototype.tempDate = null;
		Date.prototype.months = defaultsMain.locale.months;
		Date.prototype.monthsShort = defaultsMain.locale.monthsShort;
		Date.prototype.days = defaultsMain.locale.days;
		Date.prototype.daysShort = defaultsMain.locale.daysShort;
		Date.prototype.getMonthName = function(fullName) {
			return this[fullName ? 'months' : 'monthsShort'][this.getMonth()];
		};
		Date.prototype.getDayName = function(fullName) {
			return this[fullName ? 'days' : 'daysShort'][this.getDay()];
		};
		Date.prototype.toShortDateString = function() {
			return (this.getMonth()+1) + "/" + this.getDate() + "/" + this.getFullYear();
		};
		Date.prototype.addDays = function (n) {
			this.setDate(this.getDate() + n);
			this.tempDate = this.getDate();
		};
		Date.prototype.addMonths = function (n) {
			if (this.tempDate == null) {
				this.tempDate = this.getDate();
			}
			this.setDate(1);
			this.setMonth(this.getMonth() + n);
			this.setDate(Math.min(this.tempDate, this.getMaxDays()));
		};
		Date.prototype.addYears = function (n) {
			if (this.tempDate == null) {
				this.tempDate = this.getDate();
			}
			this.setDate(1);
			this.setFullYear(this.getFullYear() + n);
			this.setDate(Math.min(this.tempDate, this.getMaxDays()));
		};
		Date.prototype.getMaxDays = function() {
			var tmpDate = new Date(Date.parse(this)),
				d = 28, m;
			m = tmpDate.getMonth();
			d = 28;
			while (tmpDate.getMonth() == m) {
				d ++;
				tmpDate.setDate(d);
			}
			return d - 1;
		};
		Date.prototype.getFirstDay = function() {
			var tmpDate = new Date(Date.parse(this));
			tmpDate.setDate(1);
			return tmpDate.getDay();
		};
		Date.prototype.getWeekNumber = function() {
			var tempDate = new Date(this);
			tempDate.setDate(tempDate.getDate() - (tempDate.getDay() + 6) % 7 + 3);
			var dms = tempDate.valueOf();
			tempDate.setMonth(0);
			tempDate.setDate(4);
			return Math.round((dms - tempDate.valueOf()) / (604800000)) + 1;
		};
		Date.prototype.getDayOfYear = function() {
			var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
			var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
			var time = now - then;
			return Math.floor(time / 24*60*60*1000);
		};
	}
	
	jQuery.W.DrawCalendar = function(dateIn, monthIn, basicMonth){

		var today = new Date();
		var d;
		var d2;
		var monthOffset = 0;
		
		d = dateIn;
		d2 = monthIn;
var saveDate = new Date(d.getFullYear(), d.getMonth(), d.getDate());
	
		var prevMonth;
		var prevMonth1;
		var prevMonth2;
		var prevMonth3;
		var prevMonth4;
		var prevMonth5;
		var prevMonth6;

		var prevArr;
		var prevLink1;
		var prevLink2;
		var prevLink3;
		var prevLink4;
		var prevLink5;
		var prevLink6;

		var nextMonth;
		var nextMonth1;
		var nextMonth2;
		var nextMonth3;
		var nextMonth4;
		var nextMonth5;
		var nextMonth6;

		var nextArr;
		var nextLink1;
		var nextLink2;
		var nextLink3;
		var nextLink4;
		var nextLink5;
		var nextLink6;

		var prevMonthArr;
		var nextMonthArr;
		
		// Create previous month
		prevMonth1 = d2.getMonth() == 0 ? new Date(d2.getFullYear()-1, 11, 1) : new Date(d2.getFullYear(), d2.getMonth()-1, 1);
		if ((prevMonth1.getMonth() < 5)&&(prevMonth1.getFullYear() == 1941)) {
			monthOffset = -4;
			prevArr = jQuery('<div class="monthNav monthNavLeft"><span class="grayNav"></span></div>');
		}
		else {
		if ((prevMonth1.getMonth() == basicMonth.getMonth()) && (prevMonth1.getYear() == basicMonth.getYear())) {
			prevLink1 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date' + (prevMonth1.getMonth()+1) + '_' + prevMonth1.getFullYear() + '">' + defaultsMain.locale.months[prevMonth1.getMonth()] + '</a></li>');			
		}
		else {
				if (prevMonth1.getFullYear() != basicMonth.getFullYear()) {
					prevLink1 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth1.getMonth()+1) + '_' + prevMonth1.getFullYear() + '">' + defaultsMain.locale.months[prevMonth1.getMonth()] + '</a><span class="subYear">' + prevMonth1.getFullYear() + '</span></li>');
				}
				else {
					prevLink1 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth1.getMonth()+1) + '_' + prevMonth1.getFullYear() + '">' + defaultsMain.locale.months[prevMonth1.getMonth()] + '</a></li>');
				}
		}			
			prevMonth = prevMonth1;
		}

// Create 2nd previous month
	if (monthOffset > -4) {
		prevMonth2 = prevMonth1.getMonth() == 0 ? new Date(prevMonth1.getFullYear()-1, 11, 1) : new Date(prevMonth1.getFullYear(), prevMonth1.getMonth()-1, 1);
		if ((prevMonth2.getMonth() < 5)&&(prevMonth2.getFullYear() == 1941)) {
			monthOffset = -3;
			prevArr = jQuery('<div class="monthNav monthNavLeft"><span class="grayNav"></span></div>');
		}
		else {
			prevMonthArr = prevMonth2;
		if ((prevMonth2.getMonth() == basicMonth.getMonth()) && (prevMonth2.getYear() == basicMonth.getYear())) {
			prevLink2 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth2.getMonth()+1) + '_' + prevMonth2.getFullYear() + '">' + defaultsMain.locale.months[prevMonth2.getMonth()] + '</a></li>');
		}
		else {
				if (prevMonth2.getFullYear() != basicMonth.getFullYear()) {
					prevLink2 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth2.getMonth()+1) + '_' + prevMonth2.getFullYear() + '">' + defaultsMain.locale.months[prevMonth2.getMonth()] + '</a><span class="subYear">' + prevMonth2.getFullYear() + '</span></li>');
				}
				else {
					prevLink2 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth2.getMonth()+1) + '_' + prevMonth2.getFullYear() + '">' + defaultsMain.locale.months[prevMonth2.getMonth()] + '</a></li>');
				}
		}
		}
	}
	
	// Create 3rd previous month
	if (monthOffset > -3) {
		prevMonth3 = prevMonth2.getMonth() == 0 ? new Date(prevMonth2.getFullYear()-1, 11, 1) : new Date(prevMonth2.getFullYear(), prevMonth2.getMonth()-1, 1);
		if ((prevMonth3.getMonth() < 5)&&(prevMonth3.getFullYear() == 1941)) {
			monthOffset = -2;
			prevArr = jQuery('<div class="monthNav monthNavLeft"><span class="grayNav"></span></div>');
		}
		else {
			prevMonthArr = prevMonth3;
		if ((prevMonth3.getMonth() == basicMonth.getMonth()) && (prevMonth3.getYear() == basicMonth.getYear())) {
			prevLink3 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth3.getMonth()+1) + '_' + prevMonth3.getFullYear() + '">' + defaultsMain.locale.months[prevMonth3.getMonth()] + '</a></li>');
		}
		else {
				if (prevMonth3.getFullYear() != basicMonth.getFullYear()) {
					prevLink3 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth3.getMonth()+1) + '_' + prevMonth3.getFullYear() + '">' + defaultsMain.locale.months[prevMonth3.getMonth()] + '</a><span class="subYear">' + prevMonth3.getFullYear() + '</span></li>');
				}
				else {
					prevLink3 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth3.getMonth()+1) + '_' + prevMonth3.getFullYear() + '">' + defaultsMain.locale.months[prevMonth3.getMonth()] + '</a></li>');
				}
		}
		}
		
		if ((prevMonth3.getMonth() == 5)&&(prevMonth3.getFullYear() == 1941)) {
			monthOffset = -1;
			prevArr = jQuery('<div class="monthNav monthNavLeft"><span class="grayNav"></span></div>');
		}
	}

		//Create next month
		nextMonth1 = d2.getMonth() == 11 ? new Date(d2.getFullYear()+1, 0, 1) : new Date(d2.getFullYear(), d2.getMonth()+1, 1);
		if ((nextMonth1.getMonth() > 4)&&(nextMonth1.getFullYear() == 1945)) {
			monthOffset = 4;
			nextArr = jQuery('<div class="monthNav monthNavRight"><span class="grayNav"></span></div>');
		}
		else {
			if ((nextMonth1.getMonth() == basicMonth.getMonth()) && (nextMonth1.getYear() == basicMonth.getYear())) {
				nextLink1 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth1.getMonth()+1) + '_' + nextMonth1.getFullYear() + '">' + defaultsMain.locale.months[nextMonth1.getMonth()] + '</a></li>');
			}
			else {
				if (nextMonth1.getFullYear() != basicMonth.getFullYear()) {
					nextLink1 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth1.getMonth()+1) + '_' + nextMonth1.getFullYear() + '">' + defaultsMain.locale.months[nextMonth1.getMonth()] + '</a><span class="subYear">' + nextMonth1.getFullYear() + '</span></li>');
				}
				else {
					nextLink1 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth1.getMonth()+1) + '_' + nextMonth1.getFullYear() + '">' + defaultsMain.locale.months[nextMonth1.getMonth()] + '</a></li>');
				}
			}
			
			nextMonth = nextMonth1;
		}

		//Create 2nd next month
	if (monthOffset < 4) {
		nextMonth2 = nextMonth1.getMonth() == 11 ? new Date(nextMonth1.getFullYear()+1, 0, 1) : new Date(nextMonth1.getFullYear(), nextMonth1.getMonth()+1, 1);
		if ((nextMonth2.getMonth() > 4)&&(nextMonth2.getFullYear() == 1945)) {
			monthOffset = 3;
			nextArr = jQuery('<div class="monthNav monthNavRight"><span class="grayNav"></span></div>');
		}
		else {
			nextMonthArr = nextMonth2;
			if ((nextMonth2.getMonth() == basicMonth.getMonth()) && (nextMonth2.getYear() == basicMonth.getYear())) {
				nextLink2 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth2.getMonth()+1) + '_' + nextMonth2.getFullYear() + '">' + defaultsMain.locale.months[nextMonth2.getMonth()] + '</a></li>');
			}
			else {
				if (nextMonth2.getFullYear() != basicMonth.getFullYear()) {
					nextLink2 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth2.getMonth()+1) + '_' + nextMonth2.getFullYear() + '">' + defaultsMain.locale.months[nextMonth2.getMonth()] + '</a><span class="subYear">' + nextMonth2.getFullYear() + '</span></li>');
				}
				else {
					nextLink2 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth2.getMonth()+1) + '_' + nextMonth2.getFullYear() + '">' + defaultsMain.locale.months[nextMonth2.getMonth()] + '</a></li>');
				}
			}
		}
	}
	
		//Create 3rd next month
	if (monthOffset < 3) {
		nextMonth3 = nextMonth2.getMonth() == 11 ? new Date(nextMonth2.getFullYear()+1, 0, 1) : new Date(nextMonth2.getFullYear(), nextMonth2.getMonth()+1, 1);
		if ((nextMonth3.getMonth() > 4)&&(nextMonth3.getFullYear() == 1945)) {
			monthOffset = 2;
			nextArr = jQuery('<div class="monthNav monthNavRight"><span class="grayNav"></span></div>');
		}
		else {
			nextMonthArr = nextMonth3;
			if ((nextMonth3.getMonth() == basicMonth.getMonth()) && (nextMonth3.getYear() == basicMonth.getYear())) {
				nextLink3 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth3.getMonth()+1) + '_' + nextMonth3.getFullYear() + '">' + defaultsMain.locale.months[nextMonth3.getMonth()] + '</a></li>');
			}
			else {
				if (nextMonth3.getFullYear() != basicMonth.getFullYear()) {
					nextLink3 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth3.getMonth()+1) + '_' + nextMonth3.getFullYear() + '">' + defaultsMain.locale.months[nextMonth3.getMonth()] + '</a><span class="subYear">' + nextMonth3.getFullYear() + '</span></li>');
				}
				else {
					nextLink3 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth3.getMonth()+1) + '_' + nextMonth3.getFullYear() + '">' + defaultsMain.locale.months[nextMonth3.getMonth()] + '</a></li>');
				}
			}
		}
		
		if ((nextMonth3.getMonth() == 4)&&(nextMonth3.getFullYear() == 1945)) {
			monthOffset = 1;
			nextArr = jQuery('<div class="monthNav monthNavRight"><span class="grayNav"></span></div>');
		}
	}

	// Create 4th previous month
	if (monthOffset > 1) {
		prevMonth4 = prevMonth3.getMonth() == 0 ? new Date(prevMonth3.getFullYear()-1, 11, 1) : new Date(prevMonth3.getFullYear(), prevMonth3.getMonth()-1, 1);
		prevMonthArr = prevMonth4;
		prevMonth = prevMonth2;
		if ((prevMonth4.getMonth() == basicMonth.getMonth()) && (prevMonth4.getYear() == basicMonth.getYear())) {
			prevLink4 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth4.getMonth()+1) + '_' + prevMonth4.getFullYear() + '">' + defaultsMain.locale.months[prevMonth4.getMonth()] + '</a></li>');
		}
		else {
			if (prevMonth4.getFullYear() != basicMonth.getFullYear()) {
				prevLink4 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth4.getMonth()+1) + '_' + prevMonth4.getFullYear() + '">' + defaultsMain.locale.months[prevMonth4.getMonth()] + '</a><span class="subYear">' + prevMonth4.getFullYear() + '</span></li>');
			}
			else {
				prevLink4 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth4.getMonth()+1) + '_' + prevMonth4.getFullYear() + '">' + defaultsMain.locale.months[prevMonth4.getMonth()] + '</a></li>');
			}
		}
	}

	// Create 5th previous month
	if (monthOffset > 2) {
		prevMonth5 = prevMonth4.getMonth() == 0 ? new Date(prevMonth4.getFullYear()-1, 11, 1) : new Date(prevMonth4.getFullYear(), prevMonth4.getMonth()-1, 1);
		prevMonthArr = prevMonth5;
		prevMonth = prevMonth3;
		if ((prevMonth5.getMonth() == basicMonth.getMonth()) && (prevMonth5.getYear() == basicMonth.getYear())) {
			prevLink5 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth5.getMonth()+1) + '_' + prevMonth5.getFullYear() + '">' + defaultsMain.locale.months[prevMonth5.getMonth()] + '</a></li>');
		}
		else {
			if (prevMonth5.getFullYear() != basicMonth.getFullYear()) {
				prevLink5 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth5.getMonth()+1) + '_' + prevMonth5.getFullYear() + '">' + defaultsMain.locale.months[prevMonth5.getMonth()] + '</a><span class="subYear">' + prevMonth5.getFullYear() + '</span></li>');
			}
			else {
				prevLink5 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth5.getMonth()+1) + '_' + prevMonth5.getFullYear() + '">' + defaultsMain.locale.months[prevMonth5.getMonth()] + '</a></li>');
			}
		}
	}
	
	// Create 6th previous month
	if (monthOffset > 3) {
		prevMonth6 = prevMonth5.getMonth() == 0 ? new Date(prevMonth5.getFullYear()-1, 11, 1) : new Date(prevMonth5.getFullYear(), prevMonth5.getMonth()-1, 1);
		prevMonthArr = prevMonth6;
		prevMonth = prevMonth4;
		if ((prevMonth6.getMonth() == basicMonth.getMonth()) && (prevMonth6.getYear() == basicMonth.getYear())) {
			prevLink6 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth6.getMonth()+1) + '_' + prevMonth6.getFullYear() + '">' + defaultsMain.locale.months[prevMonth6.getMonth()] + '</a></li>');
		}
		else {
			if (prevMonth6.getFullYear() != basicMonth.getFullYear()) {
				prevLink6 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth6.getMonth()+1) + '_' + prevMonth6.getFullYear() + '">' + defaultsMain.locale.months[prevMonth6.getMonth()] + '</a><span class="subYear">' + prevMonth6.getFullYear() + '</span></li>');
			}
			else {
				prevLink6 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (prevMonth6.getMonth()+1) + '_' + prevMonth6.getFullYear() + '">' + defaultsMain.locale.months[prevMonth6.getMonth()] + '</a></li>');
			}
		}
	}


	//Create 4th next month
	if (monthOffset < -1) {
		nextMonth4 = nextMonth3.getMonth() == 11 ? new Date(nextMonth3.getFullYear()+1, 0, 1) : new Date(nextMonth3.getFullYear(), nextMonth3.getMonth()+1, 1);
			nextMonthArr = nextMonth4;
			nextMonth = nextMonth2;
		
		if ((nextMonth4.getMonth() == basicMonth.getMonth()) && (nextMonth4.getYear() == basicMonth.getYear())) {
			nextLink4 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth4.getMonth()+1) + '_' + nextMonth4.getFullYear() + '">' + defaultsMain.locale.months[nextMonth4.getMonth()] + '</a></li>');
		}
		else {
			if (nextMonth4.getFullYear() != basicMonth.getFullYear()) {
				nextLink4 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth4.getMonth()+1) + '_' + nextMonth4.getFullYear() + '">' + defaultsMain.locale.months[nextMonth4.getMonth()] + '</a><span class="subYear">' + nextMonth4.getFullYear() + '</span></li>');
			}
			else {
				nextLink4 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth4.getMonth()+1) + '_' + nextMonth4.getFullYear() + '">' + defaultsMain.locale.months[nextMonth4.getMonth()] + '</a></li>');
			}
		}
	}
	
	//Create 5th next month
	if (monthOffset < -2) {
		nextMonth5 = nextMonth4.getMonth() == 11 ? new Date(nextMonth4.getFullYear()+1, 0, 1) : new Date(nextMonth4.getFullYear(), nextMonth4.getMonth()+1, 1);
			nextMonthArr = nextMonth5;
			nextMonth = nextMonth3;
		if ((nextMonth5.getMonth() == basicMonth.getMonth()) && (nextMonth5.getYear() == basicMonth.getYear())) {
			nextLink5 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth5.getMonth()+1) + '_' + nextMonth5.getFullYear() + '">' + defaultsMain.locale.months[nextMonth5.getMonth()] + '</a></li>');
		}
		else {
			if (nextMonth5.getFullYear() != basicMonth.getFullYear()) {
				nextLink5 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth5.getMonth()+1) + '_' + nextMonth5.getFullYear() + '">' + defaultsMain.locale.months[nextMonth5.getMonth()] + '</a><span class="subYear">' + nextMonth5.getFullYear() + '</span></li>');
			}
			else {
				nextLink5 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth5.getMonth()+1) + '_' + nextMonth5.getFullYear() + '">' + defaultsMain.locale.months[nextMonth5.getMonth()] + '</a></li>');
			}
		}
	}
	
	//Create 6th next month
	if (monthOffset < -3) {
		nextMonth6 = nextMonth5.getMonth() == 11 ? new Date(nextMonth5.getFullYear()+1, 0, 1) : new Date(nextMonth5.getFullYear(), nextMonth5.getMonth()+1, 1);
			nextMonthArr = nextMonth6;
			nextMonth = nextMonth4;
		if ((nextMonth6.getMonth() == basicMonth.getMonth()) && (nextMonth6.getYear() == basicMonth.getYear())) {
			nextLink6 = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth6.getMonth()+1) + '_' + nextMonth6.getFullYear() + '">' + defaultsMain.locale.months[nextMonth6.getMonth()] + '</a></li>');
		}
		else {
			if (nextMonth5.getFullYear() != basicMonth.getFullYear()) {
				nextLink6 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth6.getMonth()+1) + '_' + nextMonth6.getFullYear() + '">' + defaultsMain.locale.months[nextMonth6.getMonth()] + '</a><span class="subYear">' + nextMonth6.getFullYear() + '</span></li>');
			}
			else {
				nextLink6 = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (nextMonth6.getMonth()+1) + '_' + nextMonth6.getFullYear() + '">' + defaultsMain.locale.months[nextMonth6.getMonth()] + '</a></li>');
			}
		}
	}
	
	// next Arrow
	if (monthOffset < 1) {
		nextArr = jQuery('<div class="monthNav monthNavRight"><span class="asLink">&rarr;</span></div>').click(function() {
			jQuery.W.ChangeMonthMain(saveDate, nextMonth, basicMonth);
			return false;
			});
	}
		
		
	// prev Arrow
	if (monthOffset > -1) {
		prevArr = jQuery('<div class="monthNav monthNavLeft"><span class="asLink">&larr;</span></div>').click(function() {
			jQuery.W.ChangeMonthMain(saveDate, prevMonth, basicMonth);
			return false;
		});
	}
	
	// Create link for central month
	var thisMon;
	if ((d2.getMonth() == basicMonth.getMonth()) && (d2.getYear() == basicMonth.getYear())) {
		thisMon = jQuery('<li class="activeMonth"><a href="' + cfg_live_site + '/rubric/month.php?date=' + (d2.getMonth()+1) + '_' + d2.getFullYear() + '">' + defaultsMain.locale.months[d2.getMonth()] + '</a></li>');
	}
	else {
		if (d2.getFullYear() != basicMonth.getFullYear()) {
				thisMon = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (d2.getMonth()+1) + '_' + d2.getFullYear() + '">' + defaultsMain.locale.months[d2.getMonth()] + '</a><span class="subYear">' + d2.getFullYear() + '</span></li>');
			}
		else {
			thisMon = jQuery('<li><a href="' + cfg_live_site + '/rubric/month.php?date=' + (d2.getMonth()+1) + '_' + d2.getFullYear() + '">' + defaultsMain.locale.months[d2.getMonth()] + '</a></li>');
				}
	}
	
/*		
		var todayLink = jQuery('<a href="" class="link-today">'+ defaultsMain.navLinks.t +'</a>').click(function() {
			jQuery.WarCalendar.ChangeMonthMain(today, this);
			return false;
		});*/

		//Build up the Header first
		//  Navigation
		var navRow = jQuery('<div class="monthSet"></div>');
		jQuery(navRow).append(prevArr);
		jQuery(navRow).append('<ul class="months"></ul>');
		
		if (monthOffset > 3) {jQuery('.months', navRow).append(prevLink6);}
		if (monthOffset > 2) {jQuery('.months', navRow).append(prevLink5);}
		if (monthOffset > 1) {jQuery('.months', navRow).append(prevLink4);}
		if (monthOffset > -2) {jQuery('.months', navRow).append(prevLink3);}
		if (monthOffset > -3) {jQuery('.months', navRow).append(prevLink2);}
		if (monthOffset > -4) {jQuery('.months', navRow).append(prevLink1);}
		
		//текущий
		jQuery('.months', navRow).append(jQuery(thisMon));
		
		if (monthOffset < 4) {jQuery('.months', navRow).append(nextLink1);}
		if (monthOffset < 3) {jQuery('.months', navRow).append(nextLink2);}
		if (monthOffset < 2) {jQuery('.months', navRow).append(nextLink3);}
		if (monthOffset < -1) {jQuery('.months', navRow).append(nextLink4);}
		if (monthOffset < -2) {jQuery('.months', navRow).append(nextLink5);}
		if (monthOffset < -3) {jQuery('.months', navRow).append(nextLink6);}
		jQuery(navRow).append(nextArr);



//Build up the Body

		d = new Date(basicMonth.getFullYear(), basicMonth.getMonth(), d.getDate());
		var tBody = jQuery('<div class="daysSet"></div>').append('<div class="container"></div>');
		var isCurrentMonth = 1;
		var maxDays = d.getMaxDays();

		if (d.getDate() > 26) {
			d.setDate(26);
		}		
		
		//what is the currect day #
/*		var curDay = defaultsMain.firstDayOfWeek - d.getDay();
		if (curDay > 0) curDay -= 7;*/
		
		if (((d.getFullYear() == 1941)&&(d.getMonth() == 5)&&(d.getDate() < 28))||((d.getFullYear() == 1941)&&(d.getMonth() < 5)))	{
			d.setDate(28);
			d.setMonth(5);
		}
		
		if ((d.getFullYear() == 1945)&&(d.getMonth() == 4))	{
			d.setDate(26);
			d.setMonth(3);
		}
		
		

saveDate = new Date(d.getFullYear(), d.getMonth(), d.getDate());

		var curDay = d.getDate() - 7;
		
		var t = (maxDays + Math.abs(curDay));
		
		_beginDateMain = new Date(d.getFullYear(), d.getMonth(), curDay+1);


		
		_endDateMain = new Date(d.getFullYear(), d.getMonth()+1, 5);
		var _currentDate = new Date(_beginDateMain.getFullYear(), _beginDateMain.getMonth(), _beginDateMain.getDate());

		// Render calendar
		var rowCount = 0;
		var thisRow = jQuery("<ul class='days'></ul>");
		do {
				var atts;
				if ((basicMonth.getDate()==_currentDate.getDate())&&(basicMonth.getMonth()==_currentDate.getMonth())) {
				atts = {'class':"today",
							'date':_currentDate.toShortDateString(),
							'id': getDateId(_currentDate)
				};
			}
			else {
				atts = {'class':"",
					'date':_currentDate.toShortDateString(),
						'id': getDateId(_currentDate)
				};
			}

				if ( (curDay < 0 || curDay >= maxDays)&&(!((basicMonth.getFullYear() == 1945)&&(basicMonth.getMonth() == 4)&&(saveDate.getDate() == 26)&&(curDay>=30)) ) || ((basicMonth.getFullYear() == 1945)&&(basicMonth.getMonth() == 4)&&(saveDate.getDate() == 26)&&(curDay > 9)&&(curDay < maxDays-1))) {
					atts['class'] += ' anotherMonth';
				} else {
					d.setDate(curDay+1);
				}
					
				if (isCurrentMonth && curDay+1 == today.getDate()) {
					dayStr = curDay+1;
//					atts['class'] += ' Today';
				}
				
					thisRow.append(jQuery("<li></li>").attr(atts).append('<a href="' + cfg_live_site + '/rubric/day.php?date=' + _currentDate.getDate() + '_' + (_currentDate.getMonth() + 1) + '_' + _currentDate.getFullYear() + '">' + _currentDate.getDate() + '</a>'));
					
				
				curDay++;
				rowCount++;
				_currentDate.addDays(1);

			jQuery('.container', tBody).append(thisRow);
//			tBody.append(thisRow);
//		} while (curDay < maxDays);
		} while (rowCount < 20);

		var leftDayArrow;
		
		if (((basicMonth.getFullYear() == 1945)&&(basicMonth.getMonth() == 4)) || ((basicMonth.getFullYear() == 1941)&&(basicMonth.getMonth() == 5)))	{
			leftDayArrow = jQuery('<div class="dayNav dayNavLeft"><span class="asLink"></span></div>');
		}
		else {
			leftDayArrow = jQuery('<div class="dayNav dayNavLeft"><span class="asLink">&larr;</span></div>').click(function() {
			jQuery.W.DecDay(saveDate, d2, basicMonth);
			return false;
		});
		}

		jQuery('.container', tBody).prepend(leftDayArrow);


		var rightDayArrow;
		if (((basicMonth.getFullYear() == 1945)&&(basicMonth.getMonth() == 4)) || ((basicMonth.getFullYear() == 1941)&&(basicMonth.getMonth() == 5)) || (saveDate.getDate()>=26))	{
			rightDayArrow = jQuery('<div class="dayNav dayNavRight"><span class="asLink"></span></div>');
		}
		else {
			rightDayArrow = jQuery('<div class="dayNav dayNavRight"><span class="asLink">&rarr;</span></div>').click(function() {
			jQuery.W.IncDay(saveDate, d2, basicMonth);
			return false;
		});
		}
		
		
		jQuery('.container', tBody).append(rightDayArrow);


		var a = jQuery(idsMain.container);
		var cal = jQuery('<div class="MonthlyCalendar"></div>');
		cal = cal.append(navRow, tBody);
		
		a.hide();
		a.html(cal);
		a.show();	
		$('.subYear').parent().find('a').css('color', '#A4A3A3');
//		$('.Inactive').text('');
	}

	
	jQuery.W.ChangeMonthMain = function(dateIn, monthIn, basicMonth) {
		defaultsMain.onMonthChangingMain(monthIn);
		jQuery.W.DrawCalendar(dateIn, monthIn, basicMonth);
		defaultsMain.onMonthChangedMain(monthIn);
		
/*		$('.activeYear').removeClass("activeYear");
		var text = 'year' + dateIn.getFullYear();
		$(document.getElementById('year' + dateIn.getFullYear())).find('div').addClass('activeYear');*/
		connectMonYear ();
	}
	
	jQuery.W.IncDay = function(dateIn, monthIn, basicMonth) {
		if (dateIn.getDate() > 25)	{
			$('.dayNavRight').css('display', 'none');
		}
		else {
		dateIn.addDays(1);
		jQuery.W.DrawCalendar(dateIn, monthIn, basicMonth);
		if (dateIn.getDate() == 26)	{
			$('.dayNavRight').css('display', 'none');
		}
		}
	}
	
	
	jQuery.W.DecDay = function(dateIn, monthIn, basicMonth) {
		if (dateIn.getDate() < 2)	{
			$('.dayNavLeft').css('display', 'none');
		}
		else {
			dateIn.addDays(-1);
			jQuery.W.DrawCalendar(dateIn, monthIn, basicMonth);
			if (dateIn.getDate() == 1)	{
			$('.dayNavLeft').css('display', 'none');
			}
		}
	}
	
	jQuery.W.InitializeMain = function(options, newYear, mode) {
	var today = new Date();
	
	if (newYear) {
		var makeActYear = '#year' + newYear.getFullYear() + ' div';
		$(makeActYear).addClass("activeYear");

		if (mode == 1)
		{

			today.setFullYear(newYear.getFullYear());
			if ((today.getFullYear() == 1941) && ((today.getMonth()<5) || ((today.getMonth()==5)&&(today.getDate()<22))))
			{
				today.setDate(22);
				today.setMonth(5);
			}
			if ((today.getFullYear() == 1945) && ((today.getMonth()>4) || ((today.getMonth()==4)&&(today.getDate()>9))))
			{
				today.setDate(9);
				today.setMonth(4);
			}
		}
		else {
			if ((newYear.getFullYear() == 1941) && (newYear.getMonth() == 5) && (newYear.getDate() < 22))
			{
				newYear.setDate(22);
			}
			today = newYear;
		}

	}
	else {
		if ((today.getMonth()<5) || ((today.getMonth()==5)&&(today.getDate()<22))) {
			today.setFullYear(1942);
			$('#year1942 div').addClass("activeYear");
		}
		else {
			today.setFullYear(1941);
			$('#year1941 div').addClass("activeYear");
		}
	}
		
		options = jQuery.extend(defaultsMain, options);
		jQuery.W.ExtendDate(options);
		
		jQuery.W.DrawCalendar(today, today, today);
		connectMonYear ();
	};
	
	
	
})(jQuery);