HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: /home/mirz4654/public_html/wp-content/themes/nexter/assets/js/admin/nexter-panel-settings.js
"use strict";
document.addEventListener('DOMContentLoaded', (event) => {
	/*Welcome page FAQ*/
	var nxtPanelFaq = document.querySelectorAll('.nxt-welcome-faq .nxt-faq-section .faq-title');
	if( nxtPanelFaq ){
		nxtPanelFaq.forEach( function(ele) {
			ele.addEventListener('click', event => {
				event.preventDefault();
				var faqSec = event.currentTarget.nextElementSibling;
				if (!faqSec.classList.contains('active')) {
					event.currentTarget.parentElement.classList.add('faq-active');
					faqSec.classList.add('active');
					faqSec.style.height = 'auto';

					var height = faqSec.clientHeight + 'px';
					faqSec.style.height = '0px';
					setTimeout(function () {
						faqSec.style.height = height;
					}, 0);

				} else {
					faqSec.style.height = '0px';
					faqSec.addEventListener('transitionend', function () {
						faqSec.parentElement.classList.remove('faq-active');
						faqSec.classList.remove('active');
					}, {
						once: true
					});
				}

			});
		});
	}
	/*Welcome page FAQ*/
	/*welcome support*/
	var nxtSupport= document.querySelector('.nxt-welcome-support-toggle');
	if( nxtSupport ){
		nxtSupport.addEventListener('click', event => {
			event.preventDefault();
			var supportContent = document.querySelector('.nxt-welcome-support-content');
			if(supportContent && !supportContent.classList.contains('active-sup')){
				supportContent.classList.add('active-sup');
				nxtSupport.classList.add('active-toggle');
				nxtSupport.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M315.3 411.3c-6.253 6.253-16.37 6.253-22.63 0L160 278.6l-132.7 132.7c-6.253 6.253-16.37 6.253-22.63 0c-6.253-6.253-6.253-16.37 0-22.63L137.4 256L4.69 123.3c-6.253-6.253-6.253-16.37 0-22.63c6.253-6.253 16.37-6.253 22.63 0L160 233.4l132.7-132.7c6.253-6.253 16.37-6.253 22.63 0c6.253 6.253 6.253 16.37 0 22.63L182.6 256l132.7 132.7C321.6 394.9 321.6 405.1 315.3 411.3z"/></svg>';
			}else{
				supportContent.classList.remove('active-sup');
				nxtSupport.classList.remove('active-toggle');
				nxtSupport.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"></path></svg>';
			}
		})
	}
	/*welcome support*/
	/*welcome Stay Updated*/
	var nxtSendEmail= document.querySelector('.nxt-send-email-update');
	if( nxtSendEmail ){
		var error_notice_Icon = '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="15.75" stroke="#FC4032" stroke-width="0.5"/><circle cx="16" cy="16" r="12" fill="#FC4032"/><rect x="15" y="9" width="2" height="10" rx="1" fill="white"/><rect x="15" y="20" width="2" height="2" rx="1" fill="white"/></svg>';
		nxtSendEmail.addEventListener('click', event => {
			event.preventDefault();
			var nxtEmail= document.querySelector('#stay-update-email');
			if(nxtEmail && nxtEmail.value!=''){
				const validateEmail = (email) => {
					return email.match(
						/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
					);
				};
				if (validateEmail(nxtEmail.value)) {
					const webhookBody = {
						email: nxtEmail.value,
					};
					const welcomeEmailUrl = 'https://store.posimyth.com/wp-admin/?fluentcrm=1&route=contact&hash=f415f1ff-50d7-4783-9e86-66f96e75c495';
					const response = fetch(welcomeEmailUrl, {
						method: 'POST',
						headers: {
							'Content-Type': 'application/json',
							'Access-Control-Allow-Origin' : 'http://localhost/',
						},
						mode: 'no-cors',
						body: JSON.stringify(webhookBody),
					}).then((response) => {
						if (response.ok) {
							var wrong_ID_msg = '<div class="nxt-wrong-msg-notice"><svg xmlns="http://www.w3.org/2000/svg" width="22" height="16" fill="none"><path d="M2.297 9.135L7.162 14l12-12" stroke="#14c38e" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"></path></svg> Successfully send mail.</div>';
							var mailSel = document.querySelector('.nxt-welcome-stay-update');
							nxt_message_notice(wrong_ID_msg, mailSel, true);
						}else{
							var wrong_ID_msg = '<div class="nxt-wrong-msg-notice">'+error_notice_Icon+' There was an error! Try again later!</div>';
							var mailSel = document.querySelector('.nxt-welcome-stay-update');
							nxt_message_notice(wrong_ID_msg, mailSel);
						}
					});
				}else{
					var wrong_ID_msg = '<div class="nxt-wrong-msg-notice">'+error_notice_Icon+' Please Check Email ID</div>';
					var mailSel = document.querySelector('.nxt-welcome-stay-update');
					nxt_message_notice(wrong_ID_msg, mailSel);
				}
			}else{
				var wrong_ID_msg = '<div class="nxt-wrong-msg-notice">'+error_notice_Icon+' Please Enter Email Id</div>';
				var mailSel = document.querySelector('.nxt-welcome-stay-update');
				nxt_message_notice(wrong_ID_msg, mailSel);
			}
		})
	}
	/*welcome Stay Updated*/

	function nxt_message_notice(msg = '', wrapSel){
		if(msg && wrapSel){
			if(wrapSel){
				wrapSel.insertAdjacentHTML('beforeend', msg);
				var notice_data = wrapSel.querySelector('.nxt-wrong-msg-notice');
				if(notice_data){
					setTimeout(function(){
						notice_data.classList.add('active-notice');
					},50);
					setTimeout(function(){
						notice_data.remove();
					},3000);
				}
			}
		}
	}
	/*welcome sys req copy*/
	var nxtCopy= document.querySelector('.sys-copy-download-btn .nxt-copy-btn');
	if( nxtCopy ){
		nxtCopy.addEventListener('click', event => {
			event.preventDefault();
			var copyText = nxtCopy.parentElement.getAttribute('data-clipboard-text');
			var textArea = document.createElement("textarea");
			textArea.value = copyText;
			textArea.style.opacity = 0;
			textArea.style.width = 0;
			textArea.style.height = 0;
			document.body.appendChild(textArea);
			textArea.select();
			try {
				var successful = document.execCommand('copy');
				if( successful ){
					nxtCopy.innerHTML = 'Copied';
					setTimeout(() => {
						nxtCopy.innerHTML = 'Copy Info';
					}, 2000);
				}else{

				}
			} catch (err) {
				console.log('Oops, unable to copy');
			}
			document.body.removeChild(textArea);
		})
	}
	var nxtDownload= document.querySelector('.sys-copy-download-btn .nxt-download-btn');
	if( nxtDownload ){
		nxtDownload.addEventListener('click', event => {
			event.preventDefault();
			var copyText = nxtDownload.parentElement.getAttribute('data-clipboard-text');
			var filename = "nexter-system-info.txt";
			nxt_Download(filename, copyText);
		})
	}
	function nxt_Download(filename, text) {
		var element = document.createElement('a');
		element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
		element.setAttribute('download', filename);

		element.style.display = 'none';
		document.body.appendChild(element);

		element.click();

		document.body.removeChild(element);
	}
	/*welcome sys req copy*/
	/* Extra Option */
	var nxtExtActiveBtn = document.querySelectorAll('.nxt-ext-btn:not(.nxt-ext-settings)');
	if( nxtExtActiveBtn ){
		nxtExtActiveBtn.forEach(function(extension_data) {
			extension_data.addEventListener('click', event => {
				event.preventDefault();
				extension_data.classList.add('ext-loading')
				var extension_type = extension_data.getAttribute("data-ext"),
					active_deactive = extension_data.getAttribute("data-enable-disable"),
					check_active = false,
					action_ajax = 'nexter_extra_ext_deactivate';
				if(active_deactive ==='active'){
					check_active = true;
					action_ajax = 'nexter_extra_ext_active';
				}
				if(extension_type == 'regenerate-thumbnails'){
					action_ajax = 'nexter_regenerate_thumbnails';
				}
				var request = new XMLHttpRequest();
				request.open('POST', nexter_admin_config.ajaxurl, true);
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
				request.onload = function () {
					if (request.status >= 200 && request.status < 400) {
						var response = JSON.parse(request.response);
						if(response.success == true){
							handleButtons : {
								if(extension_type == 'regenerate-thumbnails'){
									break handleButtons;
								}
								var content = document.querySelector('.nxt-'+extension_type+' span:not(.nxt-desc-icon)');
								if(check_active){
									extension_data.classList.remove('nxt-ext-active')
									extension_data.classList.add('nxt-ext-deactivate');
									content.textContent = "Deactivate";
									extension_data.setAttribute('data-enable-disable','deactive')
									extension_data.insertAdjacentHTML('afterend', '<button class="nxt-ext-btn nxt-ext-settings" data-ext="'+extension_type+'"><span><img src="'+nexter_admin_config.nexter_path +'images/panel-icon/setting.svg" alt="Setting"></span></button>');
									let extension_content = document.querySelector('.nxt-ext-settings[data-ext="'+extension_type+'"]')
									nxt_ext_settings_click(extension_content)
								}else{
									extension_data.classList.remove('nxt-ext-deactivate')
									extension_data.classList.add('nxt-ext-active');
									content.textContent = "Enable";
									extension_data.setAttribute('data-enable-disable','active')
									document.querySelector('.nxt-ext-settings[data-ext="'+extension_type+'"]').remove();
								}
							}
						}
						extension_data.classList.remove('ext-loading')
					}
				};
				request.send('action='+action_ajax+'&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&extension_type=' + extension_type+'&active_deactive=' + active_deactive);
			})
		});
		document.addEventListener("click", e =>{
			const isClosest = e.target;
			const isClosestMedia = e.target.closest('.supports-drag-drop');

			if (isClosest && isClosest.classList.contains('nxt-ext-setting-pop') && !isClosestMedia && !e.target.parentElement.classList.contains('nxt-ext-settings')) {
				var pop = document.querySelector('.nxt-ext-setting-pop');
				if(pop){
					pop.remove()
				}
			}

			const isSupTop = e.target.closest('.nxt-sup-top');
			const isSupInner = e.target.closest('.nxt-support-inner');
			const isSupBottom = e.target.closest('.nxt-support-bottom');
			const isSupToggleClosest = e.target.closest('.nxt-welcome-support-toggle');
			if ( !isSupTop && !isSupInner && !isSupBottom && !isSupToggleClosest && e.target.nodeName!='path' && e.target.nodeName!='svg') {
				const supToggle = document.querySelector('.nxt-welcome-support-toggle');
				const supportContent = document.querySelector('.nxt-welcome-support-content');
				if( supToggle && supToggle.classList.contains('active-toggle') ){
					supportContent.classList.remove('active-sup');
					supToggle.classList.remove('active-toggle');
					supToggle.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"></path></svg>';
				}
			}
		})
		document.addEventListener("keydown", e =>{
			if (e.keyCode == 27) {
				var pop = document.querySelector('.nxt-ext-setting-pop');
				if(pop){
					pop.remove()
				}
				const supToggle = document.querySelector('.nxt-welcome-support-toggle');
				const supportContent = document.querySelector('.nxt-welcome-support-content');
				if( supToggle && supToggle.classList.contains('active-toggle') ){
					supportContent.classList.remove('active-sup');
					supToggle.classList.remove('active-toggle');
					supToggle.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"></path></svg>';
				}
			}
		});
	}


	/*Settings click event*/
	var settingGoogleFont = document.querySelectorAll('.nxt-ext-settings');
	if( settingGoogleFont ){
		settingGoogleFont.forEach(function(extension_content) {
			nxt_ext_settings_click(extension_content);
		})
	}

	function nxt_ext_settings_click(extension_content){
		extension_content.addEventListener('click', event => {
			event.preventDefault();
			var storeGFont = [],
				currentSelectVal = '';

			var pop_ele = document.querySelector('.nxt-ext-pop-inner'),
				extension_type = extension_content.getAttribute("data-ext");
			if(!pop_ele){
				var body = document.querySelector('body')
				body.insertAdjacentHTML('beforeend', '<div class="nxt-ext-setting-pop" data-type="'+extension_type+'"><div class="nxt-ext-pop-inner"><button class="ext-close-button">×</button><div class="spinner"></div></div></div>');
				pop_ele = document.querySelector('.nxt-ext-pop-inner');
			}
			var request = new XMLHttpRequest();
			request.open('POST', nexter_admin_config.ajaxurl, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
			request.onload = function () {
				pop_ele.querySelector('.spinner').remove();
				if (request.status >= 200 && request.status < 400) {
					var response = JSON.parse(request.response);
					if(response.success == true && response.data.content!=''){
						pop_ele.insertAdjacentHTML('beforeend', response.data.content);
						nxt_custom_fields();

						if( extension_type == 'wp-replace-url' ){

							jQuery('.nxt-replace-url-table').select2({ placeholder: "Select a table", allowClear: true});
						}

						if( extension_type == 'local-google-font' ){
							nxt_ext_local_gfont(storeGFont, currentSelectVal, extension_type);
						}else if( extension_type == 'custom-upload-font' ){
							nxt_ext_custom_upload_font(extension_type, response.data.fonts)
						}else if( extension_type == 'disable-admin-setting' ){
							nxtDisAdminPop(extension_type);
						}else if( extension_type == 'wp-replace-url' ){
							nxtWPReplaceUrl(extension_type);
						}else if( extension_type == 'wp-right-click-disable' ){
							nxtWPRightClickDisable(extension_type);
						}else if(extension_type == 'google-recaptcha'){
							nxt_ext_recaptch(extension_type)
						}else if( extension_type == 'advance-performance' ){
							nxtadvanceperfo(extension_type);
						}else if( extension_type == 'disable-comments' ){
							nxtComment(extension_type);
						}else if( extension_type == 'advance-security' ){
							nxtadSecurity(extension_type);
						}else if(extension_type == 'wp-duplicate-post'){
							nxt_ext_duplicate_post(extension_type)
						}else if(extension_type == 'adobe-font'){
							nxt_ext_adobe_font(extension_type)
						}else if(extension_type == 'custom-login'){
							nxt_ext_ctm_login(extension_type)
						}else if(extension_type == 'disabled-image-sizes'){
							nxt_ext_images_sizes(extension_type)
						}else if(extension_type == 'nexter-custom-image-sizes'){
							//TODO Create function to Trigger Ajax to Create New Image Size
							nxt_ext_custom_image_sizes(extension_type)
						}else if(extension_type == 'disable-elementor-icons'){
							nxt_ext_disable_elementor_icons(extension_type)
						}else if(extension_type == 'regenerate-thumbnails'){
							nxt_ext_regenerate_thumbnails(extension_type)
						}else if(extension_type == '2-fac-authentication'){
							//
							nxt_ext_2fa(extension_type)
						}else if(extension_type == 'email-login-notification'){
							nxt_ext_login_email_noti(extension_type)
						}else if(extension_type == 'wp-login-white-label'){
							let masRelayout = jQuery('.nxt-wp-white-label-column').masonry({
								itemSelector: '.nxt-wp-white-label-wrap'
							});
							let rowClick = document.querySelector('.nxt-wp-white-label-row');
							if(rowClick){
								rowClick.addEventListener('click', ()=>{
									if(masRelayout){
										masRelayout.masonry('layout');
									}
								})
							}
							nxt_ext_wp_white_label(extension_type)
						}
					}
				}
			};
			var action = '';
			if(extension_type == 'local-google-font'){
				action = 'nexter_ext_local_google_font_content';
			}else if(extension_type == 'custom-upload-font'){
				action = 'nexter_ext_custom_upload_font_content';
			}else if(extension_type == 'disable-admin-setting'){
				action = 'nexter_ext_disable_admin_setting_content';
			}else if(extension_type == 'wp-replace-url'){
				action = 'nexter_ext_wp_replace_url_settings';
			}else if(extension_type == 'wp-right-click-disable'){
				action = 'nexter_ext_wp_right_click_disable_settings';
			}else if(extension_type == 'google-recaptcha' ){
				action = 'nexter_ext_google_recaptcha';
			}else if(extension_type == 'advance-performance' ){
				action = 'nexter_ext_advance_performance';
			}else if(extension_type == 'disable-comments' ){
				action = 'nexter_ext_disable_comments';
			}else if(extension_type == 'advance-security' ){
				action = 'nexter_ext_advance_security';
			}else if(extension_type == 'wp-duplicate-post' ){
				action = 'nexter_ext_wp_duplicate_post_settings';
			}else if(extension_type == 'adobe-font' ){
				action = 'nexter_ext_adobe_font_settings';
			}else if(extension_type == 'custom-login' ){
				action = 'nexter_ext_custom_login_redirect';
			}else if(extension_type == 'disabled-image-sizes'){
				action = 'nexter_ext_images_size';
			}else if(extension_type == 'nexter-custom-image-sizes'){
				action = 'nexter_ext_custom_image_sizes';
			}else if(extension_type == 'disable-elementor-icons'){
				action = 'nexter_ext_elementor_icons';
			}else if(extension_type == 'email-login-notification'){
				action = 'nexter_ext_login_email_notification';
			}else if(extension_type == 'wp-login-white-label'){
				action = 'nexter_ext_wp_login_white_label';
			}else if(extension_type == 'regenerate-thumbnails'){
				action = 'nexter_regenerate_thumbnails';
			}else if(extension_type == '2-fac-authentication'){
				action = 'nexter_2fa';
			}
			request.send('action='+action+'&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&extension_type=' + extension_type);

			nxt_ext_close_pop(extension_type)
		});

	}

	//close pop setting
	function nxt_ext_close_pop(extension_type){
		var close_pop_setting = document.querySelector('.ext-close-button');
		if(close_pop_setting && extension_type){
			close_pop_setting.addEventListener('click', e => {
				e.preventDefault();
				var pop = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]');
				if(pop){
					pop.remove()
				}
			})
		}
	}

	//Local Google Font
	function nxt_ext_local_gfont( storeGFont, currentSelectVal, extension_type ){
		var font_select = document.querySelector('#nxt-local-google-font-select');
		if( font_select ){
			font_select.addEventListener('click', event => {
				event.preventDefault();
				var select = font_select.parentElement;
				if(!select.classList.contains('active-select')){
					select.classList.add('active-select')
					font_select.removeAttribute("readonly")
					font_select.setAttribute("placeholder", 'Search...')
				}else{
					select.classList.remove('active-select')
					font_select.setAttribute("readonly",true)
					font_select.setAttribute("placeholder", '--Select Value--')
				}
			})

			var gfont_list = document.querySelector(".nxt-gfont-list"),
				gfont_list_li = gfont_list.getElementsByTagName("li");

			if(gfont_list){
				let listItems = gfont_list.querySelectorAll('li');
				if(listItems){
					listItems.forEach((item) => {
						item.addEventListener('click', e => {
							e.preventDefault();
							font_select.value = e.currentTarget.getAttribute("value")
							font_select.parentElement.classList.remove('active-select')
							font_select.setAttribute("readonly",true)
							currentSelectVal = e.currentTarget;
							document.querySelector('.nxt-add-gfont-data').disabled = false
						})
						if(item.classList.contains('hide-selected-val')){
							var data = item.getAttribute("value");
							storeGFont[data] = item
						}
					})

					//remove font
					var removeFont = document.querySelectorAll('.nxt-gfont-val .nxt-remove-gfont');
					if(removeFont){
						removeFont.forEach(function(item) {
							item.addEventListener('click', e => {
								e.preventDefault();
								var val = e.currentTarget.getAttribute('value')
								if(val && storeGFont[val]){
									storeGFont[val].classList.remove('hide-selected-val')
									delete storeGFont[val];
									e.currentTarget.parentElement.remove();
								}
							})
						});
					}
				}

				//add font list
				let font_add = document.querySelector('.nxt-add-gfont-data');
				if(font_add){
					font_add.addEventListener('click', e => {
						var font_val = font_select.value;
						if(font_val!='' && currentSelectVal){
							var selected_list = document.querySelector('.nxt-gfont-selected');
							if(selected_list){
								font_select.setAttribute("placeholder", '--Select Value--')
								storeGFont[font_val] = currentSelectVal
								currentSelectVal.classList.add('hide-selected-val');
								currentSelectVal = '';
								var add_font = '<li class="nxt-gfont-val"><div class="nxt-font-title">'+font_val+'</div><button type="button" class="nxt-remove-gfont" value="'+font_val+'"></button></li>';
								selected_list.insertAdjacentHTML('beforeend', add_font);
								font_select.value = '';
								font_add.disabled = true

								//remove font
								var removeFont = selected_list.querySelectorAll('.nxt-gfont-val .nxt-remove-gfont');
								if(removeFont){
									removeFont.forEach(function(item) {
										item.addEventListener('click', e => {
											e.preventDefault();
											var val = e.currentTarget.getAttribute('value')
											if(val && storeGFont[val]){
												storeGFont[val].classList.remove('hide-selected-val')
												delete storeGFont[val];
												e.currentTarget.parentElement.remove();
											}
										})
									});
								}
							}
						}
					})
				}
			}

			//Search font text field
			font_select.addEventListener('keyup', event => {
				var filter, i, txtValue;
				filter = font_select.value.toUpperCase();

				for (i = 0; i < gfont_list_li.length; i++) {
					txtValue = gfont_list_li[i].getAttribute("value");
					if (txtValue.toUpperCase().indexOf(filter) > -1) {
						gfont_list_li[i].style.display = "";
					} else {
						gfont_list_li[i].style.display = "none";
					}
				}
			});
		}

		//save local gfont
		var saveGFont = document.querySelector('.nxt-sync-save-gfont')
		if(saveGFont){
			saveGFont.addEventListener('click', e => {
				e.preventDefault();
				if(storeGFont){
					var Fonts = Object.keys(storeGFont);
					Fonts = JSON.stringify(Fonts)
					if(Fonts){
						saveGFont.innerHTML = 'Saving...';
						var request = new XMLHttpRequest();
						request.open('POST', nexter_admin_config.ajaxurl, true);
						request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
						request.onload = function () {
							if (request.status >= 200 && request.status < 400) {
								var response = JSON.parse(request.response);
								if(response.success == true){
									saveGFont.innerHTML = 'Saved';
									setTimeout(function(){
										saveGFont.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
									}, 2000);
								}
							}
						};
						request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&fonts=' + Fonts+'&extension_type=' + extension_type);
					}
				}
			})
		}
	}
	window.upload_font_session = { font_name : '', lists : {} };
	//Custom Upload Font
	function nxt_ext_custom_upload_font( extension_type, session_fonts = []){
		let global_custom_font_session = session_fonts;
		//let upload_font_session = { font_name : '', lists : {} };
		var font_select_list = {'100' : 'Thin 100', '100i' : 'Thin 100 Italic','200' : 'Extra Light 200','200i' : 'Extra Light 200 Italic','300' : 'Light 300','300i' : 'Light 300 Italic','400' : 'Regular 400','400i' : 'Regular 400 Italic','500' : 'Medium 500','500i' : 'Medium 500 Italic','600' : 'Semi-Bold 600','600i' : 'Semi-Bold 600 Italic','700' : 'Bold 700','700i' : 'Bold 700 Italic','800' : 'Extra-Bold 800','800i' : 'Extra-Bold 800 Italic','900' : 'Bolder 900','900i' : 'Bolder 900 Italic'}
		//edit simple font
		nxt_edit_simple_font(extension_type, global_custom_font_session, font_select_list)
		nxt_remove_simple_font(global_custom_font_session,extension_type)

		//simple button
		var simple_font = document.querySelector('.nxt-ext-simple-font-upload');
		if(simple_font){
			simple_font.addEventListener( 'click', e => {
				e.preventDefault();
				if(nexter_admin_config && !nexter_admin_config.is_pro && global_custom_font_session.length>=5){
					var wrong_ID_msg = '<div class="nxt-wrong-msg-notice"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="15.75" stroke="#FC4032" stroke-width="0.5"/><circle cx="16" cy="16" r="12" fill="#FC4032"/><rect x="15" y="9" width="2" height="10" rx="1" fill="white"/><rect x="15" y="20" width="2" height="2" rx="1" fill="white"/></svg><a href="https://nexterwp.com/pricing" target="_blank" style="color:#000;font-weight:bold;">Upgrade to Pro</a>&nbsp;for more than 5 Custom Fonts!</div>';
					var popSel = document.querySelector('.nxt-ext-pop-inner');
					if(popSel){
						popSel.insertAdjacentHTML('beforeend', wrong_ID_msg);
						var notice_data = popSel.querySelector('.nxt-wrong-msg-notice');
						if(notice_data){
							setTimeout(function(){
								notice_data.classList.add('active-notice');
							},50);
							setTimeout(function(){
								notice_data.remove();
							},6000);
						}
					}
					return false;
				}
				var selector = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]');
				if ( selector && !selector.classList.contains('active-simple-font')) {
					selector.classList.add('active-simple-font')
					var simple_font_wrap = selector.querySelector('.nxt-simple-font-wrapper')
					if(simple_font_wrap){
						var uid = Math.random().toString(16).slice(9)
						simple_font_wrap.setAttribute('data-uid',uid)
						window.upload_font_session = { font_name : '', lists : {} };
						var font_name = simple_font_wrap.querySelector('.nxt-custom-font-name')
						if( font_name ){
							font_name.value = '';
						}
						//change old variation
						change_old_variant();

						//add default variation
						add_default_simple_font_variation(document.querySelector('.nxt-simple-font-inner ul li.add-font-variation'), uid, '',font_select_list)
						//default variation action
						nxt_after_add_variant_action()
					}
				}
			})
		}

		//variable button
		var variable_font = document.querySelector('.nxt-ext-variable-font-upload');
		if(variable_font){
			variable_font.addEventListener( 'click', e => {
				e.preventDefault();
				if(nexter_admin_config && !nexter_admin_config.is_pro && global_custom_font_session.length>=5){
					var wrong_ID_msg = '<div class="nxt-wrong-msg-notice"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="15.75" stroke="#FC4032" stroke-width="0.5"/><circle cx="16" cy="16" r="12" fill="#FC4032"/><rect x="15" y="9" width="2" height="10" rx="1" fill="white"/><rect x="15" y="20" width="2" height="2" rx="1" fill="white"/></svg><a href="https://nexterwp.com/pricing" target="_blank" style="color:#000;font-weight:bold;">Upgrade to Pro</a>&nbsp;for more than 5 Custom Fonts!</div>';
					var popSel = document.querySelector('.nxt-ext-pop-inner');
					if(popSel){
						popSel.insertAdjacentHTML('beforeend', wrong_ID_msg);
						var notice_data = popSel.querySelector('.nxt-wrong-msg-notice');
						if(notice_data){
							setTimeout(function(){
								notice_data.classList.add('active-notice');
							},50);
							setTimeout(function(){
								notice_data.remove();
							},6000);
						}
					}
					return false;
				}
				var selector = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]');
				if ( selector && !selector.classList.contains('active-variable-font')) {
					selector.classList.add('active-variable-font')
					var variable_font_wrap = selector.querySelector('.nxt-variable-font-wrapper')
					if(variable_font_wrap){
						var uid = Math.random().toString(16).slice(9)
						variable_font_wrap.setAttribute('data-uid',uid)
						window.upload_font_session = { font_name : '', lists : {} };
						var font_name = variable_font_wrap.querySelector('.nxt-custom-font-name')
						if( font_name ){
							font_name.value = '';
						}
						//change old variation
						change_old_variant('variable');
						//add default variation
						add_default_variable_font(document.querySelector('.nxt-variable-font-inner ul'), uid )

						nxt_after_variable_choose_file_action();
					}
				}
			})
		}

		//back Simple/Variable font button
		var back_btn = document.querySelectorAll('.nxt-back-font')
		if(back_btn){
			back_btn.forEach( function(ele) {
				ele.addEventListener( 'click', e => {
					e.preventDefault();
					var selector = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]'),
						ele_class = ele.classList,
						sel_class = selector.classList;
					if ( ele_class.contains('nxt-back-variable-font') && selector && sel_class.contains('active-variable-font')) {
						sel_class.remove('active-variable-font')
					}
					if ( ele_class.contains('nxt-back-simple-font') && selector && sel_class.contains('active-simple-font')) {
						sel_class.remove('active-simple-font')
					}
				})
			})
		}

		//simple font add variation
		var add_variant = document.querySelector('.add-more-font-variant');
		if(add_variant){
			add_variant.addEventListener('click', event => {
				event.preventDefault();
				var uid = Math.random().toString(16).slice(9)
				//add default variation
				add_default_simple_font_variation(add_variant.parentElement, uid, '', font_select_list)
				//default variation action
				nxt_after_add_variant_action()
			})
		}

		//simple font Remove Variation
		var simple_font_inner = document.querySelector('.nxt-simple-font-inner')
		if(simple_font_inner){
			simple_font_inner.addEventListener('click', event => {
				if (event.target.classList.contains('nxt-remove-variant')) {
					event.preventDefault();
					var parentEle = event.target.parentElement,
						lists = window.upload_font_session.lists,
						uid = get_data_attribute(parentEle,'data-uid');
					if( lists[uid] ){
						delete lists[uid]
					}
					window.upload_font_session.lists = lists
					parentEle.remove()
				}
			})
		}

		//save Simple Custom font
		var save_upload_font = document.querySelectorAll('.nxt-upload-btn-actions .nxt-save-font');
		if(save_upload_font){
			save_upload_font.forEach( function(font_type) {
				font_type.addEventListener('click', event => {
					event.preventDefault();
					if(nexter_admin_config && !nexter_admin_config.is_pro && global_custom_font_session.length>=5){
						var wrong_ID_msg = '<div class="nxt-wrong-msg-notice"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="15.75" stroke="#FC4032" stroke-width="0.5"/><circle cx="16" cy="16" r="12" fill="#FC4032"/><rect x="15" y="9" width="2" height="10" rx="1" fill="white"/><rect x="15" y="20" width="2" height="2" rx="1" fill="white"/></svg><a href="https://nexterwp.com/pricing" target="_blank" style="color:#000;font-weight:bold;">Upgrade to Pro</a>&nbsp;for more than 5 Custom Fonts!</div>';
						var popSel = document.querySelector('.nxt-ext-pop-inner');
						if(popSel){
							popSel.insertAdjacentHTML('beforeend', wrong_ID_msg);
							var notice_data = popSel.querySelector('.nxt-wrong-msg-notice');
							if(notice_data){
								setTimeout(function(){
									notice_data.classList.add('active-notice');
								},50);
								setTimeout(function(){
									notice_data.remove();
								},6000);
							}
						}
						return false;
					}

					var simple_type = false, variable_type = false, font_wrap = '', uid ='';
					if( font_type.classList.contains('nxt-save-simple-font') ){
						simple_type = true;
						variable_type = false;
						font_wrap = document.querySelector('.nxt-simple-font-wrapper'),
							uid = get_data_attribute(font_wrap,'data-uid');
					}
					if( font_type.classList.contains('nxt-save-variable-font') ){
						simple_type = false;
						variable_type = true;
						font_wrap = document.querySelector('.nxt-variable-font-wrapper'),
							uid = get_data_attribute(font_wrap,'data-uid');
					}

					var font_name = font_wrap.querySelector('.nxt-custom-font-name')
					if( font_name ){
						window.upload_font_session.font_name = font_name.value
					}

					if(window.upload_font_session && window.upload_font_session.font_name!='' && uid){
						var pattern = /^[a-zA-Z0-9_\s]+$/;
						if(!pattern.test(font_name.value)){
							font_name.classList.add('font-name-error')
							nxt_validation_msg( "Font Name should not contain special characters." )
							return false;
						}
						font_name.classList.remove('font-name-error')
						if(window.upload_font_session.lists && Object.keys(window.upload_font_session.lists).length === 0){
							nxt_validation_msg( "Select Minimum 1 Fonts" )
							return false;
						}else if(window.upload_font_session.lists && Object.keys(window.upload_font_session.lists).length >= 1){
							for(const list in window.upload_font_session.lists){
								if(window.upload_font_session.lists[list].id==undefined || window.upload_font_session.lists[list].id==''){
									nxt_validation_msg( "Select Font Choose File" )
									return false;
								}
							}
						}


						if(simple_type){
							var fonts = { simplefont : window.upload_font_session, variablefont : ''}
						}else if(variable_type){
							var fonts = { simplefont : '', variablefont : window.upload_font_session}
						}

						var check_obj = global_custom_font_session.some(obj => obj.hasOwnProperty(uid))
						if(check_obj){
							global_custom_font_session.some(obj2 => {
								if(obj2!==null && obj2.hasOwnProperty(uid)){
									obj2[uid] =fonts
								}
							})
						}else if(!check_obj){
							let obj1 ={}
							obj1[uid] = fonts
							global_custom_font_session.push(obj1)
						}

						font_type.innerHTML = 'Saving...';
						var request = new XMLHttpRequest();
						request.open('POST', nexter_admin_config.ajaxurl, true);
						request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
						request.onload = function () {
							if (request.status >= 200 && request.status < 400) {
								var response = JSON.parse(request.response);
								if(response.success == true){
									font_type.innerHTML = 'Save Font';

									var view_lists = document.querySelector('.nxt-custom-fonts-list');
									if(view_lists){
										view_lists.innerHTML = ""
										var output = '';
										var selector = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]')
										if(simple_type){
											selector.classList.remove('active-simple-font')
										}else if(variable_type){
											selector.classList.remove('active-variable-font')
										}

										var empty_msg = document.querySelector('.nxt-custom-fonts-list > .empty-font-list');
										if(empty_msg){
											empty_msg.remove()
										}
										global_custom_font_session.forEach( fonts_data => {
											for (const key in fonts_data) {
												if(fonts_data[key].simplefont && fonts_data[key].simplefont.font_name){
													simple_type = true
													variable_type = false
												}else if(fonts_data[key].variablefont && fonts_data[key].variablefont.font_name){
													simple_type = false
													variable_type = true
												}
												output += '<li class="custom-font-list" data-type="'+((simple_type) ? 'simple' : 'variable')+'">';
												if(simple_type){
													var font_variant = '', simple_font_data = fonts_data[key].simplefont;
													if(simple_font_data && simple_font_data.lists){
														for(const list in simple_font_data.lists){
															font_variant += (simple_font_data.lists[list].variation) ? font_select_list[simple_font_data.lists[list].variation]+', ' : '';
														}
													}
												}else if(variable_type){
													var font_variant = '', simple_font_data = fonts_data[key].variablefont;
													if(simple_font_data && simple_font_data.lists){
														for(const list in simple_font_data.lists){
															font_variant += (simple_font_data.lists[list].id) ? list+', ' : '';
														}
													}
												}

												output += '<div class="font-list-data-wrap">';
												output += '<div class="custom-font-name-wrap">';
												output += '<div class="font-name-type-wrap">';
												if(simple_type){
													output += '<span class="display-font-type">S</span>';
												}else if(variable_type){
													output += '<span class="display-font-type">V</span>';
												}
												output += '<span class="custom-font-name">'+simple_font_data.font_name+'</span>';
												output += '</div>';
												output += '<div class="custom-font-action"><a href="#" class="font-edit" data-uid="'+key+'"><svg viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"><path d="M5.5 2H2C1.73478 2 1.48043 2.10536 1.29289 2.29289C1.10536 2.48043 1 2.73478 1 3V10C1 10.2652 1.10536 10.5196 1.29289 10.7071C1.48043 10.8946 1.73478 11 2 11H9C9.26522 11 9.51957 10.8946 9.70711 10.7071C9.89464 10.5196 10 10.2652 10 10V6.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M9.25 1.25011C9.44891 1.0512 9.7187 0.939453 10 0.939453C10.2813 0.939453 10.5511 1.0512 10.75 1.25011C10.9489 1.44903 11.0607 1.71881 11.0607 2.00011C11.0607 2.28142 10.9489 2.5512 10.75 2.75011L6 7.50011L4 8.00011L4.5 6.00011L9.25 1.25011Z" stroke-linecap="round" stroke-linejoin="round"/></svg></a><a href="#" class="font-remove" data-uid="'+key+'"><svg viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"><path d="M1.5 3H2.5H10.5"  stroke-linecap="round" stroke-linejoin="round"/><path d="M4 3V2C4 1.73478 4.10536 1.48043 4.29289 1.29289C4.48043 1.10536 4.73478 1 5 1H7C7.26522 1 7.51957 1.10536 7.70711 1.29289C7.89464 1.48043 8 1.73478 8 2V3M9.5 3V10C9.5 10.2652 9.39464 10.5196 9.20711 10.7071C9.01957 10.8946 8.76522 11 8.5 11H3.5C3.23478 11 2.98043 10.8946 2.79289 10.7071C2.60536 10.5196 2.5 10.2652 2.5 10V3H9.5Z" stroke-linecap="round" stroke-linejoin="round"/><path d="M5 5.5V8.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M7 5.5V8.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a></div>';
												output += '</div>';
												output += '<div class="selected-variation-list">';
												output += '<span class="custom-font-variant">Variation : '+font_variant+'</span>';
												output += '</div>';
												output += '</div>';
												output += '</li>';
											}
										})
										view_lists.insertAdjacentHTML('afterbegin', output);

										nxt_edit_simple_font(extension_type, global_custom_font_session, font_select_list)
										nxt_remove_simple_font(global_custom_font_session, extension_type)
									}
								}
							}
						};
						request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&fonts=' + JSON.stringify(global_custom_font_session) +'&extension_type=' + extension_type);
					}else{
						if(font_name){
							font_name.classList.add('font-name-error')
						}
					}
				})
			})
		}
	}

	function change_old_variant(type = 'simple'){
		var variant = document.querySelectorAll('.nxt-'+type+'-font-inner ul li[data-uid]');
		if(variant){
			variant.forEach( function(ele) {
				ele.remove()
			})
		}
	}

	function dynamic_select_options(select_list, val=''){
		var output ='<select class="nxt-font-variation-list">';
		output +='<option value="" '+(val=='' ? 'selected="selected"' : '')+'>Select Variation</option>';
		if(select_list){
			for(const list in select_list){
				output +='<option value="'+list+'" '+(val==list ? 'selected="selected"' : '')+'>'+select_list[list]+'</option>';
			}
		}
		output +='</select>';

		return output
	}

	function add_default_simple_font_variation(ele, uid, file_val = '', select_list, val='', file_name = '', is_edit = false){
		if(ele && uid){
			var choose_file = (file_name) ? '<span class="nxt-choose-file-name">'+file_name+'</span>' : '<span class="nxt-choose-file-name">Choose File...</span>';
			ele.insertAdjacentHTML( 'beforebegin', '<li data-uid="'+(is_edit ? uid : 'f'+uid)+'"><label class="simple-font-choose-label">'+choose_file+'<button class="simple-font-file" '+(file_val !='' ? 'value="'+file_val+'"' : '')+'>Choose File</button></label>'+dynamic_select_options(select_list, val)+'<div class="nxt-remove-variant">×</div></li>' );
		}
	}
	function nxt_after_add_variant_action(){
		var choose_upload = document.querySelectorAll('.simple-font-file:not(.load-choose)');
		if(choose_upload){
			choose_upload.forEach( function(ele) {
				nxt_simple_font_choose(ele)
			})
		}
		var change_variation = document.querySelectorAll('.nxt-font-variation-list:not(.load-select)');
		if(change_variation){
			change_variation.forEach( function(ele) {
				nxt_select_onchange_variation(ele)
			})
		}
	}


	function add_default_variable_font(ele, uid, reg_file_val = '', reg_file_name = '', ita_file_val = '', ita_file_name = '', is_edit = false){
		if(ele && uid){
			var reg_choose_file = (reg_file_name) ? '<span class="nxt-choose-file-name">'+reg_file_name+'</span>' : '<span class="nxt-choose-file-name">Choose Regular File...</span>';
			var italic_choose_file = (ita_file_name) ? '<span class="nxt-choose-file-name">'+ita_file_name+'</span>' : '<span class="nxt-choose-file-name">Choose Italic File...</span>';
			ele.insertAdjacentHTML( 'afterbegin', '<li data-uid="'+(is_edit ? uid : 'f'+uid)+'"><div class="variable-normal-choose-file" data-uid="regular"><label>Regular</label><label class="variable-font-choose-label">'+reg_choose_file+'<button class="variable-regular-file" '+(reg_file_val !='' ? 'value="'+reg_file_val+'"' : '')+'>Choose File</button></label></div><div class="variable-italic-choose-file" data-uid="italic"><label>Italic</label><label class="variable-font-choose-label">'+italic_choose_file+'<button class="variable-italic-file" '+(ita_file_val !='' ? 'value="'+ita_file_val+'"' : '')+'>Choose File</button></label></div></li>' );
		}
	}

	function nxt_after_variable_choose_file_action(){
		var choose_regular = document.querySelectorAll('.variable-regular-file:not(.load-choose)');
		if(choose_regular){
			choose_regular.forEach( function(ele) {
				nxt_simple_font_choose(ele, 'variable')
			})
		}
		var choose_italic = document.querySelectorAll('.variable-italic-file:not(.load-choose)');
		if(choose_italic){
			choose_italic.forEach( function(ele) {
				nxt_simple_font_choose(ele, 'variable')
			})
		}
	}


	function nxt_remove_simple_font(global_custom_font_session, extension_type){
		var remove_font = document.querySelectorAll('.custom-font-action .font-remove');
		if(remove_font){
			remove_font.forEach( function(ele) {
				ele.addEventListener( 'click', e => {
					e.preventDefault();
					if(confirm("Are You Sure Remove Font?")){
						var uid = e.currentTarget.getAttribute('data-uid')
						if(uid && global_custom_font_session){
							for(const item_key in global_custom_font_session){
								for(const key in global_custom_font_session[item_key]){
									if(key===uid){
										global_custom_font_session.splice(item_key, 1);
										e.currentTarget.closest('.custom-font-list').remove()
										if(global_custom_font_session.length == 0){
											var custom_font_list = document.querySelector('.nxt-custom-fonts-list');
											if(custom_font_list){
												custom_font_list.insertAdjacentHTML( 'afterbegin','<li class="empty-font-list"><div class="empty-font-text">So Sorry!! We are not able to find what you are looking for please add the font</div></li>' );
											}
										}
										var request = new XMLHttpRequest();
										request.open('POST', nexter_admin_config.ajaxurl, true);
										request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
										request.onload = function () {
											if (request.status >= 200 && request.status < 400) {
												var response = JSON.parse(request.response);
												if(response.success == true){
												}
											}
										};
										request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&fonts=' + JSON.stringify(global_custom_font_session) +'&extension_type=' + extension_type);
									}
								}
							}
						}
					}
				})
			})
		}
	}

	function nxt_edit_simple_font(extension_type, global_custom_font_session, font_select_list){
		var edit_font = document.querySelectorAll('.custom-font-action .font-edit');
		if(edit_font){
			edit_font.forEach( function(ele) {
				ele.addEventListener( 'click', e => {
					e.preventDefault();
					var uid = e.currentTarget.getAttribute('data-uid')
					if(uid && global_custom_font_session){
						global_custom_font_session.some(obj => {
							if(obj.hasOwnProperty(uid)){
								var selector = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]'),
									type_selector = e.currentTarget.closest('.custom-font-list'),
									font_type = type_selector.getAttribute('data-type'),
									font_wrap = '';
								if(font_type == 'simple'){
									selector.classList.add('active-simple-font')
									font_wrap = selector.querySelector('.nxt-simple-font-wrapper')

								}else if(font_type == 'variable'){
									selector.classList.add('active-variable-font')
									font_wrap = selector.querySelector('.nxt-variable-font-wrapper')
								}

								font_wrap.setAttribute('data-uid',uid)

								var font_name = font_wrap.querySelector('.nxt-custom-font-name')
								var upload_font_session = '';
								if( font_type == 'simple' && font_name && obj[uid].simplefont && obj[uid].simplefont.font_name ){
									font_name.value = obj[uid].simplefont.font_name
									upload_font_session = obj[uid].simplefont
								}else if(font_type == 'variable' && font_name && obj[uid].variablefont && obj[uid].variablefont.font_name){
									font_name.value = obj[uid].variablefont.font_name
									upload_font_session = obj[uid].variablefont
								}

								window.upload_font_session = upload_font_session
								if(font_type == 'simple'){
									//change old variation
									change_old_variant();
									//edit variation list
									for(const edit_varient in upload_font_session.lists){
										add_default_simple_font_variation(document.querySelector('.nxt-simple-font-inner ul li.add-font-variation'), edit_varient, upload_font_session.lists[edit_varient].id, font_select_list, upload_font_session.lists[edit_varient].variation, upload_font_session.lists[edit_varient].filename, true)
									}
									//default variation action
									nxt_after_add_variant_action()
								}else if(font_type == 'variable'){
									//change old variation
									change_old_variant('variable');
									var reg_file_val = (upload_font_session.lists.regular && upload_font_session.lists.regular.id) ? upload_font_session.lists.regular.id : '',
										reg_file_name = (upload_font_session.lists.regular && upload_font_session.lists.regular.filename) ? upload_font_session.lists.regular.filename : '',
										ita_file_val = (upload_font_session.lists.italic && upload_font_session.lists.italic.id) ? upload_font_session.lists.italic.id : '',
										ita_file_name = (upload_font_session.lists.italic && upload_font_session.lists.italic.filename) ? upload_font_session.lists.italic.filename : '';
									add_default_variable_font(document.querySelector('.nxt-variable-font-inner ul'), uid, reg_file_val, reg_file_name, ita_file_val, ita_file_name, true)

									//default variation action
									nxt_after_variable_choose_file_action();
								}

							}
						})
					}
				})
			})
		}
	}

	function get_data_attribute(ele, data = null){
		if(ele && data){
			return ele.getAttribute(data);
		}
		return '';
	}

	function nxt_select_onchange_variation(ele){
		if(!ele.classList.contains('load-select')){
			ele.classList.add('load-select');
			ele.addEventListener('change', event => {
				var parentEle = event.target.parentElement,
					lists = window.upload_font_session.lists,
					uid = get_data_attribute(parentEle,'data-uid');
				if( !lists[uid] ){
					lists[uid] = Object.create( {} );
					lists[uid].variation = event.currentTarget.value;
				}else{
					lists[uid].variation = event.currentTarget.value;
				}
				window.upload_font_session.lists = lists
			})
		}
	}

	function nxt_simple_font_choose(ele, font_type = 'simple'){
		if(!ele.classList.contains('load-choose')){
			ele.classList.add('load-choose');
			ele.addEventListener('click', event => {
				event.preventDefault();
				var button = event.currentTarget,
					custom_uploader = wp.media({
						button: {
							text: 'Select'
						},
						library: {
							type: ['application/font-woff', 'application/x-font-woff', 'application/font-ttf', 'application/x-font-ttf'],
						},
						multiple: false
					}).on('select', function() {
						var attachment = custom_uploader.state().get('selection').first().toJSON();
						if(attachment && (attachment.type=='font' || attachment.type=='application')){
							button.value = attachment.id;
							button.innerHTML = 'Change';
							if(!button.previousElementSibling){
								button.insertAdjacentHTML('beforebegin', '<span class="nxt-choose-file-name">'+attachment.filename+'</span>');
							}else if(!button.previousElementSibling.classList.contains('nxt-choose-file-name')){
								button.insertAdjacentHTML('beforebegin', '<span class="nxt-choose-file-name">'+attachment.filename+'</span>');
							}else{
								button.previousElementSibling.innerHTML = attachment.filename
							}
							if(window.upload_font_session.lists){
								let lists = window.upload_font_session.lists,
									parentEle = (font_type=='variable') ? ele.parentElement.parentElement : ele.parentElement.parentElement,
									uid = get_data_attribute(parentEle,'data-uid');;
								if( !lists[uid] ){
									lists[uid] = Object.create( {} );
									lists[uid].id = attachment.id;
									lists[uid].filename = attachment.filename
								}else{
									lists[uid].id = attachment.id;
									lists[uid].filename = attachment.filename
								}
								window.upload_font_session.lists = lists
							}
						}else{
							if(button.previousElementSibling.classList.contains('nxt-choose-file-name')){
								button.previousElementSibling.remove();
								button.innerHTML = 'Choose';
							}
						}
					}).open();
			})
		}
	}
	/*Local Google Font*/

	/* WP Replace URL Start */
	function nxtWPReplaceUrl(extension_type){
		if(globalNxtCss && globalNxtCss.searchLimit){
			delete globalNxtCss['searchLimit']
		}
		let nxtWPLoginPop = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]');

		let mainW = nxtWPLoginPop.querySelector('.nxt-replace-url-wrap');
		if(mainW){
			let oldurl = mainW.getElementsByClassName('nxt-old-url'),
				newurl = mainW.getElementsByClassName('nxt-new-url'),
				caseS = mainW.querySelector('#case_sensitive_toggle'),
				guid = mainW.querySelector('#guid_toggle'),
				serLim = mainW.querySelector('#search-limit'),

				getTable = mainW.querySelector('.nxt-replace-url-table'),
				btnA = mainW.querySelector('.nxt-replace-url-btn');

			btnA.addEventListener('click', function(e){
				e.preventDefault();
				nxtWPLoginPop.classList.add('replace-loading-active');
				if(oldurl[0].value && newurl[0].value){
					var fromVal = oldurl[0].value,
						toVal = newurl[0].value,
						aNonce = nexter_admin_config.ajax_nonce;
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');

					let caseSen = (caseS.checked) ? "yes" : "no",
						guidSel = (guid.checked) ? "yes" : "no",
						searLimit = (serLim && serLim && serLim.value) ? Number(serLim.value) : 20000;

					let selectedTables = Array.from(getTable.selectedOptions).map(option => option.value);

					if(selectedTables){
						selectedTables = JSON.stringify(selectedTables);
					}

					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							let noteP = mainW.querySelector('.nxt-replace-url-notice');
							let cBtn = mainW.querySelector('.nxt-replace-url-confirm-btn');
							if(response.success == true){
								nxtWPLoginPop.classList.remove('replace-loading-active');
								if(response.data.result!=0){
									noteP.classList.add('nxt-result-visible');
									//noteP.innerHTML = response.data.result+" Result(s) Found. Click Confirm Button to Replace.";

									noteP.innerHTML = `<span>${response.data.result} Result(s) Found.</span><span>Click Confirm Button to Replace.</span>`
									if(cBtn){
										cBtn.classList.add('visible');
									}

									replaceConfirmUrl(cBtn,aNonce,fromVal,toVal,caseSen,guidSel,noteP,selectedTables,searLimit,nxtWPLoginPop)
								}else{
									if(noteP.classList.contains('nxt-result-visible')){
										noteP.classList.remove('nxt-result-visible');
									}
									if(cBtn && cBtn.classList.contains('visible')){
										cBtn.classList.remove('visible');
									}
									noteP.innerHTML = `<span>${response.data.result} Result(s) Found.</span>`;
									noteP.classList.add('nxt-note-visible');
									setTimeout(function(){
										noteP.classList.remove('nxt-note-visible');
										noteP.innerHTML = "";
									},5000);
								}
							}else if(response.success == false){
								nxtWPLoginPop.classList.remove('replace-loading-active');
								if(response.data.message){
									noteP.innerHTML = `<span>${response.data.message}</span>`;
									noteP.classList.add('nxt-note-visible');
									setTimeout(function(){
										if(noteP.classList.contains('nxt-result-visible')){
											noteP.classList.remove('nxt-result-visible');
										}
										if(cBtn && cBtn.classList.contains('visible')){
											cBtn.classList.remove('visible');
										}
										noteP.classList.remove('nxt-note-visible');
										noteP.innerHTML = "";
									},5000);
								}
							}
						}
					};
					request.send('action=nxt_replace_url&nexter_nonce='+aNonce+'&from='+fromVal+'&to='+toVal+'&case='+caseSen+'&guid='+guidSel+'&tables='+selectedTables+'&limit='+searLimit);
				}else{
					var wrong_ID_msg = '<div class="nxt-wrong-msg-notice"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="15.75" stroke="#FC4032" stroke-width="0.5"/><circle cx="16" cy="16" r="12" fill="#FC4032"/><rect x="15" y="9" width="2" height="10" rx="1" fill="white"/><rect x="15" y="20" width="2" height="2" rx="1" fill="white"/></svg> Please Enter Old And New Url</div>';
					var popSel = document.querySelector('.nxt-ext-pop-inner');
					if(popSel){
						popSel.insertAdjacentHTML('beforeend', wrong_ID_msg);
						var notice_data = popSel.querySelector('.nxt-wrong-msg-notice');
						if(notice_data){
							setTimeout(function(){
								notice_data.classList.add('active-notice');
							},50);
							setTimeout(function(){
								nxtWPLoginPop.classList.remove('replace-loading-active');
								notice_data.remove();
							},3000);
						}
					}
				}

			});
		}
	}


	/* Right Click Disable Function Start */
	function nxtWPRightClickDisable(extension_type){
		let nxtWPRightClick = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]');
		let wpDisableSet = {};

		jQuery(document).ready(function($){
			$('input.nxt-color-pick-field').wpColorPicker();
		});


		let nxtWpDWrap = nxtWPRightClick.querySelectorAll('.nxt-wp-disable-wrap');
		nxtWpDWrap.forEach( function(nW) {
			if(nW.querySelector('.nxt-dis-input')){
				let inpBtn = nW.querySelector('.nxt-dis-input');

				if(inpBtn && inpBtn.checked){
					inpBtn.closest('.nxt-wp-disable-wrap').classList.add("active");
				}

				if(inpBtn){
					inpBtn.addEventListener("click",function(e){
						let dwrap = e.currentTarget.closest('.nxt-wp-disable-wrap');
						if(e.currentTarget.checked){
							dwrap.classList.add("active");
						}else{
							dwrap.classList.remove("active");
						}
					});
				}
			}
		});

		let nxtWPBtn = nxtWPRightClick.querySelector('.nxt-wp-disable-set-btn');
		nxtWPBtn.addEventListener('click', function(){

			let allOp = ['disable-r-click','disable-drag','disable-dev-key','disable-ser-key','disable-ctrlc-key','disable-ctrlv-key','disable-ctrla-key','disable-ctrlu-key','disable-ctrlp-key','disable-ctrlh-key','disable-ctrll-key','disable-ctrlk-key','disable-ctrlo-key','disable-ctrle-key','disable-altd-key','disable-f3-key','disable-f6-key','disable-f12-key','disable-text-selection'];

			let allSty = ['msg-bg-color','msg-title-color','msg-desc-color','msg-icon-color','msg-border-color','msg-icon-bg-progress'];

			let accU =[], accUser = nxtWPRightClick.querySelectorAll('input[name=nxt-e-access]');
			accUser.forEach(function(acc){
				if(acc.checked){
					accU.push(acc.value);
				}
			});
			if(accU){
				wpDisableSet = Object.assign({"disable_access" : accU});
			}
			var arraDop = [];
			allOp.forEach(function(all){
				let allTg = nxtWPRightClick.querySelector('.nxt-'+all),
					inCheck = allTg.querySelector('input[type="checkbox"]').checked,
					inText = (allTg.querySelector('input[type="text"]') && allTg.querySelector('input[type="text"]').value) ? allTg.querySelector('input[type="text"]').value : '',
					msgOp = all+"-msg";

				arraDop[all] = inCheck;
				arraDop[msgOp] = inText;
			});

			arraDop = Object.assign({}, arraDop);
			wpDisableSet = Object.assign( arraDop ,wpDisableSet);

			var arraDsty = [];
			allSty.forEach(function(all){
				let allTg = nxtWPRightClick.querySelector('.nxt-disable-'+all),
					inText = allTg.querySelector('input[type="text"]').value;

				arraDsty[all] = inText;
			});

			arraDsty = Object.assign({}, arraDsty);
			wpDisableSet = Object.assign( arraDsty ,wpDisableSet);

			let alertPos = nxtWPRightClick.querySelector('.disable-alert-pos');
			if(alertPos && alertPos.value){
				wpDisableSet = Object.assign( {'alert-pos' : alertPos.value } ,wpDisableSet);
			}else{
				wpDisableSet = Object.assign( {'alert-pos' : 'top_right' } ,wpDisableSet);
			}
			let alertDisTime = nxtWPRightClick.querySelector('.nxt-alert-disappear');
			if(alertDisTime && alertDisTime.value){
				wpDisableSet = Object.assign( {'alert-dis-time' : Number(alertDisTime.value) } ,wpDisableSet);
			}else{
				wpDisableSet = Object.assign( {'alert-dis-time' : '' } ,wpDisableSet);
			}

			wpDisableSet = Object.assign( globalNxtCss ,wpDisableSet);

			var wpDisableSetN = JSON.stringify(wpDisableSet);

			var request = new XMLHttpRequest();
			request.open('POST', nexter_admin_config.ajaxurl, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
			nxtWPBtn.innerHTML = 'Saving...';
			request.onload = function () {
				if (request.status >= 200 && request.status < 400) {
					var response = JSON.parse(request.response);
					if(response.success == true){
						nxtWPBtn.innerHTML = 'Saved';
						setTimeout(function(){
							nxtWPBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
						},2000);
					}
				}
			};
			request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&wpDisableSet=' + wpDisableSetN+'&extension_type=' + extension_type);


		});
	}
	/* Right Click Disable Function End */

	/* Replace Confirm URL Function */
	function replaceConfirmUrl(btn,nonce,fromV,toV,caseS,guidSel,ntP,table,limit,nxtWPLoginPop){
		btn.addEventListener("click", function(){
			nxtWPLoginPop.classList.add('replace-loading-active');
			var request = new XMLHttpRequest();
			request.open('POST', nexter_admin_config.ajaxurl, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
			request.onload = function () {
				if (request.status >= 200 && request.status < 400) {
					var response = JSON.parse(request.response);
					if(response.success == true){
						nxtWPLoginPop.classList.remove('replace-loading-active');
						ntP.classList.add('nxt-confirm-res');
						ntP.innerHTML = `<span>${response.data.result} Record(s)</span><span>Replace Successfully.</span>`;
						btn.classList.remove('visible');
						setTimeout(function(){
							ntP.classList.remove('nxt-result-visible');
							ntP.classList.remove('nxt-confirm-res');
						},4000);
					}else if(response.success == false){

					}
				}
			}
			request.send('action=nxt_replace_confirm_url&nexter_nonce='+nonce+'&from='+fromV+'&to='+toV+'&case='+caseS+'&guid='+guidSel+'&tables='+table+'&limit='+limit);

		});
	}

	/* WP Replace URL End */

	/* Hide Admin Settings Start */
	function nxtDisAdminPop(extension_type){
		var save_btn = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"] .nxt-save-disable-admin');
		if(save_btn){
			save_btn.addEventListener('click', event => {
				event.preventDefault();
				let adminHideL = [];
				let disable_option = document.getElementsByName('nxt-disable-admin[]');
				if(disable_option){
					for (var i=0, n=disable_option.length;i<n;i++) {
						if (disable_option[i].checked) {
							adminHideL.push(disable_option[i].value);
						}
					}

					let adminHideLS = JSON.stringify(adminHideL);
					save_btn.innerHTML = 'Saving...';
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true){
								save_btn.innerHTML = 'Saved';
								setTimeout(function(){
									save_btn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
								}, 2000);
							}
						}
					};
					request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&adminHide=' + adminHideLS+'&extension_type=' + extension_type);
				}
			})
		}

	}
	/* Hide Admin Settings End */
	/* Duplicate Post Function Start */
	function nxt_ext_duplicate_post(extension_type){
		let nxtWPDupPost = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]');
		let wpDupPostSet = {};

		let nxtWPBtn = nxtWPDupPost.querySelector('.nxt-duplicate-post-set');

		nxtWPBtn.addEventListener('click', function(){
			let allOp = ['nxt-duppost-access','nxt-duppost-author','nxt-duppost-date'];
			var arrDpValue = [];
			allOp.forEach(function(all){
				let allTg = nxtWPDupPost.querySelectorAll('.'+all+' input');
				allTg.forEach(function(acc){
					if(acc.checked){
						arrDpValue[all] = acc.value;
					}
				});
			});
			arrDpValue = Object.assign({}, arrDpValue);

			let dPostStatus = nxtWPDupPost.querySelector('.duplicate-post-status');
			if(dPostStatus && dPostStatus.value){
				wpDupPostSet = Object.assign( {'nxt-duppost-status' : dPostStatus.value } ,wpDupPostSet);
			}else{
				wpDupPostSet = Object.assign( {'nxt-duppost-status' : 'same' } ,wpDupPostSet);
			}

			let allInp = ['nxt-duplicate-postfix','nxt-duplicate-slug'];
			allInp.forEach(function(all){
				let allTg = nxtWPDupPost.querySelectorAll('.'+all);
				if(allTg){
					arrDpValue[all] = allTg[0].value;
				}

			});
			arrDpValue = Object.assign(arrDpValue, arrDpValue);
			wpDupPostSet = Object.assign( arrDpValue ,wpDupPostSet);

			var wpDupPostSetN = JSON.stringify(wpDupPostSet);

			var request = new XMLHttpRequest();
			request.open('POST', nexter_admin_config.ajaxurl, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
			nxtWPBtn.innerHTML = 'Saving...';
			request.onload = function () {
				if (request.status >= 200 && request.status < 400) {
					var response = JSON.parse(request.response);
					if(response.success == true){
						nxtWPBtn.innerHTML = 'Saved';
						setTimeout(function(){
							nxtWPBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
						},2000);
					}
				}
			};
			request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&wpDupPostSet=' + wpDupPostSetN+'&extension_type=' + extension_type);

		});

	}
	/* Duplicate Post Function End */
	/* Adobe Font */
	function nxt_ext_adobe_font(extension_type){
		var save_btn = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"] .nxt-sync-save-adobe-font');
		if(save_btn){
			save_btn.addEventListener('click', event => {
				event.preventDefault();
				let project_id = document.getElementsByName('nxt-adobe-project-id');
				if(project_id && project_id[0] && project_id[0].value){
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					save_btn.innerHTML = 'Checking...';
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							var adobe_section = document.querySelector('.nxt-adobe-font-section');
							if(response.success == true){
								save_btn.innerHTML = 'Saved';
								if(response.data && response.data.settings && response.data.settings.render){
									if(adobe_section){
										var adobe_list = adobe_section.querySelector('.nxt-adobe-font-list');
										if(adobe_list){
											adobe_list.remove();
										}
										adobe_section.insertAdjacentHTML('beforeend', response.data.settings.render);
									}
								}
							}else{
								if(adobe_section){
									var wrong_ID_msg = '<div class="nxt-wrong-msg-notice"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="15.75" stroke="#FC4032" stroke-width="0.5"/><circle cx="16" cy="16" r="12" fill="#FC4032"/><rect x="15" y="9" width="2" height="10" rx="1" fill="white"/><rect x="15" y="20" width="2" height="2" rx="1" fill="white"/></svg>Sorry!!! Please check your Project ID in adobe kit</div>';
									adobe_section.insertAdjacentHTML('beforeend', wrong_ID_msg);
									var notice_data = adobe_section.querySelector('.nxt-wrong-msg-notice');
									if(notice_data){
										setTimeout(function(){
											notice_data.classList.add('active-notice');
										},50);
										setTimeout(function(){
											notice_data.remove();
										},3000);
									}
									var adobe_list = adobe_section.querySelector('.nxt-adobe-font-list');
									if(adobe_list){
										adobe_list.remove();
									}
								}
							}
							setTimeout(function(){
								save_btn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Get Font';
							},800);
						}
					};
					request.send('action=nexter_ext_save_adobe_font_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&project_id=' + project_id[0].value+'&extension_type=' + extension_type);
				}
			})
		}
	}
	/* Adobe Font */

	function nxt_ext_regenerate_thumbnails(extension_type){
		//todo recheck the button inner html related code
		var regenerate_thumbnails = document.getElementById('nxt-regenerate-images-sizes');
		if(regenerate_thumbnails) {
			regenerate_thumbnails.addEventListener('click',event=>{
				event.preventDefault();
				regenerate_thumbnails.innerHTML = 'Regenerating...';
				let image_sizes_to_be_generated = [] ;
				let regenerate_this_size = document.getElementsByName('regenerate_this_size');
				if(regenerate_this_size && regenerate_this_size[0] && regenerate_this_size[0].value){
					for(var i=0, n=regenerate_this_size.length;i<n ;i++){
						if(regenerate_this_size[i].checked){
							image_sizes_to_be_generated.push(regenerate_this_size[i].value);
						}
					}
					if (image_sizes_to_be_generated.length !== 0){
						var regenerated_images_count = 0;
						var regenerated_images_data = {} ;
						var request = new XMLHttpRequest();
						request.open('POST', nexter_admin_config.ajaxurl, true);
						request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
						request.onload = function () {
							if (request.status >= 200 && request.status < 400) {
								var response = JSON.parse(request.response);
								var attachment_ids = response.data.content.attachment_ids;
								if( attachment_ids.length != 0 ){
									regenerate_thumbnails.innerHTML = 'Waiting for server to regenerate ' + attachment_ids.length + ' 	Images' ;
									setTimeout(function(){
										if(attachment_ids.length < regenerated_images_count){
											regenerate_thumbnails.innerHTML = 'Hold On ' + attachment_ids.length + 'already regenerated'
										}
									}, 1000);
									attachment_ids.forEach(function (attachment_id){
										var request = new XMLHttpRequest();
										request.open('POST', nexter_admin_config.ajaxurl, true);
										request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
										request.onload = function () {
											if(request.status>=200 && request.status <400){
												setTimeout(function(){
													regenerate_thumbnails.innerHTML = 'It will take few seconds to regenerate';
												}, 3000);
												regenerated_images_count++;
												if((attachment_ids.length / 2 ) < regenerated_images_count ) {
													regenerate_thumbnails.innerHTML = 'About to complete';
												}
											}
										}
										request.send('action=nexter_regenerate_image_thumbnail_by_id&thumbnail_id='+attachment_id+'&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&image_sizes_to_be_generated=' + image_sizes_to_be_generated)
									})
								}
								if(attachment_ids.length !== regenerated_images_count) {

								}
							}
						}
						request.send('action=nexter_regenerate_image_thumbnails&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&image_sizes_to_be_generated=' + image_sizes_to_be_generated);
					}
				}
			})
		}
	}

	function nxt_ext_custom_image_sizes(extension_type){
		var create_btn = document.querySelector('.nxt-save-custom-images-sizes');
		if(create_btn) {
			create_btn.addEventListener('click',event=> {
				event.preventDefault();
				let image_size_name = document.getElementById('image_size_name').value;
				let image_size_width = document.getElementById('image_size_width').value;
				let image_size_height = document.getElementById('image_size_height').value;
				let image_size_crop = document.getElementById('image_size_crop').value;
				var new_image_size ={name:image_size_name,width:image_size_width,height:image_size_height,crop:image_size_crop};
				if(image_size_name !== "" && image_size_width !== "" && image_size_height !== "" && image_size_width != 0 && image_size_height != 0 ){
					new_image_size = JSON.stringify(new_image_size);
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true){
								create_btn.innerHTML = 'Saved';
								var custom_image_tbody = document.getElementById('custom-image-size-tbody');
								var custom_image_table = document.getElementById('custom-image-size-table');
								var isnil = document.getElementById('no-custom-image');
								var new_row = custom_image_table.insertRow(1);
								var cell_image_name = new_row.insertCell(0);
								var cell_image_width = new_row.insertCell(1);
								var cell_image_height = new_row.insertCell(2);
								var cell_image_crop = new_row.insertCell(3);
								var cell_delete = new_row.insertCell(4);
								cell_image_name.innerHTML = response.data.content.name;
								cell_image_width.innerHTML = response.data.content.width;
								cell_image_height.innerHTML = response.data.content.height;
								cell_image_crop.innerHTML = response.data.content.crop;
								var del_img = document.createElement('img');
								del_img.src = nexter_admin_config.nexter_path + 'images/panel-icon/remove-custom-image.svg';
								del_img.className = 'delete-custom-image-icon';
								cell_delete.className='delete-custom-image-size';
								cell_delete.appendChild(del_img);
								cell_delete.setAttribute('imagesizename',image_size_name);
								cell_delete.appendChild(document.createTextNode('Delete'));
								new_row.classList.add('custom-image-size');
								custom_img_size_remove(cell_delete);
								if(isnil != null){
									custom_image_tbody.removeChild(isnil);
								}
								document.getElementById('image_size_name').value = '';
								document.getElementById('image_size_width').value = '';
								document.getElementById('image_size_height').value = '';
								document.getElementById('image_size_crop').value = 0;
								setTimeout(function(){
									create_btn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
								}, 2000);
							}else{
								nxt_validation_msg( 'Duplicate Image Name' )
							}
						}
					};
					request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&new_custom_size=' + new_image_size+'&extension_type=' + extension_type);
				}else{
					let message = '';
					if( image_size_name == '' && image_size_width == '' && image_size_height == ''){
						message = 'Please Enter All Fields';
					}else if( image_size_name == "" ){
						message = 'Please Enter Image Size';
					}else if( image_size_width == "" ){
						message = 'Please Enter Image Width';
					}else if( image_size_height == "" ){
						message = 'Please Enter Image Height';
					}else if( image_size_width == 0 || image_size_height == 0 ){
						message = 'Please Enter Minimum 1 Width and Height';
					}
					if(message){
						nxt_validation_msg( message )
					}
				}
			})
		}


		let imageSizeAccordion = document.getElementById('custom-image-size-accordion');
		if(imageSizeAccordion){
			let accordionController = document.getElementById('accordion-controller');
			accordionController.addEventListener('click', event => {
				let accordionState = imageSizeAccordion.getAttribute('accordion-state');
				if(accordionState == 'expanded'){
					accordionController.style.transform = 'rotate(180deg)';
					imageSizeAccordion.setAttribute('accordion-state','collapsed');
				}
				if(accordionState == 'collapsed'){
					accordionController.style.transform = 'none';
					imageSizeAccordion.setAttribute('accordion-state','expanded');
				}
			})

		}

		function custom_img_size_remove(deletebtn){
			deletebtn.addEventListener('click', event => {
				event.preventDefault();
				deletebtn.insertAdjacentHTML('beforeend', '<div class="spinner"></div>');
				var image_size_name = deletebtn.getAttribute('imagesizename');
				var request = new XMLHttpRequest();
				request.open('POST', nexter_admin_config.ajaxurl, true);
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
				request.onload = function () {
					if (request.status >= 200 && request.status < 400) {
						var response = JSON.parse(request.response);
						if(response.success == true){
							deletebtn.parentNode.remove();
						}
					}
				}
				request.send('action=nexter_ext_delete_image_size&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&image_size_name=' + image_size_name);
			});
		}
		document.querySelectorAll('.delete-custom-image-size').forEach(deletebtn => {
			custom_img_size_remove(deletebtn);
		});
	}

	function nxt_validation_msg(msg = ''){
		var wrong_ID_msg = '<div class="nxt-wrong-msg-notice"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="15.75" stroke="#FC4032" stroke-width="0.5"/><circle cx="16" cy="16" r="12" fill="#FC4032"/><rect x="15" y="9" width="2" height="10" rx="1" fill="white"/><rect x="15" y="20" width="2" height="2" rx="1" fill="white"/></svg> '+msg+'</div>';
		var popSel = document.querySelector('.nxt-ext-pop-inner');
		if(popSel){
			popSel.insertAdjacentHTML('beforeend', wrong_ID_msg);
			var notice_data = popSel.querySelector('.nxt-wrong-msg-notice');
			if(notice_data){
				setTimeout(function(){
					notice_data.classList.add('active-notice');
				},50);
				setTimeout(function(){
					notice_data.remove();
				},2500);
			}
		}
	}
	/*
    Image Sizes
    */
	function nxt_ext_images_sizes(extension_type){
		var save_btn_is = document.querySelector('.nxt-save-images-sizes');
		if(save_btn_is){
			save_btn_is.addEventListener('click',event => {
				event.preventDefault();
				let enable_is = [];
				let disable_option = document.getElementsByName('images_sizes[]');
				if(disable_option){
					for(var i=0, n=disable_option.length;i<n ;i++){
						if(disable_option[i].checked){
							enable_is.push(disable_option[i].value);
						}
					}
					save_btn_is.innerHTML='Saving...';
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true){
								save_btn_is.innerHTML = 'Saved';

							}
							else{
								save_btn_is.innerHTML = 'Failed';
							}

							setTimeout(function(){
								save_btn_is.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
							}, 2000);
						}
					};
					request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&image_size=' + enable_is+'&extension_type=' + extension_type);
				}
			})
		}
	}
	/*Disable Elementor Icons*/
	function nxt_ext_disable_elementor_icons(extension_type){
		var save_btn_is = document.querySelector('.nxt-save-elementor-icons');
		if(save_btn_is){
			save_btn_is.addEventListener('click',event => {
				event.preventDefault();
				let enable_is = [];
				let disable_option = document.getElementsByName('nxt-disable-elementor-icon[]');
				if(disable_option){
					for(var i=0, n=disable_option.length;i<n ;i++){
						if(disable_option[i].checked){
							enable_is.push(disable_option[i].value);
						}
					}
					save_btn_is.innerHTML='Saving...';
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true){
								save_btn_is.innerHTML = 'Saved';
							}
							else{
								save_btn_is.innerHTML = 'Failed';
							}

							setTimeout(function(){
								save_btn_is.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
							}, 2000);
						}
					};
					request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&ele_icons=' + enable_is+'&extension_type=' + extension_type);
				}
			})
		}
	}

	/* Advance Performance */
	function nxtadvanceperfo(extension_type){
		var save_btn = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"] .nxt-save-advance-performance');
		if(save_btn){
			save_btn.addEventListener('click', event => {
				event.preventDefault();
				let advperfo = [];
				let disable_option = document.getElementsByName('nxt-advance-performance[]');
				if(disable_option){
					for (var i=0, n=disable_option.length;i<n;i++) {
						if (disable_option[i].checked) {
							advperfo.push(disable_option[i].value);
						}
					}

					let performance = JSON.stringify(advperfo);
					save_btn.innerHTML = 'Saving...';
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true){
								save_btn.innerHTML = 'Saved';
								setTimeout(function(){
									save_btn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
								}, 2000);
							}
						}
					};
					request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&advanceperfo=' + performance+'&extension_type=' + extension_type);
				}
			})
		}

	}
	/* Advance Performance */
	/* Google Recaptcha */
	function nxt_ext_recaptch(extension_type){
		var recapsave = document.querySelector('.nxt-recaptcha-save'),
			recapWrap = document.querySelector('.nxt-recaptch-wrap'),
			nxtrecap = recapWrap.querySelector('#nxtrecapver'),
			testDiv = '';

		if(nxtrecap){
			nxtrecap.addEventListener('click', e => {
				e.preventDefault();
				document.querySelector('.nxtcptch-test-results').remove();

				let newdiv = document.createElement("div");
				newdiv.setAttribute( 'id' , 'nxtcptch-test-block' );
				newdiv.setAttribute( 'class' , 'nxtcptch-test-recap' );

				if( document.getElementById('nxtcptch-test-block') == null ){
					nxtrecap.parentNode.insertBefore( newdiv , nxtrecap.nextSibling );
				}
				let testDiv = document.getElementById('nxtcptch-test-block')

				var request = new XMLHttpRequest();
				request.open('POST', nexter_admin_config.ajaxurl, true);
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
				request.onload = function () {
					if (request.status >= 200 && request.status < 400) {
						var response = JSON.parse(request.response);
						if(response.success == true && response.data.content != ''){
							testDiv.innerHTML = response.data.content;
							nxtrecap.style.display = 'none';
						}

						var elements = document.querySelectorAll('.nexter-recaptcha-v2,.nexter-recaptcha-invisible');

						if(elements.length != 0){
							elements.forEach( el => {
								var divid =  el.getAttribute('data-id'),
									recpdiv = el.querySelector('.nexter-recaptcha')

								if( recpdiv != null ){
									nxtrecptchDisplay(divid);

									if(el.classList.contains('nexter-recaptcha-invisible')){
										var index = recpdiv.getAttribute( 'data-nxtcptch-index' );
										grecaptcha.execute( index );
									}
								}
							})
						}else{
							nxtrecptchprepare();
						}
						nxt_varify_key();
					}
				};
				request.send('action=nxtcptch_test_keys&nexter_nonce=' + nexter_admin_config.ajax_nonce);
			})
		}



		if(recapsave){
			recapsave.addEventListener('click', e => {
				e.preventDefault();
				var recpver = recapWrap.querySelector( 'input[name=nexter_recaptcha_version]:checked'),
					recasiteKey = recapWrap.querySelector('input[name=nexter_re_public_key]'),
					recasecKey = recapWrap.querySelector('input[name=nexter_re_private_key]'),
					recapena = document.getElementsByName('nexter_recaptcha_enable'),
					recptheme = recapWrap.querySelector( 'input[name=nexter_recaptcha_theme]:checked'),
					recpinvi = recapWrap.querySelector( 'input[name=nexter_recaptcha_invisi]:checked'),
					recapData = { version : '' , siteKey : '' , secretKey : '' , formType : [] , invisi : '' , keyverify : '' , recapTheme : '' };

				if(recpver && recpver.value){
					recapData.version = recpver.value
				}
				if(recasiteKey && recasiteKey.value ){
					recapData.siteKey = recasiteKey.value;
				}
				if(recasiteKey && recasecKey.value ){
					recapData.secretKey = recasecKey.value;
				}
				if(recapena){
					for(var i = 0; i < recapena.length; i++){
						recapena[i].checked ? recapData.formType.push(recapena[i].value):"";
					}
				}
				if(recpinvi && recpinvi.value ){
					recapData.invisi = recpinvi.value;
				}

				if(recptheme && recptheme.value){
					recapData.recapTheme = recptheme.value
				}

				if(recapData){
					recapsave.innerHTML = 'Saving...';
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true){
								recapsave.innerHTML = 'Saved';
								location.reload();
							}
						}
					};
					request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&recapData=' + JSON.stringify(recapData) +'&extension_type=' + extension_type);
				}
			})
		}

	}

	function nxt_varify_key(){
		var nxttest = document.getElementById('nxt_verfiy_btn');
		if(nxttest){
			nxttest.addEventListener('click', e => {
				e.preventDefault();
				var recapWrap = document.querySelector('.nxt-recaptch-wrap'),
					recasiteKey = recapWrap.querySelector('input[name=nexter_re_public_key]'),
					recasecKey = recapWrap.querySelector('input[name=nexter_re_private_key]'),
					nxtreDiv = document.getElementById('nxtcptch-test-block'),
					nxtvnonce = document.getElementsByName('nxt_verify_nonce'),
					nxtcheck = document.querySelectorAll('.nxt-verify-icon'),
					recpres = document.getElementById('g-recaptcha-response');

				if(recasiteKey && !recasiteKey.value){
					nxtreDiv.children[0].innerHTML = 'Site Key Is Empty'
				}else if(recasecKey && !recasecKey.value){
					nxtreDiv.children[0].innerHTML = 'Secret Key Is Empty'
				}

				if( recasiteKey.value && recasecKey.value ){ //&& recpres.value
					nxttest.innerHTML = 'Verifying...'
					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true && response.data.content ){
								nxtreDiv.innerHTML = response.data.content

								nxtcheck.forEach( el => {
									el.style.display = 'inline-block';
								})

							}
						}
					};
					request.send('action=nexter_verify_recptch_key&nexter_nonce=' + nxtvnonce[0].value +'&recasiteKey=' + recasiteKey.value + '&recasecKey=' + recasecKey.value + '&g-recaptcha-response='+recpres.value);
				}

			})
		}
	}
	/* Google Recaptcha */
	/* comment Form */
	function nxtComment(extension_type){
		var commentsele = document.querySelector('.nxt-disable-comment'),
			comsave = document.querySelector('.nxt-save-comment'),
			commdata = { disable_comments : '' };
		if(commentsele && commentsele !== null ){
			commentsele.addEventListener('change' , function(){
				var nextDiv = this.nextSibling;
				if( this.value && this.value == 'custom'){
					if(nextDiv && !nextDiv.classList.contains('nxt-slide-down')){
						nextDiv.classList.add('nxt-slide-down')
					}
				}else{
					if(nextDiv && nextDiv.classList.contains('nxt-slide-down')){
						setTimeout(function() {
							nextDiv.classList.remove('nxt-slide-down');
						}, 300)
					}
				}
			});
		}

		comsave.addEventListener('click', e => {
			e.preventDefault();

			if(commentsele){
				commdata.disable_comments = commentsele.value;
			}

			let dispost = [];
			let disable_option = document.getElementsByName('nxt-disable-comment[]');
			if(disable_option){
				for (var i=0, n=disable_option.length;i<n;i++) {
					if (disable_option[i].checked) {
						dispost.push(disable_option[i].value);
					}
				}
			}
			if(dispost.length > 0){
				commdata = Object.assign( {'disble_custom_post_comments' : dispost } ,commdata);
			}

			let commentData = JSON.stringify(commdata);
			comsave.innerHTML = 'Saving...';
			var request = new XMLHttpRequest();
			request.open('POST', nexter_admin_config.ajaxurl, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
			request.onload = function () {
				if (request.status >= 200 && request.status < 400) {
					var response = JSON.parse(request.response);
					if(response.success == true){
						comsave.innerHTML = 'Saved';
						setTimeout(() => {
							comsave.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
						}, 1500);
					}
				}
			};
			request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&discomment=' + commentData+'&extension_type=' + extension_type);
		})

	}
	/* comment Form */
	/* Advance security */
	function nxtadSecurity(extension_type){
		var advSec = document.querySelector('.nxt-save-advance-security');

		if(advSec && advSec != null){
			advSec.addEventListener( 'click' , e => {
				e.preventDefault();
				let secukey = {};
				let secOpt = document.getElementsByName('nxt-advance-security[]'),
					diapi = document.querySelector('.nxt-disable-api'),
					diiframe = document.querySelector('.nxt-iframe-security'),
					secdata = [];
				if(secOpt){
					for (var i=0, n=secOpt.length;i<n;i++) {
						if (secOpt[i].checked) {
							secdata.push(secOpt[i].value);
						}
					}
				}
				secukey = Object.assign({}, secdata);
				secukey = Object.assign( secukey ,secukey);
				if(diapi && diapi.value){
					secukey = Object.assign( {'disable_rest_api' : diapi.value } ,secukey);
				}
				if(diiframe && diiframe.value){
					secukey = Object.assign( {'iframe_security' : diiframe.value } ,secukey);
				}

				let securData = JSON.stringify(secukey);
				advSec.innerHTML = 'Saving...';
				var request = new XMLHttpRequest();
				request.open('POST', nexter_admin_config.ajaxurl, true);
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
				request.onload = function () {
					if (request.status >= 200 && request.status < 400) {
						var response = JSON.parse(request.response);
						if(response.success == true){
							advSec.innerHTML = 'Saved';
							setTimeout(() => {
								advSec.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round"><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
							}, 1500);
						}
					}
				};

				request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&securData=' + securData+'&extension_type=' + extension_type);

			})
		}
	}
	/* Advance security */

	/* Custom Login */
	function nxt_ext_ctm_login(extension_type){
		var loginbah = document.querySelector('.nxt-login-select'),
			ctmlobtn = document.querySelector('.nxt-ctm-login');

		if(loginbah && loginbah !== null ){
			loginbah.addEventListener('change' , function(){
				var nextDiv = this.parentNode.nextSibling;
				if( this.value && this.value !== 'message'){
					if(nextDiv && !nextDiv.classList.contains('nxt-hide')){
						nextDiv.classList.add('nxt-hide')
					}
				}else{
					if(nextDiv && nextDiv.classList.contains('nxt-hide')){
						setTimeout(function() {
							nextDiv.classList.remove('nxt-hide');
						}, 300)
					}
				}
			});
		}

		if(ctmlobtn){
			ctmlobtn.addEventListener( 'click' , e => {
				e.preventDefault();
				var loginUrl = document.querySelector('input[name=nxt-redirect-url]'),
					ctmMsg =  document.querySelector('textarea[name=nxt-login-msg]'),
					ctmlogData = {},
					validate = true;

				ctmlogData = Object.assign( {'custom_login_url': ((loginUrl && loginUrl.value) ? loginUrl.value : '') } , {'disable_login_url_behavior': ((loginbah && loginbah.value) ? loginbah.value : '') }, {'login_page_message': ((ctmMsg && ctmMsg.value) ? ctmMsg.value : '') } );

				if(validate){
					let nxtctmLogin = JSON.stringify(ctmlogData);
					ctmlobtn.innerHTML = 'Saving...';

					var request = new XMLHttpRequest();
					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true){
								ctmlobtn.innerHTML = 'Saved';
								setTimeout(() => {
									ctmlobtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round"><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
								}, 2000);
							}
						}
					};

					request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&nxtctmLogin=' + nxtctmLogin+'&extension_type=' + extension_type);
				}
			});
		}

	}


	/**
	 * Manage 2fa options save
	 * @param extension_type
	 */
	function nxt_ext_2fa(extension_type){
		let nxt_2fa = document.querySelector('.nxt-ext-setting-pop[data-type="2-fac-authentication"]');
		let saveBtn = nxt_2fa.querySelector('.nxt-2fa-save-btn');
		saveBtn.addEventListener('click',function(){
				let customEmailBody = document.getElementById('custom-email-body').value;
				let customEmailSubject = document.getElementById('custom-email-subject').value;
				let allowed_2fa_roles = new Array();
				var request = new XMLHttpRequest();
				request.open('POST', nexter_admin_config.ajaxurl, true);
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
				saveBtn.innerHTML = 'Saving...';
				let checked_roles = nxt_2fa.querySelectorAll('input[name="nxt-2fa-allowed-roles"]:checked');
				checked_roles.forEach(function(checked_role) {
					allowed_2fa_roles.push(checked_role.value);
				});
				allowed_2fa_roles = JSON.stringify(allowed_2fa_roles);

				request.onload = function () {
					if (request.status >= 200 && request.status < 400) {
						var response = JSON.parse(request.response);
						if(response.success == true){
							saveBtn.innerHTML = 'Saved';
							setTimeout(function(){
								saveBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
							},2000);
						}
					}
				};
				request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce + '&allowed_2fa_roles='+ allowed_2fa_roles+ '&customEmailSubject='+ customEmailSubject+ '&customEmailBody='+ customEmailBody + '&extension_type=' + extension_type);
			}
		)
	}



	/* Custom Login */
	/* Login Email Notification */
	function nxt_ext_login_email_noti(extension_type){
		let nxtLoginEmail = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]');
		let wpAllValSet = {};
		let nxtWPBtn = nxtLoginEmail.querySelector('.nxt-wp-email-alert-set-btn');
		nxtWPBtn.addEventListener('click', function(){
			let accU =[], accUser = nxtLoginEmail.querySelectorAll('input[name=nxt-email-access]');
			accUser.forEach(function(acc){
				if(acc.checked){
					accU.push(acc.value);
				}
			});
			if(accU){
				wpAllValSet = Object.assign({"get_alert" : accU});
			}
			let exIps = nxtLoginEmail.querySelector('.nxt-exclude-ips'), getAllIps = '';
			if(exIps && exIps.value){
				getAllIps = exIps.value.split(',');
				wpAllValSet = Object.assign({"exclude_ips" : getAllIps}, wpAllValSet);
			}
			let alertMessage = nxtLoginEmail.querySelector('.nxt-alert-message');
			if(alertMessage && alertMessage.value){
				wpAllValSet = Object.assign({"alert_message" : alertMessage.value}, wpAllValSet);
			}

			var wpAllValSetN = JSON.stringify(wpAllValSet);

			var request = new XMLHttpRequest();
			request.open('POST', nexter_admin_config.ajaxurl, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
			nxtWPBtn.innerHTML = 'Saving...';
			request.onload = function () {
				if (request.status >= 200 && request.status < 400) {
					var response = JSON.parse(request.response);
					if(response.success == true){
						nxtWPBtn.innerHTML = 'Saved';
						setTimeout(function(){
							nxtWPBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
						},2000);
					}
				}
			};
			request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&wpEmailNotiSet=' + wpAllValSetN+'&extension_type=' + extension_type);


		});
	}
	/* Login Email Notification */

	/* Wp White Laabel start */
	function nxt_ext_wp_white_label(extension_type){
		let nxtWPLogin = document.querySelector('.nxt-ext-setting-pop[data-type="'+extension_type+'"]');
		let nxtWPBtn = nxtWPLogin.querySelector('.nxt-wp-white-label-set-btn');
		nxtWPBtn.addEventListener('click', function(){

			let nSetGlobalCss = JSON.stringify(globalNxtCss);

			var request = new XMLHttpRequest();
			request.open('POST', nexter_admin_config.ajaxurl, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
			nxtWPBtn.innerHTML = 'Saving...';
			request.onload = function () {
				if (request.status >= 200 && request.status < 400) {
					var response = JSON.parse(request.response);
					if(response.success == true){
						nxtWPBtn.innerHTML = 'Saved';
						setTimeout(function(){
							nxtWPBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" ><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
						},2000);
					}
				}
			};
			request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&wpLoginWL=' + nSetGlobalCss+'&extension_type=' + extension_type);

		});
	}
	/* Wp White Label end */

	/* Extra Option */
	/*Import Data*/
	var nxtPanelImportBtn = document.querySelector('.nxt-import-data-content .import-step-next');
	if( nxtPanelImportBtn ){
		nxtPanelImportBtn.addEventListener('click', event => {
			event.preventDefault();
			var builderSelect = document.querySelector('.nxt-select-builder input[name="nxt-select-build"]:checked');

			if(nxtPanelImportBtn.getAttribute("data-step")=='step-2'){

				if( builderSelect && builderSelect.value ){

					var buildStep = document.querySelector('.nxt-import-steps'),
						request = new XMLHttpRequest();

					request.open('POST', nexter_admin_config.ajaxurl, true);
					request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
					request.onload = function () {
						if (request.status >= 200 && request.status < 400) {
							var response = JSON.parse(request.response);
							if(response.success == true && response.content!=''){
								buildStep.remove();
								nxtPanelImportBtn.setAttribute('data-builder', builderSelect.value);
								var content = document.querySelector('.nxt-import-data-content');
								content.insertAdjacentHTML('afterbegin', response.content);
								if(response.build_status == 'Activated' && response.extension_status == 'Activated'){
									nxtPanelImportBtn.setAttribute('data-step', 'step-3');
								}else{
									nexterInstallBuilder();
								}
							}
						}
					};
					request.send('action=nexter_import_data_step&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&builder=' + builderSelect.value);
				}

			}else if(nxtPanelImportBtn.getAttribute("data-step")=='step-3'){
				var buildStep = document.querySelector('.nxt-import-steps'),
					request = new XMLHttpRequest();

				request.open('POST', nexter_admin_config.ajaxurl, true);
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
				request.onload = function () {
					if (request.status >= 200 && request.status < 400) {
						var response = JSON.parse(request.response);
						if(response.data.success == true && response.data.content!=''){
							buildStep.remove();
							var content = document.querySelector('.nxt-import-data-content');
							content.insertAdjacentHTML('afterbegin', response.data.content);
							nexterImportTemplate();
							if( nxtPanelImportBtn ){
								nxtPanelImportBtn.setAttribute('data-step', 'step-4');
							}
						}else if(response.data.success == false){
							alert('Please Install/Activate Required Plugins');
						}
					}
				};
				request.send('action=nexter_import_data_step_3&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&builder=' + nxtPanelImportBtn.dataset.builder);
			}else if(nxtPanelImportBtn.getAttribute("data-step")=='step-4'){
				var buildStep = document.querySelector('.nxt-import-steps'),
					request = new XMLHttpRequest();

				request.open('POST', nexter_admin_config.ajaxurl, true);
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
				request.onload = function () {
					if (request.status >= 200 && request.status < 400) {
						var response = JSON.parse(request.response);
						if(response.data.success == true && response.data.content!=''){
							buildStep.remove();
							nxtPanelImportBtn.remove();
							var content = document.querySelector('.nxt-import-data-content');
							content.insertAdjacentHTML('afterbegin', response.data.content);
						}
					}
				};
				request.send('action=nexter_import_data_step_4&nexter_nonce=' + nexter_admin_config.ajax_nonce);
			}

		});
	}

	var nexterImportTemplate = function(){
		var importTemplate = document.querySelectorAll('.nxt-import-template .nxt-template-import-btn');
		if(importTemplate){
			importTemplate.forEach( function(ele) {
				ele.addEventListener('click', event => {
					event.preventDefault();
					var builder = ele.dataset.builder,
						tag		= ele.dataset.tag,
						template= ele.dataset.template;

					if( builder != '' && template != '' ){
						var request = new XMLHttpRequest();

						request.open('POST', nexter_admin_config.ajaxurl, true);
						request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
						request.onload = function () {
							if (request.status >= 200 && request.status < 400) {
								var response = JSON.parse(request.response);
								ele.parentElement.classList.remove('import-processing');
								nxtPanelImportBtn.classList.remove('disable-btn');
								if(response.data.success == true && response.data.content!=''){
									ele.innerHTML = response.data.content;
								}else{
									ele.innerHTML = response.data.content;
								}
							}
						};
						ele.parentElement.classList.add('import-processing');
						ele.innerHTML = '<svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="sync-alt" class="fa-spinner" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M457.373 9.387l-50.095 50.102C365.411 27.211 312.953 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h10.015c6.352 0 11.647-4.949 11.977-11.293C48.159 131.913 141.389 42 256 42c47.554 0 91.487 15.512 127.02 41.75l-53.615 53.622c-20.1 20.1-5.855 54.628 22.627 54.628H480c17.673 0 32-14.327 32-32V32.015c0-28.475-34.564-42.691-54.627-22.628zM480 160H352L480 32v128zm11.699 96h-10.014c-6.353 0-11.647 4.949-11.977 11.293C463.84 380.203 370.504 470 256 470c-47.525 0-91.468-15.509-127.016-41.757l53.612-53.616c20.099-20.1 5.855-54.627-22.627-54.627H32c-17.673 0-32 14.327-32 32v127.978c0 28.614 34.615 42.641 54.627 22.627l50.092-50.096C146.587 484.788 199.046 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507zM32 480V352h128L32 480z"></path></svg>';
						nxtPanelImportBtn.classList.add('disable-btn');
						request.send('action=nexter_import_data_template&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&builder=' + builder +'&tag=' + tag +'&template=' + template);
					}
				});
			});
		}
	}

	nexterInstallBuilder();

	function nexterInstallBuilder(){
		/*Install Plugin Builder Event*/
		var nxtPanelInstallBuilderBtn = document.querySelectorAll('.nxt-import-data-content .nxt-install-builder-plugin');
		if(nxtPanelInstallBuilderBtn){
			nxtPanelInstallBuilderBtn.forEach( function(ele) {
				ele.addEventListener('click', event => {
					event.preventDefault();
					var builderSlug = ele.dataset.slug;
					ele.innerHTML = ele.dataset.builderProcess;
					/*Wp Install Plugin Event*/
					wp.updates.installPlugin( {
						slug: builderSlug
					});
				});
			});

			/*Wp Install Success trigger Message*/
			jQuery( document ).on('wp-plugin-install-success', ( event, response ) => {
				if(response){
					var builderSlug = (response.slug) ? response.slug : '';
					var installedBuilder = document.querySelector('.nxt-import-data-content .nxt-install-builder-plugin[data-slug=' + builderSlug + ']');
					if(installedBuilder){
						var file = installedBuilder.dataset.file;
						setTimeout( function() {
							var request = new XMLHttpRequest();

							request.open('POST', nexter_admin_config.ajaxurl, true);
							request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
							request.onload = function () {
								if (request.status >= 200 && request.status < 400) {
									var response = JSON.parse(request.response);
									if(response.data.success == true && response.data.content!=''){
										installedBuilder.innerHTML = response.data.content;
										if( nxtPanelImportBtn ){
											nxtPanelImportBtn.setAttribute('data-step', 'step-3');
										}
									}else{
										installedBuilder.innerHTML = response.data.content;
									}
								}
							};
							installedBuilder.innerHTML = 'Activating..';
							request.send('action=nexter_import_activate_builder&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&file=' + file);
						}, 1200);
					}
				}
			});

			/*Wp Install Error trigger Message*/
			jQuery( document ).on('wp-plugin-install-error', ( event, response ) => {
				var installedBuilder = document.querySelector('.nxt-import-data-content .nxt-install-builder-plugin');
				if(installedBuilder){
					installedBuilder.innerHTML = wp.updates.l10n.installFailedShort;
				}
			});
		}

		/*Activate Plugin Builder Event*/
		var nxtActiveBuilderBtn = document.querySelectorAll('.nxt-import-data-content .nxt-active-builder-plugin');
		if( nxtActiveBuilderBtn ){
			nxtActiveBuilderBtn.forEach( function(ele) {
				ele.addEventListener('click', event => {
					event.preventDefault();

					var builder = ele.dataset.builder,
						processText = ele.dataset.builderProcess,
						file = ele.dataset.file;

					if(builder!='' && ele.innerHTML != "Activated"){
						var request = new XMLHttpRequest();

						request.open('POST', nexter_admin_config.ajaxurl, true);
						request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
						request.onload = function () {
							if (request.status >= 200 && request.status < 400) {
								var response = JSON.parse(request.response);
								if(response.data.success == true && response.data.content!=''){
									ele.innerHTML = response.data.content;
									ele.classList.remove('nxt-active-builder-plugin');
									ele.classList.add('nxt-activated-builder-plugin');
									if( nxtPanelImportBtn ){
										nxtPanelImportBtn.setAttribute('data-step', 'step-3');
									}
								}else{
									ele.innerHTML = response.data.content;
								}
							}
						};

						ele.innerHTML = processText;
						request.send('action=nexter_import_activate_builder&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&builder=' + builder+'&file=' + file);
					}

				});
			});
		}
	}
	/*Import Data*/
	/* White Label Start */
	let wlMain = document.querySelector('.nxt-white-label');

	if(wlMain){
		let saveFile = ['theme_screenshot','theme_logo'];
		saveFile.forEach( function(sf) {
			let mainF = wlMain.querySelector('.'+sf);
			let fileUp = mainF.querySelector('.nxt-wl-save-file');
			var sBtn = mainF.querySelector('.nxt-wl-save-file'),

				removeBtn = mainF.querySelector('.nxt-wl-remove-file'),
				fileN = mainF.querySelector('.nxt-wl-file-name');
			if(removeBtn){
				removeBtn.addEventListener("click", rem => {
					fileN.innerHTML = 'Drag & Drop your file here';
					sBtn.value = '';
					sBtn.innerHTML = 'Browse';
					sBtn.dataset.src = '';
					rem.currentTarget.classList.remove('active');
				});
			}

			fileUp.addEventListener("click", e => {
				var button = e.currentTarget,
					custom_uploader = wp.media({
						title: 'Insert image',
						library : {
							type : 'image'
						},
						multiple: false
					}).on('select', function() {
						var attachment = custom_uploader.state().get('selection').first().toJSON();
						const extension = attachment.url.split('.').pop().toLowerCase();

						// Check if the extension is a valid image extension
						const validExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp'];
						if (validExtensions.includes(extension)) {
							button.value = attachment.id;
							button.dataset.src = attachment.url;
							button.innerHTML = 'Change';
							if(fileN){
								fileN.innerHTML = attachment.filename;
							}
							removeBtn.classList.add('active');
						}
					}).open();
			});
		});

		let saveBtn = wlMain.querySelector('.nxt-wl-save-btn');

		saveBtn.addEventListener("click", s=> {

			let wpWLSet = {};
			let allWlOp = ['brand_name','theme_name','theme_desc','author_name','author_uri','theme_screenshot','theme_logo','nxt_free_plugin_name','nxt_pro_plugin_name','nxt_free_plugin_desc','nxt_pro_plugin_desc'];
			var arrWlValue = [];
			var validation = true;
			allWlOp.forEach(function(all){
				let allInput = wlMain.querySelector('.'+all+' input'),
					allTextArea = wlMain.querySelector('.'+all+' textarea'),
					allLabel = wlMain.querySelector('.'+all+' label');

				if(allInput && allInput.value){
					arrWlValue[all] = allInput.value;
					var regexp =  /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;
					if (all=='author_uri' && !regexp.test(allInput.value)){
						validation = false;
						delete arrWlValue[all];
					}
				}
				if(allTextArea && allTextArea.value){
					arrWlValue[all] = allTextArea.value;
				}
				if(allLabel){
					let fileBtn = allLabel.querySelector('.nxt-wl-save-file'),
						file_id = all+"_id";
					if(fileBtn.value){
						arrWlValue[all] = fileBtn.getAttribute('data-src');
						arrWlValue[file_id] = fileBtn.value;
					}
				}
			});

			arrWlValue = Object.assign({}, arrWlValue);

			let twoForce = wlMain.querySelector('#nxt-wl-two-force');
			if(twoForce && twoForce.checked){
				arrWlValue = Object.assign({ 'nxt_hidden_label' : 'on'}, arrWlValue);
			}
			wpWLSet = Object.assign( arrWlValue ,wpWLSet);
			var wpWLSetN = JSON.stringify(wpWLSet);
			if(validation){
				var request = new XMLHttpRequest();
				request.open('POST', nexter_admin_config.ajaxurl, true);
				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
				saveBtn.innerHTML = 'Saving...';
				request.onload = function () {
					if (request.status >= 200 && request.status < 400) {
						var response = JSON.parse(request.response);
						if(response.success == true){
							saveBtn.innerHTML = 'Saved';
							setTimeout(function(){
								saveBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="#fff" stroke-width=".781" stroke-linejoin="round" xmlns:v="https://vecta.io/nano"><path d="M15.833 17.5H4.167c-.442 0-.866-.176-1.179-.488s-.488-.736-.488-1.179V4.167c0-.442.176-.866.488-1.179S3.725 2.5 4.167 2.5h9.167L17.5 6.667v9.167c0 .442-.176.866-.488 1.179s-.736.488-1.179.488z"/><path d="M14.167 17.5v-6.667H5.833V17.5m0-15v4.167H12.5" stroke-linecap="round"/></svg>Save';
							},2000);
						}
					}
				};
				request.send('action=nexter_ext_save_data&nexter_nonce=' + nexter_admin_config.ajax_nonce +'&wpWLSet=' + wpWLSetN+'&extension_type=white-label');
			}else{
				var wrong_ID_msg = '<div class="nxt-wrong-msg-notice"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="15.75" stroke="#FC4032" stroke-width="0.5"/><circle cx="16" cy="16" r="12" fill="#FC4032"/><rect x="15" y="9" width="2" height="10" rx="1" fill="white"/><rect x="15" y="20" width="2" height="2" rx="1" fill="white"/></svg> Website URL not a valid</div>';
				var WLSel = document.querySelector('.nxt-white-label');
				if(WLSel){
					WLSel.insertAdjacentHTML('beforeend', wrong_ID_msg);
					var notice_data = WLSel.querySelector('.nxt-wrong-msg-notice');
					if(notice_data){
						setTimeout(function(){
							notice_data.classList.add('active-notice');
						},50);
						setTimeout(function(){
							notice_data.remove();
						},3000);
					}
				}
			}
		})
	}
	/* White Label End */
});