//배너이미지 파일 변경 상태
let isFileModified = false;  // 파일이 수정되었는지 여부
let isFileDeleted = false;   // 파일이 삭제되었는지 여부

/****************************************************************************
 * 이벤트 조회
 ****************************************************************************/
function fn_selectAppEvent(){
    if(true != fn_emptyCheck(muAppEventId)) {
        modalEvent.warning("수정", "이벤트 정보가 없습니다.");
        return;
    }
    let formData = new FormData();
    formData.append("menuClass", menuClass);
    formData.append("muAppEventId", muAppEventId);

    $.ajax({
        url: encodeURI('/webappevent/selectAppEvent.do'),
        data: formData,
        dataType: "json",
        processData: false,
        contentType: false,
        type: 'POST',
        async: true,
        success: function(data){
            if('0'==data.msgCode){
                let eventData = data.rows[0];
                let checkYN = 'Y'===eventData.exposedYn?true:false
                let url = eventData.filePath.replace("C:", "");

                $("#title").val(eventData.title);
                $("#content").val(eventData.content);
                $("#summernote").summernote('code',eventData.detail);
                $("#eventStartDate").val(eventData.eventStartDate).trigger("change");
                $("#eventEndDate").val(eventData.eventEndDate).trigger("change");
                $("#exposedYn").prop('checked',checkYN);
                $('.img_box').append(`<img width="170px" height="100px" src="${decodeURI(url)}">`)
            }
            else{
                modalEvent.danger("수정 오류", eventData.msgDesc);
            }
        },
        error : function(xhr, status, error) {
            modalEvent.danger("수정 오류", "수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
        },
        beforeSend:function(){

        },
        complete:function(){

        }
    });
}

/****************************************************************************
 * 이벤트 수정
 ****************************************************************************/
function fn_updateAppEvent(){
    if("Y"!=updateUseYn){
        modalEvent.warning("", "수정 권한이 없습니다.");
        return false;
    }

    let title            = $("#title").val();
    let content          = $("#content").val();
    let detail           = $("#summernote").summernote('code');
    let eventStartDate   = $("#eventStartDate").val();
    let eventEndDate     = $("#eventEndDate").val();
    let exposedYn= true===$("#exposedYn").prop('checked')?'Y':'N';
    let file             = $("#file")[0].files[0];

    if(true != fn_emptyCheck(title)) {
        modalEvent.warning("수정", "이벤트 제목을 입력하세요.");
        return;
    }else{
        if(true != fn_lengthCheck(title, 20)) {
            modalEvent.warning("수정", "제목 정보는 20자를 넘을 수 없습니다.");
            return;
        }
    }

    if(true != fn_emptyCheck(content)) {
        modalEvent.warning("수정", "이벤트 내용을 입력하세요.");
        return;
    }else{
        if(true != fn_lengthCheck(content, 20)) {
            modalEvent.warning("수정", "이벤트 내용은 20자를 넘을 수 없습니다.");
            return;
        }
    }
    if(true != fn_emptyCheck(detail)) {
        modalEvent.warning("수정", "이벤트 상세를 입력하세요.");
        return;
    }

    if(true != fn_emptyCheck(eventStartDate)) {
        modalEvent.warning("수정", "이벤트 시작일자를 입력하세요.");
        return;
    }

    if(true != fn_emptyCheck(eventEndDate)) {
        modalEvent.warning("수정", "이벤트 종료일자를 입력하세요.");
        return;
    }

    if(true != fn_emptyCheck(exposedYn)) {
        modalEvent.warning("수정", "메인 홈 노출 정보가 없습니다.");
        return;
    }

    if(isFileDeleted||isFileModified){
        if(true != fn_emptyCheck(file)) {
            modalEvent.warning("등록", "배너이미지 정보가 없습니다.");
            return;
        }
    }
    modalEvent.info("수정", "이벤트 정보를 수정하시겠습니까?", function(){
        let formData = new FormData();
        formData.append("menuClass", menuClass);
        formData.append("muAppEventId", muAppEventId);
        formData.append("title", title);
        formData.append("content", content);
        formData.append("detail", detail);
        formData.append("eventStartDate", eventStartDate);
        formData.append("eventEndDate", eventEndDate);
        formData.append("exposedYn", exposedYn);
        if(file)
            formData.append("file", file);

        $.ajax({
            url: encodeURI('/webappevent/updateAppEvent.do'),
            data: formData,
            dataType: "json",
            processData: false,
            contentType: false,
            type: 'POST',
            async: true,
            success: function(data){
                if('0'==data.msgCode){
                    modalEvent.success("수정 성공", data.msgDesc, function(){
                        fn_selectListAppEventIntro();
                    });
                }
                else{
                    modalEvent.danger("수정 오류", data.msgDesc);
                }
            },
            error : function(xhr, status, error) {
                modalEvent.danger("수정 오류", "수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
            },
            beforeSend:function(){

            },
            complete:function(){

            }
        });
    });
}

/****************************************************************************
 * 배너 이미지 미리보기
 ****************************************************************************/
function fn_filePreview(){
    const file =  $("#file")[0].files[0];
    if(file){
        $('.img_box').html('');
        const reader = new FileReader();

        reader.onload = function (e) {
            // 이미지 요소를 생성하고 미리보기 추가
            const img = document.createElement('img');
            img.src = e.target.result;
            img.style.width = '170px'; // 원하는 크기로 조정
            img.style.height = '100px';
            $('.img_box').append(img);
        };

        // 파일을 읽기 시작
        reader.readAsDataURL(file);
    }
}

/****************************************************************************
 * 배너 이미지 삭제
 ****************************************************************************/
function fn_removePreview(){
    isFileDeleted = true;
    $("#file").val('');
    $('.img_box').html('');
}

/****************************************************************************
 * 리스트 화면으로 이동.
 ****************************************************************************/
function fn_selectListAppEventIntro(){
    if("Y"==selectUseYn){
        let pagingParam = "?menuClass="+menuClass;
        fn_leftFormAction("/webappevent/selectListEventIntro.do"+pagingParam);
    }else{
        modalEvent.warning("", "조회 권한이 없습니다.");
        return false;
    }
}

/****************************************************************************
 * 페이지 init
 ****************************************************************************/
function fn_pageInit(){
    // 날짜 datepicker
    fn_searchDatePicker("#eventStartDate", "#eventEndDate");

    $('#summernote').summernote({height: 600});
    fn_selectAppEvent();
}

/****************************************************************************
 * 페이지 event
 ****************************************************************************/
function fn_pageEvent(){
    // 검색 input
    $('.btnCancle').on("click", function(){
        fn_selectListAppEventIntro();
    });

    $('.btnSave').on("click", function(){
        fn_updateAppEvent();
    });
    $('#delete_btn').on("click", function(){
        fn_removePreview();
    });
    $('#file').on('change', function(e) {
        isFileModified = true;
        fn_filePreview();
    })
}

$(function(){
    // 페이지 init
    fn_pageInit();

    // 페이지 event
    fn_pageEvent();
});