var gdate = "";

var gyy;
var gmm;
var gdd;

function MiniCalOne(cdate) {
	
	gdate = "";

	gdate = cdate;
	if (gdate.value.length==8){
		tyy = eval(gdate.value.substring(0,4));
		tmm = eval(gdate.value.substring(4,6));
		tdd = eval(gdate.value.substring(6,8));
	} else {

		var datToday = new Date();

		tyy = datToday.getYear();
		tmm = datToday.getMonth()+1;
		tdd = datToday.getDate();
		
		//alert('날짜 형식이 틀립니다.');
		//return;
	}
	x = (document.layers) ? loc.pageX : event.clientX;
	y = (document.layers) ? loc.pageY : event.clientY;

	if(document.all.minical.length > 1){
		minical[0].style.pixelTop	= (y+document.body.scrollTop)+10;
		minical[0].style.pixelLeft	= x-125;
		minical[0].style.display = (minical[0].style.display == "block") ? "none" : "block";
	}else{
		minical.style.pixelTop	= (y+document.body.scrollTop)+10;
		minical.style.pixelLeft	= x-10; 
		minical.style.display = (minical.style.display == "block") ? "none" : "block";
	}


	var iyy = parseInt(tyy);
	var imm = parseInt(tmm);
	var idd = parseInt(tdd);
	
	Show_cal(iyy,imm,idd);
	
}

function MiniCal(yy,mm,dd) {
	gdate = "";

	gyy=yy;
	gmm=mm;
	gdd=dd;

	x = (document.layers) ? loc.pageX : event.clientX;
	y = (document.layers) ? loc.pageY : event.clientY;

	if(document.all.minical.length > 1){
		minical[0].style.pixelTop	= (y+document.body.scrollTop)+10;
		minical[0].style.pixelLeft	= x-125;
		minical[0].style.display = (minical[0].style.display == "block") ? "none" : "block";
	}else{
		minical.style.pixelTop	= (y+document.body.scrollTop)+10;
		minical.style.pixelLeft	= x-10;
		minical.style.display = (minical.style.display == "block") ? "none" : "block";
	}

	tyy = eval(gyy.value==''?'0':gyy.value);
	tmm = eval(gmm.value==''?'0':gmm.value);
	tdd = eval(gdd.value==''?'0':gdd.value);
	var iyy = parseInt(tyy);
	var imm = parseInt(tmm);
	var idd = parseInt(tdd);
	Show_cal(iyy,imm,idd);
}

var stime;

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);
}

function doClick() {
	var arr;

	cal_Day = window.event.srcElement.title;
	window.event.srcElement.style.borderColor = "red";

	arr = cal_Day.split("-");

	if (arr.length == 3){

		if (arr[1].length==1)  arr[1] = "0"+arr[1];
		if (arr[2].length==1)  arr[2] = "0"+arr[2];

		if (gdate != ""){
			gdate.value = arr[0]+"-"+arr[1]+"-"+arr[2];
		}else{
			gyy.value = arr[0];
			gmm.value = arr[1];
			gdd.value = arr[2];
		}
	}
}

function doOut() {
	var el = window.event.fromElement;
	cal_Day = el.title;

	if (cal_Day.length > 7) {
		el.style.borderColor = "white";
	}
	if(document.all.minical.length > 1){
		stime=window.setTimeout("minical[0].style.display='none';", 200);
	}else{
		stime=window.setTimeout("minical.style.display='none';", 200);
	}
}



function Show_cal(sYear,sMonth,sDay)
{

	if(sYear<1997) return;

	if(document.all.minical.length > 1){
		document.all.minical[0].innerHTML="";
	}else{
		document.all.minical.innerHTML="";
	}

	Cal_HTML = "";


	var datToday = new Date();

	intThisYear 	= sYear; // 올 해
	intThisMonth 	= sMonth; // 이번 달
	intThisDay 		= sDay;  // 오늘


	if (intThisDay==0) 		intThisDay = datToday.getDate();
	if (intThisMonth==0) 	intThisMonth = datToday.getMonth()+1;
	if (intThisYear==0) 	intThisYear = datToday.getYear();

	if (intThisMonth == 1) // 이번달이 1월이면  20040122 라고 하면,
	{
		intPrevYear=intThisYear-1; 		// intPrevYear = 2004 - 1 = 2003 이된다.
		intPrevMonth=12;				// 한해 전이므로 intPrevMonth 는 12로 셋팅
		intNextYear=intThisYear;		// intNextYear 는 올해로 셋팅
		intNextMonth=2;					// intNextMonth는 2로 셋팅한다. 1년을 보여주기 위함인가.. -_-;;
	}
	else if (intThisMonth==12) 			// 이번달이 12월이면, 20031212
	{
		intPrevYear=intThisYear; 		// intPrevYear = 2003
		intPrevMonth=11;				//intPrevMonth = 11
		intNextYear=(parseInt(intThisYear) + 1); //intNextYear = 2003 + 1
		intNextMonth=1;					//intNextMonth = 1
	}
	else										// 11월도 12월도 아니면
	{
		intPrevYear=intThisYear;			// 올해
		intPrevMonth=intThisMonth -1;	// 한달전
		intNextYear=intThisYear;				//올해
		intNextMonth=Math.ceil(intThisMonth) + 1;   //반올림 한 값에 +1 한다.
	}

	NowThisYear 	= sYear;			 // 함수의 인자로 받아온 값을 Now로 시작하는 value에 셋팅.
	NowThisMonth 	= sMonth;
	NowThisDay 		= sDay;

	// 만약 인자들이 모두 0이 들어왔을 경우 오늘 날짜로 셋팅된다.
	if (NowThisDay==0) 		NowThisDay = datToday.getDay();
	if (NowThisMonth==0) 	NowThisMonth = datToday.getMonth();
	if (NowThisYear==0) 	NowThisYear = datToday.getYear();

	// 여기서 first_date 셋팅한다.
	var first_date=new Date(intThisYear,intThisMonth-1,1) // new Date(  오늘 year , 오늘 month , 오늘1 )
		intFirstWeekday=first_date.getDay(); // 날짜를 받아옴.
		intFirstWeekday++								//1증가


	intSecondWeekDay=intFirstWeekday
	intThirdWeekDay=intFirstWeekday

	datThisDay= intThisYear.toString() +  "-" + intThisMonth.toString() + "-" + intThisDay.toString();
	intThisWeekday=first_date.getDay();
	intThisWeekday++;

	if (intThisWeekday == 1) varThisWeekday = "일";
	if (intThisWeekday == 2) varThisWeekday = "월";
	if (intThisWeekday == 3) varThisWeekday = "화";
	if (intThisWeekday == 4) varThisWeekday = "수";
	if (intThisWeekday == 5) varThisWeekday = "목";
	if (intThisWeekday == 6) varThisWeekday = "금";
	if (intThisWeekday == 7) varThisWeekday = "토";


	intPrintDay=1;
	secondPrintDay=1;
	thirdPrintDay=1;

	Stop_Flag=0;


	if (intThisMonth == 4 || intThisMonth==6 || intThisMonth==9 || intThisMonth==11)
	{
		intLastDay=30;
	}
	else if (intThisMonth==2 && !(intThisYear % 4 == 0))
	{
		intLastDay=28;
	}
	else if (intThisMonth==2 && intThisYear % 4 == 0)
	{
		if (intThisYear % 100 == 0)
		{
			if (intThisYear % 400 == 0)
				intLastDay=29;
			else
				intLastDay=28;
		}
		else
		{
			intLastDay=29;
		}
	}
	else
	{
		intLastDay=31;
	}

	if (intPrevMonth==4 || intPrevMonth==6 || intPrevMonth==9 || intPrevMonth==11)
		intPrevLastDay=30;
	else if (intPrevMonth==2 &&  !(intPrevYear % 4 == 0))
		intPrevLastDay=28;
	else if (intPrevMonth==2 && intPrevYear % 4 == 0)
	{
		if (intPrevYear % 100 == 0)
		{
			if (intPrevYear % 400 == 0)
				intPrevLastDay=29;
			else
				intPrevLastDay=28;
		}
		else
		{
			intPrevLastDay=29;
		}
	}
	else
	{
		intPrevLastDay=31;
	}


	Stop_Flag=0;
	Cal_HTML=Cal_HTML + "<table border='0' bgcolor='#DCDCDC' cellpadding=1 cellspacing=1  onmouseover='doOver()' onmouseout='doOut()' onclick='doClick()' style='font-size : 12;font-family:굴림;'>";
	Cal_HTML=Cal_HTML + "<tr align=center>";
	Cal_HTML=Cal_HTML + "<td align=left  title='Pre' style='cursor:hand;' OnClick='JAVAScript:Show_cal(" + intPrevYear.toString()  + "," + intPrevMonth.toString() + ","+intThisDay+")'>&nbsp;<font color=006699 size=2>◀</font></td>";
	Cal_HTML=Cal_HTML + "<td colspan=5><font color=#990000><b>";
	Cal_HTML=Cal_HTML +  intThisMonth.toString() + "/" + intThisYear.toString();
	Cal_HTML=Cal_HTML + "</font></b></td>";
	Cal_HTML=Cal_HTML + "<td align=right title='Next' style='cursor:hand;' OnClick='JAVAScript:Show_cal(" + intNextYear.toString() + "," + intNextMonth.toString() + ","+intThisDay+");'><font color=006699 size=2>▶</font></a>&nbsp;</td>";
	Cal_HTML=Cal_HTML + "</tr>";
	Cal_HTML=Cal_HTML + "<tr align=center bgcolor='8DCFF4' style='color:000000;'>";
	Cal_HTML=Cal_HTML + "<td>Su</td><td>Mo</td><td>Th</td><td>We</td><td>Th</td><td>Fr</td><td>Sa</td>";
	Cal_HTML=Cal_HTML + "</tr>";



	for (intLoopWeek=1;intLoopWeek<=6;intLoopWeek++)
	{

		Cal_HTML=Cal_HTML + "<tr align=right valign=top bgcolor='#F6F9F3'>";
		for (intLoopDay=1;intLoopDay<=7;intLoopDay++)
		{
			if (intThirdWeekDay > 1)
			{
				Cal_HTML=Cal_HTML + "<td>&nbsp;</td>";
				intThirdWeekDay=intThirdWeekDay-1;
			}
			else
			{
				if (thirdPrintDay > intLastDay)
				{
					Cal_HTML=Cal_HTML + "<td>&nbsp;</td>";
				}
				else
				{
					Cal_HTML=Cal_HTML + "<td title='" + intThisYear.toString() + "-" + intThisMonth.toString() + "-" + thirdPrintDay.toString() + "' style='cursor: hand;border: 1px solid white;width:18; height:18;";
					if (intThisYear-NowThisYear==0 && intThisMonth-NowThisMonth==0 && thirdPrintDay-intThisDay==0)
					{
						Cal_HTML=Cal_HTML + "background-color:#FACD8A;";
					}

					if  (intLoopDay==1)
					{
						Cal_HTML=Cal_HTML + "color:#990000;";
					}
					else
					{
						Cal_HTML=Cal_HTML + "color:black;";
					}

					Cal_HTML=Cal_HTML+ "'>" + thirdPrintDay.toString();
				}
				thirdPrintDay++;

				if (thirdPrintDay > intLastDay)	Stop_Flag=1;

			}
			Cal_HTML=Cal_HTML + "</td>";
		}
		Cal_HTML=Cal_HTML + "</tr>";
		if (Stop_Flag==1) break;
	}

	Cal_HTML=Cal_HTML+ "</table>";

	if (document.all.minical.length > 1){
		document.all.minical[0].innerHTML=Cal_HTML;
	}else{
		document.all.minical.innerHTML=Cal_HTML;
	}

}