PageSourceSearch

https://www.thenation.com/wp-content/themes/thenation-2023/inc/sfg-subscription/assets/sfg.js?ver=1790707528

js thenation.com collected 2026-10-01 07:15:47 UTC 34,243 bytes, 540 lines download raw bytes

1function getUrlParameter(e) {
2    e = e.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
3    var r = new RegExp("[\\?&]" + e + "=([^&#]*)").exec(location.search);
4    return null === r ? "" : decodeURIComponent(r[1].replace(/\+/g, " "))
5}
6
7function getCookie(e) {
8    var r = new RegExp(e + "=([^;]+)").exec(document.cookie);
9    return null != r ? unescape(r[1]) : null
10}
11
12function isValidEmailAddress(e) {
13    return new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i).test(e)
14}
15
16function isValidPassword(e) {
17    return new RegExp(/^[a-zA-Z0-9!@#$%]{6,}$/i).test(e)
18}
19jQuery(document).ready(function() {
20    (jQuery(window).width() < 800 || jQuery(window).height() < 500) && jQuery(".thickbox").each(function(e, r) {
21        var a = .75 * window.innerWidth,
22            s = .75 * window.innerHeight,
23            t = jQuery(this).attr("href"),
24            n = "width=" + a + "&height=" + s;
25        t = t.replace("width=600&height=550", n), jQuery(this).attr("href", t)
26    })
27}), jQuery(window).resize(function() {
28    (jQuery(window).width() < 800 || jQuery(window).height() < 500) && jQuery(".thickbox").each(function(e, r) {
29        var a = .75 * window.innerWidth,
30            s = .75 * window.innerHeight,
31            t = jQuery(this).attr("href"),
32            n = "width=" + a + "&height=" + s;
33        t = t.replace("width=600&height=550", n), jQuery(this).attr("href", t)
34    })
35}), jQuery(document).on("click", ".pcdLoginButton", function(e) {
36    e.preventDefault();
37    var r = jQuery(this),
38        a = r.closest(".search__form"),
39        s = a.find(".pcd_email"),
40        t = a.find(".pcd_pwd"),
41        n = !1,
42        i = r.parents(".lightbox-form").parent().attr("id");
43    if (a.find("#checkbox3").prop("checked") && (n = !0), a.find(".e_mail_field_con").find(".errormsg").remove(), a.find(".pwd_field_con").find(".errormsg").remove(), a.find("#login-recaptcha").find(".errormsg").remove(), s.val().length < 1) return a.find(".e_mail_field_con").append('<p class="errormsg">E-Mail is a required field.</p>'), s.removeClass("valid").addClass("error"), !1;
44    if (!isValidEmailAddress(s.val())) return a.find(".e_mail_field_con").append('<p class="errormsg">Not a valid E-Mail Address.</p>'), s.removeClass("valid").addClass("error"), !1;
45    if (t.val().length < 1) return a.find(".pwd_field_con").append('<p class="errormsg">Password is a required field.</p>'), t.removeClass("valid").addClass("error"), !1;
46    if ("" == jQuery("#login-recaptcha-verify").val()) return $("#login-recaptcha").append('<p class="errormsg">Please Validate Captcha.</p>'), t.removeClass("valid").addClass("error"), !1;
47    r.hide(), a.find("img.loaderImg").show();
48    var o = {
49        action: "sfg_action",
50        email: s.val(),
51        password: t.val(),
52        remember: n,
53        
54    };
55    jQuery.ajax({
56        url: ajax_object.ajax_url,
57        type: "post",
58        data: o,
59        success: function(e) {
60            if ("string" == typeof e && null != e && "null" != e)
61                if ("success" == (e = JSON.parse(e)).status) {
62                    null != typeof getUrlParameter("reader_id") && null != typeof tp && tp.push(["init", function() {
63                        tp.amp.login({
64                            userToken: e.token,
65                            userState: {
66                                userType: "subscriber"
67                            },
68                            loginSuccess: function() {
69                                var e = tp.util.getQueryParamByName("return");
70                                window.location.href = e + "#success=true"
71                            }
72                        })
73                    }]);
74                    var s = getUrlParameter("redirect_uri");
75                    if (null != typeof s && -1 < s.indexOf("applenews://") && null != typeof e.token) {
76                        var t = e.token;
77                        return window.location.href = s + "?access_token=" + t, !1
78                    }
79                    var n = getUrlParameter("fb_instant_login");
80                    if (null != typeof n && "" != n) return window.location.href = "https://" + window.location.hostname + "/fb-instant-login/?nc=1", !1;
81                    var o = document.referrer;
82                    if (o.indexOf("/logout/") > -1 && (o = "https://" + window.location.hostname), "TB_ajaxContent" === i) o = window.location.href;
83                    else {
84                        var l = getUrlParameter("return_to");
85                        "" != l && null != typeof l && (o = l)
86                    }
87                    if (null != getCookie("SESSname") && o.indexOf("hash") > -1 && o.indexOf("reset") > -1 && (o = window.location.hostname), null != e.list && null != e.list && "" != e.list) {
88                        var d = localStorage.getItem("tn_sfg_local");
89                        null != d && null != d && "" != d && localStorage.removeItem("tn_sfg_local");
90                        var u = JSON.parse(e.list);
91                        d = [], u.forEach(function(e, r) {
92                            d.push(parseInt(e))
93                        }), localStorage.setItem("tn_sfg_local", JSON.stringify(d))
94                    }
95                    window.location.replace(o)
96                } else "warning" == e.status ? (a.find("img.loaderImg").hide(), r.show(), a.closest(".row").find("#primaryError").show(), a.closest(".row").find("#primaryError > .error > p.errormsg").html(e.msg)) : "fail" == e.status && (a.find("img.loaderImg").hide(), r.show(), a.closest(".row").find("#primaryError").show(), a.closest(".row").find("#primaryError > .error > p.errormsg").html(e.msg));
97            else a.find("img.loaderImg").hide(), r.show(), a.closest(".row").find("#primaryError").show(), a.closest(".row").find("#primaryError > .error > p.errormsg").html("We are unable to login at this time. Please try again later.")
98        }
99    })
100}), jQuery(document).on("click", ".freeRegButton", function(e) {
101    e.preventDefault();
102    var r = jQuery(this),
103        a = r.closest(".search__form"),
104        s = a.find(".pcd_email"),
105        t = a.find(".pcd_pwd");
106    r.parents(".lightbox-free_reg-form").parent().attr("id");
107    if (a.find(".e_mail_field_con").find(".errormsg").remove(), a.find(".pwd_field_con").find(".errormsg").remove(), s.removeClass("error").addClass("val
107id"), t.removeClass("error").addClass("valid"), s.val().length < 1) return a.find(".e_mail_field_con").append('<p class="errormsg">E-Mail is a required field.</p>'), s.removeClass("valid").addClass("error"), !1;
108    if (!isValidEmailAddress(s.val())) return a.find(".e_mail_field_con").append('<p class="errormsg">Not a valid E-Mail Address.</p>'), s.removeClass("valid").addClass("error"), !1;
109    if (t.val().length < 1) return a.find(".pwd_field_con").append('<p class="errormsg">Password is a required field.</p>'), t.removeClass("valid").addClass("error"), !1;
110    if ("" == jQuery("#register-recaptcha-verify").val()) return a.find(".pwd_field_con").append('<p class="errormsg">Please refresh page and try again.</p>'), !1;
111    a.find("img.loaderImg").show();
112    var n = {
113        action: "tn_create_user",
114        email: s.val(),
115        password: t.val()
116    };
117    jQuery.ajax({
118        url: ajax_object.ajax_url,
119        type: "post",
120        data: n,
121        success: function(e) {
122            if ("string" == typeof e && null != e && "null" != e)
123                if ("success" == (e = JSON.parse(e)).status) {
124                    a.find("img.loaderImg").hide(), a.closest(".row").find("#primaryError-reg").hide(), a.closest(".row").find("#primarySuccess-reg").show();
125                    var r = jQuery(".tn-login-close").attr("href");
126                    a.closest(".row").find("#primarySuccess-reg > .success > p.successmsg").html("You have successfully signed up. Click <a href='" + r + "'>here</a> to continue reading. An activation link has been sent to your email address. Please check your inbox or spam folder for the link.")
127                } else "warning" == e.status ? (a.find("img.loaderImg").hide(), a.closest(".row").find("#primarySuccess-reg").hide(), a.closest(".row").find("#primaryError-reg").show(), a.closest(".row").find("#primaryError-reg > .error > p.errormsg").html(e.msg)) : "fail" == e.status && (a.find("img.loaderImg").hide(), a.closest(".row").find("#primarySuccess-reg").hide(), a.closest(".row").find("#primaryError-reg").show(), a.closest(".row").find("#primaryError-reg > .error > p.errormsg").html(e.msg));
128            else a.find("img.loaderImg").hide(), a.closest(".row").find("#primarySuccess-reg").hide(), a.closest(".row").find("#primaryError-reg").show(), a.closest(".row").find("#primaryError-reg > .error > p.errormsg").html("Something went wrong.")
129        }
130    })
131}), jQuery(document).on("click", "#reset_password", function (r) {
132    r.preventDefault();
133    var s = jQuery(this),
134        a = s.closest("#lightboxform"),
135        t = a.find("#user_new_password"),
136        n = a.find("#user_retype_password"),
137        o = getUrlParameter("email");
138    if (
139        ((i = getUrlParameter("hash")),
140        a.find(".re_pwd_field_con").find(".errormsg").remove(),
141        a.find(".pwd_field_con").find(".errormsg").remove(),
142        n.removeClass("error").addClass("valid"),
143        t.removeClass("error").addClass("valid"),
144        t.val().length < 1)
145    )
146        return t.append('<p class="errormsg">Password is a required field.</p>'), t.addClass("error"), !1;
147    if (!isValidPassword(t.val()))
148        return (
149            a.find(".pwd_field_con").append('<p class="errormsg">A minimum 6 characters password length is required which must include letter, number and special character.<br>Special Characters like ! @ # $ % are only allowed.</p>'),
150            t.removeClass("valid").addClass("error"),
151            !1
152        );
153    if ((n.val().length < 1 && (a.find(".re_pwd_field_con").append('<p class="errormsg">Confirmation Password is a required field.</p>'), n.removeClass("valid").addClass("error")), t.val() != n.val()))
154        return a.find(".re_pwd_field_con").append('<p class="errormsg">The password and confirmation password do not match.</p>'), n.removeClass("valid").addClass("error"), !1;
155    if ("" == jQuery("#reset-recaptcha-verify").val()) return a.find(".re_pwd_field_con").append('<p class="errormsg">Please refresh page and try again.</p>'), !1;
156    if (o.length < 1) return n.parent().append('<p class="errormsg">There is some error!!</p>
156'), t.removeClass("valid").addClass("error"), n.addClass("error"), !1;
157    s.hide(), a.find("img.loaderImg").show();
158    var l = { action: "freeuser_password_reset_action", email: o, password: t.val(), rpassword: n.val(), token: i };
159    jQuery.ajax({
160        url: ajax_object.ajax_url,
161        type: "post",
162        data: l,
163        success: function (r) {
164            null != r && "null" != r
165                ? "success" == (r = JSON.parse(r)).status
166                    ? (
167                      dataLayer.push({
168                        event: 'account_activate_success',
169                        gaEventAction: 'account-activate-paywall-2026',
170                        gaEventLabel: document.URL
171                      }),
172                      a.find("img.loaderImg").hide(),
173                      s.show(),
174                      a.closest(".row").find("#primaryError-reg").hide(),
175                      a.closest(".row").find("#primarySuccess-reg").show(),
176                      a.closest(".row").find("#primarySuccess-reg > .success > p.successmsg").html("You have successfully set your password."))
177                    : "fail" == r.status &&
178                      (a.find("img.loaderImg").hide(),
179                      s.show(),
180                      a.closest(".row").find("#primarySuccess-reg").hide(),
181                      a.closest(".row").find("#primaryError-reg").show(),
182                      a.closest(".row").find("#primaryError-reg > .error > p.errormsg").html(r.msg))
183                : (a.find("img.loaderImg").hide(),
184                  s.show(),
185                  a.closest(".row").find("#primarySuccess-reg").hide(),
186                  a.closest(".row").find("#primaryError-reg").show(),
187                  a.closest(".row").find("#primaryError-reg > .error > p.errormsg").html("Something went wrong."));
188        },
189    })
190}), jQuery(document).on("click", "#sfg_rest_password", function(e) {
191    e.preventDefault();
192    var r = jQuery(this),
193        a = r.closest("#sfg_password_reset_form"),
194        s = a.find("#sfg_user_email"),
195        t = a.find("#sfg_user_new_password"),
196        n = a.find("#sfg_user_retype_password"),
197        i = getUrlParameter("hash");
198    if (a.find(".errormsg").remove(), a.find("input").removeClass(), s.val().length < 1) return s.parent().append('<p class="errormsg">E-Mail is a required field.</p>'), s.removeClass("valid").addClass("error"), !1;
199    if (!isValidEmailAddress(s.val())) return s.parent().append('<p class="errormsg">Not a valid E-Mail Address.</p>'), s.addClass("error"), !1;
200    if (t.val().length < 1) return t.parent().append('<p class="errormsg">Password is a required field.</p>'), t.addClass("error"), !1;
201    if (!isValidPassword(t.val())) return t.parent().append('<p class="errormsg">A minimum 6 characters password length is required which must include letter, number and special character.<br>Special Characters like ! @ # $ % are only allowed.</p>'), t.addClass("error"), !1;
202    if (n.val().length < 1) return n.parent().append('<p class="errormsg">Password is a required field.</p>'), n.addClass("error"), !1;
203    if (t.val() != n.val()) return n.parent().append('<p class="errormsg">The password and confirmation password do not match.</p>'), t.removeClass("valid").addClass("error"), n.addClass("error"), !1;
204    r.hide(), a.find("img.loaderImg").show();
205    var o = {
206        action: "sfg_password_reset_action",
207        email: s.val(),
208        password: t.val(),
209        token: i
210    };
211    jQuery.ajax({
212        url: ajax_object.ajax_url,
213        type: "post",
214        data: o,
215        success: function(e) {
216            "string" == typeof e ? "success" == (e = JSON.parse(e)).status ? (a.parents(".article-body").html("<p>" + e.msg + "</p>"), document.body.scrollTop = 0, document.documentElement.scrollTop = 0) : "fail" == e.status && (a.find("img.loaderImg").hide(), r.show(), a.find("#sfg_primary_error").show(), a.find("#sfg_primary_error").html('<p class="errormsg">' + e.msg + "</p>")) : !1 === e && (a.find("img.loaderImg").hide(), r.show(), a.find("#sfg_primary_error").show(), a.find("#sfg_primary_error").text('<p class="errormsg">
216SFG Communication Error,Please try again.</p>'))
217        }
218    })
219}), "undefined" != typeof sfg_options && "1" != sfg_options.enable_dash_options && jQuery(document).on("click", ".header_subscribe", function(e) {
220    var r;
221    e.preventDefault(), r = null != getCookie("SESSname") ? document.location.origin + "?sfglogin=1&nc=1" : jQuery(this).attr("href"), window.open(r, "_blank")
222}),
223jQuery(document).on("click", "#cms_rest_password", function(e) {
224    e.preventDefault();
225    var r = jQuery(this),
226        a = r.closest("#sfg_password_reset_form"),
227        s = a.find("#sfg_user_email"),
228        t = a.find("#sfg_user_new_password"),
229        n = a.find("#sfg_user_retype_password"),
230        c = getUrlParameter("hash")
231        i = getUrlParameter("hash");
232    if (a.find(".errormsg").remove(), a.find("input").removeClass(), s.val().length < 1) return s.parent().append('<p class="errormsg">E-Mail is a required field.</p>'), s.removeClass("valid").addClass("error"), !1;
233    if (!isValidEmailAddress(s.val())) return s.parent().append('<p class="errormsg">Not a valid E-Mail Address.</p>'), s.addClass("error"), !1;
234    if (t.val().length < 1) return t.parent().append('<p class="errormsg">Password is a required field.</p>'), t.addClass("error"), !1;
235    if (!isValidPassword(t.val())) return t.parent().append('<p class="errormsg">A minimum 6 characters password length is required which must include letter, number and special character.<br>Special Characters like ! @ # $ % are only allowed.</p>'), t.addClass("error"), !1;
236    if (n.val().length < 1) return n.parent().append('<p class="errormsg">Password is a required field.</p>'), n.addClass("error"), !1;
237    if (t.val() != n.val()) return n.parent().append('<p class="errormsg">The password and confirmation password do not match.</p>'), t.removeClass("valid").addClass("error"), n.addClass("error"), !1;
238    r.hide(), a.find("img.loaderImg").show();
239    var o = {
240        action: "cms_password_reset_action",
241        email: s.val(),
242        password: t.val(),
243        token: i,
244        code: c
245    };
246    jQuery.ajax({
247        url: ajax_object.ajax_url,
248        type: "post",
249        data: o,
250        success: function(e) {
251            "string" == typeof e ? "success" == (e = JSON.parse(e)).status ? (a.parents(".article-body").html("<p>" + e.msg + "</p>"), document.body.scrollTop = 0, document.documentElement.scrollTop = 0) : "fail" == e.status && (a.find("img.loaderImg").hide(), r.show(), a.find("#sfg_primary_error").show(), a.find("#sfg_primary_error").html('<p class="errormsg">' + e.msg + "</p>")) : !1 === e && (a.find("img.loaderImg").hide(), r.show(), a.find("#sfg_primary_error").show(), a.find("#sfg_primary_error").text('<p class="errormsg">SFG Communication Error,Please try again.</p>'))
252        }
253    })
254}), "undefined" != typeof sfg_options && "1" != sfg_options.enable_dash_options && jQuery(document).on("click", ".header_subscribe", function(e) {
255    var r;
256    e.preventDefault(), r = null != getCookie("SESSname") ? document.location.origin + "?sfglogin=1&nc=1" : jQuery(this).attr("href"), window.open(r, "_blank")
257
258}), jQuery(document).on("click", ".pcdResetPasswordButton", function(e) {
259    e.preventDefault();
260    var r = jQuery(this),
261        a = r.closest(".search__form"),
262        s = a.find(".pcd_email"),
263        
264        i = r.parents(".lightbox-form").parent().attr("id");
265    if(a.find(".e_mail_field_con").find(".errormsg").remove(),a.find("#reset-password-recaptcha").find(".errormsg").remove(), s.val().length < 1) return a.find(".e_mail_field_con").append('<p class="errormsg">E-Mail is a required field.</p>'), s.removeClass("valid").addClass("error"), !1;
266    if (!isValidEmailAddress(s.val())) return a.find(".e_mail_field_con").append('<p class="errormsg">Not a valid E-Mail Address.</p>'), s.removeClass("valid").addClass("error"), !1;
267    
268    //if ("" == jQuery("#reset-password-recaptcha-verify").val()) return $("#reset-password-recaptcha").append('<p class="errormsg">Please refresh page and try again.</p>'), s.removeClass("valid").addClass("error"), !1;
269    //r.hide(), a.find("img.loaderImg").show();
270    var o = {
271        action: "reset_password_combined",
272        email: s.val(),
273        
274    };
275    jQuery.ajax({
276        url: ajax_object.ajax_url,
277        type: "post",
278        data: o,
279        success: function(e) {
280           
281            if ("string" == typeof e && null != e && "null" != e)
282                if ("success" == (e = JSON.parse(e)).status) {
283                    a.find("img.loaderImg").hide(), a.closest(".row").find("#primaryError-reg").hide(), a.closest(".row").find("#primarySuccess-reg").show();
284                    var link = jQuery(".tn-login-close").attr("href");
285                    a.closest(".row").find("#primarySuccess-reg > .success > p.successmsg").show(),
286                    a.closest(".row").find("#primarySuccess-reg > .success > p.successmsg").html(e.msg);
287                } else if ("fail" == e.status ){
288                    if (e.errorcode = "107") { 
289                        window.location.href = e.msg;
290                    }
291                    else{
292                        a.find("img.loaderImg").hide(),r.show(), a.closest(".row").find("#primaryError-reg").show(), a.closest(".row").find("#primaryError-reg > .error > p.errormsg").html(e.msg);
293                        a.find("img.loaderImg").hide(), r.show(), a.closest(".row").find("#primaryError").show(), a.closest(".row").find("#primaryError > .error > p.errormsg").html("We are unable to login at this time. Please try again later.");
294                    }
295                }
296                
297        }
298    })
299});
300var admin_name_cookie = getCookie('SESSadminname');
301var is_admin_cookie = getCookie('is_admin');
302	if (is_admin_cookie == "true") {
303		var check_user_logged_in = 1;
304	}
305var e = tnUserInfo();
306if (0 != e) {
307    jQuery("#login_status .header_subscribe").addClass("header-dashboard"), jQuery("#mobile .header_subscribe").addClass("header-dashboard"), "undefined" != typeof sfg_options && "1" == sfg_options.enable_dash_options && (jQuery(".header-dashboard").removeClass("header_subscribe"), jQuery(".header-dashboard").attr("href", "/dashboard"));
308    var article_id = jQuery(".scrolltrace").attr("article-post-id"),
309        tn_sfg_local = localStorage.getItem("tn_sfg_local");
310    null != tn_sfg_local && null != tn_sfg_local && "" != tn_sfg_local && (tn_sfg_local = JSON.parse(tn_sfg_local)).includes(parseInt(article_id)) ? (jQuery(".tn-sfg-a
310dd-to-list").addClass("selected"), jQuery(".tn-sfg-add-to-list").removeClass("hide")) : jQuery(".tn-sfg-add-to-list").removeClass("hide")
311}
312else{
313	if(check_user_logged_in === 1){
314		username = Base64.decode(admin_name_cookie);  
315		username_link = global_vars.admin_link;
316        $("#login_status").html('<a href="'+username_link+'" class="login">'+username+'</a>') 
317    }else{
318        $("#login_status").html('<a href="'+global_vars.login_url+'" class="login">'+global_vars.login_text+'</a>')
319    }
320}
321
322function tnUserPassword(e) {
323    var r = $(e).parents("#tn-dashboard").find('input[name="tn-old-password"]').val(),
324        a = $(e).parents("#tn-dashboard").find('input[name="tn-password"]').val(),
325        s = $(e).parents("#tn-dashboard").find('input[name="tn-cnf-password"]').val(),
326        t = tnUserInfo();
327    0 != t ? a == s ? $.ajax({
328        url: ajax_object.ajax_url,
329        type: "post",
330        data: {
331            action: "sfg_dash_password_reset_action",
332            email: t.email,
333            password: a,
334            old_password: r
335        },
336        dataType: "json",
337        success: function(r) {
338            "success" == r.status ? $(e).next("span").html('<p class="successmsg">Password changed successful.</p>') : $(e).next("span").html('<p class="errormsg">' + r.msg + "</p>")
339        }
340    }) : $(e).next("span").html('<p class="errormsg">New password and Retype password do not match.</p>') : $(e).next("span").html('<p class="errormsg">Something went wrong. Please logout and login again.</p>')
341}
342
343function tnUserInfo() {
344    var e = getCookie("SESSuserinfo");
345    return null != e && null != (e = Base64.decode(e)) && "" != e && null != e && JSON.parse(e)
346}
347
348function tnSailthruList(e) {
349    var r = $(e).find(".tn-newsletter-inner"),
350        a = tnUserInfo(),
351        s = $(".tn-loader");
352    s.show(), 0 != a ? $.ajax({
353        url: ajax_object.ajax_url,
354        type: "post",
355        data: {
356            action: "sfg_dash_sailthru",
357            email: a.email
358        },
359        dataType: "json",
360        success: function(e) {
361            if ("success" == e.status && "" != e.data && null != e.data) {
362                var a = parseInt(Object.keys(e.data).length);
363                if (a > 0)
364                    for (i = 0; i < a; i++) {
365                        var t = e.data[i];
366                        t = t.replace(/[^a-zA-Z0-9-_ ]/g, ""), $("#" + t).length > 0 && $("#" + t).prop("checked", !0)
367                    }
368            }
369            s.hide(), r.removeClass("hidden")
370        }
371    }) : ($(e).find(".tn-user-reading-list").html("<p>Something went wrong. Please logout and login again.</p>"), s.hide())
372}
373
374function tnReadingList(e, r) {
375    $(e).find(".tn-user-reading-list").html("");
376    var a = tnUserInfo(),
377        s = $(".tn-loader");
378    window.scrollTo(0, 0), s.show(), 0 != a ? $.ajax({
379        url: ajax_object.ajax_url,
380        type: "post",
381        data: {
382            action: "sfg_dash_reading_list_action",
383            user_id: a.user_id,
384            page: r
385        },
386        dataType: "json",
387        success: function(r) {
388            "success" == r.status ? "" != r.data && null != r.data ? $(e).find(".tn-user-reading-list").html(r.data) : $(e).find(".tn-user-reading-list").html("<p>Nothing in your reading list</p>") : $(e).find(".tn-user-reading-list").html("<p>" + r.msg + "</p>"), s.hide()
389        }
390    }) : ($(e).find(".tn-user-reading-list").html("<p>Something went wrong. Please logout and login again.</p>"), s.hide())
391}
392
393function tnPremiumList(e) {
394    $(e).find(".tn-premium-list").html("");
395    var r = tnUserInfo(),
396        a = $(".tn-loader");
397    a.show(), 0 != r ? $.ajax({
398        url: ajax_object.ajax_url,
399        type: "post",
400        data: {
401            action: "sfg_dash_premium_list_action"
402        },
403        dataType: "json",
404        success: function(r) {
405            "success" == r.status ? "" != r.data && null != r.data ? $(e).find(".tn-premium-list").html(r.data) : $(e).find(".tn-premium-list").html("<p>No premium content found.</p>") : $(e).find(".tn-premium-list").html("<p>" + r.msg + "</p>"), a.hide()
406        }
407    }) : ($(e).find(".tn-premium-list").html("<p>Something went wrong. Please logout and login again.</p>"), a.hide())
408}
409
410function tnDonationHistory(e) {
411    $(e).find(".tn-donation-text").html("");
412    var r = tnUserInfo(),
413        a = $(".tn-loader");
414    a.show(), 0 != r ? $.ajax({
415        url: ajax_object.ajax_url,
416        type: "post",
417        data: {
418            action: "sfg_donation_history_action",
419            email: r.email
420        },
421        dataType: "json",
422        success: function(r) {
423            "success" == r.status ? "" != r.data && null != r.data ? $(e).find(".tn-donation-text").html(r.data) : $(e).find(".tn-donation-text").html("<p>No donation history found.</p>") : $(e).find(".tn-donation-text").html("<p>" + r.msg + "</p>"), a.hide()
424        }
425    }) : ($(e).find(".tn-donation-text").html("<p>Something went wrong. Please logout and login again.</p>"), a.hide())
426}
427
428function tnAddToReadingList(e, r) {
429    var a = tnUserInfo(),
430        s = $(e);
431    0 != a ? $.ajax({
432        url: ajax_object.ajax_url,
433        type: "post",
434        data: {
435            action: "sfg_add_reading_list_action",
436            user_id: a.user_id,
437            article_id: r
438        },
439        dataType: "json",
440        success: function(e) {
441            if ("success" == e.status) {
442                var a = localStorage.getItem("tn_sfg_local");
443                if (null != a && null != a && "" != a)(a = JSON.parse(a)).includes(r) || a.push(r);
444                else if (null != e.list && null != e.list && "" != e.list) {
445                    var t = JSON.parse(e.list);
446                    a = [], t.forEach(function(e, r) {
447                        a.push(parseInt(e))
448                    })
449                } else(a = []).push(r);
450                localStorage.setItem("tn_sfg_local", JSON.stringify(a)), alert("Article added to your reading list."), s.addClass("selected")
451            } else alert(e.msg)
452        }
453    }) : alert("Something went wrong. Please logout and login again.")
454}
455
456function tnNationRegistration(e) {
457    var r = $(e);
458    return r.find("img.loaderImg").show(), $.ajax({
459        url: ajax_object.ajax_url,
460        type: "post",
461        data: r.serialize(),
462        dataType: "json",
463        success: function(e) {
464            "success" == e.status ? r.find(".wdform_row_msg").html('<p class="successmsg">' + e.msg + "</p>") : r.find(".wdform_row_msg").html('<p class="errormsg">' + e.msg + "</p>"), r.find("img.loaderImg").hide()
465        }
466    }), !1
467}
468document.addEventListener("DOMContentLoaded", function () {
469    var check_user_info = getCookie('SESSuserinfo');
470
471    if (check_user_info !== null) {
472        check_user_info = Base64.decode(check_user_info);
473        check_user_info = JSON.parse(check_user_info);
474        var user_roles = check_user_info.roles;
475       
476        if (user_roles.includes('nation_user') && getCookie('SESSfree_user') !== null) {
477            }
478        else{
479            var resetPasswordDiv = document.querySelector('.dashboard_reset-password');
480            if (resetPasswordDiv) {
481                resetPasswordDiv.style.display = 'none';
482            }
483        }
484    }
485});
486
487function tnNationForgetPassword(e) {
488    var r = $(e);
489    return r.find("img.loaderImg").show(), $.ajax({
490        url: ajax_object.ajax_url,
491        type: "post",
492        data: r.serialize(),
493        dataType: "json",
494        success: function(e) {
495            "success" == e.status ? r.find(".wdform_row_msg").html('<p class="successmsg">' + e.msg + "</p>") : r.find(".wdform_row_msg").html('<p class="errormsg">' + e.msg + "</p>"), r.find("img.loaderImg").hide()
496        }
497    }), !1
498}
499
500function tnRemoveReadingList(e) {
501    var r = $(e);
502    return $.ajax({
503        url: ajax_object.ajax_url,
504        type: "post",
505        data: r.serialize(),
506        dataType: "json",
507        success: function(e) {
508            "success" == e.status ? tnReadingList("#tn-reading-list", 1) : r.find('button[type="submit"]').parent().after('<p class="errormsg">' + e.msg + "</p>"), r.find("img.loaderImg").hide()
509        }
510    }), !1
511}
512
513jQuery(function(e) {
514    var r = tnUserInfo();
515    if (0 != r && ((r.roles.includes("subscriber") || r.roles.includes("premium_subscriber")) && (jQuery(".subscribe .header_subscribe").attr("href", document.location.origin + "?sfglogin=1&nc=1"), e("#login_status .header-dashboard").html("My Account"), e(".tn-sub-only").removeClass("tn-sub-only")), r.roles.includes("nation_user") && null != getCookie("SESSexpireduser") && jQuery(".subscribe .header_subscribe").attr("href", document.location.origin + "?sfglogin=1&nc=1"), r.roles.includes("nation_user") && null != getCookie("SESSfree_user") && e("#login_status .header-dashboard").html("My Account"), null != getCookie("SESSsus_user") && (jQuery("#tn-pr-pass-due").append("<p>Your account is past due. Click <a  href='https://ssl.drgnetwork.com/ecom/NAT/app/live/subcustserv?pagemode=payment&org=NAT&publ=NA&customerno=" + r.user_login + "&postcode=" + r.zip + "&php=Y' target='_blank'>here</a> to pay your bill and regain access to the website.</p>"), jQuery("#tn-pr-pass-para").append("<p>Your account is past due. Click <a  href='https://ssl.drgnetwork.com/ecom/NAT/app/live/subcustserv?pagemode=payment&org=NAT&publ=NA&customerno=" + r.user_login + "&postcode=" + r.zip + "&php=Y' target='_blank'>here</a> to pay your bill and regain access to the website.</p>")), jQuery("#tn-pr-dash-survey").append('<p>Got 5 minutes? <a href="https://www.surveymonkey.com/r/MFZ7ZBZ" target="_blank" id="tn-pr-dash-survey-a">Let us know what you think about your Subscriber Benefits website.</a></p>')), e("#tn-user-dash").length > 0) {
516        var a = e("#tn-user-dash");
517        if (a.find(".tabs-content .content").hide(), a.find(".tabs li a").click(function(r) {
518                var s = e(this).attr("href");
519                if (new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&amp;a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$", "i").test(s)) r.preventDefault(), window.open(s);
520                else {
521                    if (a.find("ul li a").removeClass("active"), a.find(".tabs-content .content").removeClass("active"), e(this).addClass("active"), e(s).addClass("active"), "#tn-reading-list" == s && tnReadingList("#tn-reading-list", 1), "#tn-premium-nation" == s && tnPremiumList("#tn-premium-nation"), "#tn-donation" == s && tnDonationHistory("#tn-donation"), "#tn-newsletter" == s && tnSailthruList("#tn-newsletter"), "#tn-cust-service" == s) {
522                        var t = e("#tn-user-dash-left-nav").height() - e(s).find("h2").height();
523                        e(".tn-cust-service-level-1").css("height", t)
524                    }
525                    "#tn-upgrade-to-subscription" == s ? jQuery("#tn-pr-pass-due").hide() : jQuery("#tn-pr-pass-due").show()
526                }
527            }), 0 != r) {
528            var s = a.find("li.active").children("a").attr("href");
529            if (s.indexOf("tn-dashboard") > -1) {
530                var t = "";
531                null != r.first_name && (t += r.first_name), null != r.last_name && (t += " " + r.last_name), "" == t && null != r.user_login && (t = r.user_login), "" != r.expire_formated && null != r.expire_formated && (e("#tn-billing").removeClass("hide"), e(s).find(".tn-billing-exp").html("<span>" + r.expire_formated + "</span>"))
532            }(r.roles.includes("subscriber") || r.roles.includes("premium_subscriber")) && e(".wp_dash_manage_service").removeClass("hide"), r.roles.includes("nation_user") && null != getCookie("SESSexpireduser") && e(".wp_dash_manage_service").removeClass("hide"), r.roles.includes("nation_user") && null == getCookie("SESSexpireduser") && e(".wp_dash_manage_service_non").removeClass("hide"), e(document).on("click", ".tn-read-list-check-all", function() {
533                var r = e(".tn-read-list-check");
534                1 == e(this).prop("checked") ? r.prop("checked", !0) : r.prop("checked", !1)
535            })
536        }
537    }
538}), $(document).on("click", ".logout_status", function() {
539    event.preventDefault(), localStorage.removeItem("tn_sfg_local"), window.location = $(this).attr("href")
540});

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.