function DateAdd(interval,number,date){ // date 可以是时间对象也可以是字符串，如果是后者，形式必须为: yyyy-mm-dd hh:mm:ss 其中分隔符不定。"2006年12月29日 16点01分23秒" 也是合法的 
	number = parseInt(number); 
	if (typeof(date)=="string"){ 
		date = date.split(/\D/); 
		eval("var date = new Date("+date.join(",")+")"); 
	} 
	if (typeof(date)=="object"){ 
		var date = date 
	} 
	switch(interval){ 
	case "y": date.setFullYear(date.getFullYear()+number); break; 
	case "m": date.setMonth(date.getMonth()+number); break; 
	case "d": date.setDate(date.getDate()+number); break; 
	case "w": date.setDate(date.getDate()+7*number); break; 
	case "h": date.setHours(date.getHour()+number); break; 
	case "n": date.setMinutes(date.getMinutes()+number); break; 
	case "s": date.setSeconds(date.getSeconds()+number); break; 
	case "l": date.setMilliseconds(date.getMilliseconds()+number); break; 
	} 
	return date; 
} 

DateSelector = function (selYear, selMonth, selDay)
{
	this.selYear = selYear;
	this.selMonth = selMonth;
	this.selDay = selDay;
	this.selYear.Group = this;
	this.selMonth.Group = this;
	
    // 给年份、月份下拉菜单添加处理onchange事件的函数
    if(window.document.all != null) // IE
    {
        this.selYear.attachEvent("onchange", DateSelector.Onchange);
        this.selMonth.attachEvent("onchange", DateSelector.Onchange);
    }
    else // Firefox
    {
        this.selYear.addEventListener("change", DateSelector.Onchange, false);
        this.selMonth.addEventListener("change", DateSelector.Onchange, false);
    }
	
    if(arguments.length == 4){ // 如果传入参数个数为4，最后一个参数必须为Date对象
    	arguments[3] = DateAdd("d",-2,arguments[3]);
        this.InitSelector(arguments[3].getFullYear(), arguments[3].getMonth() + 1, arguments[3].getDate());}
    else if(arguments.length == 6) // 如果传入参数个数为6，最后三个参数必须为初始的年月日数值
        this.InitSelector(arguments[3], arguments[4], arguments[5]);
    else // 默认使用当前日期
    {    	
        var dt = new Date();
        this.InitSelector(dt.getFullYear(), dt.getMonth() + 1, dt.getDate());
    }
}

// 增加一个最大年份的属性
DateSelector.prototype.MinYear = (new Date()).getFullYear() - 10;
// 增加一个最大年份的属性
DateSelector.prototype.MaxYear = (new Date()).getFullYear();
// 初始化年份
DateSelector.prototype.InitYearSelect = function()
{
    // 循环添加OPION元素到年份select对象中
    for(var i = this.MaxYear; i >= this.MinYear; i--)
    {
        // 新建一个OPTION对象
        var op = window.document.createElement("OPTION");        
        // 设置OPTION对象的值
        op.value = i;        
        // 设置OPTION对象的内容
        op.innerHTML = i;        
       // if(i == 2008){ op.selected = true; }
        // 添加到年份select对象
        this.selYear.appendChild(op);
    }
}

// 初始化月份
DateSelector.prototype.InitMonthSelect = function()
{
    // 循环添加OPION元素到月份select对象中
    for(var i = 1; i < 13; i++)
    {
        // 新建一个OPTION对象
        var op = window.document.createElement("OPTION");        
        // 设置OPTION对象的值
        op.value = i;        
        // 设置OPTION对象的内容
        op.innerHTML = i;        
        // 添加到月份select对象
       // if(i == 12){ op.selected = true; }
        this.selMonth.appendChild(op);
    }
}

// 根据年份与月份获取当月的天数
DateSelector.DaysInMonth = function(year, month)
{
    var date = new Date(year, month, 0);
    return date.getDate();
}

// 初始化天数
DateSelector.prototype.InitDaySelect = function()
{
    // 使用parseInt函数获取当前的年份和月份
    var year = parseInt(this.selYear.value);
    var month = parseInt(this.selMonth.value);
    
    // 获取当月的天数
    var daysInMonth = DateSelector.DaysInMonth(year, month);
    
    // 清空原有的选项
    this.selDay.options.length = 0;
    // 循环添加OPION元素到天数select对象中
    for(var i = 1; i <= daysInMonth ; i++)
    {
        // 新建一个OPTION对象
        var op = window.document.createElement("OPTION");        
        // 设置OPTION对象的值
        op.value = i;        
        // 设置OPTION对象的内容
        op.innerHTML = i;        
        // 添加到天数select对象
      //  if(i == 17){ op.selected = true; }
        this.selDay.appendChild(op);
    }
}

// 处理年份和月份onchange事件的方法，它获取事件来源对象（即selYear或selMonth）
// 并调用它的Group对象（即DateSelector实例，请见构造函数）提供的InitDaySelect方法重新初始化天数
// 参数e为event对象
DateSelector.Onchange = function(e)
{
    var selector = window.document.all != null ? e.srcElement : e.target;
    selector.Group.InitDaySelect();
}

// 根据参数初始化下拉菜单选项
DateSelector.prototype.InitSelector = function(year, month, day)
{	
	//alert(year + '***' + month + '***' + day);
    // 由于外部是可以调用这个方法，因此我们在这里也要将selYear和selMonth的选项清空掉
    // 另外因为InitDaySelect方法已经有清空天数下拉菜单，因此这里就不用重复工作了
    this.selYear.options.length = 0;
    this.selMonth.options.length = 0;    
    // 初始化年、月
    this.InitYearSelect();
    this.InitMonthSelect();    
    // 设置年、月初始值   
    this.selYear.options[this.MaxYear - year].setAttribute("selected", "true");
    this.selMonth.options[month - 1].setAttribute("selected", "true");    
    //setTimeout(function(){ this.selYear.selectedIndex = this.MaxYear - year;  }, 0);
    //setTimeout(function(){ this.selMonth.selectedIndex = month - 1;  }, 0);
  //  this.selYear.selectedIndex = this.MaxYear - year;   
  //  this.selMonth.selectedIndex = month - 1;    
    // 初始化天数
    this.InitDaySelect(); 
    this.selDay.options[day -1].setAttribute("selected", "true");   
    // 设置天数初始值
    //setTimeout(function(){ this.selDay.selectedIndex = day - 1; }, 0);
    //this.selDay.selectedIndex = day -1;    
}