// È£ÃâÇÑ ObjectÀÇ ÀúÀå
var target;
var target_txt;
var stime;
document.write("<div id='minical' oncontextmenu='return false' ondragstart='return false' onselectstart='return false'  style='background:buttonface; margin:5; padding:5;margin-top:2;border-top:1 solid buttonshadow;border-left: 1 solid buttonshadow;border-right: 1 solid buttonshadow;border-bottom:1 solid buttonshadow;width:160;display:none;position: absolute; z-index: 99'></div>");

// jucke
function Calendar(obj, obj_txt) {
	var now = obj.value.split("-");
	var x, y;
	var event = window.event;
	if (event == null)
		event = arguments.callee.caller.arguments[0];
	
	// Object ÀúÀå;
	target = obj;
	target_txt = obj_txt;
	
	x = (document.layers) ? loc.pageX : event.clientX;
	y = (document.layers) ? loc.pageY : event.clientY;
	
	y += document.body.scrollTop
	
	el = document.getElementById("minical");
		
	el.style.top = y + 5;
	el.style.left = x - 50;
	
	el.style.display = (el.style.display == "block") ? "none" : "block";
	
	// Á¤È®ÇÑÁö °Ë»ç
	if (now.length == 3) {
		// ³Ñ¾î¿Â °ªÀ» ³â¿ùÀÏ·Î ºÐ¸®
		Show_cal(now[0], now[1], now[2]);
	} else {
		now = new Date();
		// ÇöÀç ³â/¿ù/ÀÏÀ» ¼³Á¤ÇÏ¿© ³Ñ±è.
		Show_cal(now.getFullYear(), now.getMonth()+1, now.getDate());
	}
}

// ¸¶¿ì½º°¡ Ä®·»´ÙÀ§¿¡ ÀÖÀ¸¸é
function doOver() {
	var event = window.event;
	if (event == null)
		event = arguments.callee.caller.arguments[0];
		
	var el = event.target;
	if (el == null)
		el = 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";
	}
	
	// Clear
	window.clearTimeout(stime);
}

// ³¯ÀÚ¸¦ ¼±ÅÃÇÏ¿´À» °æ¿ì
function doClick() {
	var event = window.event;
	if (event == null)
		event = arguments.callee.caller.arguments[0];
		
	var el = event.target;
	if (el == null)
		el = event.srcElement;
	cal_Day = el.title;
	
	// Å×µÎ¸® »öÀ» »¡°£»öÀ¸·Î
	el.style.borderColor = "red";
	
	// ³¯ÀÚ °ªÀÌÀÖÀ¸¸é
	if (cal_Day.length > 7) {
		// °ª ¼³Á¤
		target.value = cal_Day;
		target_txt.value = cal_Day;
	}
	
	// È­¸é¿¡¼­ Áö¿ò
	el = document.getElementById("minical");
	el.style.display='none';
}

function doOut() {
	var event = window.event;
	if (event == null)
		event = arguments.callee.caller.arguments[0];
	
	var el = event.target;
	if (el == null)
		el = event.srcElement;
		
	cal_Day = el.title;

	if (cal_Day.length > 7) {
		el.style.borderColor = "white";
	}
	//stime=window.setTimeout("minical.style.display='none';", 200);
}

function doHide()
{
	stime=window.setTimeout("minical.style.display='none';", 200);
}

// 2ÀÚ¸® ¼ýÀÚ·á º¯°æ
function day2(d) {
	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();
	
	elCal = document.getElementById("minical");
	elCal.innerHTML = "";
	
	// ÇöÀç ³¯ÀÚ ¼³Á¤
	datToday = new Date();
	
	intThisYear = parseInt(sYear, 10);
	intThisMonth = parseInt(sMonth, 10);
	intThisDay = parseInt(sDay, 10);
	
	// °ªÀÌ ¾øÀ» °æ¿ì
	if (intThisYear == 0) intThisYear = datToday.getFullYear();
	// ¿ù °ªÀº ½ÇÁ¦°ª º¸´Ù -1 ÇÑ °ªÀÌ µÇµ¹·Á Áø´Ù.
	if (intThisMonth == 0) intThisMonth = parseInt(datToday.getMonth()) + 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();
	
	// ÇöÀç ´ÞÀÇ 1ÀÏ·Î ³¯ÀÚ °´Ã¼ »ý¼º(¿ùÀº 0ºÎÅÍ 11±îÁöÀÇ Á¤¼ö(1¿ùºÎÅÍ 12¿ù))
	datFirstDay = new Date(intThisYear, intThisMonth - 1, 1);
	
	// ÇöÀç ´Þ 1ÀÏÀÇ ¿äÀÏÀ» ±¸ÇÔ (0:ÀÏ¿äÀÏ, 1:¿ù¿äÀÏ)
	intFirstWeekday = datFirstDay.getDay();
	
	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;
	
	// 4³â¸¶´Ù 1¹øÀÌ¸é (»ç·Î³ª´©¾î ¶³¾îÁö¸é) --> À±³â °è»ê
	if ((intThisYear % 4) == 0) {
		if ((intThisYear % 100) == 0) {
			if ((intThisYear % 400) == 0) {
				Months_day[2] = 29;
			}
		} else {
			Months_day[2] = 29;
		}
	}
	
	// ¸¶Áö¸· ÀÏÀÚ ±¸ÇÔ
	intLastDay = Months_day[intThisMonth];
	Stop_flag = 0
	
	Cal_HTML = "<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0 ONMOUSEOVER=doOver(); ONMOUSEOUT='doOut();' STYLE='font-size:8pt;font-family:Tahoma;'>"
			+ "<TR ALIGN=CENTER><TD COLSPAN=7 nowrap=nowrap ALIGN=CENTER><SPAN TITLE='ÀÌÀü´Þ' STYLE=cursor:pointer; onClick='Show_cal("+intPrevYear+","+intPrevMonth+","+intThisDay+");'><FONT COLOR=Navy>¢¸</FONT></SPAN> "
			+ "<B>"+get_Yearinfo(intThisYear,intThisMonth,intThisDay)+"³â"+get_Monthinfo(intThisYear,intThisMonth,intThisDay)+"¿ù</B>"
			+ " <SPAN TITLE='´ÙÀ½´Þ' STYLE=cursor:pointer; onClick='Show_cal("+intNextYear+","+intNextMonth+","+intThisDay+");'><FONT COLOR=Navy>¢º</FONT></SPAN></TD></TR>"
			+ "<TR ALIGN=CENTER BGCOLOR=ThreedFace STYLE='color:black;font-weight:bold;'><TD><font color=red>ÀÏ</font></TD><TD>¿ù</TD><TD>È­</TD><TD>¼ö</TD><TD>¸ñ</TD><TD>±Ý</TD><TD><font color=blue>Åä</font></TD></TR>";
	
	// ÁÖ´ÜÀ§ ·çÇÁ ½ÃÀÛ, ÃÖ´ë 6ÁÖ
	for (intLoopWeek=1; intLoopWeek < 7; intLoopWeek++) {
		Cal_HTML += "<TR ALIGN=RIGHT BGCOLOR=WHITE>";
		
		// ¿äÀÏ´ÜÀ§ ·çÇÁ ½ÃÀÛ, ÀÏ¿äÀÏ ºÎÅÍ
		for (intLoopDay=1; intLoopDay <= 7; intLoopDay++) {
			// Ã¹ÁÖ ½ÃÀÛÀÏÀÌ 1º¸´Ù Å©¸é
			if (intThirdWeekday > 0) {
				Cal_HTML += "<TD onClick=doClick();>";
				intThirdWeekday--;
			} else {
				// ÀÔ·Â ³¯Â¥°¡ ¿ù¸»º¸´Ù Å©´Ù¸é
				if (thirdPrintDay > intLastDay) {
					Cal_HTML += "<TD onClick=doClick();>";
				
				// ÀÔ·Â³¯Â¥°¡ ÇöÀç¿ù¿¡ ÇØ´ç µÇ¸é
				} else {
					Cal_HTML += "<TD onClick=doClick(); title="+intThisYear+"-"+day2(intThisMonth).toString()+"-"+day2(thirdPrintDay).toString()+" STYLE=\"cursor:pointer;border:1px solid white;";
					
					//ÇöÀç ³â/¿ù/ÀÏÀÇ »ö±òÀ» ¿À·»Áö »öÀ¸·Î ¹Ù²ãÁØ´Ù
					if (intThisYear == NowThisYear && intThisMonth == NowThisMonth && thirdPrintDay == NowThisDay) {
						Cal_HTML += "background-color:orange;";
					}
					
					switch(intLoopDay) {
						case 1:
							// ÀÏ¿äÀÏÀÌ¸é »¡°£ »öÀ¸·Î
							Cal_HTML += "color:red;"
							break;
						case 7:
							Cal_HTML += "color:blue;"
							break;
						default:
							Cal_HTML += "color:black;"
							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>";

	elCal.innerHTML = Cal_HTML;
}

// ³â Á¤º¸¸¦ ÄÞº¸ ¹Ú½º·Î Ç¥½Ã
function get_Yearinfo(year,month,day) {
	var min = parseInt(year) - 100;
	var max = parseInt(year) + 10;
	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;
}
