

var reDigit = /^\d+$/;
var reAlpha = /^[a-z]+$/i;
var reNumeric = /^[0-9]+$/;
var reNumericBlank = /^([0-9]|[\ ])+$/;
var reFloatNumeric = /^([0-9]|[.])+$/;
var reFloatNumericRF = /^([0-9]|[,])+$/;
var reAlphaNumeric = /^([a-z]|[A-Z]|[0-9])+$/i;
var reAlphaNumericBlank = /^([a-z]|[A-Z]|[0-9]|[\ ])+$/i;
var reEmail = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
var reEmail1 = /^((\w|[\-\.])+)+$/i;
var reEmail2 = /^((\w|[\-\.])+)\.([A-Za-z]+)$/;
var reAccount = /^([a-z]|[A-Z]|[0-9]|[-])+$/;
var reMoney = /^([0-9]|[,])+$/;
var reMoneyRF = /^([0-9]|[.])+$/;
var reSwift = /^([a-z]|[A-Z]|[\' \']|[0-9]|[\,\/\-\?\:\(\)\.\+])+$/;
var reSwiftR = /^([a-z]|[A-Z]|[\' \']|[0-9]|[\,\/\-\?\:\(\)\.\+]|[\r]|[\n])+$/;
var reComment = /^([\~\!\@\#\$\%\^\&\*\<\>\,\/\'\"\;\:\｜])+$/;
var reCommentJP = /^([a-z]|[A-Z]|[0-9]|[\~\!\@\#\$\%\^\&\*\<\>\,\/\'\"\;\:\｜])+$/;
var reAlphaNumericBlankEtc = /^([a-z]|[A-Z]|[ ]|[0-9]|[\~\!\@\#\$\%\^\&\*\<\>\,\.\?\/\'\"\;\:\(\)\+\-\_\=\`])+$/;
var reHangul = /^([가-힝]|[ㄱ-ㅎ])+$/;
var reTelNo = /^([0-9]|[-]|[\ \(\)])+$/;
var reCustId = /^([a-z]|[0-9]|[-])+$/i;

var DATE_PIPE_STR = ".";

var formatElm;
var isHan = false;

var eleObj = new Object();
eleObj = null;


function getFrame(frameName)  {

  var winObject;

  if(window.frames.length > 0)  {
    if(frameName==null) {
      if(typeof(window.top.wgmain.wgbody)!='undefined')  {
        winObject = window.top.wgmain.wgbody;
      }
      else if(typeof(window.top.wgmain.admain)!='undefined')  {
        winObject = window.top.wgmain.admain;
      }
      else if(typeof(window.top.wgmain)!='undefined') {
        winObject = window.top.wgmain;
      }
      
      if(typeof(winObject)=='undefined')  {
        winObject = this.window;
      }
    }
    else if(frameName!=null)  {
      winObject = window.frames[frameName];
    }
  }
  else  {
    winObject = this.window;
  }

  return winObject;
}

function setObj(obj)  {
  eleObj.name = obj.name;
  eleObj.colname = obj.colname;
  eleObj.sourceIndex = obj.sourceIndex;
}

function chkObj(obj)  {
  if ( eleObj.name == obj.name
    && eleObj.colname == obj.colname
    && eleObj.sourceIndex == obj.sourceIndex )  {
    return true;
  }
  else
    return false;
}

function v()  {
  var objFrame = getFrame();
  var eSrc = objFrame.event;
  var doc = objFrame.document;
  var elm;
  var elmName = '';
  var elmVal = '';
  var datatype = '';
  var dataallow = '';
  var datadeny = '';
  var notnull = '';
  var casetype = '';
  var hancheck = '';
  var fixlength;
  var maxlength;
  var minlength;
  var maxamount;
  var minamount;

  var msg = '';

  if(typeof(eSrc) != 'undefined' && eSrc != null) {
    if(typeof(eSrc.type) != 'undefined' && eSrc.srcElement.type != null)  {
      etype = eSrc.type;
      if(typeof(eSrc.srcElement.name) != 'undefined' && eSrc.srcElement.name != null && eSrc.srcElement.name != '') {
        elm = eSrc.srcElement;
        elmName = elm.name;
        datatype = elm.datatype;
        casetype = elm.casetype;
        dataallow = elm.dataallow;
        datadeny = elm.datadeny;
        if(elm.maxlength) maxlength = elm.maxlength;
        if(elm.maxLength) maxlength = elm.maxLength;
        minlength = elm.minlength;
        maxamount = elm.maxamount;
        minamount = elm.minamount;

        hancheck = 'true';
        if(elm.hancheck)  { hancheck = elm.hancheck;  }
        else              { hancheck = 'true';        }

        elmVal = veriGetValue(elm);

        doc = objFrame.document;

    if ( casetype ) {
      switch(etype) {
        case  'blur'  :
          if ( !isNull(elmVal) && chkEvent(eSrc) )  {
            if(casetype=='upper') {
              elm.value = setUpperCase(elmVal);
            }
            else if(casetype=='lower') {
              elm.value = setLowerCase(elmVal);
            }
          };
          break;
        case  'focus' :
          if ( !isNull(elmVal) && chkEvent(eSrc) )  {
            if(casetype=='upper') {
              if(elmVal!=elmVal.toUpperCase())  {
                elm.value = setUpperCase(elmVal);
              }
            }
            else if(casetype=='lower') {
              if(elmVal!=elmVal.toLowerCase())  {
                elm.value = setLowerCase(elmVal);
              }
            }
          };
          break;
      }
    }

    if ( dataallow )  {
      switch(etype) {
        case  'blur'  :
          if ( chkObj(elm) == false && !isNull(elmVal) && isUserRegExp(elmVal, dataallow.toString()) == false ) {
            setObj(elm);
            top.putMessage(elm,'n','dataallow');
            return;
          };
          break;
        case  'focus' :
          eleObj = new Object();
          break;
      }
    }

    if ( datadeny ) {
      switch(etype) {
        case  'blur'  :
          if ( chkObj(elm) == false && !isNull(elmVal) && isUserRegExp(elmVal, datadeny.toString()) == true ) {
            setObj(elm);
            top.putMessage(elm,'n','datadeny');
            return;
          };
          break;
        case  'focus' :
          eleObj = new Object();
          break;
      }
    }

    if ( fixlength )  {
      switch(etype) {
        case  'keyup' :
          if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isCheckMaxlength(elm, maxlength) )  {
            setObj(elm);
            top.setCutMaxlength(elm,fixlength);
            return;
          }
          break;
        case  'blur'  :
          if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isCheckMaxlength(elm, maxlength) )  {
            setObj(elm);
            top.setCutMaxlength(elm,fixlength);
            return;
          }
          break;
        case  'focus' :
          eleObj = new Object();
          break;
      }
    }

    if ( maxlength )  {
      switch(etype) {
        case  'keyup' :
          if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isCheckMaxlength(elm, maxlength) )  {
            setObj(elm);
            top.putMessage(elm,'n','maxlength');
            top.setCutMaxlength(elm,maxlength);
            return;
          }
          break;
        case  'blur'  :
          if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isCheckMaxlength(elm, maxlength) )  {
            setObj(elm);
            top.setCutMaxlength(elm,maxlength);
            return;
          }
          break;
        case  'focus' :
          eleObj = new Object();
          break;
      }
    }

    if ( minlength )  {
      switch(etype) {
        case  'blur'  :
          if ( chkObj(elm) == false && !isNull(elmVal) && getByteLength(elmVal) < minlength ) {
            setObj(elm);
            return;
          };
          break;
        case  'focus' :
          eleObj = new Object();
          break;
      }
    }

    if ( minamount && maxamount ) {
      if ( datatype == 'numeric' || datatype == 'flonum' || datatype == 'money' || datatype == 'taxmoney' ) {
        switch(etype) {
          case  'blur'  :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && ( isMinAmount(elmVal,elm.minamount) || isMaxAmount(elmVal,elm.maxamount) ) )  {
              setObj(elm);
              return;
            }
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
      }
    }

    if ( maxamount )  {
      if ( datatype == 'numeric' || datatype == 'flonum' || datatype == 'money' || datatype == 'taxmoney' ) {
        switch(etype) {
          case  'blur'  :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isMaxAmount(elmVal,elm.maxamount) ) {
              setObj(elm);
              return;
            }
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
      }
    }

    if ( minamount )  {
      if ( datatype == 'numeric' || datatype == 'flonum' || datatype == 'money' || datatype == 'taxmoney' ) {
        switch(etype) {
          case  'blur'  :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isMinAmount(elmVal,elm.minamount) ) {
              setObj(elm);
              return;
            }
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
      }
    }

    top.setImeMode(elm);

    if(etype=='keyup')  {
      if ( eSrc.keyCode==9 || eSrc.keyCode==37 || eSrc.keyCode==38 || eSrc.keyCode==39 || eSrc.keyCode==40
        || eSrc.keyCode==16 || eSrc.keyCode==16 || eSrc.keyCode==17 || eSrc.keyCode==18 || eSrc.keyCode==35 || eSrc.keyCode==36 ) {

        eSrc.returnValue = false;
        return;
      }
      else  {
        setNextFocus(elm);
      }
    }

    switch(datatype)  {
      case  'numeric' :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && elmVal!='' && isNumeric(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && elmVal!='' && isNumeric(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'numblk' :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && elmVal!='' && isNumericBlank(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && elmVal!='' && isNumericBlank(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'flonum'  :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isFloatNumeric(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isFloatNumeric(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'alpha' :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isAlpha(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isAlpha(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'alnum' :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isAlphaNumeric(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isAlphaNumeric(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'alnumblk' :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isAlphaNumericBlank(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isAlphaNumericBlank(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'acctno'  :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isAccount(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isAccount(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            }
            else  {
              eleObj = new Object();
              return;
            }
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'acct'  :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isAccount(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isAccount(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            }
            else  {
              eleObj = new Object();
              return;
            }
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'cardno'  :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && chkEvent(eSrc) && !isNull(elmVal) && isNumeric(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;

      case  'money' :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isMoney(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            }
            else  {
              putMsgMoney(elm,doc);
              if(!isNull(elmVal)) {
                elm.value = addComma(delComma(elmVal));
              }
              elm.focus();
              setNextFocus(elm);
              eleObj = new Object();
              return;
            }
            break;
          case  'blur'  :
            putMsgMoney(elm,doc);
            if ( chkObj(elm) == false && !isNull(elmVal) && isMoney(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            if(elm.type=='text')  {
              elm.style.textAlign = 'right';
              elm.style.paddingRight = '2px';
            }
            putMsgMoney(elm,doc);
            try { elm.select(); } catch(ex) {}
            break;
        }
        return; 
      case  'taxmoney'  :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isMoney(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            }
            else  {
              putMsgMoney(elm,doc);
              if(!isNull(elmVal)) {
                elm.value = addComma(delComma(elmVal));
              }
              elm.focus();
              setNextFocus(elm);
              eleObj = new Object();
              return;
            }
            break;
          case  'blur'  :
            putMsgMoney(elm,doc);
            if ( chkObj(elm) == false && !isNull(elmVal) && isMoney(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            if(elm.type=='text')  {
              elm.style.textAlign = 'right';
              elm.style.paddingRight = '2px';
            }
            putMsgMoney(elm,doc);
            try { elm.select(); } catch(ex) {}
            break;
        }
        return;
      case  'date'  :
        switch(etype) {
          case  'blur'  :
            addDateFormat(elm);
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isDate(elmVal) == true )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            delDateFormat(elm);
            break;
        }
        return;
      case  'email' :
        switch(etype) {
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isEmail(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;

      case  'demail' :
        switch(etype)  {
          case  'blur'  :
            if(elmName.substring(elmName.length-1)=='1')  {
              if ( chkObj(elm) == false && !isNull(elmVal) && isEmail1(elmVal) == false )  {
                setObj(elm);
                top.putMessage(elm,'n',datatype);
                return;
              };
              break;
            }

            else if(elmName.substring(elmName.length-1)=='2') {
              if ( chkObj(elm) == false && !isNull(elmVal) && (isEmail2(elmVal) == false || isEmailCustom(elmVal)==false) )  {
                setObj(elm);
                top.putMessage(elm,'n',datatype);
                return;
              };
              break;
            }
          case  'focus'  :
            eleObj = new Object();
            break;
        }
        return;

      case  'swift' :
        switch(etype) {
          case  'blur'  :
            elmVal = top.setTrimValue(elm);
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isSwift(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'swiftr' :
        switch(etype) {
          case  'blur'  :
            elmVal = top.setTrimValue(elm);
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isSwiftR(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'comment' :
        switch(etype) {
          case  'blur'  :
            elmVal = top.setTrimValue(elm);
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isComment(elmVal,hancheck) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            elm.security = 'off';
            eleObj = new Object();
            break;
        }
        return;
      case  'telno' :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isTelNo(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isTelNo(elmVal) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            }
            else  {
              eleObj = new Object();
              return;
            }
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;
      case  'custid'  :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isCustId(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isCustId(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            }
            else  {
              eleObj = new Object();
              return;
            }
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;

      case  'alnumetc'  :
        switch(etype) {
          case  'keyup' :
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isAlphaNumericBlankEtc(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'blur'  :
            if ( chkObj(elm) == false && !isNull(elmVal) && isAlphaNumericBlankEtc(elmVal) == false ) {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            }
            else  {
              eleObj = new Object();
              return;
            }
            break;
          case  'focus' :
            eleObj = new Object();
            break;
        }
        return;

      case  ''  :
        switch(etype) {
          case  'focus' :
            elm.security = 'off';
            eleObj = new Object();
            break;
        }
        return;
        
        case  'commentJP' :
        switch(etype) {
          case  'blur'  :
            elmVal = top.setTrimValue(elm);
            if ( chkObj(elm) == false && chkEvent(eSrc) && !isNull(elmVal) && isCommentJP(elmVal,hancheck) == false )  {
              setObj(elm);
              top.putMessage(elm,'n',datatype);
              return;
            };
            break;
          case  'focus' :
            elm.security = 'off';
            eleObj = new Object();
            break;
        }
        return;

      }

      }
    }
  }
}


function verify(fo) {
  try {
    var objFrame = getFrame();
    var doc = objFrame.document;
    var elm;
    var elmTagName = '';
    var elmName = '';
    var elmVal = '';
    var datatype = '';
    var dataallow = '';
    var datadeny = '';
    var notnull = '';
    var casetype = '';
    var hancheck = '';
    var maxlength;
    var minlength;
    var fixlength;
    var maxinterval;

    formatElm = new Array();
    var formatIdx = 0;


    var msg = '';

    var elen = fo.elements.length;

    if(fo.autocomplete) {
      if(fo.autocomplete!='off')  {
        alert('debug 자동완성해제를 하세요.\n\n<form autocomplete="off">');
      }
    }
    else  {
      alert('debug 자동완성해제를 하세요.\n\n<form autocomplete="off">');
    }
    
    for(i=0;i<elen;i++) {
      elm = fo.elements[i];
      elmTagName = elm.tagName;
      elmName = elm.name;
      elmVal = veriGetValue(elm);

      if(typeof(elm.id)!='undefined' && elm.id=='output') {
        continue;
      }

      if ( elm.maxlength )  { maxlength = elm.maxlength;  }
      if ( elm.maxLength )  { maxlength = elm.maxLength;  }
      minlength = elm.minlength;
      if ( maxlength == minlength ) { fixlength = minlength;  }
      else              { fixlength = false;    }
      if ( elm.maxinterval )  { maxinterval = elm.maxinterval;  }
      else              { maxinterval = '';     }

      hancheck = 'true';
      if(elm.hancheck)  { hancheck = elm.hancheck;  }
      else              { hancheck = 'true';        }

      if ( elm.casetype )   {
        if(elm.casetype=='upper') {
          if(elmVal!=elmVal.toUpperCase())  {
            elm.value = elmVal.toUpperCase();
            elmVal = elmVal.toUpperCase();
          }
        }
        else if(elm.casetype=='lower') {
          if(elmVal!=elmVal.toLowerCase())  {
            elm.value = elmVal.toLowerCase();
            elmVal = elmVal.toLowerCase();
          }
        }
      }

      if(elm.notnull) {

        if(elm.tagName=='INPUT' && elm.type=='checkbox')  {
          if(elm.notnull == 'true') {
            var cElm = eval('doc.'+elm.form.name+'.'+elm.name);
            var chkcnt = 0;
            if(eval(cElm.length)>0)  {
              for(var k=0; k<cElm.length; k++)  {
                if(cElm[k].checked==true) {
                  chkcnt++;
                  break;
                }
              }
            }
            else  {
              if(elm.checked==true) {
                chkcnt++;
              }
            }
            if(chkcnt==0)  {
              return top.putMessage(elm,'','');
            }
          }
        }
        else if(elm.tagName=='INPUT' && elm.type=='radio')  {
          if(elm.notnull == 'true') {
            var rElm = eval('doc.'+elm.form.name+'.'+elm.name);
            var chkcnt = 0;
            if(eval(rElm.length)>0)  {
              for(var k=0; k<rElm.length; k++)  {
                if(rElm[k].checked==true) {
                  chkcnt++;
                  break;
                }
              }
            }
            else  {
              if(elm.checked==true) {
                chkcnt++;
              }
            }
            if(chkcnt==0)  {
              return top.putMessage(elm,'','');
            }
          }
        }
        else if(elm.notnull == 'true' && trim(elmVal) == ''){
          return top.putMessage(elm,'','');
        }
        else if(elm.notnull == 'true' && elm.datatype == 'money' && ( trim(elmVal) == '' || top.getNumberRvs(elmVal) == 0 ) )  { // 역포멧용 verify 추가 20080205 neObiT
          return top.putMessage(elm,'','');
        }
        else if(elm.notnull == 'true' && elm.datatype == 'taxmoney' && trim(elmVal) == '')  {
          return top.putMessage(elm,'','');
        }
      }

      if( (elm.tagName=='INPUT' && elm.type=='text')  || (elm.tagName=='TEXTAREA')      )  {
        hancheck = 'true';
        if(elm.hancheck)  { hancheck = elm.hancheck;  }
        else              { hancheck = 'true';        }

        if(trim(elmVal) != '' && hancheck=='true' && !isHangul(elmVal))  {
          return top.putMessage(elm,'n','hangul');
        }
      }

      if(elm.casetype && ( elm.tagName=='INPUT' || elm.tagName=='TEXTAREA' )) {
        switch(elm.casetype)  {
          case  'upper' :
            if ( !isNull(elmVal) )  {
              if(elmVal!=elmVal.toUpperCase())  {
                elm.value = setUpperCase(elmVal);
              }
            };
            break;
          case  'lower' :
            if ( !isNull(elmVal) )  {
              if(elmVal!=elmVal.toLowerCase())  {
                elm.value = setLowerCase(elmVal);
              }
            };
            break;
          default     :
            break;
        }
      }

      if(trim(elmVal) != "" && ( elm.tagName=='INPUT' || elm.tagName=='TEXTAREA' )) {

        if(elm.dataallow) {
          if(isUserRegExp(elmVal, dataallow.toString()) == false) {
            return top.putMessage(elm,'n','dataallow');
          }
        }
        if(elm.datadeny)    {
          if(isUserRegExp(elmVal, dataallow.toString()) == true)  {
            return top.putMessage(elm,'n','datadeny');
          }
        }
        if(fixlength) {
          if(getByteLength(elmVal) != fixlength)  {
            return top.putMessage(elm,'n','fixlength');
          }
        }
        if(maxlength) {
          if(getByteLength(elmVal) > maxlength) {
            setCutMaxlength(elm,maxlength);
            return top.putMessage(elm,'n','maxlength');
          }
        }
        if(minlength) {
          if(getByteLength(elmVal) < minlength) {
            return top.putMessage(elm,'n','minlength');
          }
        }
        if(elm.minamount && elm.maxamount)  {
          if(isMinAmount(elmVal,elm.minamount) || isMaxAmount(elmVal,elm.maxamount))  {
            return top.putMessage(elm,'n','ranamount');
          }
        }
        if(elm.maxamount) {
          if(isMaxAmount(elmVal,elm.maxamount)) {
            return top.putMessage(elm,'n','maxamount');
          }
        }
        if(elm.minamount) {
          if(isMinAmount(elmVal,elm.minamount)) {
            return top.putMessage(elm,'n','minamount');
          }
        }
      }

      if(elm.datatype){
        datatype = elm.datatype;

        if(!formatCheck(elm,datatype)){
          return top.putMessage(elm,'n',datatype);
        }

        if(datatype == 'date') {
          formatElm[formatIdx++] = elm.name;

          var d = elm;
          var baseName = elmName.substring(0, elmName.length-4);

          var chkDateYY = d.value.substring(0,4);
          var chkDateMM = d.value.substring(4,6);
          var chkDateDD = d.value.substring(6,8);

          var chkDate =  chkDateYY + chkDateMM + chkDateDD;

          var intvAry = maxinterval.split(",");

          if(maxinterval!='' && intvAry.length==1) {

            var subBaseName = baseName.substring(2,baseName.length);
            do1 = maxinterval;
            doc1 = 'c';
            dbis = top.curDate;
            if(maxinterval.substring(maxinterval.length-1,maxinterval.length)=='e') {
              doc1 = 'e';
              do1 = do1.substring(0,do1.length-1);
            }
            don1 = do1.substring(0,do1.length-1);
            dot1 = do1.substring(do1.length-1,do1.length);

            d1 = eval('doc.'+elm.form.name+'.hf'+subBaseName+'date');
            d2 = eval('doc.'+elm.form.name+'.ht'+subBaseName+'date');
            d1date = '';
            if(d1) d1date += d1.value;
            d1date = d1date.replace(/\,|-|\/|\.| /g,'');
            d2date = '';
            if(d2) d2date += d2.value;
            d2date = d2date.replace(/\,|-|\/|\.| /g,'');

            if(eval(don1)<0)  {
              if(doc1=='e') {
                dbis = d2date;
              }
              don1 = eval(don1)*(-1);
              if(doc1=='c' && d1date>top.curDate.substring(0,d1date.length)) {
                alert(top.getJsLabel('JS_VER_001'));
                d1.focus();
                return false;
              }
              else if(doc1=='c' && d2date>top.curDate.substring(0,d2date.length)) {
                alert(top.getJsLabel('JS_VER_002'));
                d1.focus();
                return false;
              }

              else if(d1date>d2date) {
                alert(top.getJsLabel('JS_VER_003'));
                d1.focus();
                return false;
              }
              else if(dot1=='y') {
                if(top.getMonthInterval(d1date,dbis)>=(eval(don1)*12)) {
                  alert(replace(top.getJsLabel('JS_VER_004'),'@',don1));
                  d1.focus();
                  return false;
                }
              }
              else if(dot1=='m') {
                if(top.getMonthInterval(d1date,dbis)>=eval(don1)) {
                  alert(replace(top.getJsLabel('JS_VER_005'),'@',don1));
                  d1.focus();
                  return false;
                }
              }
              else if(dot1=='d') {
                if(top.getDayInterval(d1date,dbis)>=eval(don1)) {
                  alert(replace(top.getJsLabel('JS_VER_006'),'@',don1));
                  d1y.focus();
                  return false;
                }
              }
            }
            else if(eval(don1)>0)  {
              if(doc1=='e') {
                dbis = d1date;
              }
              if(doc1=='c' && d1date<top.curDate.substring(0,d1date.length)) {
                alert(top.getJsLabel('JS_VER_007'));
                d2.focus();
                return false;
              }
              else if(doc1=='c' && d2date<top.curDate.substring(0,d2date.length)) {
                alert(top.getJsLabel('JS_VER_008'));
                d2.focus();
                return false;
              }
              else if(d1date>d2date) {
                alert(top.getJsLabel('JS_VER_003'));
                d1.focus();
                return false;
              }
              else if(dot1=='y') {
                if(top.getMonthInterval(d1date,d2date)>=(eval(don1)*12)) {
                  alert(replace(top.getJsLabel('JS_VER_004'),'@',don1));
                  d2.focus();
                  return false;
                }
              }
              else if(dot1=='m') {
                if(top.getMonthInterval(d1date,d2date)>=eval(don1)) {
                  alert(replace(top.getJsLabel('JS_VER_005'),'@',don1));
                  d2.focus();
                  return false;
                }
              }
              else if(dot1=='d') {
                if(top.getDayInterval(d1date,d2date)>=eval(don1)) {
                  alert(replace(top.getJsLabel('JS_VER_006'),'@',don1));
                  d2.focus();
                  return false;
                }
              }
            }
          }
        } else if(datatype == 'demail') {
          if(elmName.substring(elmName.length-1)=='1')  {
            baseName = elmName.substring(0,elmName.length-1);
            var o1 = eval('doc.'+elm.form.name+'.'+baseName+'1');
            var o2 = eval('doc.'+elm.form.name+'.'+baseName+'2');
            var oh = eval('doc.'+elm.form.name+'.'+baseName+'');

            if(trim(o1.value)!='' && trim(o2.value)!='')  {
              oh.value = trim(o1.value) + '@' + trim(o2.value);
            }
            else  {
              oh.value = '';
            }
          }
        }
      }

    }
    
    setUnFormat(fo);
    return true;
  }
  catch(ex) {
    if(typeof(fo.name)=='undefined')  {
      alert('Waiting...');
    }
    else  {
      exmsg =  'verify 하는 도중 script오류가 발생했습니다.';
      exmsg += '\nform Object : [' + fo.name + ']';
      exmsg += '\nelement name : [' + elm.name + ']';
      exmsg += '\n';
      exmsg += '\nex name    : [' + ex.name + ']';
      exmsg += '\nex number  : [' + ex.number + ']';
      exmsg += '\nex description : [' + ex.description + ']';
      exmsg += '\nex message : [' + ex.message + ']';
      alert(exmsg);
    }
    return false;
  }

}


function setNextFocus(obj)  {
  var obj;
  var formObj;
  var nextCount = 1;

  if ( obj!=null )  {
    if (obj.form != null) {
      formObj=obj.form;
    }

    if ( formObj != null )  {
      var curElement;

      if (obj.maxLength != null || obj.maxLength > 0) {
        var elmVal = veriGetValue(obj);

        if (getByteLength(elmVal) >= obj.maxLength){
          var isNext = false;
          for ( var i=0; i<formObj.length; i++ )  {
            var tempObj = formObj.elements[ i];
            if(isNext)  {
              if (tempObj.tagName == 'SELECT'
                  || ( tempObj.tagName == 'INPUT' && tempObj.type == 'text')
                  || ( tempObj.tagName == 'INPUT' && tempObj.type == 'password') ) {
                try {
                  tempObj.focus();
                  return;
                }
                catch(e)  {}
                break;
              }
            }
            if(tempObj==obj) {
              isNext = true;
            }
          }
        }
      }
    }
  }
}


function setUnFormat(fo)  {

  var elm;
  var elmName = '';
  var elmVal = '';
  var datatype = '';
  var unformat = 'true';
  var msg = '';
  var elen = fo.elements.length;

  for(i=0;i<elen;i++){

    elm = fo.elements[i];
    elmName = elm.name;
    elmVal = veriGetValue(elm);
    if(elm.unformat)  { unformat = elm.unformat;  }
    else              { unformat = 'true';        }

    if(elm.datatype)  {
      if ( unformat == 'true'
      && ( (elm.tagName=='INPUT' && elm.type=='text')
        || (elm.tagName=='TEXTAREA'                 ) ) ) {
        datatype = elm.datatype;
        switch(datatype)  {
          case  'numeric' : elm.value = top.delComma(elmVal);         break;
          case  'flonum'  : elm.value = top.delComma(elmVal);         break;
          case  'money'   : elm.value = top.delComma(elmVal);         break;
          case  'taxmoney': elm.value = top.delComma(elmVal);         break;
          case  'acctno'  : elm.value = top.delAccountFormat(elmVal); break;
          case  'cardno'  : elm.value = top.delAccountFormat(elmVal); break;
          case  'acct'    : elm.value = top.delAccountFormat(elmVal); break;
          case  'date'    : top.delDateFormat(elm);                   break;
        }
      }
    }
  }
  return true;
}


function setUnFormatRec(formatElm) {

  try {
  var objFrame = getFrame();
  var doc = objFrame.document;
  var unformat = 'true';

  for(i=0; formatElm!=null && i<formatElm.length; i++) {
    elm = doc.getElementById(formatElm[i]);
    elmVal = elm.value;
    if(elm.unformat)  { unformat = elm.unformat;  }
    else              { unformat = 'true';        }

    if(elm.datatype)  {
      if ( unformat == 'true'
      && ( (elm.tagName=='INPUT' && elm.type=='text')
        || (elm.tagName=='TEXTAREA'                 ) ) ) {
        datatype = elm.datatype;
        switch(datatype)  {
          case  'numeric' : elm.value = top.addComma(elmVal);         break;
          case  'flonum'  : elm.value = top.addComma(elmVal);         break;
          case  'money'   : elm.value = top.addComma(elmVal);         break;
          case  'taxmoney': elm.value = top.addComma(elmVal);         break;
          case  'acctno'  : elm.value = top.addAccountFormat(elmVal); break;
          case  'cardno'  : elm.value = top.addAccountFormat(elmVal); break;
          case  'acct'    : elm.value = top.addAccountFormat(elmVal); break;
          case  'date'    : top.addDateFormat(elm);                   break;
        }
      }
    }
  }
  }
  catch(ex) {}
}


function formatCheck(elm,datatype){

  var elmVal = veriGetValue(elm);
  var elmName = elm.name;
  var objFrame = getFrame();
  var doc = objFrame.document;

  hancheck = 'true';
  if(elm.hancheck)  { hancheck = elm.hancheck;  }
  else              { hancheck = 'true';        }

  if(trim(elmVal) == "")
    return true;

  switch(datatype){
    case 'numeric'  : return isNumeric(elmVal);
              break;
    case 'numblk'   : return isNumericBlank(elmVal);
              break;
    case 'flonum'   : return isFloatNumeric(elmVal);
              break;
    case 'alpha'    : return isAlpha(elmVal);
              break;
    case 'alnum'    : return isAlphaNumeric(elmVal);
              break;
    case 'alnumblk' : return isAlphaNumericBlank(elmVal);
              break;
    case 'acct'     : return isAccount(elmVal);
              break;
    case 'acctno'   : return isAccountFormat(elmVal);
              break;
    case 'money'    : return isMoney(elmVal);
              break;
    case 'taxmoney' : return isMoney(elmVal);
              break;
    case 'date'     : return isDate(elmVal);
              break;
    case 'email'    : return isEmail(trim(elmVal));
              break;
    case 'demail'  :
              baseName = elmName.substring(0,elmName.length-1);
              elmNameSeq = elmName.substring(elmName.length-1);
              o1 = eval('doc.'+elm.form.name+'.'+baseName+'1');
              o2 = eval('doc.'+elm.form.name+'.'+baseName+'2');
              oh = eval('doc.'+elm.form.name+'.'+baseName);

              if(elmNameSeq == '1')  {
                if ( isEmail1(o1.value) == false )  {
                  return false;
                }
              } else if(elmNameSeq == '2') {
                if ( (isEmail2(o2.value) == false || isEmailCustom(o2.value)==false) )  {
                  return false;
                }
              }

              return true;
              break;
    case 'swift'    : return isSwift(elmVal);
              break;
    case 'swiftr'   : return isSwiftR(elmVal);
              break;
    case 'custid'   : return isCustId(elmVal);
              break;
    case 'alnumetc'   : return isAlphaNumericBlankEtc(elmVal);
              break;
    case 'comment'  : return isComment(trim(elmVal), hancheck);
              break;
    case 'commentJP'  : return isCommentJP(trim(elmVal), hancheck);
              break;

    default     : return true;
              break;
  }

}


function chkEvent(eSrc) {

  objFrame = getFrame();
  doc = objFrame.document;
  if ( !( eSrc.keyCode == 32 ) && ( eSrc.keyCode >= 8  && eSrc.keyCode <= 36 ) ) {
    return false;
  }
  else  {
    return true;
  }

}


function chkEventMask(eSrc) {

  if ( eSrc.keyCode==8 || eSrc.keyCode==32 || eSrc.keyCode==46 || eSrc.keyCode==35 || eSrc.keyCode==36 )  {
    return true;
  }
  else  {
    return false;
  }
  
}


function isDigit(str) {
  return reDigit.test(str);
}


function isNumeric(str) {
  return reNumeric.test(str);
}


function isNumericBlank(str) {
  return reNumericBlank.test(str);
}


function isFloatNumeric(str)  {
  if (chkFrameReverseFormat())  {
    return reFloatNumericRF.test(str);
  } else {
    return reFloatNumeric.test(str);
  }
}


function isAlpha(str){
  return reAlpha.test(str);
}


function isAlphaNumeric(str){
  return reAlphaNumeric.test(str);
}


function isAlphaNumericBlank(str){
  return reAlphaNumericBlank.test(str);
}


function isAlphaNumericBlankEtc(str){
  return reAlphaNumericBlankEtc.test(str);
}


function isNull(str) {
  if(str == null || trim(str) == "") {
    return true;
  }
  return false;
}


function isMoney(str) {
  if(chkFrameReverseFormat()) {
    return reMoneyRF.test(trim(str));
  } else {
    return reMoney.test(trim(str));
  }
}


function isEmail(str) {
  if (str.search(reEmail) == -1) {
    return false
  }
  else  {
    return true;
  }
}


function isEmail1(str) {
  return reEmail1.test(str);
}


function isEmail2(str) {
  if (str.search(reEmail2) == -1) {
    return false
  }
  else  {
    return true;
  }
}

function isEmailCustom(str) {
  return true;
}

function isAccount(str) {
  return reAccount.test(trim(str));
}


function isTelNo(str) {
  return reTelNo.test(trim(str));
}


function isCustId(str) {
  return reCustId.test(trim(str));
}


function isAccountFormat(str) {

  var ac = str.replace(/-| /g,'')
  if ( !(ac.length == 12 || ac.length == 10) )  {
    return false;
  }
  else  {
    return true;
  }
}


function isMaxAmount(str, maxAmt) {
  str = delComma(trim(str));
  if ( isNumeric(str) && eval(str) > eval(maxAmt) ) {
    return true;
  }
  else  {
    return false;
  }
}


function isMinAmount(str, minAmt) {
  str = delComma(trim(str));
  if ( isNumeric(str) && eval(str) < eval(minAmt) ) {
    return true;
  }
  else  {
    return false;
  }
}


function isUserRegExp(str, userRegExp) {
  return new RegExp(userRegExp).test(str);
}


function isSwift(str) {
  return reSwift.test(trim(str));
}


function isSwiftR(str) {
  return reSwiftR.test(trim(str));
}


function isComment(str, hancheck) {
  if(hancheck==null || hancheck=='')  {
    hancheck = 'true';
  }
  if(hancheck=='true' && !isHangul(str))  {
    return false;
  }
  else  {
    if(hancheck=='false') {
      return !reComment.test(trim(getNotHangul(str)));
    }
    else  {
      return !reComment.test(trim(str));
    }
  }
}


function isCommentJP(str, hancheck) {
  if(hancheck==null || hancheck=='')  {
    hancheck = 'true';
  }
  if(hancheck=='true' && !isHangul(str))  {
    return false;
  }
  else  {
    if(hancheck=='false') {
      return !reCommentJP.test(trim(getNotHangul(str)));
    }
    else  {
      return !reCommentJP.test(trim(str));
    }
  }
}


function getNotHangul(str)  {
  str = trim(str);
  str2 = '';
  for(var i = 0; i < str.length; i++) {
    var chr = str.substr(i,1);
    if(reHangul.test(chr))  {
//      return false;
    } else {
      str2 += chr;
    }
  }

  return str2;
}


function isHangul(str)  {
  if(isHan) {
    return true;
  }
  
  str = trim(str);
  for(var i = 0; i < str.length; i++) {
    var chr = str.substr(i,1);
    if(reHangul.test(chr))  {
      return false;
    }
  }
  return true;
}


function isDate(date_str, dLen) {

  var date_str;
  var dLen;
  var rtnFlag = true;

  date_str = date_str.toString().replace(/\,|-|\/|\.| /g,'');

  if(typeof(dLen)=='undefined') {
    dLen = date_str.length;
  }
  if ( date_str=="" || date_str.length!=dLen )   {
    rtnFlag = false;
  }
  else  {

    if ( dLen==6 )  {
      date_str = date_str+"01";
    }

    var cYY = eval(date_str.substring(0,4));
    var cMM = eval(date_str.substring(4,6));
    var cDD = eval(date_str.substring(6,8));

    var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

    if ((cYY % 4 == 0 && cYY % 100 != 0) || cYY % 400 == 0)
      end[1] = 29;

    if ( cMM < 1 || cMM > 12 )  {
      if ( !isEng ) {
        alert('입력하신 달은 존재하지 않습니다.');
      }
      else  {
        alert('must be entered in months only.');
      }
      rtnFlag = false;
    }
    else if ( cDD > end[cMM-1] )    {
      if ( !isEng ) {
        alert("달에 해당되는 날짜보다 많습니다. 최대 : " + end[cMM-1] + "일");
      }
      else  {
        alert("must be " + end[cMM-1] + " digit numbers.");
      }
      rtnFlag = false;
    }
  }

  return rtnFlag;
}


function isDateVerify(date_str, dLen) {

  var date_str;
  var dLen;
  var rtnFlag = true;

  if ( date_str=="" || date_str.length!=dLen )   {
    rtnFlag = false;
  }
  else  {

    date_str = date_str.toString().replace(/\,|-|\/| /g,'');
    if ( dLen==6 )  {
      tempYY = eval(date_str.substring(0,2));
      if ( tempYY <= 6 )  {
        date_str = "20"+date_str;
      }
      else  {
        date_str = "19"+date_str;
      }
    }
    var cYY = eval(date_str.substring(0,4));
    var cMM = eval(date_str.substring(4,6));
    var cDD = eval(date_str.substring(6,8));

    var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

    if ((cYY % 4 == 0 && cYY % 100 != 0) || cYY % 400 == 0)
      end[1] = 29;

    if ( cMM < 1 || cMM > 12 )  {
      rtnFlag = false;
    }
    else if ( cDD > end[cMM-1] )    {
      rtnFlag = false;
    }
  }
  return rtnFlag;
}

function chkComboDateMM() {

  var objFrame = getFrame();
  var eSrc = objFrame.event;
  var doc = objFrame.document;
  var mmElm = eSrc.srcElement;
  var mmElmName = mmElm.name;
  var tempVal = '';

  var yyElm;
  var yyElmName = '';
  var ddElm;
  var ddElmName = '';
  var hhElm;

  var inx = mmElm.sourceIndex;

  var baseName = mmElmName.substring(0,mmElmName.length-5); //  month

  yyElm = eval('doc.'+mmElm.form.name+'.'+baseName+'year');
  ddElm = eval('doc.'+mmElm.form.name+'.'+baseName+'day');
  hhElm = eval('doc.'+mmElm.form.name+'.'+baseName+'date');

  var chkDateYY = '';
  var chkDateMM = '';
  var chkDateDD = '';

  if ( yyElm )  chkDateYY = yyElm.options[yyElm.selectedIndex].value;
  else chkDateYY = (getDateString()).substring(0,4);

  if ( mmElm )  chkDateMM = mmElm.options[mmElm.selectedIndex].value;
  if ( ddElm )  chkDateDD = ddElm.options[ddElm.selectedIndex].value;
  var chkDate =  chkDateYY + chkDateMM + chkDateDD;

  if ( ddElm )  {
    var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    if ((chkDateYY % 4 == 0 && chkDateYY % 100 != 0) || chkDateYY % 400 == 0)
      end[1] = 29;

    if ( eval(chkDateDD) > end[eval(chkDateMM)-1] ) {
      for( ii=ddElm.options.length; ii>end[eval(chkDateMM)-1]; ii-- ) {
        ddElm.options[ii-1] = null;
        ddElm.selectedIndex = ddElm.options.length-1;
      }
    }
    else if ( ddElm.options.length < end[eval(chkDateMM)-1] ) {
      for( ii=ddElm.options.length; ii<end[eval(chkDateMM)-1]; ii++ ) {
        ddElm.options[ii] = new Option(ii+1,ii+1);
      }
    }
    else if ( ddElm.options.length > end[eval(chkDateMM)-1] ) {
      for( ii=ddElm.options.length; ii>end[eval(chkDateMM)-1]; ii-- ) {
        ddElm.options[ii-1] = null;
      }
    }
    chkDateDD = ddElm.options[ddElm.selectedIndex].value;
  }
  chkDate =  chkDateYY + chkDateMM + chkDateDD;
  hhElm.value = chkDate;

}

function chkComboDateDD() {

  var objFrame = getFrame();
  var eSrc = objFrame.event;
  var doc = objFrame.document;
  var ddElm = eSrc.srcElement;
  var ddElmName = ddElm.name;
  var tempVal = '';

  var yyElm;
  var yyElmName = '';
  var mmElm;
  var mmElmName = '';
  var hhElm;
  var hhElmName = '';

  var inx = ddElm.sourceIndex;

  var baseName = ddElmName.substring(0,ddElmName.length-3);

  yyElm = eval('doc.'+ddElm.form.name+'.'+baseName+'year');
  mmElm = eval('doc.'+ddElm.form.name+'.'+baseName+'month');
  hhElm = eval('doc.'+ddElm.form.name+'.'+baseName+'date');

  var chkDateYY = yyElm.options[yyElm.selectedIndex].value;
  var chkDateMM = mmElm.options[mmElm.selectedIndex].value;
  var chkDateDD = ddElm.options[ddElm.selectedIndex].value;
  var chkDate =  chkDateYY + chkDateMM + chkDateDD;

  var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  if ((chkDateYY % 4 == 0 && chkDateYY % 100 != 0) || chkDateYY % 400 == 0)
    end[1] = 29;

  if ( eval(chkDateDD) > end[eval(chkDateMM)-1] ) {
    for( ii=ddElm.options.length; ii>end[eval(chkDateMM)-1]; ii-- ) {
      ddElm.options[ii-1] = null;
      ddElm.selectedIndex = ddElm.options.length-1;
    }
  }
  else if ( ddElm.options.length < end[eval(chkDateMM)-1] ) {
    for( ii=ddElm.options.length; ii<end[eval(chkDateMM)-1]; ii++ ) {
      ddElm.options[ii] = new Option(ii+1,ii+1);
    }
  }
  else if ( ddElm.options.length > end[eval(chkDateMM)-1] ) {
    for( ii=ddElm.options.length; ii>end[eval(chkDateMM)-1]; ii-- ) {
      ddElm.options[ii-1] = null;
    }
  }

  chkDateDD = ddElm.options[ddElm.selectedIndex].value;
  chkDate =  chkDateYY + chkDateMM + chkDateDD;
  hhElm.value = chkDate;

}


function veriGetValue(elm)
{
  var val = '';

  if ( elm.tagName == 'SELECT' )  {
    if( elm.selectedIndex >= 0 )  {
      val = elm.options[elm.selectedIndex].value;
    }
    else  {
      val = '';
    }
  } else if ( elm.tagName == 'INPUT' )  {
    val = elm.value;
  } else if ( elm.tagName == 'TEXTAREA' )  {
    val = elm.value;
  } else {
    val = ''
  }

  return val;
}


function setTrimValue(elm)
{
  if ( elm.value )  {
    elm.value = top.trim(elm.value);
    return elm.value;
  }
}


function trim(str) {
  str = str.replace(/^\s+/,"");
  return str.replace(/\s+$/,"");
}


function ltrim(str) {
  return str.replace(/^\s+/,"");
}


function rtrim(str) {
  return str.replace(/\s+$/,"");
}


function getByteLength(val){
  var msg = '';
  var vLen = 0;
  var len = 0;

  var chkVal = '';
  var maxLen = 0;

  if(!isNull(val))  {
    chkVal = val;

    for (len=0;len<chkVal.length;len++) {
      if (escape(chkVal.charCodeAt(len)).length > 4) {
        vLen++;
      }
      vLen++;
    }
  }
  return vLen;
}


function getByteLengthForSign(val){
  var msg = '';
  var vLen = 0;
  var len = 0;

  var chkVal = '';
  var maxLen = 0;

  if(!isNull(val))  {
    chkVal = val;

    for (len=0;len<chkVal.length;len++) {
      if (escape(chkVal.charCodeAt(len)).length > 4) {
        vLen++;
      }
      vLen++;
    }
  }
  return vLen;
}


function isCheckMaxlength(obj, maxLength)
{
  var obj;
  var maxLength;
  var eleName;
  var tcount = getByteLength(veriGetValue(obj));

  if(tcount>eval(maxLength)) {
    return true;
  }
  else  {
    return false;
  }
}


function putMsgMoney(obj,doc) {

  var curObj = obj;
  var cnt = 0;

  while(curObj.nextSibling && cnt < 10) {
    curObj = curObj.nextSibling;
    if ( curObj.tagName == 'SPAN' ) {
      if ( curObj.id == obj.name+'h' )  {
        msg = setNumToKor(veriGetValue(obj),'2');
        if ( msg!='' )  {
          curObj.innerHTML = '금 ' + msg + ' 원';
        }
        else  {
          curObj.innerHTML = '';
        }
        break;
      }
      else if ( curObj.id == obj.name+'e' ) {
        msg = setNumToKor(veriGetValue(obj),'2');
        if ( msg!='' )  {
          curObj.innerHTML = 'USD ' + msg;
        }
        else  {
          curObj.innerHTML = '';
        }
        break;
      }
      else if ( curObj.id == obj.name+'j' ) {
        msg = setNumToKor(veriGetValue(obj),'2');
        if ( msg!='' )  {
          curObj.innerHTML = 'JPY ' + msg;
        }
        else  {
          curObj.innerHTML = '';
        }
        break;
      }
    }
    cnt++;
  }
}


function getNumToKor(num) {

  if ( num == "1" )       return "일";
  else if ( num == "2" )  return "이";
  else if ( num == "3" )  return "삼";
  else if ( num == "4" )  return "사";
  else if ( num == "5" )  return "오";
  else if ( num == "6" )  return "육";
  else if ( num == "7" )  return "칠";
  else if ( num == "8" )  return "팔";
  else if ( num == "9" )  return "구";
  else if ( num == "십" ) return "십";
  else if ( num == "백" ) return "백";
  else if ( num == "천" ) return "천";
  else if ( num == "만" ) return "만 ";
  else if ( num == "억" ) return "억 ";
  else if ( num == "조" ) return "조 ";
  else if ( num == "0" )  return "";
  else                    return "";

}


function setCipherToKor(num)  {

  var len  = num.length;
  var temp = "";

  if ( len == 1 ) {
    temp = num;
  } else if ( len == 2 ) {
    temp = num.substring(0,1) + "십" + num.substring(1,2);
  } else if ( len == 3 ) {
    temp = num.substring(0,1) + "백" + num.substring(1,2) + "십" + num.substring(2,3);
  } else if ( len == 4 ) {
    temp = num.substring(0,1) + "천" + num.substring(1,2) + "백" + num.substring(2,3) + "십" + num.substring(3,4);
  }

  num=new String(temp);
  num=num.replace(/0십/gi,"");
  num=num.replace(/0백/gi,"");
  num=num.replace(/0천/gi,"");

  return num;
}


function setNumToKor(num,mode,return_input) {

  if ( num == "" || num == "0" )  {
    if ( mode == "3" )  {
      return_input.value = "";
    }
    return '';
  }

  num=new String(num);
  num=num.replace(/,/gi,"");

  var len  = num.length;
  var temp1 = "";
  var temp2 = "";

  if ( len/4 > 3 && len/4 <= 4 )  {
    if ( len%4 == 0 ) {
      temp1 = setCipherToKor(num.substring(0,4)) + "조" + setCipherToKor(num.substring(4,8)) + "억" + setCipherToKor(num.substring(8,12)) + "만" + setCipherToKor(num.substring(12,16));
    }
    else  {
      temp1 = setCipherToKor(num.substring(0,len%4)) + "조" + setCipherToKor(num.substring(len%4,len%4+4)) + "억" + setCipherToKor(num.substring(len%4+4,len%4+8)) + "만" + setCipherToKor(num.substring(len%4+8,len%4+12));
    }
  }
  else if ( len/4 > 2 && len/4 <= 3 ) {
    if ( len%4 == 0 ) {
      temp1 = setCipherToKor(num.substring(0,4)) + "억" + setCipherToKor(num.substring(4,8)) + "만" + setCipherToKor(num.substring(8,12));
    }
    else  {
      temp1 = setCipherToKor(num.substring(0,len%4)) + "억" + setCipherToKor(num.substring(len%4,len%4+4)) + "만" + setCipherToKor(num.substring(len%4+4,len%4+8));
    }
  }
  else if ( len/4 > 1 && len/4 <= 2 ) {
    if ( len%4 == 0 ) {
      temp1 = setCipherToKor(num.substring(0,4)) + "만" + setCipherToKor(num.substring(4,len));
    }
    else  {
      temp1 = setCipherToKor(num.substring(0,len%4)) + "만" + setCipherToKor(num.substring(len%4,len));
    }
  }
  else if ( len/4 <= 1 )  {
    temp1 = setCipherToKor(num.substring(0,len));
  }

  for (var i=0; i<temp1.length; i++)  {
    temp2 = temp2 + getNumToKor(temp1.substring(i, i+1));
  }

  temp3=new String(temp2);
  temp3=temp3.replace(/억 만/gi,"억 ");
  temp3=temp3.replace(/조 억/gi,"조 ");

  if ( mode == 1 )  {
    alert(temp3 + " 원");
  }
  else if ( mode == 2 ) {
    return temp3;
  }
  else if ( mode == 3 ) {
    return_input.value = "( " + temp3 + " 원 )";
  }

}


function setCutMaxlength(obj, maxByte)  {
  var val = obj.value;
  var len = 0;
  var idx = 0;

  for(var i = 0; i < val.length; i++) {
    len += (val.charCodeAt(i) > 255 ? 2 : 1);
    if (len <= maxByte) idx = i;
  }

  obj.value = val.substring(0, idx + 1);
  try {
    if(obj.datatype=='money' || obj.datatype=='tax') {
      if(!isNull(val)) {
        obj.value = addComma(delComma(val));
      }
    }
  }
  catch(ex){}
}


function getCutMaxlength(val, maxByte)  {
  var len = 0;
  var idx = 0;

  for(var i = 0; i < val.length; i++) {
    len += (val.charCodeAt(i) > 255 ? 2 : 1);
    if (len <= maxByte) idx = i;
  }

  return val.substring(0, idx + 1);
}


function getByteSubstring(val, maxByte) {
  var len = 0;
  var idx = 0;

  for(var i = 0; i < val.length; i++) {
    len += (val.charCodeAt(i) > 255 ? 2 : 1);
    if (len <= maxByte) idx = i;
  }

  return val.substring(0, idx + 1);
}

function removecomma(str){
  return delComma(str);
}


function addCommaCCY(ccy, str) {

  return addComma(str, getUnitCCY(ccy));

}


function addCommaNation(ccy, str, nacode) {

  return addComma2(str, getUnitCCY(ccy),nacode);

}


function getUnitCCY(ccy)  {
  unit = 2;
  if(ccy=='JPY')  {
    unit = 0;
  }
  else if(ccy=='IDR') {
    unit = 2;
  }
  else if(ccy=='KRW') {
    unit = 0;
  }
  else if(ccy=='RMB') {
    unit = 2;
  }
  else if(ccy=='CNY') {
    unit = 2;
  }
  else if(ccy=='VND') {
    unit = 0;
  }
  return unit;
}


function addComma(str,unit){
  nstr = '';
  str = ''+str+'';

  comma = ",";
  point = ".";
  if(chkFrameReverseFormat())  {
    comma = ".";
    point = ",";
    str = str.replace(/\.|\/| /g,',');
  } else {
    str = str.replace(/\,|\/| /g,'');
  }

  minus = '';
  flootstr = '';
  if(str.charAt(0) == '-'){
    minus = '-';
    str = str.substring(1);
  }
  if(str.indexOf(point) > -1){
    flootstr = str.substring(str.indexOf(point));
    str = str.substring(0,str.indexOf(point));
    for(ci=flootstr.length;ci<unit+1;ci++){
      flootstr += '0';
    }
  }

  if(str.length>0)  {
    for(ci=0;ci<=str.length;ci++){
      if(str.substring(ci,ci+1)!='0') {
        str = str.substring(ci);
        break;
      }
    }
  }
  if(str.length==0)
    str = "0";

  if(unit>0){
    if(flootstr.length == 0) {
      flootstr += point;
      for(ci=0;ci<unit;ci++){
        flootstr += '0';
      }
    }
    else  {
      flootstr = flootstr.substring(0,unit+1);
    }
  }
  else if(unit==0)  {
    flootstr = "";
  }
  else  {
//    flootstr = "";
  }

  if(str.length < 4)
    return (minus + str + flootstr);

  c = str.length%3;
  for(ci=0;ci<str.length;ci++){
    if((ci % 3) == c && ci != 0)
      nstr += comma;

    nstr += str.charAt(ci);
  }
  return (minus + nstr + flootstr);
}


function addComma2(str,unit,nacode){
  nstr = '';
  str = ''+str+'';
  str = str.replace(/\,|\/| /g,'');
  minus = '';
  flootstr = '';
  comma = ",";
  point = ".";
  if (getNaCurrencyType(nacode) == 1)  {
    comma = ".";
    point = ",";

    str = top.replace(str, '.', ',');
  }

  if(str.charAt(0) == '-'){
    minus = '-';
    str = str.substring(1);
  }

  if(str.indexOf(point) > -1){
    flootstr = str.substring(str.indexOf(point));
    str = str.substring(0,str.indexOf(point));
    for(ci=flootstr.length;ci<unit+1;ci++){
      flootstr += '0';
    }
  }

  if(str.length>0)  {
    for(ci=0;ci<=str.length;ci++){
      if(str.substring(ci,ci+1)!='0') {
        str = str.substring(ci);
        break;
      }
    }
  }
  if(str.length==0)
    str = "0";

  if(unit>0){
    if(flootstr.length == 0) {
      flootstr += point;
      for(ci=0;ci<unit;ci++){
        flootstr += '0';
      }
    }
    else  {
      flootstr = flootstr.substring(0,unit+1);
    }
  }
  else if(unit==0)  {
    flootstr = "";
  }
  else  {
//    flootstr = "";
  }

  if(str.length < 4)
    return (minus + str + flootstr);

  c = str.length%3;
  for(ci=0;ci<str.length;ci++){
    if((ci % 3) == c && ci != 0)
      nstr += comma;

    nstr += str.charAt(ci);
  }

  return (minus + nstr + flootstr);
}


function delCommaTR(commastr){
  nstr = '';
  for(ci=0;ci<commastr.length;ci++){
    if(commastr.charAt(ci) == ',')
      continue;
  else
    nstr += '' + commastr.charAt(ci);
  }
  return nstr;
}


function delComma(commastr){
  comma = ",";
  if(chkFrameReverseFormat())  {
    comma = ".";
  }

  nstr = '';
  for(ci=0;ci<commastr.length;ci++){
    if(commastr.charAt(ci) == comma)
      continue;
  else
    nstr += '' + commastr.charAt(ci);
  }
  return nstr;
}


function delCommaRvs(commastr){
	
  comma    = ",";
  pointOld = ".";
  pointNew = ".";
  if(chkFrameReverseFormat())  {
    comma    = ".";
    pointNew = ",";
  }
  alert(commastr);
  nstr = '';
  for(ci=0;ci<commastr.length;ci++){
    if(commastr.charAt(ci) == comma)
      continue;
    else
      nstr += '' + commastr.charAt(ci);
  }
  alert(nstr);
  nstr = top.replace(nstr, pointNew, pointOld);
  alert(nstr);
  return nstr;
}


function setChangePoint(str){
  pointpos = 0;
  if(str.indexOf('.') > -1){
    pointpos = str.length - (str.indexOf('.') + 1);
  }
  str = addComma(str, pointpos);

  return str;
}


function addAccountFormat(str)  {
  var ac = str.replace(/-| /g,'')
  return str;
/*
  if ( ac.length == 12 )  {
    str = ac.substring(0,3)+'-'+ac.substring(3,5)+'-'+ac.substring(5);
  }
  else if ( ac.length == 16 ) {
    if(ac.substring(0,4) == '0000'){
      ac = ac.substring(4);
      str = ac.substring(0,3)+'-'+ac.substring(3,5)+'-'+ac.substring(5);
    } else {
      str = ac.substring(0,4)+'-'+ac.substring(4,8)+'-'+ac.substring(8,12)+'-'+ac.substring(12);
    }
  }
*/
  return str;
}


function delAccountFormat(str)  {
  return str.toUpperCase().replace(/-| /g,'')
}


function delFormat(str, pat)  {
  return top.replace(str, pat, '');
}


function addDateFormat(obj, chkLength) {

  var obj;
  var date_str = obj.value;

  var dLen;

  if ( chkLength==null )  {
    dLen = 8;
  }
  else  {
    dLen = eval(chkLength);
  }

  date_str = date_str.toString().replace(/\,|-|\/|\.| /g,'');

  var rtnFlag = true;

  if ( date_str!='' ) {
    if( date_str.length != dLen && date_str!='' ) {
      if ( dLen==6 )  {

        if(verifyLang=='KO' || verifyLang=='')  {
          alert("YYMMDD형식으로 6자리를 입력하십시요");
        }
        else  {
          alert("Date must be enterd.  ( YYMMDD )");
        }
        rtnFlag = false;
      }
      else if ( dLen==8 ) {
        if(verifyLang=='KO' || verifyLang=='')  {
          alert("YYMMDD형식으로 8자리를 입력하십시요");
        }
        else  {
          alert("Date must be enterd.  ( YYMMDD )");
        }
        rtnFlag = false;
      }
    }
    else {
      var num_pattern = /[^(0-9)]/;

      if(num_pattern.test(date_str))  {
        if(verifyLang=='KO' || verifyLang=='')  {
          alert("날짜는 숫자로 입력하여야 합니다.");
        }
        else  {
          alert("must be entered in digit numbers only.");
        }
        obj.focus();
        obj.select();
        rtnFlag = false;
      }
    }

    if ( rtnFlag == true )  {

      if ( isDate(date_str,dLen) == false ) {
        obj.focus();
        obj.select();
        return false;
      }
      else    {
        if ( dLen == 8 )  {
        obj.value = date_str.substring(0,4)+DATE_PIPE_STR+date_str.substring(4,6)+DATE_PIPE_STR+date_str.substring(6,8);
        return true;
        }
        else if ( dLen == 6 ) {
          obj.value = date_str.substring(0,2)+DATE_PIPE_STR+date_str.substring(2,4)+DATE_PIPE_STR+date_str.substring(4,6);
          return true;
        }
      }
    }
    else  {
      obj.focus();
      obj.select();
    }
  }
}


function delDateFormat(obj, chkLength) {

  var obj;
  var dLen;

  var date_str = obj.value;

  date_str = date_str.toString().replace(/\,|-|\/|\.| /g,'');
  if ( obj.datatype != 'date' ) return;

  if ( chkLength==null )  {
    dLen = 8;
  }
  else  {
    dLen = eval(chkLength);
  }


  if( date_str == "") {
    if ( dLen==8 )  {
//      date_str = getDateString("");
    }
    else if ( dLen==6 ) {
//      date_str = getDateString("");
//      date_str = date_str.substring(2,8);
    }
  }

  obj.value = date_str;

}


function getDateFormat(str) {

  var dLen = 8;
  var date_str = '';

  if(typeof(str)=='undefined')  {
    date_str = '';
  } else {
    date_str = str.toString().replace(/\,|-|\/|\.| /g,'');
  }

  if ( date_str!='' ) {

    dLen=date_str.length;
    if( date_str.length != dLen && date_str!='' ) {
      return str;
    }
    else {
      var num_pattern = /[^(0-9)]/;

      if(num_pattern.test(date_str))  {
        return str;
      }
    }
    if(dLen==8)
      date_str = date_str.substring(0,4)+DATE_PIPE_STR+date_str.substring(4,6)+DATE_PIPE_STR+date_str.substring(6,8);
    else if(dLen==6)
      date_str = date_str.substring(0,4)+DATE_PIPE_STR+date_str.substring(4,6);
  }

  return date_str
}


function getDateString(pipe)  {

  var pipe;

  if ( pipe==null )
    pipe = DATE_PIPE_STR;

  var todays = new Date();

  if (typeof(curDate) != "undefined")
  {
    todays = new Date( eval(curDate.substring(0,4)),
            eval(curDate.substring(4,6))-1,
            eval(curDate.substring(6,8))
           );
  }
  else
    var todays = new Date();

  var date_str = "" + todays.getFullYear();

  if( todays.getMonth()+1 < 10 )
    date_str += pipe+( "0" + (todays.getMonth()+1) );
  else
    date_str += pipe+(todays.getMonth()+1);

  if( todays.getDate() < 10 )
    date_str += pipe+( "0" + todays.getDate() );
  else
    date_str += pipe+todays.getDate()

  return date_str;

}


function getUserFormat(str, format) {

  var rtnStr = '';
  var str = trim(str);

  var strCnt = 0;

  try {
    for(i=0; i<format.length; i++) {
      if(format.charAt(i) == 'X')  {
        rtnStr += str.charAt(strCnt);
        strCnt++;
      }
      else  {
        rtnStr += format.charAt(i);
      }
    }
  }
  catch(ex) {
    return str;
  }

  return rtnStr;

}


function setUpperCase(val)  {
  return val.toUpperCase();
}


function setLowerCase(val)  {
  return val.toLowerCase();
}


function putMessage(elm,flag,datatype){

  var isEng = false;
  var verifyLang = top.getCookie("LA_CODE");

  var kMsg = '';
  var eMsg = '';
  var cMsg = '';
  var jMsg = '';

  var colName = elm.colname;
  if(typeof(elm.colname)=='undefined')  {
    colName = '';
    alert('debug\n\nelement['+elm.name+'에 대해서 colname이 지정되지 않았습니다.\n확인해보세요.');
  }
  var maxlength;
  var minlength;
  var maxamount;
  var minamount;
  var curByte;

  var tempMinAmount = '';
  var tempMaxAmount = '';

  if(flag == ''){
    kMsg = colName + '를(을) 입력하여 주시기 바랍니다.';
    eMsg = colName + ' must be entered.';
    cMsg = colName + ' 是必填项。';
    jMsg = colName + ' は必須入力です。';

    if(verifyLang=='KO' || verifyLang=='')  {
      alert(kMsg);
    }
    else if(verifyLang=='EN')  {
      alert(eMsg);
    }
    else if(verifyLang=='CN') {
      alert(cMsg);
    }
    else if(verifyLang=='JA') {
      alert(jMsg);
    }
    else  {
      alert(kMsg);
    }
  }
  else{

  if(elm.maxlength) maxlength = elm.maxlength;
  if(elm.maxLength) maxlength = elm.maxLength;
  if(elm.minlength) minlength = elm.minlength;  else  minlength=0;

  if(elm.maxamount) maxamount = elm.maxamount;  else  maxamount=0;
  if(elm.minamount) minamount = elm.minamount;  else  minamount=0;
  if(elm.datatype)  {
    if(elm.datatype=='money' || elm.datatype=='numeric' || elm.datatype=='taxmoney' ) {
      if(minamount) {
        tempMinAmount = addComma(minamount);
      }
      if(maxamount) {
        tempMaxAmount = addComma(maxamount);
      }
    }
    else  {
      tempMinAmount = minamount;
      tempMaxAmount = maxamount;
    }
  }

  if(datatype=='minlength' || datatype=='maxlength' || datatype=='fixlength') {
    if(minlength>0 && maxlength>0 && minlength!=maxlength)  datatype='ranlength';
  }

  curByte = getByteLength(trim(veriGetValue(elm)));

  switch(datatype){
    case 'hangul' :
            kMsg = colName + ' 는(은) 한국어를 입력하실 수 없습니다.';
            eMsg = colName + ' cannot input Korean.';
            cMsg = colName + ' 不能输入韩国语。';
            jMsg = colName + ' は韓国語を入力することができません。';
            break;
    case 'numeric' :
            kMsg = colName + ' 는(은) 숫자로만 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by number only.';
            cMsg = colName + ' 只能输入数字。';
            jMsg = colName + ' は数字のみ入力しなければなりません。';
            break;
    case 'numblk' :
            kMsg = colName + ' 는(은) 숫자로만 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by number only.';
            cMsg = colName + ' 只能输入数字。';
            jMsg = colName + ' は数字のみ入力しなければなりません。';
            break;
    case 'flonum' :
            kMsg = colName + ' 는(은) 숫자로만 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by number only.';
            cMsg = colName + ' 只能输入数字。';
            jMsg = colName + ' は数字のみ入力しなければなりません。';
            break;
    case 'acct' :
            kMsg = colName + ' 는(은) 영문자와 숫자로만 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by English character and number only.';
            cMsg = colName + ' 只能输入英文和数字。';
            jMsg = colName + ' は英文字と数字のみ入力しなければなりません。';
            break;
    case 'alpha' :
            kMsg = colName + ' 는(은) 영문자만 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by English character only.';
            cMsg = colName + ' 只能输入英文。';
            jMsg = colName + ' は英文字のみ入力しなければなりません。';
            break;
    case 'alnum' :
            kMsg = colName + ' 는(은) 영문자와 숫자로만 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by English character and number only.';
            cMsg = colName + ' 只能输入英文和数字。';
            jMsg = colName + ' は英文字と数字のみ入力しなければなりません。';
            break;
    case 'alnumblk' :
            kMsg = colName + ' 는(은) 영문자와 숫자로만 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by English character and number only.';
            cMsg = colName + ' 只能输入英文和数字。';
            jMsg = colName + ' は英文字と数字のみ入力しなければなりません。';
            break;
    case 'acctno' :
            kMsg = colName + ' 는(은) 계좌번호형식이 올바르지 않습니다.';
            eMsg = colName + ' has no right format of account No.';
            cMsg = colName + ' 账号形式不正确。';
            jMsg = colName + ' は口座番号形式が正しいではありません。';
            break;
    case 'cardno' :
            kMsg = colName + ' 는(은) 숫자로만 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by number only.';
            cMsg = colName + ' 只能输入数字。';
            jMsg = colName + ' は数字のみ入力しなければなりません。';
            break;
    case 'email' :
            kMsg = colName + ' 는(은) E-Mail 형식에 맞는 Address 를 입력하셔야 됩니다.\nex) userid@domain.com';
            eMsg = colName + ' must be inputted by adress to meet e-mail format.\nex) userid@domain.com';
            cMsg = colName + ' 应输入符合于E-mail形式的地址。\nex) userid@domain.com';
            jMsg = colName + ' はE-Mail 形式に合うAddress を入力しなければなりません。\nex) userid@domain.com';
            break;
    case 'demail' :
            kMsg = colName + ' 는(은) E-Mail 형식에 맞는 Address 를 입력하셔야 됩니다.\nex) userid@domain.com';
            eMsg = colName + ' must be inputted by adress to meet e-mail format.\nex) userid@domain.com';
            cMsg = colName + ' 应输入符合于E-mail形式的地址。\nex) userid@domain.com';
            jMsg = colName + ' はE-Mail 形式に合うAddress を入力しなければなりません。\nex) userid@domain.com';
            break;
    case 'money' :
            kMsg = colName + ' 는(은) 금액표현 숫자만 입력하세요. \nex) 숫자, 콤마';
            eMsg = 'Please input number of amount expression for '+colName+'. \nex: number, comma)';
            cMsg = colName + ' 只输入表现金额的数字。\n例如) 数字、逗号';
            jMsg = colName + ' は金額表現数字のみ入力してください。 \nex) 数字、コンマ';
            break;
    case 'taxmoney' :
            kMsg = colName + ' 는(은) 금액표현 숫자만 입력하세요. \nex) 숫자, 콤마';
            eMsg = 'Please input number of amount expression for '+colName+'. \nex: number, comma)';
            cMsg = colName + ' 只输入表现金额的数字。\n例如) 数字、逗号';
            jMsg = colName + ' は金額表現数字のみ入力してください。 \nex) 数字、コンマ';
            break;
    case 'date' :
            switch(eval(maxlength)){
              case  4 : dfmt = 'YYYY';break;
              case  6 : dfmt = 'YYYYMM';break;
              default : dfmt = 'YYYYMMDD';break;
            }
            kMsg = colName + ' 는(은) 날짜형식(' + dfmt + ')(으)로 입력하셔야 됩니다.';
            eMsg = colName + ' must be inputted by date format (' + dfmt + ').';
            cMsg = colName + ' 应输入日期('+dfmt+')。';
            jMsg = colName + ' は日付形式('+dfmt+')で入力しなければなりません。';
            break;
    case 'fixlength' :
            kMsg = colName + ' 는(은) ' + minlength + ' 자 모두 입력하셔야 됩니다.\n\n현재 '+curByte+' 자를 입력하셨습니다.';
            if(!(elm.datatype=='numeric' || elm.datatype=='flonum' || elm.datatype=='money' || elm.datatype=='taxmoney' || elm.datatype=='acct' || elm.datatype=='acctno'))
              kMsg += '\n※ 한국어, 중문, 일본어는 2자로 인식됩니다';
            eMsg = colName + ' must be inputted with every ' +minlength+ ' character.\n\nYou have inputted ' +curByte+ ' numbers yet.';
            cMsg = colName + ' 应输入' +minlength+ '字，\n\n目前已输入了' +curByte+ '字。';
            jMsg = colName + ' は' +minlength+ '字皆入力しなければなりません。\n\n現在' +curByte+ '字を入力しました。';
            break;
    case 'ranlength' :
            kMsg = colName + ' 는(은) ' + minlength + ' 자리부터 ' + maxlength + ' 자리까지 입력가능합니다.\n\n현재 '+curByte+' 자리를 입력하셨습니다.';
            if(!(elm.datatype=='numeric' || elm.datatype=='flonum' || elm.datatype=='money' || elm.datatype=='taxmoney' || elm.datatype=='acct' || elm.datatype=='acctno'))
              kMsg += '\n※ 한국어, 중문, 일본어는 2자로 인식됩니다';
            eMsg = colName + '  is possible for being inputted from ' +minlength+ ' potision to ' +maxlength+ ' position. You have inputted ' +curByte+ ' position yet.';
            cMsg = colName + ' 可输入' +minlength+ '到' +maxlength+ '字，\\n目前已输入了' +curByte+ '字。';
            jMsg = colName + ' は' +minlength+ '桁から' +maxlength+ '桁まで入力可能です。\n\n現在' +curByte+ '桁を入力しました。';
            break;
    case 'maxlength' :
            kMsg = colName + ' 는(은) 최대 '+maxlength+' 자리까지 사용가능합니다.\r\n현재 '+curByte+' 자리를 입력하셨습니다.';
            if(!(elm.datatype=='numeric' || elm.datatype=='flonum' || elm.datatype=='money' || elm.datatype=='taxmoney' || elm.datatype=='acct' || elm.datatype=='acctno'))
              kMsg += '\n※ 한국어, 중문, 일본어는 2자로 인식됩니다';
            eMsg = colName + ' is possible for being used up to max. '+maxlength+' position. You have inputted '+curByte+' position yet.';
            cMsg = colName + ' 最大可输入'+maxlength+'字，\n\n目前已输入了'+curByte+'字。';
            jMsg = colName + ' は最大'+maxlength+'桁まで使用可能です。\n\n現在 '+curByte+'桁を入力しました。';
            break;
    case 'minlength' :
            kMsg = colName + ' 는(은) ' + minlength + ' 자리 이상을 입력하셔야 됩니다.\n\n현재 '+curByte+' 자리를 입력하셨습니다.';
            if(!(elm.datatype=='numeric' || elm.datatype=='flonum' || elm.datatype=='money' || elm.datatype=='taxmoney' || elm.datatype=='acct' || elm.datatype=='acctno'))
              kMsg += '\n※ 한국어, 중문, 일본어는 2자로 인식됩니다';
            eMsg = colName + ' should be inputted mora than ' + minlength + ' position. \n\nYou have inputted '+curByte+' position yet.';
            cMsg = colName + ' 应输入' + minlength + '字以上，\n\n目前已输入了'+curByte+'字。';
            jMsg = colName + ' は' + minlength + '桁以上を入力しなければなりません。\n\n現在'+curByte+'桁を入力しました。';
            break;
    case 'ranamount' :
            kMsg = colName + ' 는(은) 최소 ' + tempMinAmount + ' 숫자이상 ' + tempMaxAmount + ' 숫자이하로 입력하셔야 합니다.';
            eMsg = colName + ' should be inputted by over min.' + tempMinAmount + ' number and under ' + tempMaxAmount + ' number.';
            cMsg = colName + ' 应输入最少' + tempMinAmount + '字以上，' + tempMaxAmount + '数字以下。';
            jMsg = colName + ' は最小' + tempMinAmount + '数字以上、' + tempMaxAmount + '数字以下で入力しなければなりません。';
            break;
    case 'maxamount' :
            kMsg = colName + ' 는(은) 최대 ' + tempMaxAmount + ' 숫자이하로 입력하셔야 합니다.';
            eMsg = colName + ' should be inputted by under max. ' + tempMaxAmount + ' numbers.';
            cMsg = colName + ' 应输入最多' + tempMaxAmount + '字以下。';
            jMsg = colName + ' は最大' + tempMaxAmount + '数字以下で入力しなければなりません。';
            break;
    case 'minamount' :
            kMsg = colName + ' 는(은) 최소 ' + tempMinAmount + ' 숫자이상을 입력하셔야 됩니다';
            eMsg = colName + ' should be imputted by over max. ' + tempMinAmount + ' numbers.';
            cMsg = colName + ' 应输入最多' + tempMinAmount + '字以上。';
            jMsg = colName + ' は最大' + tempMinAmount + '数字以上を入力しなければなりません。';
            break;
    case 'dataallow'  :
            kMsg = colName + ' 는(은) 허용된 단어만 입력하세요.';
            eMsg = colName + ' should be inputted by allowed words only.';
            cMsg = colName + ' 请输入允许的单词。';
            jMsg = colName + ' は許容された単語のみ入力してください。';
            break;
    case 'datadeny' :
            kMsg = colName + ' 는(은) 지정한 단어만 제외하고 입력하세요.';
            eMsg = colName + ' should be inputted excluding designated words.';
            cMsg = colName + ' 请输入指定单词以外的内容。';
            jMsg = colName + ' は指定した単語のみ除いて入力してください。';
            break;
    case 'swift' :
            kMsg = colName + ' 는(은) Swift전송 가능한 문자만 입력하세요.\n가능한 문자 [영문,숫자,Enter Key, (,), /, -, ?, :, ., +]';
            eMsg = colName + ' should be inputted by the character availabled for Swift transfer. \nAvailable character [English character, number, Enter Key, (,), /, -, ?, :, ., +]';
            cMsg = colName + ' 请输入可Swift传送的文字。\n可用文字[英文、数字、Enter Key、/、-、？、:、(、)、.、+]';
            jMsg = colName + ' はSwift送信可能な文字のみ入力してください。\n可能であれば文字 [英文、数字、Enter Key、 (,)、/、 -、:、。、+]';
            break;
    case 'swiftr':
            kMsg = colName + ' 는(은) Swift전송 가능한 문자만 입력하세요.\n가능한 문자 [영문,숫자,Enter Key, (,), /, -, ?, :, ., +]';
            eMsg = colName + ' should be inputted by the character availabled for Swift transfer. \nAvailable character [English character, number, Enter Key, (,), /, -, ?, :, ., +]';
            cMsg = colName + ' 请输入可Swift传送的文字。\n可用文字[英文、数字、Enter Key、/、-、？、:、(、)、.、+]';
            jMsg = colName + ' はSwift送信可能な文字のみ入力してください。\n可能であれば文字 [英文、数字、Enter Key、 (,)、/、 -、:、。、+]';
            break;
    case 'comment' :
            kMsg = colName + ' 는(은) 입력 가능한 문자만 입력하세요.\n가능한 문자 [자국어,영문,숫자,공백, /, -]';
            eMsg = colName + ' should be inputted by input available character only.\nAvailable character [Native language, English character, number, blank, /, -, ?, :. (, ), ., +]';
            cMsg = colName + ' 请输入可输入的文字。\n可用文字[自国語、数字、空格、/、-、？、:、(、)、.、+]';
            jMsg = colName + ' は入力可能な文字のみに入力してください。\n可能であれば文字 [自国語、数字、空白、 /、 -、:、(、)、。、+]';
            break;
    case 'telno' :
            kMsg = colName + ' 는(은) 입력 가능한 문자만 입력하세요.\n가능한 문자 [숫자, -]';
            eMsg = colName + ' should be inputted by input available character only.\nAvailable character [number, -]';
            cMsg = colName + ' 请输入可输入的文字。\n可用文字[空格、-]';
            jMsg = colName + ' は入力可能な文字のみに入力してください。\n可能であれば文字 [空白、-]';
            break;
    case 'custid' :
            kMsg = colName + ' 는(은) 입력 가능한 문자만 입력하세요.\n가능한 문자 [영문,숫자, /, -]';
            eMsg = colName + ' should be inputted by input available character only.\nAvailable character [English character, number, /, -]';
            cMsg = colName + ' 请输入可输入的文字。\n可用文字[数字、空格、/、-]';
            jMsg = colName + ' は入力可能な文字のみに入力してください。\n可能であれば文字 [数字、空白、 /、 -]';
            break;
    case 'alnumetc' :
            kMsg = colName + ' 는(은) 입력 가능한 문자만 입력하세요.\n가능한 문자 [영문,숫자, 특수문자]';
            eMsg = colName + ' should be inputted by input available character only.\nAvailable character [English character, number, /, -]';
            cMsg = colName + ' 请输入可输入的文字。\n可用文字[英文、数字、空格、/、-]';
            jMsg = colName + ' は入力可能な文字のみに入力してください。\n可能であれば文字 [英文、数字、空白、 /、 -]';
            break;
    case 'commentJP' :
            kMsg = colName + ' 는(은) 입력 가능한 문자만 입력하세요.\n가능한 문자 [자국어,공백]';
            jMsg = colName + ' は入力可能な文字のみに入力してください。\n可能であれば文字 [自国語、空白]';
            break;

    default :   break;
    }

    if(verifyLang=='KO' || verifyLang=='')  {
      alert(kMsg);
    }
    else if(verifyLang=='EN')  {
      alert(eMsg);
    }
    else if(verifyLang=='CN') {
      alert(cMsg);
    }
    else if(verifyLang=='JA') {
      alert(jMsg);
    }
    else  {
    }
  }
  try {
    elm.focus();
    elm.select();
  }
  catch(ee) {}
  return false;
}


function setFirstDate(sObj){
  var objFrame = getFrame();
  var eSrc = objFrame.event;
  var doc = objFrame.document;
  var mmElm = eSrc.srcElement;
  var mmElmName = mmElm.name;
  var tempVal = mmElm.options[mmElm.selectedIndex].value;

  var baseName = mmElmName.substring(2,mmElmName.length-4);

  var fymElm = eval('doc.'+mmElm.form.name+'.hf'+baseName+'date');
  fymElm.value = tempVal.substring(0,6) + '01';
}


function setImeMode(obj){
  if(obj.tagName=='INPUT')  {
    var datatype = obj.datatype;
  }
}


function getEndDate(datestr){

  if(datestr.length < 6){
    return null;
  }

  var yy = Number(datestr.substring(0,4));
  var mm = Number(datestr.substring(4,6));

  var boundDay = "";

  if(mm != 2){
    var mon=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    boundDay = mon[mm-1];
  }
  else{
    if (yy%4 == 0 && yy%100 != 0 || yy%400 == 0){
      boundDay = 29;
    }
    else{
      boundDay = 28;
    }
  }

  return boundDay;
}


function toTimeObject(time) {
    var year  = time.substr(0,4);
    var month = time.substr(4,2) - 1;
    var day   = time.substr(6,2);
    var hour  = time.substr(8,2);
    var min   = time.substr(10,2);

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


function toTimeString(date) {
    var year  = date.getFullYear();
    var month = date.getMonth() + 1;
    var day   = date.getDate();
    var hour  = date.getHours();
    var min   = date.getMinutes();

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

    return ("" + year + month + day + hour + min)
}


function getMonthInterval(time1,time2) {
    var date1 = toTimeObject(top.replace(time1,DATE_PIPE_STR,''));
    var date2 = toTimeObject(top.replace(time2,DATE_PIPE_STR,''));

    var years  = date2.getFullYear() - date1.getFullYear();
    var months = date2.getMonth() - date1.getMonth();
    var days   = date2.getDate() - date1.getDate();

    return (years * 12 + months + (days >= 0 ? 0 : -1) );
}


function getDayInterval(time1,time2) {
    var date1 = toTimeObject(top.replace(time1,DATE_PIPE_STR,''));
    var date2 = toTimeObject(top.replace(time2,DATE_PIPE_STR,''));
    var day   = 1000 * 3600 * 24;

    return parseInt((date2 - date1) / day, 10);
}


function getHourInterval(time1,time2) {
    var date1 = toTimeObject(top.replace(time1,DATE_PIPE_STR,''));
    var date2 = toTimeObject(top.replace(time2,DATE_PIPE_STR,''));
    var hour  = 1000 * 3600;

    return parseInt((date2 - date1) / hour, 10);
}


function addMonth(dt, term) {
  var date = toTimeObject(dt);

  var years  = date.getFullYear();
  var months = date.getMonth() + eval(term);
  var days   = 0;
  if(eval(term)>0)  {
    days   = date.getDate() - 1;
  }
  else  {
    days   = date.getDate() + 1;
  }

  timeObj = new Date(years,months,days);
  return toTimeString(timeObj).substring(0,dt.length);

}


function addDay(dt, term) {
  var date = toTimeObject(dt);

  var years  = date.getFullYear();
  var months = date.getMonth();
  var days   = days   = date.getDate() + term;

  timeObj = new Date(years,months,days);
  return toTimeString(timeObj).substring(0,dt.length);
}


function addWeek(dt, term)  {
  return addDay(dt, term*7);
}


function getNumber(valStr)  {
  var valStr;
  var valNum;

  valStr = valStr.toString().replace(/\,| /g,'');
  valNum = eval(new Number(valStr));
  if ( isNaN(valNum) )  return 0;
  else  return valNum;
}


function getNumberRvs(valStr)  {
  var valStr;
  var valNum;

  if (chkFrameReverseFormat())  {
    valStr = valStr.toString().replace(/\.| /g,'');
  } else {
    valStr = valStr.toString().replace(/\,| /g,'');
  }

  valNum = eval(new Number(valStr));
  if ( isNaN(valNum) )  return 0;
  else  return valNum;
}


function setViewNumberData( data, addData ) {
  if(addData==null) {
    addData = '';
  }

  if(getNumber(data)==0) {
    return addData;
  }
  else  {
    return data
  }
}


function replace(fullS,oldS,newS) {
  
  if(newS==null)  {
    newS = '';
  }
  if(oldS==null)  {
    if (!isEng) {
      alert('replace을 잘못사용하셨습니다.');
    }
    return;
  }
  else  {
    fullS = fullS.split(oldS).join(newS);
  }
  return fullS
}


function getCcy2Symbol(ccy, nacode) {

  if(typeof(nacode)=='undefined') {
    nacode = "JP";
  }
  if(nacode == "JP") {
    var ccylist=new Array("JPY","USD","KRW","EUR","GBP");
    var Symbol =new Array("￥" ,"U$" ,"￦" ,"€" ,"￡");

    ccy = trim(ccy);

    for(i=0;i<ccylist.length;i++) {
      if(ccy == ccylist[i]) {
      ccy = Symbol[i];
      break;
      }
    }
  }

  return ccy;
}


function chkAccBrCD(obj,nacode) {
  if(typeof(nacode)=='undefined') {
    nacode = "JP";
  }

  if(nacode != '') {

    if(typeof(obj) != 'undefined') {
      varAcc = obj.value;

      if(varAcc.length > 5) {
        accBrCode = varAcc.substring(3,6);

        if(nacode == 'JP' && accBrCode == '912') {
          alert(top.getJsLabel('BKM_00742'));
          obj.select();
          return false;
        } else {
          return true;
        }
      }
    } else {
    alert('[SG]Script Error : Obj unndefined!');
      return false;
    }
  }
  return true;
}


  function getNaCurrencyType(nacode) {
    if(nacode == "ID") {
      return 1;
    }
    else  {
      return 0;
    }
  }


  function chkFrameReverseFormat() {
    try {
      if(typeof(window.top.wgmain) != 'undefined') {
        if(typeof(window.top.wgmain.admain) != 'undefined')  {
          return false;
        } else {
          return window.top.isReverseFormat();
        }
      } else {
        return window.opener.top.isReverseFormat();
      }
    } catch(e) {
      alert('역포멧 check 모듈 실행 중 에러 발생 역포멧을 사용하지 않습니다.');
      return false;
    }
  }

