// JavaScript Document
(function (window, document, $) {


  //お気に入りバッジ
  $('.fav_badge').hide();
  var cookies = document.cookie;
  var cookiesArray = cookies.split(';');
  var favc = 0;
  $.each(cookiesArray, function (index, value) {
    var cArray = value.split('=');
    if (cArray[0].replace(/^ +/, '') == 'C_ROOM_ID_FAV') {
      var kv = decodeURIComponent(cArray[1]).split(',');
      favc = kv.length;
    }
  });

  //console.log('favc:', favc);

  if (favc) {
    $('.fav_badge').attr('data-badge-top-right', favc);
    $('.fav_badge').show();
  }


  //背景固定設定
  function togglemodal() {
    if ($('body').hasClass('open')) {//bodyにopenが付いているとき
      $('body').removeClass('open');//open取る

    } else {//bodyにopenが付いていなかったら
      $('body').addClass('open');//open付ける

      var elem = $('#scrollContents');//←ここの値にモーダルの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上に移動＝＞これにより禁止自動解除
        }
      });
    }
  }


  //テーブル02でulクリックで遷移できるように
  document.addEventListener("DOMContentLoaded", () => {
    myUlClick();
  });



  //IntersectionObserver
  const setObserver = () => {
    //オプション
    const options = {
      //コールバック関数を呼び出すタイミングを指定
      rootMargin: '-12% 0px',
    }
    //コールバック関数の定義
    const callback = (entries) => {
      //各 entry（IntersectionObserverEntry オブジェクト）に対して
      entries.forEach((entry) => {
        //交差の割合が0以上の場合
        if (entry.intersectionRatio > 0) {
          //監視対象の要素（entry.target）に active クラスを追加
          entry.target.classList.add('active');
        }
      });
    }
    //引数にコールバック関数とオプションを指定してオブザーバーを生成
    const observer = new IntersectionObserver(callback, options);
    //監視対象の要素（target クラスを指定した要素）を全て取得
    const targets = document.querySelectorAll('.rgs_target');
    //全ての監視対象要素を observe() メソッドに指定
    targets.forEach((elem) => {
      //observe() に監視対象の要素を指定
      observer.observe(elem);
    });
  }


  $(function () {
    //ページ内スムーズスクロール
    $('a[href^="#"]').on("click", function () {
      // スクロールの速度
      var speed = 400; // ミリ秒
      // アンカーの値取得
      var href = $(this).attr("href");
      // 移動先を取得
      var target = $(href === "#" || href === "" ? 'html' : href);
      // 移動先を数値で取得
      if (target.get(0)) {
        var position = target.offset().top;
        // スムーススクロール
        $('body,html').animate({ scrollTop: position }, speed, 'swing');
      }
      return false;
    });

    //ページトップへ行くボタン
    $("#Gotop").hide();

    //スマホメニュー出し入れ
    $('#spMenuBtn').on("click", function () {
      $(this).toggleClass("active");
      $('#spMenu').toggleClass("active");
      togglemodal();
    });


    /*
        // タブ切替
        $(document).on('click', '.rgs_switch-tabswrap ul li', function () {
          const $container = $(this).closest('.rgs_tab-container');
          const target = $(this).data('tab');
          // タブ切替
          $container.find('.rgs_switch-tabswrap ul li').removeClass('active');
          $(this).addClass('active');
          // コンテンツ切替
          $container.find('.rgs_tab-content').removeClass('active');
          $container.find('#' + target).addClass('active');
        });
    */

    // タブ切替
    $(document).on('click', '.rgs_switch-tabswrap ul li', function () {
      let $container = null;
      const target = $(this).data('tab');

      let tabtype = $(this).attr('data-tabtype');
      if (tabtype == 'all') {
        $container = $('.rgs_tab-container');
        // タブ切替
        $('[data-tab]').removeClass('active');
        $('[data-tab="' + target + '"]').addClass('active');
      } else {
        $container = $(this).closest('.rgs_tab-container');
        // タブ切替
        $container.find('.rgs_switch-tabswrap ul li').removeClass('active');
      }

      // タブ切替
      $(this).addClass('active');

      // コンテンツ切替
      $container.find('.rgs_tab-content').removeClass('active');
      $container.find('#' + target).addClass('active');
    });


    $('[data-reservebtn]').on("click", function () {
      var contkinds = $(this).attr("data-reservebtn");
      $('#overlay').fadeIn("fast");
      $('[data-reserve="' + contkinds + '"]').fadeIn("fast");
      togglemodal();
    })
    $('#overlay, [data-mdlcls]').on("click", function () {
      $('#overlay').fadeOut("fast");
      $('[data-reserve]').fadeOut("fast");
      togglemodal();
    });


    //物件名とURLをコピー
    $('[data-urlcopy]').off('click').on('click', function(){
      copyUrl2();
      alert('コピーしました。');
    });
    function copyUrl2() {
      const element = document.createElement('textarea');
      //let myTitle = document.title;
      let myTitle = $('.Map_branchName').val();
      element.value = myTitle + '\n' + location.href;
      document.body.appendChild(element);
      element.select();
      document.execCommand('copy');
      document.body.removeChild(element);
    }



  });//ready


  $(window).on("load", function () {
    //IntersectionObserver 関数の実行
    setObserver();

    //ページ外リンク
    /*    var movelngth = 184;
        if($(window).width() <= 768){
          movelngth = 100;
        }*/
    var url = $(location).attr('href');//urlを入れる
    if (url.indexOf("?id=") !== -1) {//urlに?id=が含まれていなければ***indexOfは文字列が含まれていなければ-1を返す（あれば何文字目かを返す）
      var url_sp = url.split("?id=");//?id=以降で抽出
      var hash = "#" + url_sp[url_sp.length - 1];//#を付けた文字列にする
      var target2 = $(hash);//オブジェクト化してコンテンツを指定できるようにする
      var position2 = target2.offset().top;// - movelngth;//オブジェクトの位置＝スライドする位置を取得
      $("html, body").animate({ scrollTop: position2 }, 100, "swing");
    }

    $(window).off("scroll");
    $(window).on("scroll", function () {
      //表示非表示
      if ($(this).scrollTop() > 100) {
        $('#Gotop').fadeIn("fast");
      } else {
        $('#Gotop').fadeOut("fast");
      }

      //検索結果ページのページナビ
      if(location.href.indexOf('/universe/') !== -1 || (location.href.indexOf('/search') !== -1 && location.href.indexOf('/search/search') === -1)){
        myPageNavi();
      }

    });//scroll
  });//load

})(window, document, jQuery);


  function myUlClick(){
    //テーブル02でulクリックで遷移できるように
      document.querySelectorAll(".rgs_linklist").forEach(ul => {
        ul.addEventListener("click", e => {
          const target = e.target.closest(".rgs_no-parent-link, a");
  
          // 子リンク <a> クリック or no-parent-link 要素クリック → 親処理キャンセル
          if (target) {
            if (target.classList.contains("rgs_no-parent-link")) return; // 親クリック処理止める
            if (target.tagName === "A") return; // 通常 a は自分のリンクに飛ばす
          }
  
          // ULの余白クリック → 詳細ページへ
          window.location.href = ul.dataset.href;
        });
      });
  }
