var target;
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>");

var dt = '';
var term = 0;

function Calendar2(obj, tt, xxx, yyy){
	term = tt;
	var n = obj.value;
	
	var now = new Array();
	var d = new Date();
	if(term == 'no' || isNaN(term)){
		d.setDate(d.getDate());
	}else{
		d.setDate(d.getDate()+term);
	}	
	var yy;
	if(navigator.appName=="Netscape"){
		yy = (d.getYear()+'').substring(1,3);
	}else{
		yy = (d.getYear()+'').substring(2,4);
		
	}
	
	var mm = d.getMonth()+1;
	var dd = d.getDate();
	if(parseInt(mm)<10)	mm = '0'+(mm+'');
	if(parseInt(dd)<10) dd = '0'+(dd+'');
	dt =  "20" + yy + '' + mm + '' + dd;
	
	now[0] = "20" + n.substring(4,6);
	now[1] = n.substring(0,2);
	now[2] = n.substring(2,4);
	
	target = obj;																// Object 저장;
	
	document.getElementById("minical").style.top  = yyy + "px";
	document.getElementById("minical").style.left = xxx + "px";
	
	document.getElementById("minical").style.display = (document.getElementById("minical").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 checkDate(cal_Day){
	var yy = cal_Day.substring(4,6);
	var mm = cal_Day.substring(0,2);
	var dd = cal_Day.substring(2,4);
	yy = '20' + yy;
	if(yy+mm+dd >= dt){
		return false;
	}else{
		return true;
	}
}

function doClick(obj) {
	if(navigator.appName=="Netscape"){
		cal_Day = obj.target.title;
	}else{
		cal_Day = window.event.srcElement.title;
	}
	
	if(term != 'no' && checkDate(cal_Day)){
		if(term == 0)
			alert("Invalid Date!\nPlease input date later than today.");
		else
			alert("Invalid Date!\nPlease input " + term + "days later.");
			return false;
	}
		
	target.value=cal_Day;
	minical.style.display='none';// 화면에서 지움
	target.focus();
}

function
 CalOut(){
	minical.style.display='none';// 화면에서 지움
}

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("Su", "Mo", "Tu", "We", "Th", "Fr", "Sa");

	var intThisYear = 0;
	var intThisMonth = 0;
	var intThisDay = 0;

	document.getElementById("minical").innerHTML = "";
	datToday = new Date();													// 현재 날자 설정
	
	intThisYear = parseInt(sYear);
	intThisMonth = parseInt(sMonth);
	if(sDay == '08') sDay = '8';											//이해는 안되지만 좌우지간 08이 들어가면 0이 리턴된다 된장할
	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;'>"
			+ "		<TR ALIGN=CENTER>"
			+ "			<TD COLSPAN=7 nowrap=nowrap ALIGN=RIGHT><img src='/en/img/closeCal.gif' border=0 onclick='CalOut()' >"
			+ "			</TD>"
			+ "		</TR>"			
			+ "		<TR ALIGN=CENTER>"
			+ "			<TD COLSPAN=7 nowrap=nowrap ALIGN=CENTER>"
			+ "				<SPAN TITLE='Previous Month' STYLE=cursor:hand; onClick='Show_cal("+intPrevYear+","+intPrevMonth+",1);'><FONT COLOR=Navy>Pre</FONT></SPAN> "
			+ "				<B STYLE=color:black>"+get_Yearinfo(intThisYear,intThisMonth,intThisDay)+" "+get_Monthinfo(intThisYear,intThisMonth,intThisDay)+"</B>"
			+ "				<SPAN TITLE='Next Month' STYLE=cursor:hand; onClick='Show_cal("+intNextYear+","+intNextMonth+",1);'><FONT COLOR=Navy>Next</FONT></SPAN>"
			+ "			</TD>"
			+ "		</TR>"
			+ "		<TR ALIGN=CENTER BGCOLOR=ThreedFace STYLE='color:White;font-weight:bold;'>"
			+ "			<TD>Su</TD><TD>Mo</TD><TD>Tu</TD><TD>We</TD><TD>Th</TD><TD>Fr</TD><TD>Sa</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 onClick=doClick(event);>";
				intThirdWeekday--;
			} else {
				if (thirdPrintDay > intLastDay) {								// 입력 날짝 월말보다 크다면
					Cal_HTML += "<TD onClick=doClick(event);>";
				} else {														// 입력날짜가 현재월에 해당 되면
					Cal_HTML += "<TD onClick=doClick(event); title=";
					if (parseInt(intThisMonth) < 10) {
						Cal_HTML += "0" + parseInt(intThisMonth);
					} else {
						Cal_HTML += "" + parseInt(intThisMonth);
					}

					if (parseInt(thirdPrintDay) < 10) {
						Cal_HTML += "0" + parseInt(thirdPrintDay);
					} else {
						Cal_HTML += "" + parseInt(thirdPrintDay);
					}

					Cal_HTML += (intThisYear.toString()).substring(2,4);
					Cal_HTML += " STYLE=\"cursor:Hand;border:1px solid white;";

					if (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) - 5;
	if(min<2000) min = 2000;//시작년도 무조건 2000부터!!
	var max = parseInt(year) + 5;												//종료연도
	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;
}