<!--
/**
 '==============================================================================
 '#	INFORMATION
 '------------------------------------------------------------------------------
 '#	@Author 				: JJang. Jang,Seon-Joo (jeuse7@hanmail.net)
 '# @Reference 			: Kent. Y, Park (kkabi71@gmail.com)
 '#	@FileName 			: String.js
 '#	@Description 		: String Å¬·¡½º È®Àå
 '#	@Version 				: 1.0.0
 '#	@CreateDate 		: 2003.12.22
 '#	@UpdateDate 		: 2007.06.14
 '#	@Requirement 		: ../prototype/prototype.js
 '#	@Function List	: 
 '#		N/A
 '#		
 '==============================================================================
*/

Object.extend(String.prototype, {
	/**
	 * °ªÀÌ ºñ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(°ªÀÌ ºñ¾îÀÖ´ÂÁö ¿©ºÎ)
	 */
	isEmpty: function() {
		if (this == "" || this.length == 0) return true;
		return false;
	},
	
	/**
	 * °ø¹éÁ¦°Å(Trim)ÈÄ °ªÀÌ ºñ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(°ªÀÌ ºñ¾îÀÖ´ÂÁö ¿©ºÎ)
	 */
	isEmptyTrim: function() {
		if (this.length == 0 || this.getTrim() == "") return true;
		return false;
	},
	
	/**
	 * ¹®ÀÚ ÁÂ¿ì°ø¹é Á¦°ÅÈÄ ¸®ÅÏ
	 * @return String	(°ø¹éÁ¦°ÅÈÄ ¹®ÀÚ¿­)
	 */
	getTrim: function() {
		var tempStr = this;
		if (this.isEmpty()) return "";
	  if (tempStr.charAt(0) == " ")
	  	tempStr = (tempStr.substring(1, tempStr.length)).getTrim();
	 	if (tempStr.charAt(tempStr.length - 1) == " ")
	    tempStr = (tempStr.substring(0, tempStr.length - 1)).getTrim();
	  return tempStr;
	},
	
	/**
	 * Á¤±ÔÇ¥Çö½ÄÀ» ÀÌ¿ëÇÑ ¹®ÀÚ ÁÂ¿ì°ø¹é Á¦°ÅÈÄ ¸®ÅÏ
	 * @return String	(°ø¹éÁ¦°ÅÈÄ ¹®ÀÚ¿­)
	 */
	getTrimRegExp: function() {
		if (this.isEmpty()) return "";
		var pattern = /(^\s*)|(\s*$)/g;
		return this.replace(pattern, "");
	},
	
	/**
	 * ¹®ÀÚ Left°ø¹é Á¦°ÅÈÄ ¸®ÅÏ
	 * @return String	(°ø¹éÁ¦°Å ¹®ÀÚ¿­)
	 */
	getLTrim: function() {
		var tempStr = this;
		if (this.isEmpty()) return "";
	  if (tempStr.charAt(0) == " ")
	  	tempStr = (tempStr.substring(1, tempStr.length)).getLTrim();
	  return tempStr;
	},
	
	/**
	 * ¹®ÀÚ Right°ø¹é Á¦°ÅÈÄ ¸®ÅÏ
	 * @return String	(°ø¹éÁ¦°Å ¹®ÀÚ¿­)
	 */
	getRTrim: function() {
		var tempStr = this;
		if (this.isEmpty()) return "";
	  if (tempStr.charAt(tempStr.length - 1) == " ")
	    tempStr = (tempStr.substring(0, tempStr.length - 1)).getRTrim();
	  return tempStr;
	},
	
	/**
	 * Æ¯Á¤¹®ÀÚ¿­ÀÇ Æ÷ÇÔ¿©ºÎ ¸®ÅÏ
	 * @param strVal		(°Ë»öÇÒ ¹®ÀÚ¿­)
	 * @return boolean	(Æ¯Á¤¹®ÀÚ¿­ Æ÷ÇÔ¿©ºÎ)
	 */
	isIn: function(strVal) {
		if (strVal.isEmpty()) return false;
		if (this.indexOf(strVal) == -1) return false;
		return true;
	},
	
	/**
	 * ±¸ºÐÀÚ·Î µÇ¾îÀÖ´Â ¹®ÀÚ¿­¿¡ Æ¯Á¤¹®ÀÚ¿­ÀÇ Æ÷ÇÔ¿©ºÎ ¸®ÅÏ
	 * @param strVal		(°Ë»öÇÒ ¹®ÀÚ¿­)
	 * @param gubun			(±¸ºÐÀÚ)
	 * @return boolean	(Æ¯Á¤¹®ÀÚ¿­ Æ÷ÇÔ¿©ºÎ)
	 */
	isInGubun: function(strVal, gubun) {
		var arrStr = this.split(gubun);
		if (strVal.isEmpty()) return false;
		if (gubun.isEmpty()) return false;
		for (var i = 0; i < arrStr.length; i++)
			if (arrStr[i] == strVal) return true;
		return false;		
	},
	
	/**
	 * Left ÇÔ¼ö
	 * @param len				(ÃßÃâÇÒ ¹®ÀÚ¿­ÀÇ ±æÀÌ)
	 * @return String		(ÃßÃâÇÑ °á°ú°ª)
	 */
	getLeft: function(len) {
		return this.substring(0, len);
	},
	
	/**
	 * Right ÇÔ¼ö
	 * @param len				(ÃßÃâÇÒ ¹®ÀÚ¿­ÀÇ ±æÀÌ)
	 * @return String		(ÃßÃâÇÑ °á°ú°ª)
	 */
	getRight: function(len) {
		return this.substring(this.length - len);
	},
	
	/**
	 * Á¤±ÔÇ¥Çö½ÄÀ» ÀÌ¿ëÇÑ ReplaceÈÄ ¸®ÅÏ
	 * @param pattern		(Á¤±ÔÇ¥Çö½Ä ÆÐÅÏ)
	 * @param newStr		(»õ·Î¿î ¹®ÀÚ¿­)
	 * @return String		(º¯°æÈÄ ¹®ÀÚ¿­)
	 */
	getReplace: function(pattern, newStr) {
		var ObjReg = new RegExp();						//Á¤±ÔÇ¥Çö½Ä °´Ã¼»ý¼º
		ObjReg = eval("/" + pattern + "/gi");	//ÆÐÅÏÀ» ¼³Á¤(g:global-ÀüÃ¼ ¹®¼­¿¡¼­ °Ë»ö / i = insensitive-´ë,¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾ÊÀ½)
		return this.replace(ObjReg, newStr);
	},	
		
	/**
	 * ¾Õ¿¡ 0À» ºÙ¿©¼­ ¿øÇÏ´Â ±æÀÌÀÇ ¼ýÀÚ¸¦ ¸®ÅÏ
	 * @param len			(°¡Á®¿Ã ±æÀÌ) 
	 * @return int		(º¯°æµÈ ¼ýÀÚ)
	 */
	getAddZero: function(len) {
		var tempStr = "";
		if (this.length < len) {
			for (var i = 0; i < (len - this.length); i++)
				tempStr += 0;
		}
		return tempStr + this;
	},
	
	/**
	 * Á¤±ÔÇ¥Çö½ÄÀ» ÀÌ¿ëÇÑ ¼ýÀÚÇü½Ä¿¡ Ãµ´ÜÀ§¸¶´Ù ÄÞ¸¶ Âï¾î¼­ ¸®ÅÏ
	 * @return String	(º¯°æÈÄ ¹®ÀÚ¿­)
	 */
	getNumberFormat: function() {
		if (this.isEmpty()) return "";
		var pattern = /(\d)(?=(?:\d{3})+(?!\d))/g;
		return this.replace(pattern, "$1,");
	},
	
	/**
	 * ¹®ÀÚ¿­ÀÇ Byte¼ö¸¦ ¸®ÅÏ
	 * @return int	(¹®ÀÚ¿­ÀÇ Byte¼ö)
	 */
	getStringByte: function() {
		var strByte = 0;
		for (var i = 0; i < this.length; i++) {
			if (escape(this.charAt(i)).length > 4) {
				strByte += 2;
			//} else if (this.charAt(i) == '<' || this.charAt(i) == '>') {
			//	strByte += 4;
			} else if (this.charAt(i) == '\n') {
				if(this.charAt(i-1) != '\r') strByte += 1;
			} else {
				strByte += 1;
			}
		}
		return strByte;		
	},
	
	/**
	 * Á¦ÇÑµÈ Byte¼ö¸¦ Á¦¿ÜÇÑ ±ÛÀÚ»èÁ¦ÈÄ ¸®ÅÏ
	 * @param	maxByte		(Á¦ÇÑÇÒ Byte)
	 * @return String		(º¯°æµÈ ¹®ÀÚ¿­)
	 */
	getCutStringByte: function(maxByte) {
		var strByte = 0;
		var tempStr = "";
		for (var i = 0; i < this.length; i++) {
			tempStr += this.charAt(i)
			strByte = tempStr.getStringByte();
			if (strByte >= maxByte) break;
		}
		return tempStr;
	},
	
	/**
	 * ¼ýÀÚÀÎÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(¼ýÀÚÀÎÁö ¿©ºÎ)
	 */
	isNumber:	function() {
		return !isNaN(this);
	},
	
	/**
	 * ¹®ÀÚ¿­ÀÌ ¼ýÀÚ·Î¸¸ ±¸¼ºµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(¼ýÀÚ·Î¸¸ ±¸¼ºµÇ¾îÀÖ´ÂÁö ¿©ºÎ)
	 */
	isNumeric: function() {
		var digits = "0123456789";
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (!digits.isIn(this.charAt(i))) return false;
		return true;
	},
	
	/**
	 * ¹®ÀÚ¿­¿¡ ¼ýÀÚ°¡ Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(¹®ÀÚ¿­¿¡ ¼ýÀÚ Æ÷ÇÔ¿©ºÎ)
	 */
	isInNumeric: function() {
		var digits = "0123456789";
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (digits.isIn(this.charAt(i))) return true;
		return false;
	},
	
	/**
	 * ¹®ÀÚ¿­ÀÌ ¼ýÀÚ¿Í ¿µ¹®À¸·Î¸¸ ±¸¼ºµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(¼ýÀÚ¿Í ¿µ¹®À¸·Î¸¸ ±¸¼ºµÇ¾îÀÖ´ÂÁö ¿©ºÎ)
	 */
	isAlphaNumeric: function() {
		var digits = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (!digits.isIn(this.charAt(i))) return false;
		return true;
	},
	
	/**
	 * ¸ðµÎ Çã¿ëµÈ ±ÛÀÚÀÎÁö ¿©ºÎ ¸®ÅÏ
	 * @param digits		(Çã¿ëµÈ ¹®ÀÚ¿­)
	 * @return boolean	(¸ðµÎ Çã¿ëµÈ ±ÛÀÚÀÎÁö ¿©ºÎ)
	 */
	isAllowChar: function(digits) {
		if (this.isEmpty()) return false;
		if (digits.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (!digits.isIn(this.charAt(i))) return false;
		return true;
	},
		
	/**
	 * ¹®ÀÚ¿­¿¡ °ø¹éÀÌ(½ºÆäÀÌ½º) Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(½ºÆäÀÌ½º Æ÷ÇÔ¿©ºÎ)
	 */
	isInBlank: function() {
		if (this.isEmpty()) return false;
		if (!this.isIn(" ")) return false;
		return true;
	},
	
	/**
	 * ¹®ÀÚ¿­¿¡ ÇÑ±ÛÀÌ Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(ÇÑ±Û Æ÷ÇÔ¿©ºÎ)
	 */
	isInHangul: function() {
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if(escape(this.charAt(i)).length > 4) return true;
		return false;
	},
		
	/**
	 * ¹®ÀÚ¿­¿¡ ÇÑ±Û¿Ü ´Ù¸¥±ÛÀÚ Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(ÇÑ±Û¿Ü ´Ù¸¥±ÛÀÚ Æ÷ÇÔ¿©ºÎ)
	 */
	isInNotHangul: function() {
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if(escape(this.charAt(i)).length < 4) return true;
		return false;
	},
	
	/**
	 * ¹®ÀÚ¿­¿¡ ¾ËÆÄºªÀÌ Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(¾ËÆÄºª Æ÷ÇÔ¿©ºÎ)
	 */
	isInAlpha: function() {
		var digits = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (digits.isIn(this.charAt(i))) return true;
		return false;
	},	
	
	/**
	 * ¹®ÀÚ¿­¿¡ ¾ËÆÄºª¼Ò¹®ÀÚ°¡ Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(¾ËÆÄºª¼Ò¹®ÀÚ Æ÷ÇÔ¿©ºÎ)
	 */
	isInLowerCase: function() {
		var digits = "abcdefghijklmnopqrstuvwxyz";
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (digits.isIn(this.charAt(i))) return true;
		return false;
	},
	
	/**
	 * ¹®ÀÚ¿­¿¡ ¾ËÆÄºª´ë¹®ÀÚ°¡ Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(¾ËÆÄºª´ë¹®ÀÚ Æ÷ÇÔ¿©ºÎ)
	 */
	isInUpperCase: function() {
		var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (digits.isIn(this.charAt(i))) return true;
		return false;
	},
	
	/**
	 * ¹®ÀÚ¿­¿¡ Æ¯¼ö¹®ÀÚ°¡ Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(Æ¯¼ö¹®ÀÚ Æ÷ÇÔ¿©ºÎ)
	 */
	isInSpecialChar: function() {
		var digits = "`~!@#$%^&*()-_=+\\|[]{};:\'\",.<>?/";
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (digits.isIn(this.charAt(i))) return true;
		return false;
	},
	
	/**
	 * ¹®ÀÚ¿­¿¡ Quotation Mark°¡ Æ÷ÇÔµÇ¾îÀÖ´ÂÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(Quotation Mark Æ÷ÇÔ¿©ºÎ)
	 */
	isInMark: function() {
		var digits = "\'\"";
		if (this.isEmpty()) return false;
		for (var i = 0; i < this.length; i++)
			if (digits.isIn(this.charAt(i))) return true;
		return false;
	},	
	 
	/**
	 * ¹®ÀÚ¿­ ±æÀÌ°¡ ÃÖ¼Ò°ª°ú ÃÖ´ë°ª¿¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @param	minLen		(ÃÖ¼Ò°ª)
	 * @param	maxLen		(ÃÖ´ë°ª)
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidLen: function(minLen, maxLen) {
		if(this.length >= minLen) {
			if (maxLen > 0) {
				if (this.length <= maxLen) {
					return true;
				} else {
					return false;
				}
			} else {
				return true;
			}
		}
		return false;
	},
	
	/**
	 * ¹®ÀÚ¿­ Byte°¡ ÃÖ¼Ò°ª°ú ÃÖ´ë°ª¿¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @param	minByte		(ÃÖ¼Ò Byte°ª)
	 * @param	maxByte		(ÃÖ´ë Byte°ª)
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidByte: function(minByte, maxByte) {
		if(this.getStringByte() >= minByte) {
			if (maxByte > 0) {
				if (this.getStringByte() <= maxByte) {
					return true;
				} else {
					return false;
				}
			} else {
				return true;
			}
		}
		return false;
	},
	
	/**
	 * ³¯Â¥Çü½ÄÀÌ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @param gubun			(³¯Â¥ ±¸ºÐÀÚ)
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidDate: function(gubun) {
		var arrVal = this.split(gubun || "-");
		if (arrVal.length != 3) return false;
		var sysDate = arrVal[0] + arrVal[1] + arrVal[2];
		if (!arrVal[0].isValidLen(4, 4) || !arrVal[1].isValidLen(1, 2) || !arrVal[2].isValidLen(1, 2) || !sysDate.isNumeric())
			return false;
		var year = arrVal[0];
		var month = arrVal[1] - 1;
		var day = arrVal[2];
		var newDate = new Date(year, month, day);
		if (newDate.getFullYear() != year || newDate.getMonth() != month || newDate.getDate() != day)
			return false;
		return true;	
	},

	/**
	 * ¿ìÆí¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidZipCode: function() {
		var arrVal = this.split("-");
		if (arrVal.length != 2) return false;
		var zipCode = arrVal[0] + arrVal[1];
		if (!arrVal[0].isValidLen(3, 3) || !arrVal[1].isValidLen(3, 3) || !zipCode.isNumeric())
			return false;
		return true;
	},
	
	/**
	 * ÀüÈ­¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidPhone: function() {
		var arrVal = this.split("-");
		if (arrVal.length != 3) return false;
		var phone = arrVal[0] + arrVal[1] + arrVal[2];
		if (!arrVal[0].isValidLen(2, 3) || !arrVal[1].isValidLen(3, 4) || !arrVal[2].isValidLen(4, 4) || !phone.isNumeric())
			return false;
		return true;
	},
	
	/**
	 * ÇÚµåÆù¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidCellPhone: function() {
		var arrVal = this.split("-");
		if (arrVal.length != 3) return false;
		var cellPhone = arrVal[0] + arrVal[1] + arrVal[2];
		if (!arrVal[0].isValidLen(3, 4) || !arrVal[1].isValidLen(3, 4) || !arrVal[2].isValidLen(4, 4) || !cellPhone.isNumeric())
			return false;
		return true;
	},
	
	/**
	 * ¸ÞÀÏÁÖ¼Ò°¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidEmail: function() {
  	var pattern1 = /[^@]+@[A-Za-z0-9_\-]+\.[A-Za-z]+/;
    var pattern2 = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
    var pattern3 = /[^@]+@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z]+/;
    var pattern4 = /[^@]+@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z]+/;
    if (pattern1.test(this)) return true;
    if (pattern2.test(this)) return true;
    if (pattern3.test(this)) return true;
    if (pattern4.test(this)) return true;
    return false;
	},
	
	/**
	 * ÁÖ¹Î¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidJuminNo:	function() {
		var arrVal = this.split("-");
		if (arrVal.length != 2) return false;
		var juminNo = arrVal[0] + arrVal[1];
		if (!arrVal[0].isValidLen(6, 6) || !arrVal[1].isValidLen(7, 7) || !juminNo.isNumeric())
			return false;
		var birthYear = (juminNo.charAt(6) <= "2") ? "19" : "20"; //»ý³â¿ùÀÏ À¯È¿¼º Ã¼Å©
		birthYear += juminNo.substr(0, 2);
		var birthMonth = juminNo.substr(2, 2) - 1;
		var birthDate = juminNo.substr(4, 2);
		var birthDay = new Date(birthYear, birthMonth, birthDate);
		if (birthDay.getYear() % 100 != juminNo.substr(0,2) || birthDay.getMonth() != birthMonth || birthDay.getDate() != birthDate)
			return false;
		var buf = new Array(12); //Checksum
		var sum = 0;
		for (var i = 0; i < 6; i++) buf[i] = parseInt(juminNo.charAt(i));
		for (var i = 6; i < 13; i++) buf[i] = parseInt(juminNo.charAt(i));
		var multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
		for (var i = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
		if ((11 - (sum % 11)) % 10 != buf[12]) return false;
		return true;
	},
	
	/**
	 * »ç¾÷ÀÚµî·Ï¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidBizNo: function() {
		var arrVal = this.split("-");
		if (arrVal.length != 3) return false;
		var bizNo = arrVal[0] + arrVal[1] + arrVal[2];
		if (!arrVal[0].isValidLen(3, 3) || !arrVal[1].isValidLen(2, 2) || !arrVal[2].isValidLen(5, 5) || !bizNo.isNumeric())
			return false;
		var buf = new Array(10); //Checksum
		var sum = 0;
		for (var i = 0; i < 10; i++) buf[i] = parseInt(bizNo.charAt(i));
		var multipliers = [0,3,7,0,3,7,0,3,0.5,0];
		for (var i = 0; i < 10; i++) {
			if (multipliers[i] == 0) {
				sum += buf[i] + multipliers[i];
			} else {
				var tmpI = (buf[i] * multipliers[i]).toString();
				if (tmpI.isIn(".")) {
					var tmpA = tmpI.split(".");
					sum += parseInt(tmpA[0]) + parseInt(tmpA[1]);
				} else {
					sum += parseInt(tmpI);
				}
			}
		}
		if ((sum % 10) != 0) return false;
		return true;
	},
	
	/**
	 * ¹ýÀÎµî·Ï¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidCorpNo: function() {
		var arrVal = this.split("-");
		if (arrVal.length != 2) return false;
		var corpNo = arrVal[0] + arrVal[1];
		if (!arrVal[0].isValidLen(6, 6) || !arrVal[1].isValidLen(7, 7) || !corpNo.isNumeric())
			return false;	
		var buf = new Array(12); //Checksum
		var sum=0;
		for (var i = 0; i < 6; i++) buf[i] = parseInt(corpNo.charAt(i));
		for (var i = 6; i < 13; i++) buf[i] = parseInt(corpNo.charAt(i));
		var multipliers = [1,2,1,2,1,2,1,2,1,2,1,2];
		for (var i = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
		if ((10 - (sum % 10)) % 10 != buf[12]) return false;
		return true;
	},
	
	/**
	 * ¿Ü±¹ÀÎ µî·Ï¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ ¸®ÅÏ
	 * @return boolean	(À¯È¿ÇÑÁö ¿©ºÎ)
	 */
	isValidFnrNo: function() {
		var arrVal = this.split("-");
		if (arrVal.length != 2) return false;
		var fnrNo = arrVal[0] + arrVal[1];
		if (!arrVal[0].isValidLen(6, 6) || !arrVal[1].isValidLen(7, 7) || !fnrNo.isNumeric())
			return false;	
    var buf = new Array(13); //Checksum
    var odd = 0;
    var sum = 0;
    for (var i = 0; i < 13; i++) buf[i] = parseInt(fnrNo.charAt(i));
    odd = (buf[7] * 10) + buf[8];
    if (odd % 2 != 0)
      return false;
    if ((buf[11] != 6) && (buf[11] != 7) && (buf[11] != 8) && (buf[11] != 9))
      return false;
    multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
    for (var i = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
    sum = 11 - (sum % 11);
    if (sum >= 10) sum -= 10;
    sum += 2;
    if (sum >= 10) sum -= 10;
    if (sum != buf[12]) return false;
   	return true;
	},

	/**
	 * ÁöÁ¤µÈ µÎ ³¯Â¥Çü½Ä ¹®ÀÚ¿­ÀÇ ÀÏ,½Ã,ºÐ,ÃÊ °£°ÝÀ» °è»êÇØ¼­ ¸®ÅÏÇÑ´Ù.
	 * @param _date1		(°è»ê¿¡ »ç¿ëÇÒ ³¯Â¥)
	 * @param _date2		(°è»ê¿¡ »ç¿ëÇÒ ³¯Â¥)
	 * @param _gubun		(³¯Â¥ ±¸ºÐÀÚ)
	 * @return long			(ÇØ´ç °£°Ý)
	 */
	getDateDiff: function(_date1, _date2, _gubun) {
		var result = 0;
		var gubun = _gubun || "-";
		if (!_date1.isValidDate(gubun) || !_date2.isValidDate(gubun)) {
			alert("Àß¸øµÈ ³¯Â¥ Çü½Ä ÀÔ´Ï´Ù!! ");
			return result;
		} else {
			var millisecond = 1000;
			var second = 60;
			var minute = 60;
			var day = 24;
			var month = 30;
			var year = 12;
			var arrDate1 = _date1.split(gubun);
			var arrDate2 = _date2.split(gubun);
			var newDate1 = new Date(arrDate1[0], arrDate1[1], arrDate1[2]);
			var newDate2 = new Date(arrDate2[0], arrDate2[1], arrDate2[2]);
			var dateDiff = newDate1.getTime() - newDate2.getTime();
			switch (this.toString()) {
				case "d" :
						result = dateDiff / (millisecond*second*minute*day);
						break;
				case "m" :
						result = dateDiff / (millisecond*second*minute*day*month);
						break;
				case "y" :
						result = dateDiff / (millisecond*second*minute*day*month*year);
						break;
				default :
						result = dateDiff / (1000*60*60*24);
			}
			return result;
		}
	},
	
	/**
	 * ¹è¿­¿¡¼­ Ã£À»°ªÀÌ ÇØ´ç¹øÂ° ³ªÅ¸³ª´Â ÀÎµ¦½º¹øÈ£ ¸®ÅÏ
	 * @param	_ObjArray	(¹è¿­°´Ã¼)
	 * @param _rank			(ÇØ´ç¼øÀ§ : °ªÀÌ ¾øÀ»°æ¿ì Ã¹¹øÂ°°ª, -1ÀÏ°æ¿ì ¸¶Áö¸·°ª)
	 * @return int			(ÀÎµ¦½º¹øÈ£)
	 */
	getArrayIndex: function(_ObjArray, _rank) {
		var result = -1;
		var rank = 0
		for (var i = 0; i < _ObjArray.length; i++) {
			if (this == _ObjArray[i]) {
				rank += 1;
				if (!_rank) {
					result = i;
					break;
				} else if (_rank == "-1") {
					result = i;
				} else {
					if (_rank == rank) {
						result = i;
						break;
					}
				}
			}
		}
		return result;
	}
});
//-->
