// -------------------------------------------------------------------
// My カレンダー
// by Mamiko.S(http://www.nmt.ne.jp/~mamiko/) 2000.1.15
// このJavaScriptは営利を目的としない個人ホームページでの利用を前提として、
// 無料で提供しています。営利を目的としたサイトでご利用の場合は、
// 必ず mamiko@nmt.ne.jp へご連絡ください。
//
// +++ 履歴 +++
// 2001.10.31 開始日の日付セット方法を変更。年→月→日から、日→月→年にした。
// 2001. 3.21 ゴールデンウィークの日付指定を変更。
// -------------------------------------------------------------------

function calender(ayear, amonth, aday, backCol) {
	
	var day_end = daymonth(ayear,amonth);
	
	if(backCol == ""){
		var backCol1 = "Gold";	//カレンダーの背景色
		var backCol2 = "Gold";	//カレンダーの背景色
	}else{
		var backCol1 = backCol;	//カレンダーの背景色
		var backCol2 = backCol;	//カレンダーの背景色
	}

	var holiCol = "red";	//休日の文字の色
	var satCol = "blue";	//土曜の文字の色
	var fontSize = 2;		//文字のサイズ

	var weekStr = new Array("s","m","t","w","t","f","s");	//曜日の表示
	var monthStr = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");	//月の表示
	var holi_day = new Array(new Holiday(1,13), 
						new Holiday(2,11),
						new Holiday(3,21),
						new Holiday(4,29),
						new Holiday(5,3),
						new Holiday(5,4),
						new Holiday(5,5),
						new Holiday(7,21),
						new Holiday(9,15),
						new Holiday(9,23),
						new Holiday(10,13),
						new Holiday(11,3),
						new Holiday(11,24),
						new Holiday(12,23)
					);		//祝日の指定

	var i;

	var sdate = new Date();

	sdate.setDate(1);
	var amonth_ = amonth - 1;

	sdate.setMonth(amonth_);
	sdate.setFullYear(ayear);

	var wday = sdate.getDay();

	html = "<table border=0 bgcolor=" + backCol + " cellspacing=0 cellpadding=1>";
	html = html + "<tr>";
	html = html + "<td colspan='7'>" + ayear + "." + monthStr[amonth-1] + "</td>";
	html = html + "</tr>";
	html = html + "<tr>";
	html = html + "<td align='center'><font color='" + holiCol + "'>" + weekStr[0]+ "</font></td>";
	html = html + "<td align='center'>" + weekStr[1]+ "</td><td align='center'>" + weekStr[2] + "</td>";
	html = html + "<td align='center'>"+ weekStr[3]+ "</td><td align='center'>" + weekStr[4]+ "</td>";
	html = html + "<td align='center'>" + weekStr[5]+ "</td><td align='center'>" + weekStr[6]+ "</td>";
	html = html + "</tr>";

	var day = -wday +1;

	for(j=1; j<=6; j++){
		html = html + "<tr>";
		for(k=1; k<=7; k++){
			if( 1 <= day && day <= day_end ){
				if(day == aday){
					bgcol = "yellow";
				}else{
					bgcol = backCol2;
				}
				if( wday  == 0 ){
					fontcol = holiCol;
				}else if( wday  == 6 ) {
					fontcol = satCol;
				}else{
					fontcol = "black";
				}

				for( h=0; h < holi_day.length; h++ ){
					
					if( ( holi_day[h].Mon == amonth ) && ( holi_day[h].Day == day ) ){
						fontcol = holiCol;
					}
				}

				html = html + "<td align=center bgcolor="+ bgcol +">";
				html = html + "<font size=" + fontSize + " color=" + fontcol + ">" + day + "</font></td>";
				
				wday++;
			} else {
				html = html + "<td><font size=" + fontSize + ">　</font></td>";
			}
			day++;

		}
		html = html + "</tr>";
		wday = 0;
	}
	html = html + "</table>";

	return html;
}

//閏年を判別
function leapyear( year ) {
	return (year%4==0 && year%100!=0 || year%400==0);
}

//月の日数を求める
function daymonth( year, month ) {
	var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if( month==2 && leapyear(year)) return 29;
	return day[month-1];
}


//祭日をセット
function Holiday(mon, day){	//祭日
	this.Mon = mon;
	this.Day = day;

}

