{"id":758,"date":"2024-07-05T10:04:45","date_gmt":"2024-07-05T10:04:45","guid":{"rendered":"https:\/\/healthcare-plaza.eu\/?page_id=758"},"modified":"2025-09-23T06:28:54","modified_gmt":"2025-09-23T06:28:54","slug":"locator","status":"publish","type":"page","link":"https:\/\/www.nanohealthcare.eu\/cs\/locator\/","title":{"rendered":"Lok\u00e1tor l\u00e9\u010dby"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"758\" class=\"elementor elementor-758\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-510b9d0 e-flex e-con-boxed e-con e-parent\" data-id=\"510b9d0\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4d40118 elementor-widget elementor-widget-heading\" data-id=\"4d40118\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Lok\u00e1tor l\u00e9\u010dby<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-49ec849 e-con-full e-flex e-con e-parent\" data-id=\"49ec849\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bc080fd elementor-widget__width-inherit elementor-widget elementor-widget-shortcode\" data-id=\"bc080fd\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n        <style>\n            \/* Centered intro section - variable width to match buttons *\/\n            .treatment-intro {\n                max-width: 1200px;\n                width: 100%;\n                margin: 0 auto 2rem auto;\n                text-align: left;\n                background: #f8f9fa;\n                border: 1px solid #dee2e6;\n                border-radius: 12px;\n                padding: 2rem;\n            }\n\n            .treatment-intro h2 {\n                margin: 0 0 1rem 0;\n                color: #2c3e50;\n                font-size: 24px;\n            }\n\n            .treatment-intro p {\n                margin: 0 0 1.5rem 0;\n                font-size: 16px;\n                color: #6c757d;\n                line-height: 1.6;\n            }\n\n            .specialty-text {\n                font-size: 14px;\n                color: #495057;\n                line-height: 1.8;\n                text-align: left;\n                max-width: 600px;\n            }\n\n            .specialty-text strong {\n                color: #2c3e50;\n            }\n\n            \/* Filter section above map *\/\n            .treatment-filters {\n                margin-bottom: 1.5rem;\n                padding: 0 1rem;\n                margin-left: -1rem;\n                margin-right: -1rem;\n            }\n\n            \/* Search section *\/\n            .treatment-search {\n                margin-bottom: 2rem;\n                padding: 0 1rem;\n            }\n\n            .search-container {\n                display: flex;\n                gap: 1rem;\n                max-width: 800px;\n                margin: 0 auto;\n                align-items: center;\n            }\n\n            \/* Main content wrapper *\/\n            #treatment-wrapper {\n                display: flex;\n                flex-direction: row;\n                width: 100%;\n            }\n\n            #treatment-sidebar {\n                min-width: 450px;\n                max-width: 550px;\n                width: auto;\n                flex-shrink: 0;\n            }\n\n            \/* Location input styling *\/\n            #treatment-location-input {\n                flex: 1;\n                padding: 12px 16px;\n                border: 2px solid #dee2e6;\n                border-radius: 8px;\n                font-size: 16px;\n                transition: border-color 0.3s ease;\n            }\n\n            #treatment-location-input:focus {\n                outline: none;\n                border-color: #007cba;\n                box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.1);\n            }\n\n            \/* Category filter cards - horizontal layout *\/\n            .category-filters {\n                display: grid;\n                grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n                gap: 1rem;\n                max-width: 1200px;\n                margin: 0 auto;\n            }\n\n            .category-card {\n                background: white;\n                border: 2px solid #dee2e6;\n                border-radius: 12px;\n                padding: 1rem;\n                cursor: pointer;\n                transition: all 0.3s ease;\n                position: relative;\n                text-align: center;\n            }\n\n            .category-card:hover {\n                border-color: #007cba;\n                transform: translateY(-2px);\n                box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n            }\n\n            .category-card.active {\n                border-color: #007cba;\n                background: #f0f8ff;\n                box-shadow: 0 2px 8px rgba(0, 124, 186, 0.2);\n                transform: translateY(-1px);\n            }\n\n            .category-card input[type=\"radio\"] {\n                position: absolute;\n                opacity: 0;\n                pointer-events: none;\n            }\n\n            .category-header {\n                display: flex;\n                flex-direction: column;\n                align-items: center;\n                gap: 0.5rem;\n            }\n\n            .category-icon {\n                width: 48px;\n                height: 48px;\n                border-radius: 50%;\n                display: flex;\n                align-items: center;\n                justify-content: center;\n                font-weight: bold;\n                color: white;\n                font-size: 16px;\n                margin-bottom: 0.5rem;\n            }\n\n            .category-all .category-icon {\n                background: #6c757d;\n            }\n\n            .category-nhc .category-icon {\n                background: #2196F3;\n            }\n\n            .category-nec .category-icon {\n                background: #8D6E63;\n            }\n\n            .category-nac .category-icon {\n                background: #4CAF50;\n            }\n\n            .category-nbc .category-icon {\n                background: #b3a7cf;\n            }\n\n            .category-title {\n                font-weight: 600;\n                color: #2c3e50;\n                margin: 0;\n                font-size: 16px;\n            }\n\n            .category-description {\n                color: #6c757d;\n                font-size: 13px;\n                margin: 0;\n                line-height: 1.4;\n            }\n\n            \/* Search button *\/\n            .search-button {\n                background: #007cba;\n                color: white;\n                border: none;\n                padding: 12px 20px;\n                border-radius: 6px;\n                font-size: 14px;\n                font-weight: 600;\n                cursor: pointer;\n                transition: background-color 0.3s ease;\n            }\n\n            .search-button:hover {\n                background: #005a87;\n            }\n\n            #treatment-results {\n                display: flex;\n                flex-direction: column;\n                gap: 0.75rem;\n                max-height: 700px;\n                overflow-y: auto;\n                padding-right: 8px;\n            }\n\n            #treatment-results::-webkit-scrollbar {\n                width: 6px;\n            }\n\n            #treatment-results::-webkit-scrollbar-track {\n                background: #f1f1f1;\n                border-radius: 3px;\n            }\n\n            #treatment-results::-webkit-scrollbar-thumb {\n                background: #888;\n                border-radius: 3px;\n            }\n\n            #treatment-results::-webkit-scrollbar-thumb:hover {\n                background: #555;\n            }\n\n            .treatment-entry {\n                background: white;\n                border: 1px solid #dee2e6;\n                border-radius: 0;\n                padding: 1rem;\n                cursor: pointer;\n                transition: all 0.3s ease;\n                position: relative;\n                border-left: 4px solid transparent;\n            }\n\n            .treatment-entry:hover {\n                border-color: #007cba;\n                box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n                transform: translateY(-1px);\n            }\n\n            .treatment-entry::before {\n                content: '';\n                position: absolute;\n                left: 0;\n                top: 0;\n                bottom: 0;\n                width: 4px;\n            }\n\n            .treatment-entry .location-title {\n                font-weight: 600;\n                color: #2c3e50;\n                text-decoration: none;\n                font-size: 16px;\n                display: block;\n                margin-bottom: 0.5rem;\n            }\n\n            .treatment-entry .location-title:hover {\n                color: #007cba;\n            }\n\n            .treatment-entry .location-address {\n                color: #6c757d;\n                font-size: 14px;\n                margin-bottom: 0.5rem;\n            }\n\n            .treatment-entry .location-categories {\n                margin-bottom: 0.5rem;\n            }\n\n            .category-badge {\n                display: inline-block;\n                padding: 3px 8px;\n                border-radius: 12px;\n                font-size: 10px;\n                font-weight: 600;\n                color: white;\n                margin-right: 0.5rem;\n                margin-bottom: 0.25rem;\n            }\n\n            .category-badge.primary {\n                font-size: 14px;\n                padding: 4px 10px;\n            }\n\n            .category-badge.nhc {\n                background: #2196F3;\n            }\n\n            .category-badge.nec {\n                background: #8D6E63;\n            }\n\n            .category-badge.nac {\n                background: #4CAF50;\n            }\n\n            .category-badge.nbc {\n                background: #b3a7cf;\n            }\n\n            .treatment-entry .location-distance {\n                font-size: 12px;\n                color: #007cba;\n                font-weight: 500;\n            }\n\n            .treatment-entry .location-actions {\n                margin-top: 0.75rem;\n                padding-top: 0.75rem;\n                border-top: 1px solid #f1f3f4;\n            }\n\n            .treatment-entry .location-actions a {\n                color: #007cba;\n                text-decoration: none;\n                font-size: 13px;\n                font-weight: 500;\n            }\n\n            .treatment-entry .location-actions a:hover {\n                text-decoration: underline;\n            }\n\n            #treatment-locator-map {\n                flex: 1;\n                height: 700px;\n                min-width: 0;\n                border-radius: 8px;\n                overflow: hidden;\n            }\n\n            \/* Mobile layout *\/\n            @media (max-width: 768px) {\n                .treatment-intro {\n                    max-width: calc(100% - 2rem);\n                    padding: 1.5rem;\n                    margin: 1rem;\n                }\n\n                .treatment-intro h2 {\n                    font-size: 20px;\n                }\n\n                .treatment-filters {\n                    margin: 0 1rem;\n                    padding: 0;\n                }\n\n                .treatment-search {\n                    margin-top: 1rem;\n                    padding: 0 1rem;\n                }\n\n                .specialty-text {\n                    text-align: left;\n                }\n\n                .search-container {\n                    flex-direction: column;\n                    gap: 1rem;\n                    max-width: none;\n                }\n\n                #treatment-location-input {\n                    font-size: 16px;\n                    \/* Prevent zoom on iOS *\/\n                }\n\n                .category-filters {\n                    grid-template-columns: 1fr;\n                    gap: 1rem;\n                    max-width: none;\n                }\n\n                .category-card {\n                    padding: 1rem;\n                }\n\n                .category-header {\n                    flex-direction: row;\n                    text-align: left;\n                }\n\n                .category-icon {\n                    width: 40px;\n                    height: 40px;\n                    margin-right: 1rem;\n                    margin-bottom: 0;\n                }\n\n                #treatment-wrapper {\n                    flex-direction: column;\n                    gap: 1.5rem;\n                }\n\n                #treatment-sidebar {\n                    width: 100%;\n                    min-width: auto;\n                    max-width: none;\n                }\n\n                #treatment-locator-map {\n                    height: 400px;\n                    flex: none;\n                }\n            }\n\n            @media (min-width: 769px) and (max-width: 1024px) {\n                .treatment-intro {\n                    max-width: 100%;\n                }\n\n                .category-filters {\n                    grid-template-columns: repeat(2, 1fr);\n                }\n\n                .category-card {\n                    padding: 1rem;\n                }\n            }\n\n            @media (min-width: 1025px) {\n                .category-filters {\n                    grid-template-columns: repeat(5, 1fr);\n                }\n            }\n        <\/style>\n\n        <!-- Centered Info Section - Replace this with your existing content -->\n        <div class=\"treatment-intro\">\n            <h2>Najd\u011bte sv\u00e9ho specialistu na Nano CellCare<\/h2>\n            <p>\n                Vyhled\u00e1va\u010d l\u00e9\u010debn\u00fdch postup\u016f je praktick\u00fd online n\u00e1stroj, kter\u00fd usnad\u0148uje nalezen\u00ed terapeut\u016f Nano CellCare specializuj\u00edc\u00edch se na tuto inovativn\u00ed l\u00e9\u010debnou metodu. Po zad\u00e1n\u00ed va\u0161ich \u00fadaj\u016f se v\u00e1m zobraz\u00ed seznam terapeut\u016f Nano CellCare ve va\u0161\u00ed oblasti nebo v konkr\u00e9tn\u00ed zemi, kterou hled\u00e1te.\n            <\/p>\n            <p>Na\u0161i certifikovan\u00ed terapeuti mohou pracovat v r\u016fzn\u00fdch specializac\u00edch. Pomoc\u00ed n\u00ed\u017ee uveden\u00fdch filtr\u016f najd\u011bte toho spr\u00e1vn\u00e9ho specialistu pro va\u0161e pot\u0159eby. Hlavn\u00ed obor ka\u017ed\u00e9ho terapeuta je zobrazen jako prvn\u00ed a pot\u00e9 jeho dal\u0161\u00ed kvalifikace.\n            <\/p>\n\n            <div class=\"specialty-text\">\n                <strong>Nano Healthcare (NHC)<\/strong> - Terapeuti specializuj\u00edc\u00ed se na lidsk\u00e9 zdrav\u00ed a wellness<br>\n                <strong>Nano Equicare (NEC)<\/strong> - Specialist\u00e9 zam\u011b\u0159en\u00ed na kon\u011b a pon\u00edky<br>\n                <strong>Nano p\u00e9\u010de o zv\u00ed\u0159ata (NAC)<\/strong> - Odborn\u00edci na dom\u00e1c\u00ed mazl\u00ed\u010dky a mal\u00e1 zv\u00ed\u0159ata<br>\n                <strong>Nano Beautycare (NBC)<\/strong> - Specialist\u00e9 na kosmetick\u00e9 a wellness procedury\n            <\/div>\n        <\/div>\n\n        <!-- Category Filter Section -->\n        <div class=\"treatment-filters\">\n            <div class=\"category-filters\">\n                <div class=\"category-card category-all\">\n                    <input type=\"radio\" name=\"category\" value=\"\" id=\"cat-all\">\n                    <div class=\"category-header\">\n                        <div class=\"category-icon\">V\u0160E<\/div>\n                        <div>\n                            <div class=\"category-title\">V\u0161echny typy<\/div>\n                            <div class=\"category-description\">Zobrazit v\u0161echny specialisty<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"category-card category-nhc active\">\n                    <input type=\"radio\" name=\"category\" value=\"NHC\" id=\"cat-nhc\" checked>\n                    <div class=\"category-header\">\n                        <div class=\"category-icon\">NHC<\/div>\n                        <div>\n                            <div class=\"category-title\">Nano zdravotnictv\u00ed<\/div>\n                            <div class=\"category-description\">Lid\u0161t\u00ed specialist\u00e9<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"category-card category-nbc\">\n                    <input type=\"radio\" name=\"category\" value=\"NBC\" id=\"cat-nbc\">\n                    <div class=\"category-header\">\n                        <div class=\"category-icon\">NBC<\/div>\n                        <div>\n                            <div class=\"category-title\">Nano Beautycare<\/div>\n                            <div class=\"category-description\">Kosmetick\u00e9 specialisty<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"category-card category-nec\">\n                    <input type=\"radio\" name=\"category\" value=\"NEC\" id=\"cat-nec\">\n                    <div class=\"category-header\">\n                        <div class=\"category-icon\">NEC<\/div>\n                        <div>\n                            <div class=\"category-title\">Nano Equicare<\/div>\n                            <div class=\"category-description\">Specialist\u00e9 na kon\u011b<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"category-card category-nac\">\n                    <input type=\"radio\" name=\"category\" value=\"NAC\" id=\"cat-nac\">\n                    <div class=\"category-header\">\n                        <div class=\"category-icon\">NAC<\/div>\n                        <div>\n                            <div class=\"category-title\">Nano p\u00e9\u010de o zv\u00ed\u0159ata<\/div>\n                            <div class=\"category-description\">Specialist\u00e9 na dom\u00e1c\u00ed mazl\u00ed\u010dky<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Location Input Section -->\n        <div class=\"treatment-search\">\n            <div class=\"search-container\">\n                <input id=\"treatment-location-input\" type=\"text\" placeholder=\"Va\u0161e poloha (nap\u0159. 1011AB)\">\n                <button class=\"search-button\" onclick=\"loadTreatmentLocations()\">Vyhledat terapeuty<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- Map and Results Section -->\n        <div id=\"treatment-wrapper\">\n            <div id=\"treatment-sidebar\">\n                <div id=\"treatment-results\"><\/div>\n            <\/div>\n            <div id=\"treatment-locator-map\"><\/div>\n        <\/div>\n\n        <script>\n            let map, markers = [], userLatLng;\n\n            const darkStyle = [{\"featureType\":\"all\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#202c3e\"}]},{\"featureType\":\"all\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"gamma\":0.01},{\"lightness\":20},{\"weight\":\"1.39\"},{\"color\":\"#ffffff\"}]},{\"featureType\":\"all\",\"elementType\":\"labels.text.stroke\",\"stylers\":[{\"weight\":\"0.96\"},{\"saturation\":\"9\"},{\"visibility\":\"on\"},{\"color\":\"#000000\"}]},{\"featureType\":\"all\",\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"off\"}]},{\"featureType\":\"landscape\",\"elementType\":\"geometry\",\"stylers\":[{\"lightness\":30},{\"saturation\":\"9\"},{\"color\":\"#697c97\"}]},{\"featureType\":\"poi\",\"elementType\":\"geometry\",\"stylers\":[{\"saturation\":20}]},{\"featureType\":\"poi.park\",\"elementType\":\"geometry\",\"stylers\":[{\"lightness\":20},{\"saturation\":-20}]},{\"featureType\":\"road\",\"elementType\":\"geometry\",\"stylers\":[{\"lightness\":10},{\"saturation\":-30}]},{\"featureType\":\"road\",\"elementType\":\"geometry.fill\",\"stylers\":[{\"color\":\"#193a55\"}]},{\"featureType\":\"road\",\"elementType\":\"geometry.stroke\",\"stylers\":[{\"saturation\":25},{\"lightness\":25},{\"weight\":\"0.01\"}]},{\"featureType\":\"water\",\"elementType\":\"all\",\"stylers\":[{\"lightness\":-20}]}];\n\n            \/\/ Category colors and names\n            const categoryInfo = {\n                'NHC': { color: '#2196F3', name: 'Nano Healthcare', description: 'Therapists focused on humans' },\n                'NAC': { color: '#4CAF50', name: 'Nano Animalcare', description: 'Therapists focused on pets and small animals' },\n                'NEC': { color: '#8D6E63', name: 'Nano Equicare', description: 'Therapists focused on horses and ponies' },\n                'NBC': { color: '#b3a7cf', name: 'Nano Beautycare', description: 'Therapists focused on beauty and wellness' }\n            };\n\n            function createColoredMarker(color) {\n                return {\n                    path: google.maps.SymbolPath.CIRCLE,\n                    fillColor: color,\n                    fillOpacity: 0.8,\n                    strokeColor: '#ffffff',\n                    strokeWeight: 2,\n                    scale: 8\n                };\n            }\n\n            \/\/ Add click handlers for category cards\n            document.addEventListener('DOMContentLoaded', function () {\n                const categoryCards = document.querySelectorAll('.category-card');\n                categoryCards.forEach(card => {\n                    card.addEventListener('click', function () {\n                        \/\/ Remove active class from all cards\n                        categoryCards.forEach(c => c.classList.remove('active'));\n                        \/\/ Add active class to clicked card\n                        this.classList.add('active');\n                        \/\/ Check the radio button\n                        const radio = this.querySelector('input[type=\"radio\"]');\n                        if (radio) {\n                            radio.checked = true;\n                        }\n                        \/\/ Trigger search\n                        loadTreatmentLocations();\n                    });\n                });\n            });\n\n            \/\/ Function to create multi-colored border gradient\n            function createMultiColorBorder(categories) {\n                if (!categories || categories.length === 0) return '';\n                if (categories.length === 1) {\n                    const color = categoryInfo[categories[0]]?.color || '#999999';\n                    return `background: ${color};`;\n                }\n\n                \/\/ Create gradient for multiple categories\n                const colors = categories.map(cat => categoryInfo[cat]?.color || '#999999');\n                const gradientStops = colors.map((color, index) => {\n                    const start = (index \/ colors.length) * 100;\n                    const end = ((index + 1) \/ colors.length) * 100;\n                    return `${color} ${start}%, ${color} ${end}%`;\n                }).join(', ');\n\n                return `background: linear-gradient(to bottom, ${gradientStops});`;\n            }\n\n            function initTreatmentMap() {\n                \/\/ Default to Amsterdam coordinates\n                const amsterdamCoords = { lat: 52.3676, lng: 4.9041 };\n\n                map = new google.maps.Map(document.getElementById(\"treatment-locator-map\"), {\n                    center: amsterdamCoords,\n                    zoom: 11,\n                    styles: darkStyle\n                });\n\n                const locationInput = document.getElementById(\"treatment-location-input\");\n                const autocomplete = new google.maps.places.Autocomplete(locationInput);\n                autocomplete.addListener(\"place_changed\", function () {\n                    const place = autocomplete.getPlace();\n                    if (place.geometry) {\n                        userLatLng = place.geometry.location;\n                        map.setCenter(userLatLng);\n                        map.setZoom(11);\n                        loadTreatmentLocations();\n                    }\n                });\n\n                \/\/ Function to reverse geocode coordinates to postal code\n                function reverseGeocode(latLng) {\n                    const geocoder = new google.maps.Geocoder();\n                    geocoder.geocode({ location: latLng }, (results, status) => {\n                        if (status === 'OK' && results[0]) {\n                            \/\/ Try to find postal code from the results\n                            let postalCode = '';\n                            let locality = '';\n\n                            for (const component of results[0].address_components) {\n                                if (component.types.includes('postal_code')) {\n                                    postalCode = component.long_name;\n                                }\n                                if (component.types.includes('locality')) {\n                                    locality = component.long_name;\n                                }\n                            }\n\n                            \/\/ Populate the input field with postal code or locality\n                            if (postalCode) {\n                                locationInput.value = postalCode;\n                            } else if (locality) {\n                                locationInput.value = locality;\n                            } else {\n                                \/\/ Fallback to formatted address\n                                locationInput.value = results[0].formatted_address;\n                            }\n\n                            \/\/ Add a small indicator that location was auto-detected\n                            locationInput.style.backgroundColor = '#e8f5e8';\n                            setTimeout(() => {\n                                locationInput.style.backgroundColor = '';\n                            }, 2000);\n                        }\n                    });\n                }\n\n                \/\/ Try to get user's location, fallback to Amsterdam\n                if (navigator.geolocation) {\n                    \/\/ Show loading indicator\n                    locationInput.placeholder = \"Getting your location...\";\n\n                    navigator.geolocation.getCurrentPosition(pos => {\n                        userLatLng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);\n                        map.setCenter(userLatLng);\n                        map.setZoom(11);\n\n                        \/\/ Reverse geocode to get postal code\n                        reverseGeocode(userLatLng);\n\n                        \/\/ Reset placeholder\n                        locationInput.placeholder = \"Your location (e.g. 1011AB)\";\n\n                        loadTreatmentLocations();\n                    }, (error) => {\n                        \/\/ Handle different geolocation errors\n                        console.log('Geolocation error:', error);\n                        let errorMessage = \"Your location (e.g. 1011AB)\";\n\n                        switch (error.code) {\n                            case error.PERMISSION_DENIED:\n                                errorMessage = \"Location access denied - enter manually\";\n                                break;\n                            case error.POSITION_UNAVAILABLE:\n                                errorMessage = \"Location unavailable - enter manually\";\n                                break;\n                            case error.TIMEOUT:\n                                errorMessage = \"Location timeout - enter manually\";\n                                break;\n                        }\n\n                        locationInput.placeholder = errorMessage;\n\n                        \/\/ Fallback to Amsterdam if geolocation fails\n                        userLatLng = new google.maps.LatLng(amsterdamCoords.lat, amsterdamCoords.lng);\n                        loadTreatmentLocations();\n                    }, {\n                        enableHighAccuracy: true,\n                        timeout: 10000,\n                        maximumAge: 300000 \/\/ 5 minutes\n                    });\n                } else {\n                    \/\/ Fallback to Amsterdam if geolocation not supported\n                    locationInput.placeholder = \"Geolocation not supported - enter manually\";\n                    userLatLng = new google.maps.LatLng(amsterdamCoords.lat, amsterdamCoords.lng);\n                    loadTreatmentLocations();\n                }\n            }\n\n            function loadTreatmentLocations() {\n                const selectedCat = document.querySelector(\"input[name='category']:checked\")?.value;\n                const apiUrl = new URL(\"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/treatment\/v1\/locations\");\n                \n                if (selectedCat) {\n                    apiUrl.searchParams.set('category', selectedCat);\n                }\n\n                fetch(apiUrl.toString())\n                    .then(res => {\n                        if (!res.ok) throw new Error(`HTTP error! status: ${res.status}`);\n                        return res.json();\n                    })\n                    .then(locations => {\n                        if (!userLatLng) {\n                            const input = document.getElementById(\"treatment-location-input\").value;\n                            if (input) {\n                                new google.maps.Geocoder().geocode({ address: input }, (results, status) => {\n                                    if (status === 'OK') {\n                                        userLatLng = results[0].geometry.location;\n                                        map.setCenter(userLatLng);\n                                        map.setZoom(11);\n                                    }\n                                    plotLocations(locations, selectedCat);\n                                });\n                            } else {\n                                plotLocations(locations, selectedCat);\n                            }\n                        } else {\n                            plotLocations(locations, selectedCat);\n                        }\n                    })\n                    .catch(error => {\n                        console.error('Error loading locations:', error);\n                        document.getElementById(\"treatment-results\").innerHTML = \"<div style='text-align: center; color: #dc3545; padding: 2rem;'>Error loading therapist locations. Please try again.<\/div>\";\n                    });\n            }\n\n            \/\/ Helper functions\n            function formatWebsiteUrl(url) {\n                if (!url) return '';\n                return url.startsWith('http:\/\/') || url.startsWith('https:\/\/') ? url : 'https:\/\/' + url;\n            }\n\n            function getOrderedCategories(mainCat, allCats) {\n                if (!allCats || allCats.length === 0) return [mainCat].filter(Boolean);\n                const uniqueCats = [...new Set(allCats)];\n                const otherCats = uniqueCats.filter(cat => cat !== mainCat);\n                return [mainCat, ...otherCats].filter(Boolean);\n            }\n\n            function plotLocations(locations, selectedCategory) {\n                markers.forEach(m => m.setMap(null));\n                markers = [];\n                const resultsDiv = document.getElementById(\"treatment-results\");\n                resultsDiv.innerHTML = \"\";\n\n                if (!locations || locations.length === 0) {\n                    resultsDiv.innerHTML = \"<div style='text-align: center; color: #6c757d; padding: 2rem;'>No therapists found for the selected criteria.<\/div>\";\n                    return;\n                }\n\n                \/\/ Calculate and sort by distance if user location available\n                if (userLatLng) {\n                    locations.forEach(loc => {\n                        if (loc.latitude && loc.longitude) {\n                            loc.distance = google.maps.geometry.spherical.computeDistanceBetween(\n                                userLatLng,\n                                new google.maps.LatLng(parseFloat(loc.latitude), parseFloat(loc.longitude))\n                            );\n                        } else {\n                            loc.distance = Infinity;\n                        }\n                    });\n                    locations.sort((a, b) => a.distance - b.distance);\n                }\n\n                \/\/ Plot markers and create list\n                locations.forEach(loc => {\n                    if (!loc.latitude || !loc.longitude) return;\n\n                    const position = { lat: parseFloat(loc.latitude), lng: parseFloat(loc.longitude) };\n                    const markerColor = categoryInfo[loc.category_main]?.color || '#999999';\n                    const orderedCategories = getOrderedCategories(loc.category_main, loc.category_all);\n\n                    const marker = new google.maps.Marker({\n                        position,\n                        map,\n                        title: loc.title,\n                        icon: createColoredMarker(markerColor)\n                    });\n\n                    \/\/ Create info window\n                    const categoryDisplayHtml = orderedCategories.map((cat, index) => {\n                        const info = categoryInfo[cat];\n                        if (!info) return '';\n                        const prefix = index === 0 ? '<strong>Main:<\/strong> ' : '';\n                        return `${prefix}<span style=\"color: ${info.color}; font-weight: bold;\">${info.name}<\/span>`;\n                    }).filter(Boolean).join('<br>');\n\n                    const websiteUrl = formatWebsiteUrl(loc.website);\n                    const infoWindow = new google.maps.InfoWindow({\n                        content: `\n                            <div style=\"font-family: sans-serif; font-size: 14px; max-width: 280px;\">\n                                <strong style=\"font-size: 16px;\">${loc.title}<\/strong><br>\n                                <span style=\"color: #6c757d;\">${loc.address}<br>${loc.city}<\/span><br><br>\n                                ${categoryDisplayHtml ? `${categoryDisplayHtml}<br><br>` : ''}\n                                ${loc.phone ? `\ud83d\udcde ${loc.phone}<br>` : ''}\n                                ${loc.email ? `\ud83d\udce7 ${loc.email}<br>` : ''}\n                                ${websiteUrl ? `<br><a href=\"${websiteUrl}\" target=\"_blank\" style=\"color: ${markerColor}; text-decoration: underline;\">Visit Website<\/a>` : ''}\n                            <\/div>\n                        `\n                    });\n\n                    marker.addListener('click', () => infoWindow.open(map, marker));\n                    markers.push(marker);\n\n                    \/\/ Create list entry\n                    const entry = document.createElement(\"div\");\n                    entry.className = \"treatment-entry\";\n                    const distanceHtml = (userLatLng && loc.distance !== undefined && loc.distance !== Infinity) \n                        ? `<div class=\"location-distance\">${(loc.distance \/ 1000).toFixed(1)} km away<\/div>` : '';\n                    const titleHtml = loc.website && loc.website.trim()\n                        ? `<a href=\"${formatWebsiteUrl(loc.website)}\" target=\"_blank\" class=\"location-title\">${loc.title}<\/a>`\n                        : `<div class=\"location-title\">${loc.title}<\/div>`;\n                    const categoryBadgesHtml = orderedCategories.map((cat, index) => {\n                        const badgeClass = index === 0 ? 'category-badge primary' : 'category-badge';\n                        return `<span class=\"${badgeClass} ${cat.toLowerCase()}\">${cat}<\/span>`;\n                    }).join('');\n\n                    entry.innerHTML = `\n                        ${titleHtml}\n                        <div class=\"location-address\">${loc.address}, ${loc.city}<\/div>\n                        ${categoryBadgesHtml ? `<div class=\"location-categories\">${categoryBadgesHtml}<\/div>` : ''}\n                        ${distanceHtml}\n                        <div class=\"location-actions\">\n                            <a href=\"https:\/\/www.google.com\/maps\/dir\/?api=1&destination=${encodeURIComponent(loc.address + ',' + loc.city)}\" target=\"_blank\">Get Directions<\/a>\n                        <\/div>\n                    `;\n\n                    \/\/ Set colored border\n                    const borderStyle = createMultiColorBorder(orderedCategories);\n                    if (borderStyle) {\n                        const entryIndex = resultsDiv.children.length + 1;\n                        const styleElement = document.createElement('style');\n                        styleElement.textContent = `.treatment-entry:nth-child(${entryIndex})::before { ${borderStyle} }`;\n                        document.head.appendChild(styleElement);\n                    }\n\n                    entry.addEventListener('click', (e) => {\n                        if (e.target.tagName !== 'A') {\n                            map.setCenter(position);\n                            map.setZoom(15);\n                            infoWindow.open(map, marker);\n                        }\n                    });\n\n                    resultsDiv.appendChild(entry);\n                });\n\n                \/\/ Adjust map to show all markers if no user location\n                if (!userLatLng && markers.length > 0) {\n                    const bounds = new google.maps.LatLngBounds();\n                    markers.forEach(marker => bounds.extend(marker.getPosition()));\n                    map.fitBounds(bounds);\n                }\n            }\n        <\/script>\n\n        <script async defer\n src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyD6W2hbvp3xWDIKxGZnqfpSR1lgZsmAmA0&libraries=geometry,places&callback=initTreatmentMap\">\n            <\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Lok\u00e1tor l\u00e9\u010dby<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-758","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/wp\/v2\/pages\/758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/wp\/v2\/comments?post=758"}],"version-history":[{"count":19,"href":"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/wp\/v2\/pages\/758\/revisions"}],"predecessor-version":[{"id":3723,"href":"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/wp\/v2\/pages\/758\/revisions\/3723"}],"wp:attachment":[{"href":"https:\/\/www.nanohealthcare.eu\/cs\/wp-json\/wp\/v2\/media?parent=758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}