본문 바로가기
개발언어

유용한 자바스크립트 함수모음

by 엔돌슨 2008. 3. 5.
반응형

출처 : http://cafe.naver.com/morehana.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=46
===============================================================================
주  시 스 템 : 공통 개발
서브  시스템 : 없음
프로그램  ID : JCommon.js
프로그램  명 : 공통 기능 Javascript
프로그램개요 : 공통적으로 사용되는 Javascript를 정의한다
작   성   자 : 유명현, 최선재
작   성   일 : 2002.04.04
마지막 수정일 : 2003.11.30
===============================================================================


-------------------------------숫자--------------------------------
/*=========================================*
* 입력값이 숫자인지를 확인한다
* 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 : 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;

-------------------------------문자--------------------------------
/*=========================================*
* 대소문자를 포함한 영문자인지 확인한다.
*
* 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;
   }
}

/*=========================================*
* 숫자 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;
// }
}

이렇게만 두니 ..좀 그러네 퍼왔다.
조금 참고할만한것이 있네 ^^;