﻿﻿// 숫자인지만 체크
function f_Number(str) {
       for (i=0; i< str.length; i++) {
	       ch = str.charAt(i);
	       if (ch < "0" || ch > "9") {
		       return false;
	       }
       }
       return true;
}
function convertLunaDate(lunaDate) {

	// 음력 데이터 (평달 - 작은달 :1,  큰달:2 )
	// (윤달이 있는 달 - 평달이 작고 윤달도 작으면 :3 , 평달이 작고 윤달이 크면 : 4)
	// (윤달이 있는 달 - 평달이 크고 윤달이 작으면 :5,  평달과 윤달이 모두 크면 : 6)
var kk = [[1, 2, 4, 1, 1, 2, 1, 2, 1, 2, 2, 1],   /* 1841 */
	 [2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1],
	 [2, 2, 2, 1, 2, 1, 4, 1, 2, 1, 2, 1],
	 [2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
	 [1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1],
	 [2, 1, 2, 1, 5, 2, 1, 2, 2, 1, 2, 1],
	 [2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],
	 [2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 2],
	 [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2],
	 [2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 5, 2],   /* 1851 */
	 [2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2],
	 [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],
	 [1, 2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2],
	 [1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1],
	 [2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
	 [1, 2, 1, 1, 5, 2, 1, 2, 1, 2, 2, 2],
	 [1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2],
	 [2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2],
	 [2, 1, 6, 1, 1, 2, 1, 1, 2, 1, 2, 2],
	 [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2],   /* 1861 */
	 [2, 1, 2, 1, 2, 2, 1, 2, 2, 3, 1, 2],
	 [1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2],
	 [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
	 [2, 1, 1, 2, 4, 1, 2, 2, 1, 2, 2, 1],
	 [2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2],
	 [1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2],
	 [1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 2, 1],
	 [2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 2, 2, 1, 2, 1, 2, 1, 1, 5, 2, 1],
	 [2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2],   /* 1871 */
	 [1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
	 [1, 1, 2, 1, 2, 4, 2, 1, 2, 2, 1, 2],
	 [1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1],
	 [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1],
	 [2, 2, 1, 1, 5, 1, 2, 1, 2, 2, 1, 2],
	 [2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2],
	 [2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 2, 4, 2, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2],
	 [1, 2, 1, 2, 1, 2, 5, 2, 2, 1, 2, 1],   /* 1881 */
	 [1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
	 [1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2],
	 [2, 1, 1, 2, 3, 2, 1, 2, 2, 1, 2, 2],
	 [2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
	 [2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
	 [2, 2, 1, 5, 2, 1, 1, 2, 1, 2, 1, 2],
	 [2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],
	 [1, 5, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2],
	 [1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],   /* 1891 */
	 [1, 1, 2, 1, 1, 5, 2, 2, 1, 2, 2, 2],
	 [1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2],
	 [1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
	 [2, 1, 2, 1, 5, 1, 2, 1, 2, 1, 2, 1],
	 [2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
	 [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1],
	 [2, 1, 5, 2, 2, 1, 2, 1, 2, 1, 2, 1],
	 [2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 2, 5, 2, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],   /* 1901 */
	 [2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2],
	 [1, 2, 1, 2, 3, 2, 1, 1, 2, 2, 1, 2],
	 [2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1],
	 [2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2],
	 [1, 2, 2, 4, 1, 2, 1, 2, 1, 2, 1, 2],
	 [1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1],
	 [2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
	 [1, 5, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],
	 [2, 1, 2, 1, 1, 5, 1, 2, 2, 1, 2, 2],   /* 1911 */
	 [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2],
	 [2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2],
	 [2, 2, 1, 2, 5, 1, 2, 1, 2, 1, 1, 2],
	 [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],
	 [1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1],
	 [2, 3, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1],
	 [2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 5, 2, 2, 1, 2, 2],
	 [1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2],
	 [2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2],   /* 1921 */
	 [2, 1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 2],
	 [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2],
	 [2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1],
	 [2, 1, 2, 5, 2, 1, 2, 2, 1, 2, 1, 2],
	 [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
	 [2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
	 [1, 5, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2],
	 [1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2],
	 [1, 2, 2, 1, 1, 5, 1, 2, 1, 2, 2, 1],
	 [2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1],   /* 1931 */
	 [2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2],
	 [1, 2, 2, 1, 6, 1, 2, 1, 2, 1, 1, 2],
	 [1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2],
	 [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
	 [2, 1, 4, 1, 2, 1, 2, 1, 2, 2, 2, 1],
	 [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1],
	 [2, 2, 1, 1, 2, 1, 4, 1, 2, 2, 1, 2],
	 [2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2],
	 [2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 2, 1, 2, 2, 4, 1, 1, 2, 1, 2, 1],   /* 1941 */
	 [2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2],
	 [1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2],
	 [1, 1, 2, 4, 1, 2, 1, 2, 2, 1, 2, 2],
	 [1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2],
	 [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2],
	 [2, 5, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
	 [2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
	 [2, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2],
	 [2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],   /* 1951 */
	 [1, 2, 1, 2, 4, 2, 1, 2, 1, 2, 1, 2],
	 [1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2],
	 [1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2],
	 [2, 1, 4, 1, 1, 2, 1, 2, 1, 2, 2, 2],
	 [1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
	 [2, 1, 2, 1, 2, 1, 1, 5, 2, 1, 2, 2],
	 [1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
	 [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1],
	 [2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2, 1],
	 [2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2],   /* 1961 */
	 [1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1],
	 [2, 1, 2, 3, 2, 1, 2, 1, 2, 2, 2, 1],
	 [2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2],
	 [1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1],
	 [2, 2, 5, 2, 1, 1, 2, 1, 1, 2, 2, 1],
	 [2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2],
	 [1, 2, 2, 1, 2, 1, 5, 2, 1, 2, 1, 2],
	 [1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1],
	 [2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
	 [1, 2, 1, 1, 5, 2, 1, 2, 2, 2, 1, 2],   /* 1971 */
	 [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],
	 [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1],
	 [2, 2, 1, 5, 1, 2, 1, 1, 2, 2, 1, 2],
	 [2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2],
	 [2, 2, 1, 2, 1, 2, 1, 5, 2, 1, 1, 2],
	 [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1],
	 [2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1],
	 [2, 1, 1, 2, 1, 6, 1, 2, 2, 1, 2, 1],
	 [2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
	 [1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2],   /* 1981 */
	 [2, 1, 2, 3, 2, 1, 1, 2, 2, 1, 2, 2],
	 [2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2],
	 [2, 1, 2, 2, 1, 1, 2, 1, 1, 5, 2, 2],
	 [1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2],
	 [1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1],
	 [2, 1, 2, 2, 1, 5, 2, 2, 1, 2, 1, 2],
	 [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
	 [2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
	 [1, 2, 1, 1, 5, 1, 2, 1, 2, 2, 2, 2],
	 [1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2],   /* 1991 */
	 [1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2],
	 [1, 2, 5, 2, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2],
	 [1, 2, 2, 1, 2, 2, 1, 5, 2, 1, 1, 2],
	 [1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
	 [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
	 [2, 1, 1, 2, 3, 2, 2, 1, 2, 2, 2, 1],
	 [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1],
	 [2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1],
	 [2, 2, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2],   /* 2001 */
	 [2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2],
	 [1, 5, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2],
	 [1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2],
	 [1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 2, 2],
	 [1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2],
	 [2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2],
	 [2, 2, 1, 1, 5, 1, 2, 1, 2, 1, 2, 2],
	 [2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
	 [2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1],   /* 2011 */
	 [2, 1, 6, 2, 1, 2, 1, 1, 2, 1, 2, 1],
	 [2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2],
	 [1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2],
	 [1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2],
	 [2, 1, 1, 2, 3, 2, 1, 2, 1, 2, 2, 2],
	 [1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2],
	 [2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2],
	 [2, 1, 2, 5, 2, 1, 1, 2, 1, 2, 1, 2],
	 [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1],   /* 2021 */
	 [2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2],
	 [1, 5, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1],
	 [2, 1, 2, 1, 1, 5, 2, 1, 2, 2, 2, 1],
	 [2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2],
	 [1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2],
	 [1, 2, 2, 1, 5, 1, 2, 1, 1, 2, 2, 1],
	 [2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2],
	 [1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1],
	 [2, 1, 5, 2, 1, 2, 2, 1, 2, 1, 2, 1],   /* 2031 */
	 [2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 5, 2, 2, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1],
	 [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2],
	 [2, 2, 1, 2, 1, 4, 1, 1, 2, 1, 2, 2],
	 [2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2],
	 [2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1],
	 [2, 2, 1, 2, 5, 2, 1, 2, 1, 2, 1, 1],
	 [2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1],
	 [2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2],   /* 2041 */
	 [1, 5, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2],
	 [1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2]];

	  var input_day = lunaDate;

	var md = new Array(31,0,31,30,31,30,31,31,30,31,30,31);

	var year =input_day.substring(0,4);
	var month =input_day.substring(4,6);
	var day =input_day.substring(6,8);
	   // 음력에서 양력으로 변환
	   var lyear, lmonth, lday, leapyes;
	   var syear, smonth, sday;
	   var mm, y1, y2, m1;
	   var i, j, k1, k2, leap, w;
	   var td, y;
	   lyear = get_year(year);        // 년도 check
	   lmonth = get_month(month);     // 월 check

	   y1 = lyear - 1841;
	   m1 = lmonth - 1;
	   leapyes = 0;
	   if (kk[y1][m1] > 2)  {
		   switch (kk[y1][m1]) {
			   case 1:
			   case 3:
			   case 4:
				   mm = 29;
				   break;
			   case 2:
			   case 5:
			   case 6:
				   mm = 30;
				   break;
		    }
	   }

	  lday = get_day(day, mm);

	  td = 0;
	  for (i=0; i<y1; i++) {
		   for (j=0; j<12; j++) {
			       switch (kk[i][j]) {
				       case 1:
					       td = td + 29;
					       break;
				       case 2:
					       td = td + 30;
					       break;
				       case 3:
					       td = td + 58;    // 29+29
					       break;
				       case 4:
					       td = td + 59;    // 29+30
					       break;
				       case 5:
					       td = td + 59;    // 30+29
					       break;
				       case 6:
					       td = td + 60;    // 30+30
					       break;
			       }
		   }
	}
	for (j=0; j<m1; j++) {
	       switch (kk[y1][j]) {
		       case 1:
			       td = td + 29;
			       break;
		       case 2:
			       td = td + 30;
			       break;
		       case 3:
			       td = td + 58;    // 29+29
			       break;
		       case 4:
			       td = td + 59;    // 29+30
			       break;
		       case 5:
			       td = td + 59;    // 30+29
			       break;
		       case 6:
			       td = td + 60;    // 30+30
			       break;
	       }
	 }
	 if (leapyes == 1) {
	       switch(kk[y1][m1]) {
		       case 3:
		       case 4:
			       td = td + 29;
			       break;
		       case 5:
		       case 6:
			       td = td + 30;
			       break;
		}
	 }
	 td =  td + parseFloat(lday) + 22;
	 // td : 1841 년 1 월 1 일 부터 원하는 날짜까지의 전체 날수의 합
	 y1 = 1840;
	 do {
	       y1 = y1 +1;
	       if  ((y1 % 400 == 0) || ((y1 % 100 != 0) && (y1 % 4 == 0))) {
		       y2 = 366;
	       }
	       else {
		       y2 = 365;
	       }
	       if (td <= y2) {
		       break;
	       }
	       else {
		       td = td- y2;
	       }
	} while(1);
	   syear = y1;
	   md[1] = parseInt(y2) -337;
	   m1 = 0;
	   do {
	       m1= m1 + 1;
	       if (td <= md[m1-1]) {
		   break;
	       }
	       else {
		   td = td - md[m1-1];
	       }
	  } while(1);
	  smonth = parseInt(m1);
	  sday = parseInt(td);
	  y = parseInt(syear -1);
	  td = y * 365 + y/4 - y/100 +  y/400;
	  for ( i=0; i<smonth-1; i++) {
	       td = td + md[i];
	  }
	  w = td % 7;
	  k1 = (parseInt(lyear) + 6) % 10;
	  k2 =(parseInt(lyear) + 8) % 12;
	  if(smonth < 10){
		  smonth = "0"+smonth;
	  }
	  if(sday < 10){
		  sday = "0"+sday;
	  }
	  //console.log(lunaDate+" => 양력 휴일 변환: "+smonth+"월"+sday+"일");
	  return smonth+""+sday;
}
function get_year(src) {
	if ((src < 1841) || (src > 2043 )) {
	   alert('연도 범위는 1841 ~ 2043 까지입니다.');
	   document.frmTest.input_day.focus();
	}
	else
	   return src;
}
function get_month(src) {
	if ((src < 1) || (src > 12 )) {
	    alert('월 범위는 1 ~ 12 까지입니다.');
	    document.frmTest.input_day.focus();
	}
	else
	    return src;
}
function get_day(src,day) {
	if ((src < 1) || (src > day )) {
	    alert('일 범위가 틀립니다.');
	    document.frmTest.input_day.focus();
	}
	else
	    return src;
}
function febdays(src) {
	if ((src%4 !=0) || ((src%100 == 0) && (src%400 !=0))) {
		    return 28;          // 윤년이 아님
	}
}


// get day index to string
var days = ['SUN', 'MON', 'TUE', 'WEN', 'THU', 'FRI', 'SAT'];
function dayToString(day) {
	return days[day];
}

var holidayMetaData = {
	"SOLAR" : {
		"0101":{title:"신정", dateType:"SOLAR"},
		"0301":{title:"삼일절", dateType:"SOLAR"},
		"0505":{title:"어린이날", dateType:"SOLAR"},
		"0606":{title:"현충일", dateType:"SOLAR"},
		"0815":{title:"광복절", dateType:"SOLAR"},
		"1003":{title:"개천절", dateType:"SOLAR"},
		"1009":{title:"한글날", dateType:"SOLAR"},
		"1225":{title:"크리스마스", dateType:"SOLAR"},
	},
	"LUNA" : {
		"0101":{title:"설날", dateType:"LUNA", longHoliday: true},
		"0815":{title:"추석", dateType:"LUNA", longHoliday: true},
		"0408":{title:"석가탄신일", dateType:"LUNA"},
	}
};
var holiday = {};

function yyyyMMddToDate(date_str) {
    var yyyyMMdd = String(date_str);
    var sYear = yyyyMMdd.substring(0,4);
    var sMonth = yyyyMMdd.substring(4,6);
    var sDate = yyyyMMdd.substring(6,8);

    return new Date(Number(sYear), Number(sMonth)-1, Number(sDate));
}

function pushHoliday(year, title, date, dateType, holidayType) {
	if(holiday[year] == undefined) holiday[year] = [];
	
	holiday[year].push({
		title : title,
		date : date,
		dateType : dateType,
		holidayType : holidayType
	});
}

function initHoliday(holidayMetaData) {
	var now = new Date();
	var nowYear = now.getFullYear();
	
	var loop = 1;
	
	while(loop >= 0) {

		for(calendarType in holidayMetaData) {
			for(key in holidayMetaData[calendarType]) {
				
				var theDay = calendarType == "SOLAR" ? yyyyMMddToDate(nowYear + key) : yyyyMMddToDate(nowYear + convertLunaDate(nowYear + key));
				
				pushHoliday(nowYear, holidayMetaData[calendarType][key].title, theDay, holidayMetaData[calendarType][key].dateType, "HOLIDAY");

				if(holidayMetaData[calendarType][key].longHoliday) { // 연휴는 앞, 뒤로 하루씩 추가
					var longHolidayStart = new Date(theDay.getTime());
					longHolidayStart.setDate(longHolidayStart.getDate() - 1);
					pushHoliday(nowYear, holidayMetaData[calendarType][key].title, longHolidayStart, holidayMetaData[calendarType][key].dateType, "HOLIDAY");
					
					var longHolidayEnd = new Date(theDay.getTime());
					longHolidayEnd.setDate(longHolidayEnd.getDate() + 1);
					pushHoliday(nowYear, holidayMetaData[calendarType][key].title, longHolidayEnd, holidayMetaData[calendarType][key].dateType, "HOLIDAY");

					// 전날
					var theDayBeforeHoliday = new Date(longHolidayStart.getTime());
					theDayBeforeHoliday.setDate(theDayBeforeHoliday.getDate() - 1);
					pushHoliday(nowYear, holidayMetaData[calendarType][key].title + " 전날", theDayBeforeHoliday, holidayMetaData[calendarType][key].dateType, "THE_DAY_BEFORE_HOLIDAY");
				} else {
					var theDayBeforeHoliday = new Date(theDay.getTime());
					theDayBeforeHoliday.setDate(theDayBeforeHoliday.getDate() - 1);
					pushHoliday(nowYear, holidayMetaData[calendarType][key].title + " 전날", theDayBeforeHoliday, holidayMetaData[calendarType][key].dateType, "THE_DAY_BEFORE_HOLIDAY");
				}
				
			}
		}

		nowYear++;
		loop--;
	}
	return holiday;	
}