/* eslint-disable no-var */
jQuery(function ($) {
var hash = window.location.hash;


learndashFocusModeSidebarAutoScroll();


initLoginModal();
if ('#login' == hash) {
openLoginModal();
}


if ('undefined' !== typeof ldGetUrlVars().login) {
var loginStatus = ldGetUrlVars().login;


if ('failed' == loginStatus) {
openLoginModal();
}
}


if ('undefined' !== typeof ldGetUrlVars()['ld-topic-page']) {
var topicPage = ldGetUrlVars()['ld-topic-page'];
var topicIds = topicPage.split('-');
var topicId = Object.values(topicIds)[0];


var lesson = $('#ld-expand-' + topicId);
var button = $(lesson).find('.ld-expand-button');


ld_expand_element(button);


$('html, body').animate(
{
scrollTop: $(lesson).offset().top,
},
500
);
}


$('body').on('click', 'a[href="#login"]', function (e) {
e.preventDefault();
openLoginModal();
});


$('body').on('click', '.ld-modal-closer', function (e) {
e.preventDefault();
closeLoginModal();
});


$('body').on('click', '#ld-comments-post-button', function (e) {
$(this).addClass('ld-open');
$('#ld-comments-form').removeClass('ld-collapsed');
$('textarea#comment').focus();
});


// Close modal if clicking away
/*
$('body').on('click', function(e) {
if ($('.learndash-wrapper').hasClass('ld-modal-open')) {
if ( ! $(e.target).parents('.ld-modal').length && (! $(e.target).is('a'))) {
closeLoginModal();
}
}
});
*/


// Close modal on Esc key
$(document).on('keyup', function (e) {
if (27 === e.keyCode) {
closeLoginModal();
}
});


$('.learndash-wrapper').on(
'click',
'a.user_statistic',
learndash_ld30_show_user_statistic
);


focusMobileCheck();


$('body').on('click', '.ld-focus-sidebar-trigger', function (e) {
if ($('.ld-focus').hasClass('ld-focus-sidebar-collapsed')) {
openFocusSidebar();
} else {
closeFocusSidebar();
}
});


$('body').on('click', '.ld-mobile-nav a', function (e) {
e.preventDefault();
if ($('.ld-focus').hasClass('ld-focus-sidebar-collapsed')) {
openFocusSidebar();
} else {
closeFocusSidebar();
}
});


$('.ld-js-register-account').on('click', function (e) {
e.preventDefault();


$('.ld-login-modal-register .ld-modal-text').slideUp('slow');
$('.ld-login-modal-register .ld-alert').slideUp('slow');
$(this).slideUp('slow', function () {
$('#ld-user-register').slideDown('slow');
});
});


// If registration login link filter not defined, allow to replace the register form with login form
if ('' == $('.registration-login-link').attr('href')) {
$('.registration-login-link').on('click', function (e) {
e.preventDefault();
$('#learndash_registerform, .registration-login').hide();
$(
'.registration-login-form, .show-register-form, .show-password-reset-link'
).show();
});
$('.show-register-form').on('click', function (e) {
e.preventDefault();
$(
'.registration-login-form, .show-register-form, .show-password-reset-link'
).hide();
$('#learndash_registerform, .registration-login').show();
});
}


var windowWidth = $(window).width();


$(window).on('orientationchange', function () {
windowWidth = $(window).width();
});


$(window).on('resize', function () {
if ($(this).width() !== windowWidth && 1024 >= $(this).width()) {
setTimeout(function () {
focusMobileResizeCheck();
}, 50);
}
});


if ($('.ld-course-status-content').length) {
var tallest = 0;


$('.ld-course-status-content').each(function () {
if ($(this).height() > tallest) {
tallest = $(this).height();
}
});


$('.ld-course-status-content').height(tallest);
}


function focusMobileCheck() {
if (1024 > $(window).width()) {
closeFocusSidebarPageLoad();
}
}


function focusMobileResizeCheck() {
if (
1024 > $(window).width() &&
!$('.ld-focus').hasClass('ld-focus-sidebar-collapsed')
) {
closeFocusSidebar();
} else if (
1024 <= $(window).width() &&
$('.ld-focus').hasClass('ld-focus-sidebar-filtered')
) {
closeFocusSidebar();
} else if (
1024 <= $(window).width() &&
!$('.ld-focus').hasClass('ld-focus-sidebar-filtered') &&
$('.ld-focus').hasClass('ld-focus-sidebar-collapsed')
) {
openFocusSidebar();
}
}


function focusMobileHandleOrientationChange(e) {
if (e.matches) {
if (
1024 <= $(window).width() &&
!$('.ld-focus').hasClass('ld-focus-sidebar-filtered') &&
$('.ld-focus').hasClass('ld-focus-sidebar-collapsed')
) {
openFocusSidebar();
}
}
}
window
.matchMedia('(orientation: landscape)')
.addListener(focusMobileHandleOrientationChange);


function closeFocusSidebarPageLoad() {
$('.ld-focus').addClass('ld-focus-sidebar-collapsed');
$('.ld-focus').removeClass('ld-focus-initial-transition');
$('.ld-mobile-nav').removeClass('expanded');
positionTooltips();
}


function closeFocusSidebar() {
$('.ld-focus').addClass('ld-focus-sidebar-collapsed');
$('.ld-mobile-nav').removeClass('expanded');


if (
$('.ld-focus-sidebar-trigger .ld-icon').hasClass(
'ld-icon-arrow-left'
)
) {
$('.ld-focus-sidebar-trigger .ld-icon').removeClass(
'ld-icon-arrow-left'
);
$('.ld-focus-sidebar-trigger .ld-icon').addClass(
'ld-icon-arrow-right'
);
} else if (
$('.ld-focus-sidebar-trigger .ld-icon').hasClass(
'ld-icon-arrow-right'
)
) {
$('.ld-focus-sidebar-trigger .ld-icon').removeClass(
'ld-icon-arrow-right'
);
$('.ld-focus-sidebar-trigger .ld-icon').addClass(
'ld-icon-arrow-left'
);
}


positionTooltips();
}


function openFocusSidebar() {
focusMobileCheck();
$('.ld-focus').removeClass('ld-focus-sidebar-collapsed');
$('.ld-mobile-nav').addClass('expanded');


if (
$('.ld-focus-sidebar-trigger .ld-icon').hasClass(
'ld-icon-arrow-left'
)
) {
$('.ld-focus-sidebar-trigger .ld-icon').removeClass(
'ld-icon-arrow-left'
);
$('.ld-focus-sidebar-trigger .ld-icon').addClass(
'ld-icon-arrow-right'
);
} else if (
$('.ld-focus-sidebar-trigger .ld-icon').hasClass(
'ld-icon-arrow-right'
)
) {
$('.ld-focus-sidebar-trigger .ld-icon').removeClass(
'ld-icon-arrow-right'
);
$('.ld-focus-sidebar-trigger .ld-icon').addClass(
'ld-icon-arrow-left'
);
}


positionTooltips();
}


$('.ld-file-input').each(function () {
var $input = $(this),
$label = $input.next('label'),
labelVal = $label.html();


$input.on('change', function (e) {
var fileName = '';
if (this.files && 1 < this.files.length) {
fileName = (
this.getAttribute('data-multiple-caption') || ''
).replace('{count}', this.files.length);
} else if (e.target.value) {
fileName = e.target.value.split('\\').pop();
}
if (fileName) {
$label.find('span').html(fileName);
$label.addClass('ld-file-selected');
$('#uploadfile_btn').attr('disabled', false);
} else {
$label.html(labelVal);
$label.removeClass('ld-file-selected');
$('#uploadfile_btn').attr('disabled', true);
}
});


$('#uploadfile_form').on('submit', function () {
$label.removeClass('ld-file-selected');
$('#uploadfile_btn').attr('disabled', true);
});


// Firefox bug fix
$input
.on('focus', function () {
$input.addClass('has-focus');
})
.on('blur', function () {
$input.removeClass('has-focus');
});
});


$('body').on('click', '.ld-expand-button', function (e) {
e.preventDefault();


ld_expand_element($(this));


positionTooltips();
});


$('body').on('click', '.ld-search-prompt', function (e) {
e.preventDefault();


$('#course_name_field').focus();


ld_expand_element($(this));
});


function ld_expand_button_state(state, elm) {
var $expandText = $(elm)[0].hasAttribute('data-ld-expand-text')
? $(elm).attr('data-ld-expand-text')
: 'Expand';
var $collapseText = $(elm)[0].hasAttribute('data-ld-collapse-text')
? $(elm).attr('data-ld-collapse-text')
: 'Collapse';


if ('collapse' == state) {
$(elm).removeClass('ld-expanded');
if ('false' !== $collapseText) {
$(elm).find('.ld-text').text($expandText);
}
} else {
$(elm).addClass('ld-expanded');
if ('false' !== $collapseText) {
$(elm).find('.ld-text').text($collapseText);
}
}
}


function ld_expand_element(elm, collapse) {
if (collapse === undefined) {
collapse = false;
}


var elmParentWrapper = elm.parents('.ld-focus-sidebar');
if (
'undefined' === typeof elmParentWrapper ||
!elmParentWrapper.length
) {
var elmParentWrapper = elm.parents('.learndash-wrapper');
}
if (
'undefined' === typeof elmParentWrapper ||
!elmParentWrapper.length
) {
return;
}


// Get the button's state
var $expanded = $(elm).hasClass('ld-expanded');


// Get the element to expand
if ($(elm)[0] && $(elm)[0].hasAttribute('data-ld-expands')) {
var $expands = $(elm).attr('data-ld-expands');
if ('undefined' === typeof $expands || !$expands.length) {
return;
}


var $expandElm = $(elmParentWrapper).find(
'[data-ld-expand-id="' + $expands + '"]'
);
if ('undefined' === typeof $expandElm || !$expandElm.length) {
return;
}


var $expandsChild = $($expandElm).find(
'.ld-item-list-item-expanded'
);


if ($expandsChild.length) {
$expandElm = $expandsChild;
}


var totalHeight = 0;


$expandElm.find('> *').each(function () {
totalHeight += $(this).outerHeight();
});


$expandElm.attr('data-height', '' + (totalHeight + 50) + '');


// If the element expands a list


if (
$(elmParentWrapper)
.find('[data-ld-expand-id="' + $expands + '"]')[0]
.hasAttribute('data-ld-expand-list')
) {
var $container = $(elmParentWrapper).find(
'[data-ld-expand-id="' + $expands + '"]'
);
var innerButtons = $container.find('.ld-expand-button');
if ($expanded) {
ld_expand_button_state('collapse', elm);
innerButtons.each(function () {
ld_expand_element($(this), true);
});
} else {
ld_expand_button_state('expand', elm);
innerButtons.each(function () {
ld_expand_element($(this));
});
}


// If the element expands an item
} else if (
$(elmParentWrapper).find(
'[data-ld-expand-id="' + $expands + '"]'
).length
) {
if ($expanded || true == collapse) {
ld_expand_singular_item(
elm,
$(elmParentWrapper).find(
'[data-ld-expand-id="' + $expands + '"]'
),
$expandElm
);
} else {
ld_collapse_singular_item(
elm,
$(elmParentWrapper).find(
'[data-ld-expand-id="' + $expands + '"]'
),
$expandElm
);
}
} else {
console.log('LearnDash: No expandable content was found');
}
positionTooltips();
}
}


function ld_expand_singular_item(elm, $containerElm, $expandElm) {
$containerElm.removeClass('ld-expanded');
ld_expand_button_state('collapse', elm);


$expandElm.css({
'max-height': 0,
});
}


function ld_collapse_singular_item(elm, $containerElm, $expandElm) {
$containerElm.addClass('ld-expanded');


ld_expand_button_state('expand', elm);


$expandElm.css({
'max-height': $expandElm.data('height'),
});
}


$('body').on('click', '.ld-closer', function (e) {
ld_expand_element($('.ld-search-prompt'), true);
});


$('body').on('click', '.ld-tabs-navigation .ld-tab', function () {
var $tab = $('#' + $(this).attr('data-ld-tab'));
if ($tab.length) {
$('.ld-tabs-navigation .ld-tab.ld-active').removeClass('ld-active');
$('.ld-tabs-navigation .ld-tab').removeAttr('aria-selected');
$(this).addClass('ld-active');
$(this).attr('aria-selected', 'true');
$('.ld-tabs-content .ld-tab-content.ld-visible').removeClass(
'ld-visible'
);
$tab.addClass('ld-visible');
}
positionTooltips();
});


var $tooltips = $('*[data-ld-tooltip]');


initTooltips();


function initTooltips() {
// Clear out old tooltips


if ($('#learndash-tooltips').length) {
$('#learndash-tooltips').remove();
$tooltips = $('*[data-ld-tooltip]');
}


if ($tooltips.length) {
$('body').prepend('<div id="learndash-tooltips"></div>');
var $ctr = 1;
$tooltips.each(function () {
var anchor = $(this);
if (anchor.hasClass('ld-item-list-item')) {
anchor = anchor.find('.ld-item-title');
}


/**
* Prevent calendar icon from being clickable.
*/
if (
'undefined' !== typeof anchor &&
$(anchor).hasClass('ld-status-waiting')
) {
$(anchor).on('click', function (e) {
e.preventDefault();
return false;
});


// Also prevent parent <a> from being clickable.
var parent_anchor = $(anchor).parents('a');
if ('undefined' !== typeof parent_anchor) {
$(parent_anchor).on('click', function (e) {
e.preventDefault();
return false;
});
}
}


var elementOffsets = {
top: anchor.offset().top,
left: anchor.offset().left + anchor.outerWidth() / 2,
};
var $content = $(this).attr('data-ld-tooltip');
var $rel_id = Math.floor(Math.random() * 99999);


//var $tooltip = '<span id="ld-tooltip-' + $rel_id + '" class="ld-tooltip" style="top:' + elementOffsets.top + 'px; left:' + elementOffsets.left + 'px;">' + $content + '</span>';
var $tooltip =
'<span id="ld-tooltip-' +
$rel_id +
'" class="ld-tooltip">' +
$content +
'</span>';
$(this).attr('data-ld-tooltip-id', $rel_id);
$('#learndash-tooltips').append($tooltip);
$ctr++;
var $tooltip = $('#ld-tooltip-' + $rel_id);
$(this)
.on('mouseenter', function () {
$tooltip.addClass('ld-visible');
})
.on('mouseleave', function () {
$tooltip.removeClass('ld-visible');
});
});


$(window).on('resize', function () {
// Reposition tooltips after resizing
positionTooltips();
});


$(window)
.add('.ld-focus-sidebar-wrapper')
.on('scroll', function () {
// Hide tooltips so they don't persist while scrolling
$('.ld-visible.ld-tooltip').removeClass('ld-visible');


// Reposition tooltips after scrolling
positionTooltips();
});


positionTooltips();
}
}


function initLoginModal() {
var modal_wrapper = $('.learndash-wrapper-login-modal');
if ('undefined' !== typeof modal_wrapper && modal_wrapper.length) {
// Move the model to be first element of the body. See LEARNDASH-3503
$(modal_wrapper).prependTo('body');
}
}


function openLoginModal() {
var modal_wrapper = $('.learndash-wrapper-login-modal');
if ('undefined' !== typeof modal_wrapper && modal_wrapper.length) {
$(modal_wrapper).addClass('ld-modal-open');
$(modal_wrapper).removeClass('ld-modal-closed');


// Removed LEARNDASH-3867 #4
$('html, body').animate(
{
scrollTop: $('.ld-modal', modal_wrapper).offset().top,
},
50
);
}
}


function closeLoginModal() {
var modal_wrapper = $('.learndash-wrapper-login-modal');
if ('undefined' !== typeof modal_wrapper && modal_wrapper.length) {
$(modal_wrapper).removeClass('ld-modal-open');
$(modal_wrapper).addClass('ld-modal-closed');
}
}


function positionTooltips() {
if ('undefined' !== typeof $tooltips) {
setTimeout(function () {
$tooltips.each(function () {
var anchor = $(this);
var $rel_id = anchor.attr('data-ld-tooltip-id');
$tooltip = $('#ld-tooltip-' + $rel_id);


if (anchor.hasClass('ld-item-list-item')) {
//anchor = anchor.find('.ld-item-title');
anchor = anchor.find('.ld-status-icon');
}


var parent_focus =
jQuery(anchor).parents('.ld-focus-sidebar');
var left_post =
anchor.offset().left + (anchor.outerWidth() + 10);
if (parent_focus.length) {
left_post =
anchor.offset().left + (anchor.outerWidth() - 18);
}


// Get the main content height
var focusModeMainContentHeight =
$('.ld-focus-main').height();


// Current tooltip height
var focusModeCurrentTooltipHeight =
anchor.offset().top + -3;


// Position tooltip depending on focus mode or not
if (!focusModeMainContentHeight) {
var anchorTop = anchor.offset().top + -3;
var anchorLeft = anchor.offset().left;
} else {
anchorTop =
focusModeCurrentTooltipHeight <
focusModeMainContentHeight
? focusModeCurrentTooltipHeight
: focusModeMainContentHeight;
anchorLeft = left_post;
}


$tooltip
.css({
top: anchorTop,


//'left' : anchor.offset().left + (anchor.outerWidth() / 2),
//'left': left_post, //anchor.offset().left + (anchor.outerWidth() +10),
left: anchorLeft, //anchor.offset().left + (anchor.outerWidth() +10),
'margin-left': 0,
'margin-right': 0,
})
.removeClass('ld-shifted-left ld-shifted-right');
if ($tooltip.offset().left <= 0) {
$tooltip
.css({
'margin-left': Math.abs($tooltip.offset().left),
})
.addClass('ld-shifted-left');
}
var $tooltipRight =
$(window).width() -
($tooltip.offset().left + $tooltip.outerWidth());
if (0 >= $tooltipRight && 360 < $(window).width()) {
$tooltip
.css({ 'margin-right': Math.abs($tooltipRight) })
.addClass('ld-shifted-right');
}
});
}, 500);
}
}


$('body').on('click', '#ld-profile .ld-reset-button', function (e) {
e.preventDefault();


$('#ld-profile #course_name_field').val('');


var searchVars = {
shortcode_instance: $('#ld-profile').data('shortcode_instance'),
};


searchVars['ld-profile-search'] = $(this)
.parents('.ld-item-search-wrapper')
.find('#course_name_field')
.val();
searchVars['ld-profile-search-nonce'] = $(this)
.parents('.ld-item-search-wrapper')
.find('form.ld-item-search-fields')
.data('nonce');


$('#ld-profile #ld-main-course-list').addClass('ld-loading');


$.ajax({
type: 'GET',
url: ldVars.ajaxurl + '?action=ld30_ajax_profile_search',
data: searchVars,
success(response) {
if ('undefined' !== typeof response.data.markup) {
$('#ld-profile').html(response.data.markup);
ld_expand_element('#ld-profile .ld-search-prompt', false);
}
},
});
});


$('body').on('submit', '.ld-item-search-fields', function (e) {
e.preventDefault();


var searchVars = {
shortcode_instance: $('#ld-profile').data('shortcode_instance'),
};


searchVars['ld-profile-search'] = $(this)
.parents('.ld-item-search-wrapper')
.find('#course_name_field')
.val();
searchVars['ld-profile-search-nonce'] = $(this)
.parents('.ld-item-search-wrapper')
.find('form.ld-item-search-fields')
.data('nonce');


$('#ld-profile #ld-main-course-list').addClass('ld-loading');


$.ajax({
type: 'GET',
url: ldVars.ajaxurl + '?action=ld30_ajax_profile_search',
data: searchVars,
success(response) {
if ('undefined' !== typeof response.data.markup) {
$('#ld-profile').html(response.data.markup);
ld_expand_element('#ld-profile .ld-search-prompt', false);
}
},
});
});


$('body').on('click', '.ld-pagination a', function (e) {
e.preventDefault();


var linkVars = {};
var parentVars = {};


$(this)
.attr('href')
.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
linkVars[key] = value;
});


linkVars.pager_nonce = $(this)
.parents('.ld-pagination')
.data('pager-nonce');


linkVars.pager_results = $(this)
.parents('.ld-pagination')
.data('pager-results');


linkVars.context = $(this).data('context');
console.log('linkVars[%o]', linkVars);


parentVars.currentTarget = e.currentTarget;


if ('profile' != linkVars.context) {
linkVars.lesson_id = $(this).data('lesson_id');
linkVars.course_id = $(this).data('course_id');


if ($('.ld-course-nav-' + linkVars.course_id).length) {
linkVars.widget_instance = $(
'.ld-course-nav-' + linkVars.course_id
).data('widget_instance');
}
}


if ('course_topics' == linkVars.context) {
$('#ld-topic-list-' + linkVars.lesson_id).addClass('ld-loading');
$('#ld-nav-content-list-' + linkVars.lesson_id).addClass(
'ld-loading'
);
}


if ('course_content_shortcode' == linkVars.context) {
parentVars.parent_container = $(parentVars.currentTarget).closest(
'.ld-course-content-' + linkVars.course_id
);
if (
'undefined' !== typeof parentVars.parent_container &&
parentVars.parent_container.length
) {
$(parentVars.parent_container).addClass('ld-loading');
linkVars.shortcode_instance = $(
parentVars.parent_container
).data('shortcode_instance');
} else {
$('.ld-course-content-' + linkVars.course_id).addClass(
'ld-loading'
);
linkVars.shortcode_instance = $(
'.ld-course-content-' + linkVars.course_id
).data('shortcode_instance');
}
} else if ('course_lessons' == linkVars.context) {
var parent_container;


// Check if we are within the Course Navigation Widget.
if (
'undefined' === typeof parentVars.parent_container ||
!parentVars.parent_container.length
) {
parent_container = $(parentVars.currentTarget).parents(
'.ld-lesson-navigation'
);
if (
'undefined' !== typeof parent_container &&
parent_container.length
) {
parentVars.context_sub = 'course_navigation_widget';
parentVars.parent_container = $(
parentVars.currentTarget
).parents('#ld-lesson-list-' + linkVars.course_id);
}
}


// Check if we are within the Focus Mode Sidebar.
if (
'undefined' === typeof parentVars.parent_container ||
!parentVars.parent_container.length
) {
parent_container = $(parentVars.currentTarget).parents(
'.ld-focus-sidebar-wrapper'
);
if (
'undefined' !== typeof parent_container &&
parent_container.length
) {
parentVars.context_sub = 'focus_mode_sidebar';
parentVars.parent_container = $(
parentVars.currentTarget
).parents('#ld-lesson-list-' + linkVars.course_id);
}
}


if (
'undefined' === typeof parentVars.parent_container ||
!parentVars.parent_container.length
) {
parentVars.parent_container = $(
parentVars.currentTarget
).closest(
'#ld-item-list-' + linkVars.course_id,
'#ld-lesson-list-' + linkVars.course_id
);
}
if (
'undefined' !== typeof parentVars.parent_container &&
parentVars.parent_container.length
) {
$(parentVars.parent_container).addClass('ld-loading');
} else {
// Fallback solution.
$('#ld-item-list-' + linkVars.course_id).addClass('ld-loading');
$('#ld-lesson-list-' + linkVars.course_id).addClass(
'ld-loading'
);
}
}


if ('profile' == linkVars.context) {
$('#ld-profile #ld-main-course-list').addClass('ld-loading');
linkVars.shortcode_instance =
$('#ld-profile').data('shortcode_instance');
}


if ('profile_quizzes' == linkVars.context) {
$(
'#ld-course-list-item-' +
linkVars.pager_results.quiz_course_id +
' .ld-item-contents'
).addClass('ld-loading');
}


if ('course_info_courses' == linkVars.context) {
$('.ld-user-status').addClass('ld-loading');
linkVars.shortcode_instance =
$('.ld-user-status').data('shortcode-atts');
}


if ('group_courses' == linkVars.context) {
linkVars.group_id = $(this).data('group_id');
if ('undefined' !== typeof linkVars.group_id) {
parent_container = $(parentVars.currentTarget).parents(
'.ld-group-courses-' + linkVars.group_id
);
if (
'undefined' !== typeof parent_container &&
parent_container.length
) {
$(parent_container).addClass('ld-loading');
parentVars.parent_container = parent_container;
}
}
}


$.ajax({
type: 'GET',
url: ldVars.ajaxurl + '?action=ld30_ajax_pager',
data: linkVars,
success(response) {
// If we have a course listing, update


if ('course_topics' == linkVars.context) {
if ($('#ld-topic-list-' + linkVars.lesson_id).length) {
if ('undefined' !== typeof response.data.topics) {
$('#ld-topic-list-' + linkVars.lesson_id).html(
response.data.topics
);
}


if ('undefined' !== typeof response.data.pager) {
$('#ld-expand-' + linkVars.lesson_id)
.find('.ld-table-list-footer')
.html(response.data.pager);
}


learndashSetMaxHeight(
$('.ld-lesson-item-' + linkVars.lesson_id).find(
'.ld-item-list-item-expanded'
)
);


$('#ld-topic-list-' + linkVars.lesson_id).removeClass(
'ld-loading'
);
}


if (
$('#ld-nav-content-list-' + linkVars.lesson_id).length
) {
if ('undefined' !== typeof response.data.nav_topics) {
$('#ld-nav-content-list-' + linkVars.lesson_id)
.find('.ld-table-list-items')
.html(response.data.topics);
}


if ('undefined' !== typeof response.data.pager) {
$('#ld-nav-content-list-' + linkVars.lesson_id)
.find('.ld-table-list-footer')
.html(response.data.pager);
}


$(
'#ld-nav-content-list-' + linkVars.lesson_id
).removeClass('ld-loading');
}
}


if ('course_content_shortcode' == linkVars.context) {
if ('undefined' !== typeof response.data.markup) {
if (
'undefined' !==
typeof parentVars.parent_container &&
parentVars.parent_container.length
) {
$(parentVars.parent_container).replaceWith(
response.data.markup
);
} else {
$(
'#learndash_post_' + linkVars.course_id
).replaceWith(response.data.markup);
}
}
} else if ('course_lessons' == linkVars.context) {
if (
'undefined' !== typeof parentVars.parent_container &&
parentVars.parent_container.length
) {
if (
'course_navigation_widget' == parentVars.context_sub
) {
if (
'undefined' !== typeof response.data.nav_lessons
) {
$(parentVars.parent_container)
.html(response.data.nav_lessons)
.removeClass('ld-loading');
}
} else if (
'focus_mode_sidebar' == parentVars.context_sub
) {
if (
'undefined' !== typeof response.data.nav_lessons
) {
$(parentVars.parent_container)
.html(response.data.nav_lessons)
.removeClass('ld-loading');
}
} else if (
'undefined' !== typeof response.data.lessons
) {
$(parentVars.parent_container)
.html(response.data.lessons)
.removeClass('ld-loading');
}
} else {
if ($('#ld-item-list-' + linkVars.course_id).length) {
if ('undefined' !== typeof response.data.lessons) {
$('#ld-item-list-' + linkVars.course_id)
.html(response.data.lessons)
.removeClass('ld-loading');
}
}


if ($('#ld-lesson-list-' + linkVars.course_id).length) {
if (
'undefined' !== typeof response.data.nav_lessons
) {
$('#ld-lesson-list-' + linkVars.course_id)
.html(response.data.nav_lessons)
.removeClass('ld-loading');
}
}
}
}


if ('group_courses' == linkVars.context) {
if (
'undefined' !== typeof parentVars.parent_container &&
parentVars.parent_container.length
) {
if ('undefined' !== typeof response.data.markup) {
$(parentVars.parent_container)
.html(response.data.markup)
.removeClass('ld-loading');
}
}
}


if ('profile' == linkVars.context) {
if ('undefined' !== typeof response.data.markup) {
$('#ld-profile').html(response.data.markup);
}
}


if ('profile_quizzes' == linkVars.context) {
if ('undefined' !== typeof response.data.markup) {
$(
'#ld-course-list-item-' +
linkVars.pager_results.quiz_course_id +
' .ld-item-list-item-expanded .ld-item-contents'
).replaceWith(response.data.markup);
$(
'#ld-course-list-item-' +
linkVars.pager_results.quiz_course_id
)
.get(0)
.scrollIntoView({ behavior: 'smooth' });
}
}


if ('course_info_courses' == linkVars.context) {
if ('undefined' !== typeof response.data.markup) {
$('.ld-user-status').replaceWith(response.data.markup);
}
}


$('body').trigger('ld_has_paginated');


initTooltips();
},
});
});


if ($('#learndash_timer').length) {
var timer_el = jQuery('#learndash_timer');
var timer_seconds = timer_el.attr('data-timer-seconds');
var timer_button_el = jQuery(timer_el.attr('data-button'));


var cookie_key = timer_el.attr('data-cookie-key');


if ('undefined' !== typeof cookie_key) {
var cookie_name = 'learndash_timer_cookie_' + cookie_key;
} else {
var cookie_name = 'learndash_timer_cookie';
}


cookie_timer_seconds = jQuery.cookie(cookie_name);


if ('undefined' !== typeof cookie_timer_seconds) {
timer_seconds = parseInt(cookie_timer_seconds);
}


if (0 == timer_seconds) {
$(timer_el).hide();
}


$(timer_button_el).on('learndash-time-finished', function () {
$(timer_el).hide();
});
}


$(document).on('learndash_video_disable_assets', function (event, status) {
if ('undefined' === typeof learndash_video_data) {
return false;
}


if ('BEFORE' == learndash_video_data.videos_shown) {
if (true == status) {
$('.ld-lesson-topic-list').hide();
$('.ld-lesson-navigation')
.find('#ld-nav-content-list-' + ldVars.postID)
.addClass('user_has_no_access');
$('.ld-quiz-list').hide();
} else {
$('.ld-lesson-topic-list').slideDown();
$('.ld-quiz-list').slideDown();
$('.ld-lesson-navigation')
.find('#ld-nav-content-list-' + ldVars.postID)
.removeClass('user_has_no_access');
}
}
});


$('.learndash-wrapper').on(
'click',
'.wpProQuiz_questionListItem input[type="radio"]',
function (e) {
$(this)
.parents('.wpProQuiz_questionList')
.find('label')
.removeClass('is-selected');
$(this).parents('label').addClass('is-selected');
}
);


$('.learndash-wrapper').on(
'click',
'.wpProQuiz_questionListItem input[type="checkbox"]',
function (e) {
if (jQuery(e.currentTarget).is(':checked')) {
$(this).parents('label').addClass('is-selected');
} else {
$(this).parents('label').removeClass('is-selected');
}
}
);


function learndash_ld30_show_user_statistic(e) {
e.preventDefault();


var refId = jQuery(this).data('ref-id');
var quizId = jQuery(this).data('quiz-id');
var userId = jQuery(this).data('user-id');
var statistic_nonce = jQuery(this).data('statistic-nonce');
var post_data = {
action: 'wp_pro_quiz_admin_ajax_statistic_load_user',
func: 'statisticLoadUser',
data: {
quizId,
userId,
refId,
statistic_nonce,
avg: 0,
},
};


jQuery('#wpProQuiz_user_overlay, #wpProQuiz_loadUserData').show();
var content = jQuery('#wpProQuiz_user_content').hide();


//console.log('- learndash.js');


jQuery.ajax({
type: 'POST',
url: ldVars.ajaxurl,
dataType: 'json',
cache: false,
data: post_data,
error(jqXHR, textStatus, errorThrown) {},
success(reply_data) {
if ('undefined' !== typeof reply_data.html) {
content.html(reply_data.html);
jQuery('#wpProQuiz_user_content').show();


//console.log('trigger event change - learndash.js');
jQuery('body').trigger(
'learndash-statistics-contentchanged'
);


jQuery('#wpProQuiz_loadUserData').hide();


content.find('.statistic_data').on('click', function () {
jQuery(this).parents('tr').next().toggle('fast');


return false;
});
}
},
});


jQuery('#wpProQuiz_overlay_close').on('click', function () {
jQuery('#wpProQuiz_user_overlay').hide();
});
}


function learndashSetMaxHeight(elm) {
var totalHeight = 0;


elm.find('> *').each(function () {
totalHeight += $(this).outerHeight();
});


elm.attr('data-height', '' + (totalHeight + 50) + '');


elm.css({
'max-height': totalHeight + 50,
});
}


/**
* Will scroll the position of the Focus Mode sidebar
* to the active step.
*/
function learndashFocusModeSidebarAutoScroll() {
if (jQuery('.learndash-wrapper .ld-focus').length) {
var sidebar_wrapper = jQuery(
'.learndash-wrapper .ld-focus .ld-focus-sidebar-wrapper'
);


var sidebar_current_topic = jQuery(
'.learndash-wrapper .ld-focus .ld-focus-sidebar-wrapper .ld-is-current-item'
);
if (
'undefined' !== typeof sidebar_current_topic &&
sidebar_current_topic.length
) {
var sidebar_scrollTo = sidebar_current_topic;
} else {
var sidebar_current_lesson = jQuery(
'.learndash-wrapper .ld-focus .ld-focus-sidebar-wrapper .ld-is-current-lesson'
);
if (
'undefined' !== typeof sidebar_current_lesson &&
sidebar_current_lesson.length
) {
var sidebar_scrollTo = sidebar_current_lesson;
}
}


if (
'undefined' !== typeof sidebar_scrollTo &&
sidebar_scrollTo.length
) {
var offset_top = 0;
if (
jQuery('.learndash-wrapper .ld-focus .ld-focus-header')
.length
) {
var logo_height = jQuery(
'.learndash-wrapper .ld-focus .ld-focus-header'
).height();
offset_top += logo_height;
}
if (
jQuery(
'.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-course-navigation-heading'
).length
) {
var heading_height = jQuery(
'.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-course-navigation-heading'
).height();
offset_top += heading_height;
}
if (
jQuery(
'.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-focus-sidebar-wrapper'
).length
) {
var container_height = jQuery(
'.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-focus-sidebar-wrapper'
).height();
offset_top += container_height;
}


var current_item_height = jQuery(sidebar_scrollTo).height();
offset_top -= current_item_height;


sidebar_wrapper.animate(
{
scrollTop: sidebar_scrollTo.offset().top - offset_top,
},
1000
);
}
}
}


// Coupon processing.


function update_payment_forms(data) {
$('#total-row').attr('data-total', data.total.value);


// Update PayPal form amount.
$('form[name="buynow"] input[name="amount"]').val(data.total.value);


// Update Stripe form amount.
$('form.learndash-stripe-checkout input[name="stripe_price"]').val(
data.total.stripe_value
);


// Remove Stripe Connect session to respect the new amount.
const stripe_course_id = $(
'.learndash-stripe-checkout input[name="stripe_course_id"]'
).val();


if (stripe_course_id) {
LD_Cookies.remove('ld_stripe_session_id_' + stripe_course_id); // Stripe Plugin (Checkout).
LD_Cookies.remove(
'ld_stripe_connect_session_id_' + stripe_course_id
); // Stripe Connect in core.
}


// Re-init Stripe Plugin (Legacy) to respect the new amount.
if (typeof ld_init_stripe_legacy === 'function') {
ld_init_stripe_legacy();
}
}


$('.btn-join').on('click', function (e) {
if ($(this).hasClass('btn-disabled')) {
e.preventDefault();
return false;
}


const total = parseFloat($('#total-row').attr('data-total'));


if (0 === total) {
$.ajax({
type: 'POST',
url: ldVars.ajaxurl,
dataType: 'json',
cache: false,
data: {
action: 'learndash_enroll_with_zero_price',
nonce: $('#apply-coupon-form').data('nonce'),
post_id: $('#apply-coupon-form').data('post-id'),
},
success(response) {
if (response.success) {
window.location.replace(response.data.redirect_url);
} else {
alert(response.data.message);
}
},
});


e.preventDefault();
return false;
}
});


$('#apply-coupon-form').on('submit', function (e) {
e.preventDefault();


$.ajax({
type: 'POST',
url: ldVars.ajaxurl,
dataType: 'json',
cache: false,
data: {
action: 'learndash_apply_coupon',
nonce: $(this).data('nonce'),
coupon_code: $(this).find('#coupon-field').val(),
post_id: $(this).data('post-id'),
},
success(response) {
$('#coupon-alerts .coupon-alert').hide();


const $alert = $('#coupon-alerts').find(
response.success
? '.coupon-alert-success'
: '.coupon-alert-warning'
);


const $coupon_row = $('#coupon-row');


if (response.success) {
$coupon_row
.find('.purchase-label > span')
.html(response.data.coupon_code); // Set coupon code in totals.
$coupon_row
.find('.purchase-value span')
.html(response.data.discount); // Set discount value in totals.
$coupon_row.css('display', 'flex').hide().fadeIn(); // Show a coupon row in totals.
$('#total-row .purchase-value').html(
response.data.total.formatted
); // Update Total.
$('#totals').show();


update_payment_forms(response.data);
}


$alert.find('.ld-alert-messages').html(response.data.message);
$alert.fadeIn();
},
});
});


$('#remove-coupon-form').on('submit', function (e) {
e.preventDefault();


$.ajax({
type: 'POST',
url: ldVars.ajaxurl,
dataType: 'json',
cache: false,
data: {
action: 'learndash_remove_coupon',
nonce: $(this).data('nonce'),
post_id: $(this).data('post-id'),
},
success(response) {
$('#coupon-alerts .coupon-alert').hide();


const $alert = $('#coupon-alerts').find(
response.success
? '.coupon-alert-success'
: '.coupon-alert-warning'
);


if (response.success) {
$('#coupon-row').hide(); // Hide a coupon row in totals.
$('#coupon-field').val(''); // Set coupon field empty.
$('#price-row .purchase-value').html(
response.data.total.formatted
); // Update Price.
$('#subtotal-row .purchase-value').html(
response.data.total.formatted
); // Update Subtotal.
$('#total-row .purchase-value').html(
response.data.total.formatted
); // Update Total.
$('#totals').hide();


update_payment_forms(response.data);
}


$alert.find('.ld-alert-messages').html(response.data.message);
$alert.fadeIn();
},
});
});
});


function ldGetUrlVars() {
var vars = {};
var parts = window.location.href.replace(
/[?&]+([^=&]+)=([^&]*)/gi,
function (m, key, value) {
vars[key] = value;
}
);


return vars;
}