﻿function ShowCalendar(vYear,vMonth,vDay){
	document.getElementById("divCalendar").innerHTML = Show_cal(vYear,vMonth+1,vDay);
	GetPerfDate();
}


function goPrevMonth(){
	var PrevDate;
	if(iThisMonth==0){
		PrevDate = new Date(iThisYear-1,11,1);
	}else{
		PrevDate = new Date(iThisYear,iThisMonth-1, 1);
	}
	iThisYear = PrevDate.getFullYear();
	iThisMonth = PrevDate.getMonth();
	iThisDay = PrevDate.getDate();
	ShowCalendar(iThisYear,iThisMonth,iThisDay)
}

function goNextMonth(){
	var PrevDate;
	if(iThisMonth==11){
		PrevDate = new Date(iThisYear+1,0,1);
	}else{
		PrevDate = new Date(iThisYear,iThisMonth+1, 1);
	}
	iThisYear = PrevDate.getFullYear();
	iThisMonth = PrevDate.getMonth();
	iThisDay = PrevDate.getDate();
	ShowCalendar(iThisYear,iThisMonth,iThisDay)
}

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();
	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 = "<table width='180' border='0' cellspacing='0' cellpadding='0'>";
	Cal_HTML += "<tr>";
	Cal_HTML += "<td align='center' bgcolor='#FFFFFF'>";
	Cal_HTML += "<table width='164' border='0' cellspacing='0' cellpadding='0'>";
    Cal_HTML += "<tr>";
    Cal_HTML += "<td height='19' align='center' background='images/ticket/date_box.gif' >";
    Cal_HTML += "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
    Cal_HTML += "<tr>";
    Cal_HTML += "<td align='right'><img src='/images/ticket/arrow_l.gif' width='15' height='7' border='0' align='absmiddle' onClick='goPrevMonth();' style='cursor:hand'></td>";
    Cal_HTML += "<td width='90' align='center' class='date_m'>"+intThisYear+"년 "+day2(intThisMonth).toString()+"월</td>";
    Cal_HTML += "<td><img src='/images/ticket/arrow_r.gif' width='15' height='7' border='0' align='absmiddle' onClick='goNextMonth();' style='cursor:hand'></td>";
    Cal_HTML += "</tr>";
    Cal_HTML += "</table>";
	Cal_HTML += "</td>";
    Cal_HTML += "</tr>";
    Cal_HTML += "<tr>";
    Cal_HTML += "<td>";
    Cal_HTML += "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
    Cal_HTML += "<tr>";
    Cal_HTML += "<td height='22' align='center' class='date_s2'><strong>일</strong></td>";
    Cal_HTML += "<td align='center' class='date_d'><strong>월</strong></td>";
    Cal_HTML += "<td align='center' class='date_d'><strong>화</strong></td>";
    Cal_HTML += "<td align='center' class='date_d'><strong>수</strong></td>";
    Cal_HTML += "<td align='center' class='date_d'><strong>목</strong></td>";
    Cal_HTML += "<td align='center' class='date_d'><strong>금</strong></td>";
    Cal_HTML += "<td align='center'><strong class='date_s'>토</strong></td>";
    Cal_HTML += "</tr>";
    Cal_HTML += "<tr><td height='1' colspan='7' align='center' bgcolor='d7d7d7'></td></tr>";
    Cal_HTML += "<tr><td height='1' colspan='7' align='center' bgcolor='e7e7e7'></td></tr>";
    Cal_HTML += "</table>";
    Cal_HTML += "</td>";
    Cal_HTML += "</tr>";
    Cal_HTML += "<tr><td height='10'></td></tr>";
    Cal_HTML += "<tr>";
    Cal_HTML += "<td>";
	Cal_HTML += "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
				     
	
	for (intLoopWeek=1; intLoopWeek < 7; intLoopWeek++) {						// 주단위 루프 시작, 최대 6주
		Cal_HTML += "<tr>"
		for (intLoopDay=1; intLoopDay <= 7; intLoopDay++) {						// 요일단위 루프 시작, 일요일 부터
			if (intThirdWeekday > 0) {											// 첫주 시작일이 1보다 크면
				Cal_HTML += "<TD onClick=doClick();>";
				intThirdWeekday--;
			} else {
				if (thirdPrintDay > intLastDay) {								// 입력 날짝 월말보다 크다면
					Cal_HTML += "<TD align='center'>";
				} else {														// 입력날짜가 현재월에 해당 되면
					Cal_HTML += "<TD align='center' onclick=doClick(); id="+intThisYear+"-"+day2(intThisMonth).toString()+"-"+day2(thirdPrintDay).toString()+" title="+intThisYear+"-"+day2(intThisMonth).toString()+"-"+day2(thirdPrintDay).toString();
					if (intThisYear == NowThisYear && intThisMonth==NowThisMonth && thirdPrintDay==intThisDay) {
						Cal_HTML += "";
					}
					
					switch(intLoopDay) {
						case 1:													// 일요일이면 빨간 색으로
							Cal_HTML += " class='date_s2' style='cursor:hand' ";
							break;
						case 7:
							Cal_HTML += " class='date_s' style='cursor:hand' ";
							break;
						default:
							Cal_HTML += " class='date_d' style='cursor:hand' ";
							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 += "<tr><td height='10'></td></tr>";
    Cal_HTML += "<tr>";
    Cal_HTML += "<td><img src='/images/ticket/date_img01.gif' width='163' height='14'></td>";
    Cal_HTML += "</tr>";
    Cal_HTML += "</table>";
	
	return Cal_HTML;
}

function day2(d) {																// 2자리 숫자료 변경
	var str = new String();
	
	if (parseInt(d) < 10) {
		str = "0" + parseInt(d);
	} else {
		str = "" + parseInt(d);
	}
	return str;
}

function doOut() {
	var el = window.event.fromElement;
	cal_Day = el.title;
}

function SelectFocus(seldays){

	for(i=1;i<32;i++){
		var tblRoof = iThisYear+"-"+day2(iThisMonth+1).toString()+"-"+day2(i).toString();
		var tidcalend = $(tblRoof);
		if(tidcalend !=null){
			if(tidcalend.className=="date_c"){
				tidcalend.className="date_h";
			}
		}
	}
	var tidselcal = $(seldays);
	if(tidselcal !=null){
		tidselcal.className="date_c";
	}
}
