Category Archives: Florist Singapore

The Best Occasions for a Congratulation Bouquet

A beautiful flower arrangement can be the most thoughtful way to congratulate someone on special occasions or events. Giving flowers as gifts has been used ever since the early period, especially during the Victorian era. Flowers make a beautiful code or symbolism for passing and expressing non-verbal messages. You can send a stunning Flower Delivery […]

(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