function Calendar(){
 var len=Calendar.arguments.length
 if(len==2){
  this.month=Calendar.arguments[0]
  this.year=Calendar.arguments[1]
 }else{
  today=new Date()
  this.month=today.getMonth()
  this.year=today.getYear()
  }
 this.display=displayCalendar
}

function displayCalendar(){
 displayCalendarHeader(this.month,this.year)
 if(displayCalendar.arguments.length>0){
  var day=displayCalendar.arguments[0]-1
  displayDates(day,this.month,this.year,'true')
 }else displayDates(0,this.month,this.year,'false')
}

function displayCalendarHeader(month,year){
 var days=new Array("日","一","二","三","四","五","六")
 var months=new Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月")
 document.writeln("<tr><td align='center'><table border='0' cellspacing='0' cellpadding='0' width='100%' align='center' style='border-left:1px solid #efefef;border-top:1px solid #efefef;border-right:1px solid #efefef;'><tr bgcolor='#fbf8f1'><td colspan='7' class='tdCalendar' align='center'><b>")
 document.write(year+"年")
 document.writeln(months[month]+"</b></td></tr><tr><td colspan='7' bgcolor='#efefef'></td></tr>")
 document.writeln("<tr bgcolor='#fbf8f1' height='23'>")
 for(var i=0;i<days.length;++i)
   document.writeln("<td class='tdCalendar' align='center' width='13%'>"+days[i]+" </td>")
 document.writeln("</tr>")
 }

function displayDates(day,month,year,shade){
 d=new Date(year,month,1)
 var startDay=d.getDay()
 var numDays=numberOfDays(month,year)
 var numRows=Math.floor((numDays+startDay)/7)
 if((numDays+startDay)%7 >= 1) ++numRows
 var currentDate=0
 document.write("</table></td></tr><tr><td colspan='7' align='center'><table border='0' cellspacing='1' cellpadding='0' bgcolor='#efefef' width='100%'>")
 for (var i=0; i<numRows;++i){
  document.writeln("<tr bgcolor='#ffffff'>")
  for (var j=0;j<7;++j){
    if(((shade&&day)==currentDate) && ((i*7+j)>=startDay))
	 document.write("<td class='tdToday' align='center'>")
	else 
	 if(j==0 || j==6)
	  document.write("<td class='tdWend' align='center'>")
     else
	  document.write("<td class='tdDate' align='center'>")

	if(currentDate>=numDays) document.write("&nbsp;")
	else if(currentDate>0){
	 ++currentDate
	 writeDate(currentDate)
	}else if(i*7+j>=startDay){
	 ++currentDate
	 writeDate(currentDate)
	 }else document.write("&nbsp;")
	 document.writeln("</td>")
  } 
  document.writeln("</tr>")
  }
 document.write("</table></td></tr>")
 }
 function numberOfDays(month,year){
  var numDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31)
  n=numDays[month]
  if(month ==1 && year%4==0) ++n
  return n
 }
 function writeDate(n){
  document.write(n)
 }