'use strict';


(function () {
  var $html = $('html');
  var $win = $(window);
  var isIE8 = $html.hasClass('ie8');
  var isLegacyAndroid = (function () {
    var ua = navigator.userAgent;
    switch (true) {
      case /Android 4\.[0123]/i.test(ua):
        return true;
      case /Android 4\.4/i.test(ua) && /Linux; U;/i.test(ua) && !/Chrome/i.test(ua):
        return true;
      default:
        return false;
    }
  }());


  /**
   * ウィンドウ幅を取得（IE8はスクロールバーを含まない幅）
   * @returns {Number} ウィンドウ幅
   */
  function getWinWidth() {
    var w = window.innerWidth;
    return (w !== undefined) ? w : $win.width();
  }


  /**
   * SP表示で、お問い合わせ・サポートを開閉する
   */
  $('.g-primary_support').each(function () {
    var ON = 'g-primary_support-on';
    var $el = $(this);
    var $dd = $('dd', this);

    $('dt', this).on('click', function (e, immediate) {
      if (getWinWidth() > 720) return;
      $el.toggleClass(ON);
      $dd.slideToggle(immediate ? 0 : 400);
    });

    $win.on('resize', _.debounce(function () {
      if (isIE8 || getWinWidth() > 720) return;
      $('.' + ON + ' dt').trigger('click', [true]);
    }, 100))
    .trigger('resize');
  });

  /**
   * スムーズスクロール
   */
  $('.j-scroll').on('click', function (e) {
    var id = $(this).attr('href');
    var w = getWinWidth();
    var device = (w <= 480) ? 'sp' : (w <= 768) ? 'touch' : 'pc';

    // var diff = $('body').hasClass('g-page-dept') ? -70 : 0;

    // ページ上部に固定されるヘッダーの高さ分、アンカーポイントのオフセットをずらす
    // テンプレ毎に高さが違うので、固定値55とする
    var diff;
    if($('body').hasClass('g-page-sidebar')){
      diff = (device === 'pc') ? 0 : 55;
    }else{
      diff = 55;
    }

    // accordion
    var $btn = $($(this).data('accordion-btn'));
    var $body = $($btn.data('body'));
    if ($body.length === 0) $body = $btn.next();
    if($body.css('display') !== 'block'){
      $btn.trigger('click', [true]);
    }

    $('html, body').animate({ scrollTop: $(id).offset().top - diff }, 700);
    e.preventDefault();
  });


  /**
   * 高さを揃える
   */
  (function () {
    var items = $('.j-height').get();
    var sets = _.groupBy(items, function (el) { return $(el).data('height'); });

    $win.on('resize.height', _.debounce(function () {
      var w = getWinWidth();
      var device = (w <= 480) ? 'sp' : (w <= 768) ? 'touch' : 'pc';

      _.forEach(sets, function (set) {
        var h = 0;
        var arr = [];
        for (var $el, i = 0; i < set.length; i++) {
          var $el = (device ==='touch') ? $(set[i]).not('[data-height-touch-clear]') :　(device === 'sp') ? $(set[i]).not('[data-height-sp-clear], [data-height-touch-clear]') :  $(set[i]);
          $(set[i]).css('height', 'auto').css('min-height', 0);
          h = Math.max(h, $el.outerHeight());
          arr.push($el);
        }
        for (var i = 0; i < arr.length; i++) {
          $(arr[i]).css($(arr[i]).css('display') === 'table-cell' ? 'height' : 'min-height', h);
        }
      });
    }, 100))
    .trigger('resize.height');
  }());


  /**
   * アコーディオン（リンクのリスト）
   */
  $('.g-accList_btn').each(function () {
    var $btn = $(this);
    var $body = $btn.next('.g-accList_body');
    if ($body.length === 0) {
      $btn.addClass('g-accList_btn-disabled');
      return;
    }

    $btn.on('click', function (e, immediate) {
      if (getWinWidth() > 480 || e.target.tagName === 'A') return true;
      $btn.toggleClass('g-accList_btn-on');
      $body.stop().slideToggle(immediate ? 0 : 400);
      return false;
    });
  })
  .trigger('click', [true]);


  /**
   * アコーディオン
   */
  $('.g-acc_btn').each(function () {
    var $btn = $(this);
    var $body = $($btn.data('body'));

    $btn.on('click', function (e, immediate) {
      $btn.toggleClass('g-acc_btn-on');
      $body.stop().slideToggle(immediate ? 0 : 400);
      $win.triggerHandler('resize.height');
      return false;
    });
  })
  .trigger('click', [true]);


  /**
   * タブUI
   */
  $('.g-tabs').each(function () {
    var css = 'g-tabs_hd-on';
    var $btns = $('.g-tabs_hd', this);
    var $bodies = $('.g-tabs_body', this);
    var hash = window.location.hash;

    $btns.on('click', function (e, immediate) {
      var $el = $(this);
      var $body = $el.next('.g-tabs_body');
      if (getWinWidth() > 480) {
        $btns.removeClass(css);
        $el.addClass(css);
        $bodies.hide();
        $body.show();
      } else {
        $el.toggleClass(css);
        $body.slideToggle(immediate ? 0 : 400);
      }
      $win.triggerHandler('resize.height');
      return false;
    });

    if (getWinWidth() > 480) $btns.eq(0).trigger('click', [true]);
    else $btns.trigger('click', [true]);

    $win.on('resize', _.debounce(function () {
      if (isIE8) return;
      if (getWinWidth() > 480) {
        var $cur = $btns.filter('.' + css).first();
        if ($cur.length === 0) $cur = $btns.first();
        $cur.trigger('click', [true]);
      }
    }, 100))
    .trigger('resize');

    if(hash && $(hash).length){
      $(hash).trigger('click', [true]);
    }
  });


  /**
   * お知らせ
   */
  $(function () {
    $('.j-news').each(function () {
      var $dest = $(this);
      var html = '<ul class="g-pile">';
      _.times($dest.data('news'), function (i) {
        var obj = window._NEWS_DATA[i];
        var target = obj.blank ? 'target="_blank"' : '';
        var label;
        switch (obj.type) {
          case 1:
            label = 'お知らせ';
            break;
          case 2:
            label = 'ニュースリリース';
            break;
          case 3:
            label = '新製品情報';
            break;
          default:
            label = '';
        }
        html += '<li class="g-pile_el g-info">';
        html += '<p class="g-info_date">' + obj.date + '</p>';
        html += '<p class="g-info_label-a">' + label + '</p>';
        html += '<a href="' + obj.url + '" ' + target + ' class="g-link">';
        html += obj.text + '</a></li>';
      });
      html += '</ul>';
      html += '<p class="g-foot-r"><a href="https://www.daikinaircon.com/news/" class="g-link">バックナンバー</a></p>';
      $dest.append(html);
    });
  });


  /**
   * おすすめコンテンツ
   */
  if (!/cms\.daikin\.com/.test(window.location.hostname)) {
    $('.g-rmd_inner').not('.slick-initialized').slick({
      slidesToShow: 4,
      slidesToScroll: 4,
      appendArrows: '.g-rmd_outer',
      prevArrow: '<div class="g-slider_nav g-slider_prev"></div>',
      nextArrow: '<div class="g-slider_nav g-slider_next"></div>',
      dots: true,
      customPaging: function (slick, i) {
        return (i + 1) + '/' + slick.slideCount;
      },
      responsive: isIE8 ? null : [
        {
          breakpoint: 769,
          settings: {
            slidesToShow: 3,
            slidesToScroll: 3
          }
        },
        {
          breakpoint: 481,
          settings: {
            slidesToShow: 1,
            slidesToScroll: 1,
            centerMode: true,
            centerPadding: '36px'
          }
        }
      ]
    });
  }


  /**
   * PCローカルナビの処理
   */
  $('.g-lnav').each(function () {
    var noAnim = $(this).hasClass('g-lnav-anime') === false;
    var $wrapper = $('.g-wrapper');
    var $curLv2;

    $('.g-lnav_lv2', this).each(function () {
      var active = 'g-lnav-active';
      var $lv2 = $(this);

      if (Modernizr.touchevents) {
        $lv2.parent()
          .on('click', function (e) {
            if (getWinWidth() < 960) return undefined;
            if (e.target.tagName === 'A') return true;
            if ($curLv2 && $curLv2[0] !== this) $curLv2.trigger('click');
            var $el = $(this);
            var clickNs = 'click.lnav';
            var scrollNs = 'scroll.lnav';
            $wrapper.off(clickNs);
            $win.off(scrollNs);
            $el.toggleClass(active);
            $lv2.stop().slideToggle(noAnim ? 0 : 400);
            if ($el.hasClass(active)) {
              var fn = function () { $el.trigger('click'); };
              $curLv2 = $el;
              $wrapper.one(clickNs, fn);
              $win.one(scrollNs, fn);
            } else {
              $curLv2 = null;
            }
            return false;
          });
      } else {
        $lv2.parent()
          .on('mouseenter', function () {
            if (!isIE8 && getWinWidth() < 960) return;
            $(this).addClass(active);
            $lv2.stop().slideDown(noAnim ? 0 : 400);
          })
          .on('mouseleave', function () {
            if (!isIE8 && getWinWidth() < 960) return;
            $(this).removeClass(active);
            $lv2.stop().slideUp(noAnim ? 0 : 400);
          });
      }
    });


    /**
     * ローカルナビのPC/SP切り替え処理
     */
    (function () {
      var isSpView = false;

      function deactivateLnav() {
        $html.removeClass('g-lnav-sticky');
        $('.g-lnav').removeClass('g-lnav-on');
        $('.g-wrapper, .g-lnav_lv1').removeAttr('style');
        $('.g-lnav-active').removeClass('g-lnav-active');
        $('.g-lnav_accBtn').removeClass('g-lnav_accBtn-on g-lnav_lv1_hd-on')
          .next('.g-lnav_accBody').width('auto').height('auto').hide();
        $win.add($wrapper).off('.lnav');
      }

      $win.on('resize', _.debounce(function () {
        if (isIE8) return;
        $curLv2 = null;
        var w = getWinWidth();
        if (w < 960 && !isSpView) {
          isSpView = true;
          deactivateLnav();
        } else if (w >= 960 && isSpView) {
          isSpView = false;
          deactivateLnav();
        }
      }, 100))
      .trigger('resize');
    }());
  });


  /**
   * SPローカルナビの処理
   */
  (function () {
    var ON = 'g-lnav-on';
    var $wrapper = $('.g-wrapper');
    var $main = $('.g-main');
    var $lnavLv1 = $('.g-lnav_lv1');
    var $btn = $('.g-lnav_hd');
    var $lnav = $('.g-lnav');
    var $header = $('.g-header');
    var $hnav = $('.g-hnav');
    var y;

    if ($lnav.length !== 1) return;

    function deactivate() {
      $wrapper.css({ overflow: 'visible', height: 'auto' });
      $win.scrollTop(y);
      $lnav.removeClass(ON);
      $lnavLv1.hide();
    }

    function activate() {
      if (isIE8 || getWinWidth() > 959) return;
      y = $win.scrollTop();
      $win.scrollTop(0);
      $wrapper.css({ overflow: 'hidden', height: $win.height() });
      $lnav.addClass(ON);
      $lnavLv1.show();
    }

    $btn.on('click', function () {
      if ($lnav.hasClass(ON)) deactivate();
      else activate();
      if (isLegacyAndroid) $main.before($lnav);
    });

    $win.on('scroll', function () {
      if (isIE8 || $lnav.hasClass(ON)) return;
      var y1 = $win.scrollTop();
      var y2 = (getWinWidth() > 959) ?
        ($header.outerHeight() + $hnav.outerHeight()) : $header.height();
      $html.toggleClass('g-lnav-sticky', y1 >= y2);
      if (isLegacyAndroid) $main.before($lnav);
    })
    .trigger('scroll');
  }());


  /**
   * SPローカルナビ内アコーディオンの処理
   */
  $('.g-lnav_accBtn').on('click', function (e) {
    if (isIE8 || getWinWidth() > 959 || e.target.tagName === 'A') return;
    $(this).toggleClass('g-lnav_accBtn-on').next('.g-lnav_accBody').slideToggle();
    e.preventDefault();
  });


  /**
   * タブUI
   */
  $('.g-tabset').each(function () {
    var $this = $(this);
    var css = 'g-tabset_hd-on';
    var $btns = $('.g-tabset_hd', this);
    var $bodies = $('.g-tabset_body', this);

    $btns.on('click', function (e, immediate) {
      if (this.tagName === 'A') return true;
      var $el = $(this);
      var $body = $el.next('.g-tabset_body');
      if (getWinWidth() > 959) {
        $btns.removeClass(css);
        $el.addClass(css);
        $bodies.hide();
        $body.show();
      } else {
        if($this.hasClass('g-tabset-html')){
          $btns.removeClass(css);
          $el.addClass(css);
          $bodies.hide();
          $body.show();
        } else {
          $el.toggleClass(css);
          $body.slideToggle(immediate ? 0 : 400);
        }
      }
      $win.trigger('scroll.indicator');
      $win.triggerHandler('resize.height');
      return false;
    });

    if (getWinWidth() > 959) $btns.eq(0).trigger('click', [true]);
    else $btns.trigger('click', [true]);

    $win.on('resize', _.debounce(function () {
      if (isIE8) return;
      if (getWinWidth() > 959) {
        var $cur = $btns.filter('.' + css).first();
        if ($cur.length === 0) $cur = $btns.first();
        $cur.trigger('click', [true]);
      }
    }, 100))
    .trigger('resize');
  });


  /**
   * 動画
   */
  $('.g-video').each(function () {
    var $el = $(this);
    var w = $el.data('video') || '100%';
    var $iframe = $('iframe', this);
    var per = (100 * $iframe[0].height) / $iframe[0].width;
    $('.g-video_el', this).css('padding-bottom', per + '%');
    $(this).width(w).addClass('g-video-init');
  });


  /**
   * Google Map
   */
  $('.g-map').each(function () {
    var $el = $(this);
    var w = $el.data('map') || '100%';
    var $iframe = $('iframe', this);
    var per = (100 * $iframe[0].height) / $iframe[0].width;
    $('.g-map_el', this).css('padding-bottom', per + '%');
    $(this).width(w).addClass('g-map-init');
  });


  /**
   * アコーディオン
   */
   $('.g-acc_item').each(function (e, immediate) {
     var $btn = $(this);
     var $body = $($btn.data('body'));
     if ($body.length === 0) $body = $btn.next();

     $body.css('overflow', 'hidden');
     toggleEvent(immediate);

     $btn.on('click', function (e, immediate) {
       toggleEvent(immediate);
       return false;
     });

     function toggleEvent(immediate){
       $btn.toggleClass('g-acc_item-on');
       $body.stop().slideToggle(immediate ? 0 : 400);
       $win.triggerHandler('resize.height');
     }
   });


  /**
   * モーダル
   */
  (function () {
    var timer;
    var $group;
    var $wrapper;
    var $modal;
    var $inner;
    var $box;
    var $body;
    var $close;
    var $print;
    var $prev;
    var $next;
    var $pagination;
    var $ctrlInner;
    var load = function ($anchor) {
      $html.removeClass('g-modal-init g-modal-multi g-modal-prev g-modal-next');
      $('.g-modal_el', $body).remove();
      var uri = $anchor[0].href;
      var $iframe = $('<iframe src="' + uri + '" class="g-modal_if"/>').appendTo($body)
        .one('load', function () {
          var win = this.contentWindow;
          var isSp = getWinWidth() <= 480;
          var duration = (isIE8 || !isSp) ? 500 : 0;
          var $el = win.$(win.document).find('.g-modal_el');
          var y;
          if (isSp || Modernizr.touchevents) {
            y = $win.scrollTop();
            $wrapper.css({ overflow: 'hidden', height: $win.height() });
            $win.scrollTop(0);
          }
          $(this).replaceWith($el);
          $box.animate({ height: $body.outerHeight() }, duration, function () {
            $html.addClass('g-modal-init');
            if ($group.length > 0) {
              var index = $group.index($anchor);
              $pagination.html('<b>' + (index + 1) + '</b>/' + $group.length);
              $html.toggleClass('g-modal-prev', index !== 0);
              $prev.off().on('click', function () { load($group.eq(index - 1)); });
              $html.toggleClass('g-modal-next', index !== $group.length - 1);
              $next.off().on('click', function () { load($group.eq(index + 1)); });
              $ctrlInner.css('marginRight', $win.width() - $inner.width());
              $html.addClass('g-modal-multi');
            }
          });
          $modal.off().on('click', function (e2) {
            var el = e2.target;
            if (el === $box[0] || $.contains($box[0], el)) return;
            $modal.remove();
            $html.removeClass('g-modal g-modal-init g-modal-multi g-modal-prev g-modal-next');
            if (isSp || Modernizr.touchevents) {
              $wrapper.css({ overflow: 'visible', height: 'auto' });
              $win.scrollTop(y);
            }
          });
          $close.off().on('click', function () { $modal.trigger('click'); });
          $print.off().on('click', function () {
            var param = (uri.indexOf('?') === -1 ? '?' : '&') + 'print';
            window.open(uri + param, '_blank');
          });
        });
      clearTimeout(timer);
      timer = setTimeout(function () { $iframe.trigger('load'); }, 5000);
      return $iframe;
    };

    $('.j-modal').on('click', function (e) {
      e.preventDefault();
      var $el = $(this);
      var group = $el.data('modal');
      $group = group ? $('.j-modal[data-modal="' + group + '"]') : [];
      $html.addClass('g-modal');
      $wrapper = $('.g-wrapper');
      $modal = $('<div class="g-modal_wrapper"><div class="g-modal_outer"><div class="g-modal_inner"><div class="g-modal_box"><div class="g-modal_body"/><div class="g-modal_btn g-modal_close"/><div class="g-modal_btn g-modal_print"/><div class="g-modal_ctrl"><div class="g-modal_ctrlInner"><div class="g-modal_btn g-modal_prev"/><div class="g-modal_btn g-modal_next"/></div></div><div class="g-modal_pagination"/></div></div></div></div>').appendTo('body');
      $inner = $('.g-modal_inner');
      $box = $('.g-modal_box');
      $body = $('.g-modal_body');
      $close = $('.g-modal_close');
      $print = $('.g-modal_print');
      $prev = $('.g-modal_prev');
      $next = $('.g-modal_next');
      $pagination = $('.g-modal_pagination');
      $ctrlInner = $('.g-modal_ctrlInner');
      load($el);
    });
  }());


  /**
   * テーブルヘッダの固定
   */
  $('.g-table-hdr').each(function () {
    var hHeader;
    var vHeader;
    var $hHeader;
    var $vHeader;
    var $hHeaderEl;
    var $vHeaderEl;
    var $el = $(this);
    var $table = $('.g-table_el', this);
    var $wrapper = $('<div class="g-table-hdr_wrapper"/>').appendTo($el).append($table);

    var $thead = $('thead', $table);
    if ($thead.length > 0) {
      $hHeaderEl = $table.clone();
      $hHeader = $('<div class="g-table-hdr_hheader"/>');
      hHeader = $hHeader[0];
      $hHeader.append($hHeaderEl).appendTo($el);
    }

    if ($('tbody th', $table).length > 0) {
      $vHeaderEl = $table.clone();
      $vHeader = $('<div class="g-table-hdr_vheader"/>');
      vHeader = $vHeader[0];
      $vHeader.append($vHeaderEl).appendTo($el);
    }

    var reset = (function () {
      var winW;
      var $baseEl;
      var $headers = $();
      if (hHeader) $headers = $headers.add($hHeaderEl);
      if (vHeader) {
        $headers = $headers.add($vHeaderEl);
        $baseEl = $('tbody td:eq(0)', $table);
      }
      return function () {
        var w = $win.width();
        if (winW === w) return;
        winW = w;
        $wrapper.scrollLeft(0).scrollTop(0);
        $headers.width($table.width());
        if (hHeader) $hHeader.height($thead.outerHeight() + 1);
        if (vHeader) $vHeader.width($baseEl.position().left + 1);
      };
    }());

    $wrapper.on('scroll', function () {
      if (hHeader) hHeader.style.left = '-' + this.scrollLeft + 'px';
      if (vHeader) vHeader.style.top = '-' + this.scrollTop + 'px';
    });

    $win.on('resize', reset).trigger('resize');
  });


  /**
   * テーブルがスクロールできることを示すインディケーター
   */
  if (Modernizr.touchevents) {
    (function () {
      var $els = $('.g-table-scroll.g-table-fixed');
      if ($els.length === 0) return;
      $els.each(function (i) {
        var $el = $(this);
        var ename = 'scroll.indicator.' + i;
        $win.on(ename, _.throttle(function () {
          if ($el.is(':hidden')) return;
          var bottom = $win.scrollTop() + $win.height();
          var y = $el.offset().top;
          if (bottom > y + 200) {
            $win.off(ename);
            if ($el.outerWidth() >= $('.g-table_el', $el).outerWidth()) return;
            var $indicator = $('<div class="g-table-indicator"/>').appendTo($el)
              .fadeIn(300).delay(5000).fadeOut(300);
            $el.one('scroll', function () { $indicator.remove(); });
          }
        }, 100))
        .trigger(ename);
      });
    }());
  }


  /**
   * カルーセル
   */
  $('.g-carousel').each(function () {
    var count = $(this).data('carousel') || 4;
    var rspConf = [{
      breakpoint: 481,
      settings: {
        slidesToShow: 1,
        slidesToScroll: 1,
        centerMode: true,
        centerPadding: '23px'
      }
    }];
    if (count > 3) {
      rspConf.unshift({
        breakpoint: 769,
        settings: {
          slidesToShow: 3,
          slidesToScroll: 3
        }
      });
    }
    $('.g-carousel_inner', this).slick({
      slidesToShow: count,
      slidesToScroll: count,
      appendArrows: '.g-carousel',
      prevArrow: '<div class="g-slider_nav g-slider_prev"></div>',
      nextArrow: '<div class="g-slider_nav g-slider_next"></div>',
      dots: true,
      customPaging: function (slick, i) {
        return (i + 1) + '/' + slick.slideCount;
      },
      responsive: isIE8 ? null : rspConf
    });
  });


  /**
   * カルーセル（メインビジュアル）
   */
  (function () {
    var $sliders = $('.g-poster_main');
    $sliders.slick({
      slidesToShow: 1,
      slidesToScroll: 1,
      autoplay: true,
      arrows: true,
      appendArrows: '.g-poster_nav',
      autoplaySpeed: 7000,
      speed: 700,
      fade: true,
      cssEase: 'ease-out',
      prevArrow: '<div class="g-slider_nav g-slider_prev"></div>',
      nextArrow: '<div class="g-slider_nav g-slider_next"></div>',
      appendDots: '.g-poster_inner',
      dots: true,
      responsive: isIE8 ? null : [
        {
          breakpoint: 481,
          settings: {
            slidesToShow: 1,
            slidesToScroll: 1,
            centerMode: true,
            centerPadding: 0,
            autoplay: true,
            speed: 700
          }
        }
      ]
    });
    $(document).on('navopen', function () { $sliders.slick('slickPause'); })
      .on('navclose', function () { $sliders.slick('slickPlay'); });
  }());


  /**
   * サイドバーのPC/SP切り替え処理
   */
  $('.g-sidebar').each(function () {
    var isSpView = false;

    function deactivateSidebar(display) {
      $html.removeClass('g-sidebar-sticky');
      $('.g-sidebar').removeClass('g-sidebar-on');
      $('.g-wrapper, .g-sidebar_lv1').removeAttr('style');
      $('.g-sidebar-active').removeClass('g-sidebar-active');
      $('.g-sidebar_accBtn').removeClass('g-sidebar_accBtn-on g-sidebar_lv1_hd-on')
        .next('.g-sidebar_accBody').width('auto').height('auto').toggle(display);
    }

    $win.on('resize', _.debounce(function () {
      if (isIE8) return;
      var w = getWinWidth();
      if (w <= 769 && !isSpView) {
        isSpView = true;
        deactivateSidebar(false);
      } else if (w > 769 && isSpView) {
        isSpView = false;
        deactivateSidebar(true);
      }
    }, 100))
    .trigger('resize');
  });


  /**
   * SPサイドバーの処理
   */
  (function () {
    var ON = 'g-sidebar-on';
    var $wrapper = $('.g-wrapper');
    var $contents = $('.g-contents');
    var $sidebarLv1 = $('.g-sidebar_lv1');
    var $btn = $('.g-sidebar_hd');
    var $sidebar = $('.g-sidebar');
    var $header = $('.g-header');
    var $hnav = $('.g-hnav');
    var y;

    if ($sidebar.length !== 1) return;

    function deactivate() {
      $wrapper.css({ overflow: 'visible', height: 'auto' });
      $win.scrollTop(y);
      $sidebar.removeClass(ON);
      $sidebarLv1.hide();
    }

    function activate() {
      if (isIE8 || getWinWidth() > 769) return;
      y = $win.scrollTop();
      $win.scrollTop(0);
      $wrapper.css({ overflow: 'hidden', height: $win.height() });
      $sidebar.addClass(ON);
      $sidebarLv1.show();
    }

    $btn.on('click', function () {
      if ($sidebar.hasClass(ON)) deactivate();
      else activate();
      if (isLegacyAndroid) $contents.after($sidebar);
    });

    $win.on('scroll', function () {
      if (isIE8 || $sidebar.hasClass(ON)) return;
      var y1 = $win.scrollTop();
      var y2 = (getWinWidth() > 769) ?
        ($header.outerHeight() + $hnav.outerHeight()) : $header.height();
      $html.toggleClass('g-sidebar-sticky', y1 >= y2);
      if (isLegacyAndroid) $contents.after($sidebar);
    })
    .trigger('scroll');
  }());


  /**
   * SPサイドバー内アコーディオンの処理
   */
  $('.g-sidebar_accBtn').on('click', function (e) {
    if (isIE8 || getWinWidth() > 769 || e.target.tagName === 'A') return;
    $(this).toggleClass('g-sidebar_accBtn-on').next('.g-sidebar_accBody').slideToggle();
    e.preventDefault();
  });
}());
