//=============================================================
//	РАБОТА С ДАТОЙ
//=============================================================
//=============================================================
//	Получение кол-ва дней в месяце month года year
//	получает:
//		month	- номер месяца
//		year	- год
//	return:
//		day_count	- кол-во дней
//=============================================================
function get_day_count(month, year)
{
	day_count = 0;

	if ( (month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12) )
	{
		day_count = 31;
	}
	else
		if ( (month == 4) || (month == 6) || (month == 9) || (month == 11) )
		{
			day_count = 30;
		}
		else
			if ( month == 2 )
			{
				day_count = 28;
			}

	if ( !(year % 4) && (month == 2) )
	{
		day_count = 29;
	}
	return day_count;
}

//=============================================================
//	Синхронизация количества дней для выбранного месяца
//	( вызывается при смене месяца/года на календаре для контроля числа дней )
//	получает:
//		form		- форма
//		ctrl_month	- имя контрола месяца
//		ctrl_day	- имя контрола дня
//		ctrl_year	- имя контрола года
//=============================================================
function change_date(form, ctrl_month, ctrl_day, ctrl_year)
{
	month = parseInt( form[ctrl_month].value );
	day   = parseInt( form[ctrl_day].value );
	year  = parseInt( form[ctrl_year].value );

	day_count		  = get_day_count(month, year);
	current_day_count = parseInt( form[ctrl_day].length );
	current_day		  = parseInt( form[ctrl_day].options[form[ctrl_day].selectedIndex].value );

	if ( day_count )
	{
		// сменить состав ctrl_day, если надо
		if ( current_day_count < day_count )
		{ // добавить позиции в список
			d = day_count - current_day_count;
			for (i=1; i<=d; i++)
			{
				var elOpt = new Option;
				elOpt.text  = current_day_count + i;
				elOpt.value = current_day_count + i;
				//form[ctrl_day].options.add(elOpt);  <-- не работает в Netscape и Mozilla
				form[ctrl_day].options[current_day_count + i - 1] = elOpt;
			}
		}
		else
		{ // удалить позиции из списка
			d = current_day_count - day_count;
			for (i=1; i<=d; i++)
			{
				form[ctrl_day].options[current_day_count - i] = null;
			}
		}

		// сменить текущий выбранный день, если надо
		if ( day_count < current_day )
		{
			form[ctrl_day].options[day_count - 1].selected = true;
		}
		return 1;
	}
	else
		return 0;
}

