(function notifyModule(window, document) { "use strict"; var ICON_OK = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjEuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkdWZXJzaW9uOiA2LjAwIEJ1aWxkIDApIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KICAgIHZpZXdCb3g9IjAgMCA4MC41ODggNjEuMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4MC41ODggNjEuMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cGF0aCBzdHlsZT0iZmlsbDojNjRhNzBiOyIgZD0iMjk2LjU4LDYxLjE1Ny0xLjIzOCwwLTIuNDI3LTAuNDkxLTMuMzA1LTEuMzY5LDEuMzctMS4zLDM0LjgwOG0tMS44MjYtMS44MjUtMS44MjYtNC43ODUsMC02LjYxMQ0KCjMxLjgyNS0xLjgyNiwwLjc4Ni0xLjgyNyw2LjYxMSwwbDIxLjQ4NSwyMS40ODFMNzIuNDI2LDEuNTYxYzEuNzE5LTEuOTI0LDQuNjc0LTIuMDk0LDYuNjAxLTAuMzc0DQoJYzEuOTI2LDEuNzIsMi4wOTQsNC42NzUsMC4zNzQsNi40MDFMMzMuMTQ1LDU5LjU5NWMtMC40NTYsMC45NTktMi4wNywxLjUyMy0zLjM1NSwxLjUyQzI5Ljc0NiwyMS4xNTYsMjkuNzAyLDYxLjE1NywyOS42NTge0KCSIvPg0KPC9zdmc+DQo="; function shuffle(arr) { var copy = arr.slice(); for (var i = copy.length - 1; i > 0; i -= 1) { var j = Math.floor(Math.random() * (i + 1)); var temp = copy[i]; copy[i] = copy[j]; copy[j] = temp; } return copy; } function getRandomInt(min, max) { var low = Math.ceil(min); var high = Math.floor(max); return Math.floor(Math.random() * (high - low + 1)) + low; } function resolveFallbackProductImage() { var selectors = [ ".intro-img__img-start img", ".product_wrapper img", "#content_four .box_gift", ".img_gift" ]; for (var i = 0; i < selectors.length; i += 1) { var el = document.querySelector(selectors[i]); if (!el) continue; var src = el.getAttribute("src"); if (src && src.trim()) return src.trim(); } return ""; } function Notify(selector) { this.container = document.querySelector(selector); this.items = this.container ? this.container.querySelector(".notifications__items") : null; if (!this.items && this.container) { this.items = document.createElement("ul"); this.items.classList.add("notifications__items"); this.container.appendChild(this.items); } } function readInlineNotifyConfig() { var el = document.getElementById("notify-config"); if (!el) return null; try { var parsed = JSON.parse(el.textContent || el.innerText || ""); if (parsed && Array.isArray(parsed.names) && Array.isArray(parsed.places)) { return parsed; } } catch (err) { console.warn("Notify config parse failed", err); } return null; } Notify.prototype.createItem = function (payload) { var li = document.createElement("li"); li.classList.add("notifications__item", "showNoty"); li.innerHTML = '
' + '
' + '
' + '' + payload.name + "" + '' + payload.address + "" + "
" + '
' + payload.desc + "
" + '
' + '
ok
' + '
' + payload.time + " " + (payload.timeSuffix || "seconds ago") + "
" + "
" + "
"; li.addEventListener("click", function () { li.remove(); }); return li; }; Notify.prototype.send = function (payload) { if (!this.items) return null; var li = this.createItem(payload); if (this.items.prepend) { this.items.prepend(li); } else { this.items.appendChild(li); } return li; }; Notify.prototype.hide = function (li) { if (!li) return; setTimeout(function () { li.classList.remove("showNoty"); li.classList.add("hiddenNoty"); setTimeout(function () { li.remove(); }, 1500); }, 7500); }; function init(cfg) { var notify = new Notify(".notifications"); if (!notify.container || !notify.items) return; var strings = readInlineNotifyConfig() || {}; var product = (cfg && cfg.product) || "product"; var productImg = (cfg && cfg.productImageUrl) || resolveFallbackProductImage(); var names = shuffle(strings.names || []); var places = shuffle(strings.places || []); var descTemplate = strings.descTemplate || 'just won: {{product}} '; var timeSuffix = strings.timeSuffix || "seconds ago"; var count = Math.min(names.length, places.length); var data = []; for (var i = 0; i < count; i += 1) { data.push({ name: names[i], address: places[i], desc: descTemplate.replace(/{{\s*product\s*}}/gi, product), img: productImg, time: getRandomInt(10, 50), timeSuffix: timeSuffix }); } var delay = 5000; data.forEach(function (item, idx) { delay += 45000; if (idx === 0) delay = 5000; setTimeout(function () { var li = notify.send(item); if (li) { var timeEl = li.querySelector(".notifications__item__time"); if (timeEl) { timeEl.textContent = item.time + " " + (item.timeSuffix || timeSuffix); } } notify.hide(li); }, delay); }); } window.appNotify = { init: init }; })(window, document);