/*
만들꺼리들..
 
필수입력
비밀번호 매치
숫자만
*/
 
validForm = function(f) {
	
	var formObj;
	this.fields = f.elements;
	this.errList	= {
		require : "필수 입력사항입니다.",
		strMin : "입력된 글자수가 {min}자보다 커야합니다.",
		password : "입력하신 비밀번호가 일치하지 않습니다.",
		onlyNum : "숫자만 입력가능합니다.",
		onlyEng : "영문자만 입력가능합니다.",
		onlyBoth : "영문자 또는 숫자만 입력가능합니다.",
		onlyKorea : "한글만 입력가능합니다."
	}
 
	this.errMsg = "";
}
validForm.prototype.chkForm = function() {
 
	var formRequire;
	var formMsg;
	var formMatch;
	var formValue;
	var formType;
	var formMin;
	var formonlyEng, formonlyNum, formonlyBoth, formonlyKorea

	for (var i=0;i<this.fields.length;i++ )
	{
		formObj = this.fields[i];
		formType = this.getType();
		if( typeof formType != "undefined" )
		{
			formRequire = formObj.getAttribute("require");
			formMin = formObj.getAttribute("minlen");
			formValue = this.trim(formObj, "trim");
			formMatch = formObj.getAttribute("match");
			formonlyEng = formObj.getAttribute("onlyEng");
			formonlyNum = formObj.getAttribute("onlyNum");
			formonlyBoth = formObj.getAttribute("onlyBoth");
			formonlyKorea = formObj.getAttribute("onlyKorea");
	 
			if (formRequire != null && formValue == "") return this.ErrorMsg("require");
			
			if (formMin != null && parseInt(formMin) > parseInt(formValue.length)) return this.ErrorMsg("strMin", formMin);
	 
			if (formMatch != null)
			{	
				if (formValue != this.fields[formMatch].value) return this.ErrorMsg("password");
			}
			
			if (formonlyNum != null)
				if (this.onlyChk(formValue, "Number") == false) return this.ErrorMsg("onlyNum")
	 
			if (formonlyBoth != null)
				if (this.onlyChk(formValue, "Both") == false) return this.ErrorMsg("onlyBoth")			
	 
			if (formonlyEng != null)
				if (this.onlyChk(formValue, "Eng") == false) return this.ErrorMsg("onlyEng")	
	 
			if (formonlyKorea != null)
				if (this.onlyChk(formValue, "Kor") == false) return this.ErrorMsg("onlyKorea")
		}
	}	
 
}
validForm.prototype.getType = function()
{
	switch (formObj.tagName.toLowerCase())
	{
	case "select":
		return formObj.multiple == true ? "multi-select" : "select";
	case "textarea": 
		return "textarea";
	case "input":
		switch (formObj.type.toLowerCase())
		{
		case "radio": 
			return "radio";
		case "text": 
		case "password":
			return "text";
		case "hidden":
			return "hidden";
		case "file":
			return "file";		
		}
	}
}
 
validForm.prototype.ErrorMsg = function(msgType, message)
{
 
	var pattern = /\{([a-zA-Z0-9_]+)\}/i;
	var msg = this.errList[msgType];
	if (pattern.test(msg) == true)
	{
		while (pattern.exec(msg)) msg = msg.replace(pattern, message)
 
	}
	
	this.errMsg = "["+formObj.getAttribute("msg")+"] - "+msg;
	//formObj.focus();	
	return false;
}
 
validForm.prototype.trim = function(obj, setType)
{
	switch (setType)
	{
		case "trim":
			return obj.value.replace(/^\s+/, "").replace(/\s+$/, "");
		break;
	}
}
 
validForm.prototype.onlyChk = function(objValue, setType) 
{
 
	var pattern;
	switch (setType)
	{
		case "Number":
			pattern = /^[0-9]+$/;
			break;
		case "Both":
			pattern = /^[_a-zA-Z0-9-\.]+$/;
			break;
		case "Eng":
			pattern = /^[a-zA-Z]+$/;
			break;
		case "Kor":
			pattern = /^[가-힝]+$/;
			break;
	}
 
	return pattern.test(objValue) ? true : false;	
 
}
 
 
/*
function test(f)
{
	
	var good = new validForm(f)
	var wmf = good.chkForm();
	if (wmf == false)
	{	
		alert(good.errMsg);
		return false;
	}
 
}
*/



function fnSubmitForm() {
	alert('test');
	return false;
}


