//------------------------------------------------------------------------
// ¼ýÀÚÁ¦ÇÑ 
//
//   ARGUMENTS
//      val = ÇÊµå
//
//   RETURN
//
// ¿¹Á¦) 
// 
//------------------------------------------------------------------------
function checkNumber(val) {
	var str_number = "0123456789";

	for(var i=0;i < val.value.length;i++) {
		if(str_number.indexOf(val.value.substring(i,i+1)) < 0) {
			alert("Àß¸øµÈ ¹®ÀÚ¸¦ ÀÔ·ÂÇÏ¿´½À´Ï´Ù.\n\n¼ýÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä");
			val.value = "";
			val.focus();
			return;
		}
	}

	return true;
}

//------------------------------------------------------------------------
// ÀÌ¸ÞÀÏÇü½ÄÃ¼Å© (onClick ÀÌº¥Æ®)
//
//   ARGUMENTS
//      val = ÇÊµå
//
//   RETURN
//
// ¿¹Á¦) 
// 
//------------------------------------------------------------------------
function checkEmail(val) {
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray = val.value.match(emailPat);

	if(val.value == "") {
		alert("E-Mail ÁÖ¼Ò¸¦ ÀÔ·ÂÇÏ¿© ÁÖ½Ê½Ã¿À."); 
		val.focus();
		return; 
	}

	if (matchArray == null) { 
		alert("E-mail ÁÖ¼Ò Çü½Ä¿¡ ¹®Á¦°¡ ÀÖ½À´Ï´Ù.\n\n E-mail¸¦ È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À."); 
		val.focus();
		return; 
	}

	var user   = matchArray[1];
	var domain = matchArray[2];

	if (user.match(userPat)==null) { 
		alert("E-mailÀÇ ID ºÎºÐ Çü½Ä¿¡ ¹®Á¦°¡ ÀÖ½À´Ï´Ù.\n\n E-mail¸¦ È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À."); 
		val.focus();
		return; 
	}

	var IPArray = domain.match(ipDomainPat);

	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) { 
				alert("E-mail ¸ñÀû IP¿¡ ¹®Á¦°¡ ÀÖ½À´Ï´Ù.\n\n E-mail¸¦ È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À."); 
				val.focus();
				return; 
			}
		}

		return true;
	}

	var domainArray = domain.match(domainPat);

	if (domainArray == null) { 
		alert("E-mail ÁÖ¼ÒÀÇ µµ¸ÞÀÎ¸íÀÌ Æ²¸³´Ï´Ù.\n\n E-mail¸¦ È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À. "); 
		val.focus();
		return; 
	}

	var atomPat = new RegExp(atom,"g")
	var domArr  = domain.match(atomPat)
	var len     = domArr.length

	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
		alert("E-mail ÁÖ¼ÒÀÇ µµ¸ÞÀÎ¸íÀÌ Æ²¸³´Ï´Ù.\n\n E-mail¸¦ È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À."); 
		val.focus();
		return; 
	}

	if (len<2) { 
		alert("E-mail ÁÖ¼ÒÀÇ È£½ºÆ®¸íÀÌ Æ²¸³´Ï´Ù.\n\n E-mail¸¦ È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À."); 
		val.focus();
		return; 
	}

	return true;
}

//------------------------------------------------------------------------
// ±ÛÀÚ¼ö Á¦ÇÑ Ã¼Å© (onKeyUp ÀÌº¥Æ®)
//
//   ARGUMENTS
//      len = Á¦ÇÑÇÏ·Á´Â Byte ¼ö(ÇÑ±ÛÀº 2byes Ã³¸®ÇÔ)
//
//   RETURN
//
// ¿¹Á¦) <textarea name="userPswd" cols="60" rows="2" onKeyUp="cm_charNumChk(this, 80);"></textarea>
// 
//------------------------------------------------------------------------
function charNumChk(obj, len) {

	var str = obj.value;
	var nLen = str.length+(escape(str)+"%u").match(/%u/g).length-1;
    if ( nLen <= len ) {
       return;
    } else {
    	alert(len + " byte ¸¦ ÃÊ°úÇÏ¿© ÀÔ·ÂÇÒ ¼ö ¾ø½À´Ï´Ù.");
    	obj.value = charCutBytes(obj.value, len);
    	obj.focus();
        return;
    }
}

//------------------------------------------------------------------------
// ÇØ´ç ¹®ÀÚ¿­À» ÁöÁ¤µÈ bytes ¼ö ¸¸Å­¸¸ Àß¶ó³½´Ù.
// (ÇÑ±Û°ú °°Àº 2 Byte ¹®ÀÚ´Â ÁöÁ¤µÈ Byte °¡ ³ÑÀ» °æ¿ì Àß¸±¼öµµ ÀÖÀ½)
//
//   ARGUMENTS
//      str = ´ë»ó¹®ÀÚ¿­
//      len = Àß¶ó³¾ Byte ¼ö (ÇÑ±ÛÀº 2byes Ã³¸®ÇÔ)
//
//   RETURN
//      Ã³¸®µÈ ¹®ÀÚ¿­
//
//------------------------------------------------------------------------
function charCutBytes(str, len) {
	var byteLength = 0;
	var result = '';
	
	for (var inx = 0; inx < str.length; inx++) {
		var oneChar = escape(str.charAt(inx));
		if ( oneChar.length == 1 ) {
			byteLength ++;
		} else if (oneChar.indexOf("%u") != -1) {
			byteLength += 2;
		} else if (oneChar.indexOf("%") != -1) {
			byteLength += oneChar.length/3;
		}
		
		// bytes ±æÀÌ¸¦ ³Ñ¾î¹ö¸®¸é ¸¶Áö¸· ±ÛÀÚ´Â ³ÖÁö¾Ê°í ¸®ÅÏÇÑ´Ù.
		if( byteLength > len )		break;
		
		result += str.charAt(inx);
		
		if( byteLength == len )	break;
	}
	
	return result;
}
