$(document).ready(function () {

    var dgnsApiModule = dgnsService.dgnsApiModule();
    var dgnsViewModule = dgnsService.dgnsViewModule();

    // 서버로부터 문진 데이터를 받아옴
    dgnsApiModule.surveyApiRequest({
        scb : function (res) {
            var $surveyRootDiv = $("#surveyRootDiv");

            // 문진데이터를 HTML로 변환
            var surveyRadioGroupArray= dgnsViewModule.drawSurvey($surveyRootDiv, res.dgnsTyCdList, res.dgnsAskList);
            // 문진데이터 HTML 하위에 제출 버튼 생성
            var surveyBtnObj = dgnsViewModule.drawSurveyBtn($surveyRootDiv);
            // 제출 버튼 이벤트 생성
            submitBtnClickEventTrigger(surveyBtnObj.$submitSurveyBtn, surveyRadioGroupArray);
            totalSelectBtnClickEventTrigger(surveyBtnObj.$totalSelectBtn, surveyRadioGroupArray);
        },
        ecb : function (res) {
            alert(res.message);
        }
    })

    // 제출 버튼을 누르면 발생하는 이벤트 정의
    function submitBtnClickEventTrigger($submitSurveyBtn, surveyRadioGroupArray) {
        $submitSurveyBtn.click(function () {

            // 선택된 문항이 저장되는 배열 선언
            var selectedSurveyArray = [];

            // 라디오버튼을 그룹별로 검사
            for (var i=0;i<surveyRadioGroupArray.length; i++) {
                var surveyRadioGroup = surveyRadioGroupArray[i];

                // 문항이 체크 되지 않았다면 return
                var $checkedRadio = $(":input:radio[name="+surveyRadioGroup.inputName+"]:checked");
                var $inputRadio = $(":input:radio[name="+surveyRadioGroup.inputName+"]");
                var inputValue = $checkedRadio.val();
                if (!inputValue) {
                    var notSelectedMessage = surveyRadioGroup.dgnsTyNm + "의 " + surveyRadioGroup.dgnsAskOrd + "번 문항이 선택되지 않았습니다.";
                    alert(notSelectedMessage);
                    $inputRadio.focus();
                    return
                }

                // 문항이 체크 되었다면 체크된 문항 저장
                var inputValueSplitArray = inputValue.split("_");
                var selectedSurvey = {
                    dgnsTyCd: surveyRadioGroup.dgnsTyCd,
                    dgnsAskId: surveyRadioGroup.dgnsAskId,
                    dgnsAskOrd: surveyRadioGroup.dgnsAskOrd,
                    dgnsAnsId: inputValueSplitArray[2],
                    dgnsAnsOrd: inputValueSplitArray[3],
                }
                selectedSurveyArray.push(selectedSurvey);
            }

            // console.log(selectedSurveyArray);

            $('#submit_survey').hide();
            $('#submit_spinner').show();
            // 체크된 문항 진단 검사 요청
            dgnsApiModule.surveyExamApiRequest(selectedSurveyArray, {
                scb : function (res) {
                    dgnsApiModule.moveToDgnsResultPage(res.odScore, res.srScore, res.pnScore, res.wtScore);
                },
                ecb : function (e) {
                    alert('피부테스트 데이터를 처리하지 못하였습니다.');
                    console.log(e);
                }
            });

        });
    }

    function totalSelectBtnClickEventTrigger ($totalSelectBtn, surveyRadioGroupArray) {
        $totalSelectBtn.click(function () {
            for (var i=0; i<surveyRadioGroupArray.length; i++) {
                var surveyRadioGroup = surveyRadioGroupArray[i];
                var $radioGroupArray = $(":input:radio[name="+surveyRadioGroup.inputName+"]");
                var $randomSelectRadio = $radioGroupArray[_.random(0, $radioGroupArray.length - 1)];
                $randomSelectRadio.checked = true;
            }
        });
    }

    /*var randomSelectEnableCount = 0;

    $('#surveyRootDiv').click(function () {
        randomSelectEnableCount++;
        if (++randomSelectEnableCount >= 10) {
            $('#total_select').css('display', 'block');
        }
    });*/

})
