Финишные смеси для стен и потолков
Главная
/
Магазин
/
🧱 Материалы для отделки
/
Финишные смеси для стен и потолков
Перейти к основному контенту
Ne-am deschis — aici găsești tot ce ai nevoie pentru decorul casei tale!
Shop Now
Ai întrebări Apelează-ne
RO
RU
EN
Меню
Catalog
Locație
Livrare
Garanție
Contacte
New menu item
+373 78883878
info@decorshop.md
(function() { 'use strict'; var SUPPORTED_LANGS = ['ro', 'ru', 'en']; var DEFAULT_LANG = 'ro'; var STORAGE_KEY = 'decorshop-lang'; function injectStyles() { if (document.getElementById('ds-lang-styles')) return; var style = document.createElement('style'); style.id = 'ds-lang-styles'; style.textContent = '.ds-lang{display:none}.ds-lang.ds-active{display:block}'; document.head.appendChild(style); } function detectLanguage() { try { var saved = localStorage.getItem(STORAGE_KEY); if (saved && SUPPORTED_LANGS.indexOf(saved) !== -1) return saved; } catch (e) {} var htmlLang = (document.documentElement.lang || '').toLowerCase().substring(0, 2); if (htmlLang === 'md') return 'ro'; if (SUPPORTED_LANGS.indexOf(htmlLang) !== -1) return htmlLang; var browserLang = (navigator.language || navigator.userLanguage || '').toLowerCase().substring(0, 2); if (SUPPORTED_LANGS.indexOf(browserLang) !== -1) return browserLang; return DEFAULT_LANG; } function applyLanguage(lang) { if (SUPPORTED_LANGS.indexOf(lang) === -1) lang = DEFAULT_LANG; var blocks = document.querySelectorAll('.ds-lang'); if (!blocks.length) return; blocks.forEach(function(block) { if (block.getAttribute('data-lang') === lang) { block.classList.add('ds-active'); } else { block.classList.remove('ds-active'); } }); var buttons = document.querySelectorAll('[data-ds-lang-btn]'); buttons.forEach(function(btn) { if (btn.getAttribute('data-ds-lang-btn') === lang) { btn.classList.add('ds-active'); } else { btn.classList.remove('ds-active'); } }); } window.decorshopSwitchLang = function(lang) { if (SUPPORTED_LANGS.indexOf(lang) === -1) return; try { localStorage.setItem(STORAGE_KEY, lang); } catch (e) {} applyLanguage(lang); }; function init() { injectStyles(); applyLanguage(detectLanguage()); try { var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { if (m.type === 'attributes' && m.attributeName === 'lang') { try { localStorage.removeItem(STORAGE_KEY); } catch (e) {} applyLanguage(detectLanguage()); } }); }); observer.observe(document.documentElement, { attributes: true }); } catch (e) {} try { var bodyObserver = new MutationObserver(function() { if (document.querySelector('.ds-lang:not(.ds-active)')) { applyLanguage(detectLanguage()); } }); bodyObserver.observe(document.body, { childList: true, subtree: true }); } catch (e) {} } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();