var NEXTDAY_OFFSET = 1; //сдвиг дня отбытия по-умолчанию (от текущего дня)
var NUM_YEARS = 5; //число возможных лет (от текущего года)
var MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];


function InitializeDateFilter(date, dateType)
{
	var currentYear = new Date().getFullYear();
	var year = date.getFullYear();
	var month = date.getMonth();
	var daysInMonth = GetDaysInMonth(month + 1, year);

	var jYear = $("#year_" + dateType);
	jYear.empty();	
	for (var i = 0; i < NUM_YEARS; i++)	{
		jYear.append($("<option>").attr("value", currentYear + i).text(currentYear + i));
	}

	var jMonth = $("#mon_" + dateType);
	jMonth.empty();
	for (var i = 0; i < MONTHS.length; i++) {
		jMonth.append($("<option>").attr("value", i + 1).text(MONTHS[i]));
	}

	var jDay = $("#day_" + dateType);
	jDay.empty();
	for (var i = 0; i < daysInMonth; i++) {
		jDay.append($("<option>").attr("value", i + 1).text(i + 1));
	}
	
	$(".datefilter_" + dateType).change(function() {
		UpdateDatePicker(dateType);
	});
}

function UpdateDateFilter(dateType) {
	var date = $("#date_" + dateType).datepicker("getDate");
	
	
	var daysInMonth = GetDaysInMonth(date.getMonth() + 1, date.getFullYear());
	
	var jDay = $("#day_" + dateType);
	var optionsInDaySelect=jDay.find("option").size();

	if (daysInMonth > optionsInDaySelect) {
		for (var i = optionsInDaySelect; i < daysInMonth; i++) {
			jDay.append($("<option>").attr("value", i + 1).text(i + 1));
		}
	}

	if (daysInMonth < optionsInDaySelect) {
		jDay.find("option:gt(" + (daysInMonth - 1) + ")").remove();
	}

	$("#year_" + dateType).val(date.getFullYear());
	$("#mon_" + dateType).val(date.getMonth() + 1);
	$("#day_" + dateType).val(date.getDate());
}

function InitializeDatePicker(date, dateType) {
	var lastdate = new Date($("#year_" + dateType).find("option:last").val(), 11, 31);
	
	$("#date_" + dateType)
		.datepicker(
			{
				numberOfMonths: 2,
				duration: "",
				minDate: date,
				maxDate: lastdate,
				beforeShow: function(input, inst) {
					inst.dpDiv.css({ marginTop: -0 + 'px', marginLeft: -220 + 'px' });
				},
				onClose: function(dateText, inst) {
					UpdateDateFilter(dateType);
				}
			})
		.datepicker("setDate", date);

	$("#date_" + dateType + "_img").click(function() {
		$("#date_" + dateType).datepicker("show");
	});
}

function UpdateDatePicker(dateType) {
	var year = $("#year_" + dateType).val();
	var month = $("#mon_" + dateType).val();
	var day = Math.min($("#day_" + dateType).val(), GetDaysInMonth(month, year));

	var date = new Date(year, month - 1, day);

	$("#date_" + dateType).datepicker("setDate", date);

	UpdateDateFilter(dateType);
}


function SetFilterModule() {
	var today = new Date();
	InitializeDateFilter(today, "arr");
	InitializeDatePicker(today, "arr");
	UpdateDateFilter("arr");

	var nextday = AddDays(today, NEXTDAY_OFFSET);
	InitializeDateFilter(nextday, "dep");
	InitializeDatePicker(nextday, "dep");
	UpdateDateFilter("dep");

	$("#All").click(function() {
		var jThis = $(this);
		if (jThis.is(":checked")) {
			$(".hotel_category").each(function() {
				$(this).attr("checked", "checked");
			});
		}
		else {
			$(".hotel_category").each(function() {
				$(this).attr("checked", "");
			});
		}
	});

	$(".hotel_category").click(function() {
		$("#All").attr("checked", "checked");
		$(".hotel_category").each(function() {
			if (!$(this).is(":checked")) {
				$("#All").attr("checked", "");
			}
		});
	});

	$("#Submit").click(function() {
		GetData();
		return false;
	});

}
