//var    _intValue   = '0123456789';
//var    _upperValue = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
//var    _lowerValue = 'abcdefghijklmnopqrstuvwxyz';
//var    _etcValue   = '~`!@#$%%^&*()-_=+\|[{]};:\'\",<.>/?';
//var    dayOfMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

n = (document.layers) ? 1:0;
ie = (document.all) ? 1:0;
if (n) document.captureEvents(Event.KEYPRESS);

function fnTest(pval) {
  fnTest =  doReverse(pval.value) ;
  alert (fnTest);
}

// -------------------------------------------------------------------------------------------------
// Function name : isHanString(TheValue) 
// Description   : ¹®ÀÚ¿­ÀÌ ÇÑ±ÛÀÎÁö¸¦ Ã¼Å©ÇÏ´Â ÇÔ¼ö
// Parameter     : value(Ã¼Å©´ë»ó ¹®ÀÚ¿­) 
// ------------------------------------------------------------------------------------------------- 
// Usage         : var a='&¿ì¸®´Â'; if(isHanString(a)) { alert("ÇØ´ç ¹®ÀÚ¿­¿¡ ÇÑ±Û¹®ÀÚ°¡ Æ÷ÇÔµÇ¾î ÀÖ½À´Ï´Ù."); } 
// -------------------------------------------------------------------------------------------------
function isHanString(TheValue) {
	var txt = TheValue;
	var cnt = 0;

	for(i=0; i<txt.length; i++) {
		if(txt.charCodeAt(i)>=0 && txt.charCodeAt(i)<=127) {
			// ascii
		} else {
			// not ascii
			cnt++;
		}
		if(cnt!=0) {
			return true;
		}
	} 
	return false;

}

// ------------------------------------------------------------------- 
// Function name: isInt
// Description  : ¼ýÀÚÀÎ°¡¸¦ Ã¼Å©ÇÏ´Â ÇÔ¼ö
// Parameter    : value(Ã¼Å©´ë»ó ¹®ÀÚ)
// ------------------------------------------------------------------- 
// Usage        : var a='3'; if(isInt(a)) { alert("¼ýÀÚÀÔ´Ï´Ù"); }
// ------------------------------------------------------------------- 
function isInt(value) {
 var _intValue   = '0123456789';
    var j;
    for(j=0;j<_intValue.length;j++)
      if(value == _intValue.charAt(j)) {
    return true;
 }
    return false;
}

// --------------------------------------------------------------------
// Function name: isNumeric
// Description  : ¼ýÀÚ·Î¸¸ ±¸¼ºµÇ¾î ÀÖ´ÂÁö¸¦ °Ë»ç
// Parameter    : obj(È­¸éÄÁÆ®·Ñ)
// -------------------------------------------------------------------- 
// Usage        : <input type="text" onBlur="isNumeric(this)">
// Caution      : È­¸éÄÁÆ®·Ñ¿¡ µ¥ÀÌÅ¸°¡ ¾ø´Â °æ¿ì¿¡´Â false¸¦ ¸®ÅÏ
// -------------------------------------------------------------------- 
function isNumeric(obj) {
 var str=obj.value;
 if (str.length == 0)
 return false;
 for (var i = 0; i < str.length; i++){
 var ch = str.substring(i, i + 1);
 if ((ch < "0" || "9" < ch) ){
     obj.focus();
     obj.select();   
   return false;
  }
 }
 return true;
}

// --------------------------------------------------------------------- 
// Function name : isNumber(str) 
// Description   : ¼ýÀÚ·Î¸¸ ±¸¼ºµÇ¾î ÀÖ´ÂÁö¸¦ °Ë»ç, ¼ýÀÚÀÌ¸é return true 
// Parameter     : str(ÃøÁ¤´ë»ó°ª) 
// ---------------------------------------------------------------------- 
// Usage         : if(isNumber(str)) { alert("¼ýÀÚÀÔ´Ï´Ù.."); }, 
// Caution       : isNumeric(obj)°ú ´Ù¸¥Á¡Àº obj°¡ ¾Æ´Ñ value°ª »ç¿ë 
// ----------------------------------------------------------------------
function isNumber(value) {
 var result = true;
 for(j = 0; result && (j < value.length); j++) {
  if((value.substring(j, j+1) < "0") || (value.substring(j, j+1) > "9")) {
   result = false;
  }
 }
 return result;
}

// --------------------------------------------------------------------- 
// Function name: getNumOnly
// Description  : ¼ýÀÚ¿Í ¹®ÀÚ¿­ÀÌ È¥ÇÕµÇ¾î ÀÖ´Â °Í¿¡¼­ ¼ýÀÚ¸¸ ¸®ÅÏ
// Parameter    : obj(°Ë»ç´ë»ó ¹®ÀÚ¿­)
// --------------------------------------------------------------------- 
// Usage        : <input type="text" onBlur="getNumOnly(this);">
//                °Ë»ç´ë»ó ¹®ÀÚ¿­ÀÌ '1134sd3dkk8'ÀÏ °æ¿ì '113438'¸¸ ¸®ÅÏ
// --------------------------------------------------------------------- 
function getNumOnly(obj) {
 var strNew = "";
  var chkstr = "0123456789";
 var str = obj.value;
 for (var i = 0; i < str.length; i++) {
   if (chkstr.indexOf(str.substring(i, i + 1)) >= 0) {
     strNew += str.substring(i, i + 1);
   }
 }
  return strNew;
}

// --------------------------------------------------------------- 
// Function name : isFloat(str) 
// Description   : ¼ýÀÚ°ªÀÎÁö Ã¼Å©, '.' Æ÷ÇÔ 
// Parameter     : str(ÃøÁ¤´ë»ó°ª) 
// --------------------------------------------------------------- 
// Usage         : if(isFloat(str)) { alert("Float°ªÀÔ´Ï´Ù."); } 
// --------------------------------------------------------------- 
function isFloat(value) {
 var count = 0;
 var ch;
 
 for(i=0; i<value.length; i++) {
  ch = value.charAt(i);
  
  if(isNaN(ch)) {
   if(ch == ".") {
    count++;
   } else {
    return false;
   }
  }    
 }
 
 if(count > 1) {
  return false;
 } else {
  return true;
 }
 
 return result;
}

// ------------------------------------------------------------------- 
// Function name : getOnlyNumberKey()
// Description   : Å°º¸µå ÀÔ·Â½Ã ¼ýÀÚ¸¸ ÀÔ·Â °¡´É
// Parameter     :
// ------------------------------------------------------------------- 
// Usage         : onKeyDown=getOnlyNumberKey()
// ------------------------------------------------------------------- 
function getOnlyNumberKey() {
 if ((event.keyCode >=48 && event.keyCode <=57)   // ÀÚÆÇ 0~9
  || (event.keyCode >=96 && event.keyCode <= 105)  // keypad 0~9
  || (event.keyCode == 109)             // ÀÚÆÇ -
  || (event.keyCode == 189)             // keypad -
  || (event.keyCode == 8)              // back space
  || (event.keyCode == 9)              // tab
  || (event.keyCode == 13)             // enter
  || (event.keyCode == 46)             // delete
  || (event.keyCode >= 37 && event.keyCode <= 40)) // ¹æÇâÅ°
 {
  return true;
 } else {
  event.returnValue = false;
 }
}

// ---------------------------------------------------------------------
// Function name : getNumberNCommaKey()  
// Description   : Å°º¸µå ÀÔ·Â½Ã ¼ýÀÚ ¹× ','°¡ ÀÔ·Â °¡´É
// Parameter     :
// ---------------------------------------------------------------------
// Usage         : onKeyDown=getNumberNCommaKey()  
// ---------------------------------------------------------------------
function getNumberNCommaKey() {
 if ((event.keyCode >=48 && event.keyCode <=57)   // ÀÚÆÇ 0~9
  || (event.keyCode >=96 && event.keyCode <= 105)  // keypad 0~9
  || (event.keyCode == 109)             // ÀÚÆÇ -
  || (event.keyCode == 189)             // keypad -
  || (event.keyCode == 188)             // ÀÚÆÇ ,
  || (event.keyCode == 8)              // back space
  || (event.keyCode == 9)              // tab
  || (event.keyCode == 13)             // enter
  || (event.keyCode == 46)             // delete
  || (event.keyCode >= 37 && event.keyCode <= 40)) // ¹æÇâÅ°
 {
  return true;
 } else {
  event.returnValue = false;
 }

}

// ----------------------------------------------------------------------
// Function name : getNumberNDotKey() 
// Description   : Å°º¸µå ÀÔ·Â½Ã ¼ýÀÚ ¹× '.'°¡ ÀÔ·Â °¡´É
// Parameter     :
// ----------------------------------------------------------------------
// Usage         : onKeyDown=getNumberNDotKey() 
// ----------------------------------------------------------------------
function getNumberNDotKey() {
 if ((event.keyCode >=48 && event.keyCode <=57)   // ÀÚÆÇ 0~9
  || (event.keyCode >=96 && event.keyCode <= 105)  // keypad 0~9
  || (event.keyCode == 109)             // ÀÚÆÇ -
  || (event.keyCode == 189)             // keypad -
  || (event.keyCode == 110)             // ÀÚÆÇ .
  || (event.keyCode == 190)             // keypad .
  || (event.keyCode == 8)              // back space
  || (event.keyCode == 9)              // tab
  || (event.keyCode == 13)             // enter
  || (event.keyCode == 46)             // delete
  || (event.keyCode >= 37 && event.keyCode <= 40)) // ¹æÇâÅ°
 {
  return true;
 } else {
  event.returnValue = false;
 }
}

// --------------------------------------------------------------------
// Function name : isDigitOrBar(str) 
// Description   : '-' ±âÈ£¸¦ Æ÷ÇÔÇÑ ¼ýÀÚ¿©ºÎ ÆÇ´Ü, ¼ýÀÚ¸é return true 
// Parameter     : str(´ë»ó ¹®ÀÚ¿­) 
// -------------------------------------------------------------------- 
// Usage         : isDigitOrBar(str), ºÎÈ£ÀÇ ¼±Çà, ÈÄÇàÀº Ã¼Å© ¸øÇÔ 
// --------------------------------------------------------------------
function isDigitOrBar(str) {
 for(var i=0; i < str.length; i++) {
  var ch= str.charAt(i) ;
  if((ch < "0" || ch > "9") && ch!="-") {
   return false;
  }
 }
 return true;
}

//---------------------------------------------------------------------
// Function name : getFormattedVal 
// Description   : ¼ýÀÚ¸¦ Æ÷¸äÀÌ °®Ãß¾îÁø ¹®ÀÚ¿­·Î ¹Ù²Þ
//                 ###3 <= ¼ýÀÚ3Àº ¼¼ÀÚ¸®¸¶´Ù ,¸¦ Âï°Ú´Ù´Â ¸»
//                 .##### <= .(¼Ò¼öÁ¡)µÚ·Î 5ÀÚ¸®±îÁö Ç¥ÇöÇÏ°Ú´Ù´Â ¸»
// Parameter     : value  : °Ë»çÇÒ °ª
//                 format : º¯È¯ÇÒ ÇüÅÂ
// Return        :  º¯È¯µÈ °ª ¸®ÅÏ
// -------------------------------------------------------------------- 
// Usage         : getFormattedVal(value , "###3.#####")
//---------------------------------------------------------------------
function getFormattedVal(value,format) {
    value = ""+value;

    if(!format)
      return value;

    var sp = parseInt(format.charAt(3));

    if(!sp)
      return value;

    var pos = 0;
    var ret = "";
    var vSplit = value.split('.');
    var fSplit = format.split('.');
    var fp = fSplit[1];
    var fv = vSplit[1];
    var lv = vSplit[0];
    var len = lv.length;

    for(var i = len % sp; i < len; i += sp){
        if(i == 0 || lv.charAt(i-1) == '-')
            ret += lv.substring(pos,i);
        else
            ret += lv.substring(pos,i)+',';
        pos = i;
    }

    ret += lv.substring(pos,len);

    if(!fv)
        fv = "";
    if(!fp)
        fp = "";

    var len1 = fp.length;
    var len2 = fv.length;

    if(len1)
      ret += '.' + fv.substring(0,len1) + fp.substring(len1,len2);
    return ret;
}


//-------------------------------------------------------------------
// Function name : changeInt2Han 
// Description   : ¼ýÀÚ -> ÇÑ±Û·Î º¯È¯
// Parameter     : string  : º¯È¯ ÇÒ °ª
// Return        : º¯È¯µÈ °ª ¸®ÅÏ / 123 -> ÀÏ¹éÀÌ½Ê»ï
// ------------------------------------------------------------------- 
// Usage         : changeInt2Han(string)
//--------------------------------------------------------------------
function changeInt2Han(string) {
 hn = new Array("¿µ","ÀÏ","ÀÌ","»ï","»ç","¿À","À°","Ä¥","ÆÈ","±¸");
 hj = new Array("","¸¸","¾ï","Á¶","°æ","ÇØ");
 ul = new Array("¿µÃµ","¿µ¹é","¿µ½Ê","¿µ");
 tm = new Array();
 result = "";

 if (string.charAt(0)=="-") {
  result = "¸¶ÀÌ³Ê½º ";
  string = string.substr(1,string.length-1);
 }

 loop_size = Math.ceil(string.length/4);
 string2 = "";

 for (count=string.length; count >= 0; count--)
  string2 += string.substring(count,count-1);
  string = string2;

 for (A=0;A<loop_size;A++) {
  sum = hj[A] + " ";
  tm[A] = string.substr(A*4,4);

  tm2 = "";
  
  for (count=tm[A].length; count >= 0; count--)
   tm2 += tm[A].substring(count,count-1);
  
  tm[A] = tm2;
  part_jari = tm[A].length;
  
  for (D=0;D<10;D++) {
   for (B=0;B<10;B++) tm[A] = tm[A].replace(B,hn[B]);
  }

    if (part_jari == 4) tm[A] = tm[A].charAt(0)+"Ãµ"+tm[A].charAt(1)+"¹é"+tm[A].charAt(2)+"½Ê"+tm[A].charAt(3);
    else if (part_jari == 3) tm[A] = tm[A].charAt(0)+"¹é"+tm[A].charAt(1)+"½Ê"+tm[A].charAt(2);
  else if (part_jari == 2) tm[A] = tm[A].charAt(0)+"½Ê"+tm[A].charAt(1);
  else tm[A] = tm[A].charAt(0);

  for (C=0;C<4;C++) {
   if (tm[A].match(ul[C])) {
    part_jari--; tm[A] = tm[A].replace(ul[C],"");
   }
  }
    
  if (part_jari != 0) tm[A] += sum;
  }

 for (loop_size;loop_size>-1;loop_size--)
  result += tm[loop_size];
 
 result = result.replace("undefined","");
 return result;
}

//-----------------------------------------------------------------------
// Function name : changeInt2HanJa 
// Description   : ¼ýÀÚ -> ÇÑÀÚ·Î º¯È¯
// Parameter     : string  : º¯È¯ ÇÒ °ª
// Return        : º¯È¯µÈ °ª ¸®ÅÏ / ÀÏ¹éÀÌ½Ê»ï -> ììÛÝìÃä©ß³
// ----------------------------------------------------------------------
// Usage         : changeInt2HanJa(string)
//-----------------------------------------------------------------------
function changeInt2HanJa(string) {
 hn = new Array("¿µ","ìì","ìÃ","ß³","ÞÌ","çé","ë»","öÒ","ø¢","Îú");
 hj = new Array("","Ø¿","åâ","ð¼");
 ul = new Array("¿µô¶","¿µÛÝ","¿µä©","¿µ");
 tm = new Array();
 result = "";

 if (string.charAt(0)=="-") {
  result = "¸¶ÀÌ³Ê½º ";
  string = string.substr(1,string.length-1);
 }
 loop_size = Math.ceil(string.length/4);
      string2 = "";
 for (count=string.length; count >= 0; count--)
  string2 += string.substring(count,count-1);
   
 string = string2;
 
 for (A=0;A<loop_size;A++) {
  sum = hj[A] + " ";
  tm[A] = string.substr(A*4,4);

  tm2 = "";

  for (count=tm[A].length; count >= 0; count--)
   tm2 += tm[A].substring(count,count-1);
  
  tm[A] = tm2;
  part_jari = tm[A].length;
  for (D=0;D<10;D++) {
   for (B=0;B<10;B++) tm[A] = tm[A].replace(B,hn[B]);
  }

  if (part_jari == 4) tm[A] = tm[A].charAt(0)+"ô¶"+tm[A].charAt(1)+"ÛÝ"+tm[A].charAt(2)+"ä©"+tm[A].charAt(3);
  else if (part_jari == 3) tm[A] = tm[A].charAt(0)+"ÛÝ"+tm[A].charAt(1)+"ä©"+tm[A].charAt(2);
  else if (part_jari == 2) tm[A] = tm[A].charAt(0)+"ä©"+tm[A].charAt(1);
  else tm[A] = tm[A].charAt(0);
  for (C=0;C<4;C++) {
   if (tm[A].match(ul[C])) {
    part_jari--; tm[A] = tm[A].replace(ul[C],"");
   }
  }
  if (part_jari != 0) tm[A] += sum;
 }

 for (loop_size;loop_size>-1;loop_size--) result += tm[loop_size];
   result = result.replace("undefined","");

 return result;
}

//-----------------------------------------------------------------------------
// Function name : isFraction
// Description   : ÀÔ·ÂµÈ ¹®ÀÚ°¡ ¼ýÀÚ, ºÐ¼ö(1/3,2/5..)ÀÎ°¡¸¦ Ã¼Å©ÇÏ´Â ÇÔ¼ö
// Parameter     : obj(ÀÔ·Â ÄÁÆ®·Ñ¸í)
// ----------------------------------------------------------------------------
// Usage         : »ç¿ëÀÚ°¡ ÅØ½ºÆ®¹Ú½º¿¡ ¼ýÀÚ°ªÀ¸·Î¸¸ ÀÔ·ÂµÇ¾î¾ß ÇÒ °æ¿ì ÀÌ¸¦
//                 °ËÁõÇÏ±â À§ÇØ¼­ ¾Æ·¡¿Í °°ÀÌ »ç¿ë
//                 <input type="text" onBlur="isFraction(this)">
//-----------------------------------------------------------------------------
function isFraction(obj) {
 var i,j;
 var str = new String(obj.value);
 var check_slash = 0;

 if ((str == '')||(str.length == 0))
   return true;

 for(i=0;i< str.length;i++) {
  if(!isInt(str.charAt(i))) {
  
   if(str.charAt(i) != '/') {
    alert('Á¤¼ö ¶Ç´Â ºÐ¼ö¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù.');
    obj.focus();
    obj.select();
    return false;
    } else {
    check_slash++;
    if (i==0) {
     alert('Á¤¼ö ¶Ç´Â ºÐ¼ö¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù.');
     obj.focus();
     obj.select();
     return false;
    }
   }
  }
 }
 j = i -1;

 if (str.charAt(j) == '/' || check_slash > 1) {
  alert('Á¤¼ö ¶Ç´Â ºÐ¼ö¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù.');
  obj.focus();
  return false;
 }
 return true;
}

//---------------------------------------------------------------------------------------
// Function name : checkDigitBody2
// Description   : ¼ýÀÚ È¤Àº ±¸ºÐÀÚ('-', '.' µî)·Î¸¸ ±¸¼ºµÇ¾î ÀÖ´ÂÁö¸¦ °Ë»ç
// Parameter     : obj(È­¸éÄÁÆ®·Ñ), sep(±¸ºÐÀÚ)
// --------------------------------------------------------------------------------------
// Usage         : <input type="text" onBlur="checkDigitBody2(this, '-')">
// Caution       : È­¸éÄÁÆ®·Ñ¿¡ µ¥ÀÌÅ¸°¡ ¾ø´Â °æ¿ì¿¡´Â false¸¦ ¸®ÅÏ
// --------------------------------------------------------------------------------------
function checkDigitBody2(obj, sep) {
 var str=obj.value;
 if (str.length == 0)
  return false;
 for (var i = 0; i < str.length; i++) {
  var ch = str.substring(i, i + 1);
  if ((ch < "0" || "9" < ch)) {
   if (ch != sep)
    return false;
  }
 }
 return true;
}

//---------------------------------------------------------------------------------------
// Function name : getNumberOnly
// Description   : ½Ç¼ö,Á¤¼ö,±Ý¾× À¯È¿¼º Ã¼Å© ¹× Çã¿ëÇÏÁö ¾Ê´Â ¹®ÀÚ´Â °æ°í ¾øÀÌ ÀÚµ¿ »èÁ¦
// Parameter     : ÇÊ¼ö : obj(ÀÔ·Â ÄÁÆ®·Ñ¸í), cmd(¼ýÀÚ À¯Çü)
//---------------------------------------------------------------------------------------
// Usage         : <input name="num1" type="text"  onkeyup= "getNumberOnly(this, 'money')"  ...>
// Caution       : ÀÏ¹ÝÀûÀ¸·Î ´Ù¸¥ function¿¡¼­ ³»ºÎÀû È£Ãâ·Î ¾²ÀÓ
//---------------------------------------------------------------------------------------
function getNumberOnly(obj, cmd) {
 var instr = obj.value;
 var cstr = "";
 var tempstr = "";

 if(cmd == "real") {
  cstr = "0123456789.-";          //½Ç¼ö
 } else if(cmd == "real2") {
  cstr = "0123456789.";      //¾çÀÇ½Ç¼ö
 } else if(cmd=="int") {
  cstr="0123456789-";             //Á¤¼ö
 } else if(cmd=="money") {
  cstr="0123456789,";       //±Ý¾×
 } else if(cmd == "real3") {
  cstr = "0123456789.-,";         //½Ç¼ö : , Æ÷ÇÔ
 } else if(cmd=='numeric') {
  cstr = "0123456789";      //¼ýÀÚ
 }

 //°Å²Ù·Î µ¹·Á¾ß ÇÔ 
 if(instr.length) {
  var len = instr.length;
  for(var i=len-1; i>=0; i--) {
   if(cstr.lastIndexOf(instr.charAt(i)) == -1) {
    instr = instr.substring(0, i)+ instr.substring(i+1);
    obj.value = instr;
   }
  }
 }
}

// --------------------------------------------------------------------------------------------
// Function name : addCommaStr
// Description   : ÀÔ·ÂÃ¢¿¡ ¼ýÀÚ µ¥ÀÌÅÍ¸¦ ÀÔ·ÂÇÒ¶§ ÀÚµ¿À¸·Î 3ÀÚ¸®º°·Î ',' °¡ ºÙ¾î ÀÔ·ÂµÇ°ÔÇÔ
// Parameter     : str(¹®ÀÚ¿­(¼ýÀÚ))
// --------------------------------------------------------------------------------------------
// Usage         : 
// Caution       : ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÒ¶§ Input ¹Ú½º °ªÀÌ ¼ýÀÚ °ªÀÎÁö Ã¼Å©ÇÒ ¶§´Â ½°Ç¥¸¦ ÀÚµ¿À¸·Î 
//                 Ã¼Å©ÇÏ¿© ¼ýÀÚ¿©ºÎ¸¦ ÆÇ´ÜÇÏ´Â checkDigitBody2(obj, ",")¸¦ »ç¿ëÇÑ´Ù.
// --------------------------------------------------------------------------------------------
function addCommaStr(str) {
 if (str.length < 1) {
    return "";
  } else {
  var tm = "";
  var ck = "";
  if (str.substring(0, 1) == "-") { //À½¼ö
   tm = str.substring(1, str.length);
   ck = "Y";
  } else {//¾ç¼ö
   tm = str;
   ck = "N";
  }
  var st = "";
  var cm = ",";

  for (var i = tm.length, j = 0; i > 0; i--, j++) {
   if ((j % 3) == 2) {
    if (tm.length == j + 1) st = tm.substring(i - 1, i) + st;
    else st = cm + tm.substring(i - 1, i) + st;
   } else {
    st = tm.substring(i - 1, i) + st;
   }
  }
  if (ck == "Y") st = "-" + st;
 }
 return st;
}

// --------------------------------------------------------------------------------------------
// Function name : delCommaStr
// Description   : È­Æó±¸ºÐÀÚ·Î »ç¿ëµÇ´Â ','¹®ÀÚ¸¦ Á¦°ÅÇÏ´Â ÇÔ¼ö. 
//                 º¸Åë È­¸é¿¡´Â ,·Î Ç¥½ÃÇÏ°í, DB¿¡´Â ','¸¦ Á¦¿ÜÇÑ ¼ýÀÚ¸¸À» insertÇÒ ¶§ »ç¿ë
// Parameter     : str(±Ý¾×ÇüÅÂÀÇ ¹®ÀÚ¿­)
// --------------------------------------------------------------------------------------------
// Usage         : 
// --------------------------------------------------------------------------------------------
function delCommaStr(str) {
 if (str.length < 1) {
  return "";
 } else {
  var st = "";
  var sp = ",";
  for (var i = 0; i < str.length; i++) {
   if (sp.indexOf(str.substring(i, i + 1)) == -1) {
    st += str.substring(i, i + 1);
   }
  }
  return st;
 }
}

// --------------------------------------------------------------------------------------------
// Function name : delComma
// Description   : È­Æó±¸ºÐÀÚ·Î »ç¿ëµÇ´Â ','¹®ÀÚ¸¦ Á¦°ÅÇÏ´Â ÇÔ¼ö. 
//                 º¸Åë È­¸é¿¡´Â ,·Î Ç¥½ÃÇÏ°í, DB¿¡´Â ','¸¦ Á¦¿ÜÇÑ ¼ýÀÚ¸¸À» insertÇÒ ¶§ »ç¿ë
// Parameter     : obj(È­¸é ÀÔ·Â¹Ú½º¸í)
// --------------------------------------------------------------------------------------------
// Usage         : 
// Caution       : delCommaStr °ú ´Ù¸¥Á¡Àº value °¡ ¾Æ´Ñ obj°ª »ç¿ë
// --------------------------------------------------------------------------------------------
function delComma(obj) {
 var str =  String(obj.value);
 if (str.length < 1) {
  return "";
 } else {
  var st = "";
  var sp = ",";
  for (var i = 0; i < str.length; i++) {
    if (sp.indexOf(str.substring(i, i + 1)) == -1) {
      st += str.substring(i, i + 1);
    }
  }
  return st;
 }
}

// --------------------------------------------------------------------------------------------
// Function name : isUpperChar
// Description   : ¿µ¹® ´ë¹®ÀÚÀÎÁö¸¦ Ã¼Å©ÇÏ´Â ÇÔ¼ö
// Parameter     : value(Ã¼Å©´ë»ó ¹®ÀÚ)
// -------------------------------------------------------------------------------------------- 
// Usage         : var a='A'; if(isUpperChar(a)) { alert("´ë¹®ÀÚÀÔ´Ï´Ù"); }
// --------------------------------------------------------------------------------------------
function isUpperChar(value) {
 var _upperValue = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 var i;
 for(i=0;i<_upperValue.length;i++)
  if(value == _upperValue.charAt(i)) {
   return true;
  }

 return false;
}

// --------------------------------------------------------------------------------------------
// Function name : isLowerChar
// Description   : ¿µ¹® ¼Ò¹®ÀÚÀÎÁö¸¦ Ã¼Å©ÇÏ´Â ÇÔ¼ö
// Parameter     : value(Ã¼Å©´ë»ó ¹®ÀÚ)
// -------------------------------------------------------------------------------------------- 
// Usage         : var a='k'; if(isLowerChar(a)) { alert("¼Ò¹®ÀÚÀÔ´Ï´Ù"); }
// --------------------------------------------------------------------------------------------
function isLowerChar(value) {
 var _lowerValue = 'abcdefghijklmnopqrstuvwxyz';
 var i;
 for(i=0;i<_lowerValue.length;i++)
  if(value == _lowerValue.charAt(i)) {
   return true;
  }

 return false;
}

// -------------------------------------------------------------------------------------------------
// Function name : Æ¯¼ö¹®ÀÚ¿©ºÎÃ¼Å©
// Description   : Æ¯¼ö¹®ÀÚÀÎÁö¸¦ Ã¼Å©ÇÏ´Â ÇÔ¼ö(¿µ¹®ÀÌ³ª ÇÑ±ÛÀÌ ¾Æ´Ñ)
// Parameter     : value(Ã¼Å©´ë»ó ¹®ÀÚ)
// -------------------------------------------------------------------------------------------------
// Usage         : var a='&'; if(isEtcChar(a)) { alert("Æ¯¼ö¹®ÀÚÀÔ´Ï´Ù"); }
// -------------------------------------------------------------------------------------------------
function isEtcChar(value) {
 var _etcValue   = '~`!@#$%%^&*()-_=+\|[{]};:\'\",<.>/?';
    var j;
    for(j=0;j<_etcValue.length;j++)
        if(value == _etcValue.charAt(j)) {
            return true;
        }
    return false;
}


// -------------------------------------------------------------------------------------------------
// Function name : isEtcChar(value) 
// Description   : Æ¯¼ö¹®ÀÚÀÎÁö¸¦ Ã¼Å©ÇÏ´Â ÇÔ¼ö(¿µ¹®ÀÌ³ª ÇÑ±ÛÀÌ ¾Æ´Ñ) 
// Parameter     : value(Ã¼Å©´ë»ó ¹®ÀÚ), ¹®ÀÚ¿­ÀÌ ¾Æ´Ô charÇÏ³ª¿¡ ´ëÇÑ Ã¼Å©°¡´É 
// ------------------------------------------------------------------------------------------------- 
// Usage         : var a='&'; if(cmm_is_etc_char(a)) { alert("Æ¯¼ö¹®ÀÚÀÔ´Ï´Ù"); } 
// -------------------------------------------------------------------------------------------------
function isEtcString(value) {
 var _etcValue   = '~`!@#$%%^&*()-_=+\|[{]};:\'\",<.>/?';
 var i,j;
 for(i=0;i<value.length;i++) {
  for(j=0;j<_etcValue.length;j++)
   if(value.charAt(i) == _etcValue.charAt(j)) {
    return true;
   }
 }
 return false;
}

// -------------------------------------------------------------------------------------------------
// Function name : ¿µ¹®´ë¹®ÀÚ º¯È¯
// Description   : ¿µ¹®´ë¹®ÀÚ·Î º¯È¯ÇÏ´Â ÇÔ¼ö
// Parameter     : obj(º¯È¯´ë»ó ¹®ÀÚ¿­À» °¡Áö°í ÀÖ´Â È­¸é ÄÁÆ®·Ñ¿ÀºêÁ§Æ®) cmm_to_upper
// -------------------------------------------------------------------------------------------------
// Usage         : »ç¿ëÀÚ°¡ ¼Ò¹®ÀÚ·Î ÀÔ·ÂÇÏ´õ¶óµµ DB¿¡´Â ´ë¹®ÀÚ·Î ÀÔ·ÂÇÏ°íÀÚ ÇÏ´Â °æ¿ì
// -------------------------------------------------------------------------------------------------
function getUpperStr(obj) {
  var strNew = '';
 var str = obj.value;
    for(i=0 ; i<str.length; i++ ) {
   if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z')
    strNew += str.charAt(i).toUpperCase() ;
   else
    strNew +=  str.charAt(i);
    }
  
 obj.value = strNew;
}

// »ç¿ëºóµµ : Áß
// ÇÔ¼ö¸í: ¸î°³ÀÇ Á¤ÇØÁø ¹®ÀÚ¸¸ ÀÔ·Â°¡´ÉÇÏµµ·Ï °Ë»çÇÏ´Â ÇÔ¼ö
// ¼³  ¸í: Á¤ÇØÁø ¹®ÀÚ¿­(¿µ¹®ÀÚ, °ø¹é, '-', ',')¸¸ ÀÔ·ÂÇÏ´Â Áö¸¦ °Ë»çÇÏ´Â ÇÔ¼ö
// ÀÎ  ÀÚ: ctl_digit(È­¸éÄÁÆ®·Ñ)
// --------------------------------------------------------------------------------------------
// »ç¿ë¹ý: <input type="text" onBlur="cmm_check_english_body(this)">
// ÁÖÀÇ»çÇ×: ¾Æ·¡ ¼Ò½º¸¦ º¯ÇüÇÏ¿© °Ë»ç´ë»ó¹®ÀÚ¿­À» º¯°æÇÏ¿© »ç¿ë
// --------------------------------------------------------------------------------------------
function checkEnglishBody(obj) {
 var str=obj.value;
 if (str.length == 0)
  return false;
 // Checks that characters are numbers or hyphens.
 for (var i = 0; i < str.length; i++) {
  var ch = str.substring(i, i + 1);
  if(ch != "-") {
   if ((ch < "A" || "z" < ch )) {
    if (ch == " ")
      ;
    else if (ch == ",")
     ;
    else
    
    return false;
   }
  }
 }
 return true;
}

// »ç¿ëºóµµ : »ó
// ÇÔ¼ö¸í: ¹®ÀÚ¿­ ÁÂÃø°ø¹éÁ¦°Å
// ¼³  ¸í: ¹®ÀÚ¿­ ÁÂÃøÀÇ °ø¹é Á¦°Å Ã³¸® ÇÔ¼ö
// ÀÎ  ÀÚ: str(Ã¼Å©´ë»ó ¹®ÀÚ)
// --------------------------------------------------------------------------------------------
// »ç¿ë¹ý: str = cmm_ltrim(str);
// --------------------------------------------------------------------------------------------
function getLtrim(str) {
 while(str.substring(0,1) == ' ')
  str = str.substring(1, str.length);
 return str;
}

// »ç¿ëºóµµ : Áß
// ÇÔ¼ö¸í: ¹®ÀÚ¿­ Áß°£°ø¹éÁ¦°Å
// ¼³  ¸í: ¹®ÀÚ¿­ Áß°£ÀÇ °ø¹é Á¦°Å Ã³¸® ÇÔ¼ö
// ÀÎ  ÀÚ: str(Ã¼Å©´ë»ó ¹®ÀÚ)
// --------------------------------------------------------------------------------------------
// »ç¿ë¹ý: str = cmm_mtrim(str);
// --------------------------------------------------------------------------------------------
function getMtrim(str) {
 for (i=0; i < str.length;)
  if (str.substring(i,i+1) == ' ')
   str = str.substring(0,i) + str.substring(i+1,str.length);
  else
   i++;

  return str;
}

// »ç¿ëºóµµ : »ó
// ÇÔ¼ö¸í: ¹®ÀÚ¿­ ¿ìÃø°ø¹éÁ¦°Å
// ¼³  ¸í: ¹®ÀÚ¿­ ¿ìÃøÀÇ °ø¹é Á¦°Å Ã³¸® ÇÔ¼ö
// ÀÎ  ÀÚ: str(Ã¼Å©´ë»ó ¹®ÀÚ)
// --------------------------------------------------------------------------------------------
// »ç¿ë¹ý: str = cmm_rtrim(str);
// --------------------------------------------------------------------------------------------
function getRtrim(str) {
 while(str.substring(str.length-1,str.length) == ' ')
  str = str.substring(0, str.length-1);
 return str;
}

// »ç¿ëºóµµ : »ó
// ÇÔ¼ö¸í: °ø¹é¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¹®ÀÚ¿­À» ¸®ÅÏÇÏ´Â ÇÔ¼ö
// ¼³  ¸í: °ø¹é¸¸À» Á¦¿ÜÇÑ ¹®ÀÚ¿­À» ¸®ÅÏ(Æ¯¼ö¹®ÀÚ µîµµ °°ÀÌ ¸®ÅÏ)
// ÀÎ  ÀÚ: arg_str(°Ë»ç´ë»ó ¹®ÀÚ¿­)
// --------------------------------------------------------------------------------------------
// »ç¿ë¹ý: cmm_str_trim('abc def');
// --------------------------------------------------------------------------------------------
function getStrTrim(arg_str) {
 var rtn_str = "";
 var i=0;
 while(arg_str.charAt(i) != "") {
  if(arg_str.charAt(i)!=' ') {
   rtn_str += arg_str.charAt(i);
  }
  i++;
 }
 return rtn_str;
}

//--------------------------------------------------------------------------------------------
// Function name : getReverse
// Description   : ÁÖ¾îÁø ¹®ÀÚ¿­À» °Å²Ù·Î Ä¡È¯
// Parameter     : str - Ä¡È¯ÇÒ ¹®ÀÚ 
// Return        : Ä¡È¯µÈ ¹®ÀÚ¿­
//--------------------------------------------------------------------------------------------
// Usage         : getReverse("123") => "321" 
//--------------------------------------------------------------------------------------------
function getReverse(Str) {
 var ret = "";

 for (var i = 0; i < Str.length; i++)
  ret = Str.substr(i, 1) + ret;
   
  return ret;
}

//--------------------------------------------------------------------------------------------
// ÇÔ¼ö¸í: Æ¯¼ö¹®ÀÚ¸¦ Á¦°ÅÇÏ´Â ÇÔ¼ö
// ¼³  ¸í: Á¦°ÅÇÏ°íÀÚ ÇÏ´Â Æ¯¼ö¹®ÀÚ¸¦ Á¦°ÅÇÏ¿© ¸®ÅÏÇÏ´Â ÇÔ¼ö
// ÀÎ  ÀÚ: str(¹®ÀÚ¿­), sep(Á¦°ÅÇÏ°íÀÚ ÇÏ´Â Æ¯¼ö¹®ÀÚ)
// --------------------------------------------------------------------------------------------
// »ç¿ë¹ý: <input type="text" onBlur="cmm_remove_special_char(this.value, '-%*');">
// --------------------------------------------------------------------------------------------
function getRmSpChar(str, sep) {
 var sTmp = "";
 var sBuffer = "";
 var i, j;
 var equal=false;

 for (i=0; i < str.length; i++) {
  equal = false;
  sTmp = str.substring(i, i+1);
  for(j=0; j<sep.length;j++) {
   if(sep.charAt(j) == sTmp) {
    equal = true;
    break;
   }
  }

  if(equal == false)
   sBuffer += sTmp;
 }
 //alert(sBuffer);
 return sBuffer;
}

//---------------------------------------------------------------------------------
// Function name : isEmailCheck
// Description   : ÅØ½ºÆ® ¶óÀÎ¾È¿¡ °ªÀ» Á¤±Ô½Ä Ç¥ÇöÀ» »ç¿ëÇØ¼­ ¸ÞÀÏÇü½Ä(ID@µµ¸ÞÀÎ³×ÀÓ)À» °Ë»ç.
//                 /(\S+)@(\S+)\.(\S+)/
//                 (\S+) : white space Áï, °ø¹éÀÌ ¾Æ´Ñ ÇÏ³ª ÀÌ»óÀÇ ¹®ÀÚ¿­ÀÌ Á¸Àç
//                  @ : ±× µÚ·Î °ñ¹ðÀÌ(at)°¡ Á¸ÀçÇÏ°í
//                 (\S+) : ´Ù½Ã ¹®ÀÚ¿­ÀÌ Á¸Àç
//                 \. : (.)dot
//                 (\S+) : ´Ù½Ã ¹®ÀÚ¿­ÀÌ Á¸Àç
// Parameter     :  
// Return        :  
//----------------------------------------------------------------------------------
// Usage         :  isEmailCheck(this) 
//----------------------------------------------------------------------------------
function isEmailCheck(email) {
    mvalue = email ;
    
    if (mvalue.value == null || mvalue.value == "") return;
    
    if (mvalue.value.search(/(\S+)@(\S+)\.(\S+)/) == -1) {
   alert ("ID@°íÀ¯µµ¸ÞÀÎ¸í Çü½ÄÀ¸·Î ÀÔ·ÂÇÏ¼¼¿ä!!\n\n¿¹) test@hanmail.net");
   
   mvalue.value = "";
   mvalue.focus();
   return false;
    } else {
   // alert("ÀÔ·ÂÇÏ½Å ¸ÞÀÏ ÁÖ¼Ò´Â\n\n" + mvalue.value + "\n\nÀÔ´Ï´Ù.");
   return false;
    }
}

//------------------------------------------------------------------
// Function name : fnBluring
// Description   :
// Parameter     :   
// Return        :  
//------------------------------------------------------------------
// Usage         :   
//------------------------------------------------------------------

function fnBluring() {
 if(event.srcElement.tagName=="A"||event.srcElement.tagName=="IMG"||event.srcElement.tagName=="Onclick"||event.srcElement.tagName=="TABLE") 
    document.body.focus(); 
} 

//------------------------------------------------------------------
// Function name : fnBsControl
// Description   : ¹é½ºÆäÀÌ½º Á¦¾î
// Parameter     :   
// Return        :  
//------------------------------------------------------------------
// Usage         :   
//------------------------------------------------------------------
function fnBsControl() {
 var d = document;
 //var sw = 0;
    
  if (window.event.keyCode==8) {
  // µî·ÏµÈ °´Ã¼ÀÌ¸§À» ¹é½ºÆäÀÌ½º ¹æÁö
  //if (d.objList == null)
  //{
  //    return false;
  //}
  //else
  //{
  //    for (i=0; i<d.objList.length; i++)
  //    {
  //         if (window.event.srcElement.name == d.objList[i].name)
  //         {
  //            sw = 1;          
  //            break;       
  //         }
  //    }
  //    
  //    if (sw == 0)
  //    {
  //        return false;
  //    }
  //}
  
  // Æû°´Ã¼ÀÇ Á¾·ù·Î ¹é½ºÆäÀÌ½º ¹æÁö
  if (window.event.srcElement.type != 'text') {
   return false;    
  }
  }
}

//------------------------------------------------------------------
// Function name : isValidDay
// Description   : ÁöÁ¤ ³â,¿ù,ÀÏÀÌ ´Þ·Â»óÀ¸·Î Á¸ÀçÇÏ´Â ³¯Â¥ÀÎÁö °Ë»ç
// Parameter     : year - ³â , month - ¿ù , day - ÀÏ  
// Return        :  
//------------------------------------------------------------------
// Usage         :   
//------------------------------------------------------------------
  
function isValidDay(year, month, day) {   
 var m = parseInt(month,10) - 1;
 var d = parseInt(day,10);

 var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
  end[1] = 29;
 }

 return (d >= 1 && d <= end[m]);
}


//-----------------------------------------------------------------------------------------
// Function name : addComma
// Description   : ÀÔ·ÂÃ¢¿¡ ¼ýÀÚ µ¥ÀÌÅÍ¸¦ ÀÔ·ÂÇÒ¶§ ÀÚµ¿À¸·Î 3ÀÚ¸®º°·Î ',' °¡ ºÙ¾î ÀÔ·ÂµÇ°ÔÇÔ
// Parameter     : str(¹®ÀÚ¿­(¼ýÀÚ))
// ----------------------------------------------------------------------------------------
// Usage         : <INPUT name="txtCtrl" size="10" style="text-align:right" maxlength="10" 
//                   onKeyUp= "javascript:cmm_add_comma(this);">
// Caution       : addCommaStr °ú ´Ù¸¥Á¡Àº value °¡ ¾Æ´Ñ obj°ª »ç¿ë
//-----------------------------------------------------------------------------------------

function addComma(obj) {
 var str = '';
 var str = String(delComma(obj));

 if (str.length < 1) {
  return "";
  } else {
  var tm = "";
  var ck = "";
  var tm1 = "";
  var tm2 = "";

  if (str.substring(0, 1) == "-") {
   tm = str.substring(1, str.length);
   ck = "Y";
  } else {
   tm = str;
   ck = "N";
  }
  //½Ç¼ö°æ¿ì . À» ±âÁØÀ¸·Î ±× ¾Õ¿¡¸¸ comma¸¦ ºÙÀÓ
  var idx = 0;
  var isReal = false; //½Ç¼ö¿©ºÎ
  for(i=0;i<tm.length;i++) {   
   if(tm.charAt(i)=='.') {
    idx = i;
    isReal = true;
    break;
   }
  } //end for
  if(isReal) {
   tm1 = tm.substring(0, idx);
   tm2 = tm.substring(idx+1, tm.length);
   tm = tm1;
  }

  var st = "";
  var cm = ",";

  for (var i = tm.length, j = 0; i > 0; i--, j++) {
   if ((j % 3) == 2) {
    if (tm.length == j + 1) st = tm.substring(i - 1, i) + st;
    else st = cm + tm.substring(i - 1, i) + st;
   } else {
     st = tm.substring(i - 1, i) + st;
   }
  }

  if (ck == "Y") {
   st = "-" + st;
  }

  if(isReal) { //½Ç¼öÀÇ °æ¿ì
   st +=  "."+ tm2;
  } 
 
  obj.value = st;
 }
}

//------------------------------------------------------------------
// Usage         : doDateFormatBack(this,'-') 
//------------------------------------------------------------------
 
function doDateFormatBack(obj, flag) {
 if (obj.value == null || obj.value == "")
  return;

 obj.value = getRmSpChar(obj.value, flag);
 
 obj.focus();
}

//------------------------------------------------------------------
// Function name : isInputDateChk
// Description   : objectÀÇ ³¯Â¥°ªÀÌ ¿Ã¹Ù¸¥ °ªÀÎÁö °Ë»çÇÏ¿© 
//                 ¿Ã¹Ù¸¥ °æ¿ì ÁÖ¾îÁø flag ·Î formatting ÇÑ´Ù.
// Parameter     : obj - object, flag: Formatting ½Ã »ç¿ëÇÒ ±ÛÀÚ
// Return        : flag°¡ »ðÀÔµÇ¾î Formatting µÈ ³¯Â¥ 
//------------------------------------------------------------------
// Usage         :  isInputDateChk(this,'-') 
//------------------------------------------------------------------
function isInputDateChk(obj, flag) {
 ls_date = obj.value;

 if (ls_date.length >= 1) {
  ls_date = getRmSpChar(ls_date, flag)
  
  s_check = isDateYMD(ls_date);

  if (s_check == false) {
   alert("³¯Â¥ Çü½ÄÀÌ ¸ÂÁö ¾Ê½À´Ï´Ù."); //³¯Â¥ Çü½ÄÀÌ ¸ÂÁö ¾Ê½À´Ï´Ù
   
   //alert(' < % = rb.getString("FM", "alert.invalid.Date") % > ');
   obj.value = "";
   obj.focus();

   return;
  } else {
   ls_date = ls_date.substring(0,4)+flag+ls_date.substring(4,6)+flag+ls_date.substring(6,8);
   obj.value = ls_date;
  }
 }
}

//------------------------------------------------------------------
// Function name : isDateYMD
// Description   : ³¯Â¥¿©ºÎ¸¦ Ã¼Å©
// Parameter     : ³¯Â¥¹®ÀÚ¸¸ ÀÖ´Â ½ºÆ®¸µ(20040430)  
//------------------------------------------------------------------
// Usage         :  isDateYMD("20040430") 
//------------------------------------------------------------------
function isDateYMD(ymd) {
 var yy,mm,dd;
 var y = "";
 var m = "";
 var d = "";
 y = ymd.substring(0, 4);
 m = ymd.substring(4, 6);
 d = ymd.substring(6, 8);

 if (isValidDay(y, m, d) == true) {
  return true;
 } else {
  return false; 
 }
}

//------------------------------------------------------------------
// Function name : isDateYMDDash
// Description   : ³¯Â¥¿©ºÎ¸¦ Ã¼Å©
// Parameter     : µ¥½¬ÇüÅÂ·Î µÈ ½ºÆ®¸µ(2004-04-30)
//------------------------------------------------------------------
// Usage         :  isDateYMDDash("2004-04-30") 
//------------------------------------------------------------------
function isDateYMDDash(ymd) {
 var yy,mm,dd;
 var y = "";
 var m = "";
 var d = "";

 y = ymd.substring(0, 4);
 m = ymd.substring(5, 7);
 d = ymd.substring(8, 10);

 if ( isValidDay(y, m, d) == true) {
  return true;
 } else {
  return false; 
 }
}
