//CSSのクラス名を指定してください
var classNames = new Array('holyday','xday','birthday');
	
//定休日などはここで設定します。
//holyday[ここに日にちを半角で] = X; Xにはクラスの配列番号を。
var holyday = new Object();
//下記の場合だと2006/9/18はclassNamesで指定されている0番目のクラスにするという意味
holyday["2011/1/1"] = 0;
holyday["2011/1/2"] = 0;
holyday["2011/1/3"] = 0;
holyday["2011/1/4"] = 0;
holyday["2011/1/5"] = 0;
holyday["2011/1/9"] = 0;
holyday["2011/1/10"] = 0;
holyday["2011/1/15"] = 0;
holyday["2011/1/16"] = 0;
holyday["2011/1/22"] = 0;
holyday["2011/1/23"] = 0;
holyday["2011/1/29"] = 0;
holyday["2011/1/30"] = 0;
holyday["2011/2/5"] = 0;
holyday["2011/2/6"] = 0;
holyday["2011/2/12"] = 0;
holyday["2011/2/13"] = 0;
holyday["2011/2/19"] = 0;
holyday["2011/2/20"] = 0;
holyday["2011/2/26"] = 0;
holyday["2011/2/27"] = 0;
holyday["2011/3/5"] = 0;
holyday["2011/3/6"] = 0;
holyday["2011/3/12"] = 0;
holyday["2011/3/13"] = 0;
holyday["2011/3/19"] = 0;
holyday["2011/3/20"] = 0;
holyday["2011/3/21"] = 0;
holyday["2011/3/26"] = 0;
holyday["2011/3/27"] = 0;
holyday["2011/4/2"] = 0;
holyday["2011/4/3"] = 0;
holyday["2011/4/9"] = 0;
holyday["2011/4/10"] = 0;
holyday["2011/4/16"] = 0;
holyday["2011/4/17"] = 0;
holyday["2011/4/23"] = 0;
holyday["2011/4/24"] = 0;
holyday["2011/4/29"] = 0;
holyday["2011/4/30"] = 0;
holyday["2011/5/1"] = 0;
holyday["2011/5/3"] = 0;
holyday["2011/5/4"] = 0;
holyday["2011/5/5"] = 0;
holyday["2011/5/7"] = 0;
holyday["2011/5/8"] = 0;
holyday["2011/5/14"] = 0;
holyday["2011/5/15"] = 0;
holyday["2011/5/28"] = 0;
holyday["2011/5/29"] = 0;
holyday["2011/6/4"] = 0;
holyday["2011/6/5"] = 0;
holyday["2011/6/11"] = 0;
holyday["2011/6/5"] = 0;
holyday["2011/6/12"] = 0;
holyday["2011/6/18"] = 0;
holyday["2011/6/19"] = 0;
holyday["2011/6/25"] = 0;
holyday["2011/6/26"] = 0;
holyday["2011/7/2"] = 0;
holyday["2011/7/3"] = 0;
holyday["2011/7/9"] = 0;
holyday["2011/7/10"] = 0;
holyday["2011/7/16"] = 0;
holyday["2011/7/17"] = 0;
holyday["2011/7/18"] = 0;
holyday["2011/7/23"] = 0;
holyday["2011/7/24"] = 0;
holyday["2011/7/30"] = 0;
holyday["2011/7/31"] = 0;
holyday["2011/8/6"] = 0;
holyday["2011/8/7"] = 0;
holyday["2011/8/13"] = 0;
holyday["2011/8/14"] = 0;
holyday["2011/8/20"] = 0;
holyday["2011/8/21"] = 0;
holyday["2011/8/27"] = 0;
holyday["2011/8/28"] = 0;
holyday["2011/9/3"] = 0;
holyday["2011/9/4"] = 0;
holyday["2011/9/10"] = 0;
holyday["2011/9/11"] = 0;
holyday["2011/9/17"] = 0;
holyday["2011/9/18"] = 0;
holyday["2011/9/19"] = 0;
holyday["2011/9/23"] = 0;
holyday["2011/9/24"] = 0;
holyday["2011/9/25"] = 0;
holyday["2011/10/1"] = 0;
holyday["2011/10/2"] = 0;
holyday["2011/10/8"] = 0;
holyday["2011/01/9"] = 0;
holyday["2011/10/10"] = 0;
holyday["2011/01/15"] = 0;
holyday["2011/01/16"] = 0;
holyday["2011/04/26"] = 0;
holyday["2011/04/26"] = 0;
holyday["2011/04/26"] = 0;
holyday["2011/04/26"] = 0;
holyday["2011/11/3"] = 0;
holyday["2011/11/5"] = 0;
holyday["2011/11/6"] = 0;
holyday["2011/11/12"] = 0;
holyday["2011/11/13"] = 0;
holyday["2011/11/19"] = 0;
holyday["2011/11/20"] = 0;
holyday["2011/11/23"] = 0;
holyday["2011/11/26"] = 0;
holyday["2011/11/27"] = 0;
holyday["2011/12/3"] = 0;
holyday["2011/12/4"] = 0;
holyday["2011/12/10"] = 0;
holyday["2011/12/11"] = 0;
holyday["2011/12/17"] = 0;
holyday["2011/12/18"] = 0;
holyday["2011/12/23"] = 0;
holyday["2011/12/24"] = 0;
holyday["2011/12/25"] = 0;
holyday["2011/12/29"] = 0;
holyday["2011/12/30"] = 0;
holyday["2011/12/31"] = 0;

holyday["2006/12/24"] = 1;
holyday["2006/6/9"] = 2;
var kabe_sun = "pink";
	
var today = new Date();
var cal_year = today.getYear();
var cal_month = today.getMonth() + 1;
var cal_day = today.getDate();
if (cal_year < 1900) cal_year += 1900;
document.write("<div id='calendar'></div>");
var cal = document.getElementById("calendar");
var defaultBackgroundColors = new Object();
var to_year = cal_year;
var to_month = cal_month;
var to_day = cal_day;
	
function tdOver(obj){
defaultBackgroundColors[obj] = obj.style.backgroundColor;
obj.style.backgroundColor = '#E8EEF9';
}
function tdOut(obj){
obj.style.backgroundColor = defaultBackgroundColors[obj];
}
function spanOver(obj){
defaultBackgroundColors[obj] = obj.style.backgroundColor;
obj.style.color = '#FF9900';
}
function spanOut(obj){
obj.style.color = defaultBackgroundColors[obj];
}
	
function currentCal(){
cal_year = to_year;
cal_month = to_month;
cal_day = to_day;
writeCal(cal_year,cal_month,cal_day);
}
function prevCal(){
cal_month -= 1;
if(cal_month < 1){
cal_month = 12;
cal_year -= 1;
}
writeCal(cal_year,cal_month,0);
}
function nextCal(){
cal_month += 1;
if(cal_month > 12){
cal_month = 1;
cal_year += 1;
}
writeCal(cal_year,cal_month,0);
}
function getWeek(year,month,day){
if (month == 1 || month == 2) {
year--;
month += 12;
}
var week = Math.floor(year + Math.floor(year/4) - Math.floor(year/100) + Math.floor(year/400) + Math.floor((13 * month + 8) / 5) + day) % 7;
return week;
}
function writeCal(year,month,day){
var calendars = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
var weeks = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var monthName = new Array('none','January','February','March','April','May','June','July','August','September','October','November','December');
		
var cal_flag = 0;
if(year % 100 == 0 || year % 4 != 0){
if(year % 400 != 0){
cal_flag = 0;
}
else{
cal_flag = 1;
}
}
else if(year % 4 == 0){
cal_flag = 1;
}
else{
cal_flag = 0;
}
calendars[2] += cal_flag;
		
var cal_start_day = getWeek(year,month,1);
var cal_tags = "<table border='0' cellspacing='0' cellpadding='0' class='calendar'>";
cal_tags += "<tr><th colspan='7'>";
cal_tags += "<span onMouseOver='spanOver(this);' onMouseOut='spanOut(this);' onClick='nextCal();'>▲</span>";
cal_tags += "<span onMouseOver='spanOver(this);' onMouseOut='spanOut(this);' onClick='currentCal();'>〓</span>";
cal_tags += "<span onMouseOver='spanOver(this);' onMouseOut='spanOut(this);' onClick='prevCal();'>▼</span>";
cal_tags += monthName[month] + " . " + year + "</th></tr>";
cal_tags += "<tr class='headline'>";
for(var i=0;i<weeks.length;i++){
cal_tags += "<td>" + weeks[i] + "</td>";
}
cal_tags += "</tr><tr>";
for(var i=0;i < cal_start_day;i++){
cal_tags += "<td>&nbsp;</td>";
}
		
//main
for(var cal_day_cnt = 1;cal_day_cnt <= calendars[month];cal_day_cnt++){
var cal_day_match = year + "/" + month + "/" + cal_day_cnt;
var dayClass = "";
			
if(holyday[cal_day_match] != undefined){
dayClass = ' class="'+classNames[holyday[cal_day_match]]+'"';
}
else if(cal_day_cnt == day){
dayClass = ' class="Today"';
}
else if(cal_start_day == 0){
dayClass = ' class="Sun"';
}
else if(cal_start_day == 6){
dayClass = ' class="Sat"';
}
cal_tags += "<td onMouseOver='tdOver(this);' onMouseOut='tdOut(this);'"+dayClass+">" + cal_day_cnt + "</td>";
if(cal_start_day == 6){
cal_tags += "</tr>";
if(cal_day_cnt < calendars[month]){
cal_tags += "<tr>";
}
cal_start_day = 0;
}
else{
cal_start_day++;
}
}
while(cal_start_day <= 6 && cal_start_day != 0){
cal_tags += "<td>&nbsp;</td>";
if(cal_start_day == 6){
cal_tags += "</tr>";
}
cal_start_day++;
}
cal_tags += "</table>";
cal.innerHTML = cal_tags;
}
writeCal(cal_year,cal_month,cal_day);

