$(function() {
	$.ajax({
		url: '/calendar/calendar.xml',
    	type: 'GET',
		async: true,
		cache: false,
    	dataType: 'xml',
    	timeout: 3000,
    	error: function(){
        	alert("xmlファイルの読み込みに失敗しました");
    	},
    	success: function(xml){
			var hol01 		= [];
			var hol02 		= [];
			var hol03 		= [];
			var comment		= "";
			var today 		= new Date();
			var thisMonth 	= today.getMonth();
			var flgFirst	= false;
			var flgMonth	= false;
			
			if(thisMonth >= 12) {
				thisMonth = 1;
			} else {
				thisMonth++;
			}
			
			$(xml).find("Comment").each(function(){
				comment = $(this).text();
			});
			var i = 0;
			var j = 0;
			
        	$(xml).find("Holiday").each(function(){
				if(!flgFirst) {
					$(this).find("Month").each(function() {								 
						if($(this).text() != thisMonth) {
							flgMonth = true;
						}
						flgFirst = true;
					});
				}
				
				$(this).find("Day").each(function() {
					if(i == 0) {
						hol01[j] = $(this).text();
					} else if(i == 1) {
						hol02[j] = $(this).text();
					} else if(i == 2) {
						hol03[j] = $(this).text();
					}
					j++;
				});	
				i++;
				j = 0;
			});
			
			$('div.calendar').html(createCalendar(comment, hol01, hol02, hol03, flgMonth));
    	}
		
    });

});

function createCalendar(com, hol1, hol2, hol3, flg) {
	today  		= new Date();
	year 		= today.getFullYear();
	month 		= today.getMonth();
	day 		= today.getDate();
	num			= 1; //表示する個数
	priority	= true;
	
	year2	= year;
	if(month + 1 >= 12) {
		month2 = 0;
	} else {
		month2 	= month + 1;	
	}
		
	var leap_year = false;
	if ((year % 4 == 0 && year % 100 != 0) || (year%400 == 0)) leap_year = true;
	lom = new Array(31,28+leap_year,31,30,31,30,31,31,30,31,30,31);
	dow = new Array("日","月","火","水","木","金","土");
	
	var days = 0;
	for (var i = 0; i < month; i++) days += lom[i];
	var week= Math.floor((year * 365.2425 + days) % 7);
	var j = 0;
	var when = year + "年 " + (month + 1) + "月";
	var calendar = "<table summary=\"" + when + "のカレンダー\">\n";
	calendar += "<tr><td colspan=\"7\" class=\"title\">" + when + "<\/td><\/tr>\n<tr class=\"weekday\">";
	for (i=0; i < 7; i++) {
		if(i == 0) {
			calendar+="<td class=\"sunHead\">" + dow[i]+"<\/td>";
		} else if(i == 6) {
			calendar+="<td class=\"satHead\">" + dow[i]+"<\/td>";
		} else {
			calendar+="<td class=\"head\">" + dow[i] + "<\/td>";
		}
	}
	calendar += "<\/tr>\n<tr>";
	
	for (i=0; i < week; i++,j++) calendar+="<td><\/td>";
	for (i=1; i <= lom[month]; i++) {
		calendar += "<td";
		if (day == i) {
			calendar += " class=\"today\"";
		} else {
			if(j == 0) {
				calendar += " class=\"sun\"";
			} else if(j == 6) {
				calendar += " class=\"sat\"";
			} else {
				if(!flg) {
					for(z = 0; z < hol1.length + 1;z++) {
						if(hol1[z] == i) {
							calendar += " class=\"hol\"";
						}
					}
				} else {
					for(z = 0; z < hol2.length + 1;z++) {
						if(hol2[z] == i) {
							calendar += " class=\"hol\"";
						}
					}				
				}
			}
		}
		calendar+=">" + i + "<\/td>";
		j++;
		if (j > 6) { 
			calendar += "<\/tr>\n<tr>";
			j = 0;
		}
	}
	
	for (i=j; i <= 6; i++) {
		calendar += "<td>&nbsp;<\/td>";
	}
	calendar += "<\/tr>\n<\/table>\n";
	calendar += "<p class=\"note\"><span class=\"tColor\"></span>: 今日<br><span class=\"hColor\"></span>: 休日</p>\n";
	
	//
	if(num == 2) {	
		var leap_year2 = false;
		if ((year2 % 4 == 0 && year2 % 100 != 0) || (year2 % 400 == 0)) leap_year2 = true;
		lom2 = new Array(31,28+leap_year2,31,30,31,30,31,31,30,31,30,31);
		
		var days2 = 0;
		for (var i = 0; i < month2; i++) days2 += lom2[i];
		var week2 = Math.floor((year2 * 365.2425 + days2) % 7);
		var j = 0;
		var when2 = year2 + "年 " + (month2 + 1) + "月";
		var calendar2 = "<table summary=\"" + when2 + "のカレンダー\">\n";
		calendar2 += "<tr><td colspan=\"7\" class=\"title\">" + when2 + "<\/td><\/tr>\n<tr class=\"weekday\">";
		for (i = 0; i < 7; i++) {
			if(i == 0) {
				calendar2 += "<td class=\"sunHead\">" + dow[i] + "<\/td>";
			} else if(i == 6) {
				calendar2 += "<td class=\"satHead\">" + dow[i] + "<\/td>";
			} else {
				calendar2 += "<td class=\"head\">" + dow[i] + "<\/td>";
			}
		}
		calendar2 += "<\/tr>\n<tr>";
		
		for (i=0; i < week2; i++,j++) calendar2+="<td><\/td>";
		for (i=1; i <= lom2[month2]; i++) {
			calendar2 += "<td";
			if(j == 0) {
				calendar2 += " class=\"sun\"";
			} else if(j == 6) {
				calendar2 += " class=\"sat\"";
			} else {
				if(!flg) {
					for(z = 0; z < hol2.length + 1;z++) {
						if(hol2[z] == i) {
							calendar2 += " class=\"hol\"";
						}
					}
				} else {
					for(z = 0; z < hol3.length + 1;z++) {
						if(hol3[z] == i) {
							calendar2 += " class=\"hol\"";
						}
					}	
				}
			}
			calendar2 += ">"+i+"<\/td>";
			j++;
			if (j > 6) { 
				calendar2 += "<\/tr>\n<tr>";
				j=0;
			}
		}
		
		for (i=j; i <= 6; i++) {
			calendar2 += "<td>&nbsp;<\/td>";
		}
		calendar2 += "<\/tr>\n<\/table>\n";
		calendar2 += "<p class=\"comment\">" + com + "</p>";
	}
	
	if(num == 2) {
		return calendar + calendar2;
	} else {
		return calendar;
	}
}


