window.dataLayer = window.dataLayer || []; window.dataLayer.push({"author":"","hierarchy":"/topic/guns","allCategories":"","pageType":"section","articleId":"5b10a97b5b520fb162cbbd663d5835c50b7be497dcc60849b2db2a33a83d5186","articleTitle":"Guns | Dallas News","articleHasComments":false,"metaTitle":"Arts District | Dallas Morning News","primarySection":"","tags":[],"contentRestrictions":"","offerCampaignId":"","articleUrl":"/topic/guns/","outputType":"web","awards":[],"publishedDuration":0});
window.courierEndpoint = 'https://courier-api.dallasnews.com' || []; function getCookie(name) { const startIndex = document.cookie.indexOf(name + "="); if (startIndex !== -1) { var endIndex = document.cookie.indexOf(";", startIndex + 1); const cookieValueIndex = startIndex + name.length + 1; if(endIndex === -1) { endIndex = document.cookie.length; } return document.cookie.substring(cookieValueIndex, endIndex); } return null; } function setCookie(name, value, days, rootDomain) { rootDomain = (rootDomain === undefined ? false : rootDomain); var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); expires = ";expires=" + date.toUTCString(); } var c = name + "=" + (value || "") + expires + "; path=/"; if (rootDomain) { c += "; domain=." + window.location.hostname.split('.').slice(-2).('.'); } document.cookie = c; } function triggerEvent(name, data) { var event; if (window.CustomEvent) { event = new CustomEvent(name, { detail: data }); } else { event = document.createEvent('CustomEvent'); event.initCustomEvent(name, true, true, { detail: data }); } document.dispatchEvent(event); } function planToMatherOffer(plan) { if (!plan || !("detail" in plan)) return; var r = plan.detail.planIntervalUnit.match(/(.*)s$/); // strip off plurality from unit var interval = (r && typeof r[1] !== "undefined") ? r[1] : plan.detail.planIntervalUnit; return { offerId: plan.code, offerName: plan.detail.name, price: plan.detail.amount, per: interval, termAmount: plan.detail.planIntervalLength, termUnit: interval, }; } window.addEventListener("message", function(event) { if (typeof event.data == "object" && "command" in event.data) { const staticFrame = document.getElementById('courier-static-offers'); const dynamicFrame = document.getElementById('courier-arc-offers'); const courierDiv = document.getElementById('courier-iframe'); const courierDivFrame = courierDiv && courierDiv.iframe; const theFrame = staticFrame || dynamicFrame || courierDivFrame switch (event.data.command) { case "set-entitlements": console.log('arc: setting entitlements'); window._matherq.push(['paywallEvent', { category: 'payment', action: 'logon' }, null]); window.initBC(event.data.value, function() { window.location.reload(true); }); break; case "size-change": if (theFrame) { theFrame.style.height = event.data.height + 'px'; } else { console.warn("arc: !size-change"); } break; case "sow": switch (event.data.key) { case "DMN-P": setCookie(event.data.key, event.data.value, event.data.expire, true); break; default: setCookie(event.data.key, event.data.value, event.data.expire); break; } break; case "select-plan": const plans = event.data.plan || {}; window._matherq.push(['paywallEvent', { category: 'payment', action: 'subscription_selected', offers: [this.planToMatherOffer(event.data.plan)] }, null]); window._matherq.push(['paywallEvent', { category: 'payment', action: 'address_information' }, null]); window._matherq.push(['paywallEvent', { category: 'payment', action: 'payment_information' }, null]); //Set dataLayer event window.dataLayer.push({ event: 'meterEvent', action: 'select-plan', category: 'Courier_Subscribe', offers: [this.planToMatherOffer(event.data.plan)] }); break; case "-shown": window._matherq.push(['paywallEvent', { category: 'payment', action: '_and_conditions' }, null]); break; case "-purchase": const purchase = typeof event.data.purchase !== 'undefined' ? event.data.purchase : null; dataLayer.push(purchase.pevent); window._matherq.push(['paywallEvent', { category: 'payment', action: 'completed' }, null]); dataLayer.push({'event': 'courier/convert'}); break; } } }.bind(this), false);