

/* 3/13/2024 1:00:03 AM */
var epdata;

(function () {

    // --- customization variables ---
    var settings = {
        domain : 'https://www.storeya.com',
        ver : '202402',
        sid : 0,
        pix : 'https://www.storeya.com/widgets/epviewed?sid=0',
        code : ''
        };



        var epStatus = "0";

        var exitPopActivated = false;
        var customCss = "";

        var iframeSource = "https://www.storeya.com/widgets/exitpop?id=0000";

        var ismobile = navigator.userAgent.match(/(IEMobile|Windows Phone|Lumia|Android|webOS|iPhone|iPod|Blackberry|PlayBook|BB10|Mobile Safari|Opera Mini|\bCrMo\/|Opera Mobi|Tablet|iPad)/i);


        var jsonurl = "https://www.storeya.com/ExternalScript/epdata/0000?callback=?";

        if(ismobile) return;

        var showep = true;


        var epopData = document.querySelector("a[data-epop]");

        if (epopData){
        var showonlyid = epopData.getAttribute("data-epop");
        } else {
        var showonlyid = "";
        }

        if ((showonlyid != "") && (showonlyid != 0)){
        var showep = false;
        }

        if (showep){
        main();
        }


        //DOM ELEMENTS
        var epEl,
        epiFrameEl,
        epContainerEl,
        epBkEl, epCloseLinkEl;





        // this function builds the coupon
        function buildtb() {

        document.body.classList.add('exitpop');

        CreateCouponPop();

        if (document.body.classList.contains("preview-on-store")){
        ShowCouponPop();
        }

        function addEvent(obj, evt, fn) {
        if (obj.addEventListener) {
        obj.addEventListener(evt, fn, false);
        }
        else if (obj.attachEvent) {
        obj.attachEvent("on" + evt, fn);
        }
        }

        addEvent(document, "mouseout", function exitPopListener (e) {
        e = e ? e : window.event;
        var from = e.relatedTarget || e.toElement;

        if ((!from || from.nodeName == "HTML") && e.clientY <= 0 ) {

        document.removeEventListener("mouseout", exitPopListener);
        EPactivate();
        }
        });


        function EPactivate(){
        console.log('EPactivate');

        var screenwidth = window.innerWidth -25;
        var docwidth = document.body.clientWidth -25;
        var currentepid = epdata.id;
        var showOnce = epdata.showOnce;

        if ((readCookie("stry_ep_id"+currentepid) == "true") && showOnce && !istest()){
        exitPopActivated = true;
        }

        if (!exitPopActivated) {
        if (showOnce){
        createCookie("stry_ep_id"+epdata.id, "true", 1);
        }

        if (!exitPopActivated) {
        ShowCouponPop();
        exitPopActivated = true;
        }

        }
        }

        istest = function()
        {
        return (window.location.hash == '#test');
        }


        // wait until css is ready (checks height of toolbar-body)
        var fakeListener = setInterval(function () {
        if (epContainerEl.style.left === "50%") {
        alert('css is loaded');
        clearInterval(fakeListener);
        }
        }, 50)
        }


        function CreateCouponPop () {

        epEl = document.createElement("div");
        epEl.setAttribute('id', 'exit-coupon-popup');
        epEl.setAttribute('data-ep-id', epdata.id);
        epEl.setAttribute('data-showonce', epdata.showOnce);
        epEl.setAttribute('data-animationtype', epdata.animationType);


        epEl.classList.add('dubltrbl');
        epEl.style.position = "absolute";
        epEl.style.top = "-99999px";


        epContainerEl = document.createElement("div");
        epContainerEl.setAttribute('id', 'exit-coupon-popup-container');

        epEl.append(epContainerEl);

        let epHeaderEl = document.createElement("div");
        epHeaderEl.classList.add('qa_header');
        epContainerEl.append(epHeaderEl);

        //add iFrame
        epiFrameEl = document.createElement("iframe");
        epiFrameEl.setAttribute('id','exit-coupon_frame');
        epiFrameEl.setAttribute('frameborder','0');

        iframeSource = iframeSource.replace("exitpop", "exitpopjs");
        epiFrameEl.setAttribute('src', iframeSource + '&epID=' + epdata.id);
        epiFrameEl.onload = loadIframe;
        epContainerEl.append(epiFrameEl);

        function loadIframe(){

        epiFrameEl.setAttribute('state','loaded');
        }

        //bk screen
        epBkEl = document.createElement("div");
        epBkEl.classList.add('exit-coupon-bk-screen');
        epBkEl.style.opacity = '0.75';
        epEl.append(epBkEl);

        //powered
        let eppoweredWrapperEl = document.createElement("div");
        eppoweredWrapperEl.classList.add('powered-wrapper');
        epEl.append(eppoweredWrapperEl);

        var eppoweredEl = document.createElement('span');
        eppoweredEl.classList.add('powered');

        eppoweredEl.append(eppoweredWrapperEl);
        //eppoweredEl.innerHTML('Powered by <a href="https://www.storeya.com" target="_blank">StoreYa</a>');

        epCloseLinkEl = document.createElement('a');
        epCloseLinkEl.setAttribute('id','exit-couponpopup_close');
        epHeaderEl.append(epCloseLinkEl);

        document.body.prepend(epEl);




        }

        function ShowCouponPop() {

        //if (directLinkOnly){
        if(epiFrameEl.getAttribute('popupstate') == 'activated'){
        //already displayed, show again (direct link)
        epiFrameEl.style.display = 'block';
        epiFrameEl.style.visibility = 'visible';

        } else {

        epiFrameEl.setAttribute('popupstate','activated');

        var epwidgetview = document.createElement('img');


        var dataViewLink =epEl.getAttribute('data-view-link');

        epwidgetview.setAttribute('src','//www.storeya.com' + dataViewLink);

        epiFrameEl.append(epwidgetview);
        }
        epBkEl.style.height = document.body.clientHeight+'px';


        if (document.body.classList.contains('preview-on-store')){
        // fix height for preview
        epBkEl.style.height = '100%';
        }

        epBkEl.style.visibility = 'visible';
        epEl.style.top = '0';

        //start aniamtion
        if (epEl.getAttribute('data-animationtype') != "none" ){

        var fakeListener = setInterval(function () {
        if (epiFrameEl.getAttribute('state') === 'loaded') {
        var animationtype = epEl.getAttribute('data-animationtype');
        epContainerEl.classList.add('animated');
        epContainerEl.classList.add(animationtype);

        epContainerEl.style.display = 'block';
        epContainerEl.style.visibility = 'visible';

        epEl.style.visibility = 'visible';
        clearInterval(fakeListener);
        }
        }, 250)

        } else {
        // wait until css is ready (checks height of toolbar-body)
        var fakeListener = setInterval(function () {
        if (epiFrameEl.getAttribute("state") === "loaded") {
        clearInterval(fakeListener);


        epEl.style.visibility = 'visible';
        epContainerEl.style.display = 'block';
        epEl.style.visibility = 'visible';
        }
        }, 50)
        }

        function closebig() {
        epEl.remove();
        //epEl.style.display = 'none';

        }

        epCloseLinkEl.addEventListener('click',closebig);
        epBkEl.addEventListener('click',closebig);

        }


        function docReady(fn) {
        // see if DOM is already available
        if (document.readyState === "complete" || document.readyState === "interactive") {
        // call on next available tick
        setTimeout(fn, 1);
        } else {
        document.addEventListener("DOMContentLoaded", fn);
        }
        }



        function getScript(source, callback) {
        var script = document.createElement('script');
        var prior = document.getElementsByTagName('script')[0];
        script.async = 1;

        script.onload = script.onreadystatechange = function( _, isAbort ) {
        if(isAbort || !script.readyState || /loaded|complete/.test(script.readyState) ) {
        script.onload = script.onreadystatechange = null;
        script = undefined;

        if(!isAbort && callback) setTimeout(callback, 0);
        }
        };

        script.src = source;
        prior.parentNode.insertBefore(script, prior);
        };

        // main function
        function main() {


        docReady(function() {


        // ---- report -----

        var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
        var eventer = window[eventMethod];
        var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

        // Listen to message from child window
        eventer(messageEvent,function(e) {


        var content = e.data;

        if ((typeof content === 'string' || content instanceof String) && content.charAt(0) == "V"){
        // change dimensions
        content = content.substring(1);

        let epEl = document.getElementById('exit-coupon-popup');
        epEl.setAttribute("data-view-link", content);


        }
        },false);




        // Create IE + others compatible event handler
        var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
        var eventer = window[eventMethod];
        var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

        // Listen to message from child window
        eventer(messageEvent,function(e) {

        var content = e.data;

        if (e.data == "gotcoupon"){
        // coupon was shown
        epEl.setAttribute("gotCoupon","true");
        }

        if ((typeof content === 'string' || content instanceof String) && content.charAt(0) == "E"){
        // change dimensions
        content = content.substring(1);
        var splits = content.split(",");

        // if height was changed from the default (460px) don't resize
        let epContainerEl = document.getElementById('exit-coupon-popup-container');
        if (epContainerEl.style.height == "460px"){
        splits[1] = splits[1] - 28;

        epContainerEl.style.height = splits[1];
        var margint = splits[1]/2;
        var marginl = splits[0]/2;
        var margint = margint - (margint*2);
        var marginl = marginl - (marginl*2);
        epContainerEl.style.marginTop = margint;

        }
        }

        },false);





        if(epStatus==1)
        {


        function loadjscssfile(filename){
        var fileref=document.createElement("link");
        fileref.setAttribute("rel", "stylesheet");
        fileref.setAttribute("type", "text/css");
        fileref.setAttribute("href", filename);
        document.getElementsByTagName("head")[0].appendChild(fileref);
        }

        // load css files

        var link = settings.domain + "/common/css/widgets/exitpop2.css?v=" + settings.ver;
        var anilink = settings.domain + "/common/css/animate.min.css";

        loadjscssfile(link);
        loadjscssfile(anilink);









        function getJsonp(url){
        var scriptElement = document.createElement("script");
        scriptElement.setAttribute("src", url);
        scriptElement.setAttribute("id", "jsonp");
        var head = document.getElementsByTagName("head")[0];
        head.appendChild(scriptElement);
        }


        getScript('https://www.storeya.com/common/js/widgets/rules-engine.js', function( script, textStatus ){



        getJsonp(jsonurl+"jsonEPCallback");


        (async() => {
        while(window.epdata == '') {
        }
        await new Promise(resolve => setTimeout(resolve, 1000));

        if (typeof epdata != 'undefined'){
        buildtb();
        } else {
        epStatus=2;
        }
        })();






        }); //getscript


        } //domready




        window.displayExitPop = function ShowExitPopfromoutside() {

        ShowCouponPop();
        return false;
        }

        });
        }



        })();



        function jsonEPCallback(json){
        var ismer = "";
        //var epdata = parseJsonp(json, "ep");
        epdata = parseJsonp(json, "ep");

        if (typeof epdata != 'undefined'){
        //buildtb(EPdata);
        } else {
        //epStatus=2;
        }

        if (ismer != null && ismer != '') {
        createCookie("iscm", "1", 180);
        }

        }