    var oObjDate = null;
    var oObjForm = null;
    var oPopup   = window.createPopup();    // ÆË¾÷ À©µµ¿ì¸¦ ¼±¾ðÇÑ´Ù.
    var chkHoli  = false;
    var monDays = "31;28;31;30;31;30;31;31;30;31;30;31;".split(";");
	
    // ÀÔ·ÂµÈ ÀÏÀÚ DataÀÇ Çü½ÄÀ» °Ë»çÇÑ´Ù.
    function appCheckData( arg ) {
        var date = arg.split(".");

        if( arg == "" ) {
        	return true;
        } else if( arg.indexOf(" ") != -1 || date.length != 3 ) {   // ³â.¿ù.ÀÏ Çü½ÄÀÌ ¸Â´ÂÁö °Ë»ç
            alert("YYYY.MM.DD Çü½ÄÀ¸·Î ³Ö¾îÁÖ¼¼¿ä");
            oObjDate.focus();
            return false;
        } else {
            // year check
            if( date[0].length != 4 ) {
                alert("¿¬µµ Á¤º¸°¡ Àß¸ø ÀÔ·ÂµÇ¾ú½À´Ï´Ù.");
                oObjDate.focus();
                return false;
            }

            // month check
            if( date[1].length != 2 || new Number(date[1]) > 12 || new Number(date[1]) < 1 ) {
                alert("¿ù Á¤º¸°¡ Àß¸ø ÀÔ·ÂµÇ¾ú½À´Ï´Ù.");
                oObjDate.focus();
                return false;
            }

            // day check
            var lastDay;
            // ¿ùº° ¸¶Áö¸· ³¯Â¥¸¦ ¾ò´Â´Ù.
            if( date[1] == "02" )
                lastDay = getFebLength( date[0] );
            else
                lastDay = parseInt(monDays[ date[0] - 1 ]);

            // ÀÏÀÚ°¡ ¸¶Áö¸· ³¯Â¥¸¦ ³Ñ¾ú´ÂÁö È®ÀÎÇÑ´Ù.
            if( date[2].length != 2 || new Number(date[2]) > lastDay ) {
                alert("ÀÏ Á¤º¸°¡ Àß ¸ø µÇ¾ú½À´Ï´Ù.");
                oObjDate.focus();
                return false;
            }
            return true;
        }
    }

    // À±´Þ ¿©ºÎ¸¦ °è»êÇÑ´Ù.
    function getFebLength(theYear) {
        theYear = (theYear < 1900) ? theYear + 1900 : theYear;
        if( ( theYear % 4 == 0 && theYear % 100 != 0 ) || theYear % 400 == 0 ) {
            return 29;
        }
        return 28;
    }

    // ÇØ´ç ¿¬µµÀÇ Ã¹Â° ¿äÀÏÀ» ±¸ÇÑ´Ù.
    function getFirstDay(theYear){
        var firstDate = new Date(theYear,this.offset,1);
        return firstDate.getDay();
    }

    // ¿ù, ÀÏ Á¤º¸°¡ ÇÑÀÚ¸®ÀÎ°æ¿ì ¾Õ¿¡ '0'À» ºÙÀÎ´Ù.
    function setCalendarZero(sVal)   {
        sVal = sVal.toString();
        if( sVal.length == 1 ) {
            return sVal = "0" + sVal;
        } else {
            return sVal = sVal;
        }
    }

    // ´Þ·ÂÀ» ±×·Á ÁØ´Ù.
    function reDrawCalendar(sDate)   {
        var tDate = sDate;
        var nLoop = 0;                
        var oObj  = tblDayList.rows;
        
        var nLastDay   = parseInt(monDays[ sDate.substring(4,6) - 1  ]);
        
        if( sDate.substring(4, 6) == "02" ) {
            nLastDay = getFebLength(sDate.substring(0,4));
        }

        nowYear.innerHTML  = sDate.substring(0,4);
        nowMonth.innerHTML = sDate.substring(4,6);

        var anchorDay  = new Date(sDate.substring(0,4) + "/" + sDate.substring(4,6) + "/01");
        var firstDay   = anchorDay.getDay();  

        var nRoop      = 0; // ÁÖ Á¤º¸
        var nCoop      = 0; // ¿äÀÏ Á¤º¸
        var nChk       = parseInt(sDate.substring(6,8));    // ÇöÀç ÀÏÀÚ
        var sTblList   = "<table id='tblDayList' width='170' border='1' cellpadding='0' cellspacing='0' bordercolor='#A4A15D'  bordercolordark='#FFFFFF' bordercolorlight='#A4A15D'>";

        var activeHeight = "24px";
        var loopCount    = 5;
        
        ///////////////////////////////////////////////////////
        // ¿äÀÏ¿¡ µû¶ó LoopÀÇ È¸¼ö¸¦ ±¸ÇÑ´Ù.
        ///////////////////////////////////////////////////////
        if( ( firstDay > 4 && nLastDay > 30 ) || ( firstDay > 5 && nLastDay > 29 ) ) {
        	activeHeight = "20px";
        	loopCount    = 6;
		}
		
        for ( nRoop = 0; nRoop < loopCount; nRoop++ ) {
            sTblList = sTblList + "<tr align=center height='" + activeHeight + "' bgcolor='#F3F2DB'>";
            for( nCoop = 0; nCoop < 7; nCoop++ ) {
                absDay = nRoop * 7 + nCoop;
                // Ã¹ÁÖÀÇ ÀÌÀü´ÞÀÌ°Å³ª ¸¶Áö¸·ÁÖÀÇ ´ÙÀ½´Þ Á¤º¸ÀÎ °æ¿ì
                if( ( absDay < firstDay ) || ( absDay >= ( nLastDay + firstDay ) ) )  {
                    if( nCoop == 0 ) {
                        sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt;\">&nbsp;</td>";
                    } else if( nCoop == 6 ) {
                        sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt;\">&nbsp;</td>";
                    } else {
                        sTblList = sTblList + "<td width='14%' style=\"line-height:14px; font-size: 8pt;\">&nbsp;</td>";
                    }
                } else { // ÀÏÀÚ Á¤º¸ Ãâ·Â
                    prnDay = absDay - firstDay + 1;
                    if( nChk == prnDay ) {  // ¼±ÅÃµÈ ÀÏÀÚÀÎ °æ¿ì
                        if( nCoop == 0 ) {
                            sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt; color: #8A0017; font-family: Arial, ±¼¸²; font-weight: bold; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</TD>";
                        } else if( nCoop == 6 ) {
                            sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt; color: #004B9F; font-family: Arial, ±¼¸²; font-weight: bold; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        } else {
                            sTblList = sTblList + "<td width='14%' style=\"line-height:14px; font-size: 8pt; color: #333333; font-family: Arial, ±¼¸²; font-weight: bold; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        }
                    } else {
                        if( nCoop == 0 ) {
                            sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt; color: #8A0017; font-family: Arial, ±¼¸²; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        } else if( nCoop == 6 ) {
                            sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt; color: #004B9F; font-family: Arial, ±¼¸²; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        } else {
                            sTblList = sTblList + "<td width='14%' style=\"line-height:14px; font-size: 8pt; color: #333333; font-family: Arial, ±¼¸²; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        }
                    }
                }
            }
            sTblList = sTblList + "</tr>";
        }
        divDayList.innerHTML = sTblList + "</table>";
    }

    // ¿ù Á¤º¸°¡ ¹Ù²î´Â °æ¿ì ´Þ·ÂÀ» ´Ù½Ã ±×¸°´Ù.
    function resetMonth(oYear, oMonth, odivDay, nMonth) {
        var anchorDay = new Date(oYear.innerHTML + "/" + oMonth.innerHTML + "/01");
        anchorDay.setMonth(anchorDay.getMonth() + nMonth);
        var sDate = anchorDay.getFullYear() + setCalendarZero(anchorDay.getMonth() + 1) + setCalendarZero(anchorDay.getDate());

        var nLastDay   = parseInt(monDays[ sDate.substring(4,6) - 1  ]);
        if( sDate.substring(4, 6) == "02" ) {
            nLastDay   =  getFebLength(sDate.substring(0,4));
        }

        oYear.innerHTML  = sDate.substring(0,4);
        oMonth.innerHTML = sDate.substring(4,6);

        var anchorDay  = new Date(sDate.substring(0,4) + "/" + sDate.substring(4,6) + "/01");
        var firstDay = anchorDay.getDay();

        var nRoop      = 0;
        var nCoop      = 0;
        var nChk       = parseInt(oObjDate.value.substring(8, 10));
        if( nChk > nLastDay )
            nChk = nLastDay;

        var sTmp = sDate.substring(0,4) + "." + sDate.substring(4,6) + "." + nChk;
        if( sTmp.length == 9 )
            sTmp = oYear.innerHTML + "." + oMonth.innerHTML + "." + "0" + nChk;
        //oObjDate.value = sTmp;

        var sTblList   = "<table id='tblDayList' width='170' border='1' cellpadding='0' cellspacing='0' bordercolor='#A4A15D'  bordercolordark='#FFFFFF' bordercolorlight='#A4A15D'>";


        var activeHeight = "24px";
        var loopCount    = 5;
        if( ( firstDay > 4 && nLastDay > 30 ) || ( firstDay > 5 && nLastDay > 29 ) ) {
        	activeHeight = "20px";
        	loopCount    = 6;
		}
        for( nRoop = 0; nRoop < loopCount; nRoop++ ) {
            sTblList = sTblList + "<tr align=center height=" + activeHeight + " bgcolor='#F3F2DB'>";
            for( nCoop = 0; nCoop < 7; nCoop++ ) {
                absDay = nRoop * 7 + nCoop;
                if( ( absDay < firstDay ) || ( absDay >= ( nLastDay + firstDay ) ) ) {
                    if( nCoop == 0 ) {
                        sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt;\">&nbsp;</td>";
                    } else if( nCoop == 6 ) {
                        sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt;\">&nbsp;</td>";
                    } else {
                        sTblList = sTblList + "<td width='14%' style=\"line-height:14px; font-size: 8pt;\">&nbsp;</td>";
                    }
                } else {
                    prnDay = absDay - firstDay + 1;
                    if( nChk == prnDay ) {
                        if( nCoop == 0 ) {
                            sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt; color: #8A0017; font-family: Arial, ±¼¸²; font-weight: bold; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</TD>";
                        } else if( nCoop == 6 ) {
                            sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt; color: #004B9F; font-family: Arial, ±¼¸²; font-weight: bold; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        } else {
                            sTblList = sTblList + "<td width='14%' style=\"line-height:14px; font-size: 8pt; color: #333333; font-family: Arial, ±¼¸²; font-weight: bold; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        }
                    } else {
                        if( nCoop == 0 ) {
                            sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt; color: #8A0017; font-family: Arial, ±¼¸²; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        } else if( nCoop == 6 ) {
                            sTblList = sTblList + "<td width='15%' style=\"line-height:14px; font-size: 8pt; color: #004B9F; font-family: Arial, ±¼¸²; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        } else {
                            sTblList = sTblList + "<td width='14%' style=\"line-height:14px; font-size: 8pt; color: #333333; font-family: Arial, ±¼¸²; cursor:hand\" onclick=\"parent.selDay(nowYear, nowMonth, this.innerHTML)\">" + prnDay + "</td>";
                        }
                    }
                }
            }
            sTblList = sTblList + "</tr>";
        }
        odivDay.innerHTML = sTblList + " </table>";
    }



	//¿À´Ã³¯Â¥

	function toDate(){

		var now = new Date();

		var year = now.getYear();

		var month = now.getMonth()+ 1;
	
	var day = now.getDate();
	

	if(month < 10){

			month = "0" + month;

		}

		if(day < 10){
		
	day = "0" + day;

		}
		return year +"."+ month +"."+ day;
	}

    // È­¸é¿¡ ´Þ·ÂÀ» Ãâ·ÂÇÑ´Ù.
    function showCalendar(oMyform, oDate, oObj, nX, nY) {
        var objDate = eval(oDate);
		var curCalDate = "";
        oObjDate = eval(oDate);

        if( appCheckData(objDate.value) == false )      // Date Á¤º¸¸¦ °Ë»çÇÑ´Ù.
            return;

        var oPopupBody = oPopup.document.body;          // ÆË¾÷ À©µµ¿ìÀÇ body°´Ã¼
		if( objDate.value == "") {
			curCalDate = toDate();
			//objDate.value = curCalDate ;
		}else {
			curCalDate = objDate.value;
		}
        var date = curCalDate.split(".");
		
        reDrawCalendar(date[0] + date[1] + date[2]);    // ´Þ·ÂÀ» ±×¸°´Ù.


        oPopupBody.innerHTML = divCalendar.innerHTML;   // ±×·ÁÁø ´Þ·ÂÀ» ÆË¾÷ À©µµ¿ì¿¡ »ðÀÔÇÑ´Ù.
        oPopup.show(nX - 156, nY + 9, 169, 167, oObj);  // ÆË¾÷ À©µµ¿ì¸¦ È­¸é¿¡ Ãâ·ÂÇÑ´Ù.
    }

    function selDay(oYear, oMon, sDay)  {
        // ³â,¿ù,ÀÏ Á¤º¸¸¦ yyyy.mm.dd Æ÷¸äÀ¸·Î º¯°æÇÑ´Ù.
        var sTmp = oYear.innerHTML + "." + oMon.innerHTML + "." + sDay;
        if( sTmp.length == 9 )
            sTmp = oYear.innerHTML + "." + oMon.innerHTML + "." + "0" + sDay

        oObjDate.value = sTmp;  // ¼±ÅÃµÈ ÀÏ Á¤º¸¸¦ ÇØ´ç ÀÏÀÚ ÇÊµå¿¡ Àû¿ëÇÑ´Ù.
		oObjDate.focus();
        oPopup.hide();          // ´Þ·ÂÀ» ¼û±ä´Ù.
    }

    function dtDataChk( frmDate, chk ) {

        var dtObj

        if( (dtObj = eval("frm." + frmDate) ) != null ) {
            sVal = dtObj.value;
            if (sVal.length < 8) {
                alert('³¯Â¥È®ÀÎ');
                window.event.cancelBubble = true;
                dtObj.focus();
                return false;
            }
            if (sVal.substr(4, 1) != '-') {
                sVal = sVal.substr(0, 4) + '-' + sVal.substr(4, sVal.length)
            }
            if (sVal.substr(7, 1) != '-') {
                sVal = sVal.substr(0, 7) + '-' + sVal.substr(sVal.length - 2, 2)
            }
            if (sVal.length != 10) {
                alert('³¯Â¥È®ÀÎ');
                window.event.cancelBubble = true;
                dtObj.focus();
                return false;
            }

            if( sVal.substr(5, 2) < 1 || sVal.substr(5, 2) > 12 ) {
                alert('¿ù Á¤º¸¸¦ Àß ¸ø ÀÔ·ÂÇÏ¼Ì½À´Ï´Ù.');
                window.event.cancelBubble = true;
                dtObj.focus();
                return false;
            }
            if( sVal.substr(8, 2) < 1 || sVal.substr(8, 2) > 31 ) {
                alert('ÀÏ Á¤º¸¸¦ Àß ¸ø ÀÔ·ÂÇÏ¼Ì½À´Ï´Ù.');
                window.event.cancelBubble = true;
                dtObj.focus();
                return false;
            }

            for (nLoc = 0; nLoc < sVal.length ;nLoc++ ) {
                if (sVal.substr(nLoc, 1) == '-') {
                    if (!((nLoc == 4) || (nLoc == 7))) {
                        alert("³¯Â¥È®ÀÎ");
                        window.event.cancelBubble = true;
                        dtObj.focus();
                        return false;
                    }
                }
            }
            // day check
            var lastDay;
            var dayValue = sVal.substr(8, 2);
            var monValue = sVal.substr(5, 2);
            var yearValue = sVal.substr(0, 4);
            // ¿ùº° ¸¶Áö¸· ³¯Â¥¸¦ ¾ò´Â´Ù.
            if( monValue == "02" )
                lastDay = getFebLength( yearValue );
            else
                lastDay = parseInt(monDays[ yearValue - 1 ]);

            // ÀÏÀÚ°¡ ¸¶Áö¸· ³¯Â¥¸¦ ³Ñ¾ú´ÂÁö È®ÀÎÇÑ´Ù.
            if( dayValue.length != 2 || new Number(dayValue) > lastDay ) {
                //alert("ÀÏ Á¤º¸°¡ Àß ¸ø µÇ¾ú½À´Ï´Ù.");
                dtObj.focus();
                return false;
            }

            dtObj.value = sVal;

            if( chk != true ) {

            	var dateObj = eval("frm." + chk);
            	if( !chkFromTo( dtObj, dateObj ) ) {
            		//alert("½ÃÀÛÀÏ°ú Á¾·áÀÏÀÌ Àß ¸ø ¼³Á¤µÇ¾ú½À´Ï´Ù");
            		return false;
            	}
            }
            return true;
        }
        return false;
    }

    function callCalendar(frmDate) {
				
        var dtObj = null;
        if( (dtObj = eval("frm." + frmDate) ) != null ) {

            showCalendar(frm, dtObj, document.body, event.x, event.y );
        }
    }

    // ±â°£ÀÎ °æ¿ì From - ToÀÇ ÀÏÀÚ°¡ ¹Ù²î´Â°ÍÀ» È®ÀÎÇÑ´Ù.
    function chkFromTo( date1, date2 ) {
        var fDate = date1.value.split(".");
        var tDate = date2.value.split(".");

        var date11 = fDate[0] + fDate[1] + fDate[2];
        var date22 = tDate[0] + tDate[1] + tDate[2];

        if( eval(date22 - date11) < 0 ) {
            date2.focus();
            return false;
        }
        return true;
    }

	///////////////////////////////////////////////////////////////////////////////
	// ÇÔ¼ö¸í : SubtractDate(strBaseDate, interval)
	// ³»  ¿ë : ±âÁØÀÏ(strBaseDate)·Î ºÎÅÍ n(interval)ÀÏ ÀÌÀüÀÇ ³¯Â¥ ÃßÃâ
	// strBaseDate  Format : YYYYMMDD
	// Return Value Format : YYYYMMDD
	function SubtractDate(strBaseDate, interval) {

		var year   = strBaseDate.substring( 0, 4 );
		var month  = parseInt(strBaseDate.substring( 4, 6 )) - 1;
		var day    = strBaseDate.substring( 6, 8 );

		var todate = new Date(year,month,day);

		var date = new Date();

		date.setTime(todate.getTime() - (1000 * 60 * 60 * 24 * interval));
	
		yyyy = date.getFullYear().toString();
		mm   = (parseInt(date.getMonth()) + 1).toString();
		dd   = date.getDate().toString();
	
		yyyy = (yyyy.length ==1) ? '0'+yyyy : yyyy;
		mm   = (mm.length == 1)  ? '0'+mm   : mm;
		dd   = (dd.length == 1)  ? '0'+dd   : dd;
	
		return yyyy+mm+dd;
	
	}

	///////////////////////////////////////////////////////////////////////////////
	// ÇÔ¼ö¸í : CheckInterval(strBaseDate, interval)
	// ³»  ¿ë : strBaseDate°¡ ÇöÀç ½ÃÁ¡ºÎÅÍ n(interval)ÀÏ »çÀÌ¿¡ Á¸ÀçÇÏ´Â°¡¸¦ °Ë»ç
	// strBaseDate  Format : YYYYMMDD
	// Return Value Format : YYYYMMDD
	// nÀÏ ÀÌ³»¿¡ ÀÖÀ¸¸é true
	// nÀÏÀ» ¹þ¾î³ª ÀÖÀ¸¸é false
	function CheckInterval(strBaseDate, interval) {
	
		var year   = parseInt(strBaseDate.substring( 0, 4 ));
		var month  = parseInt(strBaseDate.substring( 4, 6 )) - 1;
		var day    = parseInt(strBaseDate.substring( 6, 8 ));
	
		var baseDate = new Date(year,month,day);
		var nowDate  = new Date();
	
		var days_interval = nowDate.getTime() - baseDate.getTime();
	
		var days = Math.floor(days_interval / (1000 * 60 * 60 * 24));
	
		if (days > interval) {
			return false;
		} else {
			return true;
		}
	}        