/*************************************************************************
 *  FILE NAME     :   formCheck.js
 *  DESCRIPTION   :   form Ã¼Å©½Ã »ç¿ëµÇ´Â common javascipt function ÀÌ´Ù.
 *  Function List :   jf_lengthCheck()
 *                    jf_blankCheck()
 *                    jf_isTypeCheck()
 *                    jf_addComma()
 *                    jf_moneyCheck()
 *                    jf_enterKeyDisable()
 *                    jf_strToUpper()
 *                    jf_str_replace()
 *                    jf_delSQuote()
 *                    jf_encodeSpecial()
 *                    jf_decodeSpecial()
 *                    jf_editSpecial()
 *                    jf_dateFormat()
 *                    jf_removeComma()
 *                    jf_stringToDate()
 *                    jf_gapDaysCheck()
 *                    jf_disabledForm()
 *                    jf_readonlyForm()
 *  INPUT PARMS   :   formÀÌ³ª streamÀ¸·Î ¹Þ¾Æ µéÀÌ´Â °ª
 *  DATABASE      :   ¾²ÀÌ´Â Table list
 *  CALLED FILE   :   ÀÌ ÆÄÀÏÀ» ºÎ¸¥ FILE¸í
 *  CALL FILE     :   ÀÌ ÆÄÀÏ¿¡¼­ ºÎ¸£´Â FILE LIST
 *************************************************************************
 *  MODIFICATIONS
 *       DATE      SE NAME    JOB DESC          CSR NO
 *************************************************************************
 *    2003.04      nkpark     ½Å±Ô              ¾øÀ½
 *
 *************************************************************************/

   /************************************************************************************
    *  Function Name : jf_lengthCheck()
    *  Description   : ¹®ÀÚ¿­ÀÇ ±æÀÌ¸¦ Ã¼Å©ÇÏ¿© Á¤ÇÕ¼º ¿©ºÎ¸¦ ÆÇ´ÜÇÏ¿©ÁØ´Ù
    *  Return Value  : True
    *                  False
    *  usage :         if(!jf_lengthCheck(1,100,f.ar_tel_no.value,"MESSAGE",f.ar_tel_no)) return;
    *                  if(!jf_lengthCheck(1,100,f.ar_tel_no.value,"Message", null )) return;
    *                  if(!jf_lengthCheck(1,100,f.ar_tel_no.value,null, null )) return;
    ************************************************************************************/
    function jf_lengthCheck(min,max,data,strErrMessage,focus) {
        var count = 0;
		if(data == ""){
			alert(strErrMessage);
			focus.focus();
			focus.select();
			return false;
		}
        for ( var i=0; i < data.length; i++ ) {
            if( data.charCodeAt(i) < 127 )
                count++;
            else
                count = count + 2;
        }

        if ((count >= min) && (count <= max) ) return true;

        if ( strErrMessage != null  ) alert( strErrMessage );

        if ( focus != null ) {
            focus.focus();
            focus.select();
        }

        return false;
    }

   /************************************************************************************
    *  Function Name : jf_blankCheck()
    *  Description   : °ø¹éÀ» Ã¼Å©ÇØ¼­ µ¥ÀÌÅ¸°¡ ¾øÀ¸¸é false¸¦ returnÇÑ´Ù.
    *  Return Value  : True
    *                  False
    *  usage :         if(!jf_blankCheck(f.ar_tel_no.value,"MESSAGE",f.ar_tel_no)) return;
    ************************************************************************************/
    function jf_blankCheck(data,strErrMessage,focus) {
        if ( data != '' ) return true;

        if ( strErrMessage != null  ) alert( strErrMessage );

        if ( focus != null ) {
            focus.focus();
//            focus.select();   select¹Ú½º¿¡¼­´Â ¿¡·¯³².
        }

        return false;
    }

   /************************************************************************************
    *  Function Name : jf_isTypeCheck()
    *  Description : DataÀÇ TypeÀ» Ã¼Å©ÇÏ¿©ÁØ´Ù
    *  Return Value : Yes
    *  usage :         if(!jf_isTypeCheck("AN",f.ar_tel_no.value,"MESSAGE",f.ar_tel_no)) return;
    *                  if(!jf_isTypeCheck("AN",f.ar_tel_no.value,"Message", null )) return;
    *                  if(!jf_isTypeCheck("AN",f.ar_tel_no.value,null, null )) return;
    ************************************************************************************/
    function jf_isTypeCheck(type,data,strErrMessage,focus) {
        var count=0;
        var bSwitch = true;

        switch (type.toUpperCase()) {
            case 'F' : //½Ç¼öÃ¼Å©...
                data = jf_removeComma(data);    //ÄÞ¸¶Á¦°Å
                var Dotcount = 0;
                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) == 46 ) {
                        Dotcount++;
                        if ( Dotcount > 1 ){ //µµÆ®°¡ µÎ¹øÀÌ»ó Ç¥±â µÇ¾ú´ÂÁöÈ®ÀÎÇÏ´Ù.
                            bSwitch = false;
                            break;
                        }

                        if(i == 0 ) {    //µµÆ®°¡ ¸Ç¾Õ¿¡ ¿ÀÁö ¾Ê¾Ò´ÂÁö È®ÀÎÇÑ´Ù.
                            bSwitch = false;
                            break;
                        }
                    }
                    else {
                        if ( data.charCodeAt(i) < 48 || data.charCodeAt(i) > 57) {
                            bSwitch = false;
                            break;
                        }
                    }
                }
                break;
            case 'FLOAT' :
            //Return number value ¼ýÀÚ,µµÆ® ÀÌ¿Ü ¹®ÀÚ´Â ÀÚ¸§
            //»ç¿ë¹ý : onkeyup="jf_isTypeCheck('FLOAT',this,null,null)"
                var nRtn="";
                var sData = data.value;
                var Dotcount = 0;
                for ( var i=0; i < sData.length; i++ ) {
                    if ( (sData.charCodeAt(i) > 47 && sData.charCodeAt(i) < 58) || sData.charCodeAt(i) == 46) {
                        if ( sData.charCodeAt(i) == 46 ) {  // µµÆ®°¡ ÀÔ·ÂµÇ¾úÀ» °æ¿ì
                            Dotcount++;
                            if ( Dotcount > 1 ){ //µµÆ®°¡ µÎ¹øÀÌ»ó Ç¥±â µÇ¾ú´ÂÁöÈ®ÀÎÇÏ´Ù.
                                break;
                            }

                            if(i == 0 ) {    //µµÆ®°¡ ¸Ç¾Õ¿¡ ¿ÀÁö ¾Ê¾Ò´ÂÁö È®ÀÎÇÑ´Ù.
                                break;
                            }
                        }
                        nRtn = nRtn+sData.charAt(i);
                    }
                }
                data.value = nRtn;
                return;
                break;
            case 'N' : //Number ASCII Code 48 ~ 57
                data = jf_removeComma(data);    //ÄÞ¸¶Á¦°Å
                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) < 48 || data.charCodeAt(i) > 57) {
                        bSwitch = false;
                        break;
                    }
                }
                break;
            case 'NUM' :
            //Return number value ¼ýÀÚÀÌ¿Ü ¹®ÀÚ´Â ÀÚ¸§
            //»ç¿ë¹ý : onkeyup="jf_isTypeCheck('NUM',this,null,null)"
                var nRtn="";
                var sData = data.value;
                var zeroCount = 0;
                for ( var i=0; i < sData.length; i++ ) {
                    if ( sData.charCodeAt(i) > 47 && sData.charCodeAt(i) < 58) {
                        if ( sData.charCodeAt(i) == 48 ) {  //zero°¡ ÀÔ·ÂµÇ¾úÀ» °æ¿ì
                            zeroCount++;
                            if( i == 0 ) {    //zero°¡ ¸Ç¾Õ¿¡ ¿ÀÁö ¾Ê¾Ò´ÂÁö È®ÀÎÇÑ´Ù.
                                break;
                            }
                        }
                        nRtn = nRtn+sData.charAt(i);
                    }
                }
                data.value = nRtn;
                return;
                break;
            case 'NH' : //Number(48~57) + Hippen( 45 )
                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) != 45 ) {
                        if ( data.charCodeAt(i) < 48 || data.charCodeAt(i) > 57){
                            bSwitch = false;
                            break;
                        }
                    }
                }
                break;
            case 'A' : //Alphabetic(65~90)
                data = data.toUpperCase()
                for ( var i=0; i < data.length; i++ ) {
                    if (( data.charCodeAt(i) < 65 || data.charCodeAt(i) > 90 ) && ( data.charCodeAt(i) != 32)) {
                            bSwitch = false;
                            break;
                    }
                }
                break;
            case 'AN' : //AlphaNumeric
                data = data.toUpperCase()
                for ( var i=0; i < data.length; i++ ) {
                    if (( data.charCodeAt(i) < 48 || data.charCodeAt(i) > 57) && ( data.charCodeAt(i) != 32)) {
                        if ( data.charCodeAt(i) < 65 || data.charCodeAt(i) > 90 ) {
                            bSwitch = false;
                            break;
                        }
                    }
                }
                break;
            case 'ADH' : //Alphabetic( 65~90) + µµÆ®(46) + Hippen(45) + °ø¹é(32)
                data = data.toUpperCase()
                for ( var i=0; i < data.length; i++ ) {
                    if ( (data.charCodeAt(i) < 65 && data.charCodeAt(i) != 45 && data.charCodeAt(i) != 46 && data.charCodeAt(i) != 32) || (data.charCodeAt(i) > 90 && data.charCodeAt(i) != 45 && data.charCodeAt(i) != 46 && data.charCodeAt(i) != 32) ) {
                        bSwitch = false;
                        break;
                    }
                }
                break;
            case 'ENG' : //Only English ¼ýÀÚ Æ÷ÇÔ
                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) > 127  ) {
                        bSwitch = false;
                        break;
                    }
                }
                break;
            case 'KOR' : //Only Korean
                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) < 0xAC00 || data.charCodeAt(i) > 0xD7A3){
                        if (( data.charCodeAt(i) < 12593 || data.charCodeAt(i) > 12643 ) && ( data.charCodeAt(i) != 32)) {
                            bSwitch = false;
                            break;
                        }
                    }
                }
                break;
            case 'B' : //Blank ¹®ÀÚ¿­Áß ºó°ø¹é Ã¼Å© ¸¶Áö¸·ÀÌ °ø¹éÀÌ¶óµµ false
                for( var i=0; i<data.length; i++) {
                    if ( data.charCodeAt(i) == 32 ) {
                        bSwitch = false;
                        break;
                    }
                }
                break;
            case 'E' : //Empty ºñ¾îÀÖ´Â ¹®ÀÚ¿­ Ã¼Å© SPACE¸¸ µé¾î ¿Â°æ¿ì Ã¼Å©
                if( data.length < 1 ) {
                    bSwitch = false;
                    break;
                }

                for( var i=0; i<data.length; i++) {
                    if ( data.charCodeAt(i) == 32 ) count++;
                }

                if ( count == data.length ) bSwitch = false;

                break;
            case 'EMAIL' : //EMAIL Check
                var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
                if ( filter.test(data) ) {
                    bSwitch = false;
                    break;
                }

                break;
            case 'SSN' : // ÁÖ¹Îµî·Ï¹øÈ£Ã¼Å©
                if ( data.length != 13 ) {
                    bSwitch = false;
                    break;
                }
                var sum_1 = 0;
                var sum_2 = 0;
                var at = 0;
                sum_1 = (data.charAt(0)*2)+(data.charAt(1)*3)+(data.charAt(2)*4)+(data.charAt(3)*5)+(data.charAt(4)*6)+(data.charAt(5)*7)+(data.charAt(6)*8)+(data.charAt(7)*9)+(data.charAt(8)*2)+(data.charAt(9)*3)+(data.charAt(10)*4)+(data.charAt(11)*5);
                sum_2 = sum_1%11;

                if (sum_2 == 0) {
                    at = 10;
                }
                else {
                    if (sum_2 == 1) {
                        at = 11;
                    }
                    else {
                        at = sum_2;
                    }
                }

                att = (11-at);

                if (data.charAt(12) != att) bSwitch = false;

                break;
            case 'DATE' : // DATE Check Input : YYYYMMDD
                if( data.length != 8 ) {
                    bSwitch = false;
                    break;
                }

                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) < 48 || data.charCodeAt(i) > 57) {
                        bSwitch = false;
                        break;
                    }
                }

                var strYear = data.substr(0, 4);
                var strMonth = data.substr(4, 2);
                var strDay = data.substr(6, 2);
                LastDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

                if ( strYear < 1900 ) {
                    bSwitch = false;
                    break;
                }

                if ((strYear % 4 == 0) && (strYear % 100 != 0) || (strYear % 400 == 0)) {
                    LastDay[1] = 29;
                }

                if ((strMonth <= 0) || (strMonth > 12)) {
                    bSwitch = false;
                    break;
                }

                if ((strDay > LastDay[strMonth-1]) || (strDay <= 0)) {
                    bSwitch = false;
                }
                break;
            case 'YYYYMM' : // DATE Check Input : YYYYMM
                if( data.length != 6 ) {
                    bSwitch = false;
                    break;
                }

                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) < 48 || data.charCodeAt(i) > 57) {
                        bSwitch = false;
                        break;
                    }
                }

                var strYear = data.substr(0, 4);
                var strMonth = data.substr(4, 2);

                if ( strYear < 1900 ) {
                    bSwitch = false;
                    break;
                }

                if ((strMonth <= 0) || (strMonth > 12)) {
                    bSwitch = false;
                    break;
                }

                break;
            case 'YYYY' : // DATE Check Input : YYYY
                if( data.length != 4 ) {
                    bSwitch = false;
                    break;
                }

                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) < 48 || data.charCodeAt(i) > 57) {
                        bSwitch = false;
                        break;
                    }
                }

                var strYear = data;

                if ( strYear < 1900 ) {
                    bSwitch = false;
                    break;
                }

                break;
            case 'TEL' : // Phone Number Check
                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charCodeAt(i) != 45 ) {
                        if ( data.charCodeAt(i) < 48 || data.charCodeAt(i) > 57) {
                            bSwitch = false;
                            break;
                        }
                    }
                }

                if( bSwitch ) {
                    if( data.length < 7 || data.length > 13 ) bSwitch = false;
                }
                break;
            case 'SQ' : // Single Quotation Check
                for ( var i=0; i < data.length; i++ ) {
                    if ( data.charAt(i) == "'" ) {
                        bSwitch = false;
                        break;
                    }
                }
                break;
        }
        //Á¤»óÀûÀÌ¸é
        if (bSwitch) return true;

        //ºñÁ¤»óÀûÀÎ °æ¿ì ¸Þ¼¼Áö°¡ ÀÖ´Â °æ¿ì
        if ( strErrMessage != null  ) alert( strErrMessage );

        if ( focus != null ) {
            focus.focus();
            focus.select();
        }

        return false;
    }

   /************************************************************************************
    *  Function Name : jf_addComma(str)
    *  Description : ÀÔ·Â¹ÞÀº ±Ý¾×¿¡ ¼¼ÀÚ¸®¸¶´Ù comma(,)¸¦ ºÙ¿©¼­ ¸®ÅÏÇÑ´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_addComma(str) {
        if(str == null || str == "") return 0;
        var txtNumber = '' + str;
        var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
        var arrNumber = txtNumber.split('.');
        if(arrNumber[0] == '') arrNumber[0] = '0';
        arrNumber[0] += '.';
        do {
            arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
        } while (rxSplit.test(arrNumber[0]));

        if( arrNumber.length > 1 ) {
            return arrNumber.join('');
        }
        else {
            return arrNumber[0].split('.')[0];
        }
    }

   /************************************************************************************
    *  Function Name : jf_moneyCheck()
    *  Description : ¼ýÀÚ,¸¶ÀÌ³Ê½º,µµÆ®¸¸ ÀÔ·Â¹Þ´Â´Ù.
    *                onkeypress Event¿¡¼­ »ç¿ë
    *  Return Value : Yes
    *  usage :   <input type=text name=money value='' size=25 maxlength=15 class=input2
    *                   onkeypress='jf_moneyCheck()'>
    ************************************************************************************/
    function jf_moneyCheck() {
        // ie¿¡¼­¸¸ ÀÛµ¿ (45:¸¶ÀÌ³Ê½º(-), 46:µµÆ®(.))
        var keyCode = event.keyCode;
        if ( (keyCode > 47 && keyCode < 58) || keyCode == 45 || keyCode == 46 ) {
        }
        else {
//          alert("¹®ÀÚ´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù."+"["+keyCode+"]")
            event.returnValue=false;
        }
    }

   /************************************************************************************
    *  Function Name : jf_enterKeyDisable()
    *  Description : ÀÔ·Â¹Ú½º¿¡¼­ EnterÅ°¸¦ ÀÔ·ÂÇßÀ» °æ¿ì disable ½ÃÅ²´Ù.
    *  Return Value :
    *  usage : <input type=text name=ar_txt onkeydown='jf_enterKeyDisable()'>
    ************************************************************************************/
    function jf_enterKeyDisable(){
        if( event.keyCode == 13 ){
            event.returnValue = false;
        }
    }

   /************************************************************************************
    *  Function Name : jf_strToUpper()
    *  Description : ÀÔ·Â¹ÞÀº ¹®ÀÚ Áß ¿µ¹® ¼Ò¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î º¯È¯ÇÑ´Ù.
    *                onkeypress Event¿¡¼­ »ç¿ë
    *  Return Value : Yes
    *  usage :   <input type=text name=alpha value='' size=25 maxlength=15 class=input
    *                    onkeypress="javascript:jf_strToUpper()">
    ************************************************************************************/
    function jf_strToUpper() {
        var key = window.event.keyCode;

        if (key == 13) {
            return false;
        }
        if (97 <= key && key <= 122) {
            window.event.keyCode = key - 97 + 65;
            str1 = window.event.keyCode;
        }
    }

   /************************************************************************************
    *  Function Name : jf_str_replace(sInput, sSearch, sReplace)
    *  Description : ¹®ÀÚ¿­(sInput)¿¡¼­ Æ¯Á¤¹®ÀÚ(sSearch)¸¦ ´ëÄ¡¹®ÀÚ(sReplace)·Î º¯È¯ÇÑ´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_str_replace(sInput, sSearch, sReplace) {
        if (sInput == null || sSearch == null || sReplace == null) return "";
        var re = eval("/"+sSearch+"/g");
        return sInput.replace(re, sReplace);
    }

   /************************************************************************************
    *  Function Name : jf_delSQuote(str)
    *  Description : ¹®ÀÚ¿­¿¡¼­ ''¸¦ '·Î ¹Ù²Û´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_delSQuote(str) {
        if (str == null || str == "") return "";
        var re = /''/g;
        return str.replace(re, "'");
    }

   /************************************************************************************
    *  Function Name : jf_encodeSpecial(str)
    *  Description : ¹®ÀÚ¿­¿¡¼­ Æ¯¼ö¹®ÀÚ¸¦ encodingÇÑ´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_encodeSpecial(str) {
        if (str == null || str == "") return "";
        var result = "";
        result = str;
        result = jf_str_replace(result, "&", "£¦");
        result = jf_str_replace(result, "<", "£¼");
        result = jf_str_replace(result, ">", "£¾");
        result = jf_str_replace(result, "'", "¡Ç");
        result = jf_str_replace(result, '"', '£¢');
        return result;
    }

   /************************************************************************************
    *  Function Name : jf_decodeSpecial(str)
    *  Description : ¹®ÀÚ¿­¿¡¼­ Æ¯¼ö¹®ÀÚ¸¦ decodingÇÑ´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_decodeSpecial(str) {
        if (str == null || str == "") return "";
        var result = "";
        result = str;
        result = jf_str_replace(result, "£¦", "&");
        result = jf_str_replace(result, "£¼", "<");
        result = jf_str_replace(result, "£¾", ">");
        result = jf_str_replace(result, "¡Ç", "'");
        result = jf_str_replace(result, "''", "'");
        result = jf_str_replace(result, '£¢', '"');
        return result;
    }

   /************************************************************************************
    *  Function Name : jf_editSpecial(str)
    *  Description : ÀÔ·Â³­¿¡¼­ Æ¯¼ö¹®ÀÚ¸¦ ÀÎ½ÄÇÏ°Ô ¹Ù²Û´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_editSpecial(str) {
        if (str == null || str == "") return "";
        var result = "";
        result = str;
        result = jf_str_replace(result, "'", "&#39;");
        result = jf_str_replace(result, '"', '&quot;');
        result = jf_str_replace(result, "<", "&lt;");
        result = jf_str_replace(result, ">", "&gt;");
        return result;
    }

   /************************************************************************************
    *  Function Name : jf_dateFormat(str, type)
    *  Description : yyyymmdd Æ÷¸ËÀ» type(-,/,...)¿¡ µû¶ó Æ÷¸ËÀ» ¹Ù²Û´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_dateFormat(str, type) {
        if (str == null || type == null) return "";
        var strYear = str.substr(0, 4);
        var strMonth = str.substr(4, 2);
        var strDay = str.substr(6, 2);
        return strYear+type+strMonth+type+strDay;
    }

   /************************************************************************************
    *  Function Name : jf_removeComma(str)
    *  Description : ¹®ÀÚ¿­¿¡¼­ ,¸¦ Á¦°ÅÇÑ ÈÄ StringÀ¸·Î returnÇÑ´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_removeComma(str) {
        if(str == null || str == "") return 0;
        var re = /,/g;
        return str.replace(re, "");
    }

   /************************************************************************************
    *  Function Name : jf_stringToDate(str_datetime)
    *  Description : yyyymmd Çü½ÄÀÇ stringÀ» date Çü½ÄÀ¸·Î º¯È¯ÇÑ´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_stringToDate(str_datetime) {
        if (str_datetime == null || str_datetime == "") return "";
        var re_date = /^(\d{4})(\d{2})(\d{2})$/;
        if (!re_date.exec(str_datetime))
            return alert("À¯È¿ÇÑ ³¯Â¥ Æ÷¸ËÀÌ ¾Æ´Õ´Ï´Ù.");
        return (new Date (RegExp.$1, RegExp.$2-1, RegExp.$3));
    }

   /************************************************************************************
    *  Function Name : jf_gapDaysCheck(str_from_date, str_to_date, maxDays)
    *  Description : °Ë»ö±â°£(from~to)¿¡¼­ ÃÖ´ë °Ë»ö °¡´É ÀÏ¼ö¸¦ Ã¼Å©ÇÑ´Ù.
    *  Return Value : Yes
    *  usage :
    ************************************************************************************/
    function jf_gapDaysCheck(str_from_date, str_to_date, maxDays) {
        if( parseInt(str_from_date) > parseInt(str_to_date) ) {
            alert("½ÃÀÛÀÏÀÌ Á¾·áÀÏº¸´Ù Å®´Ï´Ù.");
            return false;
        }

        dt_from_date = jf_stringToDate(str_from_date);
        dt_to_date   = jf_stringToDate(str_to_date);
        daysLeft = (dt_to_date.getTime() - dt_from_date.getTime()) / (1000*60*60*24);

        if( parseInt(daysLeft) > parseInt(maxDays) ) {
            maxMonths = Math.round(maxDays/30);
            return false;
        }
        return true;
    }

   /************************************************************************************
    *  Function Name : jf_disabledForm(obj, disable_flag, clear_flag)
    *  Description : ¼±ÅÃÇÑ ÇÊµå¸¦ disable ½ÃÅ²´Ù.
    *                obj - Àû¿ëÇÒ ÇÊµå
    *                disable_flag - disable ¿©ºÎ(Y or N)
    *                clear_flag - ÇÊµå ÃÊ±âÈ­ ¿©ºÎ(Y or N)
    *  usage :
    *  1) disabled ÇÏ°í, °ªµµ ºñ¿öÁÖ°í ½ÍÀ»¶§
    *     jf_disabledForm(document.forms[0].name, 'Y', 'Y');
    *
    *  2) disabled ¸¦ Ç®°í, °ªÀº À¯ÁöµÇ°Ô ÇÏ°í ½ÍÀ»¶§
    *     jf_disabledForm(document.forms[0].name, 'N', 'N');
    ************************************************************************************/
    function jf_disabledForm(obj, disable_flag, clear_flag) {
        if(clear_flag == 'Y') {
            obj.value = '';
        }

        if(disable_flag == 'Y') {
            obj.disabled = true;
            obj.style.background = "#F1F1F1";
        }
        else {
            obj.disabled = false;
            obj.style.background = "#FFFFFF";
        }
    }

   /************************************************************************************
    *  Function Name : jf_readonlyForm(obj, readonly_flag, clear_flag)
    *  Description : ¼±ÅÃÇÑ ÇÊµå¸¦ readonly ½ÃÅ²´Ù.
    *                obj - Àû¿ëÇÒ ÇÊµå
    *                readonly_flag - readonly ¿©ºÎ(Y or N)
    *                clear_flag - ÇÊµå ÃÊ±âÈ­ ¿©ºÎ(Y or N)
    *  usage :
    *  1) readonly ÇÏ°í, °ªµµ ºñ¿öÁÖ°í ½ÍÀ»¶§
    *     jf_readonlyForm(document.forms[0].name, 'Y', 'Y');
    *
    *  2) readonly ¸¦ Ç®°í, °ªÀº À¯ÁöµÇ°Ô ÇÏ°í ½ÍÀ»¶§
    *     jf_readonlyForm(document.forms[0].name, 'N', 'N');
    ************************************************************************************/
    function jf_readonlyForm(obj, readonly_flag, clear_flag) {
        if(clear_flag == 'Y') {
            obj.value = '';
        }

        if(readonly_flag == 'Y') {
            obj.readOnly = true;
            obj.style.background = "#F1F1F1";
        }
        else {
            obj.readOnly = false;
            obj.style.background = "#FFFFFF";
        }
    }

/********************************************************************************
 *  End Of Program
 ********************************************************************************/