Join Our Newsletter
Thank You For Joining!
Original reporting. Fearless journalism. Delivered to you.
Will you take the next step to support our independent journalism by becoming a member of The Intercept?
function clickClose() {
if (!window.isASubscriber) {
sendGAEvent('newsletter: popup close', 6);
}
if (window.isASubscriber) {
sendGAEvent('newsletter: popup close converted', 7);
}
var pianoClose = document.getElementById("Piano-close");
if (pianoClose) {
pianoClose.click();
}
}
function clickDonate() {
sendGAEvent('newsletter: donate button click', 5);
}
function clickLoaded() {
document.getElementById("Piano-loaded").click();
// the GA event doesn't get sent immediately when the iframe loads.
// wait for 3 secs for GA to be completely initialized before sending the event.
setTimeout(function() { sendGAEvent('newsletter: popup open', 1); }, 3000);
}
function clickSubmit() {
document.getElementById("Piano-submit").click();
}
function getURL() {
return new URL(window.TPParam.params.url);
}
function handleError(status, description) {
piano.logMicroConversion('newsletter:subscribe:' + status)
document.getElementById("Piano-description-default").innerText = description;
}
function handleSuccess(status, description) {
window.isASubscriber = true;
piano.logConversion('e00a5122d3', 'The Intercept Newsletter', 1, undefined, undefined, { '10489[1]': true, '10489[2]': true, '10489[3]': true })
sendGAEvent('newsletter: signup', 2);
document.getElementById("Piano").classList.add("subscribed");
}
function sendGAEvent(eventAction, key) {
var metricKey = 'metric' + String(key);
ga('send', 'event', 'piano', eventAction, getURL().href, { [metricKey]: 1, 'page': getURL().pathname });
}
window.addEventListener('load', function(event) {
var html = document.getElementsByTagName( 'html' )[0];
html.setAttribute('class', 'loaded');
clickLoaded();
})
window.addEventListener('message', function(event) {
var message = event.data.piano;
if (!message) {
return;
}
var description = message.description;
var status = message.status;
switch (status) {
case 'error':
handleError(status, description);
break;
case 'existing':
case 'success':
handleSuccess(status, description);
}
}, false);
window.addEventListener('keydown', function(event) {
var code = event.code;
switch(code) {
case 'Enter':
case 'NumpadEnter':
clickSubmit();
break;
case 'Escape':
clickClose();
break;
}
});
window.addEventListener('click', function(event) {
var target = event.target;
switch(target.className) {
case 'Piano-become-a-member-button':
clickDonate();
break;
case 'Piano-close':
clickClose();
break;
}
});