//////////////////////////////////////////////////////////////////////////////
//
// Calendar
//
//////////////////////////////////////////////////////////////////////////////

var idDay;
var idMonth;
var idYear;
var calendarWin;

function CalendarFocus()
{
	calendarWin.focus();
	return false;
}

function StopCalendarEvents()
{
	if (!calendarWin) return;
	window.onunload = null;
	window.onclick = null;
	window.onfocus = null;
}

function StartCalendarEvents()
{
	if (!calendarWin) return;
	window.onunload = CalendarFocus;
	window.onclick = CalendarFocus;
	window.onfocus = CalendarFocus;
}

function setDate (year, month, day)
{
	if (idDay && idMonth && idYear)
	{
		idDay.value = day;
		idMonth.value = month;
		idYear.value = year;
	}
	StopCalendarEvents();
}

function showCalendar (idControlElement, idMonthElement, idDayElement, idYearElement, calendarPath)
{
	var month,
		day,
		year;

	month = getCalendarMonth (idMonthElement);
	day   = getCalendarDay   (idDayElement);
	year  = getCalendarYear  (idYearElement);

	idDay = findObj(idDayElement);
	idMonth = findObj(idMonthElement);
	idYear = findObj(idYearElement);

	if( (idDay.disabled) || (idMonth.disabled) || (idYear.disabled) )
	    return;

	calendarWin = openWinEx(calendarPath+'Calendar.aspx?day='+day+'&month='+month+'&year='+year+'&dayId='+idDayElement+'&monthId='+idMonthElement+'&yearId='+idYearElement, 'Calendar', 220, 200, false, false,false);
	StartCalendarEvents();
}

//////////////////////////////////////////////////////////////////////////////
//
// Check values
//
//////////////////////////////////////////////////////////////////////////////

function checkDay (d)
{
	d = parseInt (d, 10);

	if (d < 1) d = 1;

	if (d > 31) d = 31;

	return d;
}

function checkMonth (m)
{
	m = parseInt (m, 10);

	if (m < 1) m = 1;

	if (m > 12) m = 12;

	return m;
}

function checkYear (y)
{
	y = parseInt (y, 10);

	if (y < 60) y = y + 2000;

	if (y < 100) y = y + 1900;

	//if (y < 1960) y = 1960;

	//if (y > 2100) y = 2100;

	return y;
}

//////////////////////////////////////////////////////////////////////////////
//
// 
//
//////////////////////////////////////////////////////////////////////////////

function getCalendarYear (idElement)
{
	var fieldValue = '';
	var Today = new Date();

	if (idElement != null)
	{
		fieldValue = getElementValue (idElement);
	}

	if (fieldValue == '')
	{
		fieldValue = Today.getFullYear();
	}

	return checkYear (fieldValue);
}

function setCalendarYear (idElement, fieldValue)
{
	if (idElement != null)
	{
		fieldValue = setElementValue (idElement, fieldValue);

		return true;
	}

	return false;
}

function getCalendarMonth (idElement)
{
	var fieldValue = '';
	var Today = new Date();

	if (idElement != null)
	{
		fieldValue = getElementValue (idElement);
	}

	if (fieldValue == '')
	{
		fieldValue = Today.getMonth() + 1;
	}

	return checkMonth (fieldValue);
}

function setCalendarMonth (idElement, fieldValue)
{
	if (idElement != null)
	{
		fieldValue = setElementValue (idElement, fieldValue);

		return true;
	}

	return false;
}

function getCalendarDay (idElement)
{
	var fieldValue = '';
	var Today = new Date();

	if (idElement != null)
	{
		fieldValue = getElementValue (idElement);
	}

	if (fieldValue == '')
	{
		fieldValue = Today.getDate();
	}

	return checkDay (fieldValue);
}

function setCalendarDay (idElement, fieldValue)
{
	if (idElement != null)
	{
		fieldValue = setElementValue (idElement, fieldValue);

		return true;
	}

	return false;
}
