/* Validator */
var validator = function() {};

validator = {
	register:function(oForm)
	{
		// 한글 이름 입력 여부 확인
		if (oForm.name.value.trim() == "")
		{
			alert('한글 이름을 입력하세요.');
			oForm.name.focus();
			return false;
		}

		// 한글 이름의 한글 여부 확인
		if (isKorean(oForm.name.value) == false)
		{
			alert("한글 이름은 실명으로 입력하세요.");
			oForm.name.focus();
			return false;
		}

		if (!isLogined)
		{
			// 아이디 체크
			if (oForm.loginID.value.trim() == "")
			{
				alert('아이디를 입력하세요.');
				oForm.loginID.focus();
				return false;
			}

			if (!isValidLoginID(oForm.loginID.value, oForm.POLICY_ID_MIN_LEN.value, oForm.POLICY_ID_MAX_LEN.value))
			{
				var msg =	'아이디를 입력하세요.' + '\n\n' +
							sn2nl(loadString('R2110', [oForm.POLICY_ID_MIN_LEN.value, oForm.POLICY_ID_MAX_LEN.value]));
				alert(msg);
				oForm.loginID.focus();
				return false;
			}

			// 패스워드 체크
			if (oForm.passwd.value.trim() == "")
			{
				alert('패스워드를 입력하세요.');
				oForm.passwd.focus();
				return false;
			}

			if (oForm.passwd.value != "" && !isValidPassword(oForm.passwd.value, oForm.POLICY_PW_MIN_LEN.value, oForm.POLICY_PW_MAX_LEN.value))
			{
				var msg =	'패스워드를 입력하세요.' + '\n\n' +
							sn2nl(loadString('R2111', [oForm.POLICY_PW_MIN_LEN.value, oForm.POLICY_PW_MAX_LEN.value]));

				alert(msg);
				oForm.passwd.focus();
				return false;
			}

			if (oForm.passwd.value != "" && oForm.passwdConfirm.value.trim() == "")
			{
				alert('패스워드 확인을 입력하세요.');
				oForm.passwdConfirm.focus();
				return false;
			}

			if (oForm.passwd.value != "" && oForm.passwd.value != oForm.passwdConfirm.value.trim())
			{
				alert(sn2nl('입력한 두 패스워드가 일치하지 않습니다.\n패스워드를 다시 입력하세요.'));
				oForm.passwdConfirm.value = "";
				oForm.passwdConfirm.focus();
				return false;
			}
		}

		// 이메일에 대한 수신 동의 체크 시, 이메일 주소 입력을 반드시 요구하자.
		if (oForm.email_tf.checked && oForm.email.value == "")
		{
			alert('전자우편 주소로 학원 소식, 학습 관련 정보, 이벤트 정보를 수신하시려면\n\n반드시 전자우편 주소를 입력해 주셔야 합니다.');
			oForm.email.focus();
			return false;
		}

		// 전자우편 주소가 입력된 상태라면, 유효메일 주소 여부를 체크해야 한다.
		if (oForm.email.value != "" && !isEmail(oForm.email.value))
		{
			alert(sn2nl('전자우편 주소가 올바르지 않습니다.\n전자우편 주소를 정확하게 입력했는지 확인하세요.'));
			oForm.email.focus();
			return false;
		}

		// 문자 메시지에 대한 수신 동의 체크 시, 휴대 전화번호 입력을 반드시 요구하자.
		if (oForm.sms_tf.checked && (oForm.cellphone_no_2.value == "" || oForm.cellphone_no_3.value == ""))
		{
			alert('휴대 전화번호로 학원 소식, 학습 관련 정보, 이벤트 정보를 수신하시려면\n\n반드시 휴대 전화번호를 입력해 주셔야 합니다.');
			oForm.cellphone_no_2.focus();
			return false;
		}

		// 휴대폰번호가 입력된 경우, 숫자만 입력하도록 검사합니다.
		if (oForm.cellphone_no_2.value != "" && !isNumber(oForm.cellphone_no_2.value))
		{
			alert('휴대폰 번호는 숫자로만 입력해야 합니다.');
			oForm.cellphone_no_2.focus();
			return false;
		}

		if (oForm.cellphone_no_3.value != "" && !isNumber(oForm.cellphone_no_3.value))
		{
			alert('휴대폰 번호는 숫자로만 입력해야 합니다.');
			oForm.cellphone_no_3.focus();
			return false;
		}

		return true;
	},
	validationKeyForm:function(oForm)
	{
		// 한글 이름 입력 여부 확인
		if (oForm.name.value.trim() == "")
		{
			alert("한글 이름을 입력해 주십시오.");
			oForm.name.focus();
			return false;
		}

		// 한글 이름의 한글 여부 확인
		if (isKorean(oForm.name.value) == false)
		{
			alert("한글 이름을 정확히 입력해 주십시오.");
			oForm.name.focus();
			return false;
		}

		if (oForm.validation_key.value == "")
		{
			alert("인증 번호를 입력해 주십시오.");
			oForm.validation_key.focus();
			return false;
		}

		// 약관 동의 확인!!
		if (!g('agree').checked)
		{
			alert('서비스 이용 약관과 개인정보 취급방침에 동의 체크하셔야 다음 단계로 이동이 가능합니다.');
			return false;
		}

		return true;
	},
	parentAgreeForm:function(oForm)
	{
		// 한글 이름 입력 여부 확인
		if (oForm.name.value.trim() == "")
		{
			alert("부모님 이름을 입력해 주십시오.");
			oForm.name.focus();
			return false;
		}

		// 한글 이름의 한글 여부 확인
		if (isKorean(oForm.name.value) == false)
		{
			alert("부모님 이름을 정확히 입력해 주십시오.");
			oForm.name.focus();
			return false;
		}

		// 부모님 주민등록번호 체크
		if (!isNumber(oForm.ssn_1.value))
		{
			alert("부모님 주민등록번호를 정확히 입력해 주십시오.");
			oForm.ssn_1.focus();
			return false;
		}

		if (!isNumber(oForm.ssn_2.value))
		{
			alert("부모님 주민등록번호를 정확히 입력해 주십시오.");
			oForm.ssn_2.focus();
			return false;
		}
		
		// 주민번호가 모두 입력되었다면, 알고리즘 체크
		// 굳이 알고리즘까지 맞을 필요 없음 (테스트를 위해 임의 값을 입력 할 수도 있기 때문)
		var ssn = oForm.ssn_1.value.toString() + oForm.ssn_2.value.toString();
		if (oForm.ssn_1.value != "" && oForm.ssn_2.value != "" && !isValidSSN(ssn) )
		{
			alert("부모님 주민등록번호를 정확히 입력해 주십시오.\n\n입력하신 주민등록번호는 올바르지 않습니다.");
			oForm.ssn_2.focus();
			return false;
		}

		// 휴대폰번호가 입력된 경우, 숫자만 입력하도록 검사합니다.
		if (!isNumber(oForm.cellphone_no_2.value))
		{
			alert("부모님 휴대 전화번호를 입력해 주십시오.");
			oForm.cellphone_no_2.focus();
			return false;
		}

		if (!isNumber(oForm.cellphone_no_3.value))
		{
			alert("부모님 휴대 전화번호를 입력해 주십시오.");
			oForm.cellphone_no_3.focus();
			return false;
		}

		return true;
	},
	parentAgree:function(oForm)
	{
		if (this.parentAgreeForm(oForm) == false)
			return false;

		// 인증번호 입력 체크
		if (oForm.auth_key.value == "")
		{
			alert("인증 번호를 입력하셔야 합니다.\n\n[인증번호 받기] 버튼을 눌러 인증키를 발급 받으시고,\n\n수신된 인증 번호를 입력란에 입력해 주세요.");
			return false;
		}

		return true;
	},
	loginIdInquiryForm:function(oForm)
	{
		// 한글 이름 입력 여부 확인
		if (oForm.name.value.trim() == "")
		{
			alert("이름을 입력해 주십시오.");
			oForm.name.focus();
			return false;
		}

		// 한글 이름의 한글 여부 확인
		if (isKorean(oForm.name.value) == false)
		{
			alert("이름은 한글로 정확히 입력해 주십시오.");
			oForm.name.focus();
			return false;
		}

		return true;
	},
	passwordInquiryForm:function(oForm)
	{
		// 아이디 입력 체크
		if (oForm.loginID.value.trim() == "")
		{
			alert("ID를 입력하세요.");
			oForm.loginID.focus();
			return false;
		}

		// 한글 이름 입력 여부 확인
		if (oForm.name2.value.trim() == "")
		{
			alert("이름을 입력해 주십시오.");
			oForm.name2.focus();
			return false;
		}

		// 한글 이름의 한글 여부 확인
		if (isKorean(oForm.name2.value) == false)
		{
			alert("이름은 한글로 정확히 입력해 주십시오.");
			oForm.name2.focus();
			return false;
		}

		// 휴대폰 번호 체크

		// 휴대폰번호가 입력된 경우, 숫자만 입력하도록 검사합니다.
		if (!isNumber(oForm.cellphone_no_2.value))
		{
			alert("휴대 전화번호를 숫자로만 입력하세요.");
			oForm.cellphone_no_2.focus();
			return false;
		}

		if (!isNumber(oForm.cellphone_no_3.value))
		{
			alert("휴대 전화번호를 숫자로만 입력하세요.");
			oForm.cellphone_no_3.focus();
			return false;
		}

		return true;
	},
	changePassword:function(oForm)
	{
		// 패스워드 체크
		if (oForm.passwd.value.trim() == "")
		{
			alert("현재 사용하는 패스워드를 입력하세요.");
			oForm.passwd.focus();
			return false;
		}

		// 새 패스워드 체크
		if (oForm.passwdNew.value.trim() == "")
		{
			alert("변경 할 새로운 패스워드를 입력하세요.");
			oForm.passwdNew.focus();
			return false;
		}

		if (oForm.passwdNew.value != "" && !isValidPassword(oForm.passwdNew.value, oForm.POLICY_PW_MIN_LEN.value, oForm.POLICY_PW_MAX_LEN.value))
		{
			var msg =	"변경 할 새로운 패스워드를 입력하세요." + '\n\n' +
						sn2nl(loadString('R2111', [oForm.POLICY_PW_MIN_LEN.value, oForm.POLICY_PW_MAX_LEN.value]));

			alert(msg);
			oForm.passwdNew.focus();
			return false;
		}

		if (oForm.passwdNew.value != "" && oForm.passwdNewConfirm.value.trim() == "")
		{
			alert("새로운 패스워드를 한번더 입력해 주십시오.");
			oForm.passwdNewConfirm.focus();
			return false;
		}

		if (oForm.passwdNew.value != "" && oForm.passwdNew.value != oForm.passwdNewConfirm.value.trim())
		{
			alert("변경을 위해 입력한 두 패스워드가 일치하지 않습니다.");
			oForm.passwdNewConfirm.value = "";
			oForm.passwdNewConfirm.focus();
			return false;
		}

		return true;
	}
};

