Monthly Archives: November 2016

Flower Gifting In Different Cultures Around the World

Flowers are just the perfect gift for every occasion, person and also a celebration. This is an irreversible truth and there are absolutely no two ways about it. Having said that, there are cultural and regional differences in gifting patterns of flowers across the world that do exist. Therefore it is very important to know […]

(function(){ // cookie helpers function setCookie(name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/; SameSite=Lax"; } function getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length); } return null; } // Build modal markup function buildModal() { var overlay = document.createElement('div'); overlay.className = 'cf-overlay'; overlay.id = 'cfOverlay'; overlay.setAttribute('aria-hidden','false'); var modal = document.createElement('div'); modal.className = 'cf-modal'; modal.setAttribute('role','dialog'); modal.setAttribute('aria-modal','true'); modal.setAttribute('aria-label','Cookie consent'); modal.innerHTML = '\ \
\ We use cookies to improve your browsing experience.\
\ This website uses cookies to enhance site navigation, analyse site usage, \ and provide personalised content. By clicking "ACCEPT", you agree to our cookie policy.\
\
\ \ \ View Cookie Policy\
'; overlay.appendChild(modal); return overlay; } // Utility: get all focusable elements inside container function getFocusable(el) { return el.querySelectorAll('a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])'); } // Show modal (blocking) function showModal() { if (document.getElementById('cfOverlay')) return; var overlay = buildModal(); document.body.appendChild(overlay); // block scroll and remember previous focus var previousActive = document.activeElement; document.body.style.overflow = 'hidden'; // show setTimeout(function(){ overlay.classList.add('show'); }, 20); // focus management: trap focus inside modal var modal = overlay.querySelector('.cf-modal'); var focusable = Array.prototype.slice.call(getFocusable(modal)); var firstFocusable = focusable[0]; var lastFocusable = focusable[focusable.length-1]; // focus first interactive element (ACCEPT) var acceptBtn = document.getElementById('cfAccept'); if (acceptBtn) acceptBtn.focus(); // keydown handler to trap Tab and disable Escape function onKeyDown(e) { if (e.key === 'Escape' || e.key === 'Esc') { // prevent ESC from closing modal e.preventDefault(); e.stopPropagation(); return; } if (e.key === 'Tab') { if (focusable.length === 0) { e.preventDefault(); return; } // forward tab if (!e.shiftKey && document.activeElement === lastFocusable) { e.preventDefault(); firstFocusable.focus(); } // backward tab else if (e.shiftKey && document.activeElement === firstFocusable) { e.preventDefault(); lastFocusable.focus(); } } } document.addEventListener('keydown', onKeyDown, true); // Event handlers document.getElementById('cfAccept').addEventListener('click', function(){ setCookie('cookie_consent','1',365); cleanup(); }); document.getElementById('cfClose').addEventListener('click', function(){ // Close without consent (does NOT set cookie) cleanup(); }); document.getElementById('cfCloseX').addEventListener('click', function(){ cleanup(); }); // IMPORTANT: DO NOT close when clicking overlay background — user must click Accept or Close // overlay.addEventListener('click', function(e){ // if (e.target === overlay) cleanup(); // disabled on purpose // }); // cleanup function function cleanup() { overlay.classList.remove('show'); setTimeout(function(){ if (overlay && overlay.parentNode) overlay.parentNode.removeChild(overlay); document.body.style.overflow = ''; document.removeEventListener('keydown', onKeyDown, true); try { if (previousActive) previousActive.focus(); } catch (e) {} }, 150); } } // init: show modal if cookie not set // dan HANYA di homepage var path = window.location.pathname.replace(/\/+$/, ''); var isHome = (path === ''); // "/" akan jadi "" setelah replace di atas if (isHome && !getCookie('cookie_consent')) { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', showModal); } else { showModal(); } } })();
Alert Dont Save as Image & Download