// JavaScript Document
(function (window, document, $) {

  //背景固定設定
  function togglemodal() {
    if ($('body').hasClass('open')) {//bodyにopenが付いているとき
      $('body').removeClass('open');//open取る

    } else {//bodyにopenが付いていなかったら
      $('body').addClass('open');//open付ける

      var elem = $('.cht_linemodalwrap');//←ここの値にモーダルのidを入れる
      elem.off('touchmove');
      elem.on('touchmove', function (e) {//モーダル内をスワイプ・スクロールしたとき
        var scroll = elem.scrollTop;//モーダルの上部位置取得
        var range = elem.scrollHeight - elem.offsetHeight - 1;//モーダル要素の高さ引くモーダルの見える部分（ビューポート）の高さ
        if (scroll < 1) {//一番上が見えているとき
          e.preventDefault();//スクロール禁止
          elem.scrollTop = 1;//1pxのところに移動＝＞これにより禁止自動解除
        } else if (scroll > range) {//一番下が見えているとき
          e.preventDefault();//スクロール禁止
          elem.scrollTop = range;//一番下から1px上に移動＝＞これにより禁止自動解除
        }
      });
    }
  }

  $(function () {

    //スライダーが初期化された時に実行される
    $('.cht_thumbnailblock').on('init', function (e, slick) {
      updateCounter('外観', 1, slick.slideCount, '');
    });
    //スライドが切り替わる直前に実行される
    $('.cht_thumbnailblock').on('beforeChange', function (e, slick, currentSlide) {
      $('#photoCounter').fadeOut();
    });
    //スライド完了後に実行される
    $('.cht_thumbnailblock').on('afterChange', function (e, slick, currentSlide) {
      //console.log('--afterChange--');
      //console.log('slick:', slick);
      //console.log('currentSlide:', currentSlide);

      let elm = $('[data-slick-index="'+currentSlide+'"]').find('img');
      //console.log('elm:', elm);
      let imagetypename = $(elm[1]).attr('data-imagetypename');
      let imgcomment = $(elm[1]).attr('data-imgcomment');
      //console.log('imagetypename:', imagetypename);

      updateCounter(imagetypename, currentSlide + 1, slick.slideCount, imgcomment);
    });
    //キャプション表示
    function updateCounter(txt, i, total, comment) {
      let outStr = txt+'('+ i +'/'+total+')'+comment;
      $('#photoCounter').text(outStr);
      $('#photoCounter').css('display', 'block');
    }


    // 内部の slick-slider に li が1つもなければサムネイルの枠非表示
    $('.cht_thumbnailwrap').each(function () {
      var $wrap = $(this);
      if ($wrap.find('.cht_thumbnail-list').length === 0) {
        $wrap.hide(); // サムネ全体を非表示

        // .cht_bigthumbnailwrap の右矢印だけ非表示
        $('.cht_bigthumbnailwrap .thumb-next').hide();
      }
    });

    // ---------- サムネイルミニスライダー ----------
    $('.cht_bigthumbnailblock').slick({
      slidesToShow: 1,
      slidesToScroll: 1,
      arrows: true,
      prevArrow: '.big-prev',
      nextArrow: '.big-next',
      asNavFor: '.cht_thumbnailblock',
      dots: false,
      infinite: false
    });

    $('.cht_thumbnailblock').slick({
      slidesToShow: 5,
      slidesToScroll: 1,
      arrows: true,
      asNavFor: '.cht_bigthumbnailblock',
      focusOnSelect: true,
      prevArrow: '.thumb-prev',
      nextArrow: '.thumb-next',
      dots: false,
      infinite: false,
      variableWidth: true,
      responsive: [
        {
          breakpoint: 690,
          settings: {
            slidesToShow: 4
          }
        }
      ]
    });




    // モーダル
    $('[data-mdlimage]').modaal({
      type: 'image',
      overlay_close: true,
      background: '#000000',
      overlay_opacity: 0.8,
      content_source: '#rgsModal01',
    });


    // モーダル
    $('#floorplan').modaal({
      type: 'inline',
      overlay_close: true,
      background: '#000000',
      overlay_opacity: 0.8,
      content_source: '#mdl_floorplan',
    });



    // ---------- cht_infoblockのアコーディオンボタン ----------
    $(function () {
      $(".cht_infobtnwrap").on("click", function () {
        $(this).next().slideToggle();

        const $toggle = $(this).find(".cht_hidelist-show > div");
        $toggle.eq(0).toggle(); // （この建物の詳細はこちら）トグル
        $toggle.eq(1).toggle(); // （閉じる）トグル
      });
    });


    // ボタンの要素を取得
    const $shareButton = $('#webShareButton');
    // ページのdescriptionを取得
    const description = $("meta[name='description']").attr("content") || '';

    // クリックイベントを設定
    $shareButton.on('click', async function () {
      try {
        await navigator.share({
          title: document.title,
          text: description,
          url: window.location.href
        });
        //console.log('シェア成功！');
      } catch (error) {
        //console.error('シェア失敗', error);
      }
    });


    $('[data-linemodal]').on("click",function(){
      $('#linemodal').fadeIn("fast");
      togglemodal();
    });
    $('#lineclose').on("click",function(){
      $('#linemodal').fadeOut("fast");
      togglemodal();
    });

  });

    $(window).on("load",function(){

      var headhei = $('#cht_Topfixed').outerHeight(true);

      $(window).on("scroll",function(){

        // ---------- cht_topfixed ----------
        if ($(this).scrollTop() > 330) {
          $('#cht_Topfixed').addClass("show");
          $('body').css("margin-top",headhei+'px');
        } else {
          $('#cht_Topfixed').removeClass("show");
          $('body').css("margin-top",'0');
        }

      });

    });

})(window, document, jQuery);