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

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

    $.ajax({
        url: encodeURI('/webevent/selectWebEvent.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 url = eventData.filePath.replace("C:", "");

                $("#title").val(eventData.title);
                $("#summernote").summernote('code',eventData.content);
                $("#eventStartDate").val(eventData.eventStartDate).trigger("change");
                $("#eventEndDate").val(eventData.eventEndDate).trigger("change");
                $('.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_updateWebEvent(){
    if("Y"!=updateUseYn){
        modalEvent.warning("", "수정 권한이 없습니다.");
        return false;
    }

    let title            = $("#title").val();
    let content           = $("#summernote").summernote('code');
    let eventStartDate   = $("#eventStartDate").val();
    let eventEndDate     = $("#eventEndDate").val();
    let file             = $("#file")[0].files[0];

    if(true != fn_emptyCheck(title)) {
        modalEvent.warning("수정", "이벤트 제목을 입력하세요.");
        return;
    }

    if(true != fn_emptyCheck(content)) {
        modalEvent.warning("수정", "이벤트 상세를 입력하세요.");
        return;
    }

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

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

    if(isFileDeleted||isFileModified){
        if(true != fn_emptyCheck(file)) {
            modalEvent.warning("등록", "섬네일 정보가 없습니다.");
            return;
        }else{
            for(let i=0; i<file.length; i++){
                let fileSize = file[i].size;
                if(fileSize > fn_maxFileSize()){
                    modalEvent.warning("", "파일정보 용량이 50MB를 넘습니다. 업로드가 불가능합니다.");

                    return;
                }
            }
        }
    }
    modalEvent.info("수정", "이벤트 정보를 수정하시겠습니까?", function(){
        let formData = new FormData();
        formData.append("menuClass", menuClass);
        formData.append("muWebEventId", muWebEventId);
        formData.append("title", title);
        formData.append("content", content);
        formData.append("eventStartDate", eventStartDate);
        formData.append("eventEndDate", eventEndDate);
        if(file){
            formData.append("file", file);
        }

        $.ajax({
            url: encodeURI('/webevent/updateWebEvent.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_selectListWebEventIntro();
                    });
                }
                else{
                    modalEvent.danger("수정 오류", data.msgDesc);
                }
            },
            error : function(xhr, status, error) {
                modalEvent.danger("수정 오류", "수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
            },
            beforeSend:function(){

            },
            complete:function(){

            }
        });
    });
}

/****************************************************************************
 * html 에디터 이미지 업로드시
 ****************************************************************************/
function uploadSummernoteImageFileNoticeInsert(files, editor){
    Object.values(files).forEach(file => {
        let formData = new FormData();
        formData.append('menuClass', menuClass);
        formData.append('file', file);
        $.ajax({
            url: encodeURI('/webevent/uploadFile.do'),
            data: formData,
            dataType: "json",
            processData: false,
            contentType: false,
            type: 'POST',
            async: true,
            success: function (data) {
                if ('0' == data.msgCode) {
                    $(editor).summernote('insertImage', data.rows.filePath, function ($image) {
                    });
                }
            },
            error: function (xhr, status, error) {
                modalEvent.danger('오류', '이미지 업로드 중 오류가 발생했습니다.');
            },
            beforeSend: function () {
                // 로딩열기
                $(".loading-image-layer").show();
            },
            complete: function () {
                // 로딩닫기
                $(".loading-image-layer").hide();
            }
        });
    })
}

/****************************************************************************
 * 배너 이미지 미리보기
 ****************************************************************************/
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_selectListWebEventIntro(){
    if("Y"==selectUseYn){
        let pagingParam = "?menuClass="+menuClass;
        fn_leftFormAction("/webevent/selectListWebEventIntro.do"+pagingParam);
    }else{
        modalEvent.warning("", "조회 권한이 없습니다.");
        return false;
    }
}

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

    $('#summernote').summernote({
        height: 540,
        callbacks: {	//여기 부분이 이미지를 첨부하는 부분
            onImageUpload : function(files) {
                uploadSummernoteImageFileNoticeInsert(files, this);
            }
        },
    });
    fn_selectWebEvent();
}

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

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

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

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