2010. 11. 14. 13:28
출저 - http://blog.daum.net/turnnig-pointer/16498260

* 입력값이 숫자인지를 확인한다. (' '까지 괜찮음)

 * param : sVal 입력스트링

 * return : Boolean True이면 숫자값

 function isNumberSpace(sVal)

 

 * sVal 값이 숫자인지를 확인한다.('.'까지 괜찮음)

 * param : sVal 입력스트링

 * return : Boolean  True이면 숫자값

function isNumberSpace(sVal)

 

 * 입력값의 앞에 정해진 자리수만큼 0을 채운다. 

 * param : sVal 입력스트링, iSize

 * return : String

function fillZero(sVal, iSize)

 


 * 길이가1인 경우 앞에 "0"을 붙인다.

 * param : sVal 입력스트링

 * return : String  "0"값을 포함하는 값

function addZero(sVal)


 

 * 날짜 여부를 확인한다.(월일 or 년월 or 년월일)

 * param : sYmd 입력스트링(MMDD or YYYYMM or YYYYMMDD)

 * return : Boolean true이면 날짜 범위임

 * 수정   : 월이나 일에 00 입력시 스크립트 에러. trimZero 부분을 function isDate(sYmd)

 

 * 날짜 여부를 확인한다.(년월일)

 * param : sYmd 입력스트링(YYYYMMDD)

 * return : Boolean true이면 날짜 범위임

function isDateYMD(sYmd)


 

 * 날짜 여부를 확인한다.(월일)

 * param : sMD 입력스트링(MMDD)

 * return : Boolean true이면 날짜 범위임

function isDateMD(sMD)

 

 * 날짜 여부를 확인한다.(년월)

 * param : sYM 입력스트링(YYYYMM)

 * return : Boolean true이면 날짜 범위임

function isDateYM(sYM)

 

 * 년월을 입력받아 마지막 일를 반환한다(년월)

 * param : sYM 입력스트링(YYYYMM)

 * return : String 해당월의 마지막날

function lastDay(sYM)

 

 * 대소문자를 포함한 영문자인지 확인한다.

 * param : sVal 입력문자열

 * return : Boolean true이면 알파벳

function isAlpha(sVal)

 

 * 영문자와 숫자 구성된 문자열인지 확인

 * param : sVal 입력문자열

 * return : Boolean true이면 영문자,숫자로 구성된 문자열

function isAlphaNumeric(sVal)

 

 * 문자열의 길이를 return (한글:2자)

 * param : sVal 입력문자열

 * return : int 입력문자열의 길이

function strLength(sVal)


 

 * 문자열 길이 체크

 * param : str 필드객체, field 필드명

 * return : boolean

function chkStrLength(str,field)


 

 * 한글이지 여부 체크

 * param : sVal 입력문자열

 * return : Boolean true이면 한글

function isHangul(sVal)

 


 * 입력받은 날짜로부터 몇일 후의 날짜를 반환하기

 * param : ObjDate객체, 일수, 결과Data객체

 * return :

function calcDate(objDate,iDay,objResultDate)

 

 * 숫자 0으로 초기화 된 1차원 배열을 생성한다.

 * param : iSize 배열 크기

 * return : this 배열

function makeArray(iSize)

 

 * 숫자 분리자(,)(.)가 있는 숫자이거나 일반숫자형태인지 검사한다.

 * param : sVal

 * return : Boolean

function isMoneyNumber(sVal)

 

 * 숫자 분리자(,)만 있는 숫자이거나 일반숫자형태인지 검사한다.

 * param : sVal

 * return : Boolean

function isMoneyNumber2(sVal)

 

 * 숫자 분리자(.)만 있는 숫자이거나 일반숫자형태인지 검사한다.

 * param : sVal

 * return : Boolean

function isMoneyNumber3(sVal)

 

 * 숫자 분리자(.)만 있는 숫자인지 검사한다.

 * param : sVal

 * return : Boolean

function isMoneyNumber4(sVal){   


 

 * 소수점이 있는 숫자이면서 정해진 자릿수에 맞는 형식인지 확인다. 

 * param : sVal 입력객체, iSize1 정수자릿수, iSize2 소수자릿수

 * return : boolean

function isMoneyNumber5(sVal, iSize1, iSize2)

 

 * 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)

 * param : val

 * return : String

function getMoneyType(val)

 

 * 부호가 있는 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)

 * param : val

 * return : String

function getSignMoneyType(val)

 

 

 * 콤마를 제거한 숫자형태 문자열로 반환(부호와 소수점도 없앰)

 * param : val

 * return : String

function getOnlyNumber(val)

 

 * 콤마를 제거한 숫자형태 문자열로 반환(부호, 소수점 그대로)

 * param : val

 * return : String

  function getOnlyNumberDot(val)

 

 

 * 콤마를 제거한 부호가 있는 숫자형태 문자열로 반환

 * param : val

 * return : String

function getOnlySignNumber(val)


 

 

 * 앞뒤 공백을 제거한다.

 * param : sVal

 * return : String

function Trim(sVal)

 

 * 앞 공백을 제거한다.

 * param : sVal

 * return : String

function LTrim(sVal)

 

 * 뒤 공백을 제거한다.

 * param : sVal

 * return : String

function RTrim(sVal)


 

 

// DESCRIPTION  : 공백문자 제거

// 함수명       : MTrim(공백이 있는 문자열)

// Return Value : 공백이 제거된 문자열

function MTrim(sVal){

 

 * 공백만 존재하거나 아무것도 없는지 확인한다.

 * param : sVal

 * return : boolean (true이면 공백이나 Empty이다)

function isEmpty(sVal){

 

 * 현재 컨트롤과 MaxLength 받아서 MaxLength 되면

   다음 컨트롤로 이동

 * param : objCurrent, objNext

 * return :

function focusMove(objCurrent, objNext)

 

 * 현재 컨트롤과 MaxLength 받아서 MaxLength 되면

   다음 컨트롤로 이동(선택)

 * param : objCurrent, objNext

 * return :

function focusMoveSelect(objCurrent, objNext)

 

 * 완료된 날짜값에 대해 "/" 추가

 * param : me(value)

 * return : String

function calOnMask(me){

 

 * 날짜값 "/" 제거

 * param :  me(value)

 * return : String "/" 제거된 날짜값

function calOffMask(me){

 

 

 * 날짜값 자동 "/" 붙임.(완성된 날짜값에 대해 /붙임)

 * param :

 * return :

function cal_value2(me){

 

 * 오늘 날짜 생성 ( "/" 붙여서 리턴)

 * param :

 * return : todate

function todate() {

 

 

 Spec     : 숫자입력시 3자리마다 자동으로 콤마 찍기

 Argument : string

 Return   : string

 Example  : onkeyup="comma_value(this)"

function comma_value(sval)


 

 Spec     : 숫자입력시 3자리마다 자동으로 콤마 찍기

 Argument : string

 Return   : string

 Example  : onkeyup="comma_value(str)"

function formatNumbertoString(cur)

 

 

// 숫자만 입력 (소수점 허용, 음수 허용)

// 사용법 : onKeyPress = onlyNum();

function onlyNum()

 

// 숫자만 입력 (소수점 허용, 음수 불가)

// 사용법 : onKeyPress = onlyNum2();

function onlyNum2()

 

 

// 숫자만 입력 (소수점 불가, 음수 허용)

// 사용법 : onKeyPress = onlyNum3();

function onlyNum3()

 

// 숫자만 입력 (소수점 불가, 음수 불가)

// 사용법 : onKeyPress = onlyNum4();

function onlyNum4()

 

 

 

 

 * 입력완료된 숫자값에 대하여 콤마를 찍어줄때 사용

   (소수점 이하 처리 안됨)

 * 콤마 형식을 사용할 경우에는 onkeyup이벤트로 사용하기 바라며,

 * 다음의 펑션을 호출할때는 comma_value(me) 펑션을 호출하기 바람.

 * param : value

function numOnMask(me){

 

 * 콤마가 들어간 숫자에서 ","를 뺀다.

 * param : value

function numOffMask(me){

 

 

// 입력 완료된 숫자 값에 컴마를 적용하여준다

 (소수점 이하는 "," 안 붙음)

// return : String

function numOnMask2(me){

 

// 입력 완료된 숫자 값에 컴마를 적용하고 소수점 이하는 삭제한다

// return : String

function numOnMask3(me){ //단순히 값에 컴마를 적용할때 사용

 

 * 입력값을 소수점 이하 몇 자리까지 보여줄지 정한다. 

 * 소수점 이하 자리수가 입력된 값보다 작으면 0으로 채운다.

 * param : sVal 입력스트링, iSize 소수자릿수

 * return : String

function numOnMask4(sVal,iSize)

 

 * 입력값에 마스킹을 적용한다.

   (소수점 이하와 부호를 삭제하고 콤마추가)

 * param : sVal 입력스트링

 * return : String

function numOnMask5(sVal)


 

 * 입력값에 마스킹을 적용한다.

   (부호를 삭제하고 콤마추가. 소수점은 그대로 둠)

 * param : sVal 입력스트링

 * return : String

function numOnMask6(sVal)

 

 

 * 숫자 외의 값이 입력되어있으면 false 리턴

 * param : sval (object)

 * return :

function onlyNumber(sval) {

 

 

 * 특수문자 값이 입력되었는지 체크(특수문자가 있으면 false 리턴)

 * param : sval (object)

 * return :

function chkValidChar(sval) {


 

 

 *

 * 윈도우 오픈1 (사용자 지정 위치생성)

 * param : wUrl                지정url

 * param : wTitle        지정타이틀

 * param : wTop                지정 창 높이정렬기준

 * param : wLeft   지정 창 왼쪽정렬기준

 * param : wWidth        창넓이

 * param : wHeight        창높이

 * param : wSco                스크롤바 생성유무, 1:생성 0:비생성

function win_open(wUrl,wTitle,wTop,wLeft,wWidth,wHeight,wSco) 

 

 *

 * 윈도우 오픈2 (무조건 가운데 생성)

 * param : wUrl                지정url

 * param : wTitle        지정타이틀

 * param : wWidth        창넓이

 * param : wHeight        창높이

 * param : wSco                스크롤바 생성유무, 1:생성 0:비생성

function win_open2(wUrl,wTitle,wWidth,wHeight,wSco)

 

 *

 * 윈도우 오픈3 (무조건 전체 생성)

 * param : wUrl                지정url

 * param : wTitle        지정타이틀

 * param : wWidth        창넓이

 * param : wHeight        창높이

 * param : wSco                스크롤바 생성유무, 1:생성 0:비생성

function win_open3(wUrl,wTitle)

 

 


 

/**

 * 두 날짜에 며칠 차이나는지 구함

 * from_val이 to_val보다 크면 -붙여서 리턴

 */

function getDayInterval(from_val,to_val)

 

 

 

/**
===============================================================================
주  시 스 템 : 공통 개발
서브  시스템 : 없음
프로그램  ID : JCommon.js
프로그램  명 : 공통 기능 Javascript
프로그램개요 : 공통적으로 사용되는 Javascript를 정의한다
작   성   자 : 유명현, 최선재
작   성   일 : 2002.04.04
마지막 수정일 : 2003.11.30
===============================================================================

 


/* 오른쪽 마우스 금지 및 Ctrl key 금지 ======================================*/
document.onkeydown=cntrcheck;
document.onmousedown=Right;
var tabKeyon = "N";
if (document.layers) {
    window.captureEvents(Event.MOUSEDOWN);
    window.onmousedown=Right;
}

function Right(e) {
//    start_timer();
    //if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2))
    //    return false;
    //else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3)) {
    //    alert!("오른쪽 마우스는 사용하실수 없습니다.");
    //    return false;
    //}
    //return true;
}


function cntrcheck() {
//    start_timer();
 var keyValue = event.keyCode;
 /*ctrl 키 제어*/
 //if (keyValue == '17')  
 //{
 // alert!("ctrl 키는 쓰실수 없습니다.");
 //}
 /*F11 제어*/
 if (keyValue == '122')
 {
  alert!("F11키는 사용할수 없습니다");
  event.keyCode=38;
 }
 /*F5 제어*/
 //if (keyValue == '116')
 //{
 //alert!("F5키는 사용할수 없습니다");
 //event.keyCode=38;
 //}
 /*BackSpace 제어*/
 //if (keyValue == '8')
 //{
 //   alert!("BackSpace는 사용할수 없습니다");
 // event.keyCode=38;
 //}
 /* tabKey 제어*/
 if (keyValue == '9')
 {
 tabKeyon = "Y";
 }
}

/* 금지 태그 end=================================== */

/*=============================================================================*
 * 입력값이 숫자인지를 확인한다
 * param : sVal 입력스트링
 * return : Boolean True이면 숫자값
 *============================================================================*/
 
function isNumber(sVal)
{   
  if(sVal.length < 1)
  {
   return false;
  }

  for(i=0; i<sVal.length; i++)
  {
    iBit = parseInt(sVal.substring(i,i+1));     //문자(Char)를 숫자로 변경
    if(('0' < iBit) || ('9' > iBit))
    {
      //alert!(i+':'+iBit+':'+'Mun');
    }
    else
    {
      return false;
    }
  }
  return true;
}


/*=============================================================================*
 * 입력값이 숫자인지를 확인한다. (' '까지 괜찮음)
 * param : sVal 입력스트링
 * return : Boolean True이면 숫자값
 *============================================================================*/
function isNumberSpace(sVal)
{   
  if(sVal.length < 1)
  {
    return false;
  }
  
  for(var i=0;i<sVal.length;i++)
    {
      sBitData = sVal.substring(i,i+1);     //문자열의 문자(char)를 넣는다
      if(sBitData == ' ')
      {
      }
      else
      {
        iBit = parseInt(sVal.substring(i,i+1)); //문자(char)를 숫자로
        if(('0' < iBit) || ('9' > iBit) || (' ' == sBitData))
        {
        }
        else
        {
    return false;
        }
      }
    }
  return true;
}


/*=============================================================================*
 * sVal 값이 숫자인지를 확인한다.('.'까지 괜찮음)
 *
 * param : sVal 입력스트링
 *
 * return : Boolean  True이면 숫자값
 *============================================================================*/
function isNumberDot(sVal)
{
 if (sVal.length < 1) {
     return false;
 }
 
 var result=0;
 var position=0;
 var bMinus;

 //마이너스 부호의 갯수를 카운트하여 올바른지 확인
 for(position=0; position<sVal.length; position++)
 {
     if( getAt(sVal, position) == '-' )
      {
   result += 1;
     }
 }

 if(result > 1)
     return false;
 
 result = 0;
 //소수점의 갯수를 카운트하여 올바른지 확인
 for(position=0; position<sVal.length; position++)
 {
     if( getAt(sVal, position) == '.' )
      {
   result += 1;
     }
 }

 if(result > 1)
     return false;

 //마이너스 부호를 가지고 있는지 확인. 있다면 부호는 빼낸다.
 if(sVal.substr(0,1) == '-')
 {
     bMinus = true;
     sVal = sVal.substring(1, sVal.length);    
 }

 //맨앞에 소수점이 있거나 맨 뒤에 있을 경우 0 을 추가해 줌.
 if(sVal.substring(0,1) == '.')
     sVal = '0' + sVal;
 else if(sVal.substring(sVal.length-1,sVal.length) == '.')
     sVal = sVal + '0';
 
 //검사.
 for(var position=0; position<sVal.length; position++)
 {
     if( (getAt(sVal, position) < '0' || getAt(sVal, position) >'9') && getAt(sVal,position) != '.' )
   return false;
 }
    return true;
}

function getAt(sVal, position)
{
 return sVal.substring(position, position+1)    
}


/*=============================================================================*
 * 앞자리의 연속된 Zero 값을 자른다.
 * param : sVal 입력스트링
 * return : String  Zero값을 자른 값
 *============================================================================*/
function trimZero(sVal)
{
  var i;
  i = 0;
  while (sVal.substring(i,i+1) == '0')
  {
    i++;
  }
  return sVal.substring(i);
}

/*=============================================================================*
 * 입력값의 앞에 정해진 자리수만큼 0을 채운다. 
 * param : sVal 입력스트링, iSize
 * return : String
 *============================================================================*/
function fillZero(sVal, iSize)
{
    while(sVal.length < iSize) 
    {
  sVal = "0" + sVal;
    }
 return sVal;
}


/*=============================================================================*
 * 길이가1인 경우 앞에 "0"을 붙인다.
 *
 * param : sVal 입력스트링
 *
 * return : String  "0"값을 포함하는 값
 *============================================================================*/
function addZero(sVal)
{
  var iLen = sVal.length;   //인수값의 길이를 구한다.
  if(iLen == 1)
  {
    sVal = "0"+sVal;
  }
  else if(iLen == 0)
  {
    return;
  }
  return sVal;
}

/*=============================================================================*
 * 날짜 여부를 확인한다.(월일 or 년월 or 년월일)
 *
 * param : sYmd 입력스트링(MMDD or YYYYMM or YYYYMMDD)
 *
 * return : Boolean true이면 날짜 범위임
 *
 * 수정   : 월이나 일에 00 입력시 스크립트 에러. trimZero 부분을 수정(2003/11/19)
 *============================================================================*/
function isDate(sYmd)
{
  var bResult;  // 결과값을 담는 변수(Boolean)

  switch (sYmd.length)
  {
    case 4://월일
      bResult = isDateMD(sYmd);
      break;
    case 6://년월
      bResult =  isDateYM(sYmd); 
      break;
    case 8://년월일
      bResult =  isDateYMD(sYmd);
      break;
    default:
      bResult = false;  // 날짜 값이 아님
      break;
  }
  return bResult;
}

/*=============================================================================*
 * 날짜 여부를 확인한다.(년월일)
 *
 * param : sYmd 입력스트링(YYYYMMDD)
 *
 * return : Boolean true이면 날짜 범위임
 *============================================================================*/
function isDateYMD(sYmd)
{
  // 길이 확인      //@@ 12.5 순서 변경
  if(sYmd.length != 8)
  {
    alert!('일자를 모두 입력하십시오');
    return false;
  }

  // 숫자 확인 
  if(!isNumber(sYmd))
  {
    alert!('날짜는 숫자만 입력하십시오');
    return false;
  }

  var iYear = parseInt(sYmd.substring(0,4),10);  // 년도 입력(YYYY)
  var iMonth = parseInt(sYmd.substring(4,6),10);   //월입력(MM)
  var iDay = parseInt(sYmd.substring(6,8),10);     //일자입력(DD)

  if((iMonth < 1) ||(iMonth >12))
  {
    alert!(iMonth+'월의 입력이 잘못 되었습니다.');
 return false;
  }
 
  //각 달의 총 날수를 구한다
  var iLastDay = lastDay(sYmd.substring(0,6));  // 해당월의 마지말날 계산

  if((iDay < 1) || (iDay > iLastDay))
  {
    alert!(iMonth+'월의 일자는 1 - '+ iLastDay +'까지입니다.');
    return false;
  }
  return true;
}

/*=============================================================================*
 * 날짜 여부를 확인한다.(월일)
 *
 * param : sMD 입력스트링(MMDD)
 *
 * return : Boolean true이면 날짜 범위임
 *============================================================================*/
function isDateMD(sMD)
{
  // 숫자 확인
  if(!isNumber(sMD))
  {
    alert!('숫자만 입력하십시오');
    return false;
  }

  // 길이 확인
  if(sMD.length != 4)
  {
    alert!('일자를 모두 입력하십시오');
    return false;
  }

  var iMonth = parseInt(sMD.substring(0,2),10);  //해당월을 숫자값으로
  var iDay = parseInt(sMD.substring(2,4),10);    //해당일을 숫자값으로

  if((iMonth < 1) ||(iMonth >12))
  {
    alert!(iMonth+'월의 입력이 잘못 되었습니다.');
    return false;
  }
 
  //각 달의 총 날수를 구한다
  if (iMonth < 8 )
   {
 var iLastDay = 30 + (iMonth%2);
   }

  else
   {
 var iLastDay = 31 - (iMonth%2);
   }

  if (iMonth == 2)
  {
    iLastDay = 29;
  }
 
  if((iDay < 1) || (iDay > iLastDay))
  {
    alert!(iMonth+'월의 일자는 1 - '+iLastDay+'까지입니다.');
    return false;
  }
  return true;  
}

/*=============================================================================*
 * 날짜 여부를 확인한다.(년월)
 *
 * param : sYM 입력스트링(YYYYMM)
 *
 * return : Boolean true이면 날짜 범위임
 *============================================================================*/
function isDateYM(sYM)
{
  // 숫자 확인
  if(!isNumber(sYM))
  {
    alert!('날짜는 숫자만 입력하십시오');
    return false;
  }

  // 길이 확인
  if(sYM.length != 6)
  {
    alert!('일자를 모두 입력하십시오');
    return false;
  }
 
  var iYear = parseInt(sYM.substring(0,4),10); //년도값을 숫자로
  var iMonth = parseInt(sYM.substring(4,6),10);  //월을 숫자로
 
  if((iMonth < 1) ||(iMonth >12))
  {
    alert!(iMonth+'월의 입력이 잘못 되었습니다.');
    return false;
  }
  return true;  
}

 


/*=============================================================================*
 * 년월을 입력받아 마지막 일를 반환한다(년월)
 *
 * param : sYM 입력스트링(YYYYMM)
 *
 * return : String 해당월의 마지막날
 *============================================================================*/
function lastDay(sYM)
{
  if(sYM.length != 6)
  {
    alert!("정확한 년월을 입력하십시오.");
    return;
  }
 
  if(!isDateYM(sYM))
  {
     return;
  }
 
  daysArray = new makeArray(12);    // 배열을 생성한다.

  for (i=1; i<8; i++)
  {
    daysArray[i] = 30 + (i%2);
  }
  for (i=8; i<13; i++)
  {
    daysArray[i] = 31 - (i%2);
  }  
  var sYear = sYM.substring(0, 4) * 1;
  var sMonth = sYM.substring(4, 6) * 1;
 
  if (((sYear % 4 == 0) && (sYear % 100 != 0)) || (sYear % 400 == 0))
  {
  daysArray[2] = 29;
  }
  else
  {
  daysArray[2] = 28;
  }
 
  return daysArray[sMonth].toString();
}


/*=============================================================================*
 * 대소문자를 포함한 영문자인지 확인한다.
 *
 * param : sVal 입력문자열
 *
 * return : Boolean true이면 알파벳
 *============================================================================*/
function isAlpha(sVal)
{
  // Alphabet 값
  var sAlphabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  var iLen=sVal.length;   //입력값의 길이

  for(i=0;i<iLen;i++)
  {
    if(sAlphabet.indexOf(sVal.substring(i,i+1))<0)
    {
      alert!("허용된 문자가 아닙니다.\n영문으로 입력해 주십시오.");    
      return false;
    }
  }
  return true;  
}

/*=============================================================================*
 * 영문자와 숫자 구성된 문자열인지 확인
 *
 * param : sVal 입력문자열
 *
 * return : Boolean true이면 영문자,숫자로 구성된 문자열
 *============================================================================*/
function isAlphaNumeric(sVal)
{
  var sAlphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  var iLen      = sVal.length;

  for ( i = 0; i < iLen; i++ )
  {
    if ( sAlphabet.indexOf(sVal.substring(i, i+1)) < 0 )
    {
      return false;
    } 
  }
  return true;  
}  

/*=============================================================================*
 * 문자열의 길이를 return (한글:2자)
 *
 * param : sVal 입력문자열
 *
 * return : int 입력문자열의 길이
 *============================================================================*/
function strLength(sVal)

  var sBit = '';    // 문자열의 문자(Char)
  var iLen = 0; //문자열 길이

  for ( i = 0 ; i < sVal.length ; i++ )
  {
    sBit = sVal.charAt(i);
    if ( escape( sBit ).length > 4 )
    {
      iLen = iLen + 2;
    }
 else
 {
      iLen = iLen + 1;
    }
  }
  return iLen;
}


/*=============================================================================*
 * 문자열 길이 체크
 * param : str 필드객체, field 필드명
 * return : boolean
 *============================================================================*/
function chkStrLength(str,field)
{
 iSize = str.getAttribute("Maxlength")

 if (field == null)
  field = '';

 if ( strLength(str.value) > iSize)
 {
//  if (flag=1)
   alert!("입력가능한 "+field+" 최대길이는 영문/숫자일 때 "+iSize+"자, 한글일 때 "+Math.floor(iSize/2)+"자입니다.");
//  else
//   alert!(field+" 최대길이는 "+iSize+"자 입니다.");
        str.select();
     str.focus();
  return false;
 }

 return true;
}

 

/*=============================================================================*
 * 한글이지 여부 체크
 *
 * param : sVal 입력문자열
 *
 * return : Boolean true이면 한글
 *============================================================================*/
function isHangul(sVal)
{
  var sBit = '';

  for(i=0;i<sVal.length;i++)
  {
    sBit = sVal.charAt(i);
    if(escape( sBit ).length <= 4)
    {
   alert!("한글만 입력하십시오.");
      return false;
    }
  }
  return true;
}

/*=============================================================================*
 * 주민등록 여부를 확인한다.(내국인)
 *
 * param : sID 입력문자열(주민번호 13자리)
 *
 * return : Boolean true이면 적합한 주민번호
 *============================================================================*/
function isSocialNO(ssn)
{
 var digit=0
    for (var i=0 ; i<ssn.length ; i++){
        var str_dig=ssn.substring(i,i+1);
        if (str_dig<'0' || str_dig>'9'){
            digit=digit+1
        }
    }
    if(digit>0)
    {
        return false;
    }
      
    var year   = parseInt(ssn.substring(0,2));
    var month  = parseInt(ssn.substring(3,4));
    var day    = parseInt(ssn.substring(5,6));
    var gender = parseInt(ssn.substring(7,7));
    var local  = parseInt(ssn.substring(8,11));
    var key    = parseInt(ssn.substring(12));
       
    if( (month<0) || (month>12) )
    {
        return false;
    }
       
    if( (month==1) || (month==3) || (month==5) || (month==7) || (month==8) || (month==10) || (month==12) )
    {
        if( (day<0) || (day>31) )
        {
            return false;
        }
    }

    if( (month==4) || (month==6) || (month==9) || (month==10) )
    {
        if( (day<0) || (day>30) )
        {
            return false;
        }
    }
       
    if(month==2)
    {
        if( (year==0) && ( (gender==1) || (gender==2) ) )
        {
            if( (day<0) || (day>28) )
            {
                return false;
            }
        }
        else if( (year==0) && ( (gender==3) || (gender==4) ) )
        {
            if( (day<0) || (day>29) )
            {
                return false;
            }
        }
        else if(year%4==0)
        {
            if( (day<0) || (day>29) )
            {
                return false;
            }              
        }
        else
        {
            if( (day<0) || (day>28) )
            {
                return false;
            }
        }
    }

    if( (gender<0) || (gender>4) )
    {
        return false;
    }

    cBit = 0;
    sCode="234567892345";

    for(i=0;i<12;i++)
    {
        cBit = cBit+parseInt(ssn.substring(i,i+1))*parseInt(sCode.substring(i,i+1));
    }

    cBit=11-(cBit%11);
    cBit=cBit%10;

    if(key!=cBit)
    {
  return false;
    }
    else
    {
        return true;
    }
}

/*=============================================================================*
 * 주민등록 여부를 확인한다.(외국인)
 *
 * param : sID 입력문자열(주민번호 13자리)
 *
 * return : Boolean true이면 적합한 주민번호
 *============================================================================*/
function isFgnSocialNO(ssn) {
 if ((ssn.charAt(6) == "5") || (ssn.charAt(6) == "6"))
 {
    birthYear = "19";
 }
 else if ((ssn.charAt(6) == "7") || (ssn.charAt(6) == "8"))
 {
    birthYear = "20";
 }
 else if ((ssn.charAt(6) == "9") || (ssn.charAt(6) == "0"))
 {
    birthYear = "18";
 }
 else
 {
   return false;
 } 
 
 birthYear += ssn.substr(0, 2);
 birthMonth = ssn.substr(2, 2) - 1;
 birthDate = ssn.substr(4, 2);
 birth = new Date(birthYear, birthMonth, birthDate);
 
 if ( birth.getYear() % 100 != ssn.substr(0, 2) ||
   birth.getMonth() != birthMonth ||
   birth.getDate() != birthDate) {
  
   return false;
 }

    var sum = 0;
    var odd = 0;
   
    buf = new Array(13);
    for (i = 0; i < 13; i++) buf[i] = parseInt(ssn.charAt(i));

    odd = buf[7]*10 + buf[8];
   
    if (odd%2 != 0) {
      return false;
    }

    if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9)) {
      return false;
    }
     
    multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
    for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);


    sum=11-(sum%11);
   
    if (sum>=10) sum-=10;

    sum += 2;

    if (sum>=10) sum-=10;

    if ( sum != buf[12]) {
        return false;
    }
    else {
        return true;
    }
}

/*=============================================================================*
 * 입력받은 날짜로부터 몇일 후의 날짜를 반환하기
 *
 * param : ObjDate객체, 일수, 결과Data객체
 *
 * return :
 *============================================================================*/
function calcDate(objDate,iDay,objResultDate)
{
  daysArray = new makeArray(12); //월별 공간을 생성
 
  for(i=1; i<13; i++) 
  {
    daysArray[i] = 30 + (i%2);
  }
  
  var sYear   = objDate.value.substring(0, 4) * 1;
  var sMonth  = objDate.value.substring(4, 6) * 1;
  var sDay    = objDate.value.substring(6, 8) * 1;
 
  daysArray[2] = lastDay(sYear + "02");
 
  var iMoveRemain = iDay * 1 + sDay;
  var iCurMonth   = sMonth;
  var iCurYear    = sYear;
 
  while (iMoveRemain > daysArray[iCurMonth])
  {
    iMoveRemain = iMoveRemain - daysArray[iCurMonth];
  
    iCurMonth = iCurMonth + 1;
    if (iCurMonth > 12)
    {
      iCurMonth = 1;
      iCurYear = iCurYear + 1;   
      daysArray[2] = lastDay(iCurYear + "02");
    }
  } //end of while
 
  iCurMonth = addZero(iCurMonth.toString());
  iMoveRemain = addZero(iMoveRemain.toString());
 
  objResultDate.value = iCurYear + iCurMonth + iMoveRemain;
}

/*=============================================================================*
 * 숫자 0으로 초기화 된 1차원 배열을 생성한다.
 *
 * param : iSize 배열 크기
 *
 * return : this 배열
 *============================================================================*/
function makeArray(iSize)
{
  this.length = iSize;

  for (i = 1; i <= iSize; i++)
  {
    this[i] = 0;
  }
  return this;
}

/*=============================================================================*
 * 숫자 분리자(,)(.)가 있는 숫자이거나 일반숫자형태인지 검사한다.
 *
 * param : sVal
 *
 * return : Boolean
 *============================================================================*/
function isMoneyNumber(sVal)
{   
  var iAbit;
 
  if (sVal.length < 1) return true;
  for (i=0; i<sVal.length; i++)
  {
    iAbit = parseInt(sVal.substring(i,i+1));
    if (!(('0' < iAbit) || ('9' > iAbit)))
    {
      if (sVal.substring(i, i+1) == ',' || sVal.substring(i, i+1) == '.' )
      {
      }
      else
      {
        return false;
      }
    }
  }
  return true;
}

/*=============================================================================*
 * 숫자 분리자(,)만 있는 숫자이거나 일반숫자형태인지 검사한다.
 *
 * param : sVal
 *
 * return : Boolean
 *============================================================================*/
function isMoneyNumber2(sVal)
{   
  var iAbit;
 
  if (sVal.length < 1) return true;
  for (i=0; i<sVal.length; i++)
  {
    iAbit = parseInt(sVal.substring(i,i+1));
    if (!(('0' < iAbit) || ('9' > iAbit)))
    {
      if (sVal.substring(i, i+1) == ',')
      {
      }
      else
      {
        return false;
      }
    }
  }
  return true;
}

/*=============================================================================*
 * 숫자 분리자(.)만 있는 숫자이거나 일반숫자형태인지 검사한다.
 * param : sVal
 * return : Boolean
 *============================================================================*/
function isMoneyNumber3(sVal)
{   
  var iAbit;
  var deci_cnt = 0;
  if (sVal.length < 1) return true;
  for (i=0; i<sVal.length; i++)
  {
    iAbit = parseInt(sVal.substring(i,i+1));
    if (!(('0' < iAbit) || ('9' > iAbit)))
    {
      if (sVal.substring(i, i+1) == '.' )
      {
    deci_cnt = deci_cnt + 1;//소수점 이하가 있는지 파악 (1이면 소수점 이하 존재)
      }
      else
      {
        return false;
      }
    }
  }
  if (deci_cnt > 1)
  {
   return false; 
  }
  return true;
}
/*=============================================================================*
 * 숫자 분리자(.)만 있는 숫자인지 검사한다.
 *
 * param : sVal
 *
 * return : Boolean
 *============================================================================*/
function isMoneyNumber4(sVal){   
  var deci_cnt = 0;
  for (i=0; i<sVal.length; i++)
  {
   
      if (sVal.substring(i, i+1) == '.' ){
    deci_cnt = deci_cnt + 1;//소수점있는지여부
      }
  
  }
  if (deci_cnt > 0)
  {
   return true;
  }
  return false;
}


/*=============================================================================*
 * 소수점이 있는 숫자이면서 정해진 자릿수에 맞는 형식인지 확인한다. 
 * param : sVal 입력객체, iSize1 정수자릿수, iSize2 소수자릿수
 * return : boolean
 *============================================================================*/
function isMoneyNumber5(sVal, iSize1, iSize2)
{
 if(isMoneyNumber(sVal))  // ,나 .가 들어가는 숫자인지 확인
 {
  var e = sVal.value;
  e = e.split(".");
     e[0] = numOffMask(e[0]);
  if (!e[1]) {
   e[1] = 0;     
  }  
  
  var aVal = e[0] + "." + e[1];

  if (isNumberDot(aVal)) {
   // 입력된 값이 설정된 정수자릿수 또는 소숫점 이하보다 크면 false
   if (e[0].length > iSize1 || e[1].length > iSize2)
    return false;
   else
    return true;
  }
  else {
      return false;
  }

 }
 else {
  return false;
 }
}

 

/*=============================================================================*
 * 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)
 * param : val
 *
 * return : String
 *============================================================================*/
function getMoneyType(val)
{
  if (typeof val == "number")
  {
    val = val.toString();
  }
 
  var value = getOnlyNumberDot(val);
 
  var sResult = "";

  if (value.length == 0)
  {
    alert!("숫자만 입력하십시오.");
    return;
  }

  if (! isMoneyNumber(value))
  {
    alert!("숫자만 입력하십시오.");
    return;
  }
 
  var nI;
  var nJ = -1;
  var subOne;
  var flag = false;

  for (nI = value.length - 1; nI >= 0; nI--)
  {
    subOne = value.substring(nI, nI + 1);
    sResult = subOne + sResult;


 if (subOne == '.')
 {
  flag = true;
 }

 if (flag == true)
 {
  nJ = nJ + 1;
 }

    if ((nJ % 3 == 0) && (nI != 0) && (nJ != 0))
    {
      sResult = "," + sResult;
    }
  }
  return sResult;
}

/*=============================================================================*
 * 부호가 있는 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)
 *
 * param : val
 *
 * return : String
 *============================================================================*/
function getSignMoneyType(val)
{
  if (typeof val == "number")
  {
  val = val.toString();
  }

  var s1 = val.substring(0,1);
  var slen = val.length;
  var sign = "";
  var ret  = "";
  if (val == "-Infinity")
  {
  return "0";
  }
 
  if(slen>1 )
  {
    if(s1 == "-")
    {
      sign = "-";
      ret = sign + getMoneyType(val.substring(1,slen));
     }
     else
     {
       ret = getMoneyType(val);
     }
   }
   else
   {
     ret = val;
   } 
   return  ret;
}

/*=============================================================================*
 * 콤마를 제거한 숫자형태 문자열로 반환(부호와 소수점도 없앰)
 *
 * param : val
 *
 * return : String
 *============================================================================*/
function getOnlyNumber(val)
{   
  var value = "";
  var abit;

  if (typeof val != "number" && typeof val !="string")
  {
    return "0";
  }
  if (val.length < 1)
  {
    return "0";
  }
  if (val == "NaN")
  {
    return "0";
  }
  if (val == "-Infinity")
  {
    return "0";
  }
   
  for (i=0;i<val.length;i++)
  {
    abit = parseInt(val.substring(i,i+1));
    if (('0' < abit) || ('9' > abit) )
    {
      value = value + abit;
    }

  }
  return value;
}

 

/*=============================================================================*
 * 콤마를 제거한 숫자형태 문자열로 반환(부호, 소수점 그대로)
 *
 * param : val
 *
 * return : String
 *============================================================================*/
  function getOnlyNumberDot(val)
  {   
 
   if (typeof val != "number" && typeof val !="string")
   {
    return "0";
   }
   if (val.length < 1)
   {
    return "0";
   }
   if (val == "NaN")
   {
    return "0";
   }
   if (val == "-Infinity")
   {
    return "0";
   }
 
   var value = "";
   var abit; // 소수부분
 
   var delimter = val.indexOf(".");
   var numberInteger = ""; // 정수부분
   
   if(delimter < 0) {
    numberInteger = val;
    abit ='';
   } else {
    numberInteger = val.substring(0,delimter);
    abit = val.substring(delimter+1);
   }
 
   var number="";
   var leng=numberInteger.length ;
   for(i=0 ; i<leng ; i++)
   {
    var tmp = numberInteger.substring(i,i+1);
    if(tmp != ",")
    {
     number = number+tmp;
    }
   }
   
   if(abit.length==0)
   {
    value=number;
   }
   else
   {
    value = number+"."+abit;
   }
   return value;
 
  }

 

/*=============================================================================*
 * 콤마를 제거한 부호가 있는 숫자형태 문자열로 반환
 *
 * param : val
 *
 * return : String
 *============================================================================*/
function getOnlySignNumber(val)
{
  if (val == "-") return 0;
  var price = eval!(getOnlyNumber(val));
  if (val.substring(0,1) == "-")
  {
    price *= -1;
  }
  return price;
}


/*=============================================================================*
 * EMedit 날짜 사용시 입력 체크
 *
 * param : emEditObj
 *
 * return : boolean
 *============================================================================*/
function emEditYMD(emEditObj)
{
  if(MTrim(emEditObj.Text) != "")
   {
       if(MTrim(emEditObj.Text).length != 8 && MTrim(emEditObj.Text).length > 0)
       {
         alert!('일자를 모두 입력하십시오.');
             emEditObj.SelectAll = "true";
    emEditObj.focus();
             return false;
       }  
   } 
     return;
}


/*=============================================================================*
 * 그리드에서 날짜 입력 시 유효성 체크
 *
 * param : emEditObj
 *
 * return : boolean
 *============================================================================*/
function emEditYMD_grid(sVal)
{
     sVal = MTrim(sVal);

    if (isDateYMD(sVal)) return true;
    else                 return false;
}


/*=============================================================================*
 * 조회조건 시작일과 종료일 입력 유효성 확인 - 컨트롤 이용
 *
 * param : objFrom, objTo
 *
 * return : boolean
 *============================================================================*/
function chkPeriod_Emedit(objFrom, objTo)
{
 if (!isDate(objFrom.Text))
 {
  objFrom.focus();
  return false;
 }
 else if (!isDate(objTo.Text))
 {
  objTo.focus();
  return false;
 }
 else if (objFrom.Text > objTo.Text)
 {
  alert!("마지막일이 시작일보다 작습니다.");
  objFrom.focus();
  return false;
 } 
 return true;
}

 

/*=============================================================================*
 * 앞뒤 공백을 제거한다.
 *
 * param : sVal
 *
 * return : String
 *============================================================================*/
function Trim(sVal)
{
  return(LTrim(RTrim(sVal)));
}

/*=============================================================================*
 * 앞 공백을 제거한다.
 *
 * param : sVal
 *
 * return : String
 *============================================================================*/
function LTrim(sVal)
{
  var i;
  i = 0;
  while (sVal.substring(i,i+1) == ' ')
  {
    i++;
  }
  return sVal.substring(i);
}

/*=============================================================================*
 * 뒤 공백을 제거한다.
 *
 * param : sVal
 *
 * return : String
 *============================================================================*/
function RTrim(sVal)
{
  var i = sVal.length - 1;
  while (i >= 0 && sVal.substring(i,i+1) == ' ')
  {
    i--;
  }
  return sVal.substring(0,i+1);
}


//------------------------------------------------------------------------------
// DESCRIPTION  : 공백문자 제거
// 함수명       : MTrim(공백이 있는 문자열)
// Return Value : 공백이 제거된 문자열
//------------------------------------------------------------------------------
function MTrim(sVal){
 var strOri = sVal;
 var space = " ";
  
 while (strOri.indexOf(space) != -1){
  strOri = strOri.replace(space, "");
 }

 return strOri;
}

/*=============================================================================*
 * 공백만 존재하거나 아무것도 없는지 확인한다.
 *
 * param : sVal
 *
 * return : boolean (true이면 공백이나 Empty이다)
 *============================================================================*/
function isEmpty(sVal){
  if (MTrim(sVal) == '')
  {
    return true;
  }
  return false;
}

/*=============================================================================*
 * 현재 컨트롤과 MaxLength 받아서 MaxLength 되면 다음 컨트롤로 이동
 *
 * param : objCurrent, objNext
 *
 * return :
 *============================================================================*/
function focusMove(objCurrent, objNext)
{
  if ( objCurrent.getAttribute("Maxlength") == objCurrent.value.length)
  {
    objNext.focus();
  }
}

/*=============================================================================*
 * 현재 컨트롤과 MaxLength 받아서 MaxLength 되면 다음 컨트롤로 이동(선택)
 * param : objCurrent, objNext
 * return :
 *============================================================================*/
function focusMoveSelect(objCurrent, objNext)
{
  if ( objCurrent.getAttribute("Maxlength") == objCurrent.value.length)
  {
    objNext.focus();
    objNext.select();
  }
}


/*=============================================================================*
 * 완료된 날짜값에 대해 "/" 추가
 * param : me(value)
 * return : String
 *============================================================================*/
function calOnMask(me){

 if (event.keyCode<48||event.keyCode>57){//숫자외금지
     event.returnValue=false;
 }
 if(me.length > 3 ) {
  var a1 = me.substring(0,4) + "/";
  var a2 = me.substr(4,me.length);
  var a3 = "";
  if (me.length > 5){
   a2 = me.substring(4,6) + "/";
   a3 = me.substr(6,me.length);
  }
 
  me= a1 + a2 + a3;
  
 }
 return me;
}


/*=============================================================================*
 * 날짜값 "/" 제거
 * param :  me(value)
 * return : String "/" 제거된 날짜값
 *============================================================================*/
function calOffMask(me){
 var tmp=me.split("/");
 tmp=tmp.join("");
 return tmp;
}


/*=============================================================================*
 * 날짜값 자동 "/" 붙임.(완성된 날짜값에 대해 /붙임)
 *
 * param :
 *
 * return :
 *============================================================================*/
function cal_value2(me){

  if(me.length == 8 ) {
  var a1 = me.substring(0,4) + "/";
  var a2 = me.substring(4,6) + "/";
  var a3 = me.substr(6,me.length);
  
  me= a1 + a2 + a3;
  
 }
 return me;
}


/*=============================================================================*
 * 오늘 날짜 생성 ( "/" 붙여서 리턴)
 * 
 * param :
 *
 * return : todate
 *============================================================================*/
function todate() {
 var now=new Date()
 var jyear = now.getYear();
 var month=now.getMonth() + 1;
 var jmonth = month + "";
 if (jmonth.length < 2) {
  jmonth = "0" + jmonth;
 }
 var dat=now.getDate();
 var jdate = dat + "";
 if (jdate.length < 2) {
  jdate = "0" + jdate;
 }
 
 //var day=Birdy.getDay()//요일
    var tdy = jyear+"/"+jmonth+"/"+jdate;
 return tdy; 
}

 

/*--------------------------------------------------------------------------------------------
 Spec   : 숫자입력시 3자리마다 자동으로 콤마 찍기
 Argument : string
 Return   : string
 Example  : onkeyup="comma_value(this)"
---------------------------------------------------------------------------------------------*/
function comma_value(sval)
{
    if (event.keyCode != 9)
    {
        var cur = sval.value;
        var setMinus = 0;

        if (cur.charAt(0) == "-") {
            setMinus = 1;
        }

        cur=cur.replace(/[^.0-9]/g ,"");
        cur=cur.replace(/[.]+/g ,".");

        if (setMinus == 1)
            sval.value = "-" + formatNumbertoString(cur);
        else
            sval.value = formatNumbertoString(cur);
    }
}


/*--------------------------------------------------------------------------------------------
 Spec   : 숫자입력시 3자리마다 자동으로 콤마 찍기
 Argument : string
 Return   : string
 Example  : onkeyup="comma_value(str)"
---------------------------------------------------------------------------------------------*/
function formatNumbertoString(cur)
{
    leftString = cur;
    rightString = ".";
    dotIndex = 0;
     
    for(i = 0; i < cur.length; i++){
     // 1) '.'이 처음에 입력 되었을때 앞에 0을 더해 "0."을 리턴
  // 2) "0."이외의 입력 일 때 "0"만 리턴
     if(cur.charAt(i) == "." || (cur.length > 1 && cur.charAt(0) == "0" && cur.charAt(1) != "."))
  {
      dotIndex = i;
      if(dotIndex == 0)
   {
                if   (cur.charAt(0) == ".")   leftString="0.";
                else                          leftString="";
       return leftString;
      }
      break;
     }
    }
   
     if(dotIndex != 0) //dot가 있을 경우..
    {
     leftString = cur.substr(0, dotIndex);
     rightString = cur.substr(dotIndex+1);
     rightString = rightString.replace(/\./g,"");
    }
    else //없으면..
    {
     leftString = cur;
    }

    len=leftString.length-3;
    while(len>0)
    {
        leftString=leftString.substr(0,len)+","+leftString.substr(len);
        len-=3;
    }          
   
    if(rightString != ".")
        return (leftString + "." + rightString);
    else
        return leftString;
}

// 숫자만 입력 (소수점 허용, 음수 허용)
// 사용법 : onKeyPress = onlyNum();
function onlyNum()
{
 if (event.keyCode < 45 || event.keyCode > 57 || event.keyCode == 47)
  event.returnValue = false;
}

// 숫자만 입력 (소수점 허용, 음수 불가)
// 사용법 : onKeyPress = onlyNum2();
function onlyNum2()
{
 if (event.keyCode < 46 || event.keyCode > 57 || event.keyCode == 47)
  event.returnValue = false;
}

// 숫자만 입력 (소수점 불가, 음수 허용)
// 사용법 : onKeyPress = onlyNum3();
function onlyNum3()
{
 if (event.keyCode < 45 || event.keyCode > 57 || event.keyCode == 46 || event.keyCode == 47) 
  event.returnValue = false;
}

// 숫자만 입력 (소수점 불가, 음수 불가)
// 사용법 : onKeyPress = onlyNum4();
function onlyNum4()
{
 if (event.keyCode < 48 || event.keyCode > 57)
  event.returnValue=false;
}

 

function onlyChar(sval)
{
 var sBit = '';
 str = sval.value;

 for(i=0;i<str.length;i++)
 {
  sBit = str.charAt(i);
 
  if(escape( sBit ).length <= 4)
     {
   var sAlphabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   
   if(sAlphabet.indexOf(sBit) < 0)
      {
    alert!("영문 또는 한글만 입력해 주십시오.");    
    return false;
   }
  }
 }
 return true; 
}

 

/*=============================================================================*
 * 입력완료된 숫자값에 대하여 콤마를 찍어줄때 사용(소수점 이하 처리 안됨)
 * 콤마 형식을 사용할 경우에는 onkeyup이벤트로 사용하기 바라며,
 * 다음의 펑션을 호출할때는 comma_value(me) 펑션을 호출하기 바람.
 * param : value
 *============================================================================*/
function numOnMask(me){
 var tmpH = null; 
 if(me.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
  tmpH=me.substring(0,1);
  me=me.substring(1,me.length);
 } //me.indexOf('-')
  if(me.length > 3){
   var c=0;
   var myArray=new Array();
     for(var i=me.length;i>0;i=i-3){
       myArray[c++]=me.substring(i-3,i);
     }
     myArray.reverse();
     me=myArray.join(",");
   }
  if(tmpH){
    me=tmpH+me;
   }
 return me;
}

/*=============================================================================*
 * 콤마가 들어간 숫자에서 ","를 뺀다.
 * param : value
 *============================================================================*/
function numOffMask(me){
     var tmp=me.split(",");
      tmp=tmp.join("");
     return tmp;
}

// 입력 완료된 숫자 값에 컴마를 적용하여준다(소수점 이하는 "," 안 붙음)
// return : String
function numOnMask2(me){
  var tmpH; 
 if(!isMoneyNumber4(me)) {
   if(me.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
    tmpH=me.substring(0,1);
    me=me.substring(1,me.length);
   } //me.indexOf('-')
   if(me.length > 3){
    var c=0;
    var myArray=new Array();
    for(var i=me.length;i>0;i=i-3){
      myArray[c++]=me.substring(i-3,i);
    }
    myArray.reverse();
    me=myArray.join(",");
    }
    if(tmpH){
    me=tmpH+me;
    }
 }else{
   var e = me;
   e = e.split(".");
   var myStr = e[0];
   //alert!(myStr);
   if(myStr.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
    tmpH=myStr.substring(0,1);
    myStr=myStr.substring(1,me.length);
   } //me.indexOf('-')
   if(myStr.length > 3){
    var c=0;
    var myArray=new Array();
    for(var i=myStr.length;i>0;i=i-3){
      myArray[c++]=myStr.substring(i-3,i);
    }
    myArray.reverse();
    myStr=myArray.join(",");
    }
    if(tmpH){
    me=tmpH+myStr+"."+e[1];
    }
    else {
    me=myStr+"."+e[1];
    }
 }

return me;
}


// 입력 완료된 숫자 값에 컴마를 적용하고 소수점 이하는 삭제한다
// return : String
function numOnMask3(me){ //단순히 값에 컴마를 적용할때 사용
 var tmpH; 
 if(isMoneyNumber3(me)) { // 양수&음수 체크 (true : 양수, false : 음수)
  var e = me;
  e = e.split(".");
  var myStr = e[0];
  if(myStr.length > 3){
   var c=0;
   var myArray=new Array();
   for(var i=myStr.length;i>0;i=i-3){
     myArray[c++]=myStr.substring(i-3,i);
   }
   myArray.reverse();
   myStr=myArray.join(",");
   }
   me = myStr;
 }else{ // 음수 일때
  var e = me;
  e = e.split(".");
  var myStr = e[0];
  if(myStr.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
   tmpH=myStr.substring(0,1);
   myStr=myStr.substring(1,me.length);
  } 
  if(myStr.length > 3){
   var c=0;
   var myArray=new Array();
   for(var i=myStr.length;i>0;i=i-3){
     myArray[c++]=myStr.substring(i-3,i);
   }
   myArray.reverse();
   myStr=myArray.join(",");
   }
   if(tmpH){
   me=tmpH+myStr;
   }
   else {
   me=myStr;
   }
 }

return me;
}


/*=============================================================================*
 * 입력값을 소수점 이하 몇 자리까지 보여줄지 정한다. 
 * 소수점 이하 자리수가 입력된 값보다 작으면 0으로 채운다.
 * param : sVal 입력스트링, iSize 소수자릿수
 * return : String
 *============================================================================*/
function numOnMask4(sVal,iSize)
{
 if(isNumberDot(sVal))  // 숫자형인지 확인
 {
  var e = sVal;
  e = e.split(".");
  if (!e[1]) {   
   if (iSize == 0) {
       sVal = numOnMask(e[0]);
    return sVal;
   }
   else {
    e[1] = "0";
   }
  }
  while (e[1].length < iSize) {    // 주어진 소숫점 이하 자릿수 만큼 뒤에 "0" 추가
      e[1] = e[1] + "0";
  }
  sVal = numOnMask(e[0]) + "." + e[1].substr(0,iSize);
  return sVal;
 }
 else {
  return false;
 }
}

 

/*=============================================================================*
 * 입력값에 마스킹을 적용한다.(소수점 이하와 부호를 삭제하고 콤마추가)
 * param : sVal 입력스트링
 * return : String
 *============================================================================*/
function numOnMask5(sVal)
{
 var e = sVal;
 e = e.split(".");

 if(!isMoneyNumber3(e[0]))    // true이면 양수, false이면 음수
  e[0] = e[0].substring(1)

 return numOnMask(e[0]);
}


/*=============================================================================*
 * 입력값에 마스킹을 적용한다.(부호를 삭제하고 콤마추가. 소수점은 그대로 둠)
 * param : sVal 입력스트링
 * return : String
 *============================================================================*/
function numOnMask6(sVal)
{
 var e = sVal;
 e = e.split(".");

 if(!isMoneyNumber3(e[0]))  // isMoneyNumber3 - true이면 양수, false이면 음수
  e[0] = e[0].substring(1);

 return numOnMask(e[0]) + "." + e[1];
}

 

/*=============================================================================*
 * 숫자 외의 값이 입력되어있으면 false 리턴
 * param : sval (object)
 * return :
 *============================================================================*/
function onlyNumber(sval) {
 var strVal = sval.value

 if (strVal.length < 1) {
     return false;
 }

 strVal = numOffMask(strVal);
 var result = isNumberDot(strVal);
 if (!result) {
     //alert!("숫자만 입력 가능합니다.");
  sval.focus();
  return false;
 }
}

 

/*=============================================================================*
 * 특수문자 값이 입력되었는지 체크(특수문자가 있으면 false 리턴)
 * param : sval (object)
 * return :
 *============================================================================*/
function chkValidChar(sval) {
    var re = new RegExp("[%\']","ig");
    var retVal = re.test(sval.value);

    if (retVal == true)
    {
        alert!("검색어에 다음 문자를 사용할 수 없습니다 : \n\n              %    \' ");
        return false;
    }
    else
        return true;
}


/*=============================================================================*
 *
 * 윈도우 오픈1 (사용자 지정 위치생성)
 * param : wUrl  지정url
 * param : wTitle 지정타이틀
 * param : wTop  지정 창 높이정렬기준
 * param : wLeft 지정 창 왼쪽정렬기준
 * param : wWidth 창넓이
 * param : wHeight 창높이
 * param : wSco  스크롤바 생성유무, 1:생성 0:비생성
 *============================================================================*/
function win_open(wUrl,wTitle,wTop,wLeft,wWidth,wHeight,wSco) {
 window.open(wUrl,wTitle,"top="+wTop+",left="+wLeft+",width="+wWidth+",height="+wHeight+",scrollbars="+wSco);
}

/*=============================================================================*
 *
 * 윈도우 오픈2 (무조건 가운데 생성)
 * param : wUrl  지정url
 * param : wTitle 지정타이틀
 * param : wWidth 창넓이
 * param : wHeight 창높이
 * param : wSco  스크롤바 생성유무, 1:생성 0:비생성
 *============================================================================*/
function win_open2(wUrl,wTitle,wWidth,wHeight,wSco) {
 var top_po = (screen.availHeight/2) - (wHeight/2);
 var left_po = (screen.availWidth/2) - (wWidth/2);
 //alert!(top_po +" "+left_po+ " "+wHeight+" "+wWidth);
 window.open(wUrl,wTitle,"top="+top_po+",left="+left_po+",width="+wWidth+",height="+wHeight+",scrollbars="+wSco);
}
/*=============================================================================*
 *
 * 윈도우 오픈3 (무조건 전체 생성)
 * param : wUrl  지정url
 * param : wTitle 지정타이틀
 * param : wWidth 창넓이
 * param : wHeight 창높이
 * param : wSco  스크롤바 생성유무, 1:생성 0:비생성
 *============================================================================*/
function win_open3(wUrl,wTitle) {
 var wWidth = screen.availWidth;
 var wHeight = screen.availHeight;
 
 window.open(wUrl,wTitle,"top=0,left=0,width="+wWidth+",height="+wHeight+",scrollbars=0");
 
}


/************************************************************************************************************************
 * 고객번호 및 계좌번호
************************************************************************************************************************/

function cust_set_num(sval) {//고객번호 5자리 세팅
 var cust_val = sval.value;
 if (cust_val == "") return;

 var cust_length=cust_val.length;
 if (cust_length < 5) {
  for (var i = 0; i < (5 - cust_length); i++) {
   cust_val = "0" + cust_val;
  }
  sval.value = cust_val;
 }
}

function cust_key_num(sval,obj) {
 if (event.keyCode<48||event.keyCode>57){//숫자외금지
     event.returnValue=false;
 }
 if (sval.length == 5) {
  obj.focus();
  obj.select();
 }
}

function acnt_set_num(sval,obj) {//계좌번호 2자리 세팅
 var acnt_val = sval.value;
 var acnt_length = acnt_val.length;
 if (obj.value == "") return;
 if (acnt_val == "") acnt_length = 0;

 if (acnt_length < 2) {
  for (var i = 0; i < (2 - acnt_length); i++) {
   acnt_val = "0" + acnt_val;
  }
  sval.value = acnt_val;
 }
}

function acnt_key_num() {
 if (event.keyCode<48||event.keyCode>57){//숫자외금지
     event.returnValue=false;
 }
}

function rdo_val(sval) {
 // 이펑션은 체크박스와 옵션버튼의 활성화 비활성화에 사용
 if (sval.checked == true) {
  sval.checked = false;
 }else {
  sval.checked = true;
 }
}


function disp_err(sval) {
    ErrMsgForm.errMsg.value = sval;
    window.open("/err_msg.screen","에러메세지","top=300px,left=310px,height=300px,width=500px,resizable=0,scrollable=1");
}

function disp_err1(sval) {
    ErrMsgForm.errMsg.value = sval;
    window.open("/err_msg1.screen","에러메세지","top=300px,left=310px,height=300px,width=500px,resizable=0,scrollable=1");
}


/**
 * 두 날짜에 며칠 차이나는지 구함
 * from_val이 to_val보다 크면 -붙여서 리턴
 */
function getDayInterval(from_val,to_val) {
    var day   = 1000 * 3600 * 24; //24시간
 if(isDate(from_val)==false)
 {
  return;
 }
 if(isDate(to_val)==false)
  return;
 
 var from_date=toTimeObject(from_val);
 var to_date=toTimeObject(to_val);
 var day_interval=parseInt((to_date - from_date) / day, 10);
    //alert!(to_date+" - "+from_date+"="+day_interval);
 return day_interval;
}

 

/**
 * Time 스트링을 자바스크립트 Date 객체로 변환
 * parameter time: Time 형식의 String
 */
function toTimeObject(time) { //parseTime(time)
    var year  = time.substr(0,4);
    var month = time.substr(4,2) - 1; // 1월=0,12월=11
    var day   = time.substr(6,2);

    return new Date(year,month,day);
}


// readonly나 disabled로 막힌 경우를 제외하고 tabindex 값을 지정하여 입력박스 순서대로 이동
function tabIndexing()
{
    elements = document.all;
    for (i=0;i<elements.length ;i++)
    {
        if(elements[i].readOnly == false){
           elements[i].tabIndex = i;
        }
    }
}

 

/*=============================================================================*
 * 조회버튼 클릭시 고객번호/계좌번호 입력 여부 확인
 * param : obj1 고객번호, obj2 계좌번호, field 필드명
 * return : boolean
 *============================================================================*/
function chkCustNoAcntNo(obj1, obj2, field)
{
 if (field == null)  field = '';
    obj1.value = MTrim(obj1.value);
    obj2.value = MTrim(obj2.value);

 if (obj1.value.length == 0 && obj2.value.length == 0)
 {
        return true;
    }
    else if (obj1.value.length == 0 && obj2.value.length != 0)
 {
        alert!(field+" 번호를 입력하십시오.");
        obj1.select();
     obj1.focus();
  return false;
 }
    else if (obj1.value.length != 0 && obj2.value.length == 0)
 {
        alert!(field+" 번호를 입력하십시오.");
        obj2.select();
     obj2.focus();
  return false;
 }

 return true;
}


function win_open_BuzPwd()
{
    var return_value = window.showModalDialog("checkPwd.screen", "", "dialogHeight: 100px; dialogWidth: 306px; edge: Raised; center: Yes; help: No; resizable: No; status: No; scroll:0;");
    return return_value;
}


function win_open_BuzPwdWithManagerPwd()
{
    var return_value = window.showModalDialog("COLO0106mc_00.do", "", "dialogHeight: 114px; dialogWidth: 336px; edge: Raised; center: Yes; help: No; resizable: No; status: No; scroll:0;");
    return return_value;
}

// return 값 없는 경우
function submain_popup(pUrl, urlHeight, urlWidth)
{
    //parent.stopTimer();
    var returnCode = window.showModalDialog("submain_popup.screen", pUrl, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
    parent.startTimer();
    if(returnCode=='n')
    {
        parent.logout();
    }
    else if(returnCode=='timerlogout')
    {
        parent.timer_logout();
    }

    return;
}

// return 값이 String인 경우
function submain_popup2(pUrl, urlHeight, urlWidth)
{
    //parent.stopTimer();
    var returnCode = window.showModalDialog("submain_popup2.screen", pUrl, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
    //parent.startTimer();
    if(returnCode=='n')
    {
        parent.logout();
    }
    else if(returnCode=='timerlogout')
    {
        parent.timer_logout();
    }
    else if (typeof(returnCode) == "undefined")
    {
     return 'undefined';
    }
    else
    {
     return returnCode;
    }
}

// 파라미터로 window 객체 사용
function submain_popup3(pUrl, urlHeight, urlWidth)
{
    //parent.stopTimer();
    var returnCode = window.showModalDialog("submain_popup3.screen?pUrl="+pUrl, window, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
    //parent.startTimer();

    if (typeof(returnCode) == 'object')
    {
        return returnCode;
    }
    else
    {
        if(returnCode =='n')
        {
            parent.logout();
        }
        else if(returnCode=='timerlogout')
        {
            parent.timer_logout();
        }
        else if (typeof(returnCode) == "undefined")
        {
            return 'undefined';
        }   
        else
        {
         return returnCode;
        }
    }
}


// 파라미터로 window 객체를 사용하면서 return 값이 Object
function submain_popup4(pUrl, urlHeight, urlWidth)
{
    //parent.stopTimer();
    var returnCode = window.showModalDialog("submain_popup4.screen?pUrl="+pUrl, window, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px;center:Yes; help:No; resizable:Yes; status:No; scroll:Yes;");
    //parent.startTimer();

    if (typeof(returnCode) == 'object')
    {
        return returnCode;
    }
    else
    {
        if(returnCode=='n')
        {
            parent.logout();
        }
        else if(returnCode=='timerlogout')
        {
            parent.timer_logout();
        }
        else if (typeof(returnCode) == "undefined")
        {
            return 'undefined';
        }
        else
        {
            return returnCode;
        }
    }
}

// parameter로 Object를 사용
function submain_popup5(pUrl, urlHeight, urlWidth, obj)
{
    //parent.stopTimer();
    var returnCode = window.showModalDialog("submain_popup5.screen?pUrl="+pUrl, obj, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center:Yes; help:No; resizable:Yes; status:No;");
    //parent.startTimer();

    if (typeof(returnCode) == 'object')
    {
        return returnCode;
    }
    else
    {
        if(returnCode=='n')
        {
            parent.logout();
        }
        else if(returnCode=='timerlogout')
        {
            parent.timer_logout();
        }
        else if (typeof(returnCode) == "undefined")
        {
            return 'undefined';
        }
        else
        {
            return returnCode;
        }
    }
}


function start_timer()
{
// if ( opener==null )
// {
//  parent.startTimer();
//  return;
// }
// else
// {
//     opener.start_timer();
//     return;
// }
}



'Javascript' 카테고리의 다른 글

common.js  (0) 2010.11.14
event.keyCode 번호표  (0) 2010.11.14
정규식  (0) 2010.11.14
Ajax Request 이해  (0) 2010.11.14
Javascript Event  (0) 2010.11.14
Posted by TIMEC