// ±ÛÀÚ»ö
var COLOR_READONLY = '777777';
var COLOR_DELETE = 'FF3333';
var COLOR_TEXT = '333333';

// ³¯Â¥±¸ºÐÀÚ
var dateGuBun = '-';
// ³¯Â¥±¸ºÐÀÚ(Á¤±Ô½Ä) - ±¸ºÐÀÚ Á¦°Å¿¡ »ç¿ë
var dateGuBun2 = /\-/g;

// ¿ìÆí¹øÈ£, ÁÖ¹Î¹øÈ£, »ç¾÷ÀÚ¹øÈ£
var zipGuBun = '-';
// ±¸ºÐÀÚ(Á¤±Ô½Ä) - ±¸ºÐÀÚ Á¦°Å¿¡ »ç¿ë
var zipGuBun2 = /\-/g;

// ½Ã°£±¸ºÐÀÚ
var timeGuBun = ':';
// ½Ã°£±¸ºÐÀÚ(Á¤±Ô½Ä) - ±¸ºÐÀÚ Á¦°Å¿¡ »ç¿ë
var timeGuBun2 = /\:/g;

// ÇÊµå¿¡ focus°¬À»¶§ »ö
var onfocusBgColor = '#F8DFE8';
// ÇÊµå¿¡ ÀÌÀü »ö ´ã´Â Àü¿ªº¯¼ö
var beforeBgColor = '';

// ÀüÈ­¹øÈ£ ±ÔÄ¢
var reTel = /^(02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064|070|0505)([0-9]{3,4})([0-9]{4})$/;

// ÇÚµåÆù¹øÈ£ ±ÔÄ¢
var reSel = /^(010|011|016|017|018|019)([0-9]{3,4})([0-9]{4})$/;

// 1¡­12¿ùÀÇ ¸¶Áö¸·ÀÏ
var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

// 1ÀÏÀÇ milliseconds
var ONE_DAY = 1000*60*60*24;

var DATE_SIZE = 8;
var MONTH_SIZE = 6;
var TIME_SIZE = 4;
var TEL_SIZE = 12;
var SEL_SIZE = 11;
var REG_SIZE = 13;
var BIZ_SIZE = 10;
var ZIPCODE_SIZE = 6;

var REG_SIZE_FIRST = 6;
var REG_SIZE_SECOND = 7;

// ÀÔ·ÂÁ¦ÇÑ¹®ÀÚ
// ' " \
var RESTRICT_CHARS = /^(\'|\"|\\)$/g;

/*
 * ¼³  ¸í : HashMap
 * ÀÎÀÚ 1 :
 * ¸®ÅÏ°ª :
 */
function HashMap() {
  this.keys    = new Array();  // Å°¹è¿­
  this.values  = new Array();  // °ª¹è¿­

  /*
   * ¼³  ¸í : Å°¹è¿­À» ¸®ÅÏÇÑ´Ù.
   * ÀÎÀÚ 1 :
   * ¸®ÅÏ°ª : Å°¹è¿­
   */
  this.getKeys = function() {
    return this.keys;
  }

  /*
   * ¼³  ¸í : °ª¹è¿­À» ¸®ÅÏÇÑ´Ù.
   * ÀÎÀÚ 1 :
   * ¸®ÅÏ°ª : °ª¹è¿­
   */
  this.getValues = function() {
    return this.values;
  }

  /*
   * ¼³  ¸í : map¿¡ ÀúÀåµÈ ¸ðµç ¿ä¼Ò¸¦ »èÁ¦ÇÑ´Ù.
   * ÀÎÀÚ 1 :
   * ¸®ÅÏ°ª :
   */
  this.clear = function() {
    this.keys = null;
    this.values = null;
    this.keys = new Array();
    this.values = new Array();
  }

  /*
   * ¼³  ¸í : HashMapÀÇ Å©±â¸¦ ¸®ÅÏÇÑ´Ù.
   * ÀÎÀÚ 1 :
   * ¸®ÅÏ°ª : HashMapÀÌ Å©±â
   */
  this.size = function() {
    return this.keys.length;
  }

  /*
   * ¼³  ¸í : HashMapÀÌ ºñ¾îÀÖ´ÂÁö Ã¼Å©ÇÑ´Ù.
   * ÀÎÀÚ 1 :
   * ¸®ÅÏ°ª : HashMapÀÌ ºñ¾îÀÖÀ¸¸é true, ¾Æ´Ï¸é false
   */
  this.isEmpty = function() {
    return (this.keys.length == 0) ? true : false;
  }

  /*
   * ¼³  ¸í : HashMap¿¡ ÇØ´çÅ°·Î °ªÀ» ³Ö´Â´Ù.
   * ÀÎÀÚ 1 : key - Å°
   * ÀÎÀÚ 2 : value - °ª
   * ¸®ÅÏ°ª :
   */
  this.put = function(key, value) {
    var i = 0;
    for (i=0; i<this.keys.length; i++) {
      if (this.keys[i] == key) {
        break;
      }
    } // for

    this.keys[i]  = key;
    this.values[i] = value;
  }

  /*
   * ¼³  ¸í : HashMap¿¡¼­ Å°¿¡ ÇØ´çÇÏ´Â °ªÀ» ¸®ÅÏÇÑ´Ù.¾øÀ¸¸é(null)
   * ÀÎÀÚ 1 : key - Å°
   * ¸®ÅÏ°ª : Å°¿¡ ÇØ´çÇÏ´Â °ª
   */
  this.get = function(key) {
    var value = null;

    for (var i=0; i<this.keys.length; i++) {
      if (this.keys[i] == key) {
        value = this.values[i];
        break;
      }
    } // for

    return value;
  }

  /*
   * ¼³  ¸í : HashMap¿¡¼­ Å°¿¡ ÇØ´çÇÏ´Â ¿ä¼Ò¸¦ Á¦°ÅÇÑ´Ù.
   * ÀÎÀÚ 1 : key - Å°
   * ¸®ÅÏ°ª :
   */
  this.remove = function(key) {
    var value = null;

    var i = 0;
    for (i=0; i<this.keys.length; i++) {
      if (this.keys[i] == key) {
        value = this.values[i];
        break;
      }
    } // for

    if (value != null) {
        // ¸¶Áö¸· ¿ä¼Ò°¡ ¾Æ´Ò ¶§¿¡¸¸ HashMapÀ» Á¤¸®ÇÑ´Ù.
        if (i+1 != this.keys.length) {
          for (var j=i+1; j<this.keys.length; j++) {
            this.keys[j-1] = this.keys[j];
            this.values[j-1] = this.values[j];
          }
        }

        // Å° ¹è¿­°ú °ª ¹è¿­ÀÇ ¸¶Áö¸· ¿ä¼Ò Á¦°Å
      this.keys.pop();
      this.values.pop();
    }
  }

  /*
   * ¼³  ¸í : HashMap¿¡ ÀúÀåµÈ ³»¿ëÀ» º»´Ù.
   */
  this.showContents = function() {
    var contents = '';
    for (var i=0; i<this.keys.length; i++) {
      contents += '[' + this.keys[i] + ' : ' + this.values[i] + ']\n';
    }
    return contents;
  }
}
// ÀÌ¹ÌÁö swap °ü·Ã
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr;
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
    for(i=0; i<a.length; i++)
    if (a[i].indexOf('#')!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document;
  if((p=n.indexOf('?'))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n];
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++)
   x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array;
  for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null && !x.disabled){document.MM_sr[j++]=x;
   if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/*
 * ¼³  ¸í : È­¸é¿¡ ÇÊ¿äÇÑ ÀÌ¹ÌÁö¸¦ preloading ÇÑ´Ù.
 */
function preloadImages() {
  // Åø¹Ù ÀÌ¹ÌÁö ·Îµù
  MM_preloadImages(
    "/image/menu/dat.gif"
    ,"/image/menu/left/left_01.gif"
    ,"/image/menu/left/left_02.gif"
    ,"/image/menu/left/left_03.gif"
    ,"/image/menu/left/left_04.gif"
    ,"/image/menu/left/left_05.gif"
    ,"/image/menu/left/left_06.gif"
    ,"/image/menu/01tax_01.gif"
    ,"/image/menu/01tax_0101.gif"
    ,"/image/menu/01tax_0102.gif"
    ,"/image/menu/01tax_0103.gif"
    ,"/image/menu/01tax_0104.gif"
    ,"/image/menu/01tax_0105.gif"
    ,"/image/menu/01tax_0106.gif"
    ,"/image/menu/01tax_02.gif"
    ,"/image/menu/01tax_0201.gif"
    ,"/image/menu/01tax_0202.gif"
    ,"/image/menu/01tax_03.gif"
    ,"/image/menu/01tax_0301.gif"
    ,"/image/menu/01tax_0302.gif"
    ,"/image/menu/01tax_04.gif"
    ,"/image/menu/01tax_0401.gif"
    ,"/image/menu/01tax_0402.gif"
    ,"/image/menu/01tax_0403.gif"
    ,"/image/menu/01tax_0404.gif"
    ,"/image/menu/01tax_0405.gif"
    ,"/image/menu/01tax_0406.gif"
    ,"/image/menu/01tax_0407.gif"
    ,"/image/menu/01tax_0408.gif"
    ,"/image/menu/02info_01.gif"
    ,"/image/menu/02info_02.gif"
    ,"/image/menu/02info_03.gif"
    ,"/image/menu/02info_04.gif"
    ,"/image/menu/02info_06.gif"
    ,"/image/menu/02info_07.gif"
    ,"/image/menu/02info_08.gif"
    ,"/image/menu/02info_09.gif"
    ,"/image/menu/03data_01.gif"
    ,"/image/menu/03data_02.gif"
    ,"/image/menu/04board_01.gif"
    ,"/image/menu/04board_02.gif"
    ,"/image/menu/04board_03.gif"
    ,"/image/menu/04board_04.gif"
    ,"/image/menu/04board_05.gif"
    ,"/image/menu/05inter_01.gif"
    ,"/image/menu/05inter_0101.gif"
    ,"/image/menu/05inter_010101.gif"
    ,"/image/menu/05inter_010102.gif"
    ,"/image/menu/05inter_0102.gif"
    ,"/image/menu/05inter_0103.gif"
    ,"/image/menu/05inter_010301.gif"
    ,"/image/menu/05inter_010302.gif"
    ,"/image/menu/05inter_010303.gif"
    ,"/image/menu/05inter_010304.gif"
    ,"/image/menu/05inter_010305.gif"
    ,"/image/menu/05inter_0104.gif"
    ,"/image/menu/05inter_010401.gif"
    ,"/image/menu/05inter_010402.gif"
    ,"/image/menu/05inter_0105.gif"
    ,"/image/menu/05inter_0106.gif"
    ,"/image/menu/05inter_02.gif"
    ,"/image/menu/05inter_0201.gif"
    ,"/image/menu/05inter_0202.gif"
    ,"/image/menu/05inter_0203.gif"
    ,"/image/menu/05inter_0204.gif"
    ,"/image/menu/05inter_03.gif"
    ,"/image/menu/05inter_0301.gif"
    ,"/image/menu/05inter_0302.gif"
    ,"/image/menu/05inter_0303.gif"
    ,"/image/menu/05inter_0304.gif"
    ,"/image/menu/05inter_0305.gif"
    ,"/image/menu/05inter_030501.gif"
    ,"/image/menu/05inter_030502.gif"
    ,"/image/menu/06member_01.gif"
    ,"/image/menu/06member_02.gif"
    ,"/image/menu/06member_03.gif"
    ,"/image/menu/06member_04.gif"
    ,"/image/menu/06member_05.gif"
    ,"/image/menu/06member_06.gif"
    ,"/image/menu/06member_07.gif"
    ,"/image/menu/06member_08.gif"
    ,"/image/menu/01tax_01_o.gif"
    ,"/image/menu/01tax_0101_o.gif"
    ,"/image/menu/01tax_0102_o.gif"
    ,"/image/menu/01tax_0103_o.gif"
    ,"/image/menu/01tax_0104_o.gif"
    ,"/image/menu/01tax_0105_o.gif"
    ,"/image/menu/01tax_0106_o.gif"
    ,"/image/menu/01tax_02_o.gif"
    ,"/image/menu/01tax_0201_o.gif"
    ,"/image/menu/01tax_0202_o.gif"
    ,"/image/menu/01tax_03_o.gif"
    ,"/image/menu/01tax_0301_o.gif"
    ,"/image/menu/01tax_0302_o.gif"
    ,"/image/menu/01tax_04_o.gif"
    ,"/image/menu/01tax_0401_o.gif"
    ,"/image/menu/01tax_0402_o.gif"
    ,"/image/menu/01tax_0403_o.gif"
    ,"/image/menu/01tax_0404_o.gif"
    ,"/image/menu/01tax_0405_o.gif"
    ,"/image/menu/01tax_0406_o.gif"
    ,"/image/menu/01tax_0407_o.gif"
    ,"/image/menu/01tax_0408_o.gif"
    ,"/image/menu/02info_01_o.gif"
    ,"/image/menu/02info_02_o.gif"
    ,"/image/menu/02info_03_o.gif"
    ,"/image/menu/02info_04_o.gif"
    ,"/image/menu/02info_06_o.gif"
    ,"/image/menu/02info_07_o.gif"
    ,"/image/menu/02info_08_o.gif"
    ,"/image/menu/02info_09_o.gif"
    ,"/image/menu/03data_01_o.gif"
    ,"/image/menu/03data_02_o.gif"
    ,"/image/menu/04board_01_o.gif"
    ,"/image/menu/04board_02_o.gif"
    ,"/image/menu/04board_03_o.gif"
    ,"/image/menu/04board_04_o.gif"
    ,"/image/menu/04board_05_o.gif"
    ,"/image/menu/05inter_01_o.gif"
    ,"/image/menu/05inter_0101_o.gif"
    ,"/image/menu/05inter_010101_o.gif"
    ,"/image/menu/05inter_010102_o.gif"
    ,"/image/menu/05inter_0102_o.gif"
    ,"/image/menu/05inter_0103_o.gif"
    ,"/image/menu/05inter_010301_o.gif"
    ,"/image/menu/05inter_010302_o.gif"
    ,"/image/menu/05inter_010303_o.gif"
    ,"/image/menu/05inter_010304_o.gif"
    ,"/image/menu/05inter_010305_o.gif"
    ,"/image/menu/05inter_0104_o.gif"
    ,"/image/menu/05inter_010401_o.gif"
    ,"/image/menu/05inter_010402_o.gif"
    ,"/image/menu/05inter_0105_o.gif"
    ,"/image/menu/05inter_0106_o.gif"
    ,"/image/menu/05inter_02_o.gif"
    ,"/image/menu/05inter_0201_o.gif"
    ,"/image/menu/05inter_0202_o.gif"
    ,"/image/menu/05inter_0203_o.gif"
    ,"/image/menu/05inter_0204_o.gif"
    ,"/image/menu/05inter_03_o.gif"
    ,"/image/menu/05inter_0301_o.gif"
    ,"/image/menu/05inter_0302_o.gif"
    ,"/image/menu/05inter_0303_o.gif"
    ,"/image/menu/05inter_0304_o.gif"
    ,"/image/menu/05inter_0305_o.gif"
    ,"/image/menu/05inter_030501_o.gif"
    ,"/image/menu/05inter_030502_o.gif"
    ,"/image/menu/06member_01_o.gif"
    ,"/image/menu/06member_02_o.gif"
    ,"/image/menu/06member_03_o.gif"
    ,"/image/menu/06member_04_o.gif"
    ,"/image/menu/06member_05_o.gif"
    ,"/image/menu/06member_06_o.gif"
    ,"/image/menu/06member_07_o.gif"
    ,"/image/menu/06member_08_o.gif"
    ,"/image/tabbox_title1.gif"
    ,"/image/tabbox_title1r.gif"
    ,"/image/tabbox_title2.gif"
    ,"/image/tabbox_title2r.gif"
  );
}

/*
 * ¼³  ¸í : °¢ ÇÊµåÀÇ event¸¦ ¼³Á¤ÇÑ´Ù.
 *         buttonÀÇ cursor¸¦ ¼³Á¤ÇÑ´Ù.
 */
function setEvent() {
    var inputFields = document.getElementsByTagName("input");
    var selectFields = document.getElementsByTagName("select");
    var textFields = document.getElementsByTagName("textarea");

    var field = null;
    for(var i = 0; i < inputFields.length; i++) {
        field = inputFields[i];
        if (field.type == 'button') {
          field.style.cursor = 'hand';
          continue;
        }
        if (isField(field)) {
          detachEvents(field);  // ÀÌº¥Æ® Á¦°Å
          attachEvents(field);   // ÀÌº¥Æ® ¼¼ÆÃ
        }
    }

    for(var i = 0; i < selectFields.length; i++) {
        field = selectFields[i];
        if (isField(field)) {
          detachEvents(field);  // ÀÌº¥Æ® Á¦°Å
          attachEvents(field);   // ÀÌº¥Æ® ¼¼ÆÃ
        }
    }
    for(var i = 0; i < textFields.length; i++) {
        field = textFields[i];
        if (isField(field)) {
          detachEvents(field);  // ÀÌº¥Æ® Á¦°Å
          attachEvents(field);   // ÀÌº¥Æ® ¼¼ÆÃ
        }
    }
}

/*
 * ¼³  ¸í : document¸¦ ÃÊ±âÈ­ÇÑ´Ù.
 */
function documentInit() {
  //document.focus();
  document.body.focus();
  //document.body.detachEvent('onkeypress', checkHotKey);
  //document.body.attachEvent('onkeypress', checkHotKey);
}

/*
 * ¼³  ¸í : false¸¦ ¹ÝÈ¯ÇÑ´Ù. attachEvent¿¡¼­ »ç¿ë.
 * ¸®ÅÏ°ª : boolean - false
 */
function returnFalse() {
  return false;
}

function init() {

}

/*
 * ¼³  ¸í : È­¸éÀ» ÃÊ±âÈ­ÇÑ´Ù.
 *          È­¸é °´Ã¼¿¡ ÀÌº¥Æ®¸¦ ¼¼ÆÃÇÑ´Ù.
 *          È­¸éÀÇ Å©±â¸¦ Á¶Á¤ÇÑ´Ù.
 */
function initialize() {
  //preloadImages();      // ÀÌ¹ÌÁö preload
  setEvent();           // event¸¦ ¼³Á¤ÇÑ´Ù.
  //documentInit();       // document ÃÊ±âÈ­
  init();               // °³¹ßÀÚ Á¤ÀÇ(°¢ È­¸éÀÇ ÃÊ±â·ÎÁ÷)
}

/*
 * ¼³  ¸í : È­¸é ÇÊµå¿¡ ºÙÀº ±âº» ÀÌº¥Æ®¸¦ Á¦°ÅÇÑ´Ù.
 * ÀÎÀÚ 1 : field - ÇÊµå°´Ã¼
 * ¸®ÅÏ°ª :
 */
function detachEvents(field) {
  field.detachEvent('onkeyup', autoTab);
  field.detachEvent('onkeyup', enterSearch);
  field.detachEvent('onkeyup', enterExecute);
  field.detachEvent('onkeydown', preventBackSpace);
  field.detachEvent('onkeypress', checkChar);
  field.detachEvent('onkeypress', onlyCode);
  field.detachEvent('onkeypress', onlyNum);
  field.detachEvent('onkeypress', checkNum);
  field.detachEvent('onfocus', currencyClear);
  field.detachEvent('onfocus', removeDate);
  field.detachEvent('onfocus', removeTime);
  field.detachEvent('onfocus', removeRegNum);
  field.detachEvent('onfocus', removeLawRegNum);
  field.detachEvent('onfocus', focusBgColor);
  field.detachEvent('onblur', upperCase);
  field.detachEvent('onblur', currency);
  field.detachEvent('onblur', formatDate);
  field.detachEvent('onblur', formatTime);
  field.detachEvent('onblur', formatRegNum);
  field.detachEvent('onblur', formatTelNum);
  field.detachEvent('onblur', formatSelNum);
  field.detachEvent('onblur', blurBgColor);
  field.detachEvent('onblur', checkLength);
}

/*
 * ¼³  ¸í : È­¸é ÇÊµåÀÇ ¼Ó¼º¿¡ ÇØ´çÇÏ´Â ÀÌº¥Æ® ¼¼ÆÃÇÑ´Ù.
 * ÀÎÀÚ 1 : field - ÇÊµå°´Ã¼
 * ¸®ÅÏ°ª :
 */
function attachEvents(field) {
  field.attachEvent('onkeyup', autoTab);

  if(field.tagName=="SELECT") {
    field.attachEvent('onkeydown',preventBackSpace);
  }

  if (field.isReadOnly == 'Y') {
    if (field.tagName == 'SELECT') {
      field.disabled = true;
    }
    else {
      field.readOnly = true;
    }
    field.tabIndex = -1;
    field.style.color = COLOR_READONLY;  // readonly Ç¥½Ã ±ÛÀÚ»ö
  } else {
    field.attachEvent('onfocus', focusBgColor);
    field.attachEvent('onblur', blurBgColor);

    if (field.isCode == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyCode);
      field.attachEvent('onblur', upperCase);
    } else if (field.isOnlyCode == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyCode);
    } else if (field.isAlpha == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyAlpha);
    } else if (field.isUpper == 'Y') {
      field.attachEvent('onblur', upperCase);
    } else if (field.isOnlyNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
    } else if (field.isNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', checkNum);
      field.attachEvent('onfocus', currencyClear);
      field.attachEvent('onblur', currency);
    } else if (field.isNumP == 'Y') {
      field.style.imeMode = 'disabled';
      if(field.value == '') field.value = 0;
      field.attachEvent('onkeypress', checkNumP);
      field.attachEvent('onfocus', currencyClear);
      field.attachEvent('onblur', currency);
    } else if (field.isDate == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeDate);
      field.attachEvent('onblur', formatDate);
      field.maxLength=DATE_SIZE;
   } else if(field.isMonth == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeDate);
      field.attachEvent('onblur', formatDate);
      field.maxLength=MONTH_SIZE;
    } else if (field.isTime == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeTime);
      field.attachEvent('onblur', formatTime);
      field.maxLength=TIME_SIZE;
    } else if (field.isTelNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatTelNum);
      field.maxLength=TEL_SIZE;
    } else if (field.isSelNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatSelNum);
      field.maxLength=SEL_SIZE;
    } else if (field.isRegNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatRegNum);
      field.maxLength=REG_SIZE;
    } else if (field.isBizNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatBizNum);
      field.maxLength=BIZ_SIZE;
    } else if (field.isBubInNo == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeLawRegNum);
      field.attachEvent('onblur', formatLawRegNum);
      field.maxLength=REG_SIZE;
    } else if (field.isOnlyRegNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatOnlyRegNum);
      field.maxLength=REG_SIZE;
    } else if (field.isOnlyCorpNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatOnlyCorpNum);
      field.maxLength=REG_SIZE;
    } else if (field.isOnlyBizNum == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatOnlyBizNum);
      field.maxLength=BIZ_SIZE;
    } else if (field.isZipCode == 'Y') {
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatZipCode);
      field.maxLength=ZIPCODE_SIZE;
    } else if (field.isRestrictChar == 'Y') {
        field.attachEvent('onkeypress', checkChar);
    } else if (field.isRestrictChar2 == 'Y') {
        field.attachEvent('onkeypress', checkChar2);
    } else if (field.isRegNumFirst == 'Y') {	//2009.04.22 ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸® Ã¼Å© Ãß°¡ - ±ÇÁ¤ÈÆ
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatOnlyRegNumFirst);
      field.maxLength=REG_SIZE_FIRST;
    } else if (field.isRegNumSecond == 'Y') {	//2009.04.22 ÁÖ¹Îµî·Ï¹øÈ£ µÞÀÚ¸® Ã¼Å© Ãß°¡ - ±ÇÁ¤ÈÆ
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatOnlyRegNumSecond);
      field.maxLength=REG_SIZE_SECOND;
    } else if (field.isCorpNumFirst == 'Y') {	//2009.04.22 ¹ýÀÎ¹øÈ£ ¾ÕÀÚ¸® Ã¼Å© Ãß°¡ - ±ÇÁ¤ÈÆ
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatOnlyCorpNumFirst);
      field.maxLength=REG_SIZE_FIRST;
    } else if (field.isCorpNumSecond == 'Y') {	//2009.04.22 ¹ýÀÎ¹øÈ£ µÞÀÚ¸® Ã¼Å© Ãß°¡ - ±ÇÁ¤ÈÆ
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNum);
      field.attachEvent('onfocus', removeRegNum);
      field.attachEvent('onblur', formatOnlyCorpNumSecond);
      field.maxLength=REG_SIZE_SECOND;
    } else if (field.isNumWithPeriod == 'Y') {	//2009.07.06 ¼ýÀÚ ¼Ò¼öÁ¡ÀÔ·Â  - ±ÇÁ¤ÈÆ
      field.style.imeMode = 'disabled';
      field.attachEvent('onkeypress', onlyNumWithPeriod);
      field.attachEvent('onblur', formatDecimalPoint);
    }

    if(field.isLengthCheck == 'Y') {
        field.attachEvent('onblur', checkLength);
    }

    if(field.style.imeMode != 'disabled') {
      if (field.isKor == 'Y') {
        field.style.imeMode = 'active';
      } else {
        field.style.imeMode = 'inactive';
      }
    }

    if (field.isEntSearch == 'Y') {
      field.attachEvent('onkeyup', enterSearch);
    }

    if (field.isEntExecute == 'Y') {
      field.attachEvent('onkeyup', enterExecute);
    }

  } // not readonly

} // attachEvents(field)

/*
 * ¼³  ¸í : document¿¡¼­ ÇØ´çÀÌ¸§ÀÇ ÇÊµå°´Ã¼ / ÇØ´ç idÀÇ element¸¦ ¸®ÅÏÇÑ´Ù.
 * ÀÎÀÚ 1 : name - ÇÊµå¸í(ÀüÃ¼ÇÊµå¸í)
 * ¸®ÅÏ°ª : documentÀÇ ÇÊµå°´Ã¼
 */
function getField(name) {

  if(name==undefined) {
    return null;
  }

  var field = null;
  field = document.getElementById(name);

  return field;
}

/*
 * ¼³  ¸í : ÀÌº¥Æ®°¡ ¹ß»ýÇÑ ÇÊµå°´Ã¼¸¦ ¸®ÅÏÇÑ´Ù.
 * ÀÎÀÚ 1 :
 * ¸®ÅÏ°ª : ÇÊµå°´Ã¼
 */
function getEventField() {
  return window.event.srcElement;
}

/*
 * ¼³  ¸í : ÇÊµå·Î »ç¿ëÇÒ °´Ã¼ÀÎÁö ¿©ºÎ¸¦ ¸®ÅÏÇÑ´Ù.
 *          <INPUT>, <SELECT>, <TEXTAREAR>Áß nameÀÌ ÀÖ´Â°Í
 * ÀÎÀÚ 1 : field - ÇÊµå°´Ã¼
 * ¸®ÅÏ°ª : boolean - true ¶Ç´Â false
 */
function isField(field) {
  if(field == null || field == undefined) return false;

  if ((field.tagName == 'INPUT' || field.tagName == 'SELECT' ||
    field.tagName == 'TEXTAREA') && field.name != undefined) {
    return true;
  }

  return false;
}

/*
 * ¼³  ¸í : ÇÊµåÀÇ background»öÀ» ¹Ù²Û´Ù.
 *          onfocus ÀÌº¥Æ®¿¡ »ç¿ë.
 * ÀÎÀÚ 1 :
 * ¸®ÅÏ°ª :
 */
function focusBgColor() {
  var field = event.srcElement;
  if(field.tagName!="SELECT") {
	  beforeBgColor = field.style.backgroundColor;
	  field.style.backgroundColor = onfocusBgColor;
  }
}


/*
 * ¼³  ¸í : ÇÊµåÀÇ background»öÀ» ¿ø·¡»öÀ¸·Î ¹Ù²Û´Ù.
 *          onblur ÀÌº¥Æ®¿¡ »ç¿ë.
 * ÀÎÀÚ 1 :
 * ¸®ÅÏ°ª :
 */
function blurBgColor() {
  var field = event.srcElement;
  field.style.backgroundColor = beforeBgColor;
}

function setCheckValue(obj, value) {
  var len = obj.length;
  for (var i=0; i<len; i++) {
    var rad = obj[i];
    if (rad.value == value) {
      rad.checked = true;
      rad.ivalue = '1';
    } else {
      rad.ivalue = '0';
    }
  }
}


/*
 * ¼³  ¸í : document ÀÖ´Â ÇØ´ç nameÀÇ ÇÊµå¿¡ value¸¦ ¾ò¾î¿Â´Ù.
 * ÀÎ  ÀÚ : name - ÇÊµå¸í
 * ¸®ÅÏ°ª : ÇØ´ç nameÀÇ ÇÊµåÀÇ value.
 */
function getValue(name) {
    var field = getField(name);
    if(!isField(field)) return null;
    else return clearMask(field);
}



/*
 * ¼³  ¸í : document ÀÖ´Â ÇØ´ç nameÀÇ ÇÊµå¿¡ value¸¦ ¼¼ÆÃÇÑ´Ù.
 *          value¸¦ ¼¼ÆÃÇÒ¶§ ÇØ´ç ÇÊµåÀÇ ¼Ó¼º¿¡ ¸Â´Â formatÀ» ÇÑ´Ù.
 * ÀÎÀÚ 1 : name - ÇÊµå¸í
 * ÀÎÀÚ 2 : value - °ª
 * ¸®ÅÏ°ª :
 */


function setValue(name, value) {
  var field = document.getElementById(name);
  if (field == undefined) {
    return;
  }

  var len = field.length;
  if (len && field.tagName != 'SELECT') {
    setCheckValue(field, value);
    return;
  } else {
    if (field.type == 'checkbox') {                              // À¯È¿Á¾ ¼öÁ¤ 2006/09/01
//    if (field.type == 'radio' || field.type == 'checkbox') {
      if (field.value == value) {
        field.checked = true;
        field.ivalue = '1';
        return;
      } else {
        field.checked = false;
        field.ivalue = '0';
        return;
      }
    }

  }

  if (field.isCode == 'Y') {
    value = value.toUpperCase();
  } else if (field.isUpper == 'Y') {
    value = value.toUpperCase();
  } else if (field.isDate == 'Y') {
    if (field.isMonth == "Y") {
      value = plusMonth(value);
    }
    else {
      value = plusDate(value);
    }
  } else if (field.isTime == 'Y') {
    value = plusTime(value);
  } else if (field.isNum == 'Y') {
    value = plusComma(value, field.format);
  } else if (field.isZipCode == 'Y') {
    value = plusZip(value);
  } else if (field.isRegNum == 'Y') {
    value = plusRegNum(value);
  } else if (field.isBubInNo == 'Y') {
    value = plusLawRegNum(value);
  } else if (field.isTelNum == 'Y') {
    value = plusTelNum(value);
  } else if (field.isSelNum == 'Y') {
    value = plusSelNum(value);
  } else if (field.isOnlyRegNum == 'Y') {
    value = plusRegNum(value);
  } else if (field.isOnlyCorpNum == 'Y') {
    value = plusRegNum(value);
  } else if (field.isOnlyBizNum == 'Y') {
    value = plusSaUpNum(value);
  }

  field.value  = value;
  field.ivalue = value;
  field.zvalue = value;
}

/*
 * ¼³  ¸í : ÇØ´ç ÇÊµåÀÇ formatÀ» Á¦°ÅÇÑ value¸¦ ¸®ÅÏÇÑ´Ù.
 *          submitÇÏ±â Àü¿¡ »ç¿ëÇÔ.
 * ÀÎÀÚ 1 : field - ÇÊµå°´Ã¼
 * ¸®ÅÏ°ª : formatÀÌ Á¦°ÅµÈ °ª
 */
function clearMask(field) {
  if (field.value == undefined) {
    return '';
  }

  if (field.type == 'radio' || field.type == 'checkbox') {
    if (field.checked) {
      return field.value;
    } else {
      return '';
    }
  }

  if (field.isDate == 'Y') {
    return rmDate(field.value);
  }
  if (field.isTime == 'Y') {
    return rmTime(field.value);
  }
  else if (field.isNum == 'Y') {
    return rmNum(field.value);
  }
  else if (field.isNumP == 'Y') {
    return rmNum(field.value);
  }
  else if (field.isZipCode == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isRegNum == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isBubInNo == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isTelNum == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isSelNum == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isMatNm == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isMatType == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isOnlyRegNum == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isOnlyBizNum == 'Y') {
    return rmFormat(field.value);
  }
  else if (field.isOnlyCorpNum == 'Y') {
    return rmFormat(field.value);
  }

  return field.value;
}


/*
 * ¼³  ¸í : ÇØ´ç ÇÊµåÀÇ formatÀ» Á¦°ÅÇÑ ivalue¸¦ ¸®ÅÏÇÑ´Ù.
 *          submitÇÏ±â Àü¿¡ »ç¿ëÇÔ.
 * ÀÎÀÚ 1 : field - ÇÊµå°´Ã¼
 * ¸®ÅÏ°ª : formatÀÌ Á¦°ÅµÈ °ª
 */
function clearMaskI(field) {
  if (field.ivalue == undefined) {
    return '';
  }

  if (field.type == 'radio' || field.type == 'checkbox') {
    //if (field.checked) {
      return field.ivalue;
    //} else {
    //  return '';
    //}
  }


  if (field.isDate == 'Y') {
    return rmDate(field.ivalue);
  }
  if (field.isTime == 'Y') {
    return rmTime(field.ivalue);
  }
  else if (field.isNum == 'Y') {
    return rmNum(field.ivalue);
  }
  else if (field.isZip == 'Y') {
    return rmFormat(field.ivalue);
  }
  else if (field.isRegNum == 'Y') {
    return rmFormat(field.ivalue);
  }
  else if (field.isBubInNo == 'Y') {
    return rmFormat(field.ivalue);
  }
  else if (field.isTelNum == 'Y') {
    return rmFormat(field.ivalue);
  }
  else if (field.isSelNum == 'Y') {
    return rmFormat(field.ivalue);
  }

  return field.ivalue;
}

String.prototype.lengthb = function() {
    var result = 0;
    for (var i = 0; i < this.length; i++) {
        var c = this.charAt(i);
        var enc = encodeURIComponent(c);
        result++;
        if (enc.length > 3) result++;
    }
    return result;
}