var g_arr_holiday = null;

/*
 * 달력출력
 */
function cal_showCalendar() {
	var cal = document.getElementById("calendar");
	var f = document.frm_cal;
	var str = "";
	//var arr_holiday = cal_getDefaultHoliday();
	var arr_holiday = g_arr_holiday;
	
	if (f.cYear.value == "" || f.cMonth.value == "") {
		// 초기 설정 년도, 달 설정 [start]
		var initYear = new Date().getFullYear();
		var initMonth = new Date().getMonth()+1;
		f.cYear.value = initYear;
		f.cMonth.value = initMonth;
		// 초기 설정 년도, 달 설정 [end]
	}
	
	
	var cYear = Number(f.cYear.value);
	var cMonth = Number(f.cMonth.value);
	var strMonth = cMonth;
	
	if (cMonth < 10) {
		strMonth = "0" + cMonth;
	}
	
	var today = new Date();
	var bweekday, bfirst, bend
	//1(일) - 7 (토) 각 달의 시작 요일을 구한다
	bweekday = new Date(cYear, cMonth-1, 1);
	
	bfirst = Number(bweekday.getDay()+1);
	
	//현재 달의 마지막 날을 구한다
	bend = bweekday;
	bend.setMonth(Number(cMonth))
	bend.setDate(0)
	bend = Number(bend.getDate());
	
	
	str = "";
	str += "<table class=\"main-calendar\">";
	str += "	<thead>";
	//str += "		<tr>"; 준:클래스 추가합니다.
	str += "		<tr class=\"main-calendar-nav\">";
	str += "			<td colspan=\"7\">";
	str += "				<a class=\"main-calendar-left\" href=\"#prevMonth\" alt=\"이전달\" ondblclick=\"cal_goMove(-1)\" onclick=\"cal_goMove(-1)\" /><img src=\"/img/main/calendar/cal_arr_left.png\" alt=\"\"/></a>";
	str += "				<span class=\"main-calendar-year\"><img src=\"/img/main/calendar/y_" + cYear + ".png\" alt=\"\"/></span>";
	str += "				<span class=\"main-calendar-month\"><img src=\"/img/main/calendar/m_" + strMonth + ".png\" alt=\"\"/></span>";
	str += "				<a class=\"main-calendar-right\" href=\"#nextMonth\" alt=\"다음달\" ondblclick=\"cal_goMove(1)\" onclick=\"cal_goMove(1)\" /><img src=\"/img/main/calendar/cal_arr_right.png\" alt=\"\"/></a>";
	str += "			</td>";
	str += "		</tr>";
	str += "		<tr class=\"main-calendar-hr\">";
	str += "			<td><img src=\"/img/main/calendar/w_s.png\" alt=\"일요일\"/></td>";
	str += "			<td><img src=\"/img/main/calendar/w_m.png\" alt=\"월요일\"/></td>";
	str += "			<td><img src=\"/img/main/calendar/w_t.png\" alt=\"화요일\"/></td>";
	str += "			<td><img src=\"/img/main/calendar/w_w.png\" alt=\"수요일\"/></td>";
	str += "			<td><img src=\"/img/main/calendar/w_t.png\" alt=\"목요일\"/></td>";
	str += "			<td><img src=\"/img/main/calendar/w_f.png\" alt=\"금요일\"/></td>";
	str += "			<td><img src=\"/img/main/calendar/w_s.png\" alt=\"토요일\"/></td>";
	str += "		</tr>";
	str += "		<tr>";
	str += "			<td colspan=\"7\" style=\"padding:0px;padding-top:3px;\"></td>";
	str += "		</tr>";
	str += "	</thead>";
	str += "	<tbody>";
	
	var bday;
	var strday;
	var weekCnt = 0;
	var dayImg = "";
	var dayTitle = "";
	for (var i=1;i<(bfirst+bend);i++) {
		if (i < bfirst) {
			bday = "";
		} else {
			bday = i - bfirst + 1;
		}
		
		if (bday < 10) {
			strday = "0" + bday;
		} else {
			strday = bday;
		}
		
		
		if (i > 1 && i-1 % 7 == 0) {
			str += "		<tr>";
		}
		
		// 토, 일, 공휴일 처리
		dayImg = "";
		dayTitle = "";
		if (cal_isHoliday(arr_holiday,cYear,cMonth,bday)) { // 공휴일 (휴관일)
			dayImg = "close_" + strday + ".png";
			dayTitle = cal_getHolidayName(arr_holiday,cYear,cMonth,bday);
		} else {
			if (i % 7 == 0) { // 토요일
				dayImg = "d_" + strday + ".png";
			} else if (i % 7 == 1) { // 일요일
				dayImg = "d_" + strday + ".png";
			} else {
				dayImg = "d_" + strday + ".png";
			}
		}
		
		// 오늘 처리
		if (today.getFullYear() == cYear && today.getMonth()+1 == cMonth && today.getDate() == bday) {
			dayImg = "ds_" + strday + ".png";
			dayTitle = "";
		}
		
		
		str += "			<td>";
		if (bday > 0) {
			str += "<a href=\"/groupreservapp/groupreservapp.do?_method=reservation_calendar&yyyy="+f.cYear.value+"&mm="+strMonth+"\">";
			str += "<img src=\"/img/main/calendar/" + dayImg + "\" width=\"18\" height=\"18\" alt=\"" + bday + "일\" title=\"" + dayTitle + "\"/>";
			str += "</a>";
		}
		str += "			</td>";
		
		if ((i > 1 && i % 7 == 0) || i == (bfirst+bend)-1) {
			str += "		</tr>";
			weekCnt++;
		}
	}
	
	/*
	// 출력할때 6줄이면 height 조절해줌 
	var cal_frame = document.getElementById("calendar_frame");
	
	if (weekCnt > 5) {
		cal_frame.style.height = "284px";
	} else {
		cal_frame.style.height = "262px";
	}
	*/
	
	str += "	</tbody>";
	str += "</table>";
	
	cal.innerHTML = str;
}

/*
 * 달력용 달 이동 함수
 */
function cal_goMove(inteval) {
	var f = document.frm_cal;
	var yyyy = Number(f.cYear.value);
	var m = Number(f.cMonth.value);
	var mp = m + inteval;
	
	
	if (mp > 12) {
		yyyy++;
		mp = mp - 12;
	}
	
	if (mp < 1) {
		yyyy--;
		mp = mp + 12;
	}
	
	if (yyyy < 2011 || yyyy > 2021) {
		alert("달력 범위를 벗어납니다. 달력은 2011년 ~ 2021년 까지만 조회가 가능 합니다.");
		return;
	}
	
	f.cYear.value = yyyy;
	f.cMonth.value = mp;
	
	cal_showCalendar();
}

/*
 * 달력용 공휴일 체크 함수
 */
function cal_isHoliday(arr_holiday,cYear,cMonth,cDay) {
	var rtn = false;
	
	if (arr_holiday != null) {
		for (var i=0;i<arr_holiday.length;i++) {
			if ((arr_holiday[i][0] == cYear || arr_holiday[i][0] == 0) && arr_holiday[i][1] == cMonth && arr_holiday[i][2] == cDay) {
				rtn = true;
				break;
			}	
		}
	}
	
	return rtn;
}

/*
 * 달력용 공휴일 네임출력 함수
 */
function cal_getHolidayName(arr_holiday,cYear,cMonth,cDay) {
	var rtn = "";
	
	for (var i=0;i<arr_holiday.length;i++) {
		if ((arr_holiday[i][0] == cYear || arr_holiday[i][0] == 0) && arr_holiday[i][1] == cMonth && arr_holiday[i][2] == cDay) {
			rtn = arr_holiday[i][3];
			break;
		}	
	}
	
	return rtn;
}

function cal_setHoliday(arr_holiday) {
	g_arr_holiday = arr_holiday;
}
/*
 * 달력용 기본 공휴일 셋트
 */
function cal_getDefaultHoliday() {
	var arr = new Array();
	var i = 0;
	arr[i++] = new Array(0,1,1,"신정");
	arr[i++] = new Array(0,3,1,"삼일절");
	arr[i++] = new Array(0,5,5,"어린이날");
	arr[i++] = new Array(0,6,6,"현충일");
	arr[i++] = new Array(0,7,17,"제헌절");
	arr[i++] = new Array(0,8,15,"광복절");
	arr[i++] = new Array(0,10,03,"개천절");
	arr[i++] = new Array(0,12,25,"크리스마스");
	
	//음력 공휴일 --> 매년 셋팅
	arr[i++] = new Array(2011,02,02,"설날 (첫째 날)");
	arr[i++] = new Array(2011,02,03,"설날 (당일)");
	arr[i++] = new Array(2011,02,04,"설날 (셋째 날)");
	arr[i++] = new Array(2011,05,10,"석가 탄신일");
	arr[i++] = new Array(2011,09,11,"추석 (첫째 날)");
	arr[i++] = new Array(2011,09,12,"추석 (당일)");
	arr[i++] = new Array(2011,09,13,"추석 (셋째 날)");
	arr[i++] = new Array(2012,01,22,"설날 (첫째 날)");
	arr[i++] = new Array(2012,01,23,"설날 (당일)");
	arr[i++] = new Array(2012,01,24,"설날 (셋째 날)");
	arr[i++] = new Array(2012,05,28,"석가 탄신일");
	arr[i++] = new Array(2012,09,29,"추석 (첫째 날)");
	arr[i++] = new Array(2012,09,30,"추석 (당일)");
	arr[i++] = new Array(2012,10,01,"추석 (셋째 날)");
	arr[i++] = new Array(2013,02,09,"설날 (첫째 날)");
	arr[i++] = new Array(2013,02,10,"설날 (당일)");
	arr[i++] = new Array(2013,02,11,"설날 (셋째 날)");
	arr[i++] = new Array(2013,05,17,"석가 탄신일");
	arr[i++] = new Array(2013,09,18,"추석 (첫째 날)");
	arr[i++] = new Array(2013,09,19,"추석 (당일)");
	arr[i++] = new Array(2013,09,20,"추석 (셋째 날)");
	arr[i++] = new Array(2014,01,30,"설날 (첫째 날)");
	arr[i++] = new Array(2014,01,31,"설날 (당일)");
	arr[i++] = new Array(2014,02,01,"설날 (셋째 날)");
	arr[i++] = new Array(2014,05,06,"석가 탄신일");
	arr[i++] = new Array(2014,09,07,"추석 (첫째 날)");
	arr[i++] = new Array(2014,09,08,"추석 (당일)");
	arr[i++] = new Array(2014,09,09,"추석 (셋째 날)");
	arr[i++] = new Array(2015,02,18,"설날 (첫째 날)");
	arr[i++] = new Array(2015,02,19,"설날 (당일)");
	arr[i++] = new Array(2015,02,20,"설날 (셋째 날)");
	arr[i++] = new Array(2015,05,25,"석가 탄신일");
	arr[i++] = new Array(2015,09,26,"추석 (첫째 날)");
	arr[i++] = new Array(2015,09,27,"추석 (당일)");
	arr[i++] = new Array(2015,09,28,"추석 (셋째 날)");
	arr[i++] = new Array(2016,02,07,"설날 (첫째 날)");
	arr[i++] = new Array(2016,02,08,"설날 (당일)");
	arr[i++] = new Array(2016,02,09,"설날 (셋째 날)");
	arr[i++] = new Array(2016,05,14,"석가 탄신일");
	arr[i++] = new Array(2016,09,14,"추석 (첫째 날)");
	arr[i++] = new Array(2016,09,15,"추석 (당일)");
	arr[i++] = new Array(2016,09,16,"추석 (셋째 날)");
	arr[i++] = new Array(2017,01,27,"설날 (첫째 날)");
	arr[i++] = new Array(2017,01,28,"설날 (당일)");
	arr[i++] = new Array(2017,01,29,"설날 (셋째 날)");
	arr[i++] = new Array(2017,05,03,"석가 탄신일");
	arr[i++] = new Array(2017,10,03,"추석 (첫째 날)");
	arr[i++] = new Array(2017,10,04,"추석 (당일)");
	arr[i++] = new Array(2017,10,05,"추석 (셋째 날)");
	arr[i++] = new Array(2018,02,15,"설날 (첫째 날)");
	arr[i++] = new Array(2018,02,16,"설날 (당일)");
	arr[i++] = new Array(2018,02,17,"설날 (셋째 날)");
	arr[i++] = new Array(2018,05,22,"석가 탄신일");
	arr[i++] = new Array(2018,09,23,"추석 (첫째 날)");
	arr[i++] = new Array(2018,09,24,"추석 (당일)");
	arr[i++] = new Array(2018,09,25,"추석 (셋째 날)");
	arr[i++] = new Array(2019,02,04,"설날 (첫째 날)");
	arr[i++] = new Array(2019,02,05,"설날 (당일)");
	arr[i++] = new Array(2019,02,06,"설날 (셋째 날)");
	arr[i++] = new Array(2019,05,12,"석가 탄신일");
	arr[i++] = new Array(2019,09,12,"추석 (첫째 날)");
	arr[i++] = new Array(2019,09,13,"추석 (당일)");
	arr[i++] = new Array(2019,09,14,"추석 (셋째 날)");
	arr[i++] = new Array(2020,01,24,"설날 (첫째 날)");
	arr[i++] = new Array(2020,01,25,"설날 (당일)");
	arr[i++] = new Array(2020,01,26,"설날 (셋째 날)");
	arr[i++] = new Array(2020,04,30,"석가 탄신일");
	arr[i++] = new Array(2020,09,30,"추석 (첫째 날)");
	arr[i++] = new Array(2020,10,01,"추석 (당일)");
	arr[i++] = new Array(2020,10,02,"추석 (셋째 날)");
	
	return arr;
}
