// source --> https://westart.or.kr/wp-content/themes/Westart-2023/js/westart-ui.js?ver=1.1 
(function ($) {
  "use strict";

  var pcMinWidth = 981;
  var isMobile = $(window).innerWidth() < pcMinWidth;
  $(document).ready(function () {

    // ── 목록보기 버튼: 목록 페이지 URL 및 페이지네이션 상태 보존 ──
    (function () {
      var STORAGE_KEY = "westart_list_referrer";

      // 포스트 목록 페이지에서: 포스트 링크 클릭 시 현재 목록 URL 저장
      // 목록 컨테이너가 있는 페이지에서만 저장 (홈페이지, 일반 페이지 등 제외)
      var isListPage = !$("body").hasClass("single") &&
        !$("body").hasClass("is-home") &&
        $(
          ".thumbnail-list.wide, .board-list, .tbl.line.board, " +
          ".module.post-module, .westartletter-list-wrap, " +
          ".campaign-review-list-wrap"
        ).length > 0;

      if (isListPage) {
        // 목록 페이지 내의 포스트 링크 클릭을 감지
        $(document).on("click", [
          ".thumbnail-list a",
          ".board-list a",
          ".et_pb_posts a.entry-title",
          ".et_pb_post a",
          ".post-list a",
          ".search-result a",
          'article a[href*="/archives/"]',
          'article a[href*="/westartletter/"]'
        ].join(", "), function () {
          try {
            // 현재 페이지 URL을 저장 (페이지네이션 쿼리 파라미터 포함)
            sessionStorage.setItem(STORAGE_KEY, window.location.href);
          } catch (e) {
            // sessionStorage 사용 불가 시 무시
          }
        });
      }

      // 포스트 상세 페이지에서: 저장된 목록 URL로 목록보기 링크 업데이트
      if ($("body").hasClass("single")) {
        var $backBtn = $(".post-nav .back-list");
        if ($backBtn.length > 0) {
          try {
            var storedUrl = sessionStorage.getItem(STORAGE_KEY);
            if (storedUrl) {
              // 저장된 목록 URL의 도메인이 현재 도메인과 같은지 확인 (보안)
              var currentHost = window.location.host;
              var storedHost = "";
              try {
                storedHost = new URL(storedUrl).host;
              } catch (e) {
                storedHost = "";
              }
              if (storedHost === currentHost) {
                $backBtn.attr("href", storedUrl);
              }
            }
          } catch (e) {
            // sessionStorage 사용 불가 시 PHP에서 생성한 기본 URL 유지
          }
        }
      }
    })();

    // menu hover
    $("#et-menu > li.menu-item-has-children").hover(
      function () {
        $("body").addClass("menu-hover");
      },
      function () {
        $("body").removeClass("menu-hover");
      }
    );

    // tab click
    var $tabWrap = $(".tabs-list-content-wrap");
    if ($tabWrap.length > 0) {
      $(".tabs-btn").on("click", function (e) {
        e.preventDefault();
        var target = $(this).attr("data-target");
        var index = $(this).parent("li").index();
        $tabWrap.find(".tabs-btn").removeClass("active");
        $(this).addClass("active");
        var $target =
          target == undefined
            ? $tabWrap.find(".tabs-content").eq(index)
            : $tabWrap.find('.tabs-content[data-id="' + target + '"]');
        if ($target.length > 0) {
          var $active = $(".tabs-list-content-wrap .tabs-content.active");
          $target.fadeIn(1500, function () {});
          $target.addClass("active");
          $active.hide();
          $active.removeClass("active");

          // event
          if($('.event-related-posts-mo').length>0 ){
            $('.tabs-content.active .event-related-posts-mo .thumbnail-list').slick('refresh');
          }
        }
      });
    }

    // event
    // marker
    var $mapWrap = $(".placement-map-wrap");
    if ($(".placement-map-wrap").length) {
      $(".tabs-btn").on("click", function (e) {
        e.preventDefault();
        var target = $(this).attr("data-target");
        var $target = $mapWrap.find('.map-image[data-id="' + target + '"]');
        $mapWrap.find(".map-image.active").removeClass("active");
        if ($target.length > 0) {
          $target.addClass("active");
        } else {
          $mapWrap.find('.map-image[data-id="none"]').addClass("active");
        }

        // mo
        if( $('.tabs-select').length > 0 ){
          $('.tabs-select').val(target);
        }
      });
      // mo
      $('.tabs-select').on("change", function (e) {
        var target = $(this).val();
        var $target = $mapWrap.find('.map-image[data-id="' + target + '"]');
        $mapWrap.find(".map-image.active").removeClass("active");
        if ($target.length > 0) {
          $target.addClass("active");
        } else {
          $mapWrap.find('.map-image[data-id="none"]').addClass("active");
        }

        var index = $(this).find('option:selected').index();
        $tabWrap.find(".tabs-btn").removeClass("active");
        $tabWrap.find(".tabs-btn").eq(index).addClass("active");
        var $target =
          target == undefined
            ? $tabWrap.find(".tabs-content").eq(index)
            : $tabWrap.find('.tabs-content[data-id="' + target + '"]');
        if ($target.length > 0) {
          var $active = $(".tabs-list-content-wrap .tabs-content.active");
          $target.fadeIn(1500, function () {});
          $target.addClass("active");
          $active.hide();
          $active.removeClass("active");
        }
      });
    }

    // single related-posts
    if ($("body.single .related-posts").length > 0) {
      $(".related-posts .thumbnail-list").slick({
        dots: false,
        infinite: false,
        slidesToShow: 4,
        slidesToScroll: 1,
        responsive: [
          {
            breakpoint: pcMinWidth,
            settings: {
              arrows: false,
              slidesToShow: 1,
            },
          },
        ],
      });
    }

    // newsletter
    var $westartletter = $(".westartletter-list");
    if ($westartletter.length > 0) {

      // ── URL 해시로 소식지 페이지네이션/선택 상태 보존 ──
      // 해시 형식: #page=2&term=123
      function getHashParams() {
        var params = {};
        var hash = window.location.hash.replace(/^#/, "");
        if (hash) {
          hash.split("&").forEach(function (part) {
            var kv = part.split("=");
            if (kv.length === 2) params[kv[0]] = kv[1];
          });
        }
        return params;
      }

      function updateHash(page, termId) {
        var hash = "page=" + page;
        if (termId) hash += "&term=" + termId;
        // replaceState로 히스토리 쌓지 않고 현재 해시만 갱신
        history.replaceState(null, "", "#" + hash);
      }

      // 현재 활성 호수의 term_id 반환
      function getActiveTermId() {
        var $active = $westartletter.find(".item.active");
        return $active.length > 0 ? $active.attr("date-id") : "";
      }

      var currentPage = 1; // 현재 페이지네이션 페이지 번호 추적

      $westartletter.find(".item").on("click", function (e) {
        e.preventDefault();
        if ($westartletter.find(".item.processing").length > 0) {
          return false;
        }

        $westartletter.find(".item.active").removeClass("active");

        $(this).addClass("active");
        $("#westartletterTitle").text($(this).attr("data-title"));
        $("#westartletterCover").css(
          "background-image",
          "url(" + $(this).attr("data-cover") + ")"
        );
        if($(this).attr("data-link")) {
          $("#westartletterLink").attr("href", $(this).attr("data-link"));
          $("#westartletterLink").addClass("btn-green");
          $("#westartletterLink").text("소식지 바로보기");
          $("#westartletterLink").removeClass("btn-gray");
          $("#westartletterLink").attr("target", "_blank");
        } else {
          $("#westartletterLink").attr("href", "javascript:alert('준비중입니다.');");
          $("#westartletterLink").text("바로보기 준비중");
          $("#westartletterLink").attr("target", "_self");
          $("#westartletterLink").removeClass("btn-green");
          $("#westartletterLink").addClass("btn-gray");
        }

        // 호수 선택 시 해시 업데이트
        updateHash(currentPage, $(this).attr("date-id"));
      });

      var $items = $(".westartletter-list .item");
      var numItems = $items.length;
      var perPage = 4;
      $items.slice(perPage).hide();

      var $paginationEl = $westartletter.next(".wp-pagenavi");
      $paginationEl.pagination({
        items: numItems,
        itemsOnPage: perPage,
        displayedPages: 3,
        useAnchors: false,
        prevText: "&laquo;",
        nextText: "&raquo;",
        onPageClick: function (pageNumber) {
          currentPage = pageNumber;
          var showFrom = perPage * (pageNumber - 1);
          var showTo = showFrom + perPage;
          $items.hide().slice(showFrom, showTo).show();
          // 페이지 변경 시 해시 업데이트
          updateHash(pageNumber, getActiveTermId());
        },
      });

      // ── 페이지 로드 시 해시에서 상태 복원 ──
      // 소식지 호수에 해당하는 게시글을 AJAX로 로드하는 함수
      // (api.js의 핸들러와 동일한 동작이지만, 복원 시 api.js 핸들러가
      //  아직 등록되지 않을 수 있으므로 여기서 직접 호출)
      function loadTermPosts(termId) {
        $(".thumbnail-list").empty();
        $.ajax({
          type: "POST",
          url: "/wp-admin/admin-ajax.php",
          dataType: "json",
          data: {
            action: "westartletter_category_post",
            westartletter_type: termId,
            per_page: 100,
            page: 1,
            _fields: "id",
          },
          success: function (html) {
            $(".thumbnail-list").append(html);
          },
        });
      }

      function restoreFromHash() {
        var hashParams = getHashParams();
        var restorePage = parseInt(hashParams.page, 10);
        var restoreTerm = hashParams.term;
        // PHP가 초기 렌더링한 호수 (첫 번째 아이템)의 term_id
        var defaultTermId = $items.first().attr("date-id") || "";

        if (restorePage > 1) {
          // 페이지네이션 복원 (selectPage는 onPageClick 콜백도 호출)
          $paginationEl.pagination("selectPage", restorePage);
        }

        // 복원할 호수가 PHP 초기 렌더링 호수와 다르면 항상 복원
        // (active 클래스 체크 제거 — 두 번째 뒤로가기에서도 확실히 복원)
        if (restoreTerm && restoreTerm !== defaultTermId) {
          var $targetItem = $westartletter.find('.item[date-id="' + restoreTerm + '"]');
          if ($targetItem.length > 0) {
            // 호수 UI 직접 복원 (trigger("click") 대신 직접 처리하여
            // api.js 핸들러와의 AJAX 중복 호출 방지)
            $westartletter.find(".item.active").removeClass("active");
            $targetItem.addClass("active");
            $("#westartletterTitle").text($targetItem.attr("data-title"));
            $("#westartletterCover").css(
              "background-image",
              "url(" + $targetItem.attr("data-cover") + ")"
            );
            if ($targetItem.attr("data-link")) {
              $("#westartletterLink").attr("href", $targetItem.attr("data-link"));
              $("#westartletterLink").addClass("btn-green").removeClass("btn-gray");
              $("#westartletterLink").text("소식지 바로보기");
              $("#westartletterLink").attr("target", "_blank");
            } else {
              $("#westartletterLink").attr("href", "javascript:alert('준비중입니다.');");
              $("#westartletterLink").text("바로보기 준비중");
              $("#westartletterLink").attr("target", "_self");
              $("#westartletterLink").removeClass("btn-green").addClass("btn-gray");
            }
            // 게시글 AJAX 로드
            loadTermPosts(restoreTerm);
          }
        }
      }

      restoreFromHash();

      // bfcache(뒤로가기/앞으로가기 캐시)에서 복원 시 DOMContentLoaded가
      // 실행되지 않으므로, pageshow 이벤트로 상태를 다시 복원
      $(window).on("pageshow", function (e) {
        if (e.originalEvent && e.originalEvent.persisted) {
          restoreFromHash();
        }
      });

      // 해시가 없는 첫 진입 시에도 현재 상태를 해시에 기록
      // (이후 다른 페이지로 이동 → 뒤로가기 시 복원 가능하도록)
      if (!window.location.hash) {
        updateHash(1, getActiveTermId());
      }
    }

    // event mo
    if($('.event-related-posts-mo').length > 0 ){
      $('.event-related-posts-mo .thumbnail-list').not('.slick-initialized').slick({
        dots: false,
        infinite: false,
        arrows : false,
        slidesToShow: 1,
        slidesToScroll: 1
      });
    }

    // mobile
    // menu
    $(".nav-toggle").on("click", function (e) {
      e.preventDefault();
      $("body").toggleClass("mobile-menu-open");
    });
    $("#et-navigation .menu-item.menu-item-has-children > a").on(
      "click",
      function (e) {
        e.preventDefault();
        $(this).parent(".menu-item").toggleClass("open");
      }
    );
    // breadcrumb
    $(".breadcrumb select").on("change", function (e) {
      e.preventDefault();
      var target = $(this).children("option:selected").attr("data-target");
      if (target == "_blank") {
        window.open($(this).val());
      } else {
        location.href = $(this).val();
      }
    });
  });

  // responsive
  $(window).on("load resize", function () {
    if (!isMobile) {
      $("body").removeClass("mobile-menu-open");
    } else {
      $("body").removeClass("menu-hover");
      setScreenSize();
    }
  });

  function setScreenSize() {
    let vh = window.innerHeight * 0.01;
    document.documentElement.style.setProperty("--vh", `${vh}px`);
  }
})(jQuery);
// source --> https://westart.or.kr/wp-content/themes/Westart-2023/js/api.js?ver=1.1 
(function ($) {
  "use strict";

  $(document).ready(function () {
    $("body.search .view-more").on("click", function (e) {
      e.preventDefault();
      var $this = $(this);
      var s = $(this).attr("data-s");
      var totalPage = $(this).attr("data-totalPage");
      var nextPage = parseInt($(this).attr("data-paged")) + 1;
      var category = $(this).attr("data-category");
      var postsPerPage = $(this).attr("data-postsPerPage");
      var isNotice = $(this).attr("data-isNotice") == "1" ? true : false;
      $(this).attr("disabled", true);
      $(this).addClass("processing");

      $.ajax({
        type: "POST",
        url: "/wp-admin/admin-ajax.php",
        dataType: "json",
        data: {
          action: isNotice ? "search_load_more_notice" : "search_load_more",
          categories: category,
          per_page: postsPerPage,
          page: nextPage,
          search: s,
          _fields: "id",
        },
        success: function (html) {
          $this.attr("data-paged", nextPage);
          if (nextPage >= totalPage) {
            $this.hide();
          }
          $this.parents(".search-list-wrap").find(".search-list").append(html);
          $this.attr("disabled", false);
          $this.removeClass("processing");
        },
        error: function (error) {
          console.log(error);
          $this.attr("disabled", false);
          $this.removeClass("processing");
        },
      });
    });

    // newsletter
    var $westartletter = $(".westartletter-list");
    if ($westartletter.length > 0) {
      $westartletter.find(".item").on("click", function (e) {
        e.preventDefault();
        if ($westartletter.find(".item.processing").length > 0) {
          return false;
        }

        var $this = $(this);
        var term_id = $(this).attr("date-id");
        $(".thumbnail-list").empty();
        $(this).addClass("processing");

        $.ajax({
          type: "POST",
          url: "/wp-admin/admin-ajax.php",
          dataType: "json",
          data: {
            action: "westartletter_category_post",
            westartletter_type: term_id,
            per_page: 100,
            page: 1,
            _fields: "id",
          },
          success: function (html) {
            $(".thumbnail-list").append(html);
            $this.removeClass("processing");
          },
          error: function (error) {
            console.log(error);
            $this.removeClass("processing");
          },
        });
      });
    }
  });
})(jQuery);