﻿

    function UserNameCheck() {

        var Source, Result;

        Source = document.FormInput.UserName.value;
        Result = CheckRequireAndOverflow(Source, "RM", UserNameSize, "이름", "FOCUS", "UserName");

        if(Result != "") {
            return false;
        }

        return true;

    }





    function BirthdayCheck() {

        var Target  = document.FormInput;
        var Year    = Target.Birthday1.value;
        var Month   = Target.Birthday2.value;
        var Day     = Target.Birthday3.value;

        if(IsEmpty(Year+Month+Day)) {
            if(Target.CalendarKind.selectedIndex > 0) {
                MessageOutput("[생년월일] 항목을 입력하세요.", "FOCUS", "Birthday1");
                return false;
            } else {
                return true;
            }
        }

        if(!IsDate1(Year+"-"+Month+"-"+Day)) {
            MessageOutput("올바른 [생년월일]을 입력하세요.", "FOCUS", "Birthday1");
            return false;
        }

        if(Target.CalendarKind.selectedIndex <= 0) {
            MessageOutput("[양/음] 항목을 선택하세요.", "FOCUS", "CalendarKind");
            return false;
        }

        return true;

    }





    function MobilePhoneNumberCheck() {

        var Target = document.FormInput;
        var Source, Result;

        Source = Target.MPN1[Target.MPN1.selectedIndex].value + "-" + Target.MPN2.value + "-" + Target.MPN3.value;
        Result = CheckRequireAndOverflow(Source, "RM", MobilePhoneNumberSize, "휴대폰번호", "FOCUS", "MPN1");

        if(Result != "") {
            return false;
        }

        if(!IsPhoneNumber(Source, "Mobile")) {
            MessageOutput("올바른 [휴대폰번호]를 입력하세요.", "FOCUS", "MPN1");
            return false;
        }

        return true;

    }





    function PhoneNumberCheck() {

        var Target          = document.FormInput;
        var PhoneNumber1    = Target.PN1[Target.PN1.selectedIndex].value;
        var PhoneNumber2    = Target.PN2.value;
        var PhoneNumber3    = Target.PN3.value;
        var Source;
        var Result;


        if(IsEmpty(PhoneNumber1+PhoneNumber2+PhoneNumber3)) return true;


        Source = PhoneNumber1 + "-" + PhoneNumber2 + "-" + PhoneNumber3;
        Result = CheckRequireAndOverflow(Source, "M", PhoneNumberSize, "전화번호", "FOCUS", "PN1");
        if(Result != "") {
            return false;
        }

        if(!IsPhoneNumber(Source, "General")) {
            MessageOutput(("올바른 [전화번호]를 입력하세요."), "FOCUS", "PN1");
            return false;
        }

        return true;

    }





    function EmailAddressCheck() {

        var Target = document.FormInput;
        var Source = Target.EmailAddress.value;
        var Result;

        if(IsEmpty(Source)) {
            return true;
        }

        Result = CheckRequireAndOverflow(Source, "M", EmailAddressSize, "이메일주소", "FOCUS", "EmailAddress");
        if(Result != "") {
            return false
        }

        if(!IsEmailAddress(Source)) {
            MessageOutput("올바른 [이메일주소]을 입력하세요.", "FOCUS", "EmailAddress");
            return false;
        }

        return true;

    }





    function AddressCheck() {

        var Target      = document.FormInput;
        var ZipCode     = Target.ZipCode.value;
        var AddressMain = Target.AddressMain.value;
        var AddressSub  = Target.AddressSub.value;
        var Result;


        if(IsEmpty(ZipCode+AddressMain+AddressSub)) {
            MessageOutput("[주소]를 입력하세요.", "", "");
            return false;
        }

        Result = CheckRequireAndOverflow(ZipCode,     "RM", ZipCodeSize,     "우편번호", "", "");
        if(Result != "") return false;

        if(!IsZipCode(ZipCode)) {
            MessageOutput("올바른 [우편번호]를 입력하세요.", "", "");
            return false;
        }


        Result = CheckRequireAndOverflow(AddressMain, "RM", AddressMainSize, "주소",     "", "");
        if(Result != "") return false;

        Result = CheckRequireAndOverflow(AddressSub,  "RM", AddressSubSize,  "주소",     "FOCUS", "AddressSub");
        if(Result != "") return false;

        return true;

    }





    function EduCheck() {

        var Target = document.FormInput;
        var Result;

        if(Target.EduArea.selectedIndex <= 0) {
            MessageOutput("[교육지역] 항목을 선택하세요."    , "FOCUS", "EduArea");
            return false;
        }

        if(Target.EduDate.selectedIndex <= 0) {
            MessageOutput("[교육참석예약] 항목을 선택하세요.", "FOCUS", "EduDate");
            return false;
        }

        return true;

    }





    function EtcCheck() {

        var Target       = document.FormInput;
        var TalentValue  = Target.Talent.value;
        var CommentValue = Target.Comment.value;
        var Result;

        Result = CheckRequireAndOverflow(TalentValue , "M", TalentSize , "특기/재능", "FOCUS", "Talent");
        if(Result != "") {
            return false
        }

        Result = CheckRequireAndOverflow(CommentValue, "M", CommentSize, "활동포부" , "FOCUS", "Comment");
        if(Result != "") {
            return false
        }

        if(Target.ChkAgree != null && !Target.ChkAgree.checked) {
            alert("[6개월이상 활동 가능] 항목을 체크해 주세요.");
            return false
        }

        return true;

    }





    function AuthAnswerCheck() {

        var Source, Result;

        Source = document.FormInput.AuthAnswer.value;
        Result = CheckRequireAndOverflow(Source, "RM", AuthAnswerSize, "인증답변", "FOCUS", "AuthAnswer");

        if(Result != "") {
            return false;
        }

        if( !IsInt(Source) ) {
            MessageOutput("[인증답변] 항목은 숫자만 입력 가능 합니다.", "FOCUS", "AuthAnswer");
            return false;
        }

        return true;

    }





    function InputDataCheck(AuthUseFlag) {

        if(    !UserNameCheck() || !BirthdayCheck() || !MobilePhoneNumberCheck() || !PhoneNumberCheck() || !EmailAddressCheck()
            || !AddressCheck()  || !EduCheck()      || !EtcCheck() ) {

            return false;

        }


        if(AuthUseFlag) {
            if(!AuthAnswerCheck()) {
                return false;
            }

        }

        return true;

    }





    function EraseAddress() {

        if(!confirm("[주소] 지우기 확인")) return;

        Target = document.FormInput;


        Target.ZipCode.value        = "";
        Target.AddressMain.value    = "";
        Target.AddressSub.value     = "";

    }





    function EraseAllInput() {

        Target = document.FormInput;
        Target.reset();

        BindEduDate("");

    }





    function BindAuthQuestion() {

        if(!AuthUseFlag) return;

        var ReturnValue = BindAuthQuestionBasic();

        document.FormInput.AuthQuestion.value                 = ReturnValue;
        document.getElementById('AuthQuestionText').innerText = ReturnValue;

    }





    function IndexOfForArray(Target, Source) {

        if(Target == null || Target.length < 1 || Source == "") return -1

        var Index     = -1;
        var ArrLength = Target.length;
        var LoopCount;

        for(LoopCount = 0; LoopCount < ArrLength; LoopCount++) {
            if(Target[LoopCount] == Source) {
                Index = LoopCount
                break;
            }
        }

        return Index;

    }





    function BindEduDate(Source) {

        var Target = document.FormInput.EduDate;
        ClearSelectBox(Target);


        var FirstItemName = "-- 선택 --";
        var Index         = -1;

        if(Source != "") {
            Index = IndexOfForArray(DataEduArea, Source);

            if(Index < 0)
                FirstItemName = "교육 일정이 없습니다.";

        }


        Target[0] = new Option(FirstItemName, "", false, false);
        if(Source == "" || Index < 0) return;


        var DataLength  = DataEduArea.length;
        var OptionCount = 1;

        for(; Index < DataLength 
                && (DataEduArea[Index] == Source || DataEduArea[Index] == "."); OptionCount++, Index++) {

            Target[OptionCount] = new Option(DataEduDate[Index], (DataEduSerialNo[Index] + "|" + DataEduDate[Index]), false, false);

        }

    }

