var IE = document.all?true:false; 

var dateObjectName	= "";
var calSelectYear	= "";
var calSelectMonth	= "";
var calSelectDay	= "";
var calMoveYear		= "";
var calMoveMonth	= "";
var calMoveDay		= "";

function showCalendarRange(e) {
	var obj1 = document.getElementById("calen0");
	var obj2 = document.getElementById("calen1");

	 if (navigator.appName == "Microsoft Internet Explorer") {
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;

		if ((document.body.clientWidth - 260) < tempX) tempX -= 260 - 50;
		if ((document.body.clientHeight - calen0.clientHeight) < tempY) tempY -= (calen0.clientHeight + 20);
	}
	else {
		tempX = e.pageX;
		tempY = e.pageY;

		//alert(document.body.scrollWidth);
		if ((document.body.scrollWidth - 260) < tempX) tempX -= 260 - 50;
		if ((document.body.scrollHeight - 200) < tempY) tempY -= (200 + 20);
	}   

	if (tempX < 0){tempX = 0;}
	if (tempY < 0){tempY = 0;}

	obj1.style.visibility = "visible";
	obj1.style.display= "block";
	obj1.style.left = tempX; 
	obj1.style.top = tempY; 
	obj2.style.visibility = "visible";
	obj2.style.display= "block";
	obj2.style.left = tempX; 
	obj2.style.top = tempY;

	try {
		setFrameSize();
	}
	catch(e) {}
}

function cal_show(tmpYear, tmpMon, tmpDay, name, e) {
	dateObjectName = name;
	if (tmpYear < 1900) tmpYear += 1900;

	calMoveYear		= calSelectYear		= tmpYear;
	calMoveMonth	= calSelectMonth	= tmpMon;
	calMoveDay		= calSelectDay		= tmpDay;

	showCalendarRange(e);
	showCalendar(tmpDay,tmpMon,tmpYear);

	return true; 
}

function  cal_close() {
	var obj1 = document.getElementById("calen0");
	var obj2 = document.getElementById("calen1");

	obj1.style.visibility	= "hidden";
	obj1.style.display		= "none";
	obj2.style.visibility	= "hidden";
	obj2.style.display		= "none";
}

function setDate(year,month,day) {
	var sYear	= ''+year;
	var sMonth	= parseInt(month)+1;
	sMonth		= ''+sMonth;
	var sDay	= ''+day;		

	var selectDate	= "";
	var curDate		= "";
	var result		= "";

	var tempDate=new Date;
	var tmpYear=tempDate.getYear();		//오늘 날짜 연도
	var tmpMonth=tempDate.getMonth()+1;		//오늘 날짜 월
	tmpMonth = tmpMonth + '';
	var tmpDay=tempDate.getDate()+'';		//오늘 날짜 일

	if (tmpYear < 1900) tmpYear += 1900;

	// 월이 한자리이면 앞에 0 추가 
	if (sMonth.length == 1) {
		sMonth = "0" + sMonth;
	} 

	// 일자가 한자리이면 앞에 0 추가 
	if (sDay.length == 1) {
		sDay = "0" + sDay;
	}

	selectDate = sYear + sMonth + sDay;
	
	// 월이 한자리이면 앞에 0 추가 
	if (tmpMonth.length == 1) {
		tmpMonth = "0" + tmpMonth;
	} 

	// 일자가 한자리이면 앞에 0 추가 
	if (tmpDay.length == 1) {
		tmpDay = "0" + tmpDay;
	}

	curDate = tmpYear + '' + tmpMonth + '' + tmpDay;
	if (calendarViewType != "9") {
		if (selectDate < curDate) {
			alert("오늘날짜 이전으로는 선택하실 수 없습니다.");

			return;
		} // end of if (현재 날짜보다 과거 선책)
	}

	result = sYear + sMonth + sDay;

	if (!setResultDate(dateObjectName, result)) return;

	cal_close();

	return result;
}

function moveCalendar(value)
{
	var year, month, day;
	var chkDate;
	var tmp;

	year	= parseInt(calMoveYear	, 10);
	month	= parseInt(calMoveMonth	, 10);
	day		= parseInt(calMoveDay	, 10);

	tmp		= month + value;
	chkDate = new Date(year, month + value, day);

	// 10/31 -> 11월 이동이 11/31일이 없는 경우에 대한 처리 by 20081030 lhw
	if (tmp == 12) tmp = 0;
	if (tmp == -1) tmp = 11;
	while (tmp != chkDate.getMonth()) {
		year	= chkDate.getYear();
		if (year < 1900) year += 1900;
		chkDate = new Date(year, chkDate.getMonth(), chkDate.getDate() + (tmp > chkDate.getMonth() ? 1 : -1) * 1);
	}

	year	= chkDate.getYear();
	month	= chkDate.getMonth();
	day		= chkDate.getDate();

	if (year < 1900) year += 1900;

	calMoveYear		= year;
	calMoveMonth	= month;
	calMoveDay		= day;

	showCalendar(day,month,year);
}

/******************************************************************************
 *
 * 외부 호출 함수
 *
 ******************************************************************************/

///////////////////////////////////////
// 날자 명칭 표기
function getDateName(value) {
	var result = "";

	if (value.length == 6) {
		if (defineLang == "ko") {
			result = value.substring(0,4) + "년 " + value.substring(4,6) + "월";
		}
		else if (defineLang == "en") {
			result = value.substring(0,4) + "year " + value.substring(4,6) + "month";
		}
		else {
			result = value.substring(0,4) + "年 " + value.substring(4,6) + "月";
		}
	}
	else if (value.length == 8) {
		if (defineLang == "ko") {
			result = value.substring(0,4) + "년 " + value.substring(4,6) + "월 " + value.substring(6,8) + "일";
		}
		else if (defineLang == "en") {
			result = value.substring(0,4) + "year " + value.substring(4,6) + "month " + value.substring(6,8) + "day";
		}
		else {
			result = value.substring(0,4) + "年 " + value.substring(4,6) + "月 " + value.substring(6,8) + "日";
		}
	}

	return result;
}

///////////////////////////////////////
// 선택박스형 년월 초기화
function setMonthList(name, depDate) {
	var f		= document.frm;
	var minDate	= defineBgnDate;
	var maxDate	= defineEndDate;
	var date1	= document.getElementsByName(name+"Date1")[0];
	var date2	= document.getElementsByName(name+"Date2")[0];

	var date	= new Date(parseInt(minDate.substring(0,4),10), parseInt(minDate.substring(4,6),10)-1, 1);
	var year	= date.getYear();
	var mon		= ""+(date.getMonth()+1);

	if (year < 1900) year += 1900;
	if (mon.length == 1) mon = "0" + mon;

	var tmpDate	= year+mon;
	clearCalendarSelectItem(date1);
	//date1.length = 0;
	while (parseInt(maxDate.substring(0,6)) >= parseInt(tmpDate)) {
		addCalendarSelectItem(date1, tmpDate, getDateName(tmpDate));
		//date1.length = date1.length+1;
		//date1[date1.length-1].value	= tmpDate;
		//date1[date1.length-1].text = getDateName(tmpDate);

		date = new Date(year, parseInt(mon,10), 1)
		year	= date.getYear();
		mon		= ""+(date.getMonth()+1);

		if (year < 1900) year += 1900;
		if (mon.length == 1) mon = "0" + mon;
		tmpDate	= year+mon;
	}

	if (depDate != null && depDate.length == 8) {
		date1.value = depDate.substring(0,6);
		if (date1.selectedIndex < 0) date1.selectedIndex = 0;
	}

	changeMonth(name, depDate);
}

///////////////////////////////////////
// 선택박스형 년월 변경시 일 표기
function changeMonth(name, depDate) {
	var f		= document.frm;
	var minDate	= defineBgnDate;
	var maxDate	= defineEndDate;
	var date1	= document.getElementsByName(name+"Date1")[0];
	var date2	= document.getElementsByName(name+"Date2")[0];
	var bgnDay	= null;
	var endDay	= null;
	var lastDay	= new Date(parseInt(date1[date1.selectedIndex].value.substring(0,4),10), parseInt(date1[date1.selectedIndex].value.substring(4,6),10), 0);
	var selDay	= date2.length == 0 ? minDate.substring(6,8) : (date2.selectedIndex < 0 ? date2[0].value : date2[date2.selectedIndex].value);

	if (minDate.substring(0,6) == date1[date1.selectedIndex].value) {
		bgnDay	= parseInt(minDate.substring(6,8), 10);
		endDay	= lastDay.getDate();
	}
	else if (maxDate.substring(0,6) == date1[date1.selectedIndex].value) {
		bgnDay	= 1;
		endDay	= parseInt(maxDate.substring(6,8), 10);
	}
	else {
		bgnDay	= 1;
		endDay	= lastDay.getDate();
	}

	clearCalendarSelectItem(date2);
	//date2.length = 0;
	for (var i=parseInt(bgnDay); i<=parseInt(endDay); i++) {
		var tmp = i;
		if (tmp<10) tmp = "0" + i;

		addCalendarSelectItem(date2, tmp, tmp+"일");
		//date2.length = date2.length+1;
		//date2[date2.length-1].value	= tmp;
		//date2[date2.length-1].text	= tmp + "일";
	}

	if (depDate != null && depDate.length == 8) {
		selDay = depDate.substring(6,8);
	}

	date2.value = selDay;
	if (date2.selectedIndex < 0) date2.selectedIndex = 0;
	setWeekName(name, date1[date1.selectedIndex].value + date2[date2.selectedIndex].value);
}

///////////////////////////////////////
// 요일 지정
function setWeekName(name, value) {
	var weekName	= new Array("일", "월", "화", "수", "목", "금", "토");
	var week	= document.getElementById(name+"Week");
	var selDate	= "";

	if (week == null) return;

	if (value == null || value == "undefined") {
		var date1	= document.getElementsByName(name+"Date1")[0];
		var date2	= document.getElementsByName(name+"Date2")[0];
		value = date1[date1.selectedIndex].value + date2[date2.selectedIndex].value;
	}

	if (value.length == 10) {
		value = value.substring(0,4) + value.substring(5,7) + value.substring(8,10);
	}

	if (value.length != 8) return;

	selDate = new Date(parseInt(value.substring(0,4), 10), parseInt(value.substring(4,6), 10)-1, parseInt(value.substring(6,8),10));
	week.innerHTML = weekName[selDate.getDay()];
}

///////////////////////////////////////
// 년월, 일 선택박스형 날짜입력
function showFlightDate(name, event) {
	var date1	= document.getElementsByName(name+"Date1")[0];
	var date2	= document.getElementsByName(name+"Date2")[0];
	var year	= parseInt(date1[date1.selectedIndex].value.substring(0,4), 10);
	var month	= parseInt(date1[date1.selectedIndex].value.substring(4,6), 10) -1;
	var day		= parseInt(date2[date2.selectedIndex].value, 10);
	cal_show(year, month, day, name, event);
}

///////////////////////////////////////
// INPUTBOX형 날짜입력
function showInputDate(name, event) {
	var date	= document.getElementsByName(name+"Date")[0];
	var value	= date.value;

	if (value.length == 10) {
		value = value.substring(0,4) + value.substring(5,7) + value.substring(8,10);
	}

	if (value == "") value = defineToday;

	var year	= parseInt(value.substring(0,4), 10);
	var month	= parseInt(value.substring(4,6), 10) -1;
	var day		= parseInt(value.substring(6,8), 10);
	cal_show(year, month, day, name, event);
}

///////////////////////////////////////
// 날짜선택 결과 지정
function setResultDate(name, value) {
	var date	= document.getElementsByName(name+"Date");
	var date1	= document.getElementsByName(name+"Date1");
	var date2	= document.getElementsByName(name+"Date2");

	// INPUT 박스 형태
	if (date != null && date.length > 0 && date[0].type.toUpperCase() == "TEXT") {
		try {
			if (parseInt(value) < defineBgnDate || parseInt(value) > defineEndDate) {
				alert("여행일자를 다시 선택하여 주십시오.\n\n가능일 : "+ getDateName(defineBgnDate) + " ~ " + getDateName(defineEndDate));
				return false;
			}
		}
		catch(e) {}

		date[0].value = value;
		try {
			changeInputBox(name); // 빈함수를 만들어줘야한다. 20080617 by mhs
		}
		catch(e) {}
	}
	// 선택 박스 형태
	else if (date1 != null && date2 != null && date1.length > 0 && date2.length > 0) {
		date1 = date1[0];
		date2 = date2[0];
		var value1	= date1[date1.selectedIndex].value;
		var value2	= date2[date2.selectedIndex].value;

		date1.value = value.substring(0,6);
		if (date1.selectedIndex < 0 || date1[date1.selectedIndex].value != value.substring(0,6)) {
			date1.value = value1;
			date2.value = value2;
			alert("여행일자를 다시 선택하여 주십시오.\n\n가능일 : "+ getDateName(defineBgnDate) + " ~ " + getDateName(defineEndDate));
			return false;
		}
		changeMonth(name);
		date2.value = value.substring(6,8);

		if (date2.selectedIndex < 0 || date2[date2.selectedIndex].value != value.substring(6,8)) {
			date1.value = value1;
			changeMonth(name);
			date2.value = value2;
			alert("여행일자를 다시 선택하여 주십시오.\n\n가능일 : "+ getDateName(defineBgnDate) + " ~ " + getDateName(defineEndDate));
			return false;
		}
	}

	setWeekName(name, value);
	return true;
}

function addCalendarSelectItem(obj, value, text) {
	try {
		obj.options[obj.options.length] = new Option(text, value);
		//obj.add(new Option(text, value));
	}
	catch(e) {}
}

function clearCalendarSelectItem(obj) {
	for (var i=obj.length-1; i>=0; i--) {
		obj.remove(i);
	}
}

/**
 * 음력을 양력으로 바꾸어서 반환한다.
 *
 * @param string
 * return string
 */
function lunerCalenderToSolarCalender (input_day) {
        // 음력 데이터 (평달 - 작은달 :1,  큰달:2 )
        // (윤달이 있는 달 - 평달이 작고 윤달도 작으면 :3 , 평달이 작고 윤달이 크면 : 4)
        // (윤달이 있는 달 - 평달이 크고 윤달이 작으면 :5,  평달과 윤달이 모두 크면 : 6)
var vLunerCalc = [[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 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  = year;
 lmonth = month;

 y1 = lyear - 1841;
 m1 = lmonth - 1;
 leapyes = 0;
 if (vLunerCalc[y1][m1] > 2)  {
     leapyes = 1;
     switch (vLunerCalc[y1][m1]) {
        case 3:
        case 5:
          mm = 29;
          break;
        case 4:
        case 6:
          mm = 30;
          break;
      }
 } // end of if

   lday = day;

   td = 0;
   for (i=0; i<y1; i++) {
   for (j=0; j<12; j++) {
      switch (vLunerCalc[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;
        } // end of switch
   } // end of for
 } // end of for

 for (j=0; j<m1; j++) {
  switch (vLunerCalc[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;
  } // end of switch
  } // end of for

  if (leapyes == 1) {
  switch(vLunerCalc[y1][m1]) {
    case 3:
    case 4:
      td = td + 29;
      break;
    case 5:
    case 6:
      td = td + 30;
      break;
   } // end of switch
  } // end of switch

  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); // end do-While

 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); // end of do-While

 smonth = parseInt(m1);
 sday = parseInt(td);

 // 월이 한자리인경우에는 앞에 0을 붙혀서 반환
 if ( smonth < 10 ) {
  smonth = "0" + smonth;
 }
 // 일이 한자리인경우에는 앞에 0을 붙혀서 반환
 if ( sday < 10 ) {
  sday = "0" + sday;
 }

 return new String( syear+"" + smonth+"" + sday );
}

/**
 * 입력한 날짜가 공유일인지 검사를 한다.
 * 공휴일인 경우에는 경고창 후 멈춘다.
 * 입력형식 : 2004년 3월 1일 --> 20040301
 *
 * @param string
 */
var gHolidays;
gHolidays = null;
gHolidays = new Array();

function createHoliday(yyyy) {
	// 음력 공휴일 입력
	var tmpDay = lunerCalenderToSolarCalender(yyyy + "0101");// 음력설날
	var src;

	var previousmm = 0;
	var aftermm = 0;
	var previousdd = 0;
	var afterdd = 0;
	var tempmm = 0;
	var r_digit_mm="";
	var r_digit_dd="";

	previousmm = Number(tmpDay.substring(4,6))-1;
	aftermm = Number(tmpDay.substring(4,6))-1;	
	previousdd = Number(tmpDay.substring(6,8))-1;
	afterdd = Number(tmpDay.substring(6,8))+1;
	src = new Date(tmpDay.substring(0,4), String(previousmm), String(previousdd));
	tempmm = Number(src.getMonth())+1;
	if(String(tempmm).length==1){
		r_digit_mm = "0"+String(tempmm);
	}else{
		r_digit_mm = String(tempmm);
	}
	if(String(src.getDate()).length==1){
		r_digit_dd = "0"+String(src.getDate());
	}else{
		r_digit_dd = String(src.getDate());
	}
	gHolidays[0] = new String(src.getYear())+r_digit_mm+r_digit_dd; // 설 첫째날

	gHolidays[1] = tmpDay;   // 설

	src = new Date(tmpDay.substring(0,4), String(aftermm), String(afterdd));	
	tempmm = Number(src.getMonth())+1;
	if(String(tempmm).length==1){
		r_digit_mm = "0"+String(tempmm);
	}else{
		r_digit_mm = String(tempmm);
	}
	if(String(src.getDate()).length==1){
		r_digit_dd = "0"+String(src.getDate());
	}else{
		r_digit_dd = String(src.getDate());
	}
	gHolidays[2] = new String(src.getYear())+r_digit_mm+r_digit_dd; // 설 마지막날
	
	tmpDay = lunerCalenderToSolarCalender( yyyy + "0408" );// 음력석가탄신일
	gHolidays[3] = tmpDay;   // 석가탄신일
	
	tmpDay = lunerCalenderToSolarCalender( yyyy + "0815" );// 음력추석

	previousmm = Number(tmpDay.substring(4,6))-1;
	aftermm = Number(tmpDay.substring(4,6))-1;	
	previousdd = Number(tmpDay.substring(6,8))-1;
	afterdd = Number(tmpDay.substring(6,8))+1;
	src = new Date(tmpDay.substring(0,4), String(previousmm), String(previousdd));
	tempmm = Number(src.getMonth())+1;
	if(String(tempmm).length==1){
		r_digit_mm = "0"+String(tempmm);
	}else{
		r_digit_mm = String(tempmm);
	}
	if(String(src.getDate()).length==1){
		r_digit_dd = "0"+String(src.getDate());
	}else{
		r_digit_dd = String(src.getDate());
	}
	gHolidays[4] = new String(src.getYear())+r_digit_mm+r_digit_dd; // 추석 첫째날

	gHolidays[5] = tmpDay;   // 추석

	src = new Date(tmpDay.substring(0,4), String(aftermm), String(afterdd));
	tempmm = Number(src.getMonth())+1;
	if(String(tempmm).length==1){
		r_digit_mm = "0"+String(tempmm);
	}else{
		r_digit_mm = String(tempmm);
	}
	if(String(src.getDate()).length==1){
		r_digit_dd = "0"+String(src.getDate());
	}else{
		r_digit_dd = String(src.getDate());
	}
	gHolidays[6] = new String(src.getYear())+r_digit_mm+r_digit_dd; // 추석 마지막날
	
	// 양력 공휴일 입력
	gHolidays[7] = yyyy + "0101";  // 양력설날
	gHolidays[8] = yyyy + "0301";  // 삼일절
	gHolidays[9] = yyyy + "0505";  // 어린이날
	gHolidays[10] = yyyy + "0606";  // 현충일
	gHolidays[11] = yyyy + "0815";  // 광복절
	gHolidays[12] = yyyy + "1003";  // 개천절
	gHolidays[13] = yyyy + "1225";  // 성탄절
}

function isHoliday(yyyymmdd) {
	createHoliday(yyyymmdd.substring(0,4));

	for ( var i=0; i<gHolidays.length ; i++ ) {
		if(gHolidays[i]==yyyymmdd){
			return true;
		}else{
			;
		}
	}
}
