/home/smartbloks/.trash/eazydocs/assets/js/frontend/docs-single.js
(function ($) {
	'use strict';

	$(document).ready(function () {
		// Match Fade gradient Shadow color
		let bgColor = window
				.getComputedStyle(document.body, null)
				.getPropertyValue('background-color'),
			bgColorRGBA = bgColor.replace(')', ', 0)').replace('rgb', 'rgba');

		if (bgColor) {
			$('.fadeGradient').css(
				'background',
				'-webkit-linear-gradient(bottom, ' +
					bgColor +
					' 15%, ' +
					bgColorRGBA +
					' 100%)'
			);
		}

		// Copy the current page link to clipboard
		if ($('.share-this-doc').length) {
			$('.share-this-doc').on('click', function (e) {
				e.preventDefault();
				let success_message = $(this).data('success-message');
				let $temp = $('<input>');
				$('body').append($temp);
				$temp.val($(location).attr('href')).select();
				document.execCommand('copy');
				$temp.remove();

				setTimeout(function () {
					$('.ezd-link-copied-wrap')
						.text(success_message)
						.addClass('copied');
				}, 500);

				setTimeout(function () {
					$('.ezd-link-copied-wrap').removeClass('copied');
				}, 3500);
			});
		}
		$('.ezd-link-copied-wrap').click(function () {
			$(this).removeClass('copied');
		});

		$.fn.ezd_social_popup = function (
			e,
			intWidth,
			intHeight,
			strResize,
			blnResize
		) {
			// Prevent default anchor event
			e.preventDefault();

			// Set values for window
			intWidth = intWidth || '500';
			intHeight = intHeight || '400';
			strResize = blnResize ? 'yes' : 'no';

			// Set title and open popup with focus on it
			var strTitle =
					typeof this.attr('title') !== 'undefined'
						? this.attr('title')
						: 'Social Share',
				strParam =
					'width=' +
					intWidth +
					',height=' +
					intHeight +
					',resizable=' +
					strResize,
				objWindow = window
					.open(this.attr('href'), strTitle, strParam)
					.focus();
		};
		$('.social-links a:not(:first)').on('click', function (e) {
			$(this).ezd_social_popup(e);
		});

		// Bootstrap Tooltip
		let tooltipTriggerList = [].slice.call(
			document.querySelectorAll('[data-bs-toggle="tooltip"]')
		);
		let tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
			return new bootstrap.Tooltip(tooltipTriggerEl);
		});

		// Add scroll spy attributes to body
		$('body').attr({
			'data-bs-spy': 'scroll',
			'data-bs-target': '#eazydocs-toc',
		});

		/**
		 * Make the Titles clickable
		 * If no selector is provided, it falls back to a default selector of:
		 * 'h2, h3, h4, h5, h6'
		 */
		anchors.add(
			'.doc-scrollable h2, .doc-scrollable h3, .doc-scrollable h4'
		);

		/** === Contact Form Ajax === **/
		$('form#edocs-contact-form').on('submit', function (e) {
			e.preventDefault();
			let that = $(this),
				url = that.attr('action'),
				type = that.attr('method');
			let name = $('#name').val();
			let email = $('#email').val();
			let subject = $('#subject').val();
			let doc_id = $('#doc_id').val();
			let message = $('#massage').val();
			$.ajax({
				url: eazydocs_local_object.ajaxurl,
				type: 'post',
				dataType: 'text',
				data: {
					action: 'eazydocs_feedback_email',
					name: name,
					email: email,
					subject: subject,
					doc_id: doc_id,
					message: message,
				},
				beforeSend: function () {
					$('.eazydocs-form-result').html(
						'<div class="spinner-border spinner-border-sm" role="status">\n' +
							'<span class="visually-hidden">Loading...</span>\n' +
							'</div>'
					);
				},
				success: function (response) {
					$('.eazydocs-form-result').html(
						'Your message has been sent successfully.'
					);
				},
				error: function () {
					$('.eazydocs-form-result').html(
						'Oops! Something wrong, try again!'
					);
				},
			});
			$('form#edocs-contact-form')[0].reset();
		});

		/** === Feedback Handler === **/
		$('.vote-link-wrap a.h_btn').on('click', function (e) {
			e.preventDefault();
			let self = $(this);
			$.ajax({
				url: eazydocs_local_object.ajaxurl,
				method: 'post',
				data: {
					action: 'eazydocs_handle_feedback',
					post_id: self.data('id'),
					type: self.data('type'),
					_wpnonce: eazydocs_local_object.nonce,
				},
				beforeSend: function () {
					$('.eazydocs-feedback-wrap .vote-link-wrap').html(
						'<div class="spinner-border spinner-border-sm" role="status">\n' +
							'  <span class="visually-hidden">Loading...</span>\n' +
							'</div>'
					);
				},
				success: function (response) {
					$('.eazydocs-feedback-wrap').html(response.data);
				},
				error: function () {
					console.log('Oops! Something wrong, try again!');
				},
			});
		});

		/*--------------- nav-sidebar js--------*/
		if ($('.nav-sidebar > li').hasClass('active')) {
			$('.nav-sidebar > li.active').find('ul').slideDown(700);
		}

		function active_dropdown(is_ajax = false) {
			if (is_ajax == true) {
				$(document).on(
					'click',
					'.nav-sidebar .nav-item .nav-link',
					function (e) {
						$('.nav-sidebar .nav-item').removeClass('active');
						$(this).parent().addClass('active');
						$(this).parent().find('ul').first().show(300);
						$(this).parent().siblings().find('ul').hide(300);
					}
				);
			} else {
				$('.nav-sidebar > li .doc-link .icon').on(
					'click',
					function (e) {
						$(this)
							.parent()
							.parent()
							.find('ul')
							.first()
							.toggle(300);
						$(this)
							.parent()
							.parent()
							.siblings()
							.find('ul')
							.hide(300);
					}
				);
			}
		}
		active_dropdown();

		$('.nav-sidebar > li > .doc-link .icon').each(function () {
			let $this = $(this);
			$this.on('click', function (e) {
				let has = $this.parent().parent().hasClass('active');
				$('.nav-sidebar li').removeClass('active');
				if (has) {
					$this.parent().parent().removeClass('active');
				} else {
					$this.parent().parent().addClass('active');
				}
			});
		});

		$('.nav-sidebar > li > .dropdown_nav > li > .doc-link .icon').each(
			function () {
				let $this = $(this);
				$this.on('click', function (e) {
					$this.parent().parent().toggleClass('active');
				});
			}
		);

		/**
		 * Print doc
		 */
		$('.pageSideSection .print').on('click', function (e) {
			e.preventDefault();
			$('.doc-middle-content .doc-post-content').printThis({
				loadCSS:
					eazydocs_local_object.EAZYDOCS_FRONT_CSS + '/print.css',
			});
		});

		/**
		 * Doc Menu
		 */
		$('.doc_menu a[href^="#"]:not([href="#"]').on(
			'click',
			function (event) {
				var $anchor = $(this);
				$('html, body')
					.stop()
					.animate(
						{
							scrollTop: $($anchor.attr('href')).offset().top,
						},
						900
					);
				event.preventDefault();
			}
		);

		/**
		 * Left Sidebar Toggle icon
		 */
		if ($('.doc_documentation_area').length > 0) {
			//switcher
			var switchs = true;
			$('#right').on('click', function (e) {
				e.preventDefault();
				if (switchs) {
					$('.doc_documentation_area').addClass('overlay');
					$('.doc_rightsidebar').addClass('opened').animate(
						{
							right: '0px',
						},
						100
					);
					switchs = false;
				} else {
					$('.doc_documentation_area').removeClass('overlay');
					$('.doc_rightsidebar').removeClass('opened').animate(
						{
							right: '-290px',
						},
						100
					);
					switchs = true;
				}
			});

			$('#left').on('click', function (e) {
				e.preventDefault();
				if (switchs) {
					$('.doc_documentation_area').addClass('overlay');
					$('.left-column .doc_left_sidebarlist')
						.addClass('opened')
						.animate(
							{
								left: '0px',
							},
							300
						);
					switchs = false;
				} else {
					$('.doc_documentation_area').removeClass('overlay');
					$('.left-column .doc_left_sidebarlist')
						.removeClass('opened')
						.animate(
							{
								left: '-300px',
							},
							300
						);
					switchs = true;
				}
			});
		}

		// Mobile menu on the Doc single page
		$('.single-docs .mobile_menu_btn').on('click', function () {
			$('body').removeClass('menu-is-closed').addClass('menu-is-opened');
		});

		$('.single-docs .close_nav').on('click', function (e) {
			if ($('.side_menu').hasClass('menu-opened')) {
				$('.side_menu').removeClass('menu-opened');
				$('body').removeClass('menu-is-opened');
			} else {
				$('.side_menu').addClass('menu-opened');
			}
		});

		// Filter doc chapters
		if ($('#doc_filter').length) {
			$('#doc_filter').keyup(function () {
				var value = $(this).val().toLowerCase();
				$('.nav-sidebar .page_item').each(function () {
					var lcval = $(this).text().toLowerCase();
					if (lcval.indexOf(value) > -1) {
						$(this).show(500);
					} else {
						$(this).hide(500);
					}
					if (value.length > 0) {
						$('.left-sidebar-results')
							.find('li')
							.addClass('active');
						$('.left-sidebar-results').find('li > ul').show(500);
					} else {
						$('.left-sidebar-results')
							.find('li')
							.removeClass('active');
						$('.left-sidebar-results').find('li > ul').hide(500);
					}
				});
			});

			document
				.getElementById('doc_filter')
				.addEventListener('search', function (event) {
					$('.nav-sidebar .page_item').show(300);
					$('.left-sidebar-results').find('li').removeClass('active');
					$('.left-sidebar-results').find('li > ul').hide(500);
				});
		}

		// Collapse left sidebar
		function docLeftSidebarToggle() {
			let left_column = $('.doc_mobile_menu');
			let middle_column = $('.doc-middle-content');
			$('.left-sidebar-toggle .left-arrow').on('click', function () {
				$('.doc_mobile_menu').hide(500);

				if (middle_column.hasClass('col-xl-7')) {
					$('.doc-middle-content')
						.removeClass('col-xl-7')
						.addClass('col-xl-10');
				} else if (middle_column.hasClass('col-xl-8')) {
					$('.doc-middle-content')
						.removeClass('col-xl-8')
						.addClass('col-xl-10');
				}

				$('.left-sidebar-toggle .left-arrow').hide(500);
				$('.left-sidebar-toggle .right-arrow').show(500);
			});

			$('.left-sidebar-toggle .right-arrow').on('click', function () {
				$('.doc_mobile_menu').show(500);

				if (middle_column.hasClass('col-xl-10')) {
					$('.doc-middle-content')
						.removeClass('col-xl-10')
						.addClass('col-xl-7');
				} else if (middle_column.hasClass('col-xl-8')) {
					$('.doc-middle-content')
						.removeClass('col-xl-10')
						.addClass('col-xl-8');
				}

				$('.left-sidebar-toggle .left-arrow').show(500);
				$('.left-sidebar-toggle .right-arrow').hide(500);
			});
		}
		docLeftSidebarToggle();

		//*=============menu sticky js =============*//
		var $window = $(window);
		var didScroll,
			lastScrollTop = 0,
			delta = 5,
			$mainNav = $('#sticky'),
			$mainNavHeight = $mainNav.outerHeight(),
			scrollTop;

		$window.on('scroll', function () {
			didScroll = true;
			scrollTop = $(this).scrollTop();
		});

		setInterval(function () {
			if (
				didScroll &&
				$('.navbar button.navbar-toggler.collapsed').length
			) {
				hasScrolled();
				didScroll = false;
			}
		}, 200);

		function hasScrolled() {
			if (Math.abs(lastScrollTop - scrollTop) <= delta) {
				return;
			}
			if (scrollTop > lastScrollTop && scrollTop > $mainNavHeight) {
				$mainNav
					.removeClass('fadeInDown')
					.addClass('fadeInUp')
					.css('top', -$mainNavHeight);
				$('body').removeClass('navbar-shown').addClass('navbar-hidden');
			} else {
				if (scrollTop + $(window).height() < $(document).height()) {
					$mainNav
						.removeClass('fadeInUp')
						.addClass('fadeInDown')
						.css('top', 0);
					$('body')
						.removeClass('navbar-hidden')
						.addClass('navbar-shown');
				}
			}
			lastScrollTop = scrollTop;
		}

		//*=============menu sticky js =============*//

		//  page scroll
		function bodyFixed() {
			var windowWidth = $(window).width();
			if ($('#sticky_doc').length) {
				if (windowWidth > 576) {
					var tops = $('#sticky_doc');
					var leftOffset = tops.offset().top;

					$(window).on('scroll', function () {
						var scroll = $(window).scrollTop();
						if (scroll >= leftOffset) {
							tops.addClass('body_fixed');
						} else {
							tops.removeClass('body_fixed');
						}
					});
				}
			}
		}

		bodyFixed();

		// TOC area
		function bodyFixed2() {
			var windowWidth = $(window).width();

			if ($('#sticky_doc2').length) {
				if (windowWidth > 576) {
					var tops = $('#sticky_doc2');
					var topOffset = tops.offset().top;
					var blogForm = $('.blog_comment_box');
					var blogFormTop = blogForm.offset().top - 300;

					$(window).on('scroll', function () {
						var scrolls = $(window).scrollTop();
						if (scrolls >= topOffset) {
							tops.addClass('stick');
						} else {
							tops.removeClass('stick');
						}
					});

					$('a[href="#hackers"]').click(function () {
						$('#hackers').css('padding-top', '100px');

						$(window).on('scroll', function () {
							var hackersOffset = $('#hackers').offset().top;
							var scrolls = $(window).scrollTop();
							if (scrolls < hackersOffset) {
								$('#hackers').css('padding-top', '0px');
							}
						});
					});
				}
			}
		}

		bodyFixed2();

		/*  Menu Click js  */
		function Menu_js() {
			if ($('.submenu').length) {
				$('.submenu > .dropdown-toggle').click(function () {
					var location = $(this).attr('href');
					window.location.href = location;
					return false;
				});
			}
		}

		Menu_js();

		/**
		 * Load Doc single page via ajax
		 */
		if (eazydocs_local_object.is_doc_ajax == '1') {
			$(document).on(
				'click',
				'.single-docs .nav-sidebar .nav-item .dropdown_nav li a',
				function (e) {
					e.preventDefault();
					let self = $(this);
					let title = self.text();
					let postid = $(this).attr('data-postid');

					function changeurl(page_title) {
						let new_url = self.attr('href');
						window.history.pushState('data', 'Title', new_url);
						document.title = page_title;
					}

					$.ajax({
						url: eazydocs_local_object.ajaxurl,
						method: 'post',
						data: {
							action: 'docs_single_content',
							postid: postid,
						},
						beforeSend: function () {
							$('#reading-progress-fill').css({
								width: '100%',
								display: 'block',
							});
						},
						success: function (response) {
							$('#reading-progress-fill').css({
								display: 'none',
							});
							$('.doc-middle-content').html(response);
							changeurl(title);
							$('.nav-sidebar .nav-item').removeClass(
								'current_page_item'
							);

							$(
								'.nav-sidebar .nav-item .dropdown_nav li a'
							).removeClass('active');
							if (!self.parent().parent().hasClass('has_child')) {
								self.addClass('active');
								self.parent().addClass('current_page_item');
							} else if (
								self.parent().parent().hasClass('has_child')
							) {
								self.parent()
									.parent()
									.addClass('current_page_item');
							}

							// Toc
							$('#eazydocs-toc').empty();
							Toc.init({
								$nav: $('#eazydocs-toc'),
								$scope: $('.doc-scrollable'),
							});
							docLeftSidebarToggle();
						},
						error: function () {
							console.log('Oops! Something wrong, try again!');
						},
					});
				}
			);

			$(document).on(
				'click',
				'.single-docs .nav-sidebar .nav-item .nav-link',
				function (e) {
					e.preventDefault();
					let self = $(this);
					let title = self.text();
					let postid = $(this).attr('data-postid');

					function changeurl(page_title) {
						let new_url = self.attr('href');
						window.history.pushState('data', 'Title', new_url);
						document.title = page_title;
					}

					$.ajax({
						url: eazydocs_local_object.ajaxurl,
						method: 'post',
						data: {
							action: 'docs_single_content',
							postid: postid,
						},
						beforeSend: function () {
							$('#reading-progress-fill').css({
								width: '100%',
								display: 'block',
							});
						},
						success: function (response) {
							active_dropdown(true);
							$('#reading-progress-fill').css({
								display: 'none',
							});
							$('.doc-middle-content').html(response);
							changeurl(title);
							$('.nav-sidebar .nav-item').removeClass(
								'current_page_item'
							);
							self.addClass('active');
							self.parent()
								.parent()
								.addClass('current_page_item');

							docLeftSidebarToggle();
							// Toc
							$('#eazydocs-toc').empty();
							Toc.init({
								$nav: $('#eazydocs-toc'),
								$scope: $('.doc-scrollable'),
							});
						},
						error: function () {
							console.log('Oops! Something wrong, try again!');
						},
					});
				}
			);
		}

		/*------------ Cookie functions and color js ------------*/
		function createCookie(name, value, days) {
			var expires = '';
			if (days) {
				var date = new Date();
				date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
				expires = '; expires=' + date.toUTCString();
			}
			document.cookie = name + '=' + value + expires + '; path=/';
		}

		function readCookie(name) {
			var nameEQ = name + '=';
			var ca = document.cookie.split(';');
			for (var i = 0; i < ca.length; i++) {
				var c = ca[i];
				while (c.charAt(0) == ' ') c = c.substring(1, c.length);
				if (c.indexOf(nameEQ) == 0)
					return c.substring(nameEQ.length, c.length);
			}
			return null;
		}

		function eraseCookie(name) {
			createCookie(name, '', -1);
		}

		let prefersDark =
			window.matchMedia &&
			window.matchMedia('(prefers-color-scheme: dark)').matches;
		let selectedNightTheme = readCookie('body_dark');

		if (
			selectedNightTheme == 'true' ||
			(selectedNightTheme === null && prefersDark)
		) {
			applyNight();
			$('#ezd_dark_switch').prop('checked', true);
		} else {
			applyDay();
			$('#ezd_dark_switch').prop('checked', false);
		}

		function applyNight() {
			$('body').addClass('body_dark');
			$('.light-mode').removeClass('active');
			$('.dark-mode').addClass('active');
		}

		function applyDay() {
			$('body').removeClass('body_dark');
			$('.dark-mode').removeClass('active');
			$('.light-mode').addClass('active');
		}

		$('#ezd_dark_switch').change(function () {
			if ($(this).is(':checked')) {
				applyNight();
				$('.tab-btns').removeClass('active');
				createCookie('body_dark', true, 999);
			} else {
				applyDay();
				$('.tab-btns').addClass('active');
				createCookie('body_dark', false, 999);
			}
		});

		if (
			$(
				".ezd_connect_theme:contains('Docly'), .ezd_connect_theme:contains('Docy')"
			).length
		) {
		} else {
			$('body').prepend("<div class='ezd_click_capture'></div>");
		}

		// CONTRIBUTOR SEARCH
		$('#ezd-contributor-search').on('keyup', function () {
			var value = $(this).val().toLowerCase();
			$('.users_wrap_item').filter(function () {
				$(this).toggle(
					$(this).text().toLowerCase().indexOf(value) > -1
				);
			});
		});

		// Anchor JS scroll
		var urlHash = window.location.href.split('#')[1];
		if (urlHash) {
			$('html,body').animate(
				{
					scrollTop: $('#' + urlHash).offset().top,
				},
				30
			);
		}

		// Font size switcher
		if ($('#rvfs-controllers button').length) {
			var $speech = $(
				'#post p, #post ul li:not(.process_tab_shortcode ul li), #post ol li, #post table:not(.basic_table_info,.table-dark), #post table tr td, #post .tab-content'
			);
			var $defaultSize = $speech.css('fontSize');
			$('#rvfs-controllers button').click(function () {
				var num = parseFloat($speech.css('fontSize'));
				switch (this.id) {
					case 'switcher-large':
						num *= 1.1;
						break;
					case 'switcher-small':
						num /= 1.1;
						break;
					default:
						num = parseFloat($defaultSize);
				}
				$speech.animate({ fontSize: num + 'px' });
			});
		}

		// Search results should close on clearing the input field
		if ( document.getElementById('ezd_searchInput') ) {
			document
				.getElementById('ezd_searchInput')
				.addEventListener('search', function (event) {
					$('#ezd-search-results').empty().removeClass('ajax-search');
				})
		}
	})
})(jQuery);