$(document).ready(function () {

    // Page Preloader
    $('#status').fadeOut();
    $('#preloader').delay(200).fadeOut(function () {
        $('body').delay(200).css({'overflow': 'visible'});
    });

    // 좌측메뉴 스토리지
    let leftMenuType = localStorage.getItem("leftMenuType");
    if(leftMenuType=='close'){
        $('.menutoggle').addClass('menu-collapsed');
        $('body').addClass('leftpanel-collapsed');
        $('ul.children').css("display","");
    }else{
        $('.menutoggle').removeClass('menu-collapsed');
        $('body').removeClass('leftpanel-collapsed');
        $('ul.children').css("display","block");
    };
    // 로딩바 제거


    // 상단 스케쥴 - 이동
    $('.headSchedule,.headSchedule-mobile').click(function (e) {
        location.href="/html/dashboard.html";
    });


    // Toggle Left Menu
    $('.leftpanel .nav-parent > a').live('click', function () {

        var parent = $(this).parent();
        var sub = parent.find('> ul');

        // Dropdown works only when leftpanel is not collapsed
        if (!$('body').hasClass('leftpanel-collapsed')) {
            if (sub.is(':visible')) {
                sub.slideUp(200, function () {
                    parent.removeClass('nav-active');
                    $('.mainpanel').css({height: ''});
                    adjustmainpanelheight();
                });
            } else {
                closeVisibleSubMenu();
                parent.addClass('nav-active');
                sub.slideDown(200, function () {
                    adjustmainpanelheight();
                });
            }
        }
        return false;
    });

    function closeVisibleSubMenu() {
        $('.leftpanel .nav-parent').each(function () {
            var t = $(this);
            if (t.hasClass('nav-active')) {
                t.find('> ul').slideUp(200, function () {
                    t.removeClass('nav-active');
                });
            }
        });
    }

    function adjustmainpanelheight() {
        // Adjust mainpanel height
        var docHeight = $(document).height();
        if (docHeight > $('.mainpanel').height())
            $('.mainpanel').height(docHeight);
    }

    adjustmainpanelheight();


    // Tooltip
    $('.tooltips').tooltip({container: 'body'});

    // Popover
    $('.popovers').popover();

    // Close Button in Panels
    $('.panel .panel-close').click(function () {
        $(this).closest('.panel').fadeOut(200);
        return false;
    });

    // Form Toggles
    $('.toggle').toggles({on: true});

    $('.toggle-chat1').toggles({on: false});

    // Sparkline
    $('#sidebar-chart').sparkline([4, 3, 3, 1, 4, 3, 2, 2, 3, 10, 9, 6], {
        type: 'bar',
        height: '30px',
        barColor: '#428BCA'
    });

    $('#sidebar-chart2').sparkline([1, 3, 4, 5, 4, 10, 8, 5, 7, 6, 9, 3], {
        type: 'bar',
        height: '30px',
        barColor: '#D9534F'
    });

    $('#sidebar-chart3').sparkline([5, 9, 3, 8, 4, 10, 8, 5, 7, 6, 9, 3], {
        type: 'bar',
        height: '30px',
        barColor: '#1CAF9A'
    });

    $('#sidebar-chart4').sparkline([4, 3, 3, 1, 4, 3, 2, 2, 3, 10, 9, 6], {
        type: 'bar',
        height: '30px',
        barColor: '#428BCA'
    });

    $('#sidebar-chart5').sparkline([1, 3, 4, 5, 4, 10, 8, 5, 7, 6, 9, 3], {
        type: 'bar',
        height: '30px',
        barColor: '#F0AD4E'
    });


    // Minimize Button in Panels
    $('.minimize').click(function () {
        var t = $(this);
        var p = t.closest('.panel');
        if (!$(this).hasClass('maximize')) {
            p.find('.panel-body, .panel-footer').slideUp(200);
            t.addClass('maximize');
            t.html('&plus;');
        } else {
            p.find('.panel-body, .panel-footer').slideDown(200);
            t.removeClass('maximize');
            t.html('&minus;');
        }
        return false;
    });


    // Add class everytime a mouse pointer hover over it
    $('.nav-bracket > li').hover(function () {
        $(this).addClass('nav-hover');
    }, function () {
        $(this).removeClass('nav-hover');
    });


    // Menu Toggle
    $('.menutoggle').click(function () {

        var body = $('body');
        var bodypos = body.css('position');

        if (bodypos != 'relative') {

            if (!body.hasClass('leftpanel-collapsed')) {
                body.addClass('leftpanel-collapsed');
                $('.nav-bracket ul').attr('style', '');

                $(this).addClass('menu-collapsed');
                localStorage.setItem("leftMenuType", 'close');

            } else {
                body.removeClass('leftpanel-collapsed chat-view');
                $('.nav-bracket li.active ul').css({display: 'block'});

                $(this).removeClass('menu-collapsed');
                localStorage.removeItem("leftMenuType");

            }
        } else {

            if (body.hasClass('leftpanel-show'))
                body.removeClass('leftpanel-show');
            else
                body.addClass('leftpanel-show');

            adjustmainpanelheight();
        }

    });

    // Chat View
    $('#chatview').click(function () {

        var body = $('body');
        var bodypos = body.css('position');

        if (bodypos != 'relative') {

            if (!body.hasClass('chat-view')) {
                body.addClass('leftpanel-collapsed chat-view');
                $('.nav-bracket ul').attr('style', '');

            } else {

                body.removeClass('chat-view');

                if (!$('.menutoggle').hasClass('menu-collapsed')) {
                    $('body').removeClass('leftpanel-collapsed');
                    $('.nav-bracket li.active ul').css({display: 'block'});
                } else {

                }
            }

        } else {

            if (!body.hasClass('chat-relative-view')) {

                body.addClass('chat-relative-view');
                body.css({left: ''});

            } else {
                body.removeClass('chat-relative-view');
            }
        }

    });

    reposition_topnav();
    reposition_searchform();

    $(window).resize(function () {

        if ($('body').css('position') == 'relative') {

            $('body').removeClass('leftpanel-collapsed chat-view');

        } else {

            $('body').removeClass('chat-relative-view');
            $('body').css({left: '', marginRight: ''});
        }

        reposition_searchform();
        reposition_topnav();

    });


    /* This function will reposition search form to the left panel when viewed
     * in screens smaller than 767px and will return to top when viewed higher
     * than 767px
     */
    function reposition_searchform() {
        if ($('.searchform').css('position') == 'relative') {
            $('.searchform').insertBefore('.leftpanelinner .userlogged');
        } else {
            $('.searchform').insertBefore('.header-right');
        }
    }


    /* This function allows top navigation menu to move to left navigation menu
     * when viewed in screens lower than 1024px and will move it back when viewed
     * higher than 1024px
     */
    function reposition_topnav() {
        if ($('.nav-horizontal').length > 0) {

            // top navigation move to left nav
            // .nav-horizontal will set position to relative when viewed in screen below 1024
            if ($('.nav-horizontal').css('position') == 'relative') {

                if ($('.leftpanel .nav-bracket').length == 2) {
                    $('.nav-horizontal').insertAfter('.nav-bracket:eq(1)');
                } else {
                    // only add to bottom if .nav-horizontal is not yet in the left panel
                    if ($('.leftpanel .nav-horizontal').length == 0)
                        $('.nav-horizontal').appendTo('.leftpanelinner');
                }

                $('.nav-horizontal').css({display: 'block'})
                    .addClass('nav-pills nav-stacked nav-bracket');

                $('.nav-horizontal .children').removeClass('dropdown-menu');
                $('.nav-horizontal > li').each(function () {

                    $(this).removeClass('open');
                    $(this).find('a').removeAttr('class');
                    $(this).find('a').removeAttr('data-toggle');

                });

                if ($('.nav-horizontal li:last-child').has('form')) {
                    $('.nav-horizontal li:last-child form').addClass('searchform').appendTo('.topnav');
                    $('.nav-horizontal li:last-child').hide();
                }

            } else {
                // move nav only when .nav-horizontal is currently from leftpanel
                // that is viewed from screen size above 1024
                if ($('.leftpanel .nav-horizontal').length > 0) {

                    $('.nav-horizontal').removeClass('nav-pills nav-stacked nav-bracket')
                        .appendTo('.topnav');
                    $('.nav-horizontal .children').addClass('dropdown-menu').removeAttr('style');
                    $('.nav-horizontal li:last-child').show();
                    $('.searchform').removeClass('searchform').appendTo('.nav-horizontal li:last-child .dropdown-menu');
                    $('.nav-horizontal > li > a').each(function () {

                        $(this).parent().removeClass('nav-active');

                        if ($(this).parent().find('.dropdown-menu').length > 0) {
                            $(this).attr('class', 'dropdown-toggle');
                            $(this).attr('data-toggle', 'dropdown');
                        }

                    });
                }

            }

        }
    }


    // Sticky Header
    if ($.cookie('sticky-header'))
        $('body').addClass('stickyheader');

    // Sticky Left Panel
    if ($.cookie('sticky-leftpanel')) {
        $('body').addClass('stickyheader');
        $('.leftpanel').addClass('sticky-leftpanel');
    }

    // Left Panel Collapsed
    if ($.cookie('leftpanel-collapsed')) {
        $('body').addClass('leftpanel-collapsed');
        $('.menutoggle').addClass('menu-collapsed');
    }

    // Changing Skin
    var c = $.cookie('change-skin');
    if (c) {
        $('head').append('<link id="skinswitch" rel="stylesheet" href="css/style.' + c + '.css" />');
    }

    // Changing Font
    var fnt = $.cookie('change-font');
    if (fnt) {
        $('head').append('<link id="fontswitch" rel="stylesheet" href="css/font.' + fnt + '.css" />');
    }

    // Check if leftpanel is collapsed
    if ($('body').hasClass('leftpanel-collapsed'))
        $('.nav-bracket .children').css({display: ''});


    // Handles form inside of dropdown
    $('.dropdown-menu').find('form').click(function (e) {
        e.stopPropagation();
    });


});


(function ($, window) {

    $.fn.contextMenu = function (settings) {

        return this.each(function () {

            // Open context menu
            $(this).on("contextmenu", function (e) {
                // return native menu if pressing control
                if (e.ctrlKey) return;

                var user_no = $(this).data("id");
                $("#user_no").val(user_no);

                //open menu
                var $menu = $(settings.menuSelector)
                    .data("invokedOn", $(e.target))
                    .show()
                    .css({
                        position: "absolute",
                        left: getMenuPosition(e.clientX, 'width', 'scrollLeft'),
                        top: getMenuPosition(e.clientY, 'height', 'scrollTop')
                    })
                    .off('click')
                    .on('click', 'a', function (e) {
                        $menu.hide();

                        var $invokedOn = $menu.data("invokedOn");
                        var $selectedMenu = $(e.target);

                        settings.menuSelected.call(this, $invokedOn, $selectedMenu);
                    });

                return false;
            });

            //make sure menu closes on any click
            $('body').click(function () {
                $(settings.menuSelector).hide();
            });
        });

        function getMenuPosition(mouse, direction, scrollDir) {
            var win = $(window)[direction](),
                scroll = $(window)[scrollDir](),
                menu = $(settings.menuSelector)[direction](),
                position = mouse + scroll;

            // opening menu would pass the side of the page
            if (mouse + menu > win && menu < mouse)
                position -= menu;

            return position;
        }

    };
})($, window);

$(".table td.member-id").contextMenu({
    menuSelector: "#contextMenu",
    menuSelected: function (invokedOn, selectedMenu) {
        var msg = "You selected the menu item '" + selectedMenu.text() +
            "' on the value '" + invokedOn.text() + "'";
    }
});

// 회원아이디 오른쪽 클릭 메뉴 링크
function popSelMenu(menuMode) {
    var user_no = $("#user_no").val();
    switch (menuMode) {
        case "memInfo" :
            popUserInfo(user_no)
            break;

        case "addHistory" :
            popUserHistory(user_no);
            break;

        case "useStore" :
            popUserStore(user_no);
            break;

        case "smsSend" :
            popUserSMS(user_no);
            break;

        case "mailSend" :
            popUserMail(user_no);
            break;

        default:
            break;
    }
}


// 구글시트 이동
function popGoogleSheet(sheetId, sheet) {

    if(sheetId && sheet) {
        //window.open('https://docs.google.com/spreadsheets/d/' + spreadSheetId + '/edit#gid=' + sheetId + '&range=B' + sheet, 'GoogleSheet');
    }
}

// 노션페이지 팝업
function popNotion(url) {
    window.open(url, 'Notion');
    event.stopImmediatePropagation();
}

// 업무 등록
function popWorkTask(task_no) {
    let options = popSize(550,750);
    let uri = '/html/plan/work_reg.html?task_no=' + task_no;
    window.open(uri, 'WorkTask', options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no');
}

// 업무 확인
function popWorkTaskView(task_no) {
    let options = popSize(550,750);
    let uri = '/html/plan/work_view.html?task_no=' + task_no;
    window.open(uri, 'WorkTask', options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no');
}

// 업무 복사 (등록)
function popWorkTaskDuplicate(task_no) {
    let options = popSize(550,750);
    let uri = '/html/plan/work_reg.html?duplicate_no=' + task_no;
    window.open(uri, 'WorkTask_' + task_no, options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no');
}

// 완료처리 팝업
function popWorkCompTask(task_no) {
    let options = popSize(530,340);
    let uri = '/html/plan/work_comp.html?task_no=' + task_no;
    window.open(uri, 'WorkTaskComp_' + task_no, options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no');
}
/* 업무 등록*/
$('#work-complete').on("click",function(){
    var formData = $("#dailyTaskInput").serialize();
    let breakChk =  false;
    $(".memberTime").each(function(){
        if(!$(this).val() || $(this).val() == 0 || $(this).val()=='0.0'){
            $(this).val('');
            $(this).focus();
            breakChk = true;
            return false;
        }
    });
    if(breakChk) {
        alert("작업시간은 필수 입니다.");
        return;
    }


    let banner = $('#banner').val() == 0 || !$('#banner').val() ? false : true;
    let detail = $('#detail').val() == 0 || !$('#detail').val() ? false : true;

    if($('#designYn').val() == 'Y' && !banner && !detail ){
        alert("디자이너가 포함된경우 디자안(배너, 상세)값을 입력해 주세요.");
        return;
    }

    if($('#designYn').val() == 'N' && (banner || detail) ){
        if(!confirm("디자이너가 포함되지 않았는데 이미지 작업건이 있습니다. 이대로 처리 하시겠습니까?")) return;
    }else{
        if(!confirm('해당건을 처리 하시겠습니까?')) return;
    }

    $.ajax({
        cache : false,
        url : "/html/process.html", // 요기에
        type : 'POST',
        data : formData,
        success : function(data) {
            if(data=='Success' || data == 'Auth'){
                top.opener.location.reload();
                self.close();
            }
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */
})


/* 업무 완료 복구*/
$('.work-restore').on("click",function(e){
    e.stopPropagation();

    let task_idx = $(this).data('idx');
    let refpage = '/plan/work_reg.html';


    if(!task_idx){
        alert('업무관리번호가 없습니다.');
        return;
    }

    if(!confirm('해당건을 복구 하시겠습니까?')) return;

    $.ajax({
        cache : false,
        url : "/html/process.html", // 요기에
        type : 'POST',
        data : {task_idx:task_idx,mod:'restore',refpage:refpage },
        success : function(data) {
            if(data=='Success' || data == 'Auth'){
                location.reload();
            }
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    });

})


// 업무일지 등록
function popPlanTask(pt_no,month) {
    let options = popSize(600,550);
    let uri = '/html/plan/daily_reg.html?pt_no=' + pt_no;
    if(month)  uri += '&month=' + month;
    window.open(uri, 'PlanTask', options + ', toolbar=no, menubar=no, scrollbars=Yes, resizable=no');
}


// 회원 회원정보
function popUserInfo(user_no) {
    window.open('/html/member/member_detail.html?user_no=' + user_no, '회원정보_' + user_no, 'width=800, height=700, toolbar=no, menubar=no, scrollbars=no, resizable=yes');
}

// 회원 회원등록/수정
function popUserMember(user_no) {
    let options = popSize(800,510);
    window.open('/html/member/member_Add.html?user_no=' + user_no, '회원등록/수정', options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no');
}

// 업체정보
function popCompanyInfo(com_no) {
    let options = popSize(800,510);
    window.open('/html/company/company_detail.html?com_no=' + com_no, '업체정보_' + com_no, options + ', toolbar=no, menubar=no, scrollbars=no, resizable=yes');
}
$('.company-id').on("click",function() {
    let com_no = $(this).data('idx');
    if(com_no) popCompanyInfo(com_no);
})


// 업체등록/수정
function popCompany(user_no) {
    let options = popSize(800,510);
    window.open('/html/company/company_add.html?com_no=' + user_no, '회원등록/수정', options + ', toolbar=no, menubar=no, scrollbars=no, resizable=no');
}

// 화면중간에 팝업 띄우기
function popSize(width,height){
    let left = (screen.width - width) / 2; // 가로 가운데 정렬을 위한 왼쪽 위치 계산
    let top = (screen.height - height) / 2; // 세로 가운데 정렬을 위한 상단 위치 계산
    let options = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top;
    return options;
}

$(document).ready(function () {
    //최상단 체크박스 클릭
    $(".checkall").click(function () {
        //클릭되었으면
        if ($(".checkall").prop("checked")) {
            //input태그의 name이 chk인 태그들을 찾아서 checked옵션을 true로 정의
            $("input[name=chk]").prop("checked", true);
            //클릭이 안되있으면
        } else {
            //input태그의 name이 chk인 태그들을 찾아서 checked옵션을 false로 정의
            $("input[name=chk]").prop("checked", false);
        }
    })

    $('.btn-toggle').click(function () {

        $(this).find('.btn').toggleClass('active');

        if ($(this).find('.btn-primary').length > 0) {
            $(this).find('.btn').toggleClass('btn-primary');
        }
        if ($(this).find('.btn-danger').length > 0) {
            $(this).find('.btn').toggleClass('btn-danger');
        }
        if ($(this).find('.btn-success').length > 0) {
            $(this).find('.btn').toggleClass('btn-success');
        }
        if ($(this).find('.btn-info').length > 0) {
            $(this).find('.btn').toggleClass('btn-info');
        }

        $(this).find('.btn').toggleClass('btn-default');

    });

    /* 창 닫기 */
    $('#btn-close').on("click",function(){
        self.close();
    })


    /* 이전페이지로 */
    $('#btn-back').on("click",function(){
        history.go(-1);
    })

});
/* 게시판 관리버튼 기능 [E] */


// datepicker
$(document).ready(function () {
    $(function () {
        $("#sdate").datepicker({dateFormat: 'yy-mm-dd', maxDate: '<?=date("Y-m-d");?>'});
        $(".datepicker").datepicker({dateFormat: 'yy-mm-dd'});
    });
});


// 날자 설정
function SetDate(O, S, E) {


    let n = new Date();
    let strF = O.charAt(0); // 첫글자
    let strFP = O.slice(1) * 1; // 나머지글자
    let strL = O.slice(-1); // 마지막글자
    let strLP = O.slice(0,-1) * 1; // 마지막글자를 제외한
    let stDate, enDate = n, last;

    // 지난 월도 선택
    if(strF=='B'){
        stDate = new Date(n.getFullYear(), n.getMonth() - strFP, 1);
        last = (new Date(stDate.getFullYear(), stDate.getMonth() + 1, 0)).getDate();
        enDate = new Date(stDate.getFullYear(), stDate.getMonth() , last);
    }

    // 지금으로 부터 몇개월 전
    else if(strL=='M'){
        strLP = (strLP) ? strLP - 1 : 0;
        stDate = new Date(n.getFullYear(), n.getMonth() - strLP, 1);
    }

    // 지난 년도
    else if(strF=='Y'){
        stDate = new Date(n.getFullYear() - strFP, 0, 1);
        enDate = new Date(stDate.getFullYear(), 11, 31);

    }

    else {
        switch (O) {
            case 'T':   stDate = n; break;
            case '1':   stDate = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 1); enDate = stDate; break;
            case '7':   stDate = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 7); break;
            case '30':  stDate = new Date(n.getFullYear(), n.getMonth(), n.getDate() - 30); break;
        }
    }

    let sdate = getDateFormat(stDate);
    let edate = getDateFormat(enDate);


    $("#"+S).val(sdate);
    $("#"+E).val(edate);

    // option : 리포트에서 클릭시 리포트로 이동 기능
    report(sdate, edate, O);

}

function getDateFormat(currentDate) {

    var year = currentDate.getFullYear();
    var month = ("0" + (currentDate.getMonth() + 1)).slice(-2);
    var day = ("0" + currentDate.getDate()).slice(-2);

    // YYYY-mm-dd 형식으로 날짜 구성
    var formattedDate = year + "-" + month + "-" + day;
    return formattedDate;
}

function report(sdate, edate, searDateType) {
    if(sdate && edate) {
        let f=document.scform;
        f.searDateType.value=searDateType;
        f.submit();
    }
}

// 테이블 정렬
$(document).ready(function() {
    // 테이블을 tablesorter로 초기화
    $("#myTable").tablesorter();
});



// 엑셀다운로드


$(document).ready(function() {

    $('.excelDown').on('click', function(){

        let targetTable = $(this).data('target');
        if(!targetTable){
            return '엑셀전환 테이블이 없습니다.';
        }

        var datatodisplay = $("<div>").append($("#"+targetTable).clone().eq(0)).html();

        $("#datatodisplay").val( $("<div>").append($("#"+targetTable).clone().eq(0)).html());

        frm_excel_down.action = "/html/make_excel.php";
        frm_excel_down.target = "ifr_pro";
        frm_excel_down.submit();

    })

    $('.excelDownForm').on('click', function(){

        let targetUrl = $(this).data('target');
        if(!targetUrl){
            return '엑셀파일이 없습니다.';
        }

        var datatodisplay = $("<div>").append($("#"+targetUrl).clone().eq(0)).html();

        $("#datatodisplay").val( $("<div>").append($("#"+targetUrl).clone().eq(0)).html());

        location.href="/html/excelFile/"+targetUrl+'.php'

/*        frm_excel_down.action = "/html/excelFile/"+targetUrl+'.php';
        frm_excel_down.target = "ifr_pro";
        frm_excel_down.submit();*/

    })

});



// cell merge
function mergeCell(tableId) {

    // variable 정의
    var first = true;
    var prevRowspan1 = 1;
    var prevCell1 = null;
    var prevRowspan2 = 1;
    var prevCell2 = null;
    // tr 모두 추출
    var rows = $("#" + tableId + " > tbody").children();
    for (var i = 0; i < rows.length; i++ ) {
        // first row
        if (first) {
            prevRow = rows[i];
            prevCell1 = $(prevRow).find("td").eq(0); // 기간
            prevCell2 = $(prevRow).find("td").eq(1); // 성별
            // console.log("#############################################");
            // console.log("## first row process");
            // console.log("#############################################");
            // console.log(prevCell1);
            // console.log(prevCell2);
            first = false;
            continue;
        }
        var row = rows[i]; // row
        var tdList = $(row).find("td"); // row > td 리스트
        var firstCell = $(tdList).eq(0); // 첫 번째 행
        var secondCell = $(tdList).eq(1); // 두 번째 행
        var firstCellText = $(firstCell).text(); // 첫 번째 행 text 추출
        var secondCellText = $(secondCell).text() // 두 번째 행 text 추출
        // 두 번째 row 부터 텍스트 비교
        if (prevCell1.text() == firstCellText) {
            if (prevCell2.text() == secondCellText) { // 성별 값 비교
                prevRowspan2++; // 중복되는 값이 있으므로 rowspan +1
                $(prevCell2).attr("rowspan", prevRowspan2); // 첫 번째 row의 두 번째 cell에 rowspan 추가 (성별)
                $(secondCell).remove(); // 중복 cell element 삭제
            } else {
                prevRowspan2 = 1;
                prevCell2 = secondCell;
            }
            prevRowspan1++;
            $(prevCell1).attr("rowspan", prevRowspan1);
            $(firstCell).remove();
        }
        else {
            prevRowspan1 = 1;
            prevRowspan2 = 1;
            prevCell1 = firstCell;
            prevCell2 = secondCell;
        }
    }
}

function mergeCell3(tableId) {
    // variable 정의
    var first = true;
    var prevRowspan1 = 1;
    var prevCell1 = null;
    var prevRowspan2 = 1;
    var prevCell2 = null;
    var prevRowspan3 = 1;
    var prevCell3 = null;
    // tr 모두 추출
    var rows = $("#" + tableId + " > tbody").children();
    for (var i = 0; i < rows.length; i++ ) {
        // first row
        if (first) {
            prevRow = rows[i];
            prevCell1 = $(prevRow).find("td").eq(0); // 1열
            prevCell2 = $(prevRow).find("td").eq(1); // 2열
            prevCell3 = $(prevRow).find("td").eq(2); // 3열

            first = false;
            continue;
        }
        var row = rows[i]; // row
        var tdList = $(row).find("td"); // row > td 리스트

        var firstCell = $(tdList).eq(0); // 첫 번째 행
        var firstCellText = $(firstCell).text(); // 첫 번째 행 text 추출

        var secondCell = $(tdList).eq(1); // 두 번째 행
        var secondCellText = $(secondCell).text() // 두 번째 행 text 추출

        var thirdCell = $(tdList).eq(2); // 두 번째 행
        var thirdCellText = $(thirdCell).text() // 두 번째 행 text 추출

        // 두 번째 row 부터 텍스트 비교
        if (prevCell1.text() == firstCellText) { // 1열 값 비교

            if (prevCell2.text() == secondCellText) { // 2열 값 비교

                if (prevCell3.text() == thirdCellText) { // 3열 값 비교
                    prevRowspan3++; // 중복되는 값이 있으므로 rowspan +1
                    $(prevCell3).attr("rowspan", prevRowspan3); // 첫 번째 row의 두 번째 cell에 rowspan 추가
                    $(thirdCell).remove(); // 중복 cell element 삭제
                } else {
                    prevRowspan3 = 1;
                    prevCell3 = thirdCell;
                }

                prevRowspan2++; // 중복되는 값이 있으므로 rowspan +1
                $(prevCell2).attr("rowspan", prevRowspan2); // 첫 번째 row의 두 번째 cell에 rowspan 추가
                $(secondCell).remove(); // 중복 cell element 삭제

            } else {

                prevRowspan2 = 1;
                prevRowspan3 = 1;
                prevCell2 = secondCell;
                prevCell3 = thirdCell;
            }

            prevRowspan1++;
            $(prevCell1).attr("rowspan", prevRowspan1);
            $(firstCell).remove();
        }
        else {
            prevRowspan1 = 1;
            prevRowspan2 = 1;
            prevRowspan3 = 1;
            prevCell1 = firstCell;
            prevCell2 = secondCell;
            prevCell3 = thirdCell;
        }
    }
}



/* 업무 등록/수정 팝업*/
$('.work-reg').on("click",function(e){
    e.stopPropagation();
    let task_idx = $(this).data('idx');
    popWorkTask(task_idx);
})

/* 업무 등록/수정 팝업*/
$('.work-view').on("click",function(e){
    e.stopPropagation();
    let task_idx = $(this).data('idx');
    popWorkTaskView(task_idx);
})

/* 업무 복사 팝업*/
$('.work-duplicate').on("click",function(e){
    e.stopPropagation();
    let task_idx = $(this).data('idx');
    popWorkTaskDuplicate(task_idx);
})

/* 업무 등록*/
$('#work-register').on("click",function(){
    var formData = new FormData($('#dailyTaskInput')[0]);

    let title;
    $(".required").each(function(){
        if(!$(this).val()){
            title = $(this).parents('td').prev().text().replace(/\*/,'');
            $(this).focus();
            return;
        }
    });
    if(title){
        alert(title+"의 값은 필수 입니다.");
        return
    }

    let channal = false;
    $(".channal").each(function(){
        if($(this).is(':checked') == true ){
            channal = true;
        }
    });

    let worker = false;
    $(".worker").each(function(){
        if($(this).is(':checked') == true ){
            worker = true;
        }
    });


    // 파일첨부
    for (var i = 0; i < filesArr.length; i++) {
        // 삭제되지 않은 파일만 폼데이터에 담기
        if (!filesArr[i].is_delete) {
            formData.append("attach_file[]", filesArr[i]);
        }
    }

    // 로딩바
    $('#status').fadeIn();
    $('#preloader').delay(200).fadeIn();


    $.ajax({
        cache : false,
        url : "/html/process.html", // 요기에
        type : 'POST',
        async: true,
        data : formData,
        contentType: false,
        processData: false,
        headers: {'cache-control': 'no-cache', 'pragma': 'no-cache'},
        success : function(data) {
            if(data=='Success' || data == 'Auth'){
                top.opener.location.reload();
                self.close();
            }
            else {
                alert(data);
                $('#status').fadeOut();
                $('#preloader').delay(200).fadeOut();
            }
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */
})


/* 업무 삭제*/
$('.work-delete').on("click",function(e){
    e.stopPropagation();
    let task_no = $(this).data('idx')
    let refpage = '/plan/work_reg.html';

    if(!task_no){
        alert('업무관리번호가 없습니다.');
        return;
    }

    if(!confirm('해당 업무를 삭제 하시겠습니까?')) return;

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        data : {task_no:task_no,mod:'del',refpage:refpage },
        success : function(data) {
            if(data=='Success') location.reload();
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */
})


/* 업무 작업 현황 수정 - 작업자*/
$('.work-modify-worker').on("click",function(e){
    e.stopPropagation();
    var formData = $("#dailyTaskInput").serialize();

    if(!confirm('해당 내용으로 수정 하시겠습니까?')) return;

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        data : formData,
        success : function(data) {
            if(data=='Success') location.reload();
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */
})


/* 업무 등록/수정 팝업*/
$('.work-complete').on("click",function(e){
    e.stopPropagation();
    let task_idx = $(this).data('idx');
    popWorkCompTask(task_idx);
})

/* 업무 완료처리*/
$('.set-complete').on("click",function(){
    let task_idx = $(this).data('idx')
    let refpage = '/plan/work_reg.html';

    if(!task_idx){
        alert('업무관리번호가 없습니다.');
        return;
    }

    if(!confirm('해당업무를 완료 하시겠습니까?')) return;

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        data : {task_idx:task_idx,PLN_STATUS:'01',mod:'complete',refpage:refpage },
        success : function(data) {
            if(data=='Success') location.reload();
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */
})


/**** 첨부파일 기능 [S] ****/

var fileNo = 0;
var filesArr = new Array();

/* 첨부파일 추가 */
function addFile(obj){
    var maxFileCnt = 10;   // 첨부파일 최대 개수
    var attFileCnt = document.querySelectorAll('.filebox').length;    // 기존 추가된 첨부파일 개수
    var remainFileCnt = maxFileCnt - attFileCnt;    // 추가로 첨부가능한 개수
    var curFileCnt = obj.files.length;  // 현재 선택된 첨부파일 개수

    // 첨부파일 개수 확인
    if (curFileCnt > remainFileCnt) {
        alert("첨부파일은 최대 " + maxFileCnt + "개 까지 첨부 가능합니다.");
    }

    for (var i = 0; i < Math.min(curFileCnt, remainFileCnt); i++) {

        const file = obj.files[i];

        // 첨부파일 검증
        if (validation(file)) {
            // 파일 배열에 담기
            var reader = new FileReader();
            reader.onload = function () {
                filesArr.push(file);
            };
            reader.readAsDataURL(file);

            // 목록 추가
            let htmlData = '';
            htmlData += '<div id="file' + fileNo + '" class="filebox">';
            htmlData += '   <p class="name">' + file.name + '</p>';
            htmlData += '   <a class="delete" onclick="deleteFile(' + fileNo + ');"><i class="far fa-minus-square"></i></a>';
            htmlData += '</div>';
            $('.file-list').append(htmlData);
            fileNo++;
        } else {
            continue;
        }
    }
    // 초기화
    document.querySelector("input[type=file]").value = "";
}

/* 첨부파일 검증 */
function validation(obj){
    const fileTypes = [
        'application/pdf', 'image/gif', 'image/jpeg', 'image/png', 'image/bmp', 'image/tif', 'application/haansofthwp', 'application/x-hwp'
        , 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
        , 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
        , 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
    ];
    if (obj.name.length > 100) {
        alert("파일명이 100자 이상인 파일은 제외되었습니다.");
        return false;
    } else if (obj.size > (100 * 1024 * 1024)) {
        alert("최대 파일 용량인 100MB를 초과한 파일은 제외되었습니다.");
        return false;
    } else if (obj.name.lastIndexOf('.') == -1) {
        alert("확장자가 없는 파일은 제외되었습니다.");
        return false;
    }
    /*else if (!fileTypes.includes(obj.type)) {
        alert("첨부가 불가능한 파일은 제외되었습니다.");
        return false;
    }*/
    else {
        return true;
    }
}

/* 첨부파일 삭제 */
function deleteFile(num) {
    document.querySelector("#file" + num).remove();
    filesArr[num].is_delete = true;
}



/* 첨부파일 삭제 및 DB */
$(document).on("click",'.file-delete',function(){
    let f_id = $(this).data('idx');
    let parent = $(this).parent();
    let refpage = $('input[name=refpage]:eq(1)').val();

    if(!f_id){
        alert('파일번호가 없습니다.');
        return;
    }

    if(!confirm('해당 파일을 삭제 하시겠습니까?')) return;

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        data : {f_id:f_id,mod:'file-del',refpage:refpage },
        success : function(data) {

            if(data=='Success') {
                parent.remove();
            }
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */
})

/**** 첨부파일 기능 [E] ****/



/**** 대쉬보드 모달 기능 [S] ****/

// 스케듈 신규등록 화면
function openModal(date) {
    if(date) $("#SET_DTTM").val(date);
    $('#sidx').val('');
    $('.modal-btn-del').css('display','none');
    document.getElementById('myModal').style.display = 'block';
}

// 스케쥴 수정 화면
var titleORG='';


$(document).on("click",'.view-modal',function(e){

    let refpage = "/html/dashboard.html";
    let idx = $(this).data('idx');

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        dataType: 'json',
        data : {sidx:idx,mod:'view',refpage:refpage },
        success : function(data) {
            if(data.response=='Success') {
                // 일자, 구분, 제목, 내용
                $('#SET_DTTM').val(data.SET_DTTM);
                $('#SET_TIME').val(data.SET_TIME).prop("selected",true);
                $('#SS_TYPE').val(data.SS_TYPE);
                $('#TITLE').val(data.TITLE);
                titleORG = data.TITLE;
                $('#CONTENTS').val(data.CONTENTS);
                if(idx) $('#modal-btn').text('수정');
                $('.sidx').val(idx);
                if(data.DEL=='Y') $('#modal-btn-del').css('display','');
                $('#myModal').css('display','block');
            }
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */

})

function nl2br(str) {
    return str.replace(/\n/g, '<br>');
}

$(document).on("click",'.view-modal2',function(e){

    let refpage = "/html/dashboard.html";
    let idx = $(this).data('idx');

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        dataType: 'json',
        data : {sidx:idx,mod:'view',refpage:refpage },
        success : function(data) {
            if(data.response=='Success') {

                console.log(data);

                // 구분
                let ssType = '';
                switch(data.SS_TYPE){
                    case '01' : ssType = '공휴일'; break;
                    case '02' : ssType = '전체일정'; break;
                    case '03' : ssType = '개인일정'; break;
                    case '001' : ssType = '연차'; break;
                    case '002' : ssType = '오전반차'; break;
                    case '003' : ssType = '오후반차'; break;
                    case '004' : ssType = '기타휴가'; break;
                }

                // 초기 셋팅
                $('#SET_TIME_AREA').css("display","none");
                $('#USER_NM_AREA').css("display","none");
                $('#CONTENTS_AREA').css("display","none");

                $('#TITLE2').text(data.TITLE);
                $('#SET_DTTM2').text(data.SET_DTTM);
                $('#SS_TYPE2').text(ssType);

                if(data.SET_TIME) {
                    $('#SET_TIME_AREA').css("display","");
                    $('#SET_TIME2').text(data.SET_TIME);
                }

                if(data.SET_TIME) {
                    $('#SET_TIME_AREA').css("display","");
                    $('#SET_TIME2').text(data.SET_TIME);
                }

                if(data.USER_NM && data.SS_TYPE != '01'&& data.SS_TYPE != '02') {
                    $('#USER_NM_AREA').css("display","");
                    $('#USER_NM2').text(data.USER_NM);
                }

                if(data.CONTENTS) {
                    $('#CONTENTS_AREA').css("display","");
                    $('#CONTENTS2').html(nl2br(data.CONTENTS));
                }

                $('#myModal-view').css('display','block');
            }
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */

})


// 스케쥴 승인취소
$(document).on("click",'.btn-agree-cancel',function(e){
    e.stopPropagation();
    let sidx = $(this).data('idx');
    let refpage = "/html/member/member_leave.html";
    let $this = $(this);

    if(!confirm('승인을 취소하시겠습니까?')) return;

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        data : {sidx:sidx,mod:'cancel',refpage:refpage },
        success : function(data) {
            if(data=='Success') {
                $this.removeClass('btn-danger btn-agree-cancel');
                $this.addClass('btn-warning btn-agree-set');
                $this.text('숭인대기');
                $this.parent().parent().addClass('sch-table-bg');
            }
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */

})


// 스케쥴 승인
$(document).on("click",'#modal-btn-agree',function(e){
    var formData = $("#leave-agree").serialize();
    let $this = $(this);

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        data : formData,
        success : function(data) {
            if(data=='Success') location.reload();
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */

    // 모달 닫기
    closeModal();
})


// 스케쥴 수정 화면
$(document).on("click",'.btn-agree-set',function(e){
    e.stopPropagation();
    let sidx = $(this).data('idx');
    agreeModal(sidx);
})

function agreeModal(idx) {

    let refpage = "/html/member/member_leave.html";

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        dataType: 'json',
        data : {sidx:idx,mod:'view',refpage:refpage },
        success : function(data) {
            if(data.response=='Success') {
                // 일자, 구분, 제목, 내용
                $('#leave-date').text(data.SET_DTTM);
                $('#leave-user').text(data.USER_NM);
                $('#leave-type').text(data.TITLE);
                $('#leave-count').val(data.LEAVE_COUNT);
                $('#leave-contents').text(data.CONTENTS);
                $('#sidx').val(idx);
                if(data.DEL=='Y') $('#modal-btn-del').css('display','');
                $('#myModalAgree').css('display','block');
            }
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */

}


// 모달창 닫기
function closeModal() {
    document.getElementById("leave-register").reset();
    $('.modal').css('display','none');
}

// 스케쥴 구분에 따른 설정 변경
function changeTitle() {
    var typeSelect = document.getElementById('SS_TYPE');

    let titleInput = document.getElementById('TITLE');
    let pattern = /00/g;

    // 구분값이 연차가 아닐때
    if (pattern.test(typeSelect.value) === false) {
        titleInput.value = titleORG;
        titleInput.readOnly = false;
        $('#sch-member').css('display','none');
        $('#sch-time').css('display','');
    }

    // 구분값이 연차일때
    else {
        titleInput.value = typeSelect.options[typeSelect.selectedIndex].text;
        titleInput.readOnly = true;
        $('#sch-member').css('display','');
        $('#sch-time').css('display','none');
    }
}

// 스케쥴 등록
function submitSchedule() {
    var formData = $("#leave-register").serialize();
    let setDate = $("#SET_DTTM").val();
    let setTitle = $("#TITLE").val();

    if(!setDate){
        alert('날짜를 입력해 주세요.');
        return;
    }
    if(!setTitle){
        alert('제목을 입력해 주세요.');
        return;
    }

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        data : formData,
        success : function(data) {
            if(data=='Success') location.reload();
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */

    // 모달 닫기
    closeModal();
}

// 스케쥴 삭제
function submitFormDel() {
    let refpage = "/html/dashboard.html";
    let idx = $('#sidx').val();

    $.ajax({
        cache : false,
        url : "/html/process.html",
        type : 'POST',
        data : {sidx:idx,mod:'del',refpage:refpage },
        success : function(data) {
            if(data=='Success') location.reload();
            else alert(data);
        }, // success

        error : function(xhr, status) {
            alert(xhr + " : " + status);
        }
    }); // $.ajax */

    // 모달 닫기
    closeModal();
}
/**** 대쉬보드 모달 기능 [E] ****/



/**** 회원 로그인 - 최고관리자 [S] ****/
$('.member-id').on("click",function(){
    let refpage = "/getAdmin";
    let midx = $(this).data('id');

    if(midx) {
        $.ajax({
            cache: false,
            url: "/html/process.html",
            type: 'POST',
            data: {midx: midx, refpage: refpage},
            success: function (data) {
                if (data == 'Success') location.href = "/";
                else alert(data);
            }, // success

            error: function (xhr, status) {
                alert(xhr + " : " + status);
            }
        }); // $.ajax */
    }
});
/**** 회원 로그인 - 최고관리자 [E] ****/


/* ------------------------------
SCREENFULL JS
------------------------------ */
$('.screenfull-btn').on('click', function(){
    if (screenfull.enabled) {
        screenfull.toggle();
    }
    return false;
});
