
var cal_Day="";

var scriptNameYear;
var scriptNameMonth;
var scriptNameDay;

menuDelay1 = 50; //delay before menu appears
menuSpeed1 = 1; //speed which menu appears (lower=faster)
menuOffset1 = 2; //offset of menu from mouse pointer

menuWidth1 = 180;
menuHeight1 = 180; //menu height

var menuXPos = "";
var menuYPos = "";

function calendarView(objFormYearNm, objFormMonthNm, objFormDayNm, xPos, yPos) {

	//입력 폼 값 확인
    var nowYear = objFormYearNm.value;
    var nowMonth = objFormMonthNm.value;
    var nowDay = objFormDayNm.value;
    
    //입력 폼 이름 object set
    this.scriptNameYear = objFormYearNm;
    this.scriptNameMonth = objFormMonthNm;
    this.scriptNameDay = objFormDayNm;
    
    //레이어 위치 set 
  	this.menuXPos = xPos.toString();
    this.menuYPos = yPos.toString();
	//this.menuXPos = event.clientX + document.body.scrollLeft - 420;
	//this.menuYPos = event.clientY + document.body.scrollTop - 20;	
	
	//oDiv.style.pixelLeft = left;
	//oDiv.style.pixelTop = top;
    
    if (nowYear != "" && nowMonth != "" && nowDay != "") { //입력 폼 값이 모두 있으면 설정
		showCalendarPopup(nowYear, nowMonth, nowDay);
	} else {
		now = new Date();
		showCalendarPopup(now.getFullYear(), now.getMonth()+1, now.getDate());
	}
}

function openMenu1(height, width) {
    iHeight = height;
    iWidth = width;

    if(iHeight < menuHeight1) {
        menuTimer = setTimeout("openMenu1(iHeight + menuYIncrement, iWidth + menuXIncrement)", 1);
    } else {
    	document.getElementById('calendarBase').style.top = menuYPos + "px";
    	document.getElementById('calendarBase').style.left = menuXPos + "px";
    	
    	document.getElementById('calendar').style.display = "block";
        document.getElementById('calendarBase').style.display = "block";
        clearTimeout(menuTimer);
    }
}

function setCalDate(year,month,day) {
    scriptNameYear.value = year;
    scriptNameMonth.value = month;
    scriptNameDay.value = day;
}

function doClick(year,month,day) { // 날짜를 선택하였을 경우

	cal_Day = year+month+day;
	
	if (cal_Day.length > 7) { // 날짜 값이있으면
		setCalDate(year,month,day);
	}

	document.getElementById('calendar').style.display = "none";
	document.getElementById('calendarBase').style.display="none";
}

function day2(d) { // 2자리 숫자로 변경
    var str = new String();
    
	if (parseInt(d) < 10) {
		str = "0" + parseInt(d);
	} else {
		str = "" + parseInt(d);
	}

	return str;
}

var objYear;
var objMonth;
var objDay;

function showCalendarPopup(sYear,sMonth,sDay) {
    make_calendar(sYear,sMonth,sDay);
    
    objYear = scriptNameYear;
    objMonth = scriptNameMonth;
    objDay = scriptNameDay;

	try {
		if (menuXPos == "0") {
			menuXPos = event.clientX + 5;
		}
		
		if (menuYPos == "0") {
			menuYPos = event.clientY + 5;
		}
	} catch(e) {
		alert(e)
	}

    menuXIncrement = menuWidth1 / menuSpeed1;
    menuYIncrement = menuHeight1 / menuSpeed1;

    menuTimer = setTimeout("openMenu1(0,0)", menuDelay1);

    return false;
}

function make_calendar(sYear, sMonth, sDay) {
	var Months_day = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31)
	var Weekday_name = Array('SUN','MON','TUE','WEB','THU','FRI','SAT');
	var intThisYear = new Number(), intThisMonth = new Number(), intThisDay = new Number();
	var intFirstWeekday, NowThisMonth,intThisWeekday;
	
	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);
	
	var intFirstWeekday = datFirstDay.getDay();
	
	intThirdWeekday =datFirstDay.getDay();
	datThisDay = new Date(intThisYear, intThisMonth, intThisDay);
	intPrintDay = 1;
	secondPrintDay = 1;
	thirdPrintDay = 1;
	Stop_Flag = 0;
	
	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 = "";
	Cal_HTML = ""
			+ "<div id='calendar' class='p_calendar' style='display:none'>"
            + "<div class='p_calendar_con'>"
            + "    <div class='todayA'>"
            + "        <div class='today'>"+intThisYear+"."+intThisMonth+"."+intThisDay+"</div>"
            + "        <div class='btn'>"
            + "            <a href='#//' onclick='calClose();' style='cursor:pointer'><img src='http://image.talkbean.com/front/com/images/btn_close_calendar.gif' alt='close'></a>"
            + "        </div>"
            + "    </div>"
            + "    <div class='changeA'>"
            + "        <a href='#//'><img src='http://image.talkbean.com/front/com/images/btn_calendar2_pre2.gif' class='align_center' onClick='showCalendarPopup("+(intThisYear-1)+","+intThisMonth+",1);'></a>"
            + "        <a href='#//'><img src='http://image.talkbean.com/front/com/images/btn_calendar2_pre.gif' class='align_center' onClick='showCalendarPopup("+intPrevYear+","+intPrevMonth+",1);'></a>"
            +          get_Yearinfo(intThisYear,intThisMonth,intThisDay)
            +          get_Monthinfo(intThisYear,intThisMonth,intThisDay)
            + "        <a href='#//'><img src='http://image.talkbean.com/front/com/images/btn_calendar2_next.gif' class='align_center' onClick='showCalendarPopup("+intNextYear+","+intNextMonth+",1);'></a>"
            + "        <a href='#//'><img src='http://image.talkbean.com/front/com/images/btn_calendar2_next2.gif' class='align_center' onClick='showCalendarPopup("+(intThisYear+1)+","+intThisMonth+",1);'></a>"
            + "    </div>"
            + "    <div class='dateA'>"
            + "        <table border='0' cellspacing='0' cellpadding='0' class='cal_table'>"
            + "            <tr>"
            + "                <th class='font_web'>SUN</th>"
            + "                <th class='font_web'>MON</th>"
            + "                <th class='font_web'>TUE</th>"
            + "                <th class='font_web'>WED</th>"
            + "                <th class='font_web'>THU</th>"
            + "                <th class='font_web'>FRI</th>"
            + "                <th class='font_web'>SAT</th>"
            + "            </tr>";
            
	for (intLoopWeek=1; intLoopWeek < 7; intLoopWeek++) {
        Cal_HTML += "<tr>"
		for (intLoopDay=1; intLoopDay <= 7; intLoopDay++) {
			if (intThirdWeekday > 0) {
			    intThirdWeekday--;
			    Cal_HTML += "<td>";
			} else {
				if (thirdPrintDay > intLastDay) {
				    Cal_HTML += "";
				    Cal_HTML += "<td>";
				} else {
					Cal_HTML += "<td onclick=doClick('"+intThisYear+"','"+day2(intThisMonth).toString()+"','"+day2(thirdPrintDay).toString()+"'); title="+intThisYear+"."+day2(intThisMonth).toString()+"."+day2(thirdPrintDay).toString();
					
					if (intThisYear == NowThisYear && intThisMonth==NowThisMonth && thirdPrintDay==NowThisDay) {
						Cal_HTML += " style='cursor:hand;' class='font_11_Ge'";
					}
					
					Cal_HTML += "><a href='#//' ";
					
					/*
					if (intThisYear != NowThisYear || intThisMonth != NowThisMonth || thirdPrintDay != NowThisDay) {
						switch(intLoopDay) {
							case 7:
							    Cal_HTML += " style='cursor:hand;color:red;' " + thirdPrintDay;
								break;
							case 6:
								Cal_HTML += " style='cursor:hand;color:blue;' " + thirdPrintDay;
								break;
							default:
								Cal_HTML += " style='cursor:hand;' " + thirdPrintDay;
								break;
						}
					}
					*/
					
					Cal_HTML += ">"+thirdPrintDay+"</a>";
				}
				thirdPrintDay++;
				if (thirdPrintDay > intLastDay) {
					Stop_Flag = 1;
				}
			} // 끝부분  '} else {'
            Cal_HTML += "</td>";
		} //  끝부분( 요일단위 루프 시작, 일요일 부터)
		
		Cal_HTML += "</tr>";
		
		if (Stop_Flag==1) break;
	} // 끝부분 주단위
	
    Cal_HTML += "        </table>";
    Cal_HTML += "    </div>";
    Cal_HTML += "</div>";
    Cal_HTML += "</div>";

	document.getElementById('calendarBase').innerHTML = Cal_HTML;
}

function get_Yearinfo(year,month,day) { // 년 정보를 콤보 박스로 표시
    var min = parseInt(year) - 10;
	var max = parseInt(year) + 10;
	var i = new Number();
	var str = new String();

	str = "<select style='width:62px;margin-left:2px;' onchange='showCalendarPopup(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 style='width:48px;margin-left:2px;' onchange='showCalendarPopup("+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;
}

function calClose() {
	document.getElementById('calendar').style.display = "none";
	document.getElementById('calendarBase').style.display="none";
}

