// source --> https://ecoledeshuilesessentielles.fr/wp-content/plugins/masterstudy-lms-learning-management-system/_core/assets/js/courses.js?ver=40674 
"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
(function ($) {
  window.addEventListener('load', function () {
    var coming_soon_containers = document.querySelectorAll('.coming-soon-card-countdown-container');
    coming_soon_containers.forEach(function (container) {
      if (container.clientWidth < 220) {
        container.classList.add('smaller-container');
      }
    });
  });
  $(document).ready(function () {
    /**
     *
     * @var courses_view
     */
    var $more = $('.stm_lms_load_more_courses');
    if ($('body').hasClass('stm_lms_infinite')) {
      $(window).on('scroll', function () {
        $more.each(function () {
          if (!$(this).is(":hidden")) {
            var $this = $(this);
            var position = $this.position().top;
            var top = $(document).scrollTop();
            if (position - 100 < top) {
              $more.click();
            }
          }
        });
      });
    }
    $more.on('click', function (e) {
      if ($(this).is(":hidden")) return false;
      if ($(this).hasClass('loading')) return false;
      e.preventDefault();
      var offset = $(this).attr('data-offset');
      var args = $(this).attr('data-args');
      var $grid = $(this).closest('.stm_lms_courses').find('[data-pages]:last');
      var total = $grid.attr('data-pages');
      var suburl = $(this).attr('data-url');
      var $sort = $('.courses_filters .stm_lms_courses_grid__sort select');
      var data = {
        offset: offset,
        args: args,
        action: 'stm_lms_load_content',
        nonce: stm_lms_nonces['load_content']
      };
      if ($sort.length) {
        data['sort'] = $sort.val();
      }
      if (total == offset) return false;
      $.ajax({
        url: stm_lms_ajaxurl + suburl,
        dataType: 'json',
        context: this,
        data: data,
        beforeSend: function beforeSend() {
          $(this).addClass('loading');
        },
        complete: function complete(data) {
          data = data['responseJSON'];
          $(this).removeClass('loading');
          if (_typeof(data) === "object" && data.hasOwnProperty('search_title')) {
            $('.courses_filters__title').find('.lms-courses-search-result').html(data['search_title']);
          }
          $grid.append(data['content']);
          $(this).attr('data-offset', data['page']);
          hide_button($(this), data['page']);
        }
      });
    });
    $more.each(function () {
      hide_button($(this), 1);
    });
    if (typeof courses_view !== 'undefined' && courses_view.type === 'list') {
      $('.stm_lms_courses_wrapper').addClass('stm_lms_courses_list_view');
    } else if (typeof courses_view !== 'undefined' && courses_view.type === 'grid') {
      $('.stm_lms_courses_wrapper').addClass('stm_lms_courses_grid_view');
    }

    /** Search part **/
    $('#lms-search-btn').on('click', function () {
      search();
    });

    /** Submit Search on Enter **/
    $('#lms-search-input').keypress(function (event) {
      var keycode = event.keyCode ? event.keyCode : event.which;
      if (keycode == '13') {
        search();
      }
    });
    function search() {
      var $form = $('.stm_lms_courses__archive_filter form');
      var searchAction = $('#lms-search-input').data('action');
      var searchValue = $('#lms-search-input').val();
      var suburl = '';

      /** if filter form enabled **/
      if ($form.length) {
        $form.find('input[name="search"]').val(searchValue);
        suburl = '?' + $form.serialize();
        history.pushState({}, null, location.origin + location.pathname + suburl);
        $form.submit();
      }
      if (searchAction.trim()) {
        suburl = '?search=' + searchValue;
        history.pushState({}, null, location.origin + location.pathname + suburl);
        var $sort = $('.courses_filters .stm_lms_courses_grid__sort select');
        var $btn = $('.stm_lms_load_more_courses');
        var $grid = $('.stm_lms_courses').find('[data-pages]:last');
        var args = $btn.attr('data-args');
        var sort_value = $sort.val();
        $btn.attr('data-url', suburl);
        $.ajax({
          url: stm_lms_ajaxurl + suburl,
          dataType: 'json',
          context: this,
          data: {
            offset: 0,
            args: args,
            sort: sort_value,
            featured: false,
            action: 'stm_lms_load_content',
            nonce: stm_lms_nonces['load_content']
          },
          beforeSend: function beforeSend() {
            $grid.closest('.stm_lms_courses__archive').addClass('loading');
            $([document.documentElement, document.body]).animate({
              scrollTop: $('.stm_lms_courses__archive').offset().top - 130
            }, 1000);
          },
          complete: function complete(data) {
            data = data['responseJSON'];
            if (_typeof(data) === "object" && data.hasOwnProperty('search_title')) {
              $('.featured-courses').remove();
              $('.featured-head').remove();
            }
            $grid.closest('.stm_lms_courses__archive').removeClass('loading');
            $grid.html(data['content']).attr('data-pages', data.pages);
            $btn.attr('data-offset', data['page']);
            hide_button($btn, data['page']);
          }
        });
      }
      if (searchAction.trim() && searchValue.length <= 0) {
        history.pushState({}, null, location.origin + location.pathname);
      }
    }
    if ($('#ms-lms-multi-instructors-zero-co-courses-found').length) {
      $('.masterstudy-lms-public-account-courses-tabs .tabs').css('display', 'none');
    }
    /** search part | End **/
    $('.masterstudy-lms-public-account-courses-tabs li').click(function () {
      $('.masterstudy-lms-public-account-courses-tabs li').removeClass('active');
      $(this).addClass('active');
      var tabId = $(this).attr('id');
      if (tabId === 'tab_co_courses') {
        $('#stm_lms_instructor_co_courses').removeClass('inactive');
        $('#stm_lms_instructor_courses').addClass('inactive');
      } else if (tabId === 'tab_courses') {
        $('#stm_lms_instructor_co_courses').addClass('inactive');
        $('#stm_lms_instructor_courses').removeClass('inactive');
      }
    });
    if ($('.stm-lms-public-instructor').length > 0) {
      $('.stm_lms_instructor_co_courses .stm_lms_instructor_courses__top').css('display', 'none');
    }
  });
})(jQuery);
function hide_button($btn, page) {
  var $container = $btn.closest('.stm_lms_courses').find('[data-pages]:last');
  var pages = $container.attr('data-pages');
  if (parseInt(pages) === page || parseInt(pages) < page || !$container.length) {
    $btn.slideUp();
    $btn.closest('.stm_lms_courses').addClass('all_loaded');
  } else {
    $btn.slideDown();
    $btn.closest('.stm_lms_courses').removeClass('all_loaded');
  }
};
// source --> https://ecoledeshuilesessentielles.fr/wp-content/plugins/masterstudy-lms-learning-management-system/_core/assets/js/courses_filters.js?ver=40674 
"use strict";

(function ($) {
  $(document).ready(function () {
    jQuery('.masterstudy-countdown').each(function () {
      if (jQuery(this).find('.countDays').length === 0) {
        var $time = jQuery(this).data('timer');
        if ($time <= 0 || new Date() > $time * 1000) return;
        jQuery(this).countdown({
          timestamp: $time
        });
      }
    });
    if (!$('.courses_filters').length) return true;
    var $sort = $('.courses_filters .stm_lms_courses_grid__sort select');
    var $container = $sort.closest('.stm_lms_courses_wrapper').find('.stm_lms_courses__archive');
    var $btn = $container.find('.stm_lms_load_more_courses');
    var offset = 0;
    var args = $btn.attr('data-args');
    $sort.on('change', function (e) {
      var suburl = $btn.attr('data-url');
      var sort_value = $sort.val();
      $btn.attr('data-args', args.replace('}', ',"sort":"' + sort_value + '"}'));
      if ($btn.hasClass('loading')) return false;
      $.ajax({
        url: stm_lms_ajaxurl + suburl,
        dataType: 'json',
        context: this,
        data: {
          offset: offset,
          sort: sort_value,
          args: args,
          action: 'stm_lms_load_content',
          nonce: stm_lms_nonces['load_content']
        },
        beforeSend: function beforeSend() {
          $btn.addClass('loading');
          $container.addClass('loading');
        },
        complete: function complete(data) {
          data = data['responseJSON'];
          jQuery('.masterstudy-countdown').each(function () {
            if (jQuery(this).find('.countDays').length === 0) {
              var $time = jQuery(this).data('timer');
              if ($time <= 0 || new Date() > $time) return;
              jQuery(this).countdown({
                timestamp: jQuery(this).data('timer')
              });
            }
          });
          $btn.removeClass('loading');
          $container.removeClass('loading');
          var $pages = $btn.closest('.stm_lms_courses').find('[data-pages]');
          $pages.html(data['content']);
          $pages.attr('data-pages', data['pages']);
          $btn.attr('data-offset', 1);
          hide_button($btn, 1);
        }
      });
    });
    course_switcher();
  });
  function course_switcher() {
    $('.courses_filters__switcher i').on('click', function () {
      var view = $(this).attr('data-view');
      $('.courses_filters__switcher i').removeClass('active');
      $(this).addClass('active');
      if (view === 'grid') {
        $('.stm_lms_courses_wrapper').removeClass('stm_lms_courses_list_view').addClass('stm_lms_courses_grid_view');
      } else {
        $('.stm_lms_courses_wrapper').removeClass('stm_lms_courses_grid_view').addClass('stm_lms_courses_list_view');
      }
    });
  }
})(jQuery);
// source --> https://ecoledeshuilesessentielles.fr/wp-content/plugins/masterstudy-lms-learning-management-system/_core/assets/js/courses_filter.js?ver=40674 
"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
(function ($) {
  $(document).ready(function () {
    var $filter = $('.stm_lms_courses__filter');
    $filter.eq(0).addClass('active').find('.stm_lms_courses__filter_content').slideDown();
    $filter.eq(1).addClass('active').find('.stm_lms_courses__filter_content').slideDown();
    $filter.eq(2).addClass('active').find('.stm_lms_courses__filter_content').slideDown();
    $filter.eq(3).addClass('active').find('.stm_lms_courses__filter_content').slideDown();
    $filter.find('.stm_lms_courses__filter_heading').on('click', function () {
      $(this).closest('.stm_lms_courses__filter').toggleClass('active').find('.stm_lms_courses__filter_content').slideToggle();
    });
    $('.stm_lms_courses__filter input').each(function () {
      var value = $(this).val();
      var type = $(this).attr('type');
      if (type === 'checkbox' || type === 'radio') {
        value = $(this).is(':checked');
      }
      if (value) {
        $(this).closest('.stm_lms_courses__filter').addClass('active').find('.stm_lms_courses__filter_content').slideDown();
      }
    });
    subcategories();
    $('.stm_lms_courses__category .stm_lms_courses__filter_category input').on('change', function () {
      subcategories($(this));
    });
    courses_filter();
    $('.stm_lms_courses__archive_filter_toggle').on('click', function (e) {
      e.preventDefault();
      $('.stm_lms_courses__archive_filters').slideToggle();
    });
    limits();
    $('.reveal_limited').on('click', function () {
      $(this).slideUp();
      $(this).closest('.limited_list').find('.stm_lms_courses__filter_category').slideDown();
    });
  });
  function subcategories(category) {
    var categories = [];
    var subcategories = [];
    $('.stm_lms_courses__subcategory_item').hide();
    $('.stm_lms_courses__category .stm_lms_courses__filter_category input:checked').each(function () {
      var $this = $(this);
      categories.push($this.val());
    });
    if (categories.length) {
      categories.forEach(function (item) {
        if ($('.stm_lms_courses__subcategory_' + item + ' .stm_lms_courses__filter_category').length) {
          subcategories.push(item);
        }
      });
    }
    if (subcategories.length) {
      $('.stm_lms_courses__subcategory').show();
      subcategories.forEach(function (subcategory) {
        $('.stm_lms_courses__subcategory_' + subcategory).show();
      });
    } else {
      $('.stm_lms_courses__subcategory').hide();
    }

    /*Uncheck closed cateogories*/
    if (typeof category !== 'undefined') {
      var categoryChecked = category.is(':checked');
      var categoryVal = category.val();
      if (!categoryChecked) {
        $('.stm_lms_courses__subcategory_' + categoryVal + ' input').prop('checked', false);
      }
    }
  }
  function get_courses_filter_data() {
    var form_data = '?' + $('.stm_lms_courses__archive_filter form').serialize();
    return form_data;
  }
  function courses_filter() {
    var $form = $('.stm_lms_courses__archive_filter form');

    /** append search value to form **/
    $('#lms-search-input').on('change', function () {
      $form.find('input[name="search"]').val($(this).val());
      var suburl = get_courses_filter_data();
      history.pushState({}, null, location.origin + location.pathname + suburl);
    });
    $form.on('change', function () {
      var $this = $(this);
      var suburl = get_courses_filter_data();
      var $container = $this.closest('.stm_lms_courses_wrapper').find('.stm_lms_courses__archive');
      var $btn = $container.find('.stm_lms_load_more_courses');
      history.pushState({}, null, location.origin + location.pathname + suburl);
    });
    $form.on('submit', function (e) {
      e.preventDefault();
      var $this = $(this);
      load_content($this);
      load_content($this, true);
    });
  }
  function load_content($this) {
    var featured = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
    var $sort = $('.courses_filters .stm_lms_courses_grid__sort select');
    var $container = $this.closest('.stm_lms_courses_wrapper').find('.stm_lms_courses__archive');
    var $btn = $container.find('.stm_lms_load_more_courses');
    var $grid = $this.closest('.stm_lms_courses_wrapper').find('[data-pages]:last');
    if (featured) {
      $grid = $this.closest('.stm_lms_courses_wrapper').find('.featured-courses');
    }
    var args = $btn.attr('data-args');
    var suburl = '?' + $this.serialize();
    var sort_value = $sort.val();
    $btn.attr('data-url', suburl);
    $.ajax({
      url: stm_lms_ajaxurl + suburl,
      dataType: 'json',
      context: this,
      data: {
        offset: 0,
        args: args,
        sort: sort_value,
        featured: featured,
        action: 'stm_lms_load_content',
        nonce: stm_lms_nonces['load_content']
      },
      beforeSend: function beforeSend() {
        $grid.closest('.stm_lms_courses__archive').addClass('loading');
        $([document.documentElement, document.body]).animate({
          scrollTop: $('.stm_lms_courses__archive').offset().top - 130
        }, 1000);
      },
      complete: function complete(data) {
        data = data['responseJSON'];
        $grid.closest('.stm_lms_courses__archive').removeClass('loading');
        if (_typeof(data) === "object" && data.hasOwnProperty('search_title')) {
          $('.courses_filters__title').find('.lms-courses-search-result').html(data['search_title']);
        }

        /** if called for featured hide 'Featured header' if no data was found
         * Really bad practice in structure here in js and in template
         * NEED to refactor
         * **/
        if (true === featured && 0 === parseInt(data.total)) {
          $grid.parent().find('.featured-head').hide();
        } else if (true === featured && parseInt(data.total) > 0) {
          $grid.parent().find('.featured-head').show();
        }
        $grid.html(data['content']).attr('data-pages', data.pages);
        $btn.attr('data-offset', data['page']);
        hide_button($btn, data['page']);
        $('.masterstudy-countdown').each(function () {
          var $time = $(this).data('timer');
          if ($time <= 0 || new Date() > $time) return;
          $(this).countdown({
            timestamp: $time
          });
        });
      }
    });
  }
  function limits() {
    $('.limited_list').each(function () {
      $(this).find('input').each(function () {
        if ($(this).is(':checked')) {
          $(this).closest('.stm_lms_courses__filter_category').slideDown();
        }
      });
    });
  }
})(jQuery);