/*
// SELECT, INPUT, RADIO, TEXTAREA, FILE, CHECKBOX
// TEXT2 : TEXT ´ÙÁßÀÔ·Â
*/

///////////////////////////////////////////////////////////////////////////////////////
//   À¯È¿¼º °Ë»ç ÇÔ¼ö ¸ðÀ½
///////////////////////////////////////////////////////////////////////////////////////
var Validate = {

	// °ø¹é°ª Ã¼Å©
	isNull : function(value) {
		return value.blank() ? true : false;
	},

	//¾ÆÀÌµð ÆÐÅÏ°Ë»ç (¿µ¹®¼Ò¹®ÀÚ/¼ýÀÚ Á¶ÇÕ 4~12ÀÚ¸®¸é "TRUE", ¾Æ´Ï¸é "FALSE")
	isId : function(value) {	
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter = /^[a-z\d]{4,12}$/;	
		var filter2 = /[a-z]/;
		//var filter3 = /[\d]/;
		return ((filter.test(value) && filter2.test(value))) ?  true : false;
	},
	
	// ºñ¹Ð¹øÈ£ ÆÐÅÏ°Ë»ç (¿µ¹®¼Ò¹®ÀÚ/¼ýÀÚ Á¶ÇÕ 6~14ÀÚ¸®¸é "TRUE", ¾Æ´Ï¸é "FALSE")
	isPassword : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter = /^[a-z\d]{6,14}$/;
		var filter2 = /[a-z]/;
		var filter3 = /[\d]/;
		return ((filter.test(value) && filter2.test(value) && filter3.test(value))) ?  true : false;
	},
	
	// ºñ¹Ð¹øÈ£ ÆÐÅÏ°Ë»ç (4~12ÀÚ¸®¸é "TRUE", ¾Æ´Ï¸é "FALSE")
	isPasswordNum : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter = /^[a-z\d]{4,12}$/;
		return filter.test(value) ?  true : false;
	},

	//ÀÌ¸ÞÀÏ ÆÐÅÏ°Ë»ç (ÀÌ¸ÞÀÏÁÖ¼Ò¸é "TRUE", ¾Æ´Ï¸é "FALSE")
	isEmail : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		return (filter.test(value)) ?  true : false;
	},
	
	// ÇÑ±Û¸¸ À¯È¿ °Ë»ç (ÇÑ±Û¸¸ Æ÷ÇÔµÇ¾î ÀÕÀ¸¸é "TRUE", ´Ù¸¥ ¹®ÀÚ°¡ ÆûÇÔµÇ¾î ÀÖÀ¸¸é "FALSE")
	isKor : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/^[¤¡-ÆR]+$/;
		return (filter.test(value)) ?  true : false;
	},
	
	// ¾ËÆÄºª¸¸ À¯È¿ °Ë»ç (¾ËÆÄºª¸¸ Æ÷ÇÔµÇ¾î ÀÕÀ¸¸é "TRUE", ´Ù¸¥ ¹®ÀÚ°¡ ÆûÇÔµÇ¾î ÀÖÀ¸¸é "FALSE")
	isAlpha : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/^[a-zA-Z]+$/;
		return (filter.test(value)) ?  true : false;
	},
	
	// ¼ýÀÚ¸¸ À¯È¿ °Ë»ç (¼ýÀÚ¸¸ Æ÷ÇÔµÇ¾î ÀÕÀ¸¸é "TRUE", ´Ù¸¥ ¹®ÀÚ°¡ ÆûÇÔµÇ¾î ÀÖÀ¸¸é "FALSE")
	isNum : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/^[\d]+$/;
		return (filter.test(value)) ?  true : false;
	},
	
	// ¼ýÀÚ¸¸ À¯È¿ °Ë»ç (¼ýÀÚ¿Í ,¸¸ Æ÷ÇÔµÇ¾î ÀÕÀ¸¸é "TRUE", ´Ù¸¥ ¹®ÀÚ°¡ ÆûÇÔµÇ¾î ÀÖÀ¸¸é "FALSE")
	isCurrencyNum : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/^[\d,]+$/;
		return (filter.test(value)) ?  true : false;
	},


	// ³¯Â¥ À¯È¿ °Ë»ç (³¯Â¥Çü½Ä(YYYY-MM-DD) "TRUE", ¾Æ´Ï¸é "FALSE")
	isDate : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/^[\d]{4}\-[\d]{2}\-[\d]{2}$/;
		return (filter.test(value)) ?  true : false;
	},
	
	// ¾ËÆÄºª/¼ýÀÚ¸¸ À¯È¿ °Ë»ç (¾ËÆÄºª°ú ¼ýÀÚ¸¸ Æ÷ÇÔµÇ¾î ÀÕÀ¸¸é "TRUE", ´Ù¸¥ ¹®ÀÚ°¡ ÆûÇÔµÇ¾î ÀÖÀ¸¸é "FALSE")
	isAlphaNum : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/^[\w]+$/;
		return (filter.test(value)) ?  true : false;
	},

	// ÁÖ¹Îµî·Ï¹øÈ£ À¯È¿ °Ë»ç (ÁÖ¹Îµî·Ï¹øÈ£¸é "TRUE", ¾Æ´Ï¸é "FALSE")
	isSSN : function(value) {
		try {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var ssn = value.replace("-","");
		var filter = /^[\d]{6}[1234][\d]{6}$/;
		if(!filter.test(ssn)) return false;

		var sex = parseInt(ssn.substr(6,1),10);
		var yy  = parseInt(sex > 2 ? "20"+ssn.substr(0,2) : "19"+ssn.substr(0,2),10);
		var mm  = parseInt(ssn.substr(2,2),10);
		var dd  = parseInt(ssn.substr(4,2),10);
		if(yy < 1900 || yy > 2100 || mm < 1 || mm > 12 || dd < 1 || dd > 31) return false;
		
		var chk = 0;
		for(var i = 0; i <=11; i++){
			chk = chk + (((i % 8) + 2) * parseInt(ssn.substring(i, i + 1),10));
		}
		
		return ((11 - (chk % 11)) % 10) == ssn.substr(12,1) ? true : false;
		} catch(e) {
			alert(e.description);
			return false;
		}
	},

	// ¿Ü±¹ÀÎµî·Ï¹øÈ£ À¯È¿ °Ë»ç (ÁÖ¹Îµî·Ï¹øÈ£¸é "TRUE", ¾Æ´Ï¸é "FALSE")
	isFGN : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var ssn = value.replace("-","");
		var filter = /^[\d]{6}[5678][\d]{6}$/;
		if(!filter.test(ssn)) return false;

		var sum = 0;
		var odd = 0;
		var buf = new Array(13);

		for(i = 0; i < 13; i++) {
			buf[i] = parseInt(ssn.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 (i = 0, sum = 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;
		return (sum == buf[12]) ? true : false ;
	},
	
	// µ¿¿µ»ó ÆÄÀÏ¸¸ À¯È¿ °Ë»ç (ÀÌ¹ÌÁö¸é "TRUE", ¾Æ´Ï¸é "FALSE")
	isMovieFile : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		value = value.substr(value.lastIndexOf("\\")+1);
		//var filter=/\.(asf|avi|wmv|mpg|mpeg)$/i;
		var filter=/\.(flv)$/i;
		return (filter.test(value) && Validate.checkSpecialChar(value)) ?  true : false;
	},

	// ÀÌ¹ÌÁöÆÄÀÏ¸¸ À¯È¿ °Ë»ç (ÀÌ¹ÌÁö¸é "TRUE", ¾Æ´Ï¸é "FALSE")
	isImageFile : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		value = value.substr(value.lastIndexOf("\\")+1);
		var filter=/\.(jpg|gif|png|bmp)$/i;
		return (filter.test(value) && Validate.checkSpecialChar(value)) ?  true : false;
	},

	// ÆÄÀÏÈ®ÀåÀÚ °Ë»ç (½ÇÇàÆÄÀÏÀÌ ¾Æ´Ï¸é "TRUE", ½ÇÇàÆÄÀÏÀÌ¸é "FALSE")
	checkFileName : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		value = value.substr(value.lastIndexOf("\\")+1);
		var filter=/\.(asp|jsp|php|cgi|exe|sh|class|java)$/i;
		return (!filter.test(value) && Validate.checkSpecialChar(value)) ?  true : false;
	},
	
	// Æ¯¼ö¹®ÀÚ ÀÔ·Â °Ë»ç (Æ¯¼ö¹®ÀÚ°¡ Æ÷ÇÔµÇ¾î ÀÖÁö ¾ÊÀ¸¸é "TRUE", Æ÷ÇÔµÇ¾î ÀÕÀ¸¸é "FALSE")
	checkSpecialChar : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/[#/:;'\"]/;
		var filter2=/[\-]{2}/;
		return (!filter.test(value) && !filter2.test(value)) ?  true : false;
	},
	
	// Æ¯¼ö¹®ÀÚ ÀÔ·Â °Ë»ç (Æ¯¼ö¹®ÀÚ°¡ Æ÷ÇÔµÇ¾î ÀÖÁö ¾ÊÀ¸¸é "TRUE", Æ÷ÇÔµÇ¾î ÀÕÀ¸¸é "FALSE")
	checkSpecialChar2 : function(value) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		var filter=/[\"]/;
		var filter2=/[\-]{2}/;
		return (!filter.test(value) && !filter2.test(value)) ?  true : false;
	},

	// ¹®ÀÚ¿­ ±æÀÌ °Ë»ç (¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ ³ÑÁö ¾ÊÀ¸¸é "TRUE", ³ÑÀ¸¸é "FALSE")
	checkLength : function(value, min, max) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		return (value.length >= min && value.length <= max);
	},

	// ¼ýÀÚ¹üÀ§ °Ë»ç (¼ýÀÚ¹üÀ§°¡ ³ÑÁö ¾ÊÀ¸¸é "TRUE", ³ÑÀ¸¸é "FALSE")
	checkRange : function(value, min, max) {
		if(Validate.isNull(value)) return true;			// °ªÀÌ °ø¹éÀÏ °æ¿ì¿¡´Â °Ë»ç¸¦ ÇÏÁö¾Ê°í "TRUE"¸¦ ¸®ÅÏ
		return (parseInt(value,10) >= min && parseInt(value,10) <= max);
	}

};

///////////////////////////////////////////////////////////////////////////////////////
//   ¡Ø Validate.Form ¸¦ ÅëÇØ¼­ »ç¿ëÇÑ´Ù.
//   ÇØ´ç Æû¿¡ ´ëÇÑ À¯È¿¼º °Ë»ç¸¦ Ã³¸®ÇÏ´Â ÇÔ¼ö ¸ðÀ½
///////////////////////////////////////////////////////////////////////////////////////
Validate.Inpector = {

	ISNULL : function(form,options) {
		var name = Object.isArray(options.name) ? options.name[0] : options.name;
		var input = this.form[name].tagName ? this.form[name] : this.form[name][0];
		var type = input.tagName == "INPUT" ? input.type : input.tagName;
		var inspector = this[type.toUpperCase()].bind(this);
		return inspector(this.form,options);
	},

	// text/input/textarea Å¸ÀÔÀÇ ±âº»ÀûÀÎ °ø¹éÃ¼Å©
	TEXT : function(form, options) {
		var input = form[options.name];
		if (Validate.isNull(input.value)) {
			this.msg(input,options.text + getAux(options.text,1) +" ÀÔ·ÂÇÏ¼¼¿ä.");
			return false;
		}
		return true;
	},

	HIDDEN : function(form, options){ return this.TEXT(form, options);},
	INPUT : function(form, options){ return this.TEXT(form, options);},
	TEXTAREA : function(form, options){ return this.TEXT(form, options);},
	FILE : function(form, options){ return this.TEXT(form, options);},
	PASSWORD : function(form, options){ return this.TEXT(form, options);},

	// select Å¸ÀÔÀÇ ¼±ÅÃµÈ option¿¡ °ªÀÌ ¾ø´ÂÁö Ã¼Å©
	SELECT : function(form, options) {
		var input = form[options.name];
		if (Validate.isNull(input.options[input.options.selectedIndex].value)) {
			this.msg(input,options.text + getAux(options.text,1) +" ¼±ÅÃÇÏ¼¼¿ä.");
			return false;
		}
		return true;
	},
	
	// radio Å¸ÀÔÀÌ ¼±ÅÃ¿¡ µÇ¾îÀÖ´ÂÁö Ã¼Å©
	RADIO : function(form, options) {
		var input = form[options.name];
		for (i = 0; i < input.length; i++) {
			if (input[i].checked) return true;
		}
		this.msg(input[0],options.text + getAux(options.text,1) +" ¼±ÅÃÇÏ¼¼¿ä.");
		return false;
	},

	// checkbox Å¸ÀÔÀÌ ÇÏ³ªÀÌ»óÀÌ ¼±ÅÃ¿¡ µÇ¾îÀÖ´ÂÁö Ã¼Å©
	CHECKBOX : function(form, options) {
		var input;
		if(Object.isArray(options.name)) {
			input = new Array();
			for (i = 0; i < options.name.length; i++) {
				input[input.length] = form[options.name[i]];
			}
		} else {
			input = form[options.name];
		}

		for(i=0;i<input.length;i++) if(input[i].checked) return true;
		this.msg(input[0],options.text + getAux(options.text,1) +" ¼±ÅÃÇÏ¼¼¿ä.");
		return false;
	},

	// file Å¸ÀÔÀÇ È®ÀåÀÚ°¡ ÀÌ¹ÌÁö ÆÄÀÏÀÎÁö¸¦ Ã¼Å©ÇÑ´Ù.
	FILENAME : function(form, options){ 
		var input = form[options.name];
		if(!Validate.checkFileName(input.value)) {
			this.msg(input,options.text + getAux(options.text,2) +" Çã¿ëµÇÁö¾Ê´Â È®ÀåÀÚÀÌ°Å³ª, ÆÄÀÏ¸í¿¡ Æ¯¼ö¹®ÀÚ°¡ Æ÷ÇÔµÇ¾î ÀÖ½À´Ï´Ù.");
			return false;
		}
		return true;
	},

	// file Å¸ÀÔÀÇ È®ÀåÀÚ°¡ ÀÌ¹ÌÁö ÆÄÀÏÀÎÁö¸¦ Ã¼Å©ÇÑ´Ù.
	IMAGE : function(form, options){ 
		var input = form[options.name];
		if(!Validate.isImageFile(input.value)) {
			this.msg(input,options.text + getAux(options.text,2) +" ÀÌ¹ÌÁö ÆÄÀÏÀÌ ¾Æ´Ï°Å³ª, ÆÄÀÏ¸í¿¡ Æ¯¼ö¹®ÀÚ°¡ Æ÷ÇÔµÇ¾î ÀÖ½À´Ï´Ù.");
			return false;
		}
		return true;
	},
	
	// È¸¿ø¾ÆÀÌµð À¯È¿¼º °Ë»ç
	USERID : function(form,options) {
		var input = form[options.name];
		if(!this.TEXT(form, options)) return false;
		if(!Validate.isId(input.value)) {
			this.msg(input,options.text + getAux(options.text,3) +" À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.\n\n¿µ¹®¼Ò¹®ÀÚ¿Í ¼ýÀÚ Á¶ÇÕ 4~12ÀÚ ÀÌ³»·Î ÀÔ·ÂÇÏ¼¼¿ä.");
			return false;
		}
		return true;
	},
	
	// ºñ¹Ð¹øÈ£ À¯È¿¼º °Ë»ç
	USERPWD : function(form,options) {
		var input = form[options.name];
		if(!this.TEXT(form, options)) return false;
		if(!Validate.isPassword(input.value)) {
			this.msg(input,options.text + getAux(options.text,3) +" À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.\n\n¿µ¹®¼Ò¹®ÀÚ¿Í ¼ýÀÚ Á¶ÇÕ 4~12ÀÚ ÀÌ³»·Î ÀÔ·ÂÇÏ¼¼¿ä.");
			return false;
		}
		return true;
	},
	
	// ºñ¹Ð¹øÈ£ À¯È¿¼º °Ë»ç
	USERPWDNUM : function(form,options) {
		var input = form[options.name];
		if(!this.TEXT(form, options)) return false;
		if(!Validate.isPasswordNum(input.value)) {
			this.msg(input,options.text + getAux(options.text,3) +" À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù. 4~12ÀÚ ÀÌ³»·Î ÀÔ·ÂÇÏ¼¼¿ä.");
			return false;
		}
		return true;
	},

	// ÀÌ¸ÞÀÏ À¯È¿¼º °Ë»ç
	EMAIL : function(form,options) {
		var input = new Array();
		var value = "";
		if(Object.isArray(options.name)) {
			for (i = 0; i < 2; i++) {
				input[input.length] = form[options.name[i]];
				if (Validate.isNull(input[input.length-1].value)) {
					this.msg(input[input.length-1],options.text + getAux(options.text,1) +" ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
				}
				value += (i==1?"@":"") + input[input.length-1].value;
			}
		} else {
			input[0] = form[options.name];
			if (Validate.isNull(input[0].value)) {
				this.msg(input[0],options.text + getAux(options.text,1) +" ÀÔ·ÂÇÏ¼¼¿ä.");
				return false;
			}
			value = input[0].value;
		}

		if(!Validate.isEmail(value)) {
			this.msg(input[0],"À¯È¿ÇÏÁö ¾ÊÀº ÀÌ¸ÞÀÏ ÁÖ¼ÒÀÔ´Ï´Ù. ´Ù½ÃÇÑ¹ø Á¤È®È÷ ÀÔ·ÂÇÏ¼¼¿ä.");
			return false;
		}

		return true;
	},

	// ÁÖ¹Î¹øÈ£ À¯È¿¼º °Ë»ç (ÁÖ¹Îµî·Ï¹øÈ£ÀÌ°Å³ª ¿Ü±¹ÀÎ ¹øÈ£¸é TRUE ¾Æ´Ï¸é FALSE
	SSN : function(form,options) {
		var input = new Array();
		var value = "";

		if(Object.isArray(options.name)) {
			for (i = 0; i < 2; i++) {
				input[input.length] = form[options.name[i]];
				if (Validate.isNull(input[input.length-1].value)) {
					this.msg(input[input.length-1],options.text + getAux(options.text,1) +" ÀÔ·ÂÇÏ¼¼¿ä.");
					return false;
				}
				value += input[input.length-1].value;
			}
		} else {
			input[0] = form[options.name];
			if (Validate.isNull(input[0].value)) {
				this.msg(input[0],options.text + getAux(options.text,1) +" ÀÔ·ÂÇÏ¼¼¿ä.");
				return false;
			}
			value = input[0].value;
		}

		if(!Validate.isSSN(value) && !Validate.isFGN(value)) {
			this.msg(input[0],"À¯È¿ÇÏÁö ¾ÊÀº ÁÖ¹Îµî·Ï¹øÈ£ÀÔ´Ï´Ù. ´Ù½ÃÇÑ¹ø Á¤È®È÷ ÀÔ·ÂÇÏ¼¼¿ä.");
			return false;
		}

		return true;
	},
	
	// FCKEditor Å¸ÀÔÀÇ °ø¹éÃ¼Å©
	FCK : function(form, options) {
		var oEditor = FCKeditorAPI.GetInstance(options.name);
		if(oEditor.GetXHTML() == "") {
			this.msg(oEditor,options.text + getAux(options.text,1) +" ÀÔ·ÂÇÏ¼¼¿ä.");
			oEditor.Focus();
			return false;
		}
		return true;
	},
	
	// NAMO Editor Å¸ÀÔÀÇ °ø¹éÃ¼Å© (±¸Çö¾ÈµÊ)
	NAMO : function(form, options) {
		return true;
	},
	
	// Æ¯¼ö¹®ÀÚ À¯È¿¼º °Ë»ç
	SPECIALCHAR : function(form,options) {
		var input = form[options.name];
		if(!Validate.checkSpecialChar(input.value)) {
			this.msg(input,options.text +"¿¡ Çã¿ëµÇÁö¾Ê´Â Æ¯¼ö¹®ÀÚ°¡ Æ÷ÇÔµÇ¾îÀÖ½À´Ï´Ù.");
			return false;
		}
		return true;
	},
	
	// Æ¯¼ö¹®ÀÚ À¯È¿¼º °Ë»ç
	SPECIALCHAR2 : function(form,options) {
		var input = form[options.name];
		if(!Validate.checkSpecialChar2(input.value)) {
			this.msg(input,options.text +"¿¡ Çã¿ëµÇÁö¾Ê´Â Æ¯¼ö¹®ÀÚ°¡ Æ÷ÇÔµÇ¾îÀÖ½À´Ï´Ù.");
			return false;
		}
		return true;
	},
	
	// ¼ýÀÚÀÔ·Â °Ë»ç
	NUM : function(form,options) {
		var input = form[options.name];
		if(!Validate.isNum(input.value)) {
			this.msg(input,options.text + getAux(options.text,2) +" ¼ýÀÚ·Î¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.");
			return false;
		}
		return true;
	},
	
	
	// ¼ýÀÚ ,  °Ë»ç
	CURRENCY : function(form,options) {
		var input = form[options.name];
		if(!Validate.isCurrencyNum(input.value)) {
			this.msg(input,msgNum.evaluate({text:(options.text + getAux(options.text,2))}));
			return false;
		}
		return true;
	},

	// ¹®Áö¿­ ±æÀÌ °Ë»ç
	LENGTH : function(form,options) {
		var input = form[options.name];
		if(!Validate.checkLength(input.value, options.param[0], options.param[1])) {
			this.msg(input,options.text + getAux(options.text,2) +" "
				+((options.param[0] == options.param[1]) ? 
					options.param[0]+"ÀÚ·Î ": options.param[0]+"ÀÚ ¿¡¼­ "+options.param[1]+"ÀÚ »çÀÌ·Î ")
					+"ÀÔ·ÂÇÏ¼¼¿ä.");
			return false;
		}
		return true;
	},
	
	// ¹®Áö¿­ ±æÀÌ °Ë»ç
	RANGE : function(form,options) {
		var input = form[options.name];
		if(!Validate.checkRange(input.value, options.param[0], options.param[1])) {
			this.msg(input,options.text + getAux(options.text,2) +" "
				+ options.param[0]+" ¿¡¼­ "+options.param[1]+" »çÀÌ·Î "
					+"ÀÔ·ÂÇÏ¼¼¿ä.");
			return false;
		}
		return true;
	},
	
	// Validate ³»¿¡¼­ alertÀ» ¶ç¿ì´Â ÇÔ¼ö
	msg : function(input,text) {
		alert(text);
		if(input.focus && input.type != "hidden" 
			&& !input.disabled && input.style.display != "none") input.focus();
	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////
//   Validate.Inpector¸¦ »ç¿ëÇÏ¿© ÇØ´ç Æû¿¡ ´ëÇÑ À¯È¿¼º °Ë»ç¸¦ ½ÇÇàÇÏ´Â Å¬·¡½º 
/////////////////////////////////////////////////////////////////////////////////////////////////
Validate.Form = Class.create(Validate.Inpector,{
	
	// Å¬·¡½º »ý¼ºÀÚ ÇÔ¼ö
	initialize: function(elementName){
		this.entry = $A();
		this.result = true;
		this.elementName = elementName;
	},
	
	// °Ë»çÇÒ InputÀ» µî·ÏÇÑ´Ù.
	set : function(elementName, text, option, param) {
		var options = {name:elementName, text:text, option:option, param:param};
		this.entry[this.entry.length] = options;
	},
	
	// °Ë»çÇÒ InputÀ» ÇØÁ¦ÇÑ´Ù.
	unset : function(elementName) {
		this.entry.each(function(pair,i) {
			if(pair.name == elementName) {
				delete this.entry(i);
				this.entry.compect();
			}
		}.bind(this));
	},
	
	// ÇØ´çÆû³»¿¡ µî·ÏµÈ InputÀÇ °ªÀ» °Ë»çÇÑ´Ù.
	checkValue : function() {
		try {
			this.form = ($(this.elementName)||document[this.elementName]);
			this.entry.each(function(options) {
				if(typeof options.option == "string") {
					var inspector = this[options.option].bind(this);
					this.result = inspector(this.form,options);
				} else if(typeof options.option == "function") {
					var func = options.option.bind(this.form);
					this.result = func() === undefined? true : false;
				} else if(!options.option) {
					this.result = this.ISNULL(this.form,options);
				}
				if(!this.result) throw $break;
			}.bind(this));
			return this.result; 
		} catch(e) {
			alert(e.description);
			return false;
		}
	}
});




///////////////////////////////////////////////////////////////////////////////////////
//   °øÅë Ã¼Å© ÇÔ¼ö ¸ðÀ½
///////////////////////////////////////////////////////////////////////////////////////

// °Ë»öÆû °Ë»ç
var checkSearch = function(formObj) {
	var form = new Validate.Form(formObj);
	//form.set("searchVal","°Ë»ö¾î");
	form.set("searchVal","°Ë»ö¾î",function() {
		if(!Validate.checkSpecialChar(this.searchVal.value)) {
			form.msg(this.searchVal,"°Ë»ö¾î¿¡´Â Æ¯¼ö¹®ÀÚ¸¦ ÀÔ·ÂÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.");
			return false;
		}
	});
	return form.checkValue();
}