var DS_x,DS_y;

function dateSelector()  //构造dateSelector对象，用来实现一个日历形式的日期输入框。
{
  var myDate=new Date();
  this.year=myDate.getFullYear();  //定义year属性，年份，默认值为当前系统年份。
  this.month=myDate.getMonth()+1;  //定义month属性，月份，默认值为当前系统月份。
  this.date=myDate.getDate();  //定义date属性，日，默认值为当前系统的日。
  this.inputName='';  //定义inputName属性，即输入框的name，默认值为空。注意：在同一页中出现多个日期输入框，不能有重复的name！
  this.display=display;  //定义display方法，用来显示日期输入框。
  this.isreadonly="readonly";//定义编辑框只读属。
}

function display()  //定义dateSelector的display方法，它将实现一个日历形式的日期选择框。
{
  var week=new Array('日','一','二','三','四','五','六');
  document.write("<input class='input_title3' style='width:70' id='DS_"+this.inputName+"' name='"+this.inputName+"' value='"+this.year+"-"+this.month+"-"+this.date+"' onclick=this.nextSibling.style.display='block' "+this.isreadonly+">");
  document.write("");

  document.write("<div style='position:absolute;display:none;text-align:center;width:0px;height:0px;overflow:visible' onselectstart='return false;' id='DIV_"+this.inputName+"'>");
  document.write("  <div style='position:absolute;left:-60px;top:20px;width:142px;height:165px;background-color:#F6F6F6;border:1px solid #245B7D;' class=ds_font>");
  document.write("    <table cellpadding=0 cellspacing=1 width=140 height=20 bgcolor=#CEDAE7 onmousedown='DS_x=event.x-parentNode.style.pixelLeft;DS_y=event.y-parentNode.style.pixelTop;setCapture();' onmouseup='releaseCapture();' onmousemove='dsMove(this.parentNode)' style='cursor:hand;'>");
  document.write("      <tr align=center>");
  document.write("        <td width=12% onmouseover=this.className='ds_border' onmouseout=this.className='' onclick=subYear('"+this.inputName+"') title='减小年份'>&lt;&lt;</td>");
  document.write("        <td width=12% onmouseover=this.className='ds_border' onmouseout=this.className='' onclick=subMonth('"+this.inputName+"') title='减小月份'>&lt;</td>");
  document.write("        <td width=52%><b><span id='DY_"+this.inputName+"'>"+this.year+"</span>年<span id='DM_"+this.inputName+"'>"+this.month+"</span>月</b></td>");
  document.write("        <td width=12% onmouseover=this.className='ds_border' onmouseout=this.className='' onclick=addMonth('"+this.inputName+"') title='增加月份'>&gt;</td>");
  document.write("        <td width=12% onmouseover=this.className='ds_border' onmouseout=this.className='' onclick=addYear('"+this.inputName+"') title='增加年份'>&gt;&gt;</td>");
  document.write("      </tr>");
  document.write("    </table>");

  document.write("    <table cellpadding=0 cellspacing=0 width=140 height=20 onmousedown='DS_x=event.x-parentNode.style.pixelLeft;DS_y=event.y-parentNode.style.pixelTop;setCapture();' onmouseup='releaseCapture();' onmousemove='dsMove(this.parentNode)' style='cursor:hand;'>");
  document.write("      <tr align=center>");
  for(i=0;i<7;i++)
	document.write("      <td>"+week[i]+"</td>");
  document.write("      </tr>");
  document.write("    </table>");
  var gNum=0;
  document.write("    <table cellpadding=0 cellspacing=2 width=140 bgcolor=#EEEEEE id='TB_"+this.inputName+gNum+"' style='cursor:hand'>");
  for(i=0;i<6;i++)
  {
    document.write("    <tr align=center>");
	for(j=0;j<7;j++){
		gNum = i*7+j;
      document.write("    <td width=10% id='TD_"+this.inputName+gNum+"' height=16 onmouseover=if(this.innerText!=''&&this.className!='ds_border2')this.className='ds_border' onmouseout=if(this.className!='ds_border2')this.className='' onclick=\"getValue(this,$('DS_"+this.inputName+"'),'"+this.inputName+"')\"></td>");
	}
    document.write("    </tr>");
  }
  document.write("    </table>");

  document.write("    <span style=cursor:hand onclick=$('DIV_"+this.inputName+"').style.display='none'>【关闭】</span>");
  document.write("  </div>");
  document.write("</div>");
	//alert(this.inputName);
  dateShow(this.year,this.month,this.inputName)
}

function subYear(iname)  //减小年份
{
	var syear=$("DY_"+iname).innerHTML;
	syear--;
	$("DY_"+iname).innerHTML=syear;
	var month=parseInt($("DM_"+iname).innerHTML);
	dateShow(syear,month,iname)

}

function addYear(iname)  //增加年份
{
	var syear=$("DY_"+iname).innerHTML;
	syear++;
	$("DY_"+iname).innerHTML=syear;
	var month=parseInt($("DM_"+iname).innerHTML);
	dateShow(syear,month,iname)

}

function subMonth(iname)  //减小月份
{
	var month=$("DM_"+iname).innerHTML;
	month--;
	if(month==0){
		month=12;
		subYear(iname);
	}
	$("DM_"+iname).innerHTML=month;
	dateShow(parseInt($("DY_"+iname).innerHTML),month,iname)
}

function addMonth(iname)  //增加月份
{
	var month=$("DM_"+iname).innerHTML;
	month++;
	if(month==13){
		month=1;
		addYear(iname);
	}
	$("DM_"+iname).innerHTML=month;
	dateShow(parseInt($("DY_"+iname).innerHTML),month,iname)
}

function dateShow(year,month,idname)  //显示各月份的日
{
  var myDate=new Date(year,month-1,1);
  var today=new Date();
  var day=myDate.getDay();
  var length;

  switch(month)
  {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
      length=31;
      break;
    case 4:
    case 6:
    case 9:
    case 11:
      length=30;
      break;
    case 2:
      if((year%4==0)&&(year%100!=0)||(year%400==0))
        length=29;
      else
        length=28;
  }
  for(i=0;i<42;i++){
	  $("TD_"+idname+i).innerHTML='';
	  $("TD_"+idname+i).style.color='';
	  $("TD_"+idname+i).className='';
	  
  }
  var nn=0;
  var arrSD=$("DS_"+idname).value.split("-");
  for(i=0;i<length;i++){
		nn=i+day;
	   $("TD_"+idname+nn).innerHTML=(i+1);
    if(year==today.getFullYear()&&(month-1)==today.getMonth()&&(i+1)==today.getDate())
       $("TD_"+idname+nn).style.color='red';
    if(year==arrSD[0]&&month==arrSD[1]&&(i+1)==arrSD[2])
       $("TD_"+idname+nn).className='ds_border2';
  }

}

function getValue(obj,inputObj,idname)  //把选择的日期传给输入框
{

	inputObj.value=$("DY_"+idname).innerHTML+"-"+$("DM_"+idname).innerHTML+"-"+obj.innerHTML
	var istr=obj.id;
	for(i=0;i<42;i++){
		//alert(obj.id);
		if(istr=="TD_"+idname+i)
			$("TD_"+idname+i).className='ds_border2';  
		else
			$("TD_"+idname+i).className='';  
	}
	$("DIV_"+idname).style.display='none';
}

function dsMove(obj)  //实现层的拖移
{
	try{
		if(event.button==1){
			var X=obj.clientLeft;
			var Y=obj.clientTop;
			obj.style.pixelLeft=X+(event.x-DS_x);
			obj.style.pixelTop=Y+(event.y-DS_y);
		}
	}catch(e){
	}
}

function $(s){return document.getElementById(s);}
