<!--
/*
 * $Id: common_validation.js,v 1.2 2006/08/24 09:52:36 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.
 */

/**********************************************************************
 common validation routines
***********************************************************************/

/* ¹®ÀÚ¿­ÀÌ ºñ¾ú´ÂÁö(°ø¹é¹®ÀÚ Æ÷ÇÔ) */
function isEmpty(obj, msg) {
  var str = obj.value;
  var whitespace = " \t\n\r";

  if (str.length > 0) {
    for (i = 0; i < str.length; i++) {
      var c = str.charAt(i);
      if (whitespace.indexOf(c) == -1) return false;
    }
  }

  if (msg != null) alert(msg);
  obj.focus();
  return true;
}

/* ¹®ÀÚ¿­ÀÌ ºñ¾ú´ÂÁö(°ø¹é¹®ÀÚ Æ÷ÇÔ) */
function checkEmpty(str, msg) {
  var whitespace = " \t\n\r";

  if (str.length > 0) {
    for (i = 0; i < str.length; i++) {
      var c = str.charAt(i);
      if (whitespace.indexOf(c) == -1) return false;
    }
  } 

  if (msg != null) alert(msg);
  return true;
}

/* ¹®ÀÚ¿­ ºñ±³ */
function isSame(obj1, obj2) {
  var str1 = obj1.value;
  var str2 = obj2.value;
  if (str1.length == 0 || str2.length == 0)
    return false;

  if (str1 == str2)
    return true;
  return false;
}

/* ¾ËÆÄºªÀÎÁö.. */
function isAlphabet(obj) {
  var str = obj.value;
  if (str.length == 0)
    return false;

  str = str.toUpperCase();
  for (var i = 0; i < str.length; i++) {
    if (!('A' <= str.charAt(i) && str.charAt(i) <= 'Z'))
      return false;
  }
  return true;
}

/* ¼ýÀÚÀÎÁö */
function isNumber(obj, msg) {
  var str = obj.value;
  if (str.length == 0) {
    if (msg) alert(msg);
    obj.focus();
    return false;
  }

  for (var i = 0; i < str.length; i++) {
    if (!('0' <= str.charAt(i) && str.charAt(i) <= '9')) {
      if (msg) alert(msg);
      obj.focus();
      return false;
    }
  }
  return true;
}

/* ¼ýÀÚÀÎÁö */
function checkNumber(str, msg) {
  if (str.length == 0) {
    if (msg) alert(msg);
    return false;
  }

  for (var i = 0; i < str.length; i++) {
    if (!(('0' <= str.charAt(i) && str.charAt(i) <= '9') || str.charAt(i) == '.' || str.charAt(0) == '-')) {
      if (msg) alert(msg);
      return false;
    }
  }
  return true;
}

/* ¼ýÀÚÀÎÁö */
function isNumberValue(str, msg) {
  if (str.length == 0) {
    if (msg) alert(msg);
    return false;
  }

  for (var i = 0; i < str.length; i++) {
    if (!(('0' <= str.charAt(i) && str.charAt(i) <= '9'))) {
      if (msg) alert(msg);
      return false;
    }
  }
  return true;
}

/* email À¯È¿¼º °Ë»ç */
function isEmail(obj) {
  var str = obj.value;
  if (str == "")
    return false;

  var i = str.indexOf("@");
  if (i < 0)
    return false;

  i = str.indexOf(".");
  if (i < 0)
    return false;

  return true;
}

/* card number À¯È¿¼º °Ë»ç */
function isCardNumber(obj) {
  var str = obj.value;
  if (str.length != 16)
    return false;

  for (var i=0; i < 16; i++) {
    if (!('0' <= str.charAt(i) && str.charAt(i) <= '9'))
      return false;
  }
  return true;
}

/*
 * ³¯Â¥ yyyy-MM-dd °Ë»ç
 */

function isDate(value) {
  var dateRegexp = new RegExp("^(\\d{4})-(\\d{2})-(\\d{2})$");
  var matched = dateRegexp.exec(value);

  if (matched != null) {
    return isValidDate(matched[1], matched[2], matched[3]);
  }

  return false;
}

/*
 * ½Ã°£ hh:mm:ss °Ë»ç
 */
function isTime(value) {
  var timeRegexp = new RegExp("^(\\d{2}):(\\d{2}):(\\d{2})$");
  var matched = timeRegexp.exec(value);
  if (matched != null) {
    return isValidTime(matched[1], matched[2], matched[3]);
  }

  return false;
}

/*
 * ³¯Â¥ + ½Ã°£ 'yyyy-MM:dd hh:mm:ss' °Ë»ç
 */
function isDateTime(value) {
  var datetimeRegexp = new RegExp("^(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})$");
  var matched = datetimeRegexp.exec(value);
  if (matched != null) {
    return  isValidDate(matched[1], matched[2], matched[3])
       && isValidTime(matched[4], matched[5], matched[6]);
  }

  return false;
}

/*
 * ³¯Â¥ÀÇ °¢ °ªµéÀÇ ¹üÀ§ °Ë»ç
 */
function isValidDate(year, month, day) {
  if (month < 1 || month > 12) {
    return false;
  }
  if (day < 1 || day > 31) {
    return false;
  }
  if ((month == 4 || month == 6 || month == 9 || month == 11) && (day == 31)) {
    return false;
  }
  if (month == 2) {
    var leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day > 29 || (day == 29 && !leap)) {
      return false;
    }
  }
  return true;
}
/*
 * ½Ã°£ÀÇ °¢ °ªµéÀÇ ¹üÀ§ °Ë»ç
 */
function isValidTime(hour, minute, second) {
  if (hour < 0 || month >= 24) {
    return false;
  }
  if (minute < 0 || minute >= 60) {
    return false;
  }
  if (second < 0 || second >= 60) {
    return false;
  }
  return true;
}

function isSSNAll(registerNo) {
  if (registerNo.length != 13) {
    return false;
  }

  var birthday = registerNo.substring(0, 6);
  var num = registerNo.substring(6, 13);

  var sum = 0;
  for (var i = 0; i < 6; i++) {
    var temp = birthday.charAt(i) * (i+2);
    sum += temp;
  }

  var n1 = num.charAt(0);
  var n2 = num.charAt(1);
  var n3 = num.charAt(2);
  var n4 = num.charAt(3);
  var n5 = num.charAt(4);
  var n6 = num.charAt(5);
  var n7 = num.charAt(6);

  sum += n1 * 8 + n2 * 9 + n3 * 2 + n4 * 3 + n5 * 4 + n6 * 5;
  sum %= 11;
  sum = 11 - sum;
  sum %= 10;
  if (sum != n7)
    return false;
  return true;
}

/* ÁÖ¹Îµî·Ï¹øÈ£ À¯È¿¼º °Ë»ç */
function isSSN(front, back) {
  var birthday = front.value;
  var num = back.value;

  if (birthday.length != 6) {
    return false;
  }
  if (num.length != 7) {
    return false;
  }
  var sum = 0;
  for (var i = 0; i < 6; i++) {
    var temp = birthday.charAt(i) * (i+2);
    sum += temp;
  }

  var n1 = num.charAt(0);
  var n2 = num.charAt(1);
  var n3 = num.charAt(2);
  var n4 = num.charAt(3);
  var n5 = num.charAt(4);
  var n6 = num.charAt(5);
  var n7 = num.charAt(6);

  sum += n1 * 8 + n2 * 9 + n3 * 2 + n4 * 3 + n5 * 4 + n6 * 5;
  sum %= 11;
  sum = 11 - sum;
  sum %= 10;
  if (sum != n7)
    return false;
  return true;
}

/* »ç¾÷ÀÚµî·Ï¹øÈ£ Ã¼Å© */
function isValidRegisterNo(registerNo){
  var sum = 0;
  var getlist = new Array(10);
  var chkvalue = new Array("1", "3", "7", "1", "3", "7", "1", "3", "5");

  for (var i = 0; i < 10; i++) { 
    getlist[i] = registerNo.substring(i, i + 1);
  }

  for (var i = 0; i < 9; i++) { 
    sum += getlist[i] * chkvalue[i];
  }

  sum = sum + parseInt((getlist[8] * 5) / 10) ;
  sidliy = sum % 10;
  sidchk = 0;

  if (sidliy != 0) { 
    sidchk = 10 - sidliy; 
  } else { 
    sidchk = 0; 
  }

  if (sidchk != getlist[9]) {
      return false;
  }
  return true;
}

/* ³¯Â¥ À¯È¿¼º Ã¼Å© */
function isValidDateAll(dateValue) {
  isValidDateAll(dateValue, null);
}

/* ³¯Â¥ À¯È¿¼º Ã¼Å© */
function isValidDateAll(dateValue, msg) {
  var errorMsg;
  if (msg) errorMsg = msg;
  else errorMsg = "³¯Â¥ Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.";

  if (dateValue.length == 4) {
    if (checkNumber(dateValue, null) && dateValue != "0000" && dateValue != "9999") {
      return true;
    }
  }

  if (dateValue.length == 7) {
    var dateRegexp = new RegExp("^(\\d{4})-(\\d{2})$");
    var matched = dateRegexp.exec(dateValue);

    if (matched != null) {
      var month = matched[2];
      if (month > 0 && month < 13) {
        return true;
      }
    }
  }

  if (dateValue.length == 10) {
    if (isDate(dateValue)) {
      return true;
    }
  }

  alert(errorMsg);
  return false;
}

function checkSsn(ssn){
  var valid = true;
  if(ssn.indexOf("-") > -1 ){
    ssn = ssn.replace("-","");
  }
  if(ssn.length!=13 || isNaN(ssn)){
    alert(ssn+" ¸¦ 13 ÀÚ¸® ¼ýÀÚ·Î¸¸ ÀÔ·Â ÇÏ½Ê½Ã¿ä!");
    return false;
  }
  if(Number(ssn.charAt(2)) > 1 ){
    valid = false;
  }
  if(Number(ssn.charAt(4)) > 3 ){
    valid = false;
  }
  if(Number(ssn.charAt(6)) > 4 ){
    if(Number(ssn.charAt(6)) != 9 ){
      valid = false;
    }
  }
  if(!valid){
    alert(ssn+" ÁÖ¹Î¹øÈ£´Â À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù!");
    return false;
  }
  var keys  = new Array(2,3,4,5,6,7,8,9,2,3,4,5);
  var len   = keys.length;
  var sum   = 0 ;
  for(var idx = 0 ; idx < len ; idx++){
    sum += ( Number(ssn.charAt(idx)) * Number(keys[idx]) );
  }
  sum = 11 - ( sum % 11);
  sum = sum % 10;
  if(valid && ssn.charAt(ssn.length-1) != sum ){
    alert(ssn+" ÁÖ¹Î¹øÈ£¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù!!");
    return false;
  }
  return true;
}

function onlyNumber() {
  if (event.keyCode < 45 || event.keyCode > 57) {
    event.returnValue = false;
  }
}

//-->