RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
출처 블로그 > 플젝트 하면서 이것 저것
원본 http://blog.naver.com/btchae/80005155493

/*
Text
jsChangeComma( str ) ' -> ` 로 대치
jsStrCheck(checkStr, checkOK)
  들어가서는 안되는 데이타(checkOK)가 checkStr에 포함되어있는지 체크
jsMoveFocus( varTextObj, varLength, varFocusToObj )
  TextBox에서 조건이 만족하면 특정객체로 포커스를 이동
jsCheckNull( toCheck ) toCheck의 값이 Null값인지를 체크
jsDeleteComma( varNumber ) 컴마를 삭제하고 리턴
jsDeleteChar( varText, varDelete ) 문자열에서 해당 character를 지우고 리턴

CheckBox
jsCheckBoxSelectedCnt( FormObj, checkBoxName )
  FormObj에서 checkBox 가 몇개 선택되었는지  리턴한다.
jsToggle(FormObj, elemNm, checkYn)
  특정 폼안의 체크박스오브젝트를 전체선택하거나 전체반전시킴
 
SelectBox
jsCheckSelectBox ( sb ) SelectBox에서 선택된 값의 value를 리턴
jsCheckSelectBoxNm ( sb ) SelectBox에서 선택된 값의 Text를 리턴
cmInitSelectBox( varObjFullNm, varDeleteCnt )
  해당 SelectBox를 초기화 시킨다. varDeleteCnt가 1이면 첫번째값을 지우지 않는다.
cmMakeSelectBox( varObjFullNm, varText, varValue ) 해당 selectBox에 하나의 값을 추가시킴
  
날짜 
jsCheckYYYY(toCheck) 년도를 체크
jsCheckYYYYMM(toCheck) 년월을 체크
jsCheckMM(toCheck) 월을 체크
jsCheckDD(yyyy,mm,toCheck) 일을 체크
jsCheckDate( dateVal ) 날짜를 체크
jsAddYear( startDt, plusYear ) 날짜에 년수를 더함
jsAddMonths( startDt, plusMonth ) 날짜에 월수를 더함
jsGetBetweenDay( startDt, endDt ) 날짜와 날짜사이의 일수를 리턴
jsCheckTime( toCheck ) 시간포맷인지를 체크
jsMakeYyyyMm( varTextObj )
  해당 텍스트박스 객체필드에 YYYY/MM형식으로 [/]를 찍어서 채워준다.
jsMakeYyyyMmString( varText ) 넘어온 값에 날짜형식으로 [/]를 찍어서 리턴.
jsMakeDate( varTextObj ) 넘어온 Object의 값을 날짜형식으로 채워줌
jsMakeDateString( varText )넘어온 값을 날짜형식으로 리턴
toTimeString( varDateObj ) DateObj를 넘겨주면 년월일을 리턴  20030201
jsAfterThisDate( varStdDate , varYYYY , varMM , varDD )
  날짜형식의 문자열에 특정 년, 월, 일을 더한값을 리턴


날짜 체크 사용 예 호출하는 페이지에 다음 부분을 추가

<input ... onKeyUp='jsChkDate(this,lottSearchForm.txtEdate)' onBlur='compareDate()'>


function compareDate(){  

if( jsCheckNull(document.forms[0].txtSdate.value) ||

    jsCheckNull(document.forms[0].txtEdate.value) )
    return;
 
var from = document.forms[0].txtSdate.value.replace(/(\,|\.|\-|\/|\:)/g,'');
var to   = document.forms[0].txtEdate.value.replace(/(\,|\.|\-|\/|\:)/g,'');

if( jsGetBetweenDay(from,to) < 0 ) {
 alert("기간이 잘못 입력되었습니다. 다시입력하세요");
 document.forms[0].txtSdate.value = "";
 document.forms[0].txtEdate.value = "";
 document.forms[0].txtSdate.focus();
 return ;
}

}

function jsChkDate( valObj, nextPos ){

if( valObj.value.length == 8 ) {
 if( !jsCheckDate( valObj.value ) ) {
  alert("일자 입력오류입니다. 다시 입력해 주십시요.");
  valObj.value = '';
  valObj.focus();
  return;
 }  
 jsMakeDate( valObj );
 nextPos.focus();

}

           

 
주민등록번호
jsCheckJumin(toCheck) 주민등록번호 체크

사업자등록번호
jsCheckSaupJa(toCheck) 사업자등록번호 체크

문자열길이 체크
getByteLength(s) 한글2바이트, 영문 1바이트로 바이트수를 리턴

쿠키
setCookie( name, value, expireFlag ) Set Cookie
getCookie( name ) get Cookie

숫자
jsParseInt( varStr ) 문자를 숫자로 변환 null일때
jsConvertNumberToHangul( varNum ) 숫자를 한글로 변환
jsMakeCurrency( varTextObj ) 넘어온 숫자에 컴마를 찍어서 리턴 소숫점 허용안함
jsMakeForeignCurrency( varTextObj ) 넘어온 숫자에 컴마를 찍어서 리턴 소숫점 허용함
jsOnlyNumber( varTextObj ) 해당 텍스트박스 객체에 숫자만 입력받을수 있도록
jsOnlyFloat( varTextObj ) 해당 텍스트박스 객체에 숫자와 1개의 point만을 입력받게 해준다.
jsAddComma( varNumber )
  숫자를 받아서 comma를 찍어서 리턴한다 소수점 인식 숫자가 아닌값 -1을 리턴 음수표현가능
jsAddCommaAndZero( varNumber )
  숫자를 받아서 comma를 찍어서 리턴한다 소수점 인식 숫자가 아닌값 -1을 리턴 음수표현 불가능
jsCheckFloat(toCheck) Folat형인지를 체크 정수도 Float으로 인식
jsCheckPoint( toCheck , Positive , Negative ) 자리수 체크 정수 몇자리 소수 몇자리
jsCheckNumber(toCheck) Number타입인지 체크, 소수점은 Number타입으로 인식하지 않음 
getCutNumber(num, place) 소수점 아래 몇자리 이하 절삭
jsOnlyNumberKey() text 입력시 숫자이외의 키를 눌렀을때 무효화시킨다.
jsCheckFloatType( varNum, varLeft, varRight ) 정수부분자리수 소수부분자리수 체크 
 
기타
jsSplitCode(varString, varSplitChar, varIndex) 구분자로 구분해서 index의 문자를 리턴
jsCheckIp(toCheck) toCheck값이 정확한 IP Address인지 체크
jsCheckEmail( emailVal ) 이메일을 체크 - 보완요망
jsShowHelp( helpfile ) helpfile를 팝업으로 오픈
jsGetObjCnt( FormObj, varObjName ) 특정폼에서 해당오브젝트가 몇개인지를 리턴
jsClearFrame( fr ) 특정프레임에 공백 jsp를 띄워줌
jsDeleteCharAll( FormObj )
  해당 폼에 해당하는 모든 오브젝트의 값들에서 ',' and '/'문자를 지워준다.   
isAlphaNum(input) 영문과 숫자로만 이루어졌는지를 체크

IsHangul(field) 입력값에 한글이 있는지 체크
containsCharsOnly(input,chars) 입력값이 특정 문자(chars)만으로 되어있는지 체크
popup1( varAction, varWinName, varWidth, varHeight ) 팝업을 호출
jsBack() 이전 페이지로 이동
jsVisible( str ) 특정조건에 해당하면 모래시계를 보여줌
jsRunAfterTime() 설정한 시간뒤에 특정 function을 호출
trim(text) ltrim(text) rtrim(text) text의 좌우측, 좌측, 우측의 공백을 제거해서 리턴
*/


/*--------------------------------------------------
  기능   : Cookie Setting
  INPUT  : name, value
          expireFg : 'Y' : 2020년 까지 쿠키저장
          expireFg : 'N' : session이 끊어질때 쿠키지움
  RETURN : NONE
----------------------------------------------------*/
function setCookie( name, value, expireFg ) {
   var expireDate = new Date ( 2020, 1, 1, 1, 1, 1 ) ;

   if ( expireFg = 'Y' )
       document.cookie = name + "=" + value + "; expires=" + expireDate.toGMTString() ;
   else
       document.cookie = name + "=" + value + ";" ;

}
/*--------------------------------------------------
  기능   : Cookie Get
  INPUT  : name
  RETURN : 쿠키값( 없으면 "" )
----------------------------------------------------*/
function getCookie( name ) {
   var cookieFound = false ;
   var start = 0 ;
   var end   = 0 ;
   var cookieString = document.cookie ;

   var i = 0 ;

   // name에 해당되는 cookie를 찾는다.
   while ( i <= cookieString.length ) {
       start = i ;
       end = start + name.length ;
       if ( cookieString.substring( start, end ) == name ) {
           cookieFound = true ;
           break ;
       }
       i++ ;
   }

   // cookie를 찾았으면 해당하는 값을 그렇지 않으면 ""을 return ;
   if ( cookieFound ) {
       start = end + 1 ;
       end   = document.cookie.indexOf(";",start) ;
       if ( end < start )
           end = document.cookie.length ;
       return document.cookie.substring( start, end ) ;
   }

   return "" ;
}

/*-----------------------------------------------
' ->문자를 쿼리문에 사용시 에러가 발생하므로 `로 대치
INPUT  : str
RETURN : 문자열안의 문자중 ' 문자를 ` 로 변경한 문자열
-------------------------------------------------*/
function jsChangeComma( str ){
while( str.indexOf("'") != -1 ){
 str = str.replace("'","`");
}
   return str;
}

/*----------------------------------------------------------
  기능   : Split Code RETURN Splited code by varSplitChar
  INPUT  : varString 문자
     : varSplitChar 구분자
  : varIndex 구분자의 위치
  RETURN : Splited code by varSplitChar
  예     : jsSplitCode( "111^222^333", "^", 2 ) == "222"
-----------------------------------------------------------*/
function jsSplitCode(varString, varSplitChar, varIndex) {
var varArray = varString.split(varSplitChar) ;

return varArray[eval(varIndex)-1];
}

/*--------------------------------------------------
  기능   : Check Null RETURN T/F
  INPUT  : check  data
  RETURN : true  -> NULL
          false -> NOT NULL
----------------------------------------------------*/
function jsCheckNull( toCheck )
{
    var chkstr = toCheck + "";
    var is_Space = true ;

    if ( ( chkstr == "") || ( chkstr == null ) )
   return( true );

    for ( j = 0 ; is_Space && ( j < chkstr.length ) ; j++)
    {
     if( chkstr.substring( j , j+1 ) != " " )
        {
       is_Space = false ;
        }
    }
    return ( is_Space );
}

/*--------------------------------------------------
  기능   : Check IP address RETURN T/F
  INPUT  : toCheck  -> check data
  RETURN : true  -> IP address
          false -> not IP address
----------------------------------------------------*/
function jsCheckIp(toCheck)
{
    var chkstr = toCheck+"" ;
    var isIp = true ;

    if ( jsCheckNull(toCheck) )
         return false;

    for (j = 0 ; isIp && (j < toCheck.length) ; j++)
    {
         if ((toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9"))
         {
             if ( toCheck.substring(j,j+1) == "." )
                 if ( j == 0 )
                     isIp = false ;
             else
                 isIp = false ;
         }
    }

    return isIp;
}

/*--------------------------------------------------
  기능   : Check Number RETURN T/F ( 소수점"."은 Number로 취급안함 )
  INPUT  : toCheck  -> check data
  RETURN : true  -> number ( "."이 포함안됨 )
          false -> not number
----------------------------------------------------*/
function jsCheckNumber(toCheck)
{
    var chkstr = toCheck+"" ;
    var isNum = true ;

    if ( jsCheckNull(toCheck) )
         return false;

    for (j = 0 ; isNum && (j < toCheck.length) ; j++)
    {
         if ((toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9"))
         {
            if ( toCheck.substring(j,j+1) == "-" || toCheck.substring(j,j+1) == "+")
            {
               if ( j != 0 )
               {
                  isNum = false;
               }
            }
            else
      isNum = false;
    }
    }

    if (chkstr == "+" || chkstr == "-") isNum = false;

    return isNum;
}

/*--------------------------------------------------
  기능   : Check data RETURN T/F
  INPUT  : toCheck  -> check data
          checkOK  -> 들어가서는 안되는 data
  RETURN : false -> 들어가서는 안되는 data가 없다
          true  -> 들어가서는 안되는 data가 있다.
  예1    : jsStrCheck( '12345', 'ABab' )
          string '12345'에는 'ABab'가 없으므로
          false를 리턴
  예2    : jsStrCheck( '12$45', 'ABab$#%' )
          string '12$45'에는 '$'가 있으므로
          true를 리턴
----------------------------------------------------*/
function jsStrCheck(checkStr, checkOK) {
   for (i = 0; i < checkStr.length; i++) {
       ch = checkStr.charAt(i);
       for (j = 0; j < checkOK.length; j++)
       if (ch == checkOK.charAt(j))
          break;
       if (j == checkOK.length) {
               return false;
               break;
       }
   }
   return true;
}

/*--------------------------------------------------
  기능   : Check Float RETURN T/F (정수도 Float로 취급)
  INPUT  : toCheck  -> check data
  RETURN : true  -> number
          false -> not number
----------------------------------------------------*/
function jsCheckFloat(toCheck)
{
    var chkstr = toCheck+"" ;
    var isFloat = true;

    var chkPoint = false;
    var chkMinus = false;

    if ( jsCheckNull(toCheck) )
    {
          return false;
    }

    for (j = 0 ; isFloat && (j < toCheck.length); j++)
    {
        if ( (toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9"))
        {

           if ( toCheck.substring(j,j+1) == "." )
           {
              if ( !chkPoint ) chkPoint = true ;
              else  isFloat = false ;
           }
           else if ( toCheck.substring(j,j+1) == "-" || toCheck.substring(j,j+1) == "+")
           {
              if ( ( j == 0 ) && ( !chkMinus ) ) chkMinus = true ;
              else isFloat = false;
           }
           else isFloat = false;
       }
   }

   return isFloat;
}

/*--------------------------------------------------
  기능   : 자릿수 check RETURN T/F
  INPUT  : toCheck  -> check data
  RETURN : true  -> number
          false -> not number
----------------------------------------------------*/
function jsCheckPoint( toCheck , Positive , Negative )
{
    var strPos = toCheck + "" ;
    var isPoint = true ;

    if ( jsCheckFloat ( toCheck ) )
    {

        var inx = strPos.indexOf(".") ;

        if ( inx == -1 )
        {
             if ( strPos.length > parseInt(Positive) )
                isPoint = false ;
             else
                isPoint = true ;
         }
         else
         {
              var pos = strPos.substring( 0, inx ) ;
              var nev = strPos.substring(inx + 1) ;

              if ( pos.length > parseInt(Positive) )
                    isPoint = false ;
              else if ( nev.length > parseInt(Negative) )
                    isPoint = false ;
              else
                    isPoint = true ;
         }
     }
     else if ( jsCheckNumber (toCheck) )
           isPoint = true  ;
     else
           isPoint = false ;

     return isPoint ;

}

////////////////////////////////////////////////////////////////n
////////////    DATE  VALIDATION  CHECK    //////////////////////
/////////////////////////////////////////////////////////////////

/*--------------------------------------------------
  기능   : calender에서 사용할 월별 배열를 만든다.
  INPUT  : 각 인자의 값
----------------------------------------------------*/
function jsMonthArray(m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11)
{
     this[0] = m0;
     this[1] = m1;
     this[2] = m2;
     this[3] = m3;
     this[4] = m4;
     this[5] = m5;
     this[6] = m6;
     this[7] = m7;
     this[8] = m8;
     this[9] = m9;
     this[10] = m10;
     this[11] = m11;
}


/*--------------------------------------------------
  기능   : 년도를 check한다.
  INPUT  : toCheck
  RETURN : NONE
    MSG :
----------------------------------------------------*/

function jsCheckYYYY(toCheck)
{
  return ( ( toCheck.length == 4) && ( jsCheckNumber(toCheck)  ) && ( toCheck != "0000") );
}

/*--------------------------------------------------
  기능   : 년월을 check한다.
  INPUT  : toCheck
  RETURN : NONE
    MSG :
----------------------------------------------------*/

function jsCheckYYYYMM(toCheck)
{
    var isDate  = true ;

    if ( toCheck.length != 6 )
    {
         isDate = false ;
    }
    else
    {

          var yy = toCheck.substring(0,4) +"" ;
          var mm = toCheck.substring(4,6) +"" ;

          if ( !jsCheckYYYY(yy) )
             isDate = false ;
          else if ( !jsCheckMM(mm) )
             isDate = false ;
    }

    return isDate ;
}

/*--------------------------------------------------
  기능   : 월을 check한다.
  INPUT  : toCheck
  RETURN :
   MSG  :
----------------------------------------------------*/
function jsCheckMM(toCheck)
{
     return ((toCheck.length > 0) && (jsCheckNumber(toCheck)) && (0< eval(toCheck)) && (eval(toCheck) < 13));
}

/*--------------------------------------------------
  기능   : 일을 check한다.
  INPUT  : toCheck
  RETURN : NONE
    MSG :
----------------------------------------------------*/
function jsCheckDD(yyyy,mm,toCheck)
{
     var isYMD  = false;
     var monthDD= new jsMonthArray(31,28,31,30,31,30,31,31,30,31,30,31);
     var im     = eval(mm) - 1;
     if ( toCheck.length == 0 )  return false;
     if ( !jsCheckNumber(toCheck)  )  return false;
     var dd     = eval(toCheck);
     if ( ( (yyyy%4 == 0) && (yyyy%100 != 0) ) || (yyyy%400 == 0) )
     {
          monthDD[1] = 29;
     }
     if ( (0 < dd) && (dd <= monthDD[im]) ) isYMD = true;
          return isYMD;
}

/*--------------------------------------------------
  기능   : 날짜를 check한다.
  INPUT  : dateVal '20030321'
  RETURN : NONE
    MSG :
----------------------------------------------------*/
function jsCheckDate( dateVal )
{

    var isDate  = true ;

    if ( dateVal.length != 8 )
    {
         isDate = false ;
    }
    else
    {

          var yy = dateVal.substring(0,4) +"" ;
          var mm = dateVal.substring(4,6) +"" ;
          var dd = dateVal.substring(6,8) +"" ;

          if ( !jsCheckYYYY(yy) )
             isDate = false ;
          else if ( !jsCheckMM(mm) )
             isDate = false ;
          else if ( !jsCheckDD (yy,mm,dd) )
             isDate = false ;
    }

    return isDate ;

}

/*--------------------------------------------------
  기능   : 날짜에 년수를 더한다.
  INPUT  : startDt(YYYYMMDD), year
  RETURN : rtnValue : 날짜에 년수를 더한 날짜
          -1       : ERROR..!
          예) 20000110 + 1년 = 20010110
          예) 20000229 + 1년 = 20010228
    MSG :
----------------------------------------------------*/
function jsAddYear( startDt, plusYear ) {
var rtnValue = -1 ;

// input date의 날짜 체크
if ( !jsCheckDate(startDt) || !jsCheckNumber(plusYear) ) {
 rtnValue = -1 ;
 return rtnValue ;
}

var yyyy = startDt.substring(0,4) +"" ;
var mm   = startDt.substring(4,6) +"" ;
var dd   = startDt.substring(6,8) +"" ;

var newYyyy = (eval(yyyy) + eval(plusYear)) ;

// 윤달(29일) 인 경우 28일로 고침
// 예) 20000229 에 1년을 더하면 20000228
var isYoonYear = false ;
// 4 로 나누어 떨어지면 윤년
// 100 으로 나누어 떨어지면 윤년 아님
// 400 으로 나누어 떨어지면 윤년
if ( (eval(newYyyy)%4) == 0 ) isYoonYear = true ;
if ( (eval(newYyyy)%100) == 0 ) isYoonYear = false ;
if ( (eval(newYyyy)%400) == 0 ) isYoonYear = true ;

if ( (mm == '02') && (dd == '29') && !isYoonYear ) dd = '28' ;

rtnValue = newYyyy + mm + dd ;

return rtnValue ;
}

/*--------------------------------------------------
  기능   : 날짜에 월수를 더한다.
  INPUT  : startDt(YYYYMMDD), year
  RETURN : rtnValue : 날짜에 월수를 더한 날짜
          -1       : ERROR..!
          예) 20000110 + 3월  = 20000410
          예) 20000229 + 12월 = 20000228
    MSG :
----------------------------------------------------*/
function jsAddMonths( startDt, plusMonth ) {
var rtnValue = -1 ;

// input date의 날짜 체크
if ( !jsCheckDate(startDt) || !jsCheckNumber(plusMonth) ) {
 rtnValue = -1 ;
 return rtnValue ;
}

var yyyy = startDt.substring(0,4) +"" ;
var mm   = startDt.substring(4,6) +"" ;
var dd   = startDt.substring(6,8) +"" ;

var newMm = null;

// 월수를 더하여 1년이 넘는 경우
if ( (eval(mm) + eval(plusMonth)) > 12 ) {
 yyyy  = eval(yyyy) + 1 ;
 newMm = eval(mm) + eval(plusMonth) - 12 ;
} else {
 newMm = eval(mm) + eval(plusMonth) ;
}

// 윤년 처리
var isYoonYear = false ;
// 4 로 나누어 떨어지면 윤년
// 100 으로 나누어 떨어지면 윤년 아님
// 400 으로 나누어 떨어지면 윤년
if ( (eval(yyyy)%4) == 0 ) isYoonYear = true ;
if ( (eval(yyyy)%100) == 0 ) isYoonYear = false ;
if ( (eval(yyyy)%400) == 0 ) isYoonYear = true ;

// 윤년인 경우
if ( isYoonYear ) {
 if ( (newMm == '02') && ( dd=='30' || dd=='31' ) ) dd = '29' ;
// 평년인 경우
} else {
 if ( (newMm == '02') && ( dd=='29' || dd=='30' || dd=='31' ) ) dd = '28' ;
}

// 월의 자리수를 맞춘다. ( 2 월 -> 02 )
if ( eval(newMm) < 10 ) { newMm = "0" + newMm  } ;
rtnValue = yyyy + newMm + dd ;

return rtnValue ;
}

/*--------------------------------------------------
  기능   : 날짜와 날짜 사이의 일수를 리턴한다.
  INPUT  : startDt(YYYYMMDD), endDt(YYYYMMDD)
  RETURN : rtnValue : 날짜와 날짜 사이의 일수
          -1       : ERROR..!
    MSG :

----------------------------------------------------*/
function jsGetBetweenDay( startDt, endDt )
{
    var rtnValue = 0 ;

    // input date의 날짜 체크
    if ( !jsCheckDate(startDt) || !jsCheckDate(endDt) ) {
     rtnValue = -1 ;
    }
    else {
          var yyyy = startDt.substring(0,4) +"" ;
          var mm   = startDt.substring(4,6) +"" ;
          var dd   = startDt.substring(6,8) +"" ;
          var startDate = new Date(yyyy,(eval(mm)-1),dd) ; // 달 은 한달이 느리므로 1을 빼준다.

          yyyy = endDt.substring(0,4) +"" ;
          mm   = endDt.substring(4,6) +"" ;
          dd   = endDt.substring(6,8) +"" ;
          var endDate = new Date(yyyy,(eval(mm)-1),dd) ;

          // 1000분의 1초 단위를 일 단위로 바꾸기
          rtnValue = ((endDate-startDate)/60/60/24/1000) ;
    }

    return rtnValue ;

}
/*--------------------------------------------------
  기능   : Check Time RETURN T/F
  INPUT  : check  time
  RETURN : true  -> TIME
          false -> NOT TIME
----------------------------------------------------*/
function jsCheckTime( toCheck )
{
    var chkstr  = toCheck + "";

    if ( ( chkstr == "") || ( chkstr == null ) )
   return( false );

    var mm = chkstr.substring( 0 ,2 );
    var ss = chkstr.substring( 3 ,5 );

    if (( mm <= "23" ) && ( mm >= "00" ))
    {
        if (( ss <= "60" ) && ( ss >= "00" ))
        {
            if ( chkstr.substring( 2 ,3 ) == ":")
            {
             return( true );
            }
        }
    }
    return( false );
}

/*--------------------------------------------------
  기능   : Check 주민등록번호 RETURN T/F
  INPUT  : toCheck
  RETURN : true  -> 올바른 번호
          false ->
----------------------------------------------------*/
function jsCheckJumin(toCheck) {
   var isJumin = true;
   if ( jsCheckNull(toCheck) ) {
         return false;
   } else if ( toCheck.length < 13 || toCheck.length > 13 ) {
         return false;
   } else if ( toCheck.substring(2,3) > "1" || toCheck.substring(6,7) > "2" || toCheck.substring(6,7) == "0" ) {
         return false;
   } else if ( toCheck.substring(2,3) == "1" && toCheck.substring(3,4) > "2" ){
         return false;
   } else if (!(toCheck.substring(4,6) >= "01" && toCheck.substring(4,6) <= "31")){
         return false;
   }
  for (j = 0; isJumin && (j < toCheck.length); j++) {
      if ( ( (toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9")) ) {
          isJumin = false;
      }
  }


 var a1=toCheck.substring(0,1)
 var a2=toCheck.substring(1,2)
 var a3=toCheck.substring(2,3)
 var a4=toCheck.substring(3,4)
 var a5=toCheck.substring(4,5)
 var a6=toCheck.substring(5,6)
 var check_digit=a1*2+a2*3+a3*4+a4*5+a5*6+a6*7
 var b1=toCheck.substring(6,7)
 var b2=toCheck.substring(7,8)
 var b3=toCheck.substring(8,9)
 var b4=toCheck.substring(9,10)
 var b5=toCheck.substring(10,11)
 var b6=toCheck.substring(11,12)
 var b7=toCheck.substring(12,13)

 var check_digit=check_digit+b1*8+b2*9+b3*2+b4*3+b5*4+b6*5
 check_digit = check_digit%11
 check_digit = 11 - check_digit
 check_digit = check_digit%10
 if (check_digit != b7){
  isJumin = false;
 }

  return isJumin;
}

/*--------------------------------------------------
  기능   : Check 사업자 등록번호 RETURN T/F
  INPUT  : toCheck
  RETURN : true  -> 올바른 번호
          false ->
----------------------------------------------------*/
function jsCheckSaupJa(toCheck) {
   var isSaupJa = true;
   if ( jsCheckNull(toCheck) ) {
         return false;
   } else if ( toCheck.length < 10 || toCheck.length > 10 ) {
         return false;
   }
   for (j = 0; isSaupJa && (j < toCheck.length); j++) {
      if ( ( (toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9")) ) {
          isSaupJa = false;
      }
   }
   return isSaupJa;
}

/*--------------------------------------------------
  기능   : E-Mail를 check한다.
  INPUT  : emailVal
  RETURN : NONE
    MSG :
----------------------------------------------------*/
function jsCheckEmail( emailVal )
{
    if ( jsCheckNull(emailVal) ) return true;

    var inx = emailVal.indexOf("@") ;

    if ( inx <= 0 || inx==emailVal.length-1 ) return false;

    return true ;
}
/*--------------------------------------------------
  기능   :
  INPUT  : varNum : 실수
       varLeft : 정수부분 자리수
       varRight : 소수부분 자리수
  RETURN : true : 실수가 정/소수부분의 자리수를 초과하지 않는다.
       false : 실수가 정/소수부분의 자리수를 초과한다.
----------------------------------------------------*/
function jsCheckFloatType( varNum, varLeft, varRight ) {

var resultFlag = true ;

if ( varNum.charAt(0) == "-" ){
 varNum = varNum.substring(1,varNum.length);
}

var PointIndex = varNum.indexOf(".");

if ( PointIndex < 0 ){
 if ( varNum.length > varLeft )
  resultFlag = false ;
}else{
 var LeftLength = varNum.substring(0,PointIndex).length;
 var RightLength = varNum.substring(PointIndex+1, varNum.length ).length;

 if ( (LeftLength > varLeft) || (RightLength > varRight) )
  resultFlag = false ;
}

return resultFlag ;

}

/*--------------------------------------------------
  기능   :
  INPUT  : helpfile
  RETURN :
----------------------------------------------------*/
function jsShowHelp( helpfile )
{
     var helpstr = helpfile + "" ;
     var URL     = "" ;
     var cWin ;

     URL = "/help/"+helpfile+".html" ;

     cWin = window.open(URL,"help","toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizable=1,width=560,height=320");

     cWin.focus();
}

/*--------------------------------------------------
  기능   : 한글이든 영문이든 제대로 갯수 체크를 해준다.
  INPUT  : String
  RETURN :
----------------------------------------------------*/
function getByteLength(s){
  var len = 0;
  if ( s == null ) return 0;
  for(var i=0;i<s.length;i++){
     var c = escape(s.charAt(i));
     if ( c.length == 1 ) len ++;
     else if ( c.indexOf("%u") != -1 ) len += 2;
     else if ( c.indexOf("%") != -1 ) len += c.length/3;
  }
  return len;
}

/*--------------------------------------------------
  기능   : FormObj에서 varObjName이 몇개 존재하는지 리턴한다.
  INPUT  : FormObj : FormName
     : varObjName : 객체명
  RETURN :
----------------------------------------------------*/
function jsGetObjCnt( FormObj, varObjName ){
var cnt = 0 ;
  for(var inx = 0; inx < FormObj.elements.length ; inx++ ) {
     if ( FormObj.elements[inx].name == varObjName ) {
      cnt++ ;
     }
  }
  return cnt;
}

/*--------------------------------------------------
  기능   :  SELECT OPTION BOX의 값을 RETURN 한다.
  INPUT  : sb = selectBoxName
  RETURN :
----------------------------------------------------*/
function jsCheckSelectBox ( sb )
{
   var temp = sb.options[sb.selectedIndex].value ;
   return ( temp );
}

function jsCheckSelectBoxNm ( sb )
{
   var temp = sb.options[sb.selectedIndex].text ;
   return ( temp );
}

/*--------------------------------------------------
  기능   :  해당 Frame을 공백페이지로 변경
  INPUT  : fr : FrameName
  RETURN :
----------------------------------------------------*/
function jsClearFrame( fr ) {
   fr.location = "/common/blank.jsp";
}

/*--------------------------------------------------
  기능   : checkBox를 전체선택 및 해제를 할수 있게 한다.
  INPUT  : FormObj FormName
       elemNm CheckBox name
       checkYn boolean
  RETURN :
----------------------------------------------------*/
function jsToggle(FormObj, elemNm, checkYn){
var i =0;
while (i < FormObj.elements.length)
{
 if (FormObj.elements[i].name== elemNm )
 {
  FormObj.elements[i].checked= checkYn;
 }
 i++;
}
}

/*--------------------------------------------------
  기능   : focus 옮기기
  INPUT  : varTextObj : TextBox 객체명
       varLength  : 조건에 맞는 textLength
       varFocusToObj : Focus를 옮겨갈 객체명
  RETURN :
----------------------------------------------------*/
function jsMoveFocus( varTextObj, varLength, varFocusToObj ) {
if ( varTextObj.value.length == varLength ) {
 varFocusToObj.focus() ;
 varFocusToObj.select() ;
 return ;
}
}

/*--------------------------------------------------
  기능   : 문자를 숫자로 convert 한다. 단,
       parseFloat 와 다른 점은 null 이 올때 0 으로 인식한다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsParseInt( varStr ) {
if ( varStr == null || varStr == "" )
 return 0 ;
else
 return parseInt(varStr) ;
}

/*--------------------------------------------------
  기능   : 숫자를 한글로 변환한다.
  예) 450,000,000 -> 사억오천만
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsConvertNumberToHangul( varNum )
{
// 리턴할 문자열
var returnStr = "" ;

// 음수일 때는 에러
if ( eval(varNum) < 0 ) {
 return returnStr ;
}

// 넘어온 숫자를 문자로 변환
var numLen = varNum.length ;
// 변환된 문자를 앞에서 부터 한자씩 잘라서 보관할 변수
var oneChar = null ;
var isDone1 = true ;
var isDone2 = true ;
var isDone3 = true ;
var isDone4 = true ;
var isDone5 = false ;
for ( var inx = 0 ; inx < numLen ; inx++ ) {
 oneChar = varNum.substring( inx, inx+1 ) ;
 isDone5 = false ;

 if ( oneChar == "0" ) {
  // 아무일도 안함
 } else if ( oneChar == "1" ) {
  returnStr = returnStr + "일" ;
  isDone5 = true ;
 } else if ( oneChar == "2" ) {
  returnStr = returnStr + "이" ;
  isDone5 = true ;
 } else if ( oneChar == "3" ) {
  returnStr = returnStr + "삼" ;
  isDone5 = true ;
 } else if ( oneChar == "4" ) {
  returnStr = returnStr + "사" ;
  isDone5 = true ;
 } else if ( oneChar == "5" ) {
  returnStr = returnStr + "오" ;
  isDone5 = true ;
 } else if ( oneChar == "6" ) {
  returnStr = returnStr + "육" ;
  isDone5 = true ;
 } else if ( oneChar == "7" ) {
  returnStr = returnStr + "칠" ;
  isDone5 = true ;
 } else if ( oneChar == "8" ) {
  returnStr = returnStr + "팔" ;
  isDone5 = true ;
 } else if ( oneChar == "9" ) {
  returnStr = returnStr + "구" ;
  isDone5 = true ;
 }

 if ( ((numLen-inx) % 4) == 0 && oneChar != "0" ) {
  returnStr = returnStr + "천" ;
 } else if ( ((numLen-inx) % 4) == 3 && oneChar != "0" ) {
  returnStr = returnStr + "백" ;
 } else if ( ((numLen-inx) % 4) == 2 && oneChar != "0" ) {
  returnStr = returnStr + "십" ;
 } else if ( ((numLen-inx) % 4) == 1 ) {
  if ( numLen >= 17 && isDone1 && isDone5 ) {
   returnStr = returnStr + "경" ;
   isDone1 = false ;
  } else if ( numLen >= 13  && isDone2 && isDone5 ) {
   returnStr = returnStr + "조" ;
   isDone2 = false ;
  } else if ( numLen >= 9  && isDone3 && isDone5 ) {
   returnStr = returnStr + "억" ;
   isDone3 = false ;
  } else if ( numLen >= 5  && isDone4 && isDone5 ) {
   returnStr = returnStr + "만" ;
   isDone4 = false ;
  }
 }
}

return returnStr ;
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 comma를 찍어서 comma 를 찍어서 채워준다.
      소수점 허용 안함
   예) 1000.00 -> 1,000   
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeCurrency( varTextObj ) {
varTextObj.value = jsDeleteComma( varTextObj.value ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
var isPointed = false ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
  varText = varText + varTextObj.value.substring(inx, inx+1) ;
 }
}

varTextObj.value = jsAddComma( varText ) ;
}


/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 comma를 찍어서 comma 를 찍어서 채워준다.
      소수점 허용 함   
   예) 1000.00 -> 1,000.00   
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeForeignCurrency( varTextObj ) {
varTextObj.value = jsDeleteComma( varTextObj.value ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
var isPointed = false ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) || (varTextObj.value.substring(inx, inx+1)=='.') ) {
  // 점이 안찍히고 처음으로 점이 들어왔을때
  if ( !isPointed && varTextObj.value.substring(inx, inx+1)=='.' ) {
   isPointed = true ;
   varText = varText + varTextObj.value.substring(inx, inx+1) ;
  // 숫자 일때
  } else if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
   varText = varText + varTextObj.value.substring(inx, inx+1) ;
  }

 }
}

varTextObj.value = jsAddComma( varText ) ;
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 객체필드에 숫자만을 입력받게 해준다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsOnlyNumber( varTextObj ) {

var varLength = varTextObj.value.length ;
var varText   = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
  varText = varText + varTextObj.value.substring(inx, inx+1) ;
 }
}

// 앞에 붙은 0 없애기 (예) 00200 -> 200
varLength = varText.length ;
var varTempReturnNumber = varText;
var varReturnNumber = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varTempReturnNumber.substring(inx, inx+1) == '0' ) {
  // '0' 이 넘어왔을 경우 '0'을 그대로 리턴해야 한다.
  if ( varLength == 1 ) varReturnNumber = "0" ;
  else if ( eval(jsDeleteComma(varTempReturnNumber)) == '0' ) {
   varReturnNumber = "0" ;
   break ;
  }
 } else {
  varReturnNumber = varTempReturnNumber.substring(inx, varLength+1) ;
  break ;
 }
}

varTextObj.value = varReturnNumber;
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 숫자와 1개의 point만을 입력받게 해준다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsOnlyFloat( varTextObj ) {

varTextObj.value = jsDeleteComma( varTextObj.value ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
var isPointed = false ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) || (varTextObj.value.substring(inx, inx+1)=='.') ) {
  // 점이 안찍히고 처음으로 점이 들어왔을때
  if ( !isPointed && varTextObj.value.substring(inx, inx+1)=='.' ) {
   isPointed = true ;
   varText = varText + varTextObj.value.substring(inx, inx+1) ;
  // 숫자 일때
  } else if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
   varText = varText + varTextObj.value.substring(inx, inx+1) ;
  }

 }
}

// 앞에 붙은 0 없애기 (예) 00200 -> 200
varLength = varText.length ;

var varReturnNumber = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varText.substring(inx, inx+1) == '0' ) {
  // '0' 이 넘어왔을 경우 '0'을 그대로 리턴해야 한다.
  if ( varLength == 1 ) varReturnNumber = "0" ;
  else if ( eval(jsDeleteComma(varText)) == '0' ) {
   varReturnNumber = "0" ;
   break ;
  }
 } else {
  varReturnNumber = varText.substring(inx, varLength+1) ;
  break ;
 }
}

varTextObj.value = varReturnNumber ;

}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 YYYY/MM형식으로 [/]를 찍어서 채워준다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeYyyyMm( varTextObj ) {
varTextObj.value = jsDeleteChar( varTextObj.value, '/' ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
  varText = varText + varTextObj.value.substring(inx, inx+1) ;
 }
}

if ( varText.length < 6 ) {
 varTextObj.value = varText ;
} else {
 varTextObj.value = varText.substring(0,4) + "/" + varText.substring(4,6) ;
}
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 String에 날짜형식으로 [/]를 찍어서 리턴.
    예) 200103 -> 2001/03
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeYyyyMmString( varText ) {
if ( varText.length != 6 || !jsCheckNumber( varText ) ) {
 return varText ;
}

var varReturnText   = "" ;

varReturnText = varText.substring(0,4) + "/" + varText.substring(4,6) ;

return varReturnText
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 날짜형식으로 [/]를 찍어서 채워준다.     
    예) 20010301 -> 2001/03/01         
  INPUT  : Text Object
  RETURN :
----------------------------------------------------*/
function jsMakeDate( varTextObj ) {
varTextObj.value = jsDeleteChar( varTextObj.value, '/' ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
  varText = varText + varTextObj.value.substring(inx, inx+1) ;
 }
}

if ( varText.length < 8 ) {
 varTextObj.value = varText ;
} else {
 varTextObj.value = varText.substring(0,4) + "/" + varText.substring(4,6) + "/" + varText.substring(6,8) ;
}
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 String에 날짜형식으로 [/]를 찍어서 채워준다.     
    예) 20010301 -> 2001/03/01         
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeDateString( varText ) {
if ( varText.length != 8 || !jsCheckNumber( varText ) ) {
 return varText ;
}

var varReturnText   = "" ;

varReturnText = varText.substring(0,4) + "/" + varText.substring(4,6) + "/" + varText.substring(6,8) ;

return varReturnText
}

/*--------------------------------------------------
  기능   : 숫자를 받아서 comma를 찍어서 리턴한다. 음수도 표현가능
    예) 1000.00 -> 1,000.00
    예) 숫자가 아닌 값 -> -1 리턴     
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsAddComma( varNumber ){
// 숫자가 아니면 -1을 리턴한다.
if ( jsCheckNull(varNumber) ) return "" ;
if ( !jsCheckFloat(varNumber) ) {
 return -1 ;
}

// 소수 이상, 이하 부분을 따로 보관.
var PointIndex = varNumber.indexOf(".") ;
var varUnderPoint = "" ;
var isPointed = false ;
// 소수 이하가 없을때
if ( PointIndex < 0 ) {
 isPointed = false ;
 // 소수 이하 부분
 varUnderPoint = "" ;
 // 소수 이상 부분
 varOverPoint = varNumber ;
// 소수 이하가 있을때
} else {
 isPointed = true ;
 // 소수 이하 부분
 varUnderPoint = varNumber.substring(PointIndex+1, varNumber.length ) ;
 // 소수 이상 부분
 varOverPoint = varNumber.substring(0, PointIndex) ;
}

// 음수일때 앞의 "-" 따로 보관
var negativeFlag = false ;
if ( varOverPoint.substring(0,1) == "-" ) {
 negativeFlag = true ;
 varOverPoint = varOverPoint.substring(1,varOverPoint.length+1) ;
}

// 소수 이상 부분에 comma 넣기
var varLength = varOverPoint.length ;
var varCnt = 0 ;
var varTempReturnNumber = "" ;
for ( var inx = varLength-1 ; inx >= 0 ; inx-- ) {
 varCnt++ ;

 // 소수점 찍기
 if ( varCnt == 4 ) {
  varTempReturnNumber = varOverPoint.substring( inx, inx+1 ) + "," + varTempReturnNumber ;
  varCnt = 1 ;
 // 소수점 안찍기
 } else {
  varTempReturnNumber = varOverPoint.substring( inx, inx+1 ) + varTempReturnNumber ;
 }

}

// 앞에 붙은 0 없애기 (예) 00200 -> 200
varLength = varTempReturnNumber.length ;
var varReturnNumber = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varTempReturnNumber.substring(inx, inx+1) == '0' ) {
  // '0' 이 넘어왔을 경우 '0'을 그대로 리턴해야 한다.
  if ( varLength == 1 ) varReturnNumber = "0" ;
  else if ( eval(jsDeleteComma(varTempReturnNumber)) == '0' ) {
   varReturnNumber = "0" ;
   break ;
  }
 } else {
  varReturnNumber = varTempReturnNumber.substring(inx, varLength+1) ;
  break ;
 }
}

// 소수점 이하 붙이기
if ( isPointed ) {
 varReturnNumber = varReturnNumber + "." + varUnderPoint ;
}

// 음수 붙이기
if ( negativeFlag ) {
 varReturnNumber = "-" + varReturnNumber ;
}

return varReturnNumber ;

}

/*--------------------------------------------------
  기능   : 숫자를 받아서 comma를 찍어서 리턴한다.
    예) 1000 -> 1,000.00
    예) 숫자가 아닌 값 -> -1 리턴  
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsAddCommaAndZero( varNumber ){
// 숫자가 아니면 -1을 리턴한다.
if ( jsCheckNull(varNumber) ) return "" ;
if ( !jsCheckFloat(varNumber) ) {
 return -1 ;
}

// 소수 이상, 이하 부분을 따로 보관.
var PointIndex = varNumber.indexOf(".") ;
var varUnderPoint = "" ;
// 소수 이하가 없을때
if ( PointIndex < 0 ) {
 // 소수 이하 부분
 varUnderPoint = "" ;
 // 소수 이상 부분
 varOverPoint = varNumber ;
// 소수 이하가 있을때
} else {
 // 소수 이하 부분
 varUnderPoint = varNumber.substring(PointIndex+1, varNumber.length ) ;
 // 소수 이상 부분
 varOverPoint = varNumber.substring(0, PointIndex) ;
}

// 소수 이상 부분에 comma 넣기
var varLength = varOverPoint.length ;
var varCnt = 0 ;
var varTempReturnNumber = "" ;
for ( var inx = varLength-1 ; inx >= 0 ; inx-- ) {
 varCnt++ ;

 // 소수점 찍기
 if ( varCnt == 4 ) {
  varTempReturnNumber = varOverPoint.substring( inx, inx+1 ) + "," + varTempReturnNumber ;
  varCnt = 1 ;
 // 소수점 안찍기
 } else {
  varTempReturnNumber = varOverPoint.substring( inx, inx+1 ) + varTempReturnNumber ;
 }

}

// 앞에 붙은 0 없애기 (예) 00200 -> 200
varLength = varTempReturnNumber.length ;
var varReturnNumber = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varTempReturnNumber.substring(inx, inx+1) == '0' ) {
 } else {
  varReturnNumber = varTempReturnNumber.substring(inx, varLength+1) ;
  break ;
 }
}

// 소수점 이하 붙이기
if ( varUnderPoint.length == 0 ){
 varReturnNumber = varReturnNumber + "." + "00" ;
}else if ( varUnderPoint.length == 1 ){
 varReturnNumber = varReturnNumber + "." + varUnderPoint + "0";
}else if ( varUnderPoint.length == 2 ){
 varReturnNumber = varReturnNumber + "." + varUnderPoint ;
}

return varReturnNumber ;

}

/*--------------------------------------------------
  기능   : 숫자를 받아서 comma를 없애고 리턴한다
    예) 1,000.00 -> 1000.00    
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsDeleteComma( varNumber ){
var varLength = varNumber.length ;

varReturnNumber = "" ;

for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varNumber.substring( inx, inx+1 ) != "," ) {
  varReturnNumber = varReturnNumber + varNumber.substring( inx, inx+1 ) ;
 }
}

return varReturnNumber ;
}

/*--------------------------------------------------
  기능   : 글자를 받아서 param를 없애고 리턴한다.
    예) 2001/01/01 -> 20010101    
  INPUT  : varText 문자열 varDelete 삭제하고자하는 Character
  RETURN :
----------------------------------------------------*/
function jsDeleteChar( varText, varDelete ){
var varLength = varText.length ;

varReturnText = "" ;

for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varText.substring( inx, inx+1 ) != varDelete ) {
  varReturnText = varReturnText + varText.substring( inx, inx+1 ) ;
 }
}

return varReturnText ;
}

/*--------------------------------------------------
  기능   : 폼 이름을 받아서 모든 text,hidden값에 comma, / 문자를 없애준다
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsDeleteCharAll( FormObj ) {
for ( i=0; i<FormObj.elements.length; i++ ) {
 if ( FormObj.elements[i].type == "text" || FormObj.elements[i].type == "hidden" ) {
  if ( !jsCheckNull(FormObj.elements[i].value) && jsCheckFloat(jsDeleteComma(FormObj.elements[i].value)) ) {
   FormObj.elements[i].value = jsDeleteComma(FormObj.elements[i].value);
  } else if ( !jsCheckNull(FormObj.elements[i].value) && jsCheckDate(jsDeleteChar(FormObj.elements[i].value,'/')) ) {
   FormObj.elements[i].value = jsDeleteChar( FormObj.elements[i].value, '/' );
  }
 }
}
}

/*--------------------------------------------------
  기능   : FormObj에서 checkBox 가 몇개 선택되었는지  리턴한다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsCheckBoxSelectedCnt( FormObj, checkBoxName ){
  var cnt = 0 ;
  for(var inx = 0; inx < FormObj.elements.length ; inx++ ) {
     if ( FormObj.elements[inx].name == checkBoxName && FormObj.elements[inx].checked ) {
      cnt++ ;
     }
  }
  return cnt;
}

/*--------------------------------------------------
  기능   : 영문 과 숫자로만 이루어 졌는지  체크를 해준다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function isAlphaNum(input) {
   var chars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
   return containsCharsOnly(input,chars);
}


//입력값이 한글이 포함되어있는지 체크

function IsHangul(field)
{
if ( field == "" ) return false;

   var rtnLen = 0 ;

   for (i=0; i<field.length; i++)
   {  
       // 한글인 경우 길이가 UniCode 값은 10000 이상이다.
       if(field.charCodeAt(i) > 10000 )
       {
        rtnLen++;
       }
   }
  
   if ( rtnLen > 0 )
    return true;
   else
    return false;
}


/*----------------------------------------------------
  입력값이 특정 문자(chars)만으로 되어있는지 체크
  특정 문자만 허용하려 할 때 사용
  ex) if (!containsCharsOnly(form.blood,"ABO")) {
         alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
     }
------------------------------------------------------*/
function containsCharsOnly(input,chars) {
   for (var inx = 0; inx < input.value.length; inx++) {
      if (chars.indexOf(input.value.charAt(inx)) == -1)
          return false;
   }
   return true;
}

/*--------------------------------------------------
  기능   : POPUP OPEN Script
  INPUT  :
  RETURN :
----------------------------------------------------*/
function popup1( varAction, varWinName, varWidth, varHeight ){
var win = window.open( varAction, varWinName , "toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1, width=" + varWidth + ",height=" + varHeight + ", left=50,top=50");
return win;

//var FormObj = document.dataForm;
//FormObj.target = varWinName ;
//FormObj.action = varAction ;
//FormObj.submit() ;
}


function toTimeString( varDateObj ) { //formatTime(date)
   var year  = varDateObj.getFullYear();
   var month = varDateObj.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
   var day   = varDateObj.getDate();

   if (("" + month).length == 1) { month = "0" + month; }
   if (("" + day).length   == 1) { day   = "0" + day;   }

   return ("" + year + month + day );
}

function jsAfterThisDate( varStdDate , varYYYY , varMM , varDD ) {

   var varDateObj = new Date();

   varStdDate = jsDeleteChar( varStdDate, "/" );

   var yyyy = varStdDate.substring(0,4) +"" ;
   var mm   = varStdDate.substring(4,6) +"" ;
   var dd   = varStdDate.substring(6,8) +"" ;

   var startDate = new Date(yyyy,(eval(mm)-1),dd) ; // 달 은 한달이 느리므로 1을 빼준다.

   varDateObj.setFullYear(startDate.getFullYear() + eval(varYYYY) ); //년을 더함
   varDateObj.setMonth(startDate.getMonth() + eval(varMM) );       //월을 더함
   varDateObj.setDate(startDate.getDate() + eval(varDD)  );         //일을 더함

   return toTimeString(varDateObj);
}

/*--------------------------------------------------
  기능   : text 입력시 숫자이외의 키를 눌렀을때 무효화시킨다.
  INPUT  : 없음
  RETURN : 이벤트 무효화

  주의!  : onKeypress 이벤트만 사용할것
         예) <input type="text" onKeypress="jsOnlyNumberKey();">
----------------------------------------------------*/
function jsOnlyNumberKey() {
   if ( event != null) {
     if ( event.keyCode < 48 || event.keyCode > 57 ) {
       event.returnValue = false;
     }
   }
}

/* 이전페이지로 이동 */
function jsBack(){
history.go(-1);
}

/* 모래시계 보이게 하기 */
function jsVisible( str ){
if( str == '1' )
 document.body.style.cursor='wait'
else
 document.body.style.cursor='auto'
}

/* 15초후에 jsRefresh()라는 function을 호출 */
var timeId   = null ;

function jsRunAfterTime() {
//15초 후에 Refresh
timeId = setTimeout( "jsRefresh()", 15000 ) ;
}

/**
* 소수점 아래 몇자리 이하 절삭.
*
* @param num 숫자
* @param place 자리수
* @return 절삭된 숫자
*/
function getCutNumber(num, place) {
var returnNum;
var str = "1";

return Math.floor( num * Math.pow(10,parseInt(place,10)) ) / Math.pow(10,parseInt(place,10));
}

/* text의 좌우 공백을 제거해서 리턴*/
function trim(text) {
if (text == "") {
 return text;
}

var len = text.length;
var st = 0;

while ((st < len) && (text.charAt(st) <= ' ')) {
 st++;
}

while ((st < len) && (text.charAt(len - 1) <= ' ')) {
 len--;
}

return ((st > 0) || (len < text.length)) ? text.substring(st, len) : text;
}

/* text의 좌측의 공백을 제거해서 리턴*/
function ltrim(text) {
if (text == "") {
 return text;
}

var len = text.length;
var st = 0;

while ((st < len) && (text.charAt(st) <= ' ')) {
 st++;
}

return (st > 0) ? text.substring(st, len) : text;
}

/* text의 우측의 공백을 제거해서 리턴*/
function rtrim(text) {
if (text == "") {
 return text;
}

var len = text.length;
var st = 0;

while ((st < len) && (text.charAt(len - 1) <= ' ')) {
 len--;
}

return (len < text.length) ? text.substring(st, len) : text;
}

/*--------------------------------------------------
  기능   : select box 를 CLEAR 시킨다.
  INPUT  : varObjFullNm : select box 객체
          varDeleteCnt : 첫번째 아이템 삭제 여부 결정
  RETURN : NONE
----------------------------------------------------*/
function cmInitSelectBox( varObjFullNm, varDeleteCnt ) {
varObj = eval( varObjFullNm ) ;
varObj.length = varDeleteCnt ;
}

/*--------------------------------------------------
  기능   :  select box 를 만든다.
  INPUT  : varObjFullNm :  select box 객체
          varText      :
          varValue     : 
  RETURN : NONE
----------------------------------------------------*/
function cmMakeSelectBox( varObjFullNm, varText, varValue ) {
varObj = eval( varObjFullNm ) ;

var empOption = null ;

empOption = document.createElement("OPTION");
empOption.text = varText ;
empOption.value = varValue ;
varObj.options.add(empOption);
}


/*
Text
jsChangeComma( str ) ' -> ` 로 대치
jsStrCheck(checkStr, checkOK)
  들어가서는 안되는 데이타(checkOK)가 checkStr에 포함되어있는지 체크
jsMoveFocus( varTextObj, varLength, varFocusToObj )
  TextBox에서 조건이 만족하면 특정객체로 포커스를 이동
jsCheckNull( toCheck ) toCheck의 값이 Null값인지를 체크
jsDeleteComma( varNumber ) 컴마를 삭제하고 리턴
jsDeleteChar( varText, varDelete ) 문자열에서 해당 character를 지우고 리턴

CheckBox
jsCheckBoxSelectedCnt( FormObj, checkBoxName )
  FormObj에서 checkBox 가 몇개 선택되었는지  리턴한다.
jsToggle(FormObj, elemNm, checkYn)
  특정 폼안의 체크박스오브젝트를 전체선택하거나 전체반전시킴
 
SelectBox
jsCheckSelectBox ( sb ) SelectBox에서 선택된 값의 value를 리턴
jsCheckSelectBoxNm ( sb ) SelectBox에서 선택된 값의 Text를 리턴
cmInitSelectBox( varObjFullNm, varDeleteCnt )
  해당 SelectBox를 초기화 시킨다. varDeleteCnt가 1이면 첫번째값을 지우지 않는다.
cmMakeSelectBox( varObjFullNm, varText, varValue ) 해당 selectBox에 하나의 값을 추가시킴
  
날짜 
jsCheckYYYY(toCheck) 년도를 체크
jsCheckYYYYMM(toCheck) 년월을 체크
jsCheckMM(toCheck) 월을 체크
jsCheckDD(yyyy,mm,toCheck) 일을 체크
jsCheckDate( dateVal ) 날짜를 체크
jsAddYear( startDt, plusYear ) 날짜에 년수를 더함
jsAddMonths( startDt, plusMonth ) 날짜에 월수를 더함
jsGetBetweenDay( startDt, endDt ) 날짜와 날짜사이의 일수를 리턴
jsCheckTime( toCheck ) 시간포맷인지를 체크
jsMakeYyyyMm( varTextObj )
  해당 텍스트박스 객체필드에 YYYY/MM형식으로 [/]를 찍어서 채워준다.
jsMakeYyyyMmString( varText ) 넘어온 값에 날짜형식으로 [/]를 찍어서 리턴.
jsMakeDate( varTextObj ) 넘어온 Object의 값을 날짜형식으로 채워줌
jsMakeDateString( varText )넘어온 값을 날짜형식으로 리턴
toTimeString( varDateObj ) DateObj를 넘겨주면 년월일을 리턴  20030201
jsAfterThisDate( varStdDate , varYYYY , varMM , varDD )
  날짜형식의 문자열에 특정 년, 월, 일을 더한값을 리턴


날짜 체크 사용 예 호출하는 페이지에 다음 부분을 추가

<input ... onKeyUp='jsChkDate(this,lottSearchForm.txtEdate)' onBlur='compareDate()'>


function compareDate(){  

if( jsCheckNull(document.forms[0].txtSdate.value) ||

    jsCheckNull(document.forms[0].txtEdate.value) )
    return;
 
var from = document.forms[0].txtSdate.value.replace(/(\,|\.|\-|\/|\:)/g,'');
var to   = document.forms[0].txtEdate.value.replace(/(\,|\.|\-|\/|\:)/g,'');

if( jsGetBetweenDay(from,to) < 0 ) {
 alert("기간이 잘못 입력되었습니다. 다시입력하세요");
 document.forms[0].txtSdate.value = "";
 document.forms[0].txtEdate.value = "";
 document.forms[0].txtSdate.focus();
 return ;
}

}

function jsChkDate( valObj, nextPos ){

if( valObj.value.length == 8 ) {
 if( !jsCheckDate( valObj.value ) ) {
  alert("일자 입력오류입니다. 다시 입력해 주십시요.");
  valObj.value = '';
  valObj.focus();
  return;
 }  
 jsMakeDate( valObj );
 nextPos.focus();

}

           

 
주민등록번호
jsCheckJumin(toCheck) 주민등록번호 체크

사업자등록번호
jsCheckSaupJa(toCheck) 사업자등록번호 체크

문자열길이 체크
getByteLength(s) 한글2바이트, 영문 1바이트로 바이트수를 리턴

쿠키
setCookie( name, value, expireFlag ) Set Cookie
getCookie( name ) get Cookie

숫자
jsParseInt( varStr ) 문자를 숫자로 변환 null일때
jsConvertNumberToHangul( varNum ) 숫자를 한글로 변환
jsMakeCurrency( varTextObj ) 넘어온 숫자에 컴마를 찍어서 리턴 소숫점 허용안함
jsMakeForeignCurrency( varTextObj ) 넘어온 숫자에 컴마를 찍어서 리턴 소숫점 허용함
jsOnlyNumber( varTextObj ) 해당 텍스트박스 객체에 숫자만 입력받을수 있도록
jsOnlyFloat( varTextObj ) 해당 텍스트박스 객체에 숫자와 1개의 point만을 입력받게 해준다.
jsAddComma( varNumber )
  숫자를 받아서 comma를 찍어서 리턴한다 소수점 인식 숫자가 아닌값 -1을 리턴 음수표현가능
jsAddCommaAndZero( varNumber )
  숫자를 받아서 comma를 찍어서 리턴한다 소수점 인식 숫자가 아닌값 -1을 리턴 음수표현 불가능
jsCheckFloat(toCheck) Folat형인지를 체크 정수도 Float으로 인식
jsCheckPoint( toCheck , Positive , Negative ) 자리수 체크 정수 몇자리 소수 몇자리
jsCheckNumber(toCheck) Number타입인지 체크, 소수점은 Number타입으로 인식하지 않음 
getCutNumber(num, place) 소수점 아래 몇자리 이하 절삭
jsOnlyNumberKey() text 입력시 숫자이외의 키를 눌렀을때 무효화시킨다.
jsCheckFloatType( varNum, varLeft, varRight ) 정수부분자리수 소수부분자리수 체크 
 
기타
jsSplitCode(varString, varSplitChar, varIndex) 구분자로 구분해서 index의 문자를 리턴
jsCheckIp(toCheck) toCheck값이 정확한 IP Address인지 체크
jsCheckEmail( emailVal ) 이메일을 체크 - 보완요망
jsShowHelp( helpfile ) helpfile를 팝업으로 오픈
jsGetObjCnt( FormObj, varObjName ) 특정폼에서 해당오브젝트가 몇개인지를 리턴
jsClearFrame( fr ) 특정프레임에 공백 jsp를 띄워줌
jsDeleteCharAll( FormObj )
  해당 폼에 해당하는 모든 오브젝트의 값들에서 ',' and '/'문자를 지워준다.   
isAlphaNum(input) 영문과 숫자로만 이루어졌는지를 체크

IsHangul(field) 입력값에 한글이 있는지 체크
containsCharsOnly(input,chars) 입력값이 특정 문자(chars)만으로 되어있는지 체크
popup1( varAction, varWinName, varWidth, varHeight ) 팝업을 호출
jsBack() 이전 페이지로 이동
jsVisible( str ) 특정조건에 해당하면 모래시계를 보여줌
jsRunAfterTime() 설정한 시간뒤에 특정 function을 호출
trim(text) ltrim(text) rtrim(text) text의 좌우측, 좌측, 우측의 공백을 제거해서 리턴
*/


/*--------------------------------------------------
  기능   : Cookie Setting
  INPUT  : name, value
          expireFg : 'Y' : 2020년 까지 쿠키저장
          expireFg : 'N' : session이 끊어질때 쿠키지움
  RETURN : NONE
----------------------------------------------------*/
function setCookie( name, value, expireFg ) {
   var expireDate = new Date ( 2020, 1, 1, 1, 1, 1 ) ;

   if ( expireFg = 'Y' )
       document.cookie = name + "=" + value + "; expires=" + expireDate.toGMTString() ;
   else
       document.cookie = name + "=" + value + ";" ;

}
/*--------------------------------------------------
  기능   : Cookie Get
  INPUT  : name
  RETURN : 쿠키값( 없으면 "" )
----------------------------------------------------*/
function getCookie( name ) {
   var cookieFound = false ;
   var start = 0 ;
   var end   = 0 ;
   var cookieString = document.cookie ;

   var i = 0 ;

   // name에 해당되는 cookie를 찾는다.
   while ( i <= cookieString.length ) {
       start = i ;
       end = start + name.length ;
       if ( cookieString.substring( start, end ) == name ) {
           cookieFound = true ;
           break ;
       }
       i++ ;
   }

   // cookie를 찾았으면 해당하는 값을 그렇지 않으면 ""을 return ;
   if ( cookieFound ) {
       start = end + 1 ;
       end   = document.cookie.indexOf(";",start) ;
       if ( end < start )
           end = document.cookie.length ;
       return document.cookie.substring( start, end ) ;
   }

   return "" ;
}

/*-----------------------------------------------
' ->문자를 쿼리문에 사용시 에러가 발생하므로 `로 대치
INPUT  : str
RETURN : 문자열안의 문자중 ' 문자를 ` 로 변경한 문자열
-------------------------------------------------*/
function jsChangeComma( str ){
while( str.indexOf("'") != -1 ){
 str = str.replace("'","`");
}
   return str;
}

/*----------------------------------------------------------
  기능   : Split Code RETURN Splited code by varSplitChar
  INPUT  : varString 문자
     : varSplitChar 구분자
  : varIndex 구분자의 위치
  RETURN : Splited code by varSplitChar
  예     : jsSplitCode( "111^222^333", "^", 2 ) == "222"
-----------------------------------------------------------*/
function jsSplitCode(varString, varSplitChar, varIndex) {
var varArray = varString.split(varSplitChar) ;

return varArray[eval(varIndex)-1];
}

/*--------------------------------------------------
  기능   : Check Null RETURN T/F
  INPUT  : check  data
  RETURN : true  -> NULL
          false -> NOT NULL
----------------------------------------------------*/
function jsCheckNull( toCheck )
{
    var chkstr = toCheck + "";
    var is_Space = true ;

    if ( ( chkstr == "") || ( chkstr == null ) )
   return( true );

    for ( j = 0 ; is_Space && ( j < chkstr.length ) ; j++)
    {
     if( chkstr.substring( j , j+1 ) != " " )
        {
       is_Space = false ;
        }
    }
    return ( is_Space );
}

/*--------------------------------------------------
  기능   : Check IP address RETURN T/F
  INPUT  : toCheck  -> check data
  RETURN : true  -> IP address
          false -> not IP address
----------------------------------------------------*/
function jsCheckIp(toCheck)
{
    var chkstr = toCheck+"" ;
    var isIp = true ;

    if ( jsCheckNull(toCheck) )
         return false;

    for (j = 0 ; isIp && (j < toCheck.length) ; j++)
    {
         if ((toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9"))
         {
             if ( toCheck.substring(j,j+1) == "." )
                 if ( j == 0 )
                     isIp = false ;
             else
                 isIp = false ;
         }
    }

    return isIp;
}

/*--------------------------------------------------
  기능   : Check Number RETURN T/F ( 소수점"."은 Number로 취급안함 )
  INPUT  : toCheck  -> check data
  RETURN : true  -> number ( "."이 포함안됨 )
          false -> not number
----------------------------------------------------*/
function jsCheckNumber(toCheck)
{
    var chkstr = toCheck+"" ;
    var isNum = true ;

    if ( jsCheckNull(toCheck) )
         return false;

    for (j = 0 ; isNum && (j < toCheck.length) ; j++)
    {
         if ((toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9"))
         {
            if ( toCheck.substring(j,j+1) == "-" || toCheck.substring(j,j+1) == "+")
            {
               if ( j != 0 )
               {
                  isNum = false;
               }
            }
            else
      isNum = false;
    }
    }

    if (chkstr == "+" || chkstr == "-") isNum = false;

    return isNum;
}

/*--------------------------------------------------
  기능   : Check data RETURN T/F
  INPUT  : toCheck  -> check data
          checkOK  -> 들어가서는 안되는 data
  RETURN : false -> 들어가서는 안되는 data가 없다
          true  -> 들어가서는 안되는 data가 있다.
  예1    : jsStrCheck( '12345', 'ABab' )
          string '12345'에는 'ABab'가 없으므로
          false를 리턴
  예2    : jsStrCheck( '12$45', 'ABab$#%' )
          string '12$45'에는 '$'가 있으므로
          true를 리턴
----------------------------------------------------*/
function jsStrCheck(checkStr, checkOK) {
   for (i = 0; i < checkStr.length; i++) {
       ch = checkStr.charAt(i);
       for (j = 0; j < checkOK.length; j++)
       if (ch == checkOK.charAt(j))
          break;
       if (j == checkOK.length) {
               return false;
               break;
       }
   }
   return true;
}

/*--------------------------------------------------
  기능   : Check Float RETURN T/F (정수도 Float로 취급)
  INPUT  : toCheck  -> check data
  RETURN : true  -> number
          false -> not number
----------------------------------------------------*/
function jsCheckFloat(toCheck)
{
    var chkstr = toCheck+"" ;
    var isFloat = true;

    var chkPoint = false;
    var chkMinus = false;

    if ( jsCheckNull(toCheck) )
    {
          return false;
    }

    for (j = 0 ; isFloat && (j < toCheck.length); j++)
    {
        if ( (toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9"))
        {

           if ( toCheck.substring(j,j+1) == "." )
           {
              if ( !chkPoint ) chkPoint = true ;
              else  isFloat = false ;
           }
           else if ( toCheck.substring(j,j+1) == "-" || toCheck.substring(j,j+1) == "+")
           {
              if ( ( j == 0 ) && ( !chkMinus ) ) chkMinus = true ;
              else isFloat = false;
           }
           else isFloat = false;
       }
   }

   return isFloat;
}

/*--------------------------------------------------
  기능   : 자릿수 check RETURN T/F
  INPUT  : toCheck  -> check data
  RETURN : true  -> number
          false -> not number
----------------------------------------------------*/
function jsCheckPoint( toCheck , Positive , Negative )
{
    var strPos = toCheck + "" ;
    var isPoint = true ;

    if ( jsCheckFloat ( toCheck ) )
    {

        var inx = strPos.indexOf(".") ;

        if ( inx == -1 )
        {
             if ( strPos.length > parseInt(Positive) )
                isPoint = false ;
             else
                isPoint = true ;
         }
         else
         {
              var pos = strPos.substring( 0, inx ) ;
              var nev = strPos.substring(inx + 1) ;

              if ( pos.length > parseInt(Positive) )
                    isPoint = false ;
              else if ( nev.length > parseInt(Negative) )
                    isPoint = false ;
              else
                    isPoint = true ;
         }
     }
     else if ( jsCheckNumber (toCheck) )
           isPoint = true  ;
     else
           isPoint = false ;

     return isPoint ;

}

////////////////////////////////////////////////////////////////n
////////////    DATE  VALIDATION  CHECK    //////////////////////
/////////////////////////////////////////////////////////////////

/*--------------------------------------------------
  기능   : calender에서 사용할 월별 배열를 만든다.
  INPUT  : 각 인자의 값
----------------------------------------------------*/
function jsMonthArray(m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11)
{
     this[0] = m0;
     this[1] = m1;
     this[2] = m2;
     this[3] = m3;
     this[4] = m4;
     this[5] = m5;
     this[6] = m6;
     this[7] = m7;
     this[8] = m8;
     this[9] = m9;
     this[10] = m10;
     this[11] = m11;
}


/*--------------------------------------------------
  기능   : 년도를 check한다.
  INPUT  : toCheck
  RETURN : NONE
    MSG :
----------------------------------------------------*/

function jsCheckYYYY(toCheck)
{
  return ( ( toCheck.length == 4) && ( jsCheckNumber(toCheck)  ) && ( toCheck != "0000") );
}

/*--------------------------------------------------
  기능   : 년월을 check한다.
  INPUT  : toCheck
  RETURN : NONE
    MSG :
----------------------------------------------------*/

function jsCheckYYYYMM(toCheck)
{
    var isDate  = true ;

    if ( toCheck.length != 6 )
    {
         isDate = false ;
    }
    else
    {

          var yy = toCheck.substring(0,4) +"" ;
          var mm = toCheck.substring(4,6) +"" ;

          if ( !jsCheckYYYY(yy) )
             isDate = false ;
          else if ( !jsCheckMM(mm) )
             isDate = false ;
    }

    return isDate ;
}

/*--------------------------------------------------
  기능   : 월을 check한다.
  INPUT  : toCheck
  RETURN :
   MSG  :
----------------------------------------------------*/
function jsCheckMM(toCheck)
{
     return ((toCheck.length > 0) && (jsCheckNumber(toCheck)) && (0< eval(toCheck)) && (eval(toCheck) < 13));
}

/*--------------------------------------------------
  기능   : 일을 check한다.
  INPUT  : toCheck
  RETURN : NONE
    MSG :
----------------------------------------------------*/
function jsCheckDD(yyyy,mm,toCheck)
{
     var isYMD  = false;
     var monthDD= new jsMonthArray(31,28,31,30,31,30,31,31,30,31,30,31);
     var im     = eval(mm) - 1;
     if ( toCheck.length == 0 )  return false;
     if ( !jsCheckNumber(toCheck)  )  return false;
     var dd     = eval(toCheck);
     if ( ( (yyyy%4 == 0) && (yyyy%100 != 0) ) || (yyyy%400 == 0) )
     {
          monthDD[1] = 29;
     }
     if ( (0 < dd) && (dd <= monthDD[im]) ) isYMD = true;
          return isYMD;
}

/*--------------------------------------------------
  기능   : 날짜를 check한다.
  INPUT  : dateVal '20030321'
  RETURN : NONE
    MSG :
----------------------------------------------------*/
function jsCheckDate( dateVal )
{

    var isDate  = true ;

    if ( dateVal.length != 8 )
    {
         isDate = false ;
    }
    else
    {

          var yy = dateVal.substring(0,4) +"" ;
          var mm = dateVal.substring(4,6) +"" ;
          var dd = dateVal.substring(6,8) +"" ;

          if ( !jsCheckYYYY(yy) )
             isDate = false ;
          else if ( !jsCheckMM(mm) )
             isDate = false ;
          else if ( !jsCheckDD (yy,mm,dd) )
             isDate = false ;
    }

    return isDate ;

}

/*--------------------------------------------------
  기능   : 날짜에 년수를 더한다.
  INPUT  : startDt(YYYYMMDD), year
  RETURN : rtnValue : 날짜에 년수를 더한 날짜
          -1       : ERROR..!
          예) 20000110 + 1년 = 20010110
          예) 20000229 + 1년 = 20010228
    MSG :
----------------------------------------------------*/
function jsAddYear( startDt, plusYear ) {
var rtnValue = -1 ;

// input date의 날짜 체크
if ( !jsCheckDate(startDt) || !jsCheckNumber(plusYear) ) {
 rtnValue = -1 ;
 return rtnValue ;
}

var yyyy = startDt.substring(0,4) +"" ;
var mm   = startDt.substring(4,6) +"" ;
var dd   = startDt.substring(6,8) +"" ;

var newYyyy = (eval(yyyy) + eval(plusYear)) ;

// 윤달(29일) 인 경우 28일로 고침
// 예) 20000229 에 1년을 더하면 20000228
var isYoonYear = false ;
// 4 로 나누어 떨어지면 윤년
// 100 으로 나누어 떨어지면 윤년 아님
// 400 으로 나누어 떨어지면 윤년
if ( (eval(newYyyy)%4) == 0 ) isYoonYear = true ;
if ( (eval(newYyyy)%100) == 0 ) isYoonYear = false ;
if ( (eval(newYyyy)%400) == 0 ) isYoonYear = true ;

if ( (mm == '02') && (dd == '29') && !isYoonYear ) dd = '28' ;

rtnValue = newYyyy + mm + dd ;

return rtnValue ;
}

/*--------------------------------------------------
  기능   : 날짜에 월수를 더한다.
  INPUT  : startDt(YYYYMMDD), year
  RETURN : rtnValue : 날짜에 월수를 더한 날짜
          -1       : ERROR..!
          예) 20000110 + 3월  = 20000410
          예) 20000229 + 12월 = 20000228
    MSG :
----------------------------------------------------*/
function jsAddMonths( startDt, plusMonth ) {
var rtnValue = -1 ;

// input date의 날짜 체크
if ( !jsCheckDate(startDt) || !jsCheckNumber(plusMonth) ) {
 rtnValue = -1 ;
 return rtnValue ;
}

var yyyy = startDt.substring(0,4) +"" ;
var mm   = startDt.substring(4,6) +"" ;
var dd   = startDt.substring(6,8) +"" ;

var newMm = null;

// 월수를 더하여 1년이 넘는 경우
if ( (eval(mm) + eval(plusMonth)) > 12 ) {
 yyyy  = eval(yyyy) + 1 ;
 newMm = eval(mm) + eval(plusMonth) - 12 ;
} else {
 newMm = eval(mm) + eval(plusMonth) ;
}

// 윤년 처리
var isYoonYear = false ;
// 4 로 나누어 떨어지면 윤년
// 100 으로 나누어 떨어지면 윤년 아님
// 400 으로 나누어 떨어지면 윤년
if ( (eval(yyyy)%4) == 0 ) isYoonYear = true ;
if ( (eval(yyyy)%100) == 0 ) isYoonYear = false ;
if ( (eval(yyyy)%400) == 0 ) isYoonYear = true ;

// 윤년인 경우
if ( isYoonYear ) {
 if ( (newMm == '02') && ( dd=='30' || dd=='31' ) ) dd = '29' ;
// 평년인 경우
} else {
 if ( (newMm == '02') && ( dd=='29' || dd=='30' || dd=='31' ) ) dd = '28' ;
}

// 월의 자리수를 맞춘다. ( 2 월 -> 02 )
if ( eval(newMm) < 10 ) { newMm = "0" + newMm  } ;
rtnValue = yyyy + newMm + dd ;

return rtnValue ;
}

/*--------------------------------------------------
  기능   : 날짜와 날짜 사이의 일수를 리턴한다.
  INPUT  : startDt(YYYYMMDD), endDt(YYYYMMDD)
  RETURN : rtnValue : 날짜와 날짜 사이의 일수
          -1       : ERROR..!
    MSG :

----------------------------------------------------*/
function jsGetBetweenDay( startDt, endDt )
{
    var rtnValue = 0 ;

    // input date의 날짜 체크
    if ( !jsCheckDate(startDt) || !jsCheckDate(endDt) ) {
     rtnValue = -1 ;
    }
    else {
          var yyyy = startDt.substring(0,4) +"" ;
          var mm   = startDt.substring(4,6) +"" ;
          var dd   = startDt.substring(6,8) +"" ;
          var startDate = new Date(yyyy,(eval(mm)-1),dd) ; // 달 은 한달이 느리므로 1을 빼준다.

          yyyy = endDt.substring(0,4) +"" ;
          mm   = endDt.substring(4,6) +"" ;
          dd   = endDt.substring(6,8) +"" ;
          var endDate = new Date(yyyy,(eval(mm)-1),dd) ;

          // 1000분의 1초 단위를 일 단위로 바꾸기
          rtnValue = ((endDate-startDate)/60/60/24/1000) ;
    }

    return rtnValue ;

}
/*--------------------------------------------------
  기능   : Check Time RETURN T/F
  INPUT  : check  time
  RETURN : true  -> TIME
          false -> NOT TIME
----------------------------------------------------*/
function jsCheckTime( toCheck )
{
    var chkstr  = toCheck + "";

    if ( ( chkstr == "") || ( chkstr == null ) )
   return( false );

    var mm = chkstr.substring( 0 ,2 );
    var ss = chkstr.substring( 3 ,5 );

    if (( mm <= "23" ) && ( mm >= "00" ))
    {
        if (( ss <= "60" ) && ( ss >= "00" ))
        {
            if ( chkstr.substring( 2 ,3 ) == ":")
            {
             return( true );
            }
        }
    }
    return( false );
}

/*--------------------------------------------------
  기능   : Check 주민등록번호 RETURN T/F
  INPUT  : toCheck
  RETURN : true  -> 올바른 번호
          false ->
----------------------------------------------------*/
function jsCheckJumin(toCheck) {
   var isJumin = true;
   if ( jsCheckNull(toCheck) ) {
         return false;
   } else if ( toCheck.length < 13 || toCheck.length > 13 ) {
         return false;
   } else if ( toCheck.substring(2,3) > "1" || toCheck.substring(6,7) > "2" || toCheck.substring(6,7) == "0" ) {
         return false;
   } else if ( toCheck.substring(2,3) == "1" && toCheck.substring(3,4) > "2" ){
         return false;
   } else if (!(toCheck.substring(4,6) >= "01" && toCheck.substring(4,6) <= "31")){
         return false;
   }
  for (j = 0; isJumin && (j < toCheck.length); j++) {
      if ( ( (toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9")) ) {
          isJumin = false;
      }
  }


 var a1=toCheck.substring(0,1)
 var a2=toCheck.substring(1,2)
 var a3=toCheck.substring(2,3)
 var a4=toCheck.substring(3,4)
 var a5=toCheck.substring(4,5)
 var a6=toCheck.substring(5,6)
 var check_digit=a1*2+a2*3+a3*4+a4*5+a5*6+a6*7
 var b1=toCheck.substring(6,7)
 var b2=toCheck.substring(7,8)
 var b3=toCheck.substring(8,9)
 var b4=toCheck.substring(9,10)
 var b5=toCheck.substring(10,11)
 var b6=toCheck.substring(11,12)
 var b7=toCheck.substring(12,13)

 var check_digit=check_digit+b1*8+b2*9+b3*2+b4*3+b5*4+b6*5
 check_digit = check_digit%11
 check_digit = 11 - check_digit
 check_digit = check_digit%10
 if (check_digit != b7){
  isJumin = false;
 }

  return isJumin;
}

/*--------------------------------------------------
  기능   : Check 사업자 등록번호 RETURN T/F
  INPUT  : toCheck
  RETURN : true  -> 올바른 번호
          false ->
----------------------------------------------------*/
function jsCheckSaupJa(toCheck) {
   var isSaupJa = true;
   if ( jsCheckNull(toCheck) ) {
         return false;
   } else if ( toCheck.length < 10 || toCheck.length > 10 ) {
         return false;
   }
   for (j = 0; isSaupJa && (j < toCheck.length); j++) {
      if ( ( (toCheck.substring(j,j+1) < "0") || (toCheck.substring(j,j+1) > "9")) ) {
          isSaupJa = false;
      }
   }
   return isSaupJa;
}

/*--------------------------------------------------
  기능   : E-Mail를 check한다.
  INPUT  : emailVal
  RETURN : NONE
    MSG :
----------------------------------------------------*/
function jsCheckEmail( emailVal )
{
    if ( jsCheckNull(emailVal) ) return true;

    var inx = emailVal.indexOf("@") ;

    if ( inx <= 0 || inx==emailVal.length-1 ) return false;

    return true ;
}
/*--------------------------------------------------
  기능   :
  INPUT  : varNum : 실수
       varLeft : 정수부분 자리수
       varRight : 소수부분 자리수
  RETURN : true : 실수가 정/소수부분의 자리수를 초과하지 않는다.
       false : 실수가 정/소수부분의 자리수를 초과한다.
----------------------------------------------------*/
function jsCheckFloatType( varNum, varLeft, varRight ) {

var resultFlag = true ;

if ( varNum.charAt(0) == "-" ){
 varNum = varNum.substring(1,varNum.length);
}

var PointIndex = varNum.indexOf(".");

if ( PointIndex < 0 ){
 if ( varNum.length > varLeft )
  resultFlag = false ;
}else{
 var LeftLength = varNum.substring(0,PointIndex).length;
 var RightLength = varNum.substring(PointIndex+1, varNum.length ).length;

 if ( (LeftLength > varLeft) || (RightLength > varRight) )
  resultFlag = false ;
}

return resultFlag ;

}

/*--------------------------------------------------
  기능   :
  INPUT  : helpfile
  RETURN :
----------------------------------------------------*/
function jsShowHelp( helpfile )
{
     var helpstr = helpfile + "" ;
     var URL     = "" ;
     var cWin ;

     URL = "/help/"+helpfile+".html" ;

     cWin = window.open(URL,"help","toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizable=1,width=560,height=320");

     cWin.focus();
}

/*--------------------------------------------------
  기능   : 한글이든 영문이든 제대로 갯수 체크를 해준다.
  INPUT  : String
  RETURN :
----------------------------------------------------*/
function getByteLength(s){
  var len = 0;
  if ( s == null ) return 0;
  for(var i=0;i<s.length;i++){
     var c = escape(s.charAt(i));
     if ( c.length == 1 ) len ++;
     else if ( c.indexOf("%u") != -1 ) len += 2;
     else if ( c.indexOf("%") != -1 ) len += c.length/3;
  }
  return len;
}

/*--------------------------------------------------
  기능   : FormObj에서 varObjName이 몇개 존재하는지 리턴한다.
  INPUT  : FormObj : FormName
     : varObjName : 객체명
  RETURN :
----------------------------------------------------*/
function jsGetObjCnt( FormObj, varObjName ){
var cnt = 0 ;
  for(var inx = 0; inx < FormObj.elements.length ; inx++ ) {
     if ( FormObj.elements[inx].name == varObjName ) {
      cnt++ ;
     }
  }
  return cnt;
}

/*--------------------------------------------------
  기능   :  SELECT OPTION BOX의 값을 RETURN 한다.
  INPUT  : sb = selectBoxName
  RETURN :
----------------------------------------------------*/
function jsCheckSelectBox ( sb )
{
   var temp = sb.options[sb.selectedIndex].value ;
   return ( temp );
}

function jsCheckSelectBoxNm ( sb )
{
   var temp = sb.options[sb.selectedIndex].text ;
   return ( temp );
}

/*--------------------------------------------------
  기능   :  해당 Frame을 공백페이지로 변경
  INPUT  : fr : FrameName
  RETURN :
----------------------------------------------------*/
function jsClearFrame( fr ) {
   fr.location = "/common/blank.jsp";
}

/*--------------------------------------------------
  기능   : checkBox를 전체선택 및 해제를 할수 있게 한다.
  INPUT  : FormObj FormName
       elemNm CheckBox name
       checkYn boolean
  RETURN :
----------------------------------------------------*/
function jsToggle(FormObj, elemNm, checkYn){
var i =0;
while (i < FormObj.elements.length)
{
 if (FormObj.elements[i].name== elemNm )
 {
  FormObj.elements[i].checked= checkYn;
 }
 i++;
}
}

/*--------------------------------------------------
  기능   : focus 옮기기
  INPUT  : varTextObj : TextBox 객체명
       varLength  : 조건에 맞는 textLength
       varFocusToObj : Focus를 옮겨갈 객체명
  RETURN :
----------------------------------------------------*/
function jsMoveFocus( varTextObj, varLength, varFocusToObj ) {
if ( varTextObj.value.length == varLength ) {
 varFocusToObj.focus() ;
 varFocusToObj.select() ;
 return ;
}
}

/*--------------------------------------------------
  기능   : 문자를 숫자로 convert 한다. 단,
       parseFloat 와 다른 점은 null 이 올때 0 으로 인식한다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsParseInt( varStr ) {
if ( varStr == null || varStr == "" )
 return 0 ;
else
 return parseInt(varStr) ;
}

/*--------------------------------------------------
  기능   : 숫자를 한글로 변환한다.
  예) 450,000,000 -> 사억오천만
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsConvertNumberToHangul( varNum )
{
// 리턴할 문자열
var returnStr = "" ;

// 음수일 때는 에러
if ( eval(varNum) < 0 ) {
 return returnStr ;
}

// 넘어온 숫자를 문자로 변환
var numLen = varNum.length ;
// 변환된 문자를 앞에서 부터 한자씩 잘라서 보관할 변수
var oneChar = null ;
var isDone1 = true ;
var isDone2 = true ;
var isDone3 = true ;
var isDone4 = true ;
var isDone5 = false ;
for ( var inx = 0 ; inx < numLen ; inx++ ) {
 oneChar = varNum.substring( inx, inx+1 ) ;
 isDone5 = false ;

 if ( oneChar == "0" ) {
  // 아무일도 안함
 } else if ( oneChar == "1" ) {
  returnStr = returnStr + "일" ;
  isDone5 = true ;
 } else if ( oneChar == "2" ) {
  returnStr = returnStr + "이" ;
  isDone5 = true ;
 } else if ( oneChar == "3" ) {
  returnStr = returnStr + "삼" ;
  isDone5 = true ;
 } else if ( oneChar == "4" ) {
  returnStr = returnStr + "사" ;
  isDone5 = true ;
 } else if ( oneChar == "5" ) {
  returnStr = returnStr + "오" ;
  isDone5 = true ;
 } else if ( oneChar == "6" ) {
  returnStr = returnStr + "육" ;
  isDone5 = true ;
 } else if ( oneChar == "7" ) {
  returnStr = returnStr + "칠" ;
  isDone5 = true ;
 } else if ( oneChar == "8" ) {
  returnStr = returnStr + "팔" ;
  isDone5 = true ;
 } else if ( oneChar == "9" ) {
  returnStr = returnStr + "구" ;
  isDone5 = true ;
 }

 if ( ((numLen-inx) % 4) == 0 && oneChar != "0" ) {
  returnStr = returnStr + "천" ;
 } else if ( ((numLen-inx) % 4) == 3 && oneChar != "0" ) {
  returnStr = returnStr + "백" ;
 } else if ( ((numLen-inx) % 4) == 2 && oneChar != "0" ) {
  returnStr = returnStr + "십" ;
 } else if ( ((numLen-inx) % 4) == 1 ) {
  if ( numLen >= 17 && isDone1 && isDone5 ) {
   returnStr = returnStr + "경" ;
   isDone1 = false ;
  } else if ( numLen >= 13  && isDone2 && isDone5 ) {
   returnStr = returnStr + "조" ;
   isDone2 = false ;
  } else if ( numLen >= 9  && isDone3 && isDone5 ) {
   returnStr = returnStr + "억" ;
   isDone3 = false ;
  } else if ( numLen >= 5  && isDone4 && isDone5 ) {
   returnStr = returnStr + "만" ;
   isDone4 = false ;
  }
 }
}

return returnStr ;
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 comma를 찍어서 comma 를 찍어서 채워준다.
      소수점 허용 안함
   예) 1000.00 -> 1,000   
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeCurrency( varTextObj ) {
varTextObj.value = jsDeleteComma( varTextObj.value ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
var isPointed = false ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
  varText = varText + varTextObj.value.substring(inx, inx+1) ;
 }
}

varTextObj.value = jsAddComma( varText ) ;
}


/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 comma를 찍어서 comma 를 찍어서 채워준다.
      소수점 허용 함   
   예) 1000.00 -> 1,000.00   
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeForeignCurrency( varTextObj ) {
varTextObj.value = jsDeleteComma( varTextObj.value ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
var isPointed = false ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) || (varTextObj.value.substring(inx, inx+1)=='.') ) {
  // 점이 안찍히고 처음으로 점이 들어왔을때
  if ( !isPointed && varTextObj.value.substring(inx, inx+1)=='.' ) {
   isPointed = true ;
   varText = varText + varTextObj.value.substring(inx, inx+1) ;
  // 숫자 일때
  } else if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
   varText = varText + varTextObj.value.substring(inx, inx+1) ;
  }

 }
}

varTextObj.value = jsAddComma( varText ) ;
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 객체필드에 숫자만을 입력받게 해준다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsOnlyNumber( varTextObj ) {

var varLength = varTextObj.value.length ;
var varText   = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
  varText = varText + varTextObj.value.substring(inx, inx+1) ;
 }
}

// 앞에 붙은 0 없애기 (예) 00200 -> 200
varLength = varText.length ;
var varTempReturnNumber = varText;
var varReturnNumber = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varTempReturnNumber.substring(inx, inx+1) == '0' ) {
  // '0' 이 넘어왔을 경우 '0'을 그대로 리턴해야 한다.
  if ( varLength == 1 ) varReturnNumber = "0" ;
  else if ( eval(jsDeleteComma(varTempReturnNumber)) == '0' ) {
   varReturnNumber = "0" ;
   break ;
  }
 } else {
  varReturnNumber = varTempReturnNumber.substring(inx, varLength+1) ;
  break ;
 }
}

varTextObj.value = varReturnNumber;
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 숫자와 1개의 point만을 입력받게 해준다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsOnlyFloat( varTextObj ) {

varTextObj.value = jsDeleteComma( varTextObj.value ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
var isPointed = false ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) || (varTextObj.value.substring(inx, inx+1)=='.') ) {
  // 점이 안찍히고 처음으로 점이 들어왔을때
  if ( !isPointed && varTextObj.value.substring(inx, inx+1)=='.' ) {
   isPointed = true ;
   varText = varText + varTextObj.value.substring(inx, inx+1) ;
  // 숫자 일때
  } else if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
   varText = varText + varTextObj.value.substring(inx, inx+1) ;
  }

 }
}

// 앞에 붙은 0 없애기 (예) 00200 -> 200
varLength = varText.length ;

var varReturnNumber = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varText.substring(inx, inx+1) == '0' ) {
  // '0' 이 넘어왔을 경우 '0'을 그대로 리턴해야 한다.
  if ( varLength == 1 ) varReturnNumber = "0" ;
  else if ( eval(jsDeleteComma(varText)) == '0' ) {
   varReturnNumber = "0" ;
   break ;
  }
 } else {
  varReturnNumber = varText.substring(inx, varLength+1) ;
  break ;
 }
}

varTextObj.value = varReturnNumber ;

}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 YYYY/MM형식으로 [/]를 찍어서 채워준다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeYyyyMm( varTextObj ) {
varTextObj.value = jsDeleteChar( varTextObj.value, '/' ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
  varText = varText + varTextObj.value.substring(inx, inx+1) ;
 }
}

if ( varText.length < 6 ) {
 varTextObj.value = varText ;
} else {
 varTextObj.value = varText.substring(0,4) + "/" + varText.substring(4,6) ;
}
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 String에 날짜형식으로 [/]를 찍어서 리턴.
    예) 200103 -> 2001/03
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeYyyyMmString( varText ) {
if ( varText.length != 6 || !jsCheckNumber( varText ) ) {
 return varText ;
}

var varReturnText   = "" ;

varReturnText = varText.substring(0,4) + "/" + varText.substring(4,6) ;

return varReturnText
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 필드에 날짜형식으로 [/]를 찍어서 채워준다.     
    예) 20010301 -> 2001/03/01         
  INPUT  : Text Object
  RETURN :
----------------------------------------------------*/
function jsMakeDate( varTextObj ) {
varTextObj.value = jsDeleteChar( varTextObj.value, '/' ) ;

var varLength = varTextObj.value.length ;
var varText   = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( jsCheckNumber(varTextObj.value.substring(inx, inx+1)) ) {
  varText = varText + varTextObj.value.substring(inx, inx+1) ;
 }
}

if ( varText.length < 8 ) {
 varTextObj.value = varText ;
} else {
 varTextObj.value = varText.substring(0,4) + "/" + varText.substring(4,6) + "/" + varText.substring(6,8) ;
}
}

/*--------------------------------------------------
  기능   : 파라메터로 넘어온 String에 날짜형식으로 [/]를 찍어서 채워준다.     
    예) 20010301 -> 2001/03/01         
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsMakeDateString( varText ) {
if ( varText.length != 8 || !jsCheckNumber( varText ) ) {
 return varText ;
}

var varReturnText   = "" ;

varReturnText = varText.substring(0,4) + "/" + varText.substring(4,6) + "/" + varText.substring(6,8) ;

return varReturnText
}

/*--------------------------------------------------
  기능   : 숫자를 받아서 comma를 찍어서 리턴한다. 음수도 표현가능
    예) 1000.00 -> 1,000.00
    예) 숫자가 아닌 값 -> -1 리턴     
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsAddComma( varNumber ){
// 숫자가 아니면 -1을 리턴한다.
if ( jsCheckNull(varNumber) ) return "" ;
if ( !jsCheckFloat(varNumber) ) {
 return -1 ;
}

// 소수 이상, 이하 부분을 따로 보관.
var PointIndex = varNumber.indexOf(".") ;
var varUnderPoint = "" ;
var isPointed = false ;
// 소수 이하가 없을때
if ( PointIndex < 0 ) {
 isPointed = false ;
 // 소수 이하 부분
 varUnderPoint = "" ;
 // 소수 이상 부분
 varOverPoint = varNumber ;
// 소수 이하가 있을때
} else {
 isPointed = true ;
 // 소수 이하 부분
 varUnderPoint = varNumber.substring(PointIndex+1, varNumber.length ) ;
 // 소수 이상 부분
 varOverPoint = varNumber.substring(0, PointIndex) ;
}

// 음수일때 앞의 "-" 따로 보관
var negativeFlag = false ;
if ( varOverPoint.substring(0,1) == "-" ) {
 negativeFlag = true ;
 varOverPoint = varOverPoint.substring(1,varOverPoint.length+1) ;
}

// 소수 이상 부분에 comma 넣기
var varLength = varOverPoint.length ;
var varCnt = 0 ;
var varTempReturnNumber = "" ;
for ( var inx = varLength-1 ; inx >= 0 ; inx-- ) {
 varCnt++ ;

 // 소수점 찍기
 if ( varCnt == 4 ) {
  varTempReturnNumber = varOverPoint.substring( inx, inx+1 ) + "," + varTempReturnNumber ;
  varCnt = 1 ;
 // 소수점 안찍기
 } else {
  varTempReturnNumber = varOverPoint.substring( inx, inx+1 ) + varTempReturnNumber ;
 }

}

// 앞에 붙은 0 없애기 (예) 00200 -> 200
varLength = varTempReturnNumber.length ;
var varReturnNumber = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varTempReturnNumber.substring(inx, inx+1) == '0' ) {
  // '0' 이 넘어왔을 경우 '0'을 그대로 리턴해야 한다.
  if ( varLength == 1 ) varReturnNumber = "0" ;
  else if ( eval(jsDeleteComma(varTempReturnNumber)) == '0' ) {
   varReturnNumber = "0" ;
   break ;
  }
 } else {
  varReturnNumber = varTempReturnNumber.substring(inx, varLength+1) ;
  break ;
 }
}

// 소수점 이하 붙이기
if ( isPointed ) {
 varReturnNumber = varReturnNumber + "." + varUnderPoint ;
}

// 음수 붙이기
if ( negativeFlag ) {
 varReturnNumber = "-" + varReturnNumber ;
}

return varReturnNumber ;

}

/*--------------------------------------------------
  기능   : 숫자를 받아서 comma를 찍어서 리턴한다.
    예) 1000 -> 1,000.00
    예) 숫자가 아닌 값 -> -1 리턴  
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsAddCommaAndZero( varNumber ){
// 숫자가 아니면 -1을 리턴한다.
if ( jsCheckNull(varNumber) ) return "" ;
if ( !jsCheckFloat(varNumber) ) {
 return -1 ;
}

// 소수 이상, 이하 부분을 따로 보관.
var PointIndex = varNumber.indexOf(".") ;
var varUnderPoint = "" ;
// 소수 이하가 없을때
if ( PointIndex < 0 ) {
 // 소수 이하 부분
 varUnderPoint = "" ;
 // 소수 이상 부분
 varOverPoint = varNumber ;
// 소수 이하가 있을때
} else {
 // 소수 이하 부분
 varUnderPoint = varNumber.substring(PointIndex+1, varNumber.length ) ;
 // 소수 이상 부분
 varOverPoint = varNumber.substring(0, PointIndex) ;
}

// 소수 이상 부분에 comma 넣기
var varLength = varOverPoint.length ;
var varCnt = 0 ;
var varTempReturnNumber = "" ;
for ( var inx = varLength-1 ; inx >= 0 ; inx-- ) {
 varCnt++ ;

 // 소수점 찍기
 if ( varCnt == 4 ) {
  varTempReturnNumber = varOverPoint.substring( inx, inx+1 ) + "," + varTempReturnNumber ;
  varCnt = 1 ;
 // 소수점 안찍기
 } else {
  varTempReturnNumber = varOverPoint.substring( inx, inx+1 ) + varTempReturnNumber ;
 }

}

// 앞에 붙은 0 없애기 (예) 00200 -> 200
varLength = varTempReturnNumber.length ;
var varReturnNumber = "" ;
for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varTempReturnNumber.substring(inx, inx+1) == '0' ) {
 } else {
  varReturnNumber = varTempReturnNumber.substring(inx, varLength+1) ;
  break ;
 }
}

// 소수점 이하 붙이기
if ( varUnderPoint.length == 0 ){
 varReturnNumber = varReturnNumber + "." + "00" ;
}else if ( varUnderPoint.length == 1 ){
 varReturnNumber = varReturnNumber + "." + varUnderPoint + "0";
}else if ( varUnderPoint.length == 2 ){
 varReturnNumber = varReturnNumber + "." + varUnderPoint ;
}

return varReturnNumber ;

}

/*--------------------------------------------------
  기능   : 숫자를 받아서 comma를 없애고 리턴한다
    예) 1,000.00 -> 1000.00    
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsDeleteComma( varNumber ){
var varLength = varNumber.length ;

varReturnNumber = "" ;

for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varNumber.substring( inx, inx+1 ) != "," ) {
  varReturnNumber = varReturnNumber + varNumber.substring( inx, inx+1 ) ;
 }
}

return varReturnNumber ;
}

/*--------------------------------------------------
  기능   : 글자를 받아서 param를 없애고 리턴한다.
    예) 2001/01/01 -> 20010101    
  INPUT  : varText 문자열 varDelete 삭제하고자하는 Character
  RETURN :
----------------------------------------------------*/
function jsDeleteChar( varText, varDelete ){
var varLength = varText.length ;

varReturnText = "" ;

for ( var inx = 0 ; inx < varLength ; inx++ ) {
 if ( varText.substring( inx, inx+1 ) != varDelete ) {
  varReturnText = varReturnText + varText.substring( inx, inx+1 ) ;
 }
}

return varReturnText ;
}

/*--------------------------------------------------
  기능   : 폼 이름을 받아서 모든 text,hidden값에 comma, / 문자를 없애준다
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsDeleteCharAll( FormObj ) {
for ( i=0; i<FormObj.elements.length; i++ ) {
 if ( FormObj.elements[i].type == "text" || FormObj.elements[i].type == "hidden" ) {
  if ( !jsCheckNull(FormObj.elements[i].value) && jsCheckFloat(jsDeleteComma(FormObj.elements[i].value)) ) {
   FormObj.elements[i].value = jsDeleteComma(FormObj.elements[i].value);
  } else if ( !jsCheckNull(FormObj.elements[i].value) && jsCheckDate(jsDeleteChar(FormObj.elements[i].value,'/')) ) {
   FormObj.elements[i].value = jsDeleteChar( FormObj.elements[i].value, '/' );
  }
 }
}
}

/*--------------------------------------------------
  기능   : FormObj에서 checkBox 가 몇개 선택되었는지  리턴한다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function jsCheckBoxSelectedCnt( FormObj, checkBoxName ){
  var cnt = 0 ;
  for(var inx = 0; inx < FormObj.elements.length ; inx++ ) {
     if ( FormObj.elements[inx].name == checkBoxName && FormObj.elements[inx].checked ) {
      cnt++ ;
     }
  }
  return cnt;
}

/*--------------------------------------------------
  기능   : 영문 과 숫자로만 이루어 졌는지  체크를 해준다.
  INPUT  :
  RETURN :
----------------------------------------------------*/
function isAlphaNum(input) {
   var chars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
   return containsCharsOnly(input,chars);
}


//입력값이 한글이 포함되어있는지 체크

function IsHangul(field)
{
if ( field == "" ) return false;

   var rtnLen = 0 ;

   for (i=0; i<field.length; i++)
   {  
       // 한글인 경우 길이가 UniCode 값은 10000 이상이다.
       if(field.charCodeAt(i) > 10000 )
       {
        rtnLen++;
       }
   }
  
   if ( rtnLen > 0 )
    return true;
   else
    return false;
}


/*----------------------------------------------------
  입력값이 특정 문자(chars)만으로 되어있는지 체크
  특정 문자만 허용하려 할 때 사용
  ex) if (!containsCharsOnly(form.blood,"ABO")) {
         alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
     }
------------------------------------------------------*/
function containsCharsOnly(input,chars) {
   for (var inx = 0; inx < input.value.length; inx++) {
      if (chars.indexOf(input.value.charAt(inx)) == -1)
          return false;
   }
   return true;
}

/*--------------------------------------------------
  기능   : POPUP OPEN Script
  INPUT  :
  RETURN :
----------------------------------------------------*/
function popup1( varAction, varWinName, varWidth, varHeight ){
var win = window.open( varAction, varWinName , "toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1, width=" + varWidth + ",height=" + varHeight + ", left=50,top=50");
return win;

//var FormObj = document.dataForm;
//FormObj.target = varWinName ;
//FormObj.action = varAction ;
//FormObj.submit() ;
}


function toTimeString( varDateObj ) { //formatTime(date)
   var year  = varDateObj.getFullYear();
   var month = varDateObj.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
   var day   = varDateObj.getDate();

   if (("" + month).length == 1) { month = "0" + month; }
   if (("" + day).length   == 1) { day   = "0" + day;   }

   return ("" + year + month + day );
}

function jsAfterThisDate( varStdDate , varYYYY , varMM , varDD ) {

   var varDateObj = new Date();

   varStdDate = jsDeleteChar( varStdDate, "/" );

   var yyyy = varStdDate.substring(0,4) +"" ;
   var mm   = varStdDate.substring(4,6) +"" ;
   var dd   = varStdDate.substring(6,8) +"" ;

   var startDate = new Date(yyyy,(eval(mm)-1),dd) ; // 달 은 한달이 느리므로 1을 빼준다.

   varDateObj.setFullYear(startDate.getFullYear() + eval(varYYYY) ); //년을 더함
   varDateObj.setMonth(startDate.getMonth() + eval(varMM) );       //월을 더함
   varDateObj.setDate(startDate.getDate() + eval(varDD)  );         //일을 더함

   return toTimeString(varDateObj);
}

/*--------------------------------------------------
  기능   : text 입력시 숫자이외의 키를 눌렀을때 무효화시킨다.
  INPUT  : 없음
  RETURN : 이벤트 무효화

  주의!  : onKeypress 이벤트만 사용할것
         예) <input type="text" onKeypress="jsOnlyNumberKey();">
----------------------------------------------------*/
function jsOnlyNumberKey() {
   if ( event != null) {
     if ( event.keyCode < 48 || event.keyCode > 57 ) {
       event.returnValue = false;
     }
   }
}

/* 이전페이지로 이동 */
function jsBack(){
history.go(-1);
}

/* 모래시계 보이게 하기 */
function jsVisible( str ){
if( str == '1' )
 document.body.style.cursor='wait'
else
 document.body.style.cursor='auto'
}

/* 15초후에 jsRefresh()라는 function을 호출 */
var timeId   = null ;

function jsRunAfterTime() {
//15초 후에 Refresh
timeId = setTimeout( "jsRefresh()", 15000 ) ;
}

/**
* 소수점 아래 몇자리 이하 절삭.
*
* @param num 숫자
* @param place 자리수
* @return 절삭된 숫자
*/
function getCutNumber(num, place) {
var returnNum;
var str = "1";

return Math.floor( num * Math.pow(10,parseInt(place,10)) ) / Math.pow(10,parseInt(place,10));
}

/* text의 좌우 공백을 제거해서 리턴*/
function trim(text) {
if (text == "") {
 return text;
}

var len = text.length;
var st = 0;

while ((st < len) && (text.charAt(st) <= ' ')) {
 st++;
}

while ((st < len) && (text.charAt(len - 1) <= ' ')) {
 len--;
}

return ((st > 0) || (len < text.length)) ? text.substring(st, len) : text;
}

/* text의 좌측의 공백을 제거해서 리턴*/
function ltrim(text) {
if (text == "") {
 return text;
}

var len = text.length;
var st = 0;

while ((st < len) && (text.charAt(st) <= ' ')) {
 st++;
}

return (st > 0) ? text.substring(st, len) : text;
}

/* text의 우측의 공백을 제거해서 리턴*/
function rtrim(text) {
if (text == "") {
 return text;
}

var len = text.length;
var st = 0;

while ((st < len) && (text.charAt(len - 1) <= ' ')) {
 len--;
}

return (len < text.length) ? text.substring(st, len) : text;
}

/*--------------------------------------------------
  기능   : select box 를 CLEAR 시킨다.
  INPUT  : varObjFullNm : select box 객체
          varDeleteCnt : 첫번째 아이템 삭제 여부 결정
  RETURN : NONE
----------------------------------------------------*/
function cmInitSelectBox( varObjFullNm, varDeleteCnt ) {
varObj = eval( varObjFullNm ) ;
varObj.length = varDeleteCnt ;
}

/*--------------------------------------------------
  기능   :  select box 를 만든다.
  INPUT  : varObjFullNm :  select box 객체
          varText      :
          varValue     : 
  RETURN : NONE
----------------------------------------------------*/
function cmMakeSelectBox( varObjFullNm, varText, varValue ) {
varObj = eval( varObjFullNm ) ;

var empOption = null ;

empOption = document.createElement("OPTION");
empOption.text = varText ;
empOption.value = varValue ;
varObj.options.add(empOption);
}

    //디비에 저장되어있는값을 읽어올때 공백이 아니면서 공백처럼 보이는건 이문제

   // 반각 문자를 전각문자로
   function convert2ByteChar(x_char) {
       var x_2byteChar = ""; //컨버트된 문자
       var c = x_char.charCodeAt(0);
       if(32 <= c && c <= 126) { //전각으로 변환될수 있는 문자의 범위
           if(c == 32) { //스페이스인경우 ascii 코드 32
               x_2byteChar = unescape("%uFFFC");
           } else {
               x_2byteChar = unescape("%u"+gf_DecToHex(c+65248));
           }
       }
       return  x_2byteChar;
   }

2006/09/08 16:02 2006/09/08 16:02
이 글에는 트랙백을 보낼 수 없습니다
웅쓰:웅자의 상상플러스
웅자의 상상플러스
전체 (379)
게임 (5)
영화 (2)
기타 (23)
맛집 (5)
영어 (2)
대수학 (3)
형태소 (5)
Hacking (9)
Linux (112)
HTML (48)
Application_developing (48)
Web_developing (102)
Window (11)
«   2024/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  1. 2016/01 (1)
  2. 2015/12 (3)
  3. 2015/10 (3)
  4. 2015/03 (2)
  5. 2015/01 (4)