<!--
/*
 * $Id: util.js,v 1.1 2006/04/26 03:38:46 naoek Exp $
 *
 * Copyright (c) 2003 by NYTG Corp.
 * All rights reserved.
 * 
 * This software is the confidential and proprietary information
 * of NYTG Corp("Confidential Information").  You
 * shall not disclose such Confidential Information and shall use
 * it only in accordance with the terms of the license agreement
 * you entered into with NYTG Corp.
 */

/**********************************************************************
 dp util
***********************************************************************/

/* ¹®ÀÚ¿­ byte Å©±â °è»ê */
function getStringBytes(value) {
  var size = 0;

  for (i = 0; i < value.length; i++) {
    if (value.charCodeAt(i) > 127) {
      size += 2;
    } else {
      size += 1;
    }
  }
  return size;
}

/* date formatÀ» yyyyMM ¿¡¼­ yyyy-MM À¸·Î ¹Ù²ãÁØ´Ù. */
function setMonthString(obj) {
  if ((obj.value.length == 4) && event.keyCode != 8) {
    obj.value += "-";
  } else if (obj.value.length == 5) {
    if (obj.value.lastIndexOf("-") == 4) {
      obj.value = obj.value.substring(0, 4);
    } else {
      obj.value = obj.value.substring(0, 4) + "-" + obj.value.substring(4);
    }
  }
}

/* date formatÀ» yyyyMMdd ¿¡¼­ yyyy-MM-dd À¸·Î ¹Ù²ãÁØ´Ù. */
function setDateString(obj) {
  if ((obj.value.length == 4 || obj.value.length == 7) && event.keyCode != 8) {
    obj.value += "-";
  } else if (obj.value.length == 5) {
    if (obj.value.lastIndexOf("-") == 4) {
      obj.value = obj.value.substring(0, 4);
    } else {
      obj.value = obj.value.substring(0, 4) + "-" + obj.value.substring(4);
    }
  } else if (obj.value.length == 8) {
    if (obj.value.lastIndexOf("-") == 7) {
      obj.value = obj.value.substring(0, 7);
    } else {
      obj.value = obj.value.substring(0, 7) + "-" + obj.value.substring(7);
    }
  }
}

/* hhmm (½Ã°£ºÐ) Çü½ÄÀ» hh:mm(½Ã°£:ºÐ) Çü½ÄÀ¸·Î ¸ÂÃçÁØ´Ù.*/
function setTimeString(obj) {
  if (obj.value.length == 2 && event.keyCode != 8) {
    obj.value += ":";
  } else if (obj.value.length == 3) {
    obj.value = obj.value.substring(0, 2);
  }
}

/* ¹®ÀÚ¿­¿¡¼­ Àç±Í¿ë¹ýÀ» »ç¿ëÇØ¼­ Æ¯Á¤±¸¹®(oldStr)À» »õ·Î¿î ±¸¹®(newStr)À¸·Î ±³Ã¼ÇÑ´Ù. */
function replaceString(originalStr, oldStr, newStr) {
  var result = "";
  var index = originalStr.indexOf(oldStr);

  if (index != -1) {
    result = result + originalStr.substring(0, index) + newStr
           + replaceString(originalStr.substring(index + oldStr.length), oldStr, newStr);
  } else {
    result = originalStr;
  }

  return result;
}

function compare(value1, value2) {
  if (value1 < value2) return -1;
  else if (value1 > value2) return 1;
  else return 0;
}

/* ¹è¿­ values¿¡¼­ °¡Àå Å«°ªÀ» ¸®ÅÏ */
function maxValue(values) {
  if (values.length = 0) {
    return 0;
  } else {
    values.sort(compare); // values¸¦ ³»¸² Â÷¼øÀ¸·Î Á¤·Ä
    return values[values.length - 1];
  }
}

/* ¹è¿­ values¿¡¼­ °¡Àå ÀÛÀº°ªÀ» ¸®ÅÏ */
function minValue(values) {
  if (values.length == 0) {
    return 0;
  } else {
    values.sort(compare); // values¸¦ ³»¸² Â÷¼øÀ¸·Î Á¤·Ä
    return values[0];
  }
}

/* float value¸¦ ¼Ò¼öÁ¡ lenÀÚ¸® ¸¸Å­ Àý»ç */
function trunc(value, len) {
  var floatValue = parseFloat(value);
  var tempValue = 1;

  if (len < 0) {
    for (var i = 0; i > len; i--) {
      tempValue /= 10;
      floatValue /= 10;
    }
  } else {
    for (var i = 0; i < len; i++) {
      tempValue *= 10;
      floatValue *= 10;
    }
  }

  return Math.round(floatValue - 0.5) / tempValue;
}

/* float value¸¦ ¼Ò¼öÁ¡ lenÀÚ¸®±îÁö(ÀÌÇÏ ¹Ý¿Ã¸²) */
function uRound(value, len) {
  var floatValue = parseFloat(value);
  var tempValue = 1;

  if (len < 0) {
    for (var i = 0; i > len; i--) {
      tempValue /= 10;
      floatValue /= 10;
    }
  } else {
    for (var i = 0; i < len; i++) {
      tempValue *= 10;
      floatValue *= 10;
    }
  }

  return Math.round(floatValue) / tempValue;
}

/* num - value.length Å©±â ¸¸Å­ value°ªÀÇ ¿ÞÂÊ¿¡ str°ªÀ» ³Ö¾îÁØ´Ù. */
function lpad(value, num, str) {
  var result = value;

  for (var i = value.length; i < num; i++) {
    result = str + result;
  }

  return result;
}

/* num - value.length Å©±â ¸¸Å­ value°ªÀÇ ¿À¸¥ÂÊ¿¡ str°ªÀ» ³Ö¾îÁØ´Ù. */
function rpad(value, num, str) {
  var result = value;

  for (var i = value.length; i < num; i++) {
    result = result + str;
  }

  return result;
}

/* objectArray ¹è¿­¿¡ value °ªÀÌ Á¸ÀçÇÏ¸é true Á¸Àç ÇÏÁö ¾ÊÀ¸¸é false */
function contain(objectArray, value) {
  for (var i = 0; i < objectArray.length; i++) {
    if (objectArray[i] == value) return true;
  }
  return false;
}

/* ¹è¿­ÀÇ ¸î¹øÂ° °ªÀÎÁö ¸®ÅÏ */
function getIndex(objectArray, value) {
  if (objectArray) {
    if (objectArray.length != "undefined") {
      for (var i = 0; i < objectArray.length; i++) {
        if (objectArray[i] == value) return i;
      }
    }
  }
  return -1;
}

/* originObj(select box)ÀÇ ¸ðµç optionÀ» newObj(select box)ÀÇ optionÀ¸·Î µ¿Àû »ý¼º */
function copyOptions(originObj, newObj) {
  for (var i = 0; i < originObj.options.length; i++) {
    option = new Option(originObj.options[i].text, originObj.options[i].value);
    newObj.options[newObj.length] = option;
  }
}

/* detailFieldObjectÀÇ ¸ðµç °ø¹é ÇÊµå¸¦ fieldObjectÀÇ °ªÀ¸·Î Ã¤¿ö ³Ö´Â´Ù. */
function inputData(fieldObject, detailFieldObject, checkbox) {
  if (detailFieldObject && checkbox) {
    if (detailFieldObject.length > 1) {
      for (var i = 0; i < detailFieldObject.length; i++) {
        if (checkbox[i].checked == true && detailFieldObject[i].value == "") {
          detailFieldObject[i].value = fieldObject.value;
        }
      }
    } else {
      if (checkbox.checked == true && detailFieldObject.value == "") {
        detailFieldObject.value = fieldObject.value;
      }
    }
  }
}

/* detailFieldObjectÀÇ ¸ðµç °ø¹é ÇÊµå¸¦ fieldObjectÀÇ °ªÀ¸·Î Ã¤¿ö ³Ö´Â´Ù. */
function selectData(fieldObject, detailFieldObject, checkbox) {
  if (checkbox.length > 1) {
    for (var i = 0; i < checkbox.length; i++) {
      if (checkbox[i].checked == true && detailFieldObject[i].value == "") {
        for (var j = 0; j < detailFieldObject[i].length; j++) {
          if (detailFieldObject[i].options[j].value == fieldObject.value) {
            detailFieldObject[i].options[j].selected = true;
          } else {
            detailFieldObject[i].options[j].selected = false;
          }
        }
      }
    }
  } else {
    if (checkbox.checked == true && detailFieldObject.value == "") {
      for (var i = 0; i < detailFieldObject.length; i++) {
        if (detailFieldObject.options[i].value == fieldObject.value) {
          detailFieldObject.options[i].selected = true;
        } else {
          detailFieldObject.options[i].selected = false;
        }
      }
    }
  }
}

/* addSubmissionRow(document.main_form, "t0", "i", 0, "memberId", "tomcat") */
function addSubmissionRow(form, tableId, mode, idx, name, value) {
  if (tableId != "t") {
    form.appendChild(document.createElement("<input type='hidden' name='"
      + tableId + "_" + mode + "_" + idx + "_" + name + "' value='"
      + value + "'>"));
  } else {
    form.appendChild(document.createElement("<input type='hidden' name='"
      + name + "' value='" + value + "'>"));
  }
}

/* ÇÁ·Î½ÃÀú½ÇÇàÇÏ±â À§ÇØ Æû¿¡ ÇØ´ç °ªµéÀ» Ã¤¿ö³Ö´Â ÇÔ¼ö */
function addSubmissionProc(formId, tableId, procedureName, procedureValues, idx) {
  var form = document.getElementById(formId);
  form.appendChild(document.createElement("<input type='hidden' name='"
      + tableId + "' value='" + procedureName + "'>"));
  if (procedureValues) {
    for(j = 0; j < procedureValues.length; j++) {
      form.appendChild(document.createElement("<input type='hidden' name='"
        + tableId + "_p_" + idx + "_" + (j+1) + "' value='"
        + procedureValues[j] + "'>"));
    }
  } // end of if
} // end addProcedureCall(.....)

/*
 * clear all the child nodes of given node
 */
function pruneChildren(node) {
  var childNodes = node.childNodes;
  var length = childNodes.length;
  for (var i = length - 1; i >= 0; i--) {
    childNodes.item(i).removeNode(true);
  }
}

function submitVirtualForm(formId, target) {
  var form = document.getElementById(formId);

  /*
    <input type=hidden value=test_tab name=t0>
    <input type=hidden value=01 name=t0_i_0_code>
    <input type=hidden value="ÀÌ¸§" name=t0_i_0_name>
  */
  /*
  if (!confirm(form.innerHTML)) {
    util.pruneChildren(form);
    return;
  }
  */

  form.method = "post";
  form.target = target;
  form.submit();
  util.pruneChildren(form);
}

function decode(value, condition, value1, value2) {
  if (value == condition) {
    return value1;
  } else {
    return value2;
  }
}

/*ÇØ´ç ÇÊµåÀÇ °ªÀ» 3ÀÚ¸® ´ÜÀ§·Î , Âï´Â ÇÔ¼ö */
function addComma(obj) {
  if (event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 36 
        || event.keyCode == 35 || event.keyCode == 16 || event.keyCode == 9) {
    return;
  }
  obj.value = util.addCommaValue(obj.value);
}

/* 3ÀÚ¸® ´ÜÀ§·Î , Âï´Â ÇÔ¼ö */
function addCommaValue(val) {
  var value = util.deleteCommaValue(val);     // ±âÁ¸¿¡ ÄÄ¸¶°¡ ÀÖÀ¸¸é ¸ÕÀú Áö¿öÁØ´Ù.
  var minus = "";
  var tmpMoney = "";

  // À½¼öÀÎ °æ¿ì "-"¸¦ »«ÈÄ ÄÄ¸¶ Ã³¸®ÇÑÈÄ ³ªÁß¿¡ °ªÀ» ³Ñ°ÜÁÙ¶§ "-"¸¦ ºÙ¿©ÁØ´Ù.
  if (value.length > 0) {
    if (value.charAt(0) == '-') {
      value = value.substring(1);
      minus = "-";
    }
  }

  // ¼Ò¼öÁ¡À» ±âÁØÀ¸·Î Á¤¼ö¿Í ¼Ò¼ö·Î ³ª´©¾î Á¤¼ö¸¦ ±âÁØÀ¸·Î comma Ã³¸®¸¦ ÇØÁØ´Ù.
  // comma Ã³¸®ÈÄ¿£ comma Ã³¸®µÈ °ª°ú ¼Ò¼ö¸¦ ºÙ¿©¼­ °ªÀ» ¹ÝÈ¯ÇØÁØ´Ù.
  var index = value.indexOf(".");
  var intMoney = index != -1 ? value.substring(0, index) : value;
  var decimal = index != -1 ? value.substring(index) : "";

  while (intMoney.length > 3) {
    tmpMoney = "," + intMoney.substring(intMoney.length - 3, intMoney.length) + tmpMoney;
    intMoney = intMoney.substring(0, intMoney.length - 3);
  }

  return minus + intMoney + tmpMoney + decimal;
}

/*ÇØ´ç ÇÊµåÀÇ °ª¿¡¼­ , »èÁ¦ÇÏ´Â ÇÔ¼ö */
function deleteComma(obj) {
  obj.value = util.deleteCommaValue(obj.value);
}

/* , »èÁ¦ÇÏ´Â ÇÔ¼ö */
function deleteCommaValue(val) {
  var value = val + "";     // val ÀÌ ¼ýÀÚÀÏ°æ¿ì string À¸·Î ¹Ù²ãÁØ´Ù.
  var minus = "";
  var tmp = "";

  if (value.length > 0) {
    if (value.charAt(0) == '-') {
      value = value.substring(1);
      minus = "-";
    }

    for (cnt = 0; cnt < value.length; cnt++) {
      if (value.charAt(cnt) != ",") {
        tmp = tmp + value.charAt(cnt);
      }
    }
  }
  return minus + tmp;
}

/* value°ªÀÌ °ø¹éÀÌ¸é 0À¸·Î ¹Ù²ãÁØ´Ù. */
function toNum(val) {
  var value = val + "";
  if (value.length > 0) {
    return parseFloat(util.deleteCommaValue(value));
  } else {
    return 0;
  }
}

function popup(url, target, width, height, top, left, menuFlag, scrollbars) {
  if (scrollbars == null) scrollbars = "no";
  var win = window.open(url, target, "width=" + width + ", height=" + height + ", top=" + top + ", left=" + left + ", menubar=" + menuFlag + ", status=yes, scrollbars=" + scrollbars);
  win.focus();
}

function setObjectValue(obj, value, index) {
  if (typeof(obj.name) == "undefined" && typeof(obj.length) != "undefined" && obj.length > 1 && index > -1) {
    obj[index].value = value;
  } else {
    obj.value = value;
  }
}

var util = new Object();
util.getStringBytes = getStringBytes;
util.setMonthString = setMonthString;
util.setDateString = setDateString;
util.setTimeString = setTimeString;
util.replaceString = replaceString;
util.compare = compare;
util.maxValue = maxValue;
util.minValue = minValue;
util.trunc = trunc;
util.uRound = uRound;
util.lpad = lpad;
util.rpad = rpad;
util.contain = contain;
util.getIndex = getIndex;
util.copyOptions = copyOptions;
util.inputData = inputData;
util.selectData = selectData;
util.addSubmissionRow = addSubmissionRow;
util.addSubmissionProc = addSubmissionProc;
util.pruneChildren = pruneChildren;
util.submitVirtualForm = submitVirtualForm;
util.decode = decode;
util.addComma = addComma;
util.addCommaValue = addCommaValue;
util.deleteComma = deleteComma;
util.deleteCommaValue = deleteCommaValue;
util.toNum = toNum;
util.popup = popup;
util.setObjectValue = setObjectValue;
//-->