$(function() {
  // Screenshot Swiper
  $('.js-screenshot-swiper .swiper').each(function(index, element) {
    $(element).imagesLoaded(function() {
      var $elSwiperWrap = $(element).closest('.js-screenshot-swiper');
      var nextSwiperButton = $elSwiperWrap.find('.js-swiper-next');
      var prevSwiperButton = $elSwiperWrap.find('.js-swiper-prev');
      var nextSwiperDimed = $elSwiperWrap.find('.js-swiper-dimed-next');
      var prevSwiperDimed = $elSwiperWrap.find('.js-swiper-dimed-prev');

      var uiScreenshotSwiperTy1 = new Swiper(element, {
        slidesPerView: 'auto',
        freeMode: false,
        spaceBetween: 0,
        speed: 400,
        setWrapperSize: true,
        threshold: 5,
        on: {
          // init Event
          init: function(swiper) {
            if (swiper.device.ios || swiper.device.android) {
              nextSwiperButton.remove();
              prevSwiperButton.remove();
              nextSwiperDimed.remove();
              prevSwiperDimed.remove();
            }
            getSwiperResizeTouch(swiper, nextSwiperButton, prevSwiperButton);   // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
            getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed);    // // 위치에 따른 이동 버튼 disabled
          },
          transitionStart: function(swiper) {
            getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed);    // // 위치에 따른 이동 버튼 disabled
          }
        },
      });

      $(window).on('resize.js-screenshot-swiper-' + Math.random(), function() {
        getSwiperResizeTouch(uiScreenshotSwiperTy1, nextSwiperButton, prevSwiperButton);    // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
      })

      nextSwiperButton.on('click', function() {
        var stepX = uiScreenshotSwiperTy1.activeIndex + 1;
        uiScreenshotSwiperTy1.slideTo(stepX, uiScreenshotSwiperTy1.params.speed);
      });

      prevSwiperButton.on('click', function() {
        var stepX = uiScreenshotSwiperTy1.activeIndex - 1;
        uiScreenshotSwiperTy1.slideTo(stepX, uiScreenshotSwiperTy1.params.speed);
      });
    })
  });

  // 혜택 Swiper
  $('.js-detailbenefits-swiper .swiper').each(function(index, element) {
    var $elSwiperWrap = $(element).closest('.js-detailbenefits-swiper');
    var nextSwiperButton = $elSwiperWrap.find('.js-swiper-next');
    var prevSwiperButton = $elSwiperWrap.find('.js-swiper-prev');
    var nextSwiperDimed = $elSwiperWrap.find('.js-swiper-dimed-next');
    var prevSwiperDimed = $elSwiperWrap.find('.js-swiper-dimed-prev');

    var uiScreenshotSwiperTy1 = new Swiper(element, {
      slidesPerView: 'auto',
      freeMode: false,
      spaceBetween: 0,
      speed: 400,
      threshold: 5,
      pagination: {
        el: ".detailbenefits-wrap .swiper-pagination",
      },
      //setWrapperSize: true,
      on: {
        // init Event
        init: function(swiper) {
          $elSwiperWrap.closest('.js-detailbenefits-swiper').find('.swiper').addClass('step-'+swiper.slides.length);
          if (swiper.device.ios || swiper.device.android) {
            nextSwiperButton.remove();
            prevSwiperButton.remove();
            nextSwiperDimed.remove();
            prevSwiperDimed.remove();
          }
          getSwiperResizeTouch(swiper, nextSwiperButton, prevSwiperButton);   // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
          getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed);    // // 위치에 따른 이동 버튼 disabled
        },
        transitionStart: function(swiper) {
          getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed);    // // 위치에 따른 이동 버튼 disabled
        }
      },
    });

    $(window).on('resize.js-detailbenefits-swiper-' + Math.random(), function() {
      getSwiperResizeTouch(uiScreenshotSwiperTy1, nextSwiperButton, prevSwiperButton);    // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
    })

    nextSwiperButton.on('click', function() {
      var stepX = uiScreenshotSwiperTy1.activeIndex + 1;
      uiScreenshotSwiperTy1.slideTo(stepX, uiScreenshotSwiperTy1.params.speed);
    });

    prevSwiperButton.on('click', function() {
      var stepX = uiScreenshotSwiperTy1.activeIndex - 1;
      uiScreenshotSwiperTy1.slideTo(stepX, uiScreenshotSwiperTy1.params.speed);
    });
  });

  // Card 3N Detail Swiper
  $('.js-card-3n-detail-swiper .swiper').each(function(index, element) {
    var $elSwiperWrap = $(element).closest('.js-card-3n-detail-swiper');
    var nextSwiperButton = $elSwiperWrap.find('.js-swiper-next');
    var prevSwiperButton = $elSwiperWrap.find('.js-swiper-prev');
    var nextSwiperDimed = $elSwiperWrap.find('.js-swiper-dimed-next');
    var prevSwiperDimed = $elSwiperWrap.find('.js-swiper-dimed-prev');

    var uiCard3nDetailSwiperTy1 = new Swiper(element, {
      slidesPerView: 'auto',
      freeMode: false,
      spaceBetween: 0,
      speed: 400,
      setWrapperSize: true,
      threshold: 5,
      observer: true,
      observeParents: true,
      on: {
        // init Event
        init: function(swiper) {
          if (swiper.device.ios || swiper.device.android) {
            nextSwiperButton.remove();
            prevSwiperButton.remove();
            nextSwiperDimed.remove();
            prevSwiperDimed.remove();
          }
          getSwiperResizeTouch(swiper, nextSwiperButton, prevSwiperButton);   // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
          getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed);    // // 위치에 따른 이동 버튼 disabled
        },
        transitionStart: function(swiper) {
          getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed);    // // 위치에 따른 이동 버튼 disabled
        }
      },
    });

    $(window).on('resize.js-card-3n-detail-swiper-' + Math.random(), function() {
      getSwiperResizeTouch(uiCard3nDetailSwiperTy1, nextSwiperButton, prevSwiperButton);    // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
    })

    nextSwiperButton.on('click', function() {
      var swiperSlide = $elSwiperWrap.find('.swiper-slide').eq(0);

      var swiperWidth = $elSwiperWrap.width();
      var slideWidth = swiperSlide.outerWidth(true);
      var moveX = parseInt(swiperWidth / slideWidth) - 1;
      var stepX = uiCard3nDetailSwiperTy1.activeIndex + moveX;
      uiCard3nDetailSwiperTy1.slideTo(stepX, uiCard3nDetailSwiperTy1.params.speed);
    });

    prevSwiperButton.on('click', function() {
      var swiperSlide = $elSwiperWrap.find('.swiper-slide').eq(0);

      var swiperWidth = $elSwiperWrap.width();
      var slideWidth = swiperSlide.outerWidth(true);
      var moveX = parseInt(swiperWidth / slideWidth) - 1;
      var stepX = uiCard3nDetailSwiperTy1.activeIndex - moveX;
      uiCard3nDetailSwiperTy1.slideTo(stepX, uiCard3nDetailSwiperTy1.params.speed);
    });
  });

  // 상세 상단 부가 정보 Swiper
  $('.js-detailapptop-swiper .swiper-container').each(function(index, element) {
    var $elSwiperWrap = $(element).closest('.js-detailapptop-swiper');

    var uiDetailapptopTy1 = new Swiper(element, {
      slidesPerView: 'auto',
      freeMode: false,
      spaceBetween: 0,
      speed: 400,
      threshold: 5,
      resistanceRatio: 0,
      on: {
        // init Event
        init: function(swiper) {
          $elSwiperWrap.closest('.js-detailapptop-swiper').find('.swiper-container').addClass('step-'+swiper.slides.length);
          getSwiperResizeTouch(swiper);   // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
        },
        transitionStart: function(swiper) {
          getSwiperButtonDisabled(swiper);    // // 위치에 따른 이동 버튼 disabled
        }
      },
    });

    $(window).on('resize.js-detailapptop-swiper-' + Math.random(), function() {
      getSwiperResizeTouch(uiDetailapptopTy1);    // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
    })
  });

  // 상세페이지 screenshots Start
  $(document).on('click', '.js-layoutpopupclose', function() {
    $('body .js-layoutpopupscreenshots-swiper').remove();
    $('body').css('overflow','auto')
  })
  
  $(document).on('click', '.js-screenshot-swiper a.js-screenshots', function() {
    $.each($('.js-video-player'), function(j, item) {
      var $tempPlayer = $(item);
      var $tempVideo = $tempPlayer.find('video.js-player-video').get(0);
      $tempVideo.pause();
      if($tempPlayer.hasClass('play')) {
        $tempPlayer.removeClass('play').addClass('pause');
      }
    });

    var screenshotsData = [];
    $(this).closest('.js-screenshot-swiper').find('a.js-screenshots').each(function(index, item) {
      var temp = $(item);
      temp.data('num', index);
      screenshotsData.push(temp.find('img').attr('src'));
    });

    var num = $(this).data('num');

    var layoutPopupScreenshots = $('<div class="customSwiperWrap layoutPopupScreenshots js-layoutpopupscreenshots-swiper"><button class="layoutPopupClose js-layoutpopupclose"><i class="icon icon-back-white">Back page</i></button><div class="swiper-container"><ul class="swiper-wrapper"></ul><div class="customSwiperButtonNext small js-swiper-next"></div><div class="customSwiperButtonPrev small js-swiper-prev"></div></div></div>');
    $.each(screenshotsData, function(index, item) {
      layoutPopupScreenshots.find('ul.swiper-wrapper').append('<li class="swiper-slide"><span class="fullscreenshots-item"><span class="fullscreenshots-link" style="background-image:url(' + item +');"></span></span></li>')
    })
    $('body').css('overflow', 'hidden').append(layoutPopupScreenshots);

    var uiDetailScreenshotsSwiper = new Swiper('.js-layoutpopupscreenshots-swiper .swiper-container', {
      slidesPerView: 'auto',
      spaceBetween: 0,
      initialSlide: num,
      navigation: {
        nextEl: ".customSwiperButtonNext",
        prevEl: ".customSwiperButtonPrev",
      },
      on: {
        // init Event
        init: function(swiper) {
          if (swiper.device.ios || swiper.device.android) {
            $(".customSwiperButtonNext").remove();
            $(".customSwiperButtonPrev").remove();
          }
        }
      },
    });
    return false;
  });

  // 키워드카드 Swiper Start 
  $('.js-offeringkeyword-swiper .swiper-container').each(function(index, element) {
    var $elSwiperWrap = $(element).closest('.js-offeringkeyword-swiper');

    var uiDetailapptopTy1 = new Swiper(element, {
      slidesPerView: 'auto',
      freeMode: true,
      spaceBetween: 0,
      observer: true,
      observeParents: true,
    });
  });

  // 쇼핑 메인정보 Swiper Start 
  $('.js-detailproductscreen-swiper .swiper-container').each(function(index, element) {
    var $elSwiperWrap = $(element).closest('.js-detailproductscreen-swiper');

    var uiDetailapptopTy1 = new Swiper(element, {
      slidesPerView: 1,
      freeMode: false,
      spaceBetween: 0,
      pagination: {
        el: ".js-detailproductscreen-swiper .swiper-pagination",
      }
    });

    $(window).on('resize.js-detailproductscreen-swiper-' + Math.random(), function() {
      getSwiperResizeTouch(uiDetailapptopTy1);    // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
    })
  });

  // 검색메인 Swiper Start 
  $('.js-todaysearch-swiper .swiper-container').each(function(index, element) {
    var $elSwiperWrap = $(element).closest('.js-offeringkeyword-swiper');

    var uiDetailapptopTy1 = new Swiper(element, {
      slidesPerView: 'auto',
      freeMode: true,
      spaceBetween: 0,
      observer: true,
      observeParents: true,
    });
  });

});


// window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
function getSwiperResizeTouch(swiper, nextSwiperButton, prevSwiperButton) {
  var $elSwiperWrap = $(swiper.wrapperEl).closest('.js-custom-swiper');
  var isButtonDisabled = true;

  if ( $elSwiperWrap.hasClass('js-screenshot-swiper') || $elSwiperWrap.hasClass('js-card-3n-detail-swiper') || $elSwiperWrap.hasClass('js-detailbenefits-swiper') || $elSwiperWrap.hasClass('js-detailapptop-swiper') || $elSwiperWrap.hasClass('js-keywords-card-3n-detail-swiper') || $elSwiperWrap.hasClass('js-offeringkeyword-swiper') || $elSwiperWrap.hasClass('js-detailproductscreen-swiper') || $elSwiperWrap.hasClass('js-searchlistgroup-sub')) {
    isButtonDisabled = false;
  }

  if (!(swiper.device.ios || swiper.device.android)) {
    var windowWidth = $(window).width();
    if(windowWidth < 768) {
      // if (!$elSwiperWrap.hasClass('js-main-swiper')) {
        // swiper.touchEventsData.isTouched = false; // 터치 이벤트 초기화
        // swiper.allowTouchMove = true; // 터치 이벤트 활성화
      // }
      if (isButtonDisabled) {
        nextSwiperButton.addClass('touchdisabled');
        prevSwiperButton.addClass('touchdisabled');
      }
    } else {
      // if (!$elSwiperWrap.hasClass('js-main-swiper')) {
        // swiper.touchEventsData.isTouched = true; // 터치 이벤트 비활성화
        // swiper.allowTouchMove = false; // 터치 이벤트 비활성화
      // }
      if (isButtonDisabled) {
        nextSwiperButton.removeClass('touchdisabled');
        prevSwiperButton.removeClass('touchdisabled');
      }
      if ($elSwiperWrap.hasClass('js-card-theme-swiper')) {
        if (swiper.activeIndex > 0 && swiper.activeIndex < 3) {
          swiper.slideTo(0, swiper.params.speed);
        }
      }
    }
  }
}

// 위치에 따른 이동 버튼 disabled
function getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed) {
  var $elSwiperWrap = $(swiper.wrapperEl).closest('.js-custom-swiper');


  setTimeout(function() {
    nextSwiperButton.removeClass('disabled');
    prevSwiperButton.removeClass('disabled');
    if (swiper.isEnd) {nextSwiperButton.addClass('disabled') }

    if ($elSwiperWrap.hasClass('js-card-theme-swiper')) {
      var swiperSlide = $elSwiperWrap.find('.swiper-slide').eq(0);
      var slideWidth = swiperSlide.outerWidth(true);
      if (slideWidth * 3 > Math.abs(swiper.translate)) {
        prevSwiperButton.addClass('disabled');
      }
    } else {
      if (swiper.isBeginning) { prevSwiperButton.addClass('disabled') }
    }

    if (nextSwiperDimed) {
      nextSwiperDimed.removeClass('disabled');
      prevSwiperDimed.removeClass('disabled');

      if (swiper.isEnd) {nextSwiperDimed.addClass('disabled') }
      if (swiper.isBeginning) { prevSwiperDimed.addClass('disabled') }
    }
  }, 50);
}


// Keywords Card 3N Detail Swiper
function keywords3NdetailFn() {
  $('.js-keywords-card-3n-detail-swiper .swiper').each(function(index, element) {
    var $elSwiperWrap = $(element).closest('.js-keywords-card-3n-detail-swiper');
    var nextSwiperButton = $elSwiperWrap.find('.js-swiper-next');
    var prevSwiperButton = $elSwiperWrap.find('.js-swiper-prev');
    var nextSwiperDimed = $elSwiperWrap.find('.js-swiper-dimed-next');
    var prevSwiperDimed = $elSwiperWrap.find('.js-swiper-dimed-prev');

    var uiCard3nDetailSwiperTy1 = new Swiper(element, {
      slidesPerView: 'auto',
      freeMode: false,
      spaceBetween: 0,
      speed: 400,
      setWrapperSize: true,
      threshold: 5,
      on: {
        // init Event
        init: function(swiper) {
          if (swiper.device.ios || swiper.device.android) {
            nextSwiperButton.remove();
            prevSwiperButton.remove();
            nextSwiperDimed.remove();
            prevSwiperDimed.remove();
          }
          getSwiperResizeTouch(swiper, nextSwiperButton, prevSwiperButton);   // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
          getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed);    // // 위치에 따른 이동 버튼 disabled
        },
        transitionStart: function(swiper) {
          getSwiperButtonDisabled(swiper, nextSwiperButton, prevSwiperButton, nextSwiperDimed, prevSwiperDimed);    // // 위치에 따른 이동 버튼 disabled
        }
      },
    });

    $(window).on('resize.js-keywords-card-3n-detail-swiper-' + Math.random(), function() {
      getSwiperResizeTouch(uiCard3nDetailSwiperTy1, nextSwiperButton, prevSwiperButton);    // window width가 768 이상인 경우 PC에서 터치 이벤트 비 활성화
    })

    nextSwiperButton.on('click', function() {
      var swiperSlide = $elSwiperWrap.find('.swiper-slide').eq(0);

      var swiperWidth = $elSwiperWrap.width();
      var slideWidth = swiperSlide.outerWidth(true);
      var moveX = parseInt(swiperWidth / slideWidth) - 1;
      var stepX = uiCard3nDetailSwiperTy1.activeIndex + moveX;
      uiCard3nDetailSwiperTy1.slideTo(stepX, uiCard3nDetailSwiperTy1.params.speed);
    });

    prevSwiperButton.on('click', function() {
      var swiperSlide = $elSwiperWrap.find('.swiper-slide').eq(0);

      var swiperWidth = $elSwiperWrap.width();
      var slideWidth = swiperSlide.outerWidth(true);
      var moveX = parseInt(swiperWidth / slideWidth) - 1;
      var stepX = uiCard3nDetailSwiperTy1.activeIndex - moveX;
      uiCard3nDetailSwiperTy1.slideTo(stepX, uiCard3nDetailSwiperTy1.params.speed);
    });
  });
}