var target;																	// 호출한 Object의 저장
var stime;
var selYear = "";
var selMonth = "";
var selDay = "";

document.write("<div id='minical' style='display:none; position:absolute; z-index:99'></div>");

function calClose() {
	document.getElementById("minical").style.display = "none";
}

function Calendar(obj) {

	selYear = "";;
	selMonth = "";;
	selDay = "";
														// jucke
	var nowDate = obj.value;

	var now = new Array(3);
	now[0] = nowDate.substring(0,4);
	now[1] = nowDate.substring(4,6);
	now[2] = nowDate.substring(6,8);

	var x, y;

	target = obj;																// Object 저장;

	x = (document.layers) ? loc.pageX : event.clientX;
	y = (document.layers) ? loc.pageY : event.clientY;

	var scTop = 0;

	if (document.documentElement.scrollTop>0) {
		scTop = document.documentElement.scrollTop;
	}

	minical.style.pixelTop = y + scTop;
	minical.style.pixelLeft	= x-50;
	minical.style.display = (minical.style.display == "block") ? "none" : "block";

	if (nowDate.length == 8) {
		selYear = now[0];
		selMonth = now[1];
		selDay = now[2];
		Show_cal(selYear,selMonth,selDay);
	} else {
		now = new Date();
		selYear = now.getFullYear();
		selMonth = now.getMonth()+1;
		selDay = now.getDate();
		Show_cal(selYear,selMonth,selDay);
	}
}

function doOver() {																// 마우스가 칼렌다위에 있으면
	var el = window.event.srcElement;
	cal_Day = el.title;

	if (cal_Day.length > 7) {													// 날자 값이 있으면.
		el.style.borderTopColor = el.style.borderLeftColor = "buttonhighlight";
		el.style.borderRightColor = el.style.borderBottomColor = "buttonshadow";
	}
	window.clearTimeout(stime);													// Clear
}

function doClick() {															// 날자를 선택하였을 경우
	cal_Day = window.event.srcElement.title;
	window.event.srcElement.style.borderColor = "red";							// 테두리 색을 빨간색으로
	if (cal_Day.length > 7) {													// 날자 값이있으면
		target.value=cal_Day													// 값 설정
	}
	minical.style.display='none';												// 화면에서 지움
}

function doOut() {
	var el = window.event.fromElement;
	cal_Day = el.title;

	if (cal_Day.length > 7) {
		el.style.borderColor = "white";
	}
	//stime=window.setTimeout("minical.style.display='none';", 200);
}

function day2(d) {																// 2자리 숫자료 변경
	var str = new String();

	if (parseInt(d) < 10) {
		str = "0" + parseInt(d);
	} else {
		str = "" + parseInt(d);
	}
	return str;
}

function Show_cal(sYear, sMonth, sDay) {
	var Months_day = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	var Weekday_name = new Array("일", "월", "화", "수", "목", "금", "토");
	var intThisYear = new Number(), intThisMonth = new Number(), intThisDay = new Number();
	document.getElementById("minical").innerHTML = "";
	datToday = new Date();													// 현재 날자 설정

	intThisYear = parseInt(sYear);
	intThisMonth = parseInt(sMonth);
	intThisDay = parseInt(sDay);

	if (intThisYear == 0) intThisYear = datToday.getFullYear();				// 값이 없을 경우
	if (intThisMonth == 0) intThisMonth = parseInt(datToday.getMonth())+1;	// 월 값은 실제값 보다 -1 한 값이 돼돌려 진다.
	if (intThisDay == 0) intThisDay = datToday.getDate();

	switch(intThisMonth) {
		case 1:
				intPrevYear = intThisYear -1;
				intPrevMonth = 12;
				intNextYear = intThisYear;
				intNextMonth = 2;
				break;
		case 12:
				intPrevYear = intThisYear;
				intPrevMonth = 11;
				intNextYear = intThisYear + 1;
				intNextMonth = 1;
				break;
		default:
				intPrevYear = intThisYear;
				intPrevMonth = parseInt(intThisMonth) - 1;
				intNextYear = intThisYear;
				intNextMonth = parseInt(intThisMonth) + 1;
				break;
	}

	NowThisYear = datToday.getFullYear();										// 현재 년
	NowThisMonth = datToday.getMonth()+1;										// 현재 월
	NowThisDay = datToday.getDate();											// 현재 일

	datFirstDay = new Date(intThisYear, intThisMonth-1, 1);						// 현재 달의 1일로 날자 객체 생성(월은 0부터 11까지의 정수(1월부터 12월))
	intFirstWeekday = datFirstDay.getDay();										// 현재 달 1일의 요일을 구함 (0:일요일, 1:월요일)

	intSecondWeekday = intFirstWeekday;
	intThirdWeekday = intFirstWeekday;

	datThisDay = new Date(intThisYear, intThisMonth, intThisDay);				// 넘어온 값의 날자 생성
	intThisWeekday = datThisDay.getDay();										// 넘어온 날자의 주 요일

	varThisWeekday = Weekday_name[intThisWeekday];								// 현재 요일 저장

	intPrintDay = 1																// 달의 시작 일자
	secondPrintDay = 1
	thirdPrintDay = 1

	Stop_Flag = 0

	if ((intThisYear % 4)==0) {													// 4년마다 1번이면 (사로나누어 떨어지면)
		if ((intThisYear % 100) == 0) {
			if ((intThisYear % 400) == 0) {
				Months_day[2] = 29;
			}
		} else {
			Months_day[2] = 29;
		}
	}
	intLastDay = Months_day[intThisMonth];										// 마지막 일자 구함
	Stop_flag = 0;

	var Cal_HTML = "";
	Cal_HTML += "<table width='188' border='0' cellpadding='0' cellspacing='1' bgcolor='#666666'>";
	Cal_HTML += "<tr>";
	Cal_HTML += "	<td align='center' valign='top' bgcolor='#FFFFFF'>";
	Cal_HTML += "		<table width='154' border='0' cellspacing='0' cellpadding='0'>";
	Cal_HTML += "			<tr>";
	Cal_HTML += "				<td height='27' align='center'><a href='javascript:Show_cal("+intPrevYear+","+intPrevMonth+",1);'>◀</a><span class='font14'>"+get_Yearinfo(intThisYear,intThisMonth,intThisDay)+"년</span> <span class='font14'>"+get_Monthinfo(intThisYear,intThisMonth,intThisDay)+"월</span><a href='javascript:Show_cal("+intNextYear+","+intNextMonth+",1);'>▶</a></td>";
	Cal_HTML += "			</tr>";
	Cal_HTML += "			<tr>";
	Cal_HTML += "				<td valign='top'>";
	Cal_HTML += "					<table width='154' border='0' cellpadding='0' cellspacing='1' bgcolor='#999999'>";
	Cal_HTML += "						<tr>";
	Cal_HTML += "							<td valign='top' bgcolor='#FFFFFF'>";
	Cal_HTML += "								<table width='152' border='0' cellpadding='0' cellspacing='0'>";
	//Cal_HTML += "									<tr>";
	//Cal_HTML += "										<td height='24' align='center' bgcolor='#999999' class='fontfws02'><b> 2008년 01월 08일</b></td>";
	//Cal_HTML += "									</tr>";
	Cal_HTML += "									<tr>";
	Cal_HTML += "										<td align='center' valign='top'>";
	Cal_HTML += "											<table width='140' border='0' cellspacing='0' cellpadding='0'>";
	Cal_HTML += "												<tr>";
	Cal_HTML += "													<td width='20' height='27' align='center' class='font16' style='color:red'>일</td>";
	Cal_HTML += "													<td width='20' height='27' align='center' class='font03'>월</td>";
	Cal_HTML += "													<td width='20' height='27' align='center' class='font03'>화</td>";
	Cal_HTML += "													<td width='20' height='27' align='center' class='font03'>수</td>";
	Cal_HTML += "													<td width='20' height='27' align='center' class='font03'>목</td>";
	Cal_HTML += "													<td width='20' height='27' align='center' class='font03'>금</td>";
	Cal_HTML += "													<td width='20' height='27' align='center' class='font17' style='color:gray'>토</td>";
	Cal_HTML += "												</tr>";

	for (intLoopWeek=1; intLoopWeek < 7; intLoopWeek++) {						// 주단위 루프 시작, 최대 6주
		Cal_HTML += "<tr>"
		for (intLoopDay=1; intLoopDay <= 7; intLoopDay++) {						// 요일단위 루프 시작, 일요일 부터
			if (intThirdWeekday > 0) {											// 첫주 시작일이 1보다 크면
				Cal_HTML += "<td width='20' height='18' align='center' onClick='doClick();'>";
				intThirdWeekday--;
			} else {
				if (thirdPrintDay > intLastDay) {								// 입력 날짝 월말보다 크다면
					Cal_HTML += "<td width='20' height='18' align='center' onClick='doClick();'>";
				} else {														// 입력날짜가 현재월에 해당 되면
					Cal_HTML += "<td width='20' height='18' align='center' onClick='doClick();' title="+intThisYear+day2(intThisMonth).toString()+day2(thirdPrintDay).toString()+" style='cursor:pointer;";

					if (intThisYear==Number(selYear) && intThisMonth==Number(selMonth) && thirdPrintDay==Number(selDay)) {
						Cal_HTML += "background-color:cyan;";
					}

					switch(intLoopDay) {
						case 1:													// 일요일이면 빨간 색으로
							Cal_HTML += "color:red' class='font16'"
							break;
						case 7:
							Cal_HTML += "color:gray' class='font16'"
							break;
						default:
							Cal_HTML += "' class='font18'"
							break;
					}

					Cal_HTML += ">"+thirdPrintDay;

				}

				thirdPrintDay++;

				if (thirdPrintDay > intLastDay) {								// 만약 날짜 값이 월말 값보다 크면 루프문 탈출
					Stop_Flag = 1;
				}
			}
			Cal_HTML += "</td>";
		}
		Cal_HTML += "</tr>";
		if (Stop_Flag==1) break;
	}

	Cal_HTML += "											</table>";
	Cal_HTML += "										</td>";
	Cal_HTML += "									</tr>";
	Cal_HTML += "								</table>";
	Cal_HTML += "							</td>";
	Cal_HTML += "						</tr>";
	Cal_HTML += "					</table>";
	Cal_HTML += "				</td>";
	Cal_HTML += "			</tr>";
	Cal_HTML += "			<tr>";
	Cal_HTML += "				<td height='5'></td>";
	Cal_HTML += "			</tr>";
	Cal_HTML += "		</table>";
	Cal_HTML += "	</td>";
	Cal_HTML += "</tr>";
	Cal_HTML += "<tr bgcolor='white'>";
	Cal_HTML += "	<td align='center' height='20'>[<a href='javascript:calClose();'>닫기</a>]</td>";
	Cal_HTML += "</tr>";
	Cal_HTML += "</table>";

	document.getElementById("minical").innerHTML = Cal_HTML;
}

function get_Yearinfo(year,month,day) {											// 년 정보를 콤보 박스로 표시
	var min = parseInt(year) - 20;
	var max = parseInt(year) + 5;
	var i = new Number();
	var str = new String();

	str = "<SELECT onChange='Show_cal(this.value,"+month+","+day+");' ONMOUSEOVER=doOver();>";
	for (i=min; i<=max; i++) {
		if (i == parseInt(year)) {
			str += "<OPTION VALUE="+i+" selected ONMOUSEOVER=doOver();>"+i+"</OPTION>";
		} else {
			str += "<OPTION VALUE="+i+" ONMOUSEOVER=doOver();>"+i+"</OPTION>";
		}
	}
	str += "</SELECT>";
	return str;
}


function get_Monthinfo(year,month,day) {										// 월 정보를 콤보 박스로 표시
	var i = new Number();
	var str = new String();

	str = "<SELECT onChange='Show_cal("+year+",this.value,"+day+");' ONMOUSEOVER=doOver();>";
	for (i=1; i<=12; i++) {
		if (i == parseInt(month)) {
			str += "<OPTION VALUE="+i+" selected ONMOUSEOVER=doOver();>"+i+"</OPTION>";
		} else {
			str += "<OPTION VALUE="+i+" ONMOUSEOVER=doOver();>"+i+"</OPTION>";
		}
	}
	str += "</SELECT>";
	return str;
}