function UIControlDropDownCalendar()
{
//Объявляем свойства
    this.prefix = ""; //префикс
    this.postfix = "";  //суфикс
	this.controlFolderPath = ""; //путь к директории в которой лежат контролы
	this.objectType = 0; //тип объекта
	this.objectId = 0; //идентификатор объекта
	this.language = 0; //язык контрола
	
//Объявляем методы
    this.Initialize = Initialize;
    this.Toggle = Toggle;
    this.GetControlName = GetControlName;
    this.GetDate = GetDate;
    this.SetDate = SetDate;
    this.Enable = Enable;
    this.Disable = Disable;
    
//Инициализируем элемент управления
    function Initialize()
    {
		var dateField = document.getElementById(this.GetControlName("Field"));
		var dateButton = document.getElementById(this.GetControlName("Button"));
		var dateButtonBlock = dateButton.parentNode;
		
		dateField.readOnly = true;
		dateButton.style.display = "";
		dateButtonBlock.style.width = "18px";
		
		dateField = null;
		dateButton = null;
		dateButtonBlock = null;
    }
    
//Отображает/скрывает календарь
	function Toggle() 
	{
		var dateField = document.getElementById(this.GetControlName("Field"));
		var dateButton = document.getElementById(this.GetControlName("Button"));
		var dateCalendar = document.getElementById(this.GetControlName("Calendar"));
		var selectedDate = null;
		var tempUrl = "";
		
		if (dateCalendar.style.display != "none")
		{
			dateCalendar.style.display = "none";
		}
		else 
		{
		//Получаем выбранную дату
			selectedDate = this.GetDate();
			if (IsEmpty(selectedDate) == true || selectedDate == "none")
			{
				selectedDate = new Date();
			}		

			tempUrl = "";
			tempUrl += this.controlFolderPath + "windows\/calendar.asp";
			tempUrl += "?selectedYear=" + selectedDate.getFullYear();
			tempUrl += "&selectedMonth=" + (selectedDate.getMonth() + 1);
			tempUrl += "&selectedDay=" + selectedDate.getDate();
			tempUrl += "&objectType=" + this.objectType;
			tempUrl += "&objectId=" + this.objectId;
			tempUrl += "&controlName=" + this.GetControlName("Control");
			tempUrl += "&language=" + this.language;
			tempUrl += "&ver=" + (new Date()).valueOf() + "" + Math.floor(Math.random() * 1000);
			
			dateCalendar.getElementsByTagName("iframe")[0].src = tempUrl; 
		
			dateCalendar.style.display = "";
		}
		
		dateField = null;
		dateButton = null;
		dateCalendar = null;
	}
    
//Получает имя элемента управления
    function GetControlName(controlName)
    {
        var result = this.prefix + "Date" + this.postfix + controlName;
        
        return result; 
    }
    
//Получаеи дату из текстового поля
	function GetDate()
	{
		var dateField = document.getElementById(this.GetControlName("Field"));
		var selectedDate = ToDate(dateField.value);

		dateField = null;
		
		return selectedDate;
	}
	
//Устанавливаем дату
	function SetDate(selectedYear, selectedMonth, selectedDay)
	{
		var dateField = document.getElementById(this.GetControlName("Field"));
	
		var tempDate = "";
		tempDate += LZero(selectedDay, 2) + ".";
		tempDate += LZero(selectedMonth, 2) + ".";
		tempDate += selectedYear.toString();
		
		dateField.value = tempDate;
		
		dateField = null;
	}
	
//Делает календарь активным
	function Enable()
	{
		var dateField = document.getElementById(this.GetControlName("Field"));
		var dateButton = document.getElementById(this.GetControlName("Button"));
		
		dateButton.src = this.controlFolderPath + "images\/calendar_button.gif";
		dateField.className = "calendarField";
		dateButton.className = "calendarButton";
		
		dateField.disabled = false;
		dateButton.disabled = false;
		
		dateField = null;
		dateButton = null;
	}
	
//Делает календарь неактивным
	function Disable()
	{
		var dateField = document.getElementById(this.GetControlName("Field"));
		var dateButton = document.getElementById(this.GetControlName("Button"));
		var dateCalendar = document.getElementById(this.GetControlName("Calendar"));
		
		dateCalendar.style.display = "none";
		dateButton.src = this.controlFolderPath + "images\/calendar_button_disabled.gif";
		dateField.className = "calendarFieldDisabled";
		dateButton.className = "calendarButtonDisabled";		
		
		dateField.disabled = true;
		dateButton.disabled = true;
		
		dateField = null;
		dateButton = null;
		dateCalendar = null;
	}
}