An error has occurred

{{terminalError}}

Stand With
The Intercept
Democracy depends on the public’s right to know — even about matters that those in power would prefer to keep secret. That’s why our nonprofit journalism has never been hidden behind a paywall.
Democracy depends on the public’s right to know. That’s why our nonprofit journalism has never been hidden behind a paywall.
We’ve got big plans for next year — but first we need to reach $900,000 by December 31.
RAISED
${amount.condensed}{amount.scaleAbbreviation}
GOAL
${goal.condensed}{goal.scaleAbbreviation}
$(function() { var experienceDismissalTtl = '1'; var experienceImpressionTtl = '1'; var experiencePrefix = '2020_eoy_takeover'; var realm = 'theintercept'; var referrerUrl = FLMPiano.getPianoParams().url; var showThermometer = 'no'.toLowerCase() === 'yes'; var showThermometerText = 'yes'.toLowerCase() === 'yes'; var source = 'web_intercept_20201210_sitewide_GT-vertical-takeover_stand-with_timing-0' || 'web_intercept_piano_direct-ask-modal-unknown'; var thermometerPageName = '2020_winter_campaign'; var bodyElement = document.querySelector('body'); var closeButton = document.getElementById('close'); var donateButton = document.getElementById('donate'); var elementsWithPlaceholderText = document.querySelectorAll('.has-placeholder-text'); var htmlElement = document.querySelector('html'); var thermometerContainer = document.getElementById('thermometer-container'); // event handlers function handleCloseClick() { FLMPiano.dispatchEventToParent('experience:dismiss', { experienceDismissalTtl: experienceDismissalTtl, experiencePrefix: experiencePrefix }); FLMPiano.trackGAEvent({ eventLabel: 'direct-ask: popup close', metric8: 1, transport: 'beacon' }); } function handleDonateClick() { FLMPiano.dispatchEventToParent('experience:convert', { experiencePrefix: experiencePrefix }); FLMPiano.trackGAEvent({ eventLabel: 'direct-ask: donate button click', metric4: 1, transport: 'beacon' }); piano.logConversion(realm, 'Donate Click', 1); closeButton.removeEventListener('click', handleCloseClick); closeButton.click(); } function handleKeypress(event) { switch (event.code) { case 'Escape': closeButton.click(); break; default: // pass through } } function handleLoad() { htmlElement.setAttribute('class', htmlElement.className + ' loaded'); FLMPiano.dispatchEventToParent('experience:impression', { experienceImpressionTtl: experienceImpressionTtl, experiencePrefix: experiencePrefix }); FLMPiano.trackGAEvent({ eventLabel: 'direct-ask: popup open', metric3: 1 }); } function handleParentResize(resizeEvent) { $(bodyElement).toggleClass('extraSmallHeight', resizeEvent.height < 570); if (resizeEvent.breakpoint === 'large') { // ensure that the modal is the full viewport height bodyElement.style.height = resizeEvent.height + 'px'; } else { // let the modal's height be determined automatically bodyElement.style.height = 'auto'; } } // initialize DOM FLMPiano.setUpResponsiveContainer('body', { onResize: handleParentResize }); window.addEventListener('keypress', handleKeypress); closeButton.addEventListener('click', handleCloseClick); donateButton.setAttribute('href', FLMPiano.buildUrl(donateButton.href, { referrer_url: referrerUrl, source: source })); FLMPiano.getCustomVariables().then(function(customVariables) { if (typeof customVariables.referrer_post_id === 'string') { donateButton.href = FLMPiano.buildUrl(donateButton.href, { referrer_post_id: customVariables.referrer_post_id }); } }); donateButton.addEventListener('click', handleDonateClick); if (thermometerPageName) { FLMPiano.thermometers.fetch(thermometerPageName) .then(function(thermometerData) { elementsWithPlaceholderText.forEach(function(element) { element.innerHTML = FLMPiano.formatText(element.innerHTML, thermometerData); }); if (showThermometer) { FLMPiano.dom.appendChildToElement( thermometerContainer, FLMPiano.thermometers.render(thermometerData, 'graduated-bar') ); } else { thermometerContainer.style.display = 'none'; } setTimeout(handleLoad, 0); }) .catch(function(error) { console.error(error); }); } else { handleLoad(); } });