Be the first to read
Thank You For Joining!
Stories others won’t report. Straight to your inbox.
Will you take the next step to support our independent journalism by becoming a member of The Intercept?
$(function() {
// experience config
var experienceDismissalTtl = '48';
var experienceImpressionTtl = '2019_global_newsletter_signup';
var experiencePrefix = '2019_global_newsletter_signup';
// newsletter config
var countryCode = undefined;
var lists = 'appeals, breaking-news, politics, weekly-digest'
.split(/,\s*/)
.map(function(name) { return name.trim(); })
.filter(function(name) { return name.length > 0; });
var privacyEnhanced = false;
var realmSpeakingId = 'theintercept';
var referrerPostId;
var referrerUrl = FLMPiano.getPianoParams().url;
var signupPromotion = '' || undefined;
var source = 'web_intercept_20201116_piano-fullscreen-modal_others' || 'web_intercept_piano-unknown';
// elements
var htmlElement = document.querySelector('html');
var closeButton = document.getElementById('close');
var containerElement = document.getElementById('Piano');
var donateButton = document.getElementById('donate-button');
var emailInput = document.getElementById('email');
var descriptionElement = document.getElementById('description');
var submitButton = document.getElementById('submit');
// event handlers
function handleCloseButtonClick(event) {
FLMPiano.dispatchEventToParent('experience:dismiss', {
experienceDismissalTtl: experienceDismissalTtl,
experiencePrefix: experiencePrefix
});
FLMPiano.trackGAEvent({
eventLabel: 'newsletter: popup close',
metric6: 1,
transport: 'beacon'
});
}
function handleCloseButtonClickAfterSubscription(event) {
FLMPiano.trackGAEvent({
eventLabel: 'newsletter: popup close converted',
metric7: 1,
transport: 'beacon'
});
}
function handleDonateButtonClick(event) {
FLMPiano.trackGAEvent({
eventLabel: 'newsletter: donate button click',
metric5: 1,
transport: 'beacon'
});
closeButton.click();
}
function handleKeyDown(event) {
switch (event.code) {
case 'Enter':
case 'NumpadEnter':
submitButton.click();
break;
case 'Escape':
closeButton.click();
break;
default:
// pass through
}
}
function handleLoad() {
var $html = $(htmlElement);
$html.addClass('loaded');
if (TPParam.params.preview === 'true') {
$html.addClass('extraSmall');
$html.addClass('sized');
} else {
FLMPiano.dispatchEventToParent('experience:impression', {
experienceImpressionTtl: experienceImpressionTtl,
experiencePrefix: experiencePrefix
});
FLMPiano.trackGAEvent({
eventLabel: 'newsletter: popup open',
metric1: 1,
nonInteraction: true
});
}
}
function handleParentResize() {
$(htmlElement).addClass('sized');
}
function handleSubmitButtonClick(event) {
var email = emailInput.value;
FLMPiano.newsletter.subscribe({
countryCode: countryCode,
email: email,
experiencePrefix: experiencePrefix,
lists: lists,
privacyEnhanced: privacyEnhanced,
realmSpeakingId: realmSpeakingId,
referrerPostId: referrerPostId,
referrerUrl: referrerUrl,
signupPromotion: signupPromotion,
source: source
}).then(function(response) {
FLMPiano.trackGAEvent({
eventLabel: 'newsletter: signup',
metric2: 1
});
piano.logConversion(realmSpeakingId, 'Newsletter', 1);
// show step 2
containerElement.className = containerElement.className + ' subscribed';
// stop treating closes like dismisses now
closeButton.removeEventListener('click', handleCloseButtonClick);
closeButton.addEventListener('click', handleCloseButtonClickAfterSubscription);
}).catch(function(error) {
piano.logMicroConversion('newsletter:subscribe:error');
descriptionElement.innerText = error.message;
});
}
// initialize DOM
FLMPiano.setUpResponsiveContainer('#Piano', {
onResize: handleParentResize
});
closeButton.addEventListener('click', handleCloseButtonClick);
donateButton.setAttribute('href', FLMPiano.buildUrl(donateButton.href, {
referrer_url: referrerUrl,
source: source
}));
FLMPiano.getCustomVariables().then(function(customVariables) {
if (typeof customVariables.countryCode === 'string') {
countryCode = customVariables.countryCode;
}
if (typeof customVariables.privacyEnhanced === 'string') {
privacyEnhanced = (customVariables.privacyEnhanced.toLowerCase() === true);
}
if (typeof customVariables.referrer_post_id === 'string') {
referrerPostId = Number(customVariables.referrer_post_id);
if (isNaN(referrerPostId)) {
referrerPostId = undefined;
} else {
donateButton.setAttribute('href', FLMPiano.buildUrl(donateButton.href, {
referrer_post_id: String(referrerPostId)
}));
}
}
});
donateButton.addEventListener('click', handleDonateButtonClick);
submitButton.addEventListener('click', handleSubmitButtonClick);
window.addEventListener('keydown', handleKeyDown);
window.addEventListener('load', handleLoad);
});