PageSourceSearch

https://nordiclifescience.org/wp-content/themes/nls/assets/js/sesamy-my-account.js?ver=1.5

js nordiclifescience.org collected 2026-10-02 06:17:55 UTC 28,651 bytes, 567 lines download raw bytes

1jQuery(document).ready(function($) {
2
3    if (typeof sesamy === 'undefined') {
4        return;
5    }
6
7    window.myPagesCurrentPage = null;
8    window.myPagesSubcriptions = null;
9
10    // Get 'active' parameter from url. If it's not set, set it to the first item
11    var url = new URL(window.location.href);
12    var selectedPage = url.searchParams.get('sida');
13
14    if (selectedPage === null) {
15        $('.MyPages__template').first().css('display', 'flex');
16        window.myPagesCurrentPage = $('.MyPages__template').first().attr('my-pages-page-id');
17    }
18
19    else {
20        $('.MyPages__template[my-pages-page-id="' + selectedPage + '"]').css('display', 'flex');;
21        window.myPagesCurrentPage = selectedPage;
22    }
23
24    $(document).on('click','[my-pages-id]',function() {
25        var id = $(this).attr('my-pages-id');
26
27        if (id == 'logout') {
28            sesamy.logout().then(function() {
29                location.href = '/';
30            });
31            return;
32        }
33
34        $('.MyPages__template').hide();
35        $('.MyPages__template[my-pages-page-id="' + id + '"]').css('display', 'flex');;
36
37        // Set url parameter
38        var currentUrl = new URL(window.location.href);
39        currentUrl.searchParams.set('sida', id);
40        window.history.replaceState({}, '', currentUrl.href);
41
42        window.myPagesCurrentPage = id;
43
44        // If we are on mobile, scroll to top
45        if ($(window).width() < 768) {
46            $('html, body').animate({
47                scrollTop: 0
48            }, 500);
49        }
50    });
51
52    async function initMyPages() {
53
54        sesamy.isLoggedIn().then(async (isLoggedIn) => {
55
56            $('.MyPages__loading-indicator').hide();
57
58            if (isLoggedIn) {
59
60                const FokusSKU = 'sid:58RAor9IXy_ntdljLH38l';
61
62                const sesamyProfile = await sesamy.getUserProfile();
63                const sesamyEntitlements = await sesamy.getEntitlements();
64                const fulfillmentProductionItems = await sesamy.getFulfillmentProductItems(FokusSKU);
65                const subscriptions = await sesamy.getSubscriptions();
66                const transactions = await sesamy.getTransactions();
67
68                window.myPagesSubcriptions = subscriptions;
69                window.myPagesFulfillmentProductionItems = fulfillmentProductionItems;
70                window.myPagesProfile = sesamyProfile;
71
72                fillChangeSubscriptionAddressForm();
73
74                if (transactions.length > 0) {
75                    var template = $('.MyPages__payment-list-item-template');
76                    transactions.forEach(element => {
77                        var transactionDate = new Date(element.modified);
78                        var item = template.clone();
79                        item.removeClass('hidden');
80                        item.removeClass('MyPages__payment-list-item-template');
81                        item.find('.MyPages__payment-list-item__name').text(transactionDate.toLocaleDateString('en-us', { year: 'numeric', month: 'long', day: 'numeric' }));
82                        item.find('.MyPages__payment-list-item__amount').text(element.totalPrice.toLocaleString('en-us', { style: 'currency', currency: 'EUR' }));
83                        item.find('.my-pages-download-receipt').attr('href', element.receiptUrl);
84                        $('.MyPages__payment-history-list').append(item);
85                    });
86                }
87
88                else {
89                    $('.MyPages__payment-history-list').html("<i>You have no previous payments.</i>");
90                }
91
92                if (fulfillmentProductionItems.count > 0) {
93                    fulfillmentProductionItems.items.forEach(issue => {
94                        $('.my-pages-issues-list').append('<div class="my-pages-issue"><input type="checkbox" id="' + issue.sku + '" item-id="'+issue.itemId+'"><label for="' + issue.sku + '"><img class="cover" src="'+issue.cover+'"><span class="title">' + issue.title + '</span></label></div>');
95                    });
96                }
97                else {
98                    $('.my-pages-select-issue').html("<i>You have no previous editions to choose from.</i>");
99                    $('[my-pages-page-id="report-missing-edition-previous"] .send-missing-issues').hide();
100                    $('.MyPages__card-link--report-missing-edition').hide();
101                }
102
103                var hasActiveSubscription = false;
104                var hasPhysicalSubscription = false;
105
106                if (subscriptions.length > 0) {
107                    var validSubs = 0;
108                    subscriptions.forEach(async subscription => {
109
110                        // Check if the status is 'cancelled', and that the currentPeriodEnd is in the past
111                        if (subscription.status == 'canceled' && new Date(subscription.currentPeriodEnd) < new Date()) {
112                            return;
113                        }
114
115                        validSubs++;
116
117                        var template = $('.MyPages__subscription-card__card__template').first();
118                        var cardHtml = await getSubscriptionCardHtml(subscription, template);
119                        $('.MyPages__subscription-sections').prepend(cardHtml);
120
121                        if (!subscription.hasOwnProperty('cancelAt') || subscription.cancelAt == null || subscription.cancelAt == '') {
122                            $('.my-pages-subscriptions-list').append('<div class="my-pages-issue"><input type="checkbox" id="' + subscription.id + '" item-id="'+subscription.id+'"><label for="' + subscription.id + '"><img class="cover" src="'+subscription.product.image+'"><span class="title">' + subscription.product.name + '</span></label></div>');
123                            hasActiveSubscription = true;
124                        }
125
126                        // If the subscription.product.name has the word 'tidning' in it, then it's a physical subscription
127                        if (subscription.product.name.toLowerCase().indexOf('tidning') > -1) {
128                            hasPhysicalSubscription = true;
129                        }
130                    });
131
132                    $('.MyPages__subscription-card__card__template').closest('.MyPages__card').remove();
133
134                    if (!hasActiveSubscription) {
135                        $('.my-pages-select-issue-to-cancel').html("<i>You have no active subscriptions.</i>");
136                    }
137
138                    if (!hasPhysicalSubscription) {
139                        $('.MyPages__card-link--report-missing-edition').hide();
140                    }
141
142                    if (validSubs < 1) {
143                        $('.MyPages__subscription-card').html("<i>You have no subscriptions.</i>");
144                        $('.my-pages-select-issue-to-cancel').html("<i>You have no subscriptions.</i>");
145                    }
146                }
147                else {
148                    $('.MyPages__subscription-card').html("<i>You have no subscriptions.</i>");
149                    $('.my-pages-select-issue-to-cancel').html("<i>You have no subscriptions.</i>");
150                }
151
152                $('.MyPages__subscription-card .fpg-sesamy-spinner').hide();
153
154                $(document).on('change', '.my-pages-issues-list input[type="checkbox"]', function() {
155                    var checked = $(this).is(':checked');
156                    var issueId = $(this).attr('id');
157                    var issueItemId = $(this).attr('item-id');
158                    var issueTitle = $(this).parent().find('.title').text();
159
160                    if (checked) {
161                        $('.my-pages-selected-issues').append('<div class="my-pages-selected-issue" data-issue-id="' + issueId + '" data-issue-item-id="'+issueItemId+'">' + issueTitle + ' <div class="remove-selected-issue" data-issue-id="' + issueId + '">X</div></div>');
162                    }
163                    else {
164                        $('.my-pages-selected-issues').find('[data-issue-id="' + issueId + '"]').remove();
165                    }
166                });
167
168                $(document).on('change', '.my-pages-subscriptions-list input[type="checkbox"]', function() {
169                    var checked = $(this).is(':checked');
170                    var issueId = $(this).attr('id');
171                    var issueTitle = $(this).parent().find('.title').text();
172
173                    if (checked) {
174                        $('.my-pages-selected-subscriptions-to-be-cancelled').append('<div class="my-pages-selected-issue" data-issue-id="' + issueId + '">' + issueTitle + ' <div class="remove-subscription-to-cancel" data-issue-id="' + issueId + '">X</div></div>');
175                    }
176                    else {
177                        $('.my-pages-selected-subscriptions-to-be-cancelled').find('[data-issue-id="' + issueId + '"]').remove();
178                    }
179                });
180
181                window.sesamyMyPagesCurrentSubscriptionId = null;
182                $(document).on('click', '.MyPages__card-link--change-subscription-address', function() {
183                    window.sesamyMyPagesCurrentSubscriptionId = $(this).attr('data-select-subscription-id');
184                });
185
186                $(document).on('click', '.MyPages__select__open', function() {
187                    $(this).parent().find('.MyPages__select__dropdown-list').toggle();
188                    $('.MyPages__select__overlay').fadeIn();
189                });
190
191                $(document).on('click', '.remove-selected-issue', function() {
192                    var issueId = $(this).attr('data-issue-id');
193                    $('.my-pages-issues-list').find('[id="' + issueId + '"]').prop('checked', false);
194                    $('.my-pages-selected-issues').find('[data-issue-id="' + issueId + '"]').remove();
195                });
196
197                $(document).on('click', '.remove-subscription-to-cancel', function() {
198                    var issueId = $(this).attr('data-issue-id');
199                    $('.my-pages-subscriptions-list').find('[id="' + issueId + '"]').prop('checked', false);
200                    $('.my-pages-selected-subscriptions-to-be-cancelled').find('[data-issue-id="' + issueId + '"]').remove();
201                });
202
203                $(document).on('click', '.my-pages-cancel-subscription-button', function() {
204                    var subscriptionsToCancel = [];
205                    $('.my-pages-selected-subscriptions-to-be-cancelled').find('.my-pages-selected-issue').each(function() {
206                        subscriptionsToCancel.push({
207                            subscriptionId: $(this).attr('data-issue-id')
208                        });
209                    });
210
211                    if (subscriptionsToCancel.length < 1) {
212                        alert('You must select at least one subscription.');
213                        return;
214                    }
215
216                    var confirmCancel = confirm('Are you sure you want to cancel the subscription?');
217                    if (!confirmCancel) {
218                        return;
219                    }
220
221                    var btn = $(this);
222
223                    var response = subscriptionsToCancel.forEach(subscription => {
224                        sesamy.cancelSubscription(subscription.subscriptionId, { version: '2' }).then(function(response) {
225                            $('[my-pages-page-id="cancel-subscription"] .MyPages__sections').html("<div><h2>Your subscription is now cancelled</h2><p>You will now be redirected back to your pages.</p></div>");
226
227                            setTimeout(function() {
228                                location.href = '/my-account';
229                            }, 5000);
230                        });
231                    });
232
233                    if (!response) {
234                        btn.html('Something went wrong.');
235                    }
236                });
237
238                $(document).on('click', '.MyPages__select__overlay', function() {
239                    $(this).fadeOut();
240                    $('.MyPages__select__dropdown-list').hide();
241                });
242
243                $(document).on('click', '.send-missing-issues', function() {
244                    var missingIssues = [];
245                    $('.my-pages-selected-issues').find('.my-pages-selected-issue').each(function() {
246                        missingIssues.push({
247                            sku: $(this).attr('data-issue-id'),
248                            item_id: $(this).attr('data-issue-item-id'),
249                            title: $(this).text()
250                        });
251                    });
252
253                    ReportMissingIssues(sesamyProfile, missingIssues);
254                });
255
256                $(document).on('click', '.MyPages__change_personal_info', function() {
257
258                    $(this).html('Spara');
259                    $(this).addClass('MyPages__change_personal_info--save Button--accent');
260                    $(this).removeClass('MyPages__change_personal_info');
261
262                    var contactFirstName = sesamyProfile.firstName ? sesamyProfile.firstName : '';
263                    var contactSurname = sesamyProfile.lastName ? sesamyProfile.lastName : '';
264                    var contactEmail = sesamyProfile.email ? sesamyProfile.email : '';
265
266                    $('.sesamy-contact-firstname').after('<input type="text" class="sesamy-contact-firstname-input" value="' + contactFirstName + '">');
267                    $('.sesamy-contact-firstname').hide();
268
269                    $('.sesamy-contact-surname').after('<input type="text" class="sesamy-contact-surname-input" value="' + contactSurname + '">');
270                    $('.sesamy-contact-surname').hide();
271
272                    $('.sesamy-contact-email').after('<input type="text" class="sesamy-contact-email-input" value="' + contactEmail + '">');
273                    $('.sesamy-contact-email').hide();
274                });
275
276                $(document).on('click', '.change-subscription-address', function() {
277
278                    var latestIssue = window.myPagesFulfillmentProductionItems.items[0];
279
280                    if (latestIssue == null) {
281                        alert('You have no previous editions to change the address for. Once you have received your first edition, you can change the address here.');
282                        return;
283                    }
284
285                    $(this).html('Spara');
286                    $(this).addClass('change-subscription-address--save Button--accent');
287                    $(this).removeClass('change-subscription-address');
288
289                    var subscriptionStreet = latestIssue.deliveryAddress.street;
290                    var subscriptionZip = latestIssue.deliveryAddress.zip;
291                    var subscriptionCity = latestIssue.deliveryAddress.city;
292                    var subscriptionCountry = latestIssue.deliveryAddress.country;
293
294                    $('.sesamy-subscription-street').after('<input type="text" class="sesamy-subscription-street
294-input" value="' + subscriptionStreet + '">');
295                    $('.sesamy-subscription-street').hide();
296
297                    $('.sesamy-subscription-zip').after('<input type="text" class="sesamy-subscription-zip-input" value="' + subscriptionZip + '">');
298                    $('.sesamy-subscription-zip').hide();
299
300                    $('.sesamy-subscription-city').after('<input type="text" class="sesamy-subscription-city-input" value="' + subscriptionCity + '">');
301                    $('.sesamy-subscription-city').hide();
302
303                    $('.sesamy-subscription-country').after('<input type="text" class="sesamy-subscription-country-input" value="' + subscriptionCountry + '">');
304                    $('.sesamy-subscription-country').hide();
305                });
306
307                $(document).on('click', '.change-subscription-address--save', function() {
308                        
309                        var latestIssue = window.myPagesFulfillmentProductionItems.items[0];
310
311                        var subscriptionStreet = $('.sesamy-subscription-street-input').val();
312                        var subscriptionZip = $('.sesamy-subscription-zip-input').val();
313                        var subscriptionCity = $('.sesamy-subscription-city-input').val();
314                        var subscriptionCountry = $('.sesamy-subscription-country-input').val();
315
316                        var thisBtn = $(this);
317                        thisBtn.html('Saving ...');
318                        sesamy.updateFulfillmentProductItemAddress(FokusSKU, latestIssue.itemId, { street: subscriptionStreet, zip: subscriptionZip, city: subscriptionCity, country: subscriptionCountry, firstName: window.myPagesProfile.firstname, lastName: window.myPagesProfile.lastname }).then(function() {
319                            location.href = '/my-account';
320                        }).catch(function(error) {
321                            thisBtn.html('Something went wrong.');
322                        });
323                });
324
325                $(document).on('click', '.MyPages__change_personal_info--save', function() {
326                    var firstname = $('.sesamy-contact-firstname-input').val();
327                    var surname = $('.sesamy-contact-surname-input').val();
328                    var email = $('.sesamy-contact-email-input').val();
329
330                    $(this).html('Sparar...');
331
332                    sesamy.updateUserProfile({ firstName: firstname, lastName: surname, email: email }).then(function() {
333                        location.reload();
334                    });
335                });
336
337                $(document).on('click', '.change-address', function() {
338                    $(this).html('Spara');
339                    $(this).addClass('change-address--save Button--accent');
340                    $(this).removeClass('change-address');
341
342                    var card = $(this).closest('.MyPages__card');
343
344                    var street = card.find('.sesamy-street').text();
345                    var zip = card.find('.sesamy-zip').text();
346                    var city = card.find('.sesamy-city').text();
347                    var country = card.find('.sesamy-country').text();
348
349                    card.find('.sesamy-street').after('<input type="text" class="sesamy-street-input" value="' + street + '">');
350                    card.find('.sesamy-street').hide();
351
352                    card.find('.sesamy-zip').after('<input type="text" class="sesamy-zip-input" value="' + zip + '">');
353                    card.find('.sesamy-zip').hide();
354
355                    card.find('.sesamy-city').after('<input type="text" class="sesamy-city-input" value="' + city + '">');
356                    card.find('.sesamy-city').hide();
357
358                    card.find('.sesamy-country').after('<input type="text" class="sesamy-country-input" value="' + country + '">');
359                    card.find('.sesamy-country').hide();
360
361                });
362
363                $(document).on('click', '.change-address--save', function() {
364
365                    var card = $(this).closest('.MyPages__card');
366                    var street = card.find('.sesamy-street-input').val();
367                    var zip = card.find('.sesamy-zip-input').val();
368                    var city = card.find('.sesamy-city-input').val();
369                    var country = card.find('.sesamy-country-input').val();
370
371                    $(this).html('Sparar...');
372
373                    var cityObject = {street: street, zip: zip, city: city, country: country}
374
375                    sesamy.updateUserProfile({ deliveryAddress: cityObject, billingAddress: cityObject}).then(function() {
376                        location.reload();
377                    });
378                });
379                
380                if (sesamyProfile == null) {
381                    return null;
382                }
383
384                var profileName = sesamyProfile.firstname;
385                if (profileName == null || profileName == '') {
386                    profileName = sesamyProfile.email;
387                }
388
389                // Check if sesamyProfile has the property 'primaryAddress'
390                if (sesamyProfile.hasOwnProperty('billingAddress')) {
391                    const city = sesamyProfile.billingAddress.city;
392                    const street = sesamyProfile.billingAddress.street;
393                    const zip = sesamyProfile.billingAddress.zip;
394                    const country = sesamyProfile.billingAddress.country;
395
396                    $('.sesamy-street').text(street);
397                    $('.sesamy-zip').text(zip);
398                    $('.sesamy-city').text(city);
399                    $('.sesamy-country').text(country);
400                }
401
402                if (sesamyProfile) {
403                    const firstname = sesamyProfile.firstName;
404                    const surname = sesamyProfile.lastName;
405                    const email = sesamyProfile.email;
406
407                    $('.sesamy-contact-firstname').text(firstname);
408                    $('.sesamy-contact-surname').text(surname);
409                    $('.sesamy-contact-email').text(email);
410                }
411
412                // Check if we have subscription by checking the url and the entitlements
413                var hasSubscription = false;
414                sesamyEntitlements.forEach(entitlement => {
415                    if (entitlement.url == 'https://nordiclifescience.org/subscribe') {
416                        hasSubscription = true;
417                    }
418                });
419
420                if (!hasSubscription) {
421                    $('.show-if-logged-in-no-sub').show();
422                    $('.sesamy-active-subscription-text').html('Not active');
423                }
424                else {
425                    $('.sesamy-active-subscription-text').html('Active');
426
427                    // If we are on the page "prenumerera-for-att-bli-kund" or "/prenumerera/fod/", then redirect to home page
428                    if (window.location.href.indexOf('prenumerera-for-att-bli-kund') > -1 || window.location.href.indexOf('/prenumerera/fod') > -1) {
429                        location.href = '/';
430                    }
431                }
432            }
433            else {
434
435                // If we are on my-pages, then redirect to login
436                if (window.location.href.indexOf('my-account') > -1 && window.location.href.indexOf('fokus') != -1) {
437                    window.sesamy.login();
438                }
439
440                // Show all elements with class 'show-if-logged-out'
441                if (window.location.href.indexOf('fokus') > -1) {
442                    $('.show-if-logged-out').show();
443                    $('.show-if-logged-out').addClass('show-if-logged-out--show');
444                }
445
446            }
447
448        });
449    }
450
451    function ReportMissingIssues(userInformation, missingIssues=[]) {
452
453        if (window.myPagesCurrentPage == 'report-missing-edition-previous') {
454            if (missingIssues.length < 1) {
455                alert('You must select at least one edition.');
456                return;
457            }
458
459            missingIssues.forEach(issue => {
460                window.sesamy.requestFulfillmentProductItem(issue.sku, issue.item_id).then(function(response) {
461                    $('[my-pages-page-id="report-missing-edition-previous"] .MyPages__sections').html("<div><h2>Thank you for your registration!</h2><p>We will send out the missing edition as soon as possible.</p></div>");
462                });
463            });
464        }
465
466    }
467
468    function getSubscriptionCardTableRow(label, value) {
469        let html = `
470        <div class="MyPages__subscription-card__content__table__row">
471                    <div class="MyPages__subscription-card__content__table__row__cell">
472                        <span class="MyPages__subscription-card__content__table__row__cell__label">${label}</span>
473                    </div>
474                    <div class="MyPages__subscription-card__content__table__row__cell">
475                        <span class="MyPages__subscription-card__content__table__row__cell__value">${value}</span>
476                    </div>
477                </div>
478        `;
479        return html;
480    }
481
482    async function getSubscriptionCardHtml(subscription, templateElement) {
483
484        // Copy 'MyPages__subscription-card__card__template' and remove the class 'MyPages__subscription-card__card__template'
485        var card = templateElement.clone();
486        card.removeClass('MyPages__subscription-card__card__template');
487
488        var subscriptionTitle = subscription.product.name;
489        var subscriptionImage = subscription.product.image;
490
491        var price = subscription.amount; // This is in cents
492        var price = price / 100; // Convert to SEK
493
494        var interval = subscription.interval;
495        if (interval == 'month') {
496            interval = '/month';
497        }
498        else if (interval == 'week') {
499            interval = '/week';
500        }
501        else if (interval == 'year') {
502            interval = '/year';
503        }
504
505
506        card.find('.MyPages__subscription-card__header__title__value').text(subscriptionTitle);
507        card.find('.MyPages__subscription-card__header__image img').attr('src', subscriptionImage);
508
509        var prenumerationRow = getSubscriptionCardTableRow('Subscription', subscriptionTitle);
510        card.find('.MyPages__subscription-card__content__table').append(prenumerationRow);
511        
512        var customerNumberRow = getSubscriptionCardTableRow('Customer number', subscription.userId);
513        card.find('.MyPages__subscription-card__content__table').append(customerNumberRow);
514
515        var startDate = new Date(subscription.created);
516        if (startDate && !isNaN(startDate)) {
517            var startDateRow = getSubscriptionCardTableRow('Start date', startDate.toLocaleDateString('sv-SE', { year: 'numeric', month: 'long', day: 'numeric' }));
518            card.find('.MyPages__subscription-card__content__table').append(startDateRow);
519        }
520
521        var endDate = new Date(subscription.currentPeriodEnd);
522        if (endDate && !isNaN(endDate)) {
523            var endDateRow = getSubscriptionCardTableRow('Until further notice', endDate.toLocaleDateString('sv-SE', { year: 'numeric', month: 'long', day: 'numeric' }));
524            card.find('.MyPages__subscription-card__content__table').append(endDateRow);
525        }
526        
527        if (price != null && price != '' && !isNaN(price)) {
528            var priceRow = getSubscriptionCardTableRow('Price', price + ' ' + subscription.currency + interval);
529            card.find('.MyPages__subscription-card__content__table').append(priceRow);
530        }
531
532        var handlePaymentUrl = await sesamy.generateLink({target: 'account', contractId: subscription.id});
533        console.log(handlePaymentUrl);
534
535        var handlePayment = getSubscriptionCardTableRow('Manage payment', '<a target="_blank" href="'+handlePaymentUrl+'">Click here</a>');
536        card.find('.MyPages__subscription-card__content__table').append(handlePayment);
537        
538        
539        // If the subscription has the cancelAt property, then it's already cancelled
540        if (subscription.hasOwnProperty('cancelAt') && subscription.cancelAt != null && subscription.cancelAt != '') {
541            var cancelAtRow = getSubscriptionCardTableRow('<span style="color:red;">Active until (cancelled)</span>', new Date(subscription.cancelAt).toLocaleDateString('sv-SE', { year: 'numeric', month: 'long', day: 'numeric' }));
542            card.find('.MyPages__subscription-card__content__table').append(cancelAtRow);
543            card.find('.MyPages__card-link--cancel-subscription').remove();
544            card.find('.MyPages__card-link--change-subscription-address').remove();
545        }
546        else {
547            card.find('.MyPages__card-link--cancel-subscription').attr('data-select-subscription-id', subscription.id);
548            card.find('.MyPages__card-link--change-subscription-address').attr('data-select-subscription-id', subscription.id);
549        }
550
551        return "<div class='MyPages__subscription-card MyPages__card "+subscription.status+"'>" + card.html() + "</div>";
552    }
553
554    function fillChangeSubscriptionAddressForm() {
555
556        if (window.myPagesFulfillmentProductionItems.count > 0 && window.myPagesFulfillmentProductionItems.items.length > 0) {
557            var latestIssue = window.myPagesFulfillmentProductionItems.items[0];
558            $('.sesamy-subscription-street').text(latestIssue.deliveryAddress.street);
559            $('.sesamy-subscription-zip').text(latestIssue.deliveryAddress.zip);
560            $('.sesamy-subscription-city').text(latestIssue.deliveryAddress.city);
561            $('.sesamy-subscription-country').text(latestIssue.deliveryAddress.country);
562        }
563    }
564
565    initMyPages();
566
567});

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.