//说明：显示并可选择日期的层
//1、<script language="JavaScript" src="calendar.js"><//script>
//2、<body onLoad="Defaults()" onmousedown=showCal() topmargin="0" leftmargin="0">
// 3、 <div id=calFace></div>
//<4、input name="text1" class=calendar>
var Selected_Month;
var Selected_Year;
var Current_Date = new Date();
var Current_Month = Current_Date.getMonth();
var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Month_Label = new Array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');
var Current_Year = Current_Date.getYear();
var Today = Current_Date.getDate();
var idtxt;
function Header(Year, Month) {
   if (Month == 1) {
      if ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 != 0))) {
         Days_in_Month[1] = 29;
      }
   }
   var Header_String = Year + '年' + Month_Label[Month];
   return Header_String;
}
function Make_Calendar(Year, Month) {
   var First_Date = new Date(Year, Month, 1);
   var Heading = Header(Year, Month);
   var First_Day = First_Date.getDay() + 1;
   if (((Days_in_Month[Month] == 31) && (First_Day >= 6)) ||
       ((Days_in_Month[Month] == 30) && (First_Day == 7))) {
      var Rows = 6;
   }
   else if ((Days_in_Month[Month] == 28) && (First_Day == 1)) {
      var Rows = 4;
   }
   else {
      var Rows = 5;
   }
   var HTML_String="";  
   var Day_Counter = 1;
   var Loop_Counter = 1;
   for (var j = 1; j <= Rows; j++) {      
      for (var i = 1; i < 8; i++) {
         if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month])) {
            if ((Day_Counter == Today) && (Year == Current_Year) && (Month == Current_Month)) {
               HTML_String += '<input class=cal1 value="' + Day_Counter + '" readonly onClick="fildate('+Day_Counter+');calClose()">';
            }
            else {
               HTML_String += '<input class=cal2 value="' + Day_Counter + '" readonly onClick="fildate('+Day_Counter+');calClose()">';
            }
            Day_Counter++;    
         }
         else {
            HTML_String += '<input class=cal2 readonly>';
         }
         Loop_Counter++;
      }
      HTML_String += '<br>';
   }   
   Calendar.innerHTML = HTML_String;
   weekList.innerHTML = '<input name="Input" class="cal0" value="日" readonly><input name="Input" class="cal0" value="1" readonly><input name="Input" class="cal0" value="2" readonly><input name="Input" class="cal0" value="3" readonly><input name="Input" class="cal0" value="4" readonly><input name="Input" class="cal0" value="5" readonly><input name="Input" class="cal0" value="6" readonly>' 
}
function Check_Nums() {
   if ((event.keyCode < 48) || (event.keyCode > 57)) {
      return false;
   }
}
function On_Year() {
   var Year = year.value;
   if (Year.length == 4) {
      Selected_Month = month.selectedIndex;
      Selected_Year = Year;
      Make_Calendar(Selected_Year, Selected_Month);
   }
}
function On_Month() {
   var Year = year.value;
   if (Year.length == 4) {
      Selected_Month = month.selectedIndex;
      Selected_Year = Year;
      Make_Calendar(Selected_Year, Selected_Month);
   }
   else {
      alert('Please enter a valid year.');
      year.focus();
   }
}
function Defaults() {
   if (!document.all)
   return 
   Calendar_frame()  
   month_str = '<input name="year" id="year2" type="text" class="slim" style="height:20; text-align: center" onKeyPress="return Check_Nums()" onKeyUp="On_Year()" size=4 maxlength=4><select name="month" id="select" class="slim" onChange="On_Month()">';
    month_str += '<option>&nbsp;1月</option><option>&nbsp;2月</option><option>&nbsp;3月</option><option>&nbsp;4月</option><option>&nbsp;5月</option><option>&nbsp;6月</option><option>&nbsp;7月</option><option>&nbsp;8月</option><option>&nbsp;9月</option><option>10月</option><option>11月</option><option>12月</option>';
    month_str += '</select>&nbsp;<input name="Input" class="cal1" value="×"  style="font-weight: bold;text-valign: center" readonly onclick="calClose()">';
   monthList.innerHTML = month_str;   
   month.selectedIndex = Current_Month;
   year.value = Current_Year;
   Selected_Month = Current_Month;
   Selected_Year = Current_Year;
   
   Make_Calendar(Current_Year, Current_Month);
}
function Calendar_frame() {	
    frame_Html = '<table width="120" align="center" border="1" cellpadding="1" cellspacing="1" bordercolorlight="#000000" bordercolordark="#FFFFFF" bgcolor="#EEEEEE">';
    frame_Html += '<tr><td><div id=monthList></div></td></tr><tr><td><div id=weekList></div></td></tr><tr><td><div id=Calendar></div></td></tr></table>';
	calFace.innerHTML = frame_Html;
	calFace.style.position="absolute";
	calFace.style.display="none"
}
function Skip(Direction) {
   if (Direction == '+') {
      if (Selected_Month == 11) {
         Selected_Month = 0;
         Selected_Year++;
      }
      else {
         Selected_Month++;
      }
   }
   else {
      if (Selected_Month == 0) {
         Selected_Month = 11;
         Selected_Year--;
      }
      else {
         Selected_Month--;
      }
   }
   Make_Calendar(Selected_Year, Selected_Month);
   month.selectedIndex = Selected_Month;
   year.value = Selected_Year;
}
function showCal() {
if (event.srcElement.className=="calendar"){
	idtxt=event.srcElement
	calFace.style.top = window.event.y + 10;
	calFace.style.left = window.event.x - 50;
	calFace.style.display="" }
else if (event.srcElement.className=="slim"||event.srcElement.className=="cal1"||event.srcElement.className=="cal2"){}	
else { calClose()}
}
function fildate(selDay){ idtxt.value=Selected_Year+"-"+(Selected_Month+1)+"-"+selDay;}
function calClose() { calFace.style.display="none" }
//document.onmousedown=showCal()
//document.onLoad=Defaults()