import Foundation let hobukeskusAppInjectedScript = #""" (function() { if (window.__hobukeskusIOSAppInstalled) return; window.__hobukeskusIOSAppInstalled = true; var searchDebounceTimer = null; var latestSearchQuery = ''; var latestSearchRequestId = 0; function injectAppStyles() { if (document.getElementById('hobukeskus-ios-app-style')) return; var style = document.createElement('style'); style.id = 'hobukeskus-ios-app-style'; style.innerHTML = ` body.hobukeskus-ios-app #masthead, body.hobukeskus-ios-app .header-wrapper, body.hobukeskus-ios-app .header-main, body.hobukeskus-ios-app .header-bottom, body.hobukeskus-ios-app .mobile-header, body.hobukeskus-ios-app .stuck .header-main, body.hobukeskus-ios-app .header-bg-container { display: none !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; overflow: hidden !important; } body.hobukeskus-ios-app .header-wrapper.stuck, body.hobukeskus-ios-app .sticky-wrapper { display: none !important; } body.hobukeskus-ios-app { padding-top: 0 !important; } /* App mode: never show WooCommerce/Flatsome sidebar filters on category/search pages */ body.hobukeskus-ios-app #shop-sidebar, body.hobukeskus-ios-app .shop-sidebar, body.hobukeskus-ios-app .woocommerce-sidebar, body.hobukeskus-ios-app .category-sidebar, body.hobukeskus-ios-app #secondary, body.hobukeskus-ios-app .widget-area, body.hobukeskus-ios-app .category-page-row > .large-3, body.hobukeskus-ios-app .category-page-row > .medium-3, body.hobukeskus-ios-app .category-page-row > .small-12.large-3 { display: none !important; } body.hobukeskus-ios-app .category-page-row > .large-9, body.hobukeskus-ios-app .category-page-row > .medium-9, body.hobukeskus-ios-app .category-page-row > .small-12.large-9, body.hobukeskus-ios-app .shop-container .large-9, body.hobukeskus-ios-app .shop-container .medium-9 { max-width: 100% !important; flex-basis: 100% !important; width: 100% !important; } #hobukeskus-app-search-overlay { position: fixed !important; z-index: 2147483647 !important; inset: 0 !important; background: rgba(255,255,255,0.96) !important; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; display: none; padding: calc(env(safe-area-inset-top) + 28px) 18px 18px 18px !important; box-sizing: border-box !important; overflow-y: auto !important; } #hobukeskus-app-search-overlay.is-open { display: block !important; } #hobukeskus-app-search-card { background: #fff !important; border-radius: 22px !important; padding: 18px !important; box-shadow: 0 12px 34px rgba(0,0,0,0.18) !important; max-width: 680px !important; margin: 0 auto !important; box-sizing: border-box !important; } #hobukeskus-app-search-top { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; margin-bottom: 14px !important; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important; } #hobukeskus-app-search-title { font-size: 18px !important; font-weight: 700 !important; color: #222 !important; } #hobukeskus-app-search-close { appearance: none !important; -webkit-appearance: none !important; border: 0 !important; background: #f1f1f1 !important; color: #333 !important; border-radius: 999px !important; padding: 9px 13px !important; font-size: 14px !important; font-weight: 700 !important; text-transform: uppercase !important; } #hobukeskus-app-search-form { display: flex !important; gap: 10px !important; align-items: center !important; margin: 0 !important; } #hobukeskus-app-search-input { flex: 1 !important; width: 100% !important; height: 52px !important; border: 1px solid #ddd !important; background: #f6f6f6 !important; border-radius: 14px !important; padding: 0 14px !important; font-size: 17px !important; color: #222 !important; box-sizing: border-box !important; outline: none !important; box-shadow: 0 3px 12px rgba(0,0,0,0.12) inset !important; } #hobukeskus-app-search-submit { width: 58px !important; min-width: 58px !important; height: 52px !important; border-radius: 14px !important; border: 0 !important; background: #ad74a2 !important; color: #fff !important; font-size: 24px !important; font-weight: 800 !important; display: flex !important; align-items: center !important; justify-content: center !important; } #hobukeskus-app-search-results { margin-top: 14px !important; max-height: calc(100vh - 230px) !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch !important; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important; } .hobukeskus-app-search-status { padding: 14px 4px !important; color: #777 !important; font-size: 14px !important; } /* Guaven cloned results inside app overlay */ #hobukeskus-app-search-results .guaven_woos_suggestion { display: block !important; position: static !important; width: 100% !important; max-width: none !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; opacity: 1 !important; visibility: visible !important; transform: none !important; } #hobukeskus-app-search-results ul { list-style: none !important; margin: 0 !important; padding: 0 !important; } #hobukeskus-app-search-results .guaven_woos_suggestion_catul { margin-bottom: 10px !important; padding-bottom: 8px !important; border-bottom: 1px solid rgba(0,0,0,0.08) !important; } #hobukeskus-app-search-results .guaven_woos_suggestion_catul:before { content: "Kategooriad"; display: block !important; margin: 16px 0 8px 0 !important; font-size: 12px !important; font-weight: 800 !important; color: #999 !important; text-transform: uppercase !important; letter-spacing: 0.04em !important; } #hobukeskus-app-search-results .guaven_woos_final_results:before { content: "Tooted"; display: block !important; margin: 16px 0 8px 0 !important; font-size: 12px !important; font-weight: 800 !important; color: #999 !important; text-transform: uppercase !important; letter-spacing: 0.04em !important; } #hobukeskus-app-search-results .guaven_woos_suggestion_list { display: block !important; width: 100% !important; float: none !important; clear: both !important; padding: 10px 2px !important; margin: 0 !important; border-bottom: 1px solid rgba(0,0,0,0.08) !important; background: transparent !important; min-height: 0 !important; overflow: hidden !important; } #hobukeskus-app-search-results .guaven_woos_suggestion_list a { display: block !important; text-decoration: none !important; color: #2d405f !important; } #hobukeskus-app-search-results .guaven_woos_titlediv_cat { font-size: 16px !important; line-height: 1.3 !important; font-weight: 600 !important; color: #2d405f !important; padding: 0 !important; margin: 0 !important; } #hobukeskus-app-search-results .woos_cat_par_span { color: #888 !important; } #hobukeskus-app-search-results .guaven_woos_final_results .guaven_woos_suggestion_list { display: grid !important; grid-template-columns: 58px 1fr !important; gap: 12px !important; align-items: center !important; } #hobukeskus-app-search-results .guaven_woos_div { display: contents !important; } #hobukeskus-app-search-results .guaven_woos_img { width: 58px !important; height: 58px !important; object-fit: contain !important; border-radius: 10px !important; background: #f7f7f7 !important; grid-column: 1 !important; } #hobukeskus-app-search-results .guaven_woos_titlediv { grid-column: 2 !important; font-size: 15px !important; line-height: 1.25 !important; font-weight: 600 !important; color: #2d405f !important; margin: 0 !important; padding: 0 !important; } #hobukeskus-app-search-results .guaven_woos_hidden, #hobukeskus-app-search-results .guaven_woos_hidden_tags, #hobukeskus-app-search-results .woos_sku { display: none !important; } #hobukeskus-app-search-results .guaven_woos_showallli { display: block !important; padding: 14px 2px !important; margin-top: 8px !important; text-align: center !important; background: #f6f6f6 !important; border-radius: 14px !important; font-weight: 700 !important; color: #2d405f !important; } #hobukeskus-app-search-results .guaven_woos_showallli a { color: #2d405f !important; text-decoration: none !important; } /* App menu overlay */ #hobukeskus-app-menu-overlay { position: fixed !important; z-index: 2147483647 !important; inset: 0 !important; background: rgba(255,255,255,0.97) !important; backdrop-filter: blur(12px) !important; -webkit-backdrop-filter: blur(12px) !important; display: none; padding: calc(env(safe-area-inset-top) + 24px) 18px 18px 18px !important; box-sizing: border-box !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch !important; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important; } #hobukeskus-app-menu-overlay.is-open { display: block !important; } #hobukeskus-app-menu-card { background: #fff !important; border-radius: 24px !important; padding: 18px !important; box-shadow: 0 12px 34px rgba(0,0,0,0.16) !important; max-width: 720px !important; margin: 0 auto 90px auto !important; box-sizing: border-box !important; } #hobukeskus-app-menu-top { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; margin-bottom: 14px !important; } #hobukeskus-app-menu-title { font-size: 21px !important; font-weight: 700 !important; color: #555 !important; text-transform: uppercase !important; letter-spacing: 0.03em !important; } #hobukeskus-app-menu-close { appearance: none !important; -webkit-appearance: none !important; border: 0 !important; background: #f1f1f1 !important; color: #333 !important; border-radius: 999px !important; padding: 10px 14px !important; font-size: 14px !important; font-weight: 800 !important; text-transform: uppercase !important; } #hobukeskus-app-menu-status { padding: 14px 2px !important; color: #777 !important; font-size: 14px !important; } .hbk-app-menu-section { border-bottom: 1px solid rgba(0,0,0,0.10) !important; } .hbk-app-menu-section-toggle, .hbk-app-menu-link { width: 100% !important; min-height: 52px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; border: 0 !important; background: transparent !important; color: #555 !important; font-size: 17px !important; font-weight: 700 !important; text-align: left !important; text-decoration: none !important; padding: 14px 2px !important; box-sizing: border-box !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; } .hbk-app-menu-link { border-bottom: 1px solid rgba(0,0,0,0.10) !important; } .hbk-app-menu-section-toggle:after { content: "+"; color: #ad74a2 !important; font-size: 28px !important; font-weight: 800 !important; line-height: 1 !important; } .hbk-app-menu-section.is-open > .hbk-app-menu-section-toggle:after { content: "−"; } .hbk-app-menu-section-content { display: none; padding: 0 0 14px 0 !important; } .hbk-app-menu-section.is-open > .hbk-app-menu-section-content { display: block !important; } .hbk-app-menu-html { color: #333 !important; font-size: 16px !important; line-height: 1.35 !important; } .hbk-app-menu-html .row, .hbk-app-menu-html .row-small, .hbk-app-menu-html .large-columns-4, .hbk-app-menu-html .medium-columns-3, .hbk-app-menu-html .small-columns-2 { display: block !important; width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; } .hbk-app-menu-html .col, .hbk-app-menu-html .columns, .hbk-app-menu-html [class*="large-"], .hbk-app-menu-html [class*="medium-"], .hbk-app-menu-html [class*="small-"] { display: block !important; width: 100% !important; max-width: 100% !important; flex-basis: 100% !important; padding-left: 0 !important; padding-right: 0 !important; margin: 0 !important; } .hbk-app-menu-html h1, .hbk-app-menu-html h2, .hbk-app-menu-html h3, .hbk-app-menu-html h4, .hbk-app-menu-html h5, .hbk-app-menu-html h6, .hbk-app-menu-html .uppercase { margin: 14px 0 6px 0 !important; color: #111 !important; font-size: 13px !important; font-weight: 900 !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; } .hbk-app-menu-html p, .hbk-app-menu-html ul, .hbk-app-menu-html ol { margin: 0 !important; padding: 0 !important; } .hbk-app-menu-html ul, .hbk-app-menu-html ol { list-style: none !important; } .hbk-app-menu-html li { list-style: none !important; margin: 0 !important; padding: 0 !important; border-bottom: 1px solid rgba(0,0,0,0.06) !important; } .hbk-app-menu-html a { display: block !important; min-height: 42px !important; padding: 10px 0 !important; color: #2d405f !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1.25 !important; text-decoration: none !important; text-transform: uppercase !important; letter-spacing: 0.01em !important; } .hbk-app-menu-html img { max-width: 100% !important; height: auto !important; border-radius: 14px !important; margin: 8px 0 !important; } .hbk-app-menu-html .button, .hbk-app-menu-html button { width: 100% !important; border-radius: 14px !important; } .hbk-app-submenu { border-bottom: 1px solid rgba(0,0,0,0.08) !important; } .hbk-app-submenu-toggle { width: 100% !important; min-height: 48px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; appearance: none !important; -webkit-appearance: none !important; border: 0 !important; background: transparent !important; color: #555 !important; font-size: 16px !important; font-weight: 700 !important; text-align: left !important; padding: 12px 0 !important; text-transform: uppercase !important; letter-spacing: 0.02em !important; } .hbk-app-submenu-toggle:after { content: "+"; color: #ad74a2 !important; font-size: 23px !important; font-weight: 900 !important; line-height: 1 !important; } .hbk-app-submenu.is-open > .hbk-app-submenu-toggle:after { content: "−"; } .hbk-app-submenu-content { display: none; padding: 0 0 8px 0 !important; } .hbk-app-submenu.is-open > .hbk-app-submenu-content { display: block !important; } .hbk-app-submenu-content a { padding-left: 8px !important; } `; document.head.appendChild(style); } function markBody() { document.documentElement.classList.add('hobukeskus-ios-app'); if (document.body) { document.body.classList.add('hobukeskus-ios-app'); } } function ensureSearchOverlay() { var overlay = document.getElementById('hobukeskus-app-search-overlay'); if (overlay) return overlay; overlay = document.createElement('div'); overlay.id = 'hobukeskus-app-search-overlay'; overlay.innerHTML = `
Otsi tooteid
`; document.body.appendChild(overlay); overlay.addEventListener('click', function(event) { if (event.target === overlay) { closeSearchOverlay(); } }); var closeButton = overlay.querySelector('#hobukeskus-app-search-close'); if (closeButton) { closeButton.addEventListener('click', function() { closeSearchOverlay(); }); } var form = overlay.querySelector('#hobukeskus-app-search-form'); var input = overlay.querySelector('#hobukeskus-app-search-input'); if (form) { form.addEventListener('submit', function(event) { event.preventDefault(); var query = input ? input.value.trim() : ''; if (query.length > 0) { window.location.href = '/?s=' + encodeURIComponent(query) + '&post_type=product'; } }); } if (input) { input.addEventListener('input', function() { scheduleGuavenSearch(input.value); }); input.addEventListener('keyup', function() { scheduleGuavenSearch(input.value); }); input.addEventListener('search', function() { scheduleGuavenSearch(input.value); }); } return overlay; } function closeSearchOverlay() { var overlay = document.getElementById('hobukeskus-app-search-overlay'); if (overlay) overlay.classList.remove('is-open'); } function focusAppSearchInput() { var overlay = ensureSearchOverlay(); var input = overlay.querySelector('#hobukeskus-app-search-input'); if (!input) return false; try { input.removeAttribute('readonly'); input.focus({ preventScroll: false }); input.click(); if (typeof input.select === 'function') { input.select(); } return true; } catch (e) { return false; } } function setNativeInputValue(input, value) { try { var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set; nativeInputValueSetter.call(input, value); } catch (e) { input.value = value; } } function findOriginalGuavenInput() { if ( window.guaven_woos && window.guaven_woos.current_input_object && window.guaven_woos.current_input_object.length && window.guaven_woos.current_input_object[0] ) { return window.guaven_woos.current_input_object[0]; } var selectors = [ '#woocommerce-product-search-field-1', '#woocommerce-product-search-field-0', '.guaven_woos_search_input', 'input.guaven_woos_search_input', '#guaven_woos_s', '.header-search input[type="search"]', '.header-search input[name="s"]', '.searchform input[type="search"]', '.woocommerce-product-search input[type="search"]', 'input[type="search"][name="s"]', 'input[name="s"]' ]; for (var i = 0; i < selectors.length; i++) { var elements = document.querySelectorAll(selectors[i]); for (var j = 0; j < elements.length; j++) { var input = elements[j]; if (input.closest('#hobukeskus-app-search-overlay')) { continue; } return input; } } return null; } function fireSearchEvents(input, query) { setNativeInputValue(input, query); var events = [ 'focus', 'keydown', 'keypress', 'input', 'keyup', 'change' ]; for (var i = 0; i < events.length; i++) { try { input.dispatchEvent(new Event(events[i], { bubbles: true, cancelable: true })); } catch (e) {} } try { input.dispatchEvent(new KeyboardEvent('keyup', { bubbles: true, cancelable: true, key: query.slice(-1) || '', code: '', which: query.length ? query.charCodeAt(query.length - 1) : 0, keyCode: query.length ? query.charCodeAt(query.length - 1) : 0 })); } catch (e) {} if (window.jQuery) { try { window.jQuery(input) .val(query) .trigger('focus') .trigger('keydown') .trigger('input') .trigger('keyup') .trigger('change'); } catch (e) {} } } function findGuavenSuggestionSource() { var suggestions = document.querySelectorAll('.guaven_woos_suggestion'); for (var i = 0; i < suggestions.length; i++) { var suggestion = suggestions[i]; if (suggestion.closest('#hobukeskus-app-search-overlay')) { continue; } return suggestion; } return null; } function scheduleGuavenSearch(rawQuery) { var query = (rawQuery || '').trim(); var results = document.getElementById('hobukeskus-app-search-results'); latestSearchQuery = query; latestSearchRequestId++; clearTimeout(searchDebounceTimer); if (!results) return; if (query.length < 2) { results.innerHTML = '
Sisesta vähemalt 2 tähemärki.
'; return; } results.innerHTML = '
Otsin…
'; searchDebounceTimer = setTimeout(function() { runGuavenSearch(query, latestSearchRequestId); }, 120); } function runGuavenSearch(query, requestId) { var sourceInput = findOriginalGuavenInput(); var results = document.getElementById('hobukeskus-app-search-results'); if (!results) return; if (!window.guaven_woos) { results.innerHTML = `
Guaveni otsingumootorit ei leitud.
`; return; } if (!sourceInput) { results.innerHTML = `
Guaveni otsinguvälja ei leitud.
`; return; } setNativeInputValue(sourceInput, query); try { if (window.jQuery) { window.guaven_woos.current_input_object = window.jQuery(sourceInput); window.jQuery(sourceInput) .val(query) .trigger('focus') .trigger('input') .trigger('keyup') .trigger('change'); } } catch (e) {} try { window.guaven_woos.focused = 1; window.guaven_woos.tempval = query; window.guaven_woos.tempval_raw = query; } catch (e) {} try { if (typeof window.guaven_woos.runner === 'function') { window.guaven_woos.runner(); } } catch (e) {} setTimeout(function() { mirrorGuavenResults(query, requestId); }, 100); setTimeout(function() { mirrorGuavenResults(query, requestId); }, 250); setTimeout(function() { mirrorGuavenResults(query, requestId); }, 500); setTimeout(function() { mirrorGuavenResults(query, requestId); }, 900); } function mirrorGuavenResults(query, requestId) { var results = document.getElementById('hobukeskus-app-search-results'); var currentInput = document.getElementById('hobukeskus-app-search-input'); var currentQuery = currentInput ? currentInput.value.trim() : ''; if (!results) return; if ( requestId !== latestSearchRequestId || query !== latestSearchQuery || query !== currentQuery ) { return; } var source = findGuavenSuggestionSource(); if (!source) { results.innerHTML = `
Guaveni soovitusi ei leitud.
`; return; } var clone = source.cloneNode(true); clone.style.display = 'block'; clone.style.position = 'static'; clone.style.visibility = 'visible'; clone.style.opacity = '1'; clone.style.width = '100%'; Array.prototype.forEach.call(clone.querySelectorAll('a[href]'), function(a) { try { var href = a.getAttribute('href'); if (!href) return; if (href.indexOf('gwp=') === 0) { href = href.replace('gwp={gwsvid}', ''); } a.href = new URL(href, window.location.origin).href; } catch (e) {} }); Array.prototype.forEach.call(clone.querySelectorAll('img[src]'), function(img) { try { img.src = new URL(img.getAttribute('src'), window.location.origin).href; } catch (e) {} }); results.innerHTML = ''; results.appendChild(clone); } function escapeHTML(value) { return String(value || '') .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function escapeAttribute(value) { return escapeHTML(value).replace(/`/g, '`'); } function getAppMenuCacheKey() { return 'hbk_app_menu_cache_v4_' + getAppMenuLanguage(); } function getCachedAppMenu() { try { var raw = window.localStorage.getItem(getAppMenuCacheKey()); if (!raw) return null; var cached = JSON.parse(raw); if (!cached || !cached.savedAt || !cached.data) return null; var maxAgeMs = 24 * 60 * 60 * 1000; if ((Date.now() - cached.savedAt) > maxAgeMs) return null; return cached.data; } catch (e) { return null; } } function setCachedAppMenu(data) { try { window.localStorage.setItem(getAppMenuCacheKey(), JSON.stringify({ savedAt: Date.now(), data: data })); } catch (e) {} } function ensureAppMenuOverlay() { var overlay = document.getElementById('hobukeskus-app-menu-overlay'); if (overlay) return overlay; overlay = document.createElement('div'); overlay.id = 'hobukeskus-app-menu-overlay'; overlay.innerHTML = `
Menüü
Laen menüüd…
`; document.body.appendChild(overlay); overlay.addEventListener('click', function(event) { if (event.target === overlay) { closeAppMenuOverlay(); } }); var closeButton = overlay.querySelector('#hobukeskus-app-menu-close'); if (closeButton) { closeButton.addEventListener('click', function() { closeAppMenuOverlay(); }); } return overlay; } function closeAppMenuOverlay() { var overlay = document.getElementById('hobukeskus-app-menu-overlay'); if (overlay) overlay.classList.remove('is-open'); } function openAppMenuOverlay() { var overlay = ensureAppMenuOverlay(); overlay.classList.add('is-open'); loadAppMenu({ silent: false }); } function preloadAppMenu() { ensureAppMenuOverlay(); loadAppMenu({ silent: true }); } function getAppMenuLanguage() { try { if (document.documentElement.lang && document.documentElement.lang.toLowerCase().indexOf('en') === 0) { return 'en'; } } catch (e) {} return 'et'; } function loadAppMenu(options) { options = options || {}; var overlay = ensureAppMenuOverlay(); var content = overlay.querySelector('#hobukeskus-app-menu-content'); if (!content) return; if (content.getAttribute('data-loaded') === '1') { return; } var cached = getCachedAppMenu(); if (cached) { renderAppMenu(cached); return; } if (!options.silent) { content.innerHTML = '
Laen menüüd…
'; } var url = '/wp-json/hbk-app/v1/menu?lang=' + encodeURIComponent(getAppMenuLanguage()) + '&_=' + Date.now(); fetch(url, { method: 'GET', credentials: 'same-origin', cache: 'no-store', headers: { 'Accept': 'application/json', 'Cache-Control': 'no-cache' } }) .then(function(response) { if (!response.ok) { throw new Error('HTTP ' + response.status + ' ' + response.statusText); } return response.json(); }) .then(function(data) { setCachedAppMenu(data); renderAppMenu(data); }) .catch(function(error) { content.innerHTML = `
Menüüd ei saanud laadida.

Tehniline põhjus: ${escapeHTML(error && error.message ? error.message : String(error))}
`; }); } function isAppMenuHeadingNode(node) { if (!node || node.nodeType !== 1) return false; if (node.closest('.hbk-app-submenu')) return false; var tag = node.tagName ? node.tagName.toLowerCase() : ''; var cls = node.className ? String(node.className).toLowerCase() : ''; var text = (node.innerText || node.textContent || '').trim(); if (!text || text.length > 80) return false; if (tag === 'h1' || tag === 'h2' || tag === 'h3' || tag === 'h4' || tag === 'h5' || tag === 'h6') return true; if (cls.indexOf('ux-menu-title') !== -1) return true; if (cls.indexOf('uppercase') !== -1 && text === text.toUpperCase()) return true; return false; } function isIgnorableMenuNode(node) { if (!node) return true; if (node.nodeType === 3 && !node.textContent.trim()) return true; if (node.nodeType === 8) return true; return false; } function enhanceAppMenuBlock(root) { if (!root || root.getAttribute('data-submenu-enhanced') === '1') return; root.setAttribute('data-submenu-enhanced', '1'); var headings = Array.prototype.slice.call(root.querySelectorAll('h1,h2,h3,h4,h5,h6,.ux-menu-title,.uppercase')) .filter(isAppMenuHeadingNode); for (var i = 0; i < headings.length; i++) { var heading = headings[i]; if (!heading.parentNode || heading.closest('.hbk-app-submenu')) continue; var title = (heading.innerText || heading.textContent || '').trim(); if (!title) continue; var parent = heading.parentNode; var section = document.createElement('div'); section.className = 'hbk-app-submenu'; var toggle = document.createElement('button'); toggle.type = 'button'; toggle.className = 'hbk-app-submenu-toggle'; toggle.textContent = title; var body = document.createElement('div'); body.className = 'hbk-app-submenu-content'; parent.insertBefore(section, heading); section.appendChild(toggle); section.appendChild(body); var node = heading.nextSibling; parent.removeChild(heading); while (node) { var next = node.nextSibling; if (isAppMenuHeadingNode(node)) { break; } body.appendChild(node); node = next; } if (!body.textContent.trim() && body.querySelectorAll('a,img,button').length === 0) { section.parentNode.removeChild(section); continue; } toggle.addEventListener('click', function(event) { var submenu = event.currentTarget.closest('.hbk-app-submenu'); if (!submenu) return; submenu.classList.toggle('is-open'); }); } } function renderAppMenu(data) { var overlay = ensureAppMenuOverlay(); var content = overlay.querySelector('#hobukeskus-app-menu-content'); if (!content) return; var items = data && data.items ? data.items : []; if (!items.length) { content.innerHTML = '
Menüü on tühi.
'; return; } var html = ''; for (var i = 0; i < items.length; i++) { var item = items[i]; if (item.type === 'block') { html += `
${item.html || ''}
`; continue; } if (item.type === 'link') { html += ` ${escapeHTML(item.title || '')} `; } } content.innerHTML = html; content.setAttribute('data-loaded', '1'); Array.prototype.forEach.call(content.querySelectorAll('.hbk-app-menu-html'), function(blockRoot) { enhanceAppMenuBlock(blockRoot); }); Array.prototype.forEach.call(content.querySelectorAll('.hbk-app-menu-section-toggle'), function(button) { button.addEventListener('click', function() { var section = button.closest('.hbk-app-menu-section'); if (!section) return; section.classList.toggle('is-open'); }); }); Array.prototype.forEach.call(content.querySelectorAll('a[href]'), function(link) { link.addEventListener('click', function() { closeAppMenuOverlay(); }); }); // Menüü avaneb vaikimisi suletuna. Kasutaja avab soovitud osa + märgist. } function readCartCountFromPage() { var selectors = [ '.cart-icon strong', '.cart-icon .cart-count', '.header-cart-link .cart-icon strong', '.header-cart-link .cart-count', 'a.cart-contents .count', '.cart-contents .count', '.woocommerce-mini-cart__total', '.cart-count', '[data-icon-label]' ]; for (var i = 0; i < selectors.length; i++) { var elements = document.querySelectorAll(selectors[i]); for (var j = 0; j < elements.length; j++) { var el = elements[j]; var value = ''; if (el.getAttribute && el.getAttribute('data-icon-label')) { value = el.getAttribute('data-icon-label') || ''; } else { value = (el.innerText || el.textContent || '').trim(); } var match = value.match(/\d+/); if (match) { var parsed = parseInt(match[0], 10); if (!isNaN(parsed)) return parsed; } } } return 0; } function readWishlistHasItemsFromPage() { var countSelectors = [ '.wishlist_products_counter_number', '.wishlist-count', '.wishlist-counter', '.yith-wcwl-items-count', '.tinvwl-count', '[data-wishlist-count]', '[data-tinv-wl-count]' ]; for (var i = 0; i < countSelectors.length; i++) { var elements = document.querySelectorAll(countSelectors[i]); for (var j = 0; j < elements.length; j++) { var el = elements[j]; var value = ''; if (el.getAttribute && el.getAttribute('data-wishlist-count')) { value = el.getAttribute('data-wishlist-count') || ''; } else if (el.getAttribute && el.getAttribute('data-tinv-wl-count')) { value = el.getAttribute('data-tinv-wl-count') || ''; } else { value = (el.innerText || el.textContent || '').trim(); } var match = value.match(/\d+/); if (match && parseInt(match[0], 10) > 0) { return true; } } } var wishlistPageSelectors = [ '.wishlist_table tbody tr', '.shop_table.wishlist_table tbody tr', '.tinv-wishlist table tbody tr', '.wishlist-items-wrapper .product', '.woocommerce-wishlist .product' ]; for (var k = 0; k < wishlistPageSelectors.length; k++) { var rows = document.querySelectorAll(wishlistPageSelectors[k]); if (rows && rows.length > 0) { for (var r = 0; r < rows.length; r++) { var rowText = (rows[r].innerText || rows[r].textContent || '').toLowerCase(); if ( rowText.indexOf('no products') === -1 && rowText.indexOf('empty') === -1 && rowText.indexOf('tühi') === -1 ) { return true; } } } } return false; } function sendCartCount() { try { var count = readCartCountFromPage(); if ( window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.cartCount ) { window.webkit.messageHandlers.cartCount.postMessage(count); } } catch (e) {} } function sendWishlistState() { try { var hasItems = readWishlistHasItemsFromPage(); if ( window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.wishlistState ) { window.webkit.messageHandlers.wishlistState.postMessage(hasItems); } } catch (e) {} } window.HobukeskusAppOpenMenu = function() { openAppMenuOverlay(); return true; }; window.HobukeskusAppPreloadMenu = function() { preloadAppMenu(); return true; }; window.HobukeskusAppOpenSearch = function() { var overlay = ensureSearchOverlay(); overlay.classList.add('is-open'); var input = overlay.querySelector('#hobukeskus-app-search-input'); if (input) { latestSearchQuery = input.value.trim(); if (latestSearchQuery.length < 2) { var results = overlay.querySelector('#hobukeskus-app-search-results'); if (results) { results.innerHTML = '
Sisesta vähemalt 2 tähemärki.
'; } } else { scheduleGuavenSearch(latestSearchQuery); } } focusAppSearchInput(); setTimeout(focusAppSearchInput, 50); setTimeout(focusAppSearchInput, 180); setTimeout(focusAppSearchInput, 450); return true; }; window.HobukeskusAppSendCartCount = sendCartCount; window.HobukeskusAppSendWishlistState = sendWishlistState; markBody(); injectAppStyles(); sendCartCount(); sendWishlistState(); document.addEventListener('DOMContentLoaded', function() { markBody(); injectAppStyles(); sendCartCount(); sendWishlistState(); setTimeout(preloadAppMenu, 650); }); setTimeout(preloadAppMenu, 900); document.addEventListener('click', function() { setTimeout(sendCartCount, 700); setTimeout(sendCartCount, 1800); setTimeout(sendWishlistState, 700); setTimeout(sendWishlistState, 1800); }, true); var observer = new MutationObserver(function() { sendCartCount(); sendWishlistState(); }); function startObserver() { if (document.body) { observer.observe(document.body, { childList: true, subtree: true, characterData: true, attributes: true }); } } startObserver(); setInterval(function() { sendCartCount(); sendWishlistState(); }, 2500); })(); """# Veel soodsam! Mountain Horse laste soe trennipluus Tate - 120 cm - Oranž - Hobukeskus

Veel soodsam! Mountain Horse laste soe trennipluus Tate - 120 cm - Oranž

Algne hind oli: 50.00 €.Current price is: 9.95 €.

Lisa soovikorvi
Lisa soovikorvi
Kategooriad: , , , Silt: Bränd:
Mountain Horse
Mountain Horse on Rootsi kvaliteetbränd, mis oskab suurepäraselt arvestada meie kliimaga. Eksklusiivne disain ja kõrge kvaliteet!
See veebileht kasutab küpsiseid, et isikupärastada sisu ja reklaame ning pakkuda parimat kasutajakogemust. Teavet teie veebisaidi kasutamise kohta võidakse jagada ka meie sotsiaalmeedia-, reklaami- ja analüüsipartneritega. View more
Privaatsus
Nõustun
Keeldun
Privaatsus ja küpsiste seaded
Privaatsuspoliitika
Nimi Aktiivne

Privaatsuspoliitika

Tige Tihane OÜ (Hobukeskus) austab klientide ja kasutajate privaatsust. Lähtuvalt sellest oleme koostanud privaatsuspoliitika põhimõtted, mis käsitlevad klientide andmete kogumist, avaldamist, kasutamist, talletamist ning edastamist. Isikuandmete töötlemisel järgitakse Eesti ja Euroopa Liidu õigusakte.

Isikuandmete kogumine

  • E-poe tellimuse täitmisega seotud isikuandmete käitlemise põhimõtted leiad siit.
  • Andes nõusoleku uudiskirjaga liitumiseks võime koguda järgmiseid isikustatuid andmeid: eesnimi, perenimi, e-mail.

Isikustamata andmete kogumine ja küpsised

Küpsis on pisike tekstifail, mille veebilehitseja salvestab automaatselt kasutaja poolt kasutatavasse seadmesse. Küpsiseid kasutatakse teabe kogumiseks selle kohta, kuidas kasutaja veebilehte kasutab, eesmärgiga pakkuda kasutajale paremat kasutajakogemust.
  • Veebilehel www.hobukeskus.ee on kasutusel küpsised, s.h seansiküpsised, mille eesmärk on võimaldada veebilehe kasutamist ja püsiküpsised, mille eesmärk on meeles pidada veebilehe kasutaja valikuid. Lisaks jälgivad logifailid veebilehel tehtud toiminguid ja koguvad andmeid, sealhulgas Teie IP-aadress, operatsioonisüsteem, interneti-teenuse pakkuja ning muu sarnane teave.
  • Lisaks seansiküpsistele kasutab veebileht analüüsiküpsiseid, mille abil on võimalik jälgida veebilehe kasutust.
  • Veebilehe külastaja võib oma seadmetesse salvestatud küpsised kustutada ja/või blokeerida, muutes oma veebilehitseja vastavaid seadeid. Küpsiste mittekasutamisel ei pruugi veebileht plaanipäraselt töötada ja/või osad funktsionaalsused ei pruugi olla kasutajatel kättesaadavad.
  • Isikustamata andmeid kasutatakse eelkõige veebilehe funktsionaalsuse parandamise eesmärgil.
Lisateavet küpsiste ja küpsiste keelamise kohta leiate veebisaidilt http://www.allaboutcookies.org.

Kogutud isikuandmete muutmine ja kustutamine

Isikuandmetega saab tutvuda ja teha parandusi e-poe kasutajaprofiilis "Minu konto" või klienditoe vahendusel. Sealjuures on kasutajal õigus ja võimalus kogutud info kustutada. Uudiskirja andmebaasist on võimalik end igal hetkel eemaldada järgides juhiseid uudiskirja jaluses või andes soovist teada Hobukeskuse klienditoele.

Isikuandmete kaitse ja turvalisus

Hobukeskus rakendab kõiki seadusest tulenevaid ettevaatusabinõusid kasutaja isikuandmete kaitsmiseks. Juurdepääs andmete muutmiseks ja töötlemiseks on ainult selleks volitatud isikutel. Hobukeskus kasutab Teie isikuandmete kogumisel, säilitamisel ja töötlemisel ajakohaseid ja piisavaid ning tehnilisi ja korralduslikke turvameetmeid, mis kaitsevad isikuandmetele loata juurdepääsu, muutmise, avalikustamise või hävitamise eest.

Privaatsuspoliitika tingimused ja muudatused

Hobukeskuse e-poodi kasutama asudes oled käesolevate põhimõtete ja tingimustega tutvunud ning nendega nõustunud. Jätame endale õiguse vajadusel privaatsuspoliitika üldtingimusi muuta ja täiendada. Kehtivad andmekaitsetingimused on alati kättesaadavad Hobukeskuse veebilehel www.hobukeskus.ee/privaatsuspoliitika. Kõigi privaatsuspoliitika või andmetöötluse kohta tekkivate küsimuste või muredega palume võtta meiega ühendust aadressil info@hobukeskus.ee.
Save settings
Privaatsus