1const nkTrack=(category,action,name='',value=0)=>{if(typeof _paq!=='undefined'){_paq.push(['trackEvent',category,action,name,value])}};function nkPaywallValidateEmail(email){return/^(([^<>()[\]\\.,;:\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,}))$/.test(String(email||''),)} 2let nkPaywallCheckDone=!1;let nkPaywallGateInited=!1;window.__nkPaywallTurnstileLoaded=!1;window.turnstileLoaded=function(){window.__nkPaywallTurnstileLoaded=!0;if(typeof window.nkPaywallInitPopupTurnstile==='function'){window.nkPaywallInitPopupTurnstile()}};function registerNkPaywallAlpineComponents(){if(typeof Alpine==='undefined'||window.__nkPaywallAlpineRegistered){return} 3window.__nkPaywallAlpineRegistered=!0;let gateInstance=null;const turnstileForms=[{formId:'signin_form',containerId:'signin_turnstile',},{formId:'lostpasswordform',containerId:'forget_turnstile',},{formId:'pro_inquiry_form',containerId:'pro_inquiry_turnstile',onVerified(form){form.dispatchEvent(new CustomEvent('nk-paywall-nkpro-pro-inquiry',{bubbles:!0,}),)},},{formId:'fellowship_submit_form',containerId:'fellowship_turnstile',onVerified(form){form.dispatchEvent(new CustomEvent('nk-paywall-nkpro-fellowship',{bubbles:!0,}),)},},];const TURNSTILE_UNAVAILABLE_MSG='Security check is still loading. Please wait a moment and try again.';const turnstileWidgets=new WeakMap();const turnstilePending=new WeakMap();function isTurnstileEnabled(){return(typeof nkPaywall!=='undefined'&&!!nkPaywall.turnstileEnabled&&!!nkPaywall.turnstileSiteKey)} 4function nativeSubmit(form){form.dataset.nkPaywallTurnstileBypass='1';HTMLFormElement.prototype.submit.call(form)} 5function setSubmitButtonsDisabled(form,disabled){if(!form){return} 6const buttons=form.querySelectorAll('button[type="submit"], input[type="submit"]',);for(let i=0;i<buttons.length;i++){buttons[i].disabled=disabled}} 7function isTurnstileReady(){return(typeof turnstile!=='undefined'&&typeof turnstile.render==='function'&&typeof turnstile.execute==='function')} 8function setTurnstileToken(form,token){if(!form){return} 9let field=form.querySelector('[name="cf-turnstile-response"]');if(!field){field=document.createElement('input');field.type='hidden';field.name='cf-turnstile-response';form.appendChild(field)} 10field.value=token||''} 11function clearTurnstileToken(form){if(!form){return} 12const field=form.querySelector('[name="cf-turnstile-response"]');if(field){field.value=''}} 13function showTurnstileUnavailableError(form){if(!form){return} 14if(form.id==='signin_form'){const errEl=document.getElementById('nk-paywall-signin-error');if(errEl){errEl.textContent=TURNSTILE_UNAVAILABLE_MSG;errEl.style.display=''} 15return} 16form.dispatchEvent(new CustomEvent('nk-paywall-turnstile-unavailable',{bubbles:!0,detail:{message:TURNSTILE_UNAVAILABLE_MSG},}),)} 17function renderTurnstileWidget(form,containerId,root){if(!form||turnstileWidgets.has(form)||!isTurnstileReady()){return} 18const container=root.querySelector('#'+containerId);if(!container){return} 19const widgetId=turnstile.render(container,{sitekey:nkPaywall.turnstileSiteKey,execution:'execute',appearance:'interaction-only',callback(token){setTurnstileToken(form,token);const pending=turnstilePending.get(form);if(pending){pending.resolve(token);turnstilePending.delete(form)}},'error-callback'(){const pending=turnstilePending.get(form);if(pending){pending.reject(new Error('turnstile-error'));turnstilePending.delete(form)}},'expired-callback'(){clearTurnstileToken(form);const pending=turnstilePending.get(form);if(pending){pending.reject(new Error('turnstile-expired'));turnstilePending.delete(form)} 20const widget=turnstileWidgets.get(form);if(widget!==undefined){turnstile.reset(widget)}},});turnstileWidgets.set(form,widgetId)} 21const TURNSTILE_READY_TIMEOUT_MS=5000;const TURNSTILE_READY_POLL_MS=100;function waitForTurnstileWidget(form){const widgetReady=()=>isTurnstileReady()&&turnstileWidgets.get(form)!==undefined;if(widgetReady()){return Promise.resolve(turnstileWidgets.get(form))} 22return new Promise((resolve,reject)=>{const start=Date.now();const timer=setInterval(()=>{if(widgetReady()){clearInterval(timer);resolve(turnstileWidgets.get(form));return} 23if(Date.now()-start>=TURNSTILE_READY_TIMEOUT_MS){clearInterval(timer);reject(new Error('turnstile-unavailable'))}},TURNSTILE_READY_POLL_MS)})} 24function executeTurnstile(form){if(!isTurnstileEnabled()){return Promise.reject(new Error('turnstile-unavailable'))} 25return waitForTurnstileWidget(form).then((widgetId)=>new Promise((resolve,reject)=>{turnstilePending.set(form,{resolve,reject});turnstile.execute(widgetId)}),)} 26function bindTurnstileForm({formId,containerId,onVerified},root=document,){const form=root.querySelector('#'+formId);if(!form){return} 27renderTurnstileWidget(form,containerId,root);if(form.dataset.nkPaywallTurnstileBound==='1'){return} 28form.dataset.nkPaywallTurnstileBound='1';const isNativeSubmit=typeof onVerified!=='function';const verified=isNativeSubmit?()=>nativeSubmit(form):()=>onVerified(form);form.addEventListener('submit',(event)=>{if(form.dataset.nkPaywallTurnstileBypass==='1'){form.dataset.nkPaywallTurnstileBypass='';return} 29if(!isTurnstileEnabled()){event.preventDefault();verified();return} 30if(!form.checkValidity()){return} 31event.preventDefault();if(form.dataset.nkPaywallTurnstileInflight==='1'){return} 32form.dataset.nkPaywallTurnstileInflight='1';if(isNativeSubmit){setSubmitButtonsDisabled(form,!0)} 33executeTurnstile(form).then(()=>{verified();if(!isNativeSubmit){form.dataset.nkPaywallTurnstileInflight=''}}).catch(()=>{form.dataset.nkPaywallTurnstileInflight='';if(isNativeSubmit){setSubmitButtonsDisabled(form,!1)} 34showTurnstileUnavailableError(form)})})} 35function initPopupTurnstile(root=document){turnstileForms.forEac
35h((config)=>bindTurnstileForm(config,root))} 36window.nkPaywallInitPopupTurnstile=initPopupTurnstile;window.nkPaywallResetFormTurnstile=function(form){clearTurnstileToken(form);const widgetId=turnstileWidgets.get(form);if(widgetId!==undefined&&isTurnstileReady()){turnstile.reset(widgetId)}};if(window.__nkPaywallTurnstileLoaded){initPopupTurnstile()} 37const SIGNIN_ERROR_MESSAGES={failed:'The email or password you entered is incorrect!',recaptcha:'Your sign in request was rejected by the security check.',locked:'Sorry, we have locked your account to prevent malicious access. Please check your email for instructions on how to unlock it!',auth_code:'SECURITY ALERT: To ensure your account remains secure, please enter the token code we just emailed you while logging in.',auth_error:'Your security token code is wrong.',};const FORGOT_ERROR_MESSAGES={empty:'Enter a valid email address...',recaptcha:'Your password reset request was rejected by the security check.',generic:'Unable to process your request. Please try again.',};function fixPopupFormUrls(root){if(!root)return;var loc=window.location;var pagePath=loc.pathname;var signinForm=root.querySelector('#signin_form');if(signinForm){signinForm.action=loc.origin+pagePath+'?popup=signin'} 38var forgotForm=root.querySelector('#lostpasswordform');if(forgotForm){forgotForm.action=loc.origin+pagePath+'?popup=forget-password-form'} 39var refererInputs=root.querySelectorAll('input[name="_wp_http_referer"]',);for(var i=0;i<refererInputs.length;i++){refererInputs[i].value=pagePath}} 40function initResetPasswordForm(root){if(!root)return;var form=root.querySelector('#resetpw_form');if(!form)return;form.addEventListener('submit',function(e){e.preventDefault();var errorEl=root.querySelector('#nk-paywall-resetpw-error');var successEl=root.querySelector('#nk-paywall-resetpw-success');var submitBtn=form.querySelector('#nk-paywall-resetpw-submit');if(errorEl){errorEl.style.display='none';errorEl.textContent=''} 41if(successEl){successEl.style.display='none';successEl.textContent=''} 42var password=form.querySelector('input[name="user_password"]');var confirm=form.querySelector('input[name="confirm_password"]');if(!password||!password.value||!confirm||!confirm.value){if(errorEl){errorEl.textContent="Sorry, we don't accept empty passwords.";errorEl.style.display=''} 43return} 44if(submitBtn){submitBtn.disabled=!0;submitBtn.textContent='Resetting\u2026'} 45var body=new FormData();body.append('action','nk_paywall_reset_password');body.append('nonce',nkPaywall.nonce);body.append('rp_key',form.querySelector('input[name="rp_key"]').value,);body.append('rp_login',form.querySelector('input[name="rp_login"]').value,);body.append('user_password',password.value);body.append('confirm_password',confirm.value);fetch(nkPaywall.ajaxUrl,{method:'POST',body:body}).then(function(r){return r.json()}).then(function(res){if(res.success){if(successEl){successEl.textContent=res.data.message;successEl.style.display=''} 46form.style.display='none';var subtitle=root.querySelector('#nk-paywall-resetpw-subtitle',);if(subtitle)subtitle.style.display='none'}else{var msg=(res.data&&res.data.message)||'An error occurred. Please try again.';if(errorEl){errorEl.textContent=msg;errorEl.style.display=''}}}).catch(function(){if(errorEl){errorEl.textContent='Network error. Please try again.';errorEl.style.display=''}}).finally(function(){if(submitBtn){submitBtn.disabled=!1;submitBtn.textContent='Reset Password'}})})} 47if(typeof nkPaywall!=='undefined'&&nkPaywall.showDailySubscribe){Alpine.data('nkPaywallDailySubscribe',()=>({step:'email',email:'',firstName:'',loading:!1,errorMessage:'',init(){if(this.$el&&this.$el.closest('#nk-paywall-app'))return;if(nkPaywall.loggedIn==='1')return;setTimeout(()=>{if(typeof canShowNkPaywallPopup!=='function'||!canShowNkPaywallPopup()) 48return;const key='subscribe-popup';const match=document.cookie.match(new RegExp(key+'=([^;]+)'),);const currentCount=match?parseInt(match[1],10)||0:0;const newCount=currentCount+1;document.cookie=key+'='+newCount+';expires=0;secure;path=/';if(currentCount%5===0){showPopup('daily-subscribe')}},5000)},goToName(){const e=(this.email||'').trim();if(!e||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e))return;this.step='name'},submit(){if(!this.email.trim()||!this.firstName.trim())return;this.loading=!0;this.errorMessage='';const body=new FormData();body.append('action','nk_paywall_daily_subscribe');body.append('nonce',typeof nkPaywall!=='undefined'?nkPaywall.nonce:'',);body.append('email',this.email);body.append('fname',this.firstName);fetch(typeof nkPaywall!=='undefined'?nkPaywall.ajaxUrl:'',{method:'POST',body,},).then((r)=>r.json()).then((res)=>{this.loading=!1;if(res.success)this.step='success';else{this.step='error';this.errorMessage=res.data&&(res.data.message||res.data.msg)?res.data.message||res.data.msg:'Something went wrong. Please try again.'}}).catch(()=>{this.loading=!1;this.step='error';this.errorMessage='Network error. Please try again.'})},}))} 49function isNkproSite(){return typeof nkPaywall!=='undefined'&&nkPaywall.site==='nkpro'} 50function isNkNewsSite(){return typeof nkPaywall!=='undefined'&&nkPaywall.site==='nknews'} 51function resolvePopupSlug(slug){if(isNkproSite()&&(slug==='signin-form'||slug==='signup')){return'nkpro-members-only'} 52return slug} 53function showPopup(slug,locked,fullscreen,trial){const resolvedSlug=resolvePopupSlug(slug);if(gateInstance.popup&&gateInstance.popup!==resolvedSlug){gateInstance.closePopup()} 54if(!gateInstance.popup){gateInstance.showPopup(resolvedSlug,locked,fullscreen,undefined,trial,)}} 55function canShowNkPaywallPopup(){return gateInstance&&!gateInstance.popup} 56const TRIAL_LANDING_ORIGIN='https://signup.nknews.org';const TRIAL_LANDING_PATH='/nknews/1-dollar-trial/';function trialLandingUrl(){return(TRIAL_LANDING_ORIGIN+TRIAL_LANDING_PATH+'?parent='+encodeURIComponent(window.location.origin))} 57const TRIAL_LANDING_CTA_MESSAGE='nk-paywall:trial-cta';let trialLightboxSession=null;function openTrialLandingLightbox(onClose){if(typeof Lightbox==='undefined'){onClose();return} 58const trigger=document.createElement('a');trigger.href=trialLandingUrl();trigger.setAttribute('data-type','url');const session={lightbox:null,done:!1};session.finish=()=>
58{if(session.done){return} 59session.done=!0;if(trialLightboxSession===session){trialLightboxSession=null} 60onClose()};session.lightbox=new Lightbox(trigger,{size:'xl'});trialLightboxSession=session;document.addEventListener('hidden.bs.modal',session.finish,{once:!0,});session.lightbox.show()} 61function isTrialLightboxFrame(session,source){const modalEl=session.lightbox&&session.lightbox.modalElement;if(!modalEl||!source){return!1} 62return Array.prototype.some.call(modalEl.querySelectorAll('iframe'),(iframe)=>iframe.contentWindow===source,)} 63function closeTrialLandingLightbox(session){if(session.lightbox&&typeof session.lightbox.hide==='function'){session.lightbox.hide();return} 64session.finish()} 65window.addEventListener('message',(event)=>{const session=trialLightboxSession;if(!session||session.done){return} 66if(event.origin!==TRIAL_LANDING_ORIGIN){return} 67const data=event.data;const type=typeof data==='string'?data:data&&data.type;if(TRIAL_LANDING_CTA_MESSAGE!==type){return} 68if(!isTrialLightboxFrame(session,event.source)){return} 69closeTrialLandingLightbox(session)});document.addEventListener('click',(e)=>{const popupAttribute='data-nk-paywall-popup';const trialAttribute='data-nk-paywall-trial';const btn=e.target.closest(`[${popupAttribute}]`);if(!btn||!btn.getAttribute(popupAttribute)){return} 70e.preventDefault();const slug=btn.getAttribute(popupAttribute);const trial='signup-form'===slug&&'true'===btn.getAttribute(trialAttribute);if(trial&&gateInstance&&!gateInstance.loggedIn){openTrialLandingLightbox(()=>{showPopup(slug,undefined,undefined,trial)});return} 71showPopup(slug,undefined,undefined,trial)},!0,);const prefetchFromIntent=(e)=>{if(!gateInstance||!e.target||typeof e.target.closest!=='function'){return} 72const btn=e.target.closest('[data-nk-paywall-popup]');const slug=btn&&btn.getAttribute('data-nk-paywall-popup');if(slug){const trial='signup-form'===slug&&'true'===btn.getAttribute('data-nk-paywall-trial');gateInstance.prefetchPopup(slug,trial)}};document.addEventListener('pointerover',prefetchFromIntent,!0);document.addEventListener('focusin',prefetchFromIntent,!0);window.addEventListener('nk-paywall:open-popup',(event)=>{const slug=event.detail&&event.detail.slug;if(!slug){return} 73const locked=typeof event.detail.locked==='boolean'?event.detail.locked:undefined;const fullscreen=typeof event.detail.fullscreen==='boolean'?event.detail.fullscreen:undefined;showPopup(slug,locked,fullscreen)});window.addEventListener('nk-paywall-close',()=>{if(gateInstance&&!gateInstance.popupLocked){gateInstance.closePopup()}});Alpine.data('nkPaywallGate',()=>({granted:!1,popup:null,popupHtml:'',popupLocked:!1,popupFullscreen:!1,ctaHtml:'',remaining:-1,limit:0,loggedIn:typeof nkPaywall!=='undefined'&&(nkPaywall.loggedIn===!0||nkPaywall.loggedIn==='1'),nkproPopupState:'',loading:!0,init(){const el=this.$el;el.style.display='';if(nkPaywallGateInited){return} 74nkPaywallGateInited=!0;gateInstance=this;this._bindModalCloseHandlers(el);this.$watch('popupHtml',(html)=>{this.$nextTick(()=>this._renderPopup(html))});this.$watch('popup',(slug)=>{document.body.style.overflow=slug?'hidden':''});let skipCheckAccess=!1;var sp=new URLSearchParams(window.location.search);var loginErr=sp.get('login');if(sp.get('popup')==='resetpw'&&sp.get('key')&&sp.get('login')){this._resetPwKey=sp.get('key');this._resetPwLogin=sp.get('login');window.history.replaceState(null,'',window.location.pathname);this.showPopup('reset-password-form');skipCheckAccess=!0}else if(sp.get('popup')==='forget-password-form'&&(sp.get('forgot')==='sent'||sp.get('forgot')==='failed')){var forgotStatus=sp.get('forgot');var forgotCode=sp.get('forgot_code')||'generic';window.history.replaceState(null,'',window.location.pathname);this.showPopup('forget-password-form');skipCheckAccess=!0;var forgotPollTimer=setInterval(function(){var errorEl=document.getElementById('nk-paywall-forget-error',);var successEl=document.getElementById('nk-paywall-forget-success',);var titleEl=document.getElementById('nk-paywall-forget-title',);var iconEl=document.getElementById('nk-paywall-forget-mail-icon',);var subtitleEl=document.getElementById('nk-paywall-forget-subtitle',);var formEl=document.getElementById('lostpasswordform');if(!errorEl||!successEl){return} 75clearInterval(forgotPollTimer);if(forgotStatus==='sent'){var forgetRoot=document.getElementById('forget-password');
75if(forgetRoot){forgetRoot.classList.add('nk-paywall-forget--email-sent',)} 76successEl.style.display='none';if(iconEl)iconEl.style.display='block';if(titleEl)titleEl.textContent='Email Sent';if(subtitleEl){subtitleEl.textContent='If an account is linked to the email address you provided, a password reset link will arrive to that inbox shortly.';subtitleEl.style.display=''} 77if(formEl)formEl.style.display='none'}else{if(iconEl)iconEl.style.display='none';errorEl.textContent=FORGOT_ERROR_MESSAGES[forgotCode]||FORGOT_ERROR_MESSAGES.generic;errorEl.style.display=''}},150);setTimeout(function(){clearInterval(forgotPollTimer)},10000)}else if(sp.get('popup')==='signin'&&loginErr&&SIGNIN_ERROR_MESSAGES[loginErr]){this._signinError=loginErr;window.history.replaceState(null,'',window.location.pathname);this.showPopup('signin-form');skipCheckAccess=!0;var errorMsg=SIGNIN_ERROR_MESSAGES[loginErr];var isAuthCode=loginErr==='auth_code'||loginErr==='auth_error';var pollTimer=setInterval(function(){var el=document.getElementById('nk-paywall-signin-error');if(el){clearInterval(pollTimer);el.textContent=errorMsg;el.style.display='';if(isAuthCode){window.dispatchEvent(new CustomEvent('set-auth-mode'),)}}},150);setTimeout(function(){clearInterval(pollTimer)},10000)}else if(sp.get('popup')==='signin'&&!loginErr){window.history.replaceState(null,'',window.location.pathname);this.showPopup('signin-form');skipCheckAccess=!0}else if(sp.get('popup')==='signup'&&isNkproSite()){this.nkproPopupState=this.loggedIn?'logged_in_upgrade':'logged_out_signin';window.history.replaceState(null,'',window.location.pathname);if(this.loggedIn&&typeof nkPaywall!=='undefined'&&nkPaywall.postId>0){this._urlPopupPending='nkpro-members-only'}else{skipCheckAccess=!0;this.showPopup('nkpro-members-only',!1,!1,!0)}}else if(sp.get('popup')==='signup'&&(nkPaywall.site==='nknews'||nkPaywall.site==='koreapro')){window.history.replaceState(null,'',window.location.pathname);this.showPopup('signup-form');skipCheckAccess=!0}else if(sp.get('popup')==='trial'&&isNkNewsSite()){window.history.replaceState(null,'',window.location.pathname);showPopup('signup-form',undefined,undefined,!0);skipCheckAccess=!0}else if(sp.get('popup')==='free-member-form'){window.history.replaceState(null,'',window.location.pathname);this.showPopup('free-member-form');skipCheckAccess=!0}else if(window.__nkPaywallTossReturnState&&!window.__nkPaywallTossGateHandled){window.__nkPaywallTossGateHandled=!0;this.showPopup('signup-form');skipCheckAccess=!0}else if(!window.__nkPaywallTossGateHandled&&this._detectTossFailFromUrl(sp)){window.__nkPaywallTossGateHandled=!0;this.showPopup('signup-form');skipCheckAccess=!0} 78if(nkPaywallCheckDone){return} 79nkPaywallCheckDone=!0;if(typeof nkPaywall!=='undefined'&&nkPaywall.isKcnaHome){skipCheckAccess=!0} 80if(!skipCheckAccess){this.checkAccess()}},_detectTossFailFromUrl(sp){var tossCode=sp.get('code');if(!tossCode)return!1;var tossPending=!1;try{tossPending=sessionStorage.getItem('nk_paywall_toss_pending')==='1'}catch(_){} 81if(!tossPending)return!1;try{sessionStorage.removeItem('nk_paywall_toss_pending')}catch(_){} 82var msg=sp.get('message')||tossCode.replace(/_/g,' ').toLowerCase().replace(/^\w/,function(c){return c.toUpperCase()});window.__nkPaywallTossReturnState={type:'fail',message:msg,};window.history.replaceState(null,'',window.location.pathname);return!0},_renderPopup(html){const container=this.$refs.popupBody;if(!container)return;container.innerHTML=html||'';if(typeof Alpine!=='undefined'&&Alpine.initTree){Alpine.initTree(container)} 83fixPopupFormUrls(container);initPopupTurnstile(container);if(this._resetPwKey&&this._resetPwLogin){var keyInput=container.querySelector('input[name="rp_key"]');var loginInput=container.querySelector('input[name="rp_login"]',);if(keyInput)keyInput.value=this._resetPwKey;if(loginInput)loginInput.value=this._resetPwLogin} 84initResetPasswordForm(container)},checkAccess(){const body=new FormData();body.append('action','nk_paywall_check');body.append('post_id',nkPaywall.postId);body.append('referrer',document.referrer||'');const urlParams=new URLSearchParams(window.location.search);const shareToken=urlParams.get('share');if(shareToken){body.append('share',shareToken)} 85fetch(nkPaywall.ajaxUrl,{method:'POST',body}).then((r)=>r.json()).then((res)=>{this.loading=!1;if(!res.success)return;const d=res.data;this.granted=d.granted;if(typeof d.is_kor!=='undefined'&&d.is_kor){document.querySelectorAll('.kcna_url').forEach((el)=>{el.setAttribute('href','https://'+d.is_kor)})} 86const popupLocked=!!d.popup_locked;const popupFullscreen=typeof d.popup_fullscreen==='boolean'?d.popup_fullscreen:popupLocked;if(!this.popupLocked){this.popupLocked=!d.granted&&popupLocked} 87if(!this.popupFullscreen){this.popupFullscreen=!d.granted&&popupFullscreen} 88this.loggedIn=d.logged_in;this.nkproPopupState=typeof d.nkpro_popup_state==='string'?d.nkpro_popup_state:'';this.remaining=d.remaining??-1;this.limit=d.limit??0;const ctaContainer=document.querySelector('#cta-container');if(ctaContainer){if(d.granted){ctaContainer.style.display='none';ctaContainer.innerHTML='';ctaContainer.classList.remove('nk-paywall-cta-loading',)}else{ctaContainer.style.display='';
88if(d.cta_html){ctaContainer.innerHTML=d.cta_html;ctaContainer.classList.remove('nk-paywall-cta-loading',)}}} 89if(d.granted&&d.content){this.revealContent(d.content)} 90if(d.granted&&typeof jQuery!=='undefined'&&typeof jQuery.fn.bxSlider==='function'){const articleEl=document.querySelector('.editor-content')||document.querySelector('.news-full-desc');if(articleEl){const $unslid=jQuery(articleEl).find('.gallery').filter(function(){return!jQuery(this).closest('.bx-wrapper').length});if($unslid.length){$unslid.bxSlider({slideSelector:'.gallery-item',mode:'fade',speed:0,keyboardEnabled:!0,controls:!0,});$unslid.find('.gallery-item a').on('click',function(e){e.preventDefault()})}}} 91if(d.granted&&typeof window.trigger_main==='function'){try{window.trigger_main()}catch(_){}} 92var toolsApp=document.querySelector('body.research-tools #app',);if(toolsApp){toolsApp.style.visibility=d.granted?'visible':'hidden'} 93if(d.cta_html){this.ctaHtml=d.cta_html;if(d.granted){this.injectCta()} 94nkTrack('Paywall','CTA Shown',d.cta)} 95if(d.popup_html&&!d.granted&&!this.popup&&!this._urlPopupPending){this.popupHtml=d.popup_html;this.popup=d.popup;nkTrack('Paywall','Popup Shown',d.popup)} 96this.updateSidebar();this._flushUrlPopupPending();window.dispatchEvent(new CustomEvent('nk-paywall:access-resolved',{detail:{granted:d.granted,loggedIn:d.logged_in,},}),)}).catch(()=>{this.loading=!1;this._flushUrlPopupPending()})},_flushUrlPopupPending(){if(!this._urlPopupPending){return} 97const slug=this._urlPopupPending;this._urlPopupPending=null;this.showPopup(slug,!1,!1,!0)},revealContent(html){const pluginFull=document.querySelector('.nk-paywall-full');const pluginExcerpt=document.querySelector('.nk-paywall-excerpt');const pluginWrap=document.querySelector('.nk-paywall-content-wrap',);if(pluginFull&&pluginExcerpt){if(html){pluginFull.innerHTML=html} 98pluginExcerpt.style.display='none';pluginFull.style.display='';if(pluginWrap){pluginWrap.style.display=''} 99this.processEmbeds(pluginFull);return} 100const full=document.getElementById('fullContent');const excerpt=document.getElementById('excerptContent');const wrapper=document.getElementById('content-wrapper');if(full){full.innerHTML=html;full.style.display='';full.classList.remove('d-none')} 101if(excerpt){excerpt.style.display='none'} 102if(wrapper){wrapper.classList.remove('limited')} 103this.processEmbeds(full||wrapper);const nkproDesc=document.querySelector('.news-full-desc.limited');if(nkproDesc){if(html){nkproDesc.innerHTML=html} 104nkproDesc.classList.remove('limited');this.processEmbeds(nkproDesc)}},processEmbeds(container){if(!container)return;container.querySelectorAll('iframe').forEach((iframe)=>{if(iframe.dataset.src&&!iframe.src){iframe.src=iframe.dataset.src}});container.querySelectorAll('img[data-lazy-src]').forEach((img)=>{img.src=img.dataset.lazySrc});container.querySelectorAll('.wp-caption > a').forEach((a)=>{a.addEventListener('click',(e)=>e.preventDefault())});container.querySelectorAll('.wp-caption-text > a, .image-credit a').forEach((a)=>a.setAttribute('target','_blank'));const prevLityCap=container._nkPaywallLityCapture;if(prevLityCap){container.removeEventListener('click',prevLityCap,!0)} 105container._nkPaywallLityCapture=function(e){if(typeof lity!=='function'){return} 106const t=e.target;if(!t||!t.closest){return} 107let img=t.closest('img:not(.pdf-download)');if(!img&&t.matches&&t.matches('a')){img=t.querySelector('img:not(.pdf-download)')} 108if(!img||!container.contains(img)){return} 109const inGalleryItem=img.closest('.gallery .gallery-item');const isWpMedia=typeof img.className==='string'&&img.className.indexOf('wp-image-')!==-1;if(!inGalleryItem&&!isWpMedia){return} 110e.preventDefault();e.stopPropagation();lity(img.src)};container.addEventListener('click',container._nkPaywallLityCapture,!0,);container.querySelectorAll('.wp-caption img').forEach((img)=>{if(img.closest('.gallery')){return} 111img.addEventListener('mousedown',(e)=>e.preventDefault());img.addEventListener('contextmenu',()=>!1)});container.querySelectorAll('table:not(.table-bordered)').forEach((table)=>{table.classList.add('table','table-bordered');const wrapper=document.createElement('div');wrapper.className='table-responsive';table.parentNode.insertBefore(wrapper,table);wrapper.appendChild(table)});container.querySelectorAll('iframe').forEach((iframe)=>{const src=iframe.getAttribute('src')||'';if(!src.includes('youtu')||(iframe.id&&iframe.id.startsWith('datawrapper'))||iframe.classList.contains('embed-responsive-item')){return} 112iframe.classList.add('embed-responsive-item');const wrapper=document.createElement('div');wrapper.className='ratio ratio-16x9';iframe.parentNode.insertBefore(wrapper,iframe);wrapper.appendChild(iframe)});if(typeof jQuery!=='undefined'&&typeof jQuery.fn.bxSlider==='function'){const $galleries=jQuery(container).find('.gallery');if($galleries.length){$galleries.bxSlider({slideSelector:'.gallery-item',mode:'fade',speed:0,keyboardEnabled:!0,controls:!0,})}} 113container.querySelectorAll('.gallery .gallery-item a').forEach((a)=>{a.addEventListener('click',(e)=>e.preventDefault())});if(typeof jQuery!=='undefined'&&typeof jQuery.fn.twentytwenty==='function'){const $t20=jQuery(container).find('.twentytwenty-container');if($t20.length){setTimeout(()=>$t20.twentytwenty(),1000)}}},injectCta(){if(!this.ctaHtml)return;const target=document.querySelector('.nk-paywall-full')||document.getElementById('fullContent')||document.getElementById('content-wrapper')||document.querySelector('.news-full-desc');if(target&&target.parentNode){let wrapper=target.nextElementSibling;if(!wrapper||!wrapper.classList.contains('nk-paywall-cta-wrapper')){wrapper=document.createElement('div');wrapper.className='nk-paywall-cta-wrapper';target.parentNode.insertBefore(wrapper,target.nextSibling)} 114wrapper.innerHTML=this.ctaHtml}},updateSidebar(){const widgets=document.querySelectorAll('[data-nk-paywall-sidebar]',);if(!widgets.length||this.remaining<0)return;
114widgets.forEach((widget)=>{widget.style.display='';const counter=widget.querySelector('[data-remaining]');if(counter){counter.textContent=this.remaining+'/'+this.limit}})},_popupState(slug){return slug==='nkpro-members-only'&&typeof this.nkproPopupState==='string'&&this.nkproPopupState?this.nkproPopupState:''},_popupCacheKey(slug,state,trial){return[slug,state||'',this.remaining,this.limit,trial?'1':'0',].join('|')},_fetchPopupHtml(slug,state,trial){this._popupCache=this._popupCache||{};const key=this._popupCacheKey(slug,state,trial);if(this._popupCache[key]){return this._popupCache[key]} 115const body=new FormData();body.append('action','nk_paywall_get_popup');body.append('popup',slug);body.append('remaining',this.remaining);body.append('limit',this.limit);if(slug==='nkpro-members-only'&&state){body.append('nkpro_popup_state',state)} 116if(slug==='signup-form'&&trial){body.append('trial','1')} 117const promise=fetch(nkPaywall.ajaxUrl,{method:'POST',body}).then((r)=>r.json()).then((res)=>{if(res&&res.success&&res.data&&res.data.html){return res.data.html} 118throw new Error('nk-paywall: empty popup response')}).catch(()=>{delete this._popupCache[key];return null});this._popupCache[key]=promise;return promise},prefetchPopup(rawSlug,trial){if(!rawSlug){return} 119const slug=resolvePopupSlug(rawSlug);this._fetchPopupHtml(slug,this._popupState(slug),trial)},showPopup(slug,locked,fullscreen,force,trial){const forceOpen=force===!0;if(this.popup&&!forceOpen){return} 120if(this.popup&&forceOpen){if(this._popupHtmlClearTimer){clearTimeout(this._popupHtmlClearTimer);this._popupHtmlClearTimer=null} 121this.popup=null;this.popupLocked=!1;this.popupFullscreen=!1;this.popupHtml=''} 122slug=resolvePopupSlug(slug);const popupLocked=typeof locked==='boolean'?locked:!1;const popupFullscreen=typeof fullscreen==='boolean'?fullscreen:popupLocked;nkTrack('Paywall','Popup Opened',slug);this._fetchPopupHtml(slug,this._popupState(slug),trial).then((html)=>{if(html&&(forceOpen||!this.popup)){if(this._popupHtmlClearTimer){clearTimeout(this._popupHtmlClearTimer);this._popupHtmlClearTimer=null} 123this.popupHtml=html;this.popup=slug;this.popupLocked=popupLocked;this.popupFullscreen=popupFullscreen}},)},_bindModalCloseHandlers(root){if(!root||root.dataset.nkPaywallCloseBound==='1'){return} 124root.dataset.nkPaywallCloseBound='1';const overlay=root.querySelector('.nk-paywall-overlay');const modal=root.querySelector('.nk-paywall-modal');const closeBtn=root.querySelector('#nk-paywall-modal__close');if(modal){modal.addEventListener('click',(event)=>{event.stopPropagation()})} 125if(overlay){overlay.addEventListener('click',(event)=>{if(event.target===overlay&&!this.popupLocked){this.closePopup()}})} 126if(closeBtn){closeBtn.addEventListener('click',()=>{if(!this.popupLocked){this.closePopup()}})}},closePopup(){if(this.popupLocked){return} 127this.popup=null;this.popupLocked=!1;this.popupFullscreen=!1;if(this._popupHtmlClearTimer){clearTimeout(this._popupHtmlClearTimer);this._popupHtmlClearTimer=null} 128this._popupHtmlClearTimer=setTimeout(()=>{this._popupHtmlClearTimer=null;if(!this.popup){this.popupHtml=''}},500)},}));Alpine.data('nkPaywallSignup',()=>({isLoggedIn:typeof nkPaywall!=='undefined'&&nkPaywall.loggedIn==='1',isTrial:!1,isNknews:typeof nkPaywall!=='undefined'&&nkPaywall.site==='nknews',step:1,plans:[],plansLoading:!1,signupGateway:'stripe',selectedPlan:0,signupNonce:'',stripe:null,cardElement:null,cardMounted:!1,needsProfile:!1,exUser:!1,discount:0,sp:!1,couponError:{error:!0,msg:''},tossPayment:null,tossCustomerKey:'',supportEmail:typeof nkPaywall!=='undefined'&&nkPaywall.signupSupportEmail?nkPaywall.signupSupportEmail:'[email protected]',successCheckIcon:(()=>{const color=(typeof nkPaywall!=='undefined'&&nkPaywall.primaryColor)||'#ce2e2c';const encoded=encodeURIComponent(color);return `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='53' height='53' viewBox='0 0 53 53'%3E%3Cpath fill='${encoded}' d='M26.5 0C11.865 0 0 11.865 0 26.5S11.865 53 26.5 53 53 41.135 53 26.5 41.136 0 26.5 0zm-4.861 40.113L9.97 28.445l3.89-3.89 7.779 7.78L39.14 14.831l3.89 3.89L21.639 40.113z'/%3E%3C/svg%3E`})(),details:{preferred_name:'',full_name:'',email:'',password:'',name_on_card:'',agreement:!1,privacy:!1,conf:!1,profession:typeof nkPaywall!=='undefined'&&nkPaywall.profession?nkPaywall.profession:'',country:typeof nkPaywall!=='undefined'&&nkPaywall.country?nkPaywall.country:'',coupon_code:'',stripeToken:'',livemode:!1,plan:0,},confirmPassword:'',errors:[],paymentError:'',submitting:!1,ajaxUrl:'/wp-admin/admin-ajax.php',ngoDocumentFile:null,ngoDocumentLabel:'',ngoDocumentOnFile:typeof nkPaywall!=='undefined'&&!!nkPaywall.ngoDocumentOnFile,formatPrice(amount){const n=Number(String(amount).replace(/,/g,''));if(this.signupGateway==='toss'){return Math.round(n).toLocaleStr
128ing('en-US',{maximumFractionDigits:0,minimumFractionDigits:0,})} 129return(Math.round(n*100)/100).toFixed(2)},init(){if(typeof nkPaywall!=='undefined'&&nkPaywall.ajaxUrl){this.ajaxUrl=nkPaywall.ajaxUrl} 130this.isTrial=this.$el.dataset.trial==='1';var tossState=window.__nkPaywallTossReturnState||null;if(tossState){if(tossState.type==='fail'){this.paymentError=tossState.message||'Payment failed. Please try again.';this.$nextTick(()=>{window.__nkPaywallTossReturnState=null});return} 131if(tossState.type==='success'){this.step=4;if(!window.__nkPaywallTossFinalizing){window.__nkPaywallTossFinalizing=!0;var tossReturn=typeof window!=='undefined'?window.nkPaywallTossReturn:null;this.$nextTick(()=>{window.__nkPaywallTossReturnState=null;this.finalizeTossReturn(tossState,tossReturn)})} 132return}} 133if(this.isLoggedIn){const userData=typeof nkPaywall!=='undefined'&&nkPaywall.userData?nkPaywall.userData:null;if(userData){this.details.email=userData.email||this.details.email;this.details.preferred_name=userData.preferred_name||this.details.preferred_name;this.details.full_name=userData.full_name||this.details.full_name;this.details.profession=userData.profession||this.details.profession;this.details.country=userData.country||this.details.country} 134this.details.agreement=!0;this.details.privacy=!0;if(!this.details.profession||!this.details.country){this.needsProfile=!0}else{this.errors=!1;this.step=2;if(this.isTrial){this.loadPlans().then(()=>this.autoSelectTrialPlan())}else{this.loadPlans()}}}},async finalizeTossReturn(tossState,tossReturn){try{const result=await tossReturn.finalizeSignup(tossState.customerKey,tossState.authKey,);if(!result.ok){this.step=3;this.paymentError=result.message||'Could not complete subscription.';return} 135this.onPaymentSuccess({redirect:result.redirectUrl||tossReturn.redirectUrl||(typeof nkPaywall!=='undefined'&&nkPaywall.homeUrl?nkPaywall.homeUrl+'profile':'/profile'),})}catch(_){this.step=3;this.paymentError='Could not complete subscription.'}},ngoSignupNeedsDocument(){if(this.details.profession!=='ngo'){return!1} 136if(this.isTrial){return!1} 137if(this.isNknews){return!1} 138if(this.isLoggedIn&&this.ngoDocumentOnFile){return!1} 139return!0},pickNgoDocument(){this.$refs.ngoDocumentInput?.click()},onNgoDocumentSelected(event){const input=event.target;const f=(input.files&&input.files[0])||null;input.value='';this.ngoDocumentFile=f;this.ngoDocumentLabel=f?f.name:''},completeSignupUsesNgoMultipart(){return(this.details.profession==='ngo'&&this.ngoSignupNeedsDocument()&&!!this.ngoDocumentFile)},postCompleteSignup(success){const payload=JSON.parse(JSON.stringify(this.details));if(this.completeSignupUsesNgoMultipart()){const fd=new FormData();fd.append('action','complete_signup');fd.append('data',JSON.stringify(payload));fd.append('ngo_document',this.ngoDocumentFile);jQuery.ajax({url:this.ajaxUrl,type:'POST',data:fd,processData:!1,contentType:!1,dataType:'json',success,});return} 140jQuery.ajax({url:this.ajaxUrl,type:'post',dataType:'json',data:{action:'complete_signup',data:payload,},success,})},get isToss(){const key=typeof nkPaywall!=='undefined'?nkPaywall.tossClientKey:'';return!!(key&&this.details.country==='South Korea')},ensureTossCustomerKey(){if(!this.tossCustomerKey){this.tossCustomerKey='nk_'+Math.random().toString(36).slice(2)+Date.now().toString(36)}},loadTossSdk(){if(typeof window.TossPayments!=='undefined'){return Promise.resolve()} 141return new Promise((resolve,reject)=>{const s=document.createElement('script');s.src='https://js.tosspayments.com/v2/standard';s.async=!0;s.onload=()=>resolve();s.onerror=reject;document.head.appendChild(s)})},ensureTossPayment(){const clientKey=typeof nkPaywall!=='undefined'?nkPaywall.tossClientKey:'';if(!clientKey||!this.tossCustomerKey||typeof window.TossPayments==='undefined'){return} 142const toss=window.TossPayments(clientKey);this.tossPayment=toss.payment({customerKey:this.tossCustomerKey,})},unmountCard(){if(this.cardElement&&this.cardMounted){try{this.cardElement.unmount()}catch(e){} 143this.cardMounted=!1}},async loadPlans(){this.plansLoading=!0;const formData=new FormData();formData.append('action','load_signup_plans');formData.append('nonce',nkPaywall.nonce);formData.append('is_trial',this.isTrial);
143if(!this.isLoggedIn){formData.append('email',this.details.email);formData.append('name',this.details.preferred_name||this.details.full_name,)} 144if(!this.isLoggedIn||this.needsProfile){formData.append('profession',this.details.profession);formData.append('country',this.details.country)} 145return fetch(this.ajaxUrl,{method:'POST',body:formData,}).then((r)=>r.json()).then((res)=>{if(res.ex_user){this.exUser=!0;return} 146this.exUser=!1;this.plans=res.plans||[];this.signupGateway=String(res.type||'stripe').toLowerCase()==='toss'?'toss':'stripe';this.sp=!!res.sp;this.signupNonce=res.signup_nonce;return this.initStripe(res.published_key)}).finally(()=>{this.plansLoading=!1})},async initStripe(key){if(!key)return;if(!document.querySelector('script[src*="js.stripe.com"]')){await new Promise((resolve,reject)=>{const s=document.createElement('script');s.src='https://js.stripe.com/v3/';s.onload=resolve;s.onerror=reject;document.head.appendChild(s)})}else{await new Promise((resolve)=>{const poll=setInterval(()=>{if(typeof window.Stripe!=='undefined'){clearInterval(poll);resolve()}},100);setTimeout(()=>{clearInterval(poll);resolve()},10000)})} 147this.stripe=window.Stripe(key);const fontCss=typeof nkPaywall!=='undefined'&&nkPaywall.signupStripeFontCss?nkPaywall.signupStripeFontCss:'';const fonts=fontCss?[{cssSrc:fontCss}]:[];const accent=typeof nkPaywall!=='undefined'&&nkPaywall.primaryColor?nkPaywall.primaryColor:'#ce2e2c';const elements=this.stripe.elements({fonts});this.cardElement=elements.create('card',{style:{base:{fontSize:'14px',fontFamily:'"CircularStd", "Helvetica Neue", Helvetica, Arial, sans-serif',},invalid:{color:accent,iconColor:accent,':-webkit-autofill':{color:accent},},},})},mountCard(){if(this.isToss||!this.cardElement||this.cardMounted)return;const el=document.getElementById('nk-paywall-stripe-card');if(el){this.cardElement.mount(el);this.cardMounted=!0}},currentPlan(){return this.selectedPlan>0?this.plans[this.selectedPlan-1]:null},isStudentStripePlan(){const p=this.currentPlan();return p&&p.stripeplan&&p.stripeplan.indexOf('student')>-1},choosePlan(index){this.unmountCard();this.selectedPlan=index+1;this.details.plan=this.currentPlan();this.resetCoupon();this.trackGoal(10);this.trackPlanGoal('select');this.step=3;this.$nextTick(()=>this.mountCard())},autoSelectTrialPlan(){if(!this.isTrial||this.exUser){return} 148const yearlyIndex=this.plans.findIndex((p)=>(p.interval||'').toLowerCase()==='year',);if(yearlyIndex>-1){this.choosePlan(yearlyIndex)}},canGoTo(target){if(target===this.step)return!1;if(target===1)return!this.isLoggedIn||this.needsProfile;if(target===2)return this.errors===!1;if(target===3) 149return(this.errors===!1&&this.selectedPlan>0&&this.selectedPlan<=this.plans.length);return!1},goTo(target){if(target===this.step)return;if(target===1&&this.isLoggedIn&&!this.needsProfile)return;if(target===2&&this.step===1){this.validateFields();return} 150if(this.canGoTo(target)){if(target!==3&&this.step===3){this.unmountCard()} 151this.step=target;if(target===3){this.$nextTick(()=>this.mountCard())}}},resetCoupon(){this.couponError={error:!0,msg:''};this.discount=0;this.details.coupon_code=''},handleCoupon(){if(!this.details.coupon_code.length){this.couponError.msg='';this.discount=0;return} 152jQuery.ajax({url:this.ajaxUrl,type:'post',dataType:'json',data:{action:'validate_coupon',coupon_code:this.details.coupon_code,plan_id:this.currentPlan().plan_id,},success:(result)=>{this.couponError=result;if(result.error){this.discount=0;return} 153this.discount=result.amount_type==='percent'?(this.currentPlan().price*result.amount)/100:result.amount},})},hasError(field){return(Array.isArray(this.errors)&&this.errors.indexOf(field)>-1)},pwRulePass(rule){return(!Array.isArray(this.errors)||this.errors.indexOf(rule)===-1)},validatePassword(){this.errors=[];const pw=this.details.password;if(pw.length<8)this.errors.push('minimum');if(!/[A-Z]/.test(pw))this.errors.push('upper');if(!/[a-z]/.test(pw))this.errors.push('lower');if(!/[0-9]/.test(pw))this.errors.push('number');if(!/[^A-Za-z0-9]/.test(pw))this.errors.push('special')},validateFields(){this.errors=[];if(!this.details.preferred_name.length) 154this.errors.push('preferred_name');if(!this.needsProfile){if(!this.details.email.length||!nkPaywallValidateEmail(this.details.email)) 155this.errors.push('email');const pw=this.details.password;if(pw.length<8)this.errors.push('minimum');if(!/[A-Z]/.test(pw))this.errors.push('upper');if(!/[a-z]/.test(pw))this.errors.push('lower');if(!/[0-9]/.test(pw))this.errors.push('number');if(!/[^A-Za-z0-9]/.test(pw))this.errors.push('special');if(pw!==this.confirmPassword)this.errors.push('cpassword');
155if(!this.details.agreement)this.errors.push('agreement');if(!this.details.privacy)this.errors.push('privacy')} 156if(!this.details.profession)this.errors.push('profession');if(!this.details.country)this.errors.push('country');this.$nextTick(()=>{if(this.errors.length)return;this.loadPlans().then(()=>{if(!this.exUser){this.errors=!1;this.step=2;this.autoSelectTrialPlan()}})})},onSubmit(){if(this.step!==3||this.submitting)return;this.errors=[];if(this.ngoSignupNeedsDocument()&&!this.ngoDocumentFile){this.errors.push('ngo_document')} 157if(this.isToss){if(this.isStudentStripePlan()&&!this.details.conf){this.errors.push('conf')} 158if(this.errors.length)return;this.errors=!1;this.submitting=!0;this.trackPlanGoal('payment');this.submitToss();return} 159if(!this.details.name_on_card.trim().length){this.errors.push('name_on_card')} 160if(this.isStudentStripePlan()&&!this.details.conf){this.errors.push('conf')} 161if(this.errors.length)return;this.errors=!1;this.submitting=!0;this.trackPlanGoal('payment');this.stripe.createPaymentMethod('card',this.cardElement).then((result)=>{if(result.error){this.submitting=!1;this.step=3;this.$nextTick(()=>{const el=this.$el.querySelector('#nk-paywall-card-errors',);if(el) 162el.innerHTML='<div>'+result.error.message+'</div>'})}else{this.processPayment(result.paymentMethod)}})},async submitToss(){const errEl=this.$el.querySelector('#nk-paywall-card-errors');if(errEl)errEl.innerHTML='';try{await this.loadTossSdk();this.ensureTossCustomerKey();this.ensureTossPayment();if(!this.tossPayment){throw new Error('Toss Payments could not be initialized.')} 163const plan=this.currentPlan();const plain=JSON.parse(JSON.stringify(this.details));plain.plan=plan;const customerData={email:plain.email,password:plain.password,preferred_name:plain.preferred_name,full_name:plain.full_name,stripeplan:plan.stripeplan,coupon_code:plain.coupon_code||'',profession:plain.profession,country:plain.country,agreement:plain.agreement,privacy:plain.privacy,conf:plain.conf,signup_nonce:this.signupNonce,};sessionStorage.setItem('tossCustomerKey_'+this.tossCustomerKey,JSON.stringify(customerData),);if(this.details.profession==='ngo'&&this.ngoDocumentFile){const prepFd=new FormData();prepFd.append('action','prepare_toss_signup');prepFd.append('customerKey',this.tossCustomerKey);prepFd.append('customerData',JSON.stringify(customerData));prepFd.append('ngo_document',this.ngoDocumentFile);const prepRes=await fetch(this.ajaxUrl,{method:'POST',body:prepFd,credentials:'same-origin',});const prepBody=await prepRes.json().catch(()=>({}));if(!prepRes.ok||prepBody.success!==!0){let msg='Could not prepare signup.';const d=prepBody.data;if(typeof d==='string'){msg=d}else if(d&&typeof d.message==='string'){msg=d.message} 164throw new Error(msg)}}else{try{await fetch(this.ajaxUrl+'?action=prepare_toss_signup',{method:'POST',headers:{'Content-Type':'application/json'},credentials:'same-origin',body:JSON.stringify({customerKey:this.tossCustomerKey,customerData:customerData,}),},)}catch(_){}} 165let successUrl=typeof nkPaywall!=='undefined'&&nkPaywall.tossSuccessUrl?nkPaywall.tossSuccessUrl:window.location.href;const home=typeof nkPaywall!=='undefined'&&nkPaywall.homeUrl?nkPaywall.homeUrl:window.location.origin+'/';const sep=home.indexOf('?')===-1?'?':'&';const failUrl=home+sep+'nk_paywall_toss=fail&customerKey='+encodeURIComponent(this.tossCustomerKey);try{sessionStorage.setItem('nk_paywall_toss_pending','1')}catch(_){} 166await this.tossPayment.requestBillingAuth({method:'CARD',customerEmail:plain.email,customerName:plain.full_name||plain.preferred_name,successUrl:successUrl,failUrl:failUrl,})}catch(e){this.submitting=!1;if(errEl){errEl.innerHTML='<div>'+(e&&e.message?e.message:'Payment request failed.')+'</div>'}}},processPayment(pm){this.step=4;this.details.stripeToken=pm.id;this.details.livemode=pm.livemode;this.details.signup_nonce=this.signupNonce;this.details.plan=this.currentPlan();this.details.is_trial=this.isTrial;if(this.couponError.error)this.details.coupon_code='';this.postCompleteSignup((result)=>{if(result.error){this.submitting=!1;this.step=3;const el=this.$el.querySelector('#nk-paywall-card-errors',);if(el)el.innerHTML='<div>'+result.msg+'</div>'}else if(result.requires_action){this.handle3DS(result)}else{this.onPaymentSuccess(result)}})},handle3DS(response){this.details.customer_id=response.customer_id;this.details.payment_intent_id=response.payment_intent_id;this.stripe.handleCardPayment(response.payment_intent_client_secret).then((result)=>{if(result.error){this.submitting=!1;this.step=3;const el=this.$el.querySelector('#nk-paywall-card-errors',);if(el) 167el.innerHTML='<div>'+(result.error.message||'')+'</div>'}else{this.postCompleteSignup((r)=>{if(r.error){this.submitting=!1;this.step=3;const el=this.$el.querySelector('#nk-paywall-card-errors',);if(el) 168el.innerHTML='<div>'+r.msg+'</div>'}else{this.onPaymentSuccess(r)}})}})},onPaymentSuccess(result){if(this.details.livemode){this.googleConversion(this.details.plan.plan_id);this.twitterConversion(this.details.plan.plan_id)} 169this.step=5;this.trackPlanGoal('complete');if(result.redirect){setTimeout(()=>{window.location.href=result.redirect},3000)}},trackPlanGoal(stage){const p=this.currentPlan();if(!p)return;const map={Annual:{select:11,payment:14,complete:17},Monthly:{select:12,payment:15,complete:18},Student:{select:13,payment:16,complete:19},};if(map[p.name]&&map[p.name][stage]) 170this.trackGoal(map[p.name][stage])},trackGoal(goalId){if(typeof nkPaywall==='undefined'||(nkPaywall.site!=='nknews'&&nkPaywall.site!=='koreapro')){return} 171window._paq=window._paq||[];
171window._paq.push(['trackGoal',goalId])},googleConversion(planId){const s=document.createElement('script');s.async=!0;s.src='https://www.googletagmanager.com/gtag/js?id=AW-994398360';document.body.appendChild(s);
vendor: 118 bytes, lines 171-172
171window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)} 172gtag('js',new Date());gtag('config','
172AW-994398360
vendor: 3 bytes, line 172
172');
172const conversions={3:'AW-994398360/2891CI_1-aIYEJihldoD',4:'AW-994398360/2891CI_1-aIYEJihldoD',5:'AW-994398360/zs4aCLm4jKMYEJihldoD',};if(conversions[planId]){gtag('event','conversion',{send_to:conversions[planId],transaction_id:'',})}},twitterConversion(planId){!(function(e,t,n,s,u,a){e.twq||((s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments)}),(s.version='1.1'),(s.queue=[]),(u=t.createElement(n)),(u.async=!0),(u.src='https://static.ads-twitter.com/uwt.js'),(a=t.getElementsByTagName(n)[0]),a.parentNode.insertBefore(u,a))})(window,document,'script');twq('init','nyi3w');twq('track','PageView');const events={3:'tw-nyi3w-oecjf',4:'tw-nyi3w-oecjg',5:'tw-nyi3w-oecjh',};if(events[planId])twq('event',events[planId],{})},}));Alpine.data('nkPaywallSignin',()=>({email:'',password:'',authCode:'',mode:'credentials',errors:[],hasError(field){return(Array.isArray(this.errors)&&this.errors.indexOf(field)>-1)},clearFieldError(field){if(!Array.isArray(this.errors)){return} 173const i=this.errors.indexOf(field);if(i>-1){this.errors.splice(i,1)}},validate(){this.errors=[];if(this.mode==='auth_code'){if(!(this.authCode||'').trim().length){this.errors.push('authCode')}}else{const e=(this.email||'').trim();if(!e.length||!nkPaywallValidateEmail(e)){this.errors.push('email')} 174if(!(this.password||'').length){this.errors.push('password')}} 175return this.errors.length===0},onSubmit(event){const errEl=document.getElementById('nk-paywall-signin-error');if(errEl){errEl.style.display='none';errEl.textContent=''} 176if(!this.validate()){event.preventDefault()}},}))} 177document.addEventListener('alpine:init',registerNkPaywallAlpineComponents);registerNkPaywallAlpineComponents();(function nkPaywallInitServerRenderedGalleries(){const selector='.news-full-desc .gallery, #fullContent .gallery, .editor-content .gallery';function run(){if(typeof jQuery==='undefined'||typeof jQuery.fn.bxSlider!=='function'||!document.body||!document.body.classList.contains('single')){return!1} 178jQuery(selector).each(function(){const $g=jQuery(this);if($g.closest('.bx-viewport').length){return} 179$g.bxSlider({slideSelector:'.gallery-item',mode:'fade',speed:0,keyboardEnabled:!0,controls:!0,})});return!0} 180function schedule(){if(!document.body||!document.body.classList.contains('single')){return} 181if(run()){return} 182if(typeof jQuery==='undefined'){return} 183let attempts=0;const max=100;const id=window.setInterval(function(){attempts+=1;if(run()){window.clearInterval(id)}else if(attempts>=max){window.clearInterval(id)}},50)} 184if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',schedule)}else{schedule()}})()
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.