
// 업무리스트 분류 선택
$(document).ready(function () {

    /* 쿠키값 셋팅 */
    let cookieChk = false;
    $(".userDept-chk").each( function () {
        // 쿠키설정 확인
        if($(this).hasClass('active')){
            cookieChk = true;
        }

    });
    if(!cookieChk) $('#userDept-all').addClass('active');

    let branchChk = false;
    $(".branch-chk").each( function () {
        // 쿠키설정 확인
        if($(this).hasClass('active')){
            branchChk = true;
        }

    });
    if(!branchChk) $('#branch-all').addClass('active');
    listChk();


    /*회원 필터링*/
    $(".btn-chk,.userDept-chk").on("click", function () {

        let id = this.id;
        let target;

        if(!id) {
            let className;
            if($(this).hasClass('member-chk')) className ='member-chk';
            else if($(this).hasClass('branch-chk')) className ='branch-chk';
            else if($(this).hasClass('reqType-chk')) className ='reqType-chk';
            else if($(this).hasClass('workType-chk')) className ='workType-chk';
            else if($(this).hasClass('filter-chk')) className ='filter-chk';
            else if($(this).hasClass('userDept-chk')) className ='userDept-chk';
            else className = 'btn-chk'

            var classNames = className.split(' ');
            $.each(classNames, function (index, className) {
                if (!className.startsWith('btn-') && className !== 'active') {
                    target = "."+className;
                }
            });
            if(!target) target = ".member";

        }else{
            target = "#"+id;
        }

        let targetGroups = target.split('-');
        let targetGroup = targetGroups[0].replace(/[.#]/g, "");

        if(id) {

            /*
            // 전체버튼 토글
            if (!$(target).hasClass('active')) {
                $('.'+targetGroup+'-chk').removeClass('active');
                $(target).addClass('active');
            } else {
                $(target).removeClass('active');
            }*/


            // 전체버튼 클릭시 무조전 전체 리스트 노출
            $('.'+targetGroup+'-chk').removeClass('active');
            $(target).addClass('active');


            listChk();
        }
        else{

            // 전체버튼 비활성
            $('#'+targetGroup+'-all').removeClass('active');

            // 1 해당버튼 토글
            /*$(this).toggleClass('active');

            let statusM = false;
            $("."+targetGroup+"-chk").each(function (idx, item) {
                if ($(this).hasClass("active")) statusM = true;
            })
            if (!statusM) {
                $('#'+targetGroup+'-all').trigger("click");
            } else {
                listChk(); // 리스트 재설정
            }*/


            // 2해당 필더링만
            $('.'+targetGroup+'-chk').removeClass('active');
            $(this).addClass('active');
            listChk(); // 리스트 재설정

        }

        //console.log(window.location.pathname);

        // 쿠키 설정
/*        if(window.location.pathname == '/html/status/daily_list.html') {
            if ($(this).hasClass('active')) {
                let name = $(this).data('status');
                if (name != 'all') $.cookie('UD', 'Y');
            } else {
                let name = $(this).data('status');
                $.removeCookie('UD' + decodeURIComponent(name));
            }
        }*/

        // 쿠키 설정
        let name = $(this).data('status');
        if ($(this).hasClass('active') && name != 'all') {
            $.cookie('UD', decodeURIComponent(name));
            $.removeCookie('UD_ALL');
        } else {
            $.cookie('UD_ALL', 'active');
            $.removeCookie('UD');
        }

    });


    function listChk(){
        $("[class^='filterChk']").addClass('hidden'); // 초기화
        $("[class^='filterChk']").removeClass('FC'); // 초기화

        // 활성리스트 설정
        $("[class^='filterChk']").each(function(idx,item){

            let $this = item;

            // 진행구분
            let filterChk = false;
            let statusF;
            if($("#filter-all").hasClass('active')) {
                filterChk = true;
            }else{
                $(".filter-chk").each(function (idx, item) {

                    if ($(this).hasClass("active")) {
                        statusF = $(this).data('status');
                        if($($this).hasClass('filterChk'+statusF)) {
                            filterChk = true;
                            $($this).addClass('FC');
                            return false;
                        }
                    }
                })
            }

            // 회원구분
            let memberChk = false;
            let statusM;
            if($("#member-all").hasClass('active')) {
                memberChk = true;
            }else{
                $(".member-chk").each(function(idx,item){

                    if ($(this).hasClass("active")) {
                        statusM = $(this).data('status');
                        if($($this).hasClass('MC'+statusM)) {
                            memberChk = true;
                            return false;
                        }
                    }
                })
            }

            // 요청구분
            let reqChk = false;
            let statusR;
            if($("#reqType-all").hasClass('active')) {
                reqChk = true;
            }else{
                $(".reqType-chk").each(function(idx,item){

                    if ($(this).hasClass("active")) {
                        statusR = $(this).data('status');
                        if($($this).hasClass('RT'+statusR)) {
                            reqChk = true;
                            return false;
                        }
                    }
                })
            }

            // 작업구분
            let workChk = false;
            let statusW;
            if($("#workType-all").hasClass('active')) {
                workChk = true;
            }else{
                $(".workType-chk").each(function(idx,item){

                    if ($(this).hasClass("active")) {
                        statusW = $(this).data('status');
                        if($($this).hasClass('WT'+statusW)) {
                            workChk = true;
                            return false;
                        }
                    }
                })
            }

            // 부서구분
            let deptChk = false;
            let statusD;
            if($("#userDept-all").hasClass('active')) {
                deptChk = true;
            }else{
                $(".userDept-chk").each(function(idx,item){

                    if ($(this).hasClass("active")) {
                        statusD = $(this).data('status');
                        if($($this).hasClass('UD'+statusD)) {
                            deptChk = true;
                            return false;
                        }
                    }
                })
            }

            //필터링
            //console.log(filterChk + ' = ' + memberChk + ' = ' + reqChk + ' = ' + workChk + ' = ' + deptChk)
            if( deptChk) {
                $(this).removeClass("hidden");
            }
        })

        // 수량확인
        if($("#filter-all").hasClass('active')) {
            listCnt("[class^='filterChk']");
        }else {
            listCnt(".FC");
        }

    }

    // 개별 수량
    function listCnt(elem){

        // 회원별 수량
        let MC = [];
        $(elem).each(function(idx,item){

            let $this = item;
            $(".member-chk").each(function(idx,item){

                statusM = $(this).data('status');
                if($($this).hasClass('MC'+statusM)) {

                    //console.log(statusM);
                    if (MC[statusM] !== undefined) {
                        MC[statusM]++;
                    } else {
                        MC[statusM] = 1;
                    }
                }
            })
        })
        $(".member-chk > span").text('');
        for (let key in MC) {
            if (MC.hasOwnProperty(key)) {
                $("[data-status='"+key+"']>span").text('('+MC[key]+')');
            }
        }

        // 요청구분별 수량
        let RT = [];
        $(elem).each(function(idx,item){

            let $this = item;
            $(".reqType-chk").each(function(idx,item){

                statusM = $(this).data('status');
                if($($this).hasClass('RT'+statusM) && !$($this).hasClass('hidden')) {

                    //console.log(statusM);
                    if (RT[statusM] !== undefined) {
                        RT[statusM]++;
                    } else {
                        RT[statusM] = 1;
                    }
                }
            })
        })
        $(".reqType-chk > span").text('');
        for (let key in RT) {
            if (RT.hasOwnProperty(key)) {

                //console.log("RT:"+key);

                $("[data-status='"+key+"']>span").text('('+RT[key]+')');
            }
        }


        // 작업구분별 수량
        let WT = [];
        $(elem).each(function(idx,item){

            let $this = item;
            $(".workType-chk").each(function(idx,item){

                statusM = $(this).data('status');
                //console.log(statusM);

                if($($this).hasClass('WT'+statusM) && !$($this).hasClass('hidden')) {


                    if (WT[statusM] !== undefined) {
                        WT[statusM]++;
                    } else {
                        WT[statusM] = 1;
                    }
                }
            })
        })
        $(".workType-chk > span").text('');
        for (let key in WT) {

            //console.log("WT:"+key);

            if (WT.hasOwnProperty(key)) {
                $("[data-status='"+key+"']>span").text('('+WT[key]+')');
            }
        }

    }




    /*작업 스케쥴 확인*/
    $('.progressBoxToggle').on( "click",function() {

        $(this).find(".progress-group2").toggle();

        var $content = $(this).parent().find('.deatailBox');
        var $height = $(this).get(0).scrollHeight - 40;

        try {

            // 현재 높이와 실제 높이 비교
            if ($content.height() <= 50) {
                $content.height($height); // 컨텐츠 높이에 맞게 늘림
            } else {
                $content.height(50); // 초기 높이로 복귀
            }
        } catch (e) {

        }
        event.stopImmediatePropagation();
    });

});