var DateSelect = function(_name)
{
	this.name = _name;
	
	var elementDay = $('#' + this.name + "Day");
	var elementMonth = $('#' + this.name + "Month");
	var elementYear = $('#' + this.name + "Year");
	var elementHour = $('#' + this.name + "Hour");
	var elementMinute = $('#' + this.name + "Minute");

	this.setEnabled = function(enabledState)
	{
		if(elementDay) {
			elementDay.attr("disabled", !enabledState);
		};
		if(elementMonth) {
			elementMonth.attr("disabled", !enabledState);
		};
		if(elementYear) {
			elementYear.attr("disabled", !enabledState);
		};
		if(elementHour) {
			elementHour.attr("disabled", !enabledState);
		}
		if(elementMinute) {
			elementMinute.attr("disabled", !enabledState);
		}
		if(enabledState)
		{
			$(elementYear).datepicker("enable");
		}
		else
		{
			$(elementYear).datepicker("disable");
		}
	};
}

DateSelect.initDatePicker = function(selector)
{
	$(selector).datepicker({
		showOn: "button",
		buttonImage: iconPath + "/calendar_16.png",
		buttonImageOnly: true,
		dateFormat: "yy",
		onSelect: function(dateText, inst) {
			var name = this.id.substr(0, this.id.length - 4);
			$("#" + name + "Month").val(inst.selectedMonth + 1);
			$("#" + name + "Day").val(inst.selectedDay);
		},
		beforeShow: function(input, inst) {
			var name = this.id.substr(0, this.id.length - 4);
			var year = this.value;
			var month = $("#" + name + "Month").val();
			var day = $("#" + name + "Day").val();

			var now = new Date();

			if (year.length != 4) {
				year = now.getFullYear();
			}

			if (month.length != 2) {
				month = now.getMonth() + 1;
			}

			if (day.length != 2) {
				day = now.getDate();
			}

			return {
				defaultDate: new Date(year, month - 1, day)
			};
		}
	}).each(function() {
		var me = $(this);
		if(me.attr("disabled"))
		{
			me.datepicker("disable");
		}
		else
		{
			me.datepicker("enable");
		}
	});
};

$(function() {
	DateSelect.initDatePicker("input.DateSelectYear");
});
