// Hide 'Keep reading' button
$('.js-button-reload').hide();
// Hide loading div
var loading = $('#loading').hide();
$('.form-submit').on('click', function (e) {
loading.show();
});
// Listener to receive post messages from front-end JS.
window.addEventListener("message", function (e) {
// We verify that the error message is coming from Piano, so it must be what we're looking for.
if (typeof e.data.piano !== 'undefined') {
loading.hide();
// Get the object with the result.
var result = e.data.piano;
// We know how this object should be structured, so we're checking for the "success" field.
// We're expecting it to be false, so we can show an error message.
if (!result.success) {
// Show the error messages.
$('.js-messages').removeClass('status');
$('.js-messages').addClass('error');
$('.js-messages').show();
$('.js-messages').text(result.message);
}
else {
// Show the success messages.
$('.js-messages').removeClass('error');
$('.js-messages').addClass('status');
$('.js-messages').show();
$('#messages').text(result.message);
$('.js-button-reload').show();
$('.js-newsletter-form-wrapper').hide();
}
}
return;
}, false);
document.getElementById('mc-signup-form').addEventListener('submit', function () {
try {
const msg = JSON.stringify({
"toDataLayer": {
"event": "custom.event.piano_form_submit",
"messageData.eventName": "form_submit",
"messageData.eventTargetLabel": "Newsletter form",
"messageData.eventTargetLocation": "Piano popup",
"messageData.form_name": "Piano popup newsletter signup form"
}
});
window.parent.postMessage(msg, 'https://www.nationalobserver.com');
} catch (e) {
window.console && window.console.log(e);
}
});