var target;																	// È£ÃâÇÑ ObjectÀÇ ÀúÀå
var doBodyEvent = true;
var isBodyEvent= true;

function Calendar(e,obj) {														// jucke
	if ($("#minical").length == 0)
	{
		$("body").append("<div id=minical oncontextmenu='return false' ondragstart='return false' onselectstart='return false' style=\"background:buttonface; margin:5px; padding:5px;margin-top:2px;border-top:1px solid buttonshadow;border-left: 1px solid buttonshadow;border-right: 1px solid buttonshadow;border-bottom:1px solid buttonshadow;width:160px;display:none;position: absolute; z-index: 1000\"></div>");
	}

	if (doBodyEvent)
	{
		$("body").click(function()
		{
			if (isBodyEvent)
				$("#minical").css("display","none");
			isBodyEvent = true;
		});
		doBodyEvent = false;
	}

	if ($("#minical").css("display") == "block")
	{
		$("#minical").css("display","none");
		isBodyEvent = true;
	}
	else
	{
		$("#minical").css("display","block");
		isBodyEvent = false;
	}

	var now = obj.value.split("-");
	var x, y;

	target = obj;																// Object ÀúÀå;

  /*
    ¾Æ·¡¿Í °°ÀÌ ¼öÁ¤ ( 2005. 07 .30 ) 
	x = (document.layers) ? loc.pageX : event.clientX;
	y = (document.layers) ? loc.pageY : event.clientY;
	*/

	if (navigator.appVersion.indexOf("MSIE") == -1)
	{
		event = e;
	}
	x = event.clientX + document.documentElement.scrollLeft + 70 ;
	y  = event.clientY + document.documentElement.scrollTop - 200;

	document.getElementById("minical").style.top	= (y+115) + 'px';
	document.getElementById("minical").style.left	= (x-200) + 'px';

	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 ButtonCalendar(buttonz){
	var form = buttonz.form;
	var tmpIndex = 0;
	
	for(var i=0; i < form.elements.length; i++){
			
		if(form.elements[i] == buttonz)
		{
			tmpIndex = i - 1;
			break;
		}
	}
	
	
	Calendar(form.elements[tmpIndex]);
}


function doOver(obj) {																// ¸¶¿ì½º°¡ Ä®·»´ÙÀ§¿¡ ÀÖÀ¸¸é
	cal_Day = obj.title;

	if (cal_Day.length > 7) {													// ³¯Â¥ °ªÀÌ ÀÖÀ¸¸é.
		obj.style.borderTopColor = obj.style.borderLeftColor = "buttonhighlight";
		obj.style.borderRightColor = obj.style.borderBottomColor = "buttonshadow";
	}
}

function doClick(obj) {															// ³¯ÀÚ¸¦ ¼±ÅÃÇÏ¿´À» °æ¿ì
	isBodyEvent=false;
	obj.style.borderColor = "red";							// Å×µÎ¸® »öÀ» »¡°£»öÀ¸·Î
	cal_Day = obj.title;
	if (cal_Day.length > 7) {													// ³¯ÀÚ °ªÀÌÀÖÀ¸¸é
		target.value=cal_Day													// °ª ¼³Á¤
	}
	$("#minical").css("display",'none');												// È­¸é¿¡¼­ Áö¿ò
}

function doOut(obj) {
	cal_Day = obj.title;

	if (cal_Day.length > 7) {
		obj.style.borderColor = "white";
	}
}

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("S", "M", "T", "W", "T", "F", "S");
	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
	
	Cal_HTML = "<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0 STYLE='font-size:8pt;font-family:Tahoma;' ONCLICK='isBodyEvent=false'>"
			+ "<TR ALIGN=CENTER><TD COLSPAN=7 nowrap=nowrap ALIGN=CENTER ONCLICK='isBodyEvent=false'><SPAN TITLE='PREV' STYLE=cursor:hand; onClick='Show_cal("+intPrevYear+","+intPrevMonth+",1);'><FONT COLOR=Navy><b>&lt;</b></FONT></SPAN> "
			+ "<B STYLE=color:red>"+get_Yearinfo(intThisYear,intThisMonth,intThisDay)+"/"+get_Monthinfo(intThisYear,intThisMonth,intThisDay)+"</B>"
			+ " <SPAN TITLE='NEXT' STYLE=cursor:hand; onClick='Show_cal("+intNextYear+","+intNextMonth+",1);'><FONT COLOR=Navy><b>&gt;</b></FONT></SPAN></TD></TR>"
			+ "<TR ALIGN=right BGCOLOR=ThreedFace STYLE='color:White;font-weight:bold;'>"
			+ "<TD style='color:#ff0000'>"+Weekday_name[0]+"</TD>"
			+ "<TD>"+Weekday_name[1]+"</TD>"
			+ "<TD>"+Weekday_name[2]+"</TD>"
			+ "<TD>"+Weekday_name[3]+"</TD>"
			+ "<TD>"+Weekday_name[4]+"</TD>"
			+ "<TD>"+Weekday_name[5]+"</TD>"
			+ "<TD style='color:#0000ff'>"+Weekday_name[6]+"</TD>"
			+ "</TR>";
			
	for (intLoopWeek=1; intLoopWeek < 7; intLoopWeek++) {						// ÁÖ´ÜÀ§ ·çÇÁ ½ÃÀÛ, ÃÖ´ë 6ÁÖ
		Cal_HTML += "<TR ALIGN=RIGHT BGCOLOR=WHITE>"
		for (intLoopDay=1; intLoopDay <= 7; intLoopDay++) {						// ¿äÀÏ´ÜÀ§ ·çÇÁ ½ÃÀÛ, ÀÏ¿äÀÏ ºÎÅÍ
			if (intThirdWeekday > 0) {											// Ã¹ÁÖ ½ÃÀÛÀÏÀÌ 1º¸´Ù Å©¸é
				Cal_HTML += "<TD isBodyEvent=false;>";
				intThirdWeekday--;
			} else {
				if (thirdPrintDay > intLastDay) {								// ÀÔ·Â ³¯Â¦ ¿ù¸»º¸´Ù Å©´Ù¸é
					Cal_HTML += "<TD>";
				} else {														// ÀÔ·Â³¯Â¥°¡ ÇöÀç¿ù¿¡ ÇØ´ç µÇ¸é
					Cal_HTML += "<TD onClick=doClick(this); ONMOUSEOVER=doOver(this); ONMOUSEOUT=doOut(this); title="+intThisYear+"-"+day2(intThisMonth).toString()+"-"+day2(thirdPrintDay).toString()+" STYLE=\"cursor:Hand;border:1px solid white;";
					if (intThisYear == NowThisYear && intThisMonth==NowThisMonth && thirdPrintDay==intThisDay) {
						Cal_HTML += "background-color:cyan;";
					}
					
					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>";

	document.getElementById("minical").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+");'>";
	for (i=min; i<=max; i++) {
		if (i == parseInt(year)) {
			str += "<OPTION VALUE="+i+" selected>"+i+"</OPTION>";
		} else {
			str += "<OPTION VALUE="+i+">"+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+");'>";
	for (i=1; i<=12; i++) {
		if (i == parseInt(month)) {
			str += "<OPTION VALUE="+i+" selected>"+i+"</OPTION>";
		} else {
			str += "<OPTION VALUE="+i+">"+i+"</OPTION>";
		}
	}
	str += "</SELECT>";
	return str;
}

