<!--
/**
 '==============================================================================
 '#	INFORMATION
 '------------------------------------------------------------------------------
 '#	@Author 				: JJang. Jang,Seon-Joo (jeuse7@hanmail.net)
 '# @Reference 			: Kent. Y, Park (kkabi71@gmail.com)
 '#	@FileName 			: FormValidator.Eng.js
 '#	@Description 		: ÆûÀ¯È¿¼º Ã¼Å© Å¬·¡½º
 '#	@Version 				: 1.0.0
 '#	@CreateDate 		: 2003.12.22
 '#	@UpdateDate 		: 2007.06.14
 '#	@Requirement 		: ../prototype/prototype.js, String.js
 '#	@Function List	:
 '#		N/A
 '#
 '==============================================================================
*/


var CONST_UPLOAD_DenyFileType = "jsp/class/asp/aspx/php/php3/exe/com/bat/sh/pl/asa/cgi/inc/js/xls/xlsx/do";	//¾÷·Îµå Á¦ÇÑ È®ÀåÀÚ (""ÀÏ°æ¿ì Á¦ÇÑ ¾øÀ½)
var CONST_UPLOAD_AllowPhotoType = "jpg/jpeg/gif";																								//ÀÌ¹ÌÁöÆÄÀÏ Çã¿ë È®ÀåÀÚ (""ÀÏ°æ¿ì Á¦ÇÑ ¾øÀ½)
var CONST_UPLOAD_AllowMovieType = "asf/wma/wmv";																		//µ¿¿µ»óÆÄÀÏ Çã¿ë È®ÀåÀÚ (""ÀÏ°æ¿ì Á¦ÇÑ ¾øÀ½)
/**
 * ÆûÀ¯È¿¼º Ã¼Å© Constructor
 * @param _objForm	(Æû°´Ã¼)
 */
var FormValidator = function(_objForm) {
	this.objForm = _objForm;
	this.fieldIndex = 0;
	this.arrField = new Array();
	this.ELEMENT_OBJ = null;
	this.ELEMENT_TITLE = null;
	this.ELEMENT_TYPE	= null;
	this.FOCUS_OBJ = null;
	this.ERR_MESSAGE_DEFAULT = null;
	this.ERR_MESSAGE_NEW	= null;
	this.IS_DELETED = false;
	this.IS_SELECTED = false;
	this.IS_PASSING = true;
}

/**
 * ÇÊµå¿ä¼Ò Á¤º¸ÀúÀå Constructor
 * @param fieldName		(ÇÊµåÀÇ ÀÌ¸§ ¶Ç´Â °´Ã¼)
 * @param fieldTitle	(ÇÊµåÀÇ Á¦¸ñ)
 * @param fieldChk		(ÇÊµåÃ¼Å© ¿ä¼Ò)
 */
var ElementInfo = function(_fieldName, _fieldTitle, _fieldChk) {
	this.fieldName = _fieldName;
	this.fieldTitle	= _fieldTitle;
	this.fieldChk = _fieldChk;
}

/**
 * ÀÏ°ý ÆûÀ¯È¿¼º Ã¼Å©ÇÒ ÇÊµåÃß°¡
 * @param fieldName		(ÇÊµåÀÇ ÀÌ¸§ ¶Ç´Â °´Ã¼)
 * @param fieldTitle	(ÇÊµåÀÇ Á¦¸ñ)
 * @param fieldChk		(ÇÊµåÃ¼Å© ¿ä¼Ò)
 */
FormValidator.prototype.addField = function(fieldName, fieldTitle, fieldChk) {
	this.arrField[this.fieldIndex] = new ElementInfo(fieldName, fieldTitle, fieldChk);
	this.fieldIndex++;
}

/**
 * ÀÏ°ý ÆûÀ¯È¿¼º Ã¼Å©ÈÄ °á°ú ¸®ÅÏ
 * @return boolean	(ÆûÀ¯È¿¼º ¿©ºÎ)
 */
FormValidator.prototype.formCheck = function() {
	for (var i = 0; i < this.arrField.length; i++) {
		var arrMethod = this.arrField[i].fieldChk.split("|");
		for (var j = 0; j < arrMethod.length; j++) {
			if (!isEmptyTrim(arrMethod[j])) {
				this.ELEMENT_OBJ = isObject(this.arrField[i].fieldName) ? this.arrField[i].fieldName : this.objForm[this.arrField[i].fieldName];
				this.ELEMENT_TITLE = this.arrField[i].fieldTitle;
				this.ELEMENT_TYPE = this.ELEMENT_OBJ.type;
				this.FOCUS_OBJ = this.ELEMENT_OBJ;
				if (this.ELEMENT_TYPE == undefined) {
					this.ELEMENT_TYPE = this.ELEMENT_OBJ[0].type;
					this.FOCUS_OBJ = this.ELEMENT_OBJ[0];
				}
				if (this.ELEMENT_OBJ.disabled) continue;
				if (!eval("this." + arrMethod[j])) return false;
			}
		}
	}
	return true;
}

/**
 * ´ÜÀ§º° ÆûÀ¯È¿¼º Ã¼Å©
 * @param fieldName		(ÇÊµåÀÇ ÀÌ¸§ ¶Ç´Â °´Ã¼)
 * @param fieldTitle	(ÇÊµåÀÇ Á¦¸ñ)
 * @param fieldChk		(ÇÊµåÃ¼Å© ¿ä¼Ò)
 */
FormValidator.prototype.checkField = function(fieldName, fieldTitle, fieldChk) {
	if (this.IS_PASSING) {
		if (!isObject(fieldName) && fieldName.isIn("FCKeditor_")) {
			var newFieldName = fieldName.replace("FCKeditor_", "");
			var arrMethod = fieldChk.split("|");
			for (var i = 0; i < arrMethod.length; i++) {
				if (this.IS_PASSING) {
					if (isEmptyTrim(arrMethod[i])) continue;
					if (arrMethod[i] == "required()") {
						if (isEmptyTrim(FCKeditor.getValue(newFieldName))) {
							alert("\"" + fieldTitle + "\" ¢¡ It is an essential item. ");
							FCKeditor.focus(newFieldName);
							this.IS_PASSING = false;
						}
					}
				}
			}
		} else {
			var arrMethod = fieldChk.split("|");
			for (var i = 0; i < arrMethod.length; i++) {
				if (this.IS_PASSING) {
					if (!isEmptyTrim(arrMethod[i])) {
						this.ELEMENT_OBJ = isObject(fieldName) ? fieldName : this.objForm[fieldName];
						this.ELEMENT_TITLE = fieldTitle;
						this.ELEMENT_TYPE = this.ELEMENT_OBJ.type;
						this.FOCUS_OBJ = this.ELEMENT_OBJ;
						if (this.ELEMENT_TYPE == undefined) {
							this.ELEMENT_TYPE = this.ELEMENT_OBJ[0].type;
							this.FOCUS_OBJ = this.ELEMENT_OBJ[0];
						}
						if (this.ELEMENT_OBJ.disabled) continue;
						if (!eval("this." + arrMethod[i])) this.IS_PASSING = false;
					}
				}
			}
		}
	}
}

/**
 * ´ÜÀ§º° ÆûÀ¯È¿¼º Ã¼Å© °á°ú ¸®ÅÏ
 * @return boolean	(ÆûÀ¯È¿¼º ¿©ºÎ)
 */
FormValidator.prototype.isPassing = function() {
	return this.IS_PASSING;
}

/**
 * ¿¡·¯¸Þ½ÃÁö Ãâ·Â ¹× Æ÷Ä¿½ºÃ³¸®
 */
FormValidator.prototype.executeError = function() {
	if (!isEmptyTrim(this.ERR_MESSAGE_NEW)) {
		alert(this.ERR_MESSAGE_NEW);
	} else {
		alert("\"" + this.ELEMENT_TITLE + "\" ¢¡ " + this.ERR_MESSAGE_DEFAULT);
	}
	if (this.IS_DELETED) this.ELEMENT_OBJ.value = "";
	this.ERR_MESSAGE_NEW = null;
	this.IS_DELETED = false;
	if(this.FOCUS_OBJ) {
		try {
			Field.focus(this.FOCUS_OBJ);
			if (this.IS_SELECTED) Field.select(this.FOCUS_OBJ);
		} catch (E) {}
	}
	this.IS_SELECTED = false;
}

/**
 * ÇÊ¼öÇ×¸ñÀ» ÀÔ·ÂÇß´ÂÁö Ã¼Å©ÇÑ´Ù.
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(ÇÊ¼öÇ×¸ñ ÀÔ·ÂÇß´ÂÁö ¿©ºÎ)
 */
FormValidator.prototype.required = function(errMsg) {
	var runFunc = "this.ELEMENT_OBJ.value.isEmptyTrim()";
	if (this.ELEMENT_TYPE == "checkbox" || this.ELEMENT_TYPE == "radio")
		runFunc = "!Field.isChecked(this.ELEMENT_OBJ)";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "It is an essential item. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		if (this.ELEMENT_TYPE != "checkbox" && this.ELEMENT_TYPE != "radio") this.IS_DELETED = true;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÀÔ·Â°ªÀÌ ¼ýÀÚ(0123456789)·Î¸¸ ±¸¼ºµÇ¾îÀÖ´ÂÁö Ã¼Å©ÇÑ´Ù.
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(¼ýÀÚÀÎÁö ¿©ºÎ)
 */
FormValidator.prototype.numeric = function(errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "!this.ELEMENT_OBJ.value.isNumeric()";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "Only number to input. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.IS_SELECTED = true;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÀÔ·Â°ªÀÌ Number(.0123456789)·Î¸¸ ±¸¼ºµÇ¾îÀÖ´ÂÁö Ã¼Å©ÇÑ´Ù.
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(NumberÀÎÁö ¿©ºÎ)
 */
FormValidator.prototype.number = function(errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "!this.ELEMENT_OBJ.value.isNumber()";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "Only number to input. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.IS_SELECTED = true;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÀÔ·Â°ªÀÌ ¼ýÀÚ¿Í ¿µ¹®À¸·Î¸¸ ±¸¼ºµÇ¾îÀÖ´ÂÁö Ã¼Å©ÇÑ´Ù.
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(¼ýÀÚ,¿µ¹®¿¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.alphaNumeric = function(errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "!this.ELEMENT_OBJ.value.isAlphaNumeric()";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "Only number and the alphabet to input. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.IS_SELECTED = true;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÇÑ±ÛÀÌ Æ÷ÇÔµÇÁö ¾Ê¾Æ¾ß ÇÏ´Â Á¶°ÇÀ» Ã¼Å©ÇÑ´Ù.
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(ÇÑ±ÛÀÌ ¾ø´ÂÁö ¿©ºÎ)
 */
FormValidator.prototype.denyHangul = function(errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "this.ELEMENT_OBJ.value.isInHangul()";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "It does not input the Korean alphabet. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.IS_SELECTED = true;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * °ø¹éÀÌ Æ÷ÇÔµÇÁö ¾Ê¾Æ¾ß ÇÏ´Â Á¶°ÇÀ» Ã¼Å©ÇÑ´Ù.
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(°ø¹éÀÌ ¾ø´ÂÁö ¿©ºÎ)
 */
FormValidator.prototype.denyBlank = function(errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "this.ELEMENT_OBJ.value.isInBlank()";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "It does not input the blank. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.IS_SELECTED = true;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * (ÀÛÀº,Å«)µû¿ÈÇ¥ Æ÷ÇÔµÇÁö ¾Ê¾Æ¾ß ÇÏ´Â Á¶°ÇÀ» Ã¼Å©ÇÑ´Ù.
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(µû¿ÈÇ¥°¡ ¾ø´ÂÁö ¿©ºÎ)
 */
FormValidator.prototype.denyMark = function(errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "this.ELEMENT_OBJ.value.isInMark()";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "It will not be able to input a quotation mark. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.IS_SELECTED = true;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * µÎ°³ÀÇ Æû°ªÀÌ °°ÀºÁö ºñ±³ÇÑ´Ù.
 * @param fieldName	(ºñ±³ÇÒ ÇÊµå¸í)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(Æû°ªÀÌ °°ÀºÁö ¿©ºÎ)
 */
FormValidator.prototype.compare = function(fieldName, errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var targetVal = eval("this.objForm." + fieldName + ".value");
	if (targetVal != this.ELEMENT_OBJ.value) {
		this.ERR_MESSAGE_DEFAULT = "It is not same. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.IS_SELECTED = true;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÀÔ·Â°ªÀÇ ±æÀÌ°¡ ÃÖ¼Ò°ª°ú ÃÖ´ë°ª¿¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param	minLen		(ÃÖ¼Ò±æÀÌ)
 * @param	maxLen		(ÃÖ´ë±æÀÌ)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(ÃÖ¼Ò,ÃÖ´ë°ª¿¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.validLen = function(minLen, maxLen, errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "!this.ELEMENT_OBJ.value.isValidLen(minLen, maxLen)";
	if (eval(runFunc)) {
		if (minLen == maxLen) {
			this.ERR_MESSAGE_DEFAULT = "It inputs with " + minLen + " letters and it does. ";
		} else {
			if (maxLen == 0) this.ERR_MESSAGE_DEFAULT = "Above " + minLen + " letters it inputs and it does. ";
			else if (minLen == 0) this.ERR_MESSAGE_DEFAULT = "It inputs below " + maxLen + " letters. ";
			else this.ERR_MESSAGE_DEFAULT = "It inputs below " + maxLen + " letters above " + minLen + " letters and it does. ";
		}
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÀÔ·Â°ªÀÇ Byte°¡ ÃÖ¼Ò°ª°ú ÃÖ´ë°ª¿¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param	minByte		(ÃÖ¼Ò Byte°ª)
 * @param	maxByte		(ÃÖ´ë Byte°ª)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(ÃÖ¼Ò,ÃÖ´ë°ª¿¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.validByte = function(minByte, maxByte, errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "!this.ELEMENT_OBJ.value.isValidByte(minByte, maxByte)";
	if (eval(runFunc)) {
		if (minByte == maxByte) {
			this.ERR_MESSAGE_DEFAULT = "It inputs with " + minByte + " letters and it does.\n(The hangul (korean alphabet) 1 letter is English 2 letter.) ";
		} else {
			if (maxByte == 0) this.ERR_MESSAGE_DEFAULT = "Above " + minByte + " letters it inputs and it does.\n(The hangul (korean alphabet) 1 letter is English 2 letter.)";
			else this.ERR_MESSAGE_DEFAULT = "It inputs below " + maxByte + " letters above " + minByte + " letters and it does.\n(The hangul (korean alphabet) 1 letter is English 2 letter.)";
		}
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * Ã¼Å©¹Ú½º ¼±ÅÃµÈ °³¼ö°¡ ÃÖ¼Ò °³¼ö¿Í ÃÖ´ë °³¼ö¿¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param	minCnt		(ÃÖ¼Ò °³¼ö)
 * @param	maxCnt		(ÃÖ´ë °³¼ö)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(ÃÖ¼Ò,ÃÖ´ë°ª¿¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.validCheckedCnt = function(minCnt, maxCnt, errMsg) {
	if (!Field.isChecked(this.ELEMENT_OBJ)) return true;
	var result = false;
	if (Field.getCheckedCnt(this.ELEMENT_OBJ) >= minCnt) {
		if (maxCnt > 0) {
			if (Field.getCheckedCnt(this.ELEMENT_OBJ) <= maxCnt) {
				result = true;
			} else {
				result = false;
			}
		} else {
			result = true;
		}
	}
	if (!result) {
		if (minCnt == maxCnt) {
			this.ERR_MESSAGE_DEFAULT = "It selects " + minCnt + " and it does. ";
		} else {
			if (maxCnt == 0) this.ERR_MESSAGE_DEFAULT = "Above " + minCnt + " it selects and it does. ";
			else this.ERR_MESSAGE_DEFAULT = "It selects below " + maxCnt + " above " + minCnt + " and it does. ";
		}
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÀÔ·Â°ª¿¡ ÇØ´ç ¹®ÀÚ¿­ÀÌ Æ÷ÇÔ µÇ¾îÀÖ´ÂÁö Ã¼Å©ÇÑ´Ù.
 * @param	strVal		(Æ÷ÇÔµÉ ¹®ÀÚ¿­)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(Æ÷ÇÔµÇ¾î ÀÖ´ÂÁö ¿©ºÎ)
 */
FormValidator.prototype.isIn = function(strVal, errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var runFunc = "!this.ELEMENT_OBJ.value.isIn(strVal)";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "It must include a string certainly. \"" + strVal + "\" ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÆÄÀÏÀÔ·Â°ªÀÌ Çã¿ëµÈ ÆÄÀÏÅ¸ÀÔÀÎÁö Ã¼Å©ÇÑ´Ù.
 * @param	strVal		(Çã¿ëÇÒ ÆÄÀÏÅ¸ÀÔ ¹®ÀÚ¿­)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(°á°ú ¿©ºÎ)
 */
FormValidator.prototype.allowFileType = function(strVal, errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var startNum = this.ELEMENT_OBJ.value.lastIndexOf(".") + 1;
	var fileType = this.ELEMENT_OBJ.value.substring(startNum).toLowerCase();
	var runFunc = "!strVal.toLowerCase().isInGubun(fileType, '/')";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "It is a file type which it does not allow. \"Allow type : " + strVal.getReplace("[/]", ", ").getReplace("[.]", "") + "\" ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÆÄÀÏÀÔ·Â°ªÀÌ Çã¿ëµÇÁö ¾ÊÀº ÆÄÀÏÅ¸ÀÔÀÎÁö Ã¼Å©ÇÑ´Ù.
 * @param	strVal		(Çã¿ëÇÏÁö ¾ÊÀ» ÆÄÀÏÅ¸ÀÔ ¹®ÀÚ¿­)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(°á°ú ¿©ºÎ)
 */
FormValidator.prototype.denyFileType = function(strVal, errMsg) {
	if (this.ELEMENT_OBJ.value.isEmptyTrim()) return true;
	var startNum = this.ELEMENT_OBJ.value.lastIndexOf(".") + 1;
	var fileType = this.ELEMENT_OBJ.value.substring(startNum).toLowerCase();
	var runFunc = "strVal.toLowerCase().isInGubun(fileType, '/')";
	if (eval(runFunc)) {
		this.ERR_MESSAGE_DEFAULT = "It is a file type which it does not allow. \"Deny type : " + strVal.getReplace("[/]", ", ").getReplace("[.]", "") + "\" ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ³¯Â¥Çü½ÄÀÌ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param fieldName	(°øÅëµÈ ÇÊµå¸í)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(³¯Â¥Çü½ÄÀÌ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.validDate = function(fieldName, errMsg) {
	var sysDate;
	if (isEmptyTrim(fieldName)) {
		sysDate = this.ELEMENT_OBJ.value;
		if (sysDate.isEmptyTrim()) return true;
	} else {
		var original = this.objForm[fieldName+"1"].value + this.objForm[fieldName+"2"].value + this.objForm[fieldName+"3"].value;
		if (original.isEmptyTrim()) return true;
		if (this.ELEMENT_OBJ.type == "text") {
			this.objForm[fieldName+"1"].value = this.objForm[fieldName+"1"].value.getAddZero(4);
			this.objForm[fieldName+"2"].value = this.objForm[fieldName+"2"].value.getAddZero(2);
			this.objForm[fieldName+"3"].value = this.objForm[fieldName+"3"].value.getAddZero(2);
		}
		sysDate = this.objForm[fieldName+"1"].value + "-" + this.objForm[fieldName+"2"].value + "-" + this.objForm[fieldName+"3"].value;
	}
	if (!sysDate.isValidDate()) {
		this.ERR_MESSAGE_DEFAULT = "It is not effective. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ¿ìÆí¹øÈ£°¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param fieldName	(°øÅëµÈ ÇÊµå¸í)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(¿ìÆí¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.zipCode = function(fieldName, errMsg) {
	var zipCode;
	if (isEmptyTrim(fieldName)) {
		zipCode = this.ELEMENT_OBJ.value;
		if (zipCode.isEmptyTrim()) return true;
	} else {
		var original = this.objForm[fieldName+"1"].value + this.objForm[fieldName+"2"].value;
		if (original.isEmptyTrim()) return true;
		zipCode = this.objForm[fieldName+"1"].value + "-" + this.objForm[fieldName+"2"].value;
	}
	if (!zipCode.isValidZipCode()) {
		this.ERR_MESSAGE_DEFAULT = "It is not effective. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÀüÈ­¹øÈ£°¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param fieldName	(°øÅëµÈ ÇÊµå¸í)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(ÀüÈ­¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.phone = function(fieldName, errMsg) {
	var phone;
	if (isEmptyTrim(fieldName)) {
		phone = this.ELEMENT_OBJ.value;
		if (phone.isEmptyTrim()) return true;
	} else {
		var original = this.objForm[fieldName+"1"].value + this.objForm[fieldName+"2"].value + this.objForm[fieldName+"3"].value;
		if (original.isEmptyTrim()) return true;
		phone = this.objForm[fieldName+"1"].value + "-" + this.objForm[fieldName+"2"].value + "-" + this.objForm[fieldName+"3"].value;
	}
	if (!phone.isValidPhone()) {
		this.ERR_MESSAGE_DEFAULT = "It is not effective. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÇÚµåÆù¹øÈ£°¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param fieldName	(°øÅëµÈ ÇÊµå¸í)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(ÇÚµåÆù¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.cellPhone = function(fieldName, errMsg) {
	var cellPhone;
	if (isEmptyTrim(fieldName)) {
		cellPhone = this.ELEMENT_OBJ.value;
		if (cellPhone.isEmptyTrim()) return true;
	} else {
		var original = this.objForm[fieldName+"1"].value + this.objForm[fieldName+"2"].value + this.objForm[fieldName+"3"].value;
		if (original.isEmptyTrim()) return true;
		cellPhone = this.objForm[fieldName+"1"].value + "-" + this.objForm[fieldName+"2"].value + "-" + this.objForm[fieldName+"3"].value;
	}
	if (!cellPhone.isValidCellPhone()) {
		this.ERR_MESSAGE_DEFAULT = "It is not effective. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ÀÌ¸ÞÀÏÁÖ¼Ò°¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param fieldName	(°øÅëµÈ ÇÊµå¸í)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(ÀÌ¸ÞÀÏÁÖ¼Ò°¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.eMail = function(fieldName, errMsg) {
	var eMail;
	if (isEmptyTrim(fieldName)) {
		eMail = this.ELEMENT_OBJ.value;
		if (eMail.isEmptyTrim()) return true;
	} else {
		var original = this.objForm[fieldName+"1"].value + this.objForm[fieldName+"2"].value;
		if (original.isEmptyTrim()) return true;
		eMail = this.objForm[fieldName+"1"].value + "@" + this.objForm[fieldName+"2"].value;
	}
	if (!eMail.isValidEmail()) {
		this.ERR_MESSAGE_DEFAULT = "It is not effective. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * »ç¾÷ÀÚµî·Ï¹øÈ£°¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param fieldName	(°øÅëµÈ ÇÊµå¸í)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(»ç¾÷ÀÚµî·Ï¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.bizNo = function(fieldName, errMsg) {
	var bizNo;
	if (isEmptyTrim(fieldName)) {
		bizNo = this.ELEMENT_OBJ.value;
		if (bizNo.isEmptyTrim()) return true;
	} else {
		var original = this.objForm[fieldName+"1"].value + this.objForm[fieldName+"2"].value + this.objForm[fieldName+"3"].value;
		if (original.isEmptyTrim()) return true;
		bizNo = this.objForm[fieldName+"1"].value + "-" + this.objForm[fieldName+"2"].value + "-" + this.objForm[fieldName+"3"].value;
	}
	if (!bizNo.isValidBizNo()) {
		this.ERR_MESSAGE_DEFAULT = "It is not effective. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

/**
 * ¹ýÀÎµî·Ï¹øÈ£°¡ À¯È¿ÇÑÁö Ã¼Å©ÇÑ´Ù.
 * @param fieldName	(°øÅëµÈ ÇÊµå¸í)
 * @param errMsg		(»õ·Î¿î ¿¡·¯¸Þ½ÃÁö)
 * @return boolean	(¹ýÀÎµî·Ï¹øÈ£°¡ À¯È¿ÇÑÁö ¿©ºÎ)
 */
FormValidator.prototype.corpNo = function(fieldName, errMsg) {
	var corpNo;
	if (isEmptyTrim(fieldName)) {
		corpNo = this.ELEMENT_OBJ.value;
		if (corpNo.isEmptyTrim()) return true;
	} else {
		var original = this.objForm[fieldName+"1"].value + this.objForm[fieldName+"2"].value;
		if (original.isEmptyTrim()) return true;
		corpNo = this.objForm[fieldName+"1"].value + "-" + this.objForm[fieldName+"2"].value;
	}
	if (!corpNo.isValidCorpNo()) {
		this.ERR_MESSAGE_DEFAULT = "It is not effective. ";
		if (!isEmptyTrim(errMsg)) this.ERR_MESSAGE_NEW = errMsg;
		this.executeError();
		return false;
	}
	return true;
}

//-->

