var dateControl;
var dropdownControl;
var ctrlName;

function CreateDropdownCalendar(controlId)
{
    ctrlName = controlId;
    if(document.getElementById(ctrlName))
    {
        var newDateControl = new DropdownCalendar();
        return newDateControl;
    }
    else
    {
        return;
    }
}

function DropdownCalendar()
{
    this.id = ctrlName.toString();
    dateControl = CreateCalendar(ctrlName);
    dropdownControl = CreateDropDown(ctrlName);
}

DropdownCalendar.prototype.ShowCalendar = function()
{
    dropdownControl.RenderSelectedDate();
    if(dateControl.selectedDate != dropdownControl.selectedDate)
    {
        dateControl.selectedDate = dropdownControl.selectedDate;
        dateControl.renderedMonth = dateControl.selectedDate.getMonth();
        dateControl.renderedYear = dateControl.selectedDate.getFullYear();        
    }
    dateControl.canShowCalendar=true;
    dateControl.ShowCalendar();
    dropdownControl.selectedDate = dateControl.selectedDate;
    dropdownControl.RenderSelectedDate();
    this.ClearDropdowns();
}

DropdownCalendar.prototype.ClearDropdowns = function()
{
    dropdownControl.ClearDropdown(dropdownControl.dateDropdownId,dropdownControl.dateDropdownId.options.length-1);
    dropdownControl.ClearDropdown(dropdownControl.monthDropdownId,dropdownControl.monthDropdownId.options.length-1);
    dropdownControl.ClearDropdown(dropdownControl.yearDropdownId,dropdownControl.yearDropdownId.options.length-1);
    dropdownControl.CreateCalendar();
}

DropdownCalendar.prototype.ChangeDropdownValues = function()
{
    dropdownControl.selectedDate = dateControl.selectedDate;
    dropdownControl.renderedMonth = dateControl.selectedDate.getMonth();
    dropdownControl.renderedYear = dateControl.selectedDate.getFullYear();        
    this.ClearDropdowns();
    dropdownControl.RenderSelectedDate();
}

DropdownCalendar.prototype.RenderSelectedDate = function()
{
    dropdownControl.RenderSelectedDate();
}

DropdownCalendar.prototype.OnChange = function()
{
    dropdownControl.OnChange();
}

DropdownCalendar.prototype.GetSelectedDate = function(controlId)
{
    dropdownControl = CreateDropDown(this.id);
    return dropdownControl.GetSelectedDate(controlId);
}

DropdownCalendar.prototype.SetSelectedDate = function(controlId,date)
{
    dropdownControl = CreateDropDown(this.id);
    dropdownControl.SetSelectedDate(controlId,date);
}

DropdownCalendar.prototype.SetDateRange = function(controlId,minDate,maxDate)
{
    dropdownControl = CreateDropDown(this.id);
    dropdownControl.SetDateRange(controlId,minDate,maxDate);
}

DropdownCalendar.prototype.FormatDate = function(year,month,date)
{
    dropdownControl = CreateDropDown(this.id);
    return dropdownControl.FormatDate(year,month,date);
}

DropdownCalendar.prototype.GetMaximumDate = function(controlId)
{
    dropdownControl = CreateDropDown(this.id);
    return dropdownControl.GetMaximumDate(controlId);
}