
function DateSelector(selYear, selMonth, selDay, hdnValue)
{
	this.selYear = selYear;
    this.selMonth = selMonth;
    this.selDay = selDay;
    this.hdnValue = hdnValue;
    this.selYear.Group = this;
    this.selMonth.Group = this;
    this.selDay.Group = this;
    
    if(window.document.all != null) // IE
    {
        this.selYear.attachEvent("onchange", DateSelector.Onchange);
        this.selMonth.attachEvent("onchange", DateSelector.Onchange);
        this.selDay.attachEvent("onchange", DateSelector.OnDateChange);
    }
    else // Firefox
    {
        this.selYear.addEventListener("change", DateSelector.Onchange, false);
        this.selMonth.addEventListener("change", DateSelector.Onchange, false);
        this.selDay.addEventListener("change", DateSelector.OnDateChange, false);
    }
    
    if(arguments.length == 5)
		this.InitSelector(arguments[4].getFullYear(), arguments[4].getMonth() + 1, arguments[4].getDate());
    else if(arguments.length == 7)
        this.InitSelector(arguments[4], arguments[5], arguments[6]);
    else
    {
		if (hdnValue.value != "")
		{
			var str = hdnValue.value.split("-");
			this.InitSelector(parseInt(str[0], 10), parseInt(str[1], 10), parseInt(str[2], 10));
		}
		else
		{
			var dt = new Date();
			this.InitSelector(dt.getFullYear(), dt.getMonth() + 1, dt.getDate());
			
			hdnValue.value = dt.getFullYear() + "-" + (dt.getMonth() + 1) + "-" + dt.getDate();
        }
    }
}

DateSelector.prototype.MinYear = 1980;

DateSelector.prototype.MaxYear = ((new Date()).getFullYear()) + 1;

DateSelector.prototype.MinDate = null;

DateSelector.prototype.MaxDate = null;

//初始化年份
DateSelector.prototype.InitYearSelect = function()
{
    for(var i = this.MaxYear; i >= this.MinYear; i--)
    {
        var op = window.document.createElement("OPTION");
        op.value = i;
        
        op.innerHTML = i;
        
        this.selYear.appendChild(op);
    }
}

//初始化月份
DateSelector.prototype.InitMonthSelect = function()
{
    for(var i = 1; i < 13; i++)
    {
        var op = window.document.createElement("OPTION");
        
        
        op.value = i;
        
        
        op.innerHTML = i;
        
        
        this.selMonth.appendChild(op);
    }
}

//根據年月得到當月的天數
DateSelector.DaysInMonth = function(year, month)
{
    var date = new Date(year, month, 0);
    return date.getDate();
}


//初始化天數
DateSelector.prototype.InitDaySelect = function()
{
    
    var year = parseInt(this.selYear.value);
    var month = parseInt(this.selMonth.value);
    
    
    var daysInMonth = DateSelector.DaysInMonth(year, month);
    
    
    this.selDay.options.length = 0;
    
    for(var i = 1; i <= daysInMonth ; i++)
    {
        
        var op = window.document.createElement("OPTION");
        
        
        op.value = i;
        
        
        op.innerHTML = i;
        
        
        this.selDay.appendChild(op);
    }
}

DateSelector.prototype.SetDaySelect = function()
{
	this.hdnValue.value = this.selYear.value + "-" + this.selMonth.value + "-" + this.selDay.value;
}

//
//
//
DateSelector.Onchange = function(e)
{
    var selector = window.document.all != null ? e.srcElement : e.target;
    selector.Group.InitDaySelect();
    selector.Group.SetDaySelect();
}

DateSelector.OnDateChange = function(e)
{
    var selector = window.document.all != null ? e.srcElement : e.target;
    selector.Group.SetDaySelect();
}

DateSelector.prototype.InitSelector = function(year, month, day)
{
    if (this.selYear.options.length == 0)
    {
		this.InitYearSelect();
    }
    
    if (this.selMonth.options.length == 0)
    {
		this.InitMonthSelect();
    }

/*    
    this.selYear.selectedIndex = this.MaxYear - year;
    this.selMonth.selectedIndex = month - 1;
*/
	this.selYear.value = year
	this.selMonth.value = month;
    
    this.InitDaySelect();
    
    
    this.selDay.selectedIndex = day - 1;
    
    this.SetDaySelect();
}