{"id":12,"date":"2023-04-18T15:26:44","date_gmt":"2023-04-18T13:26:44","guid":{"rendered":"https:\/\/lakesidevillage.cz\/?page_id=12"},"modified":"2025-08-28T12:22:06","modified_gmt":"2025-08-28T10:22:06","slug":"apartmany","status":"publish","type":"page","link":"https:\/\/lakesidevillage.cz\/de\/apartmany\/","title":{"rendered":"Wohnungen"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"12\" class=\"elementor elementor-12\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-57651c8f elementor-section-full_width elementor-section-height-min-height elementor-section-stretched elementor-section-height-default elementor-section-items-middle\" data-id=\"57651c8f\" data-element_type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cddc697\" data-id=\"cddc697\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-75ecc5ef elementor-widget elementor-widget-heading\" data-id=\"75ecc5ef\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.15.0 - 31-07-2023 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><span class=\"elementor-heading-title elementor-size-default\"><div class=\"title-block font-hero\">\n<span class=\"title title-first-row font-hero\">Wohnungen<\/span>\n<div><\/span>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c018b73 elementor-section-full_width elementor-section-height-min-height elementor-section-stretched search-bar elementor-section-height-default elementor-section-items-middle\" data-id=\"c018b73\" data-element_type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ea7b5a6\" data-id=\"ea7b5a6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ba1d4ba elementor-widget elementor-widget-hello_world_widget_2\" data-id=\"ba1d4ba\" data-element_type=\"widget\" data-widget_type=\"hello_world_widget_2.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\n\n\n.number-input {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  text-transform: uppercase;\n}\n.number-input input {\n  width: 26px;\n  text-align: center;\n  font-size: 18px;\n  border: none;\n\tcolor: black !important;\n\tpadding: 0;\n}\n.number-input button {\n  transition: 250ms;\n  background-color: transparent;\n  border: none;\n\tcolor: black;\n  padding: 5px;\n  font-size: 18px;\n  cursor: pointer;\n}\n\n.number-input button:hover {\n  background-color: #eee;\n}\n\n.form_search{\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tflex-wrap: wrap;\n}\n\n.form_search > *{\n\tmargin: 0 6px;\n}\n\n.form_search > button{\n\tborder: none;\n\tborder-radius: 0;\n\tbackground-color: black;\n\twidth: 50px;\n\theight: 50px;\n    cursor: pointer;\n        display: flex;          \/* Zarovn\u00e1n\u00ed obr\u00e1zku na st\u0159ed *\/\n        align-items: center;\n        justify-content: center;\n        padding: 0;             \/* Odstran\u00ed vnit\u0159n\u00ed okraj, kter\u00fd zmen\u0161uje ikonu *\/\n        transition: background-color 0.3s;\n    }\n\n    .form_search > button:hover {\n        background-color: #333; \/* Jemn\u00e1 zm\u011bna barvy p\u0159i najet\u00ed *\/\n    }\n\n    .form_search > button img {\n        width: 40px;            \/* Uprav si velikost ikony podle pot\u0159eby *\/\n        height: 40px;           \/* Zachov\u00e1n\u00ed pom\u011bru stran *\/\n        object-fit: contain;\n        display: block;\n    }\n\n#date-picker{\n\tpadding: 12px 38px 12px 12px;\n\tbackground-image: url(\"https:\/\/siestacloudlivestorage.azureedge.net\/default\/e239dd8a-0399-4af2-a514-65acb176fd42.svg\");\n\tbackground-repeat: no-repeat;\n\tbackground-position: calc(100% - 12px);\n\tbackground-size: 21px 19.2px;\n\tfont-weight: bold;\n\twidth: 28ch !important;\n}\n\n#date-picker,#room-picker{\n\tmargin: 0 7.5px;\n\ttext-transform:uppercase;\n\twidth: min-content;\n\tborder: none;\n\tborder-radius: 0;\n\tbackground-color: white;\n\tcolor: black;\n}\n\n#date-picker::placeholder, #room-text {\n    font-weight: bold;\n    color: #1c1c1c;\n\t\tletter-spacing: 1px;\n}\n\n#room-range{\n\tz-index: 1;\n\tbackground-color: white;\n  display: none;\n  flex-direction: column;\n  width: 290px;\n  padding: 20px;\n  justify-content: space-evenly;\n  position: absolute;\n\ttop: calc(100%);\n\tleft: 0;\n\tbox-shadow: 0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);\n}\n\n#room-range > button{\n\tcolor: white;\n\tbackground-color: black;\n\tborder: none;\n\tborder-radius: 0;\n}\n\n.room-container{\n  position: relative;\n\tbackground-color: white;\n\tpadding: 12px;\n}\n\n#room-output > img{\n\theight: 12px !important;\n\twidth: auto;\n}\n\n#date-form{\n\tpadding: 30px !important;\n\tdisplay: inline-flex;\n\tjustify-content: center;\n\talign-items: flex-start;\n\tflex-direction: column;\n\tbackground-color: #2C2D2C;\n\toverflow: hidden;\n\ttransform: translateY(-10px);\n}\n\n#date-form label{\n\tfont-size: 22px;\n\tcolor: white;\n\t\n}\n\n#date-form hr{\n\twidth:150%;\n\tmargin-top: 0 !important;\n\ttransform: translateX(-30px);\n\tborder: 1px solid white;\n}\n\n#date-form input::-webkit-input-placeholder {color:black !important;}\n#date-form input::-moz-placeholder          {color:black !important;}\n#date-form input:-moz-placeholder           {color:black !important;}\n#date-form input:-ms-input-placeholder      {color:black !important;}\n\n\/*Start & End select date*\/\n.flatpickr-day.selected.startRange, .flatpickr-day.startRange.startRange, .flatpickr-day.endRange.startRange,.flatpickr-day.selected.endRange, .flatpickr-day.startRange.endRange, .flatpickr-day.endRange.endRange{\n\tborder-radius: 0;\n\tborder: 1px solid #aca083 !important;\n}\n\n.flatpickr-day.today{\n\tborder: 1px solid black;\n\tborder-radius: 0;\n}\n\n.flatpickr-day.inRange{\n\tbox-shadow: none;\n\tcolor: rgba(0,0,0,.87) !important;\n\tborder: 1px solid #aca083 !important;\n\tborder-radius: 0;\n}\n<\/style>  \n\n\n<script src=\"https:\/\/npmcdn.com\/flatpickr\/dist\/flatpickr.min.js\"><\/script>\n<script src=\"https:\/\/npmcdn.com\/flatpickr\/dist\/l10n\/cs.js\"><\/script>\n\n<form class=\"form_search\" action=\"\">\n    <input id=\"date-picker\" name=\"date\" type=\"date\" placeholder=\"Ankunft - Abfahrt\" \/>\n    <div class=\"room-container\">\n        <div id=\"room-output\"><span id=\"room-text\">G\u00c4STE UND WOHNUNGEN<\/span> <img decoding=\"async\" src=\"https:\/\/siestacloudlivestorage.azureedge.net\/default\/e239dd8a-0399-4af2-a514-65acb176fd42.svg\" alt=\"\" \/><\/div>\n        <input id=\"room-picker\" name=\"occupancies\" type=\"hidden\" value=\"none\" \/>\n        <div id=\"room-range\" style=\"display: none\">\n            <div class=\"number-input\">\n                <label for=\"guest\">Anzahl der G\u00e4ste:<\/label>\n                <div class=\"button-container\">\n                    <button class=\"decrement\" type=\"button\">-<\/button>\n                    <input id=\"guest-count\" class=\"number\" name=\"guest\" type=\"text\" value=\"2\" \/>\n                    <button class=\"increment\" type=\"button\">+<\/button>\n                <\/div>\n            <\/div>\n            <div class=\"number-input\">\n                <label for=\"room\">Zimmer:<\/label>\n                <div class=\"button-container\">\n                    <button class=\"decrement\" type=\"button\">-<\/button>\n                    <input id=\"room-count\" class=\"number\" name=\"room\" type=\"text\" value=\"1\" \/>\n                    <button class=\"increment\" type=\"button\">+<\/button>\n                <\/div>\n            <\/div>\n            <button type=\"button\" id=\"peopleSelectorButton\">VERWENDEN<\/button>\n        <\/div>\n    <\/div>\n    <button type=\"submit\" id=\"submitForm\"><img decoding=\"async\" src=\"https:\/\/lakesidevillage.cz\/wp-content\/uploads\/2026\/02\/Gemini_Generated_Image_1rukvt1rukvt1ruk.png\" alt=\"\" \/><\/button>\n<input type=\"hidden\" name=\"trp-form-language\" value=\"de\"\/><\/form>\n\n<script>\n    WUBOOK_ID = \"1552653018\";\n\n    CALENDAR_CONFIG = {\n        mode: \"range\",\n        dateFormat: \"j. M y\",\n        locale: \"cs\",\n        minDate: new Date(),\n        defaultDate: [new Date().fp_incr(1), new Date().fp_incr(2)],\n    };\n\n    class PeopleSelectorBar {\n        constructor() {\n            this.init();\n        }\n\n        datePicker;\n\n        init() {\n            this.datePicker = flatpickr(\"#date-picker\", CALENDAR_CONFIG);\n\n            document.getElementById(\"room-output\").addEventListener(\"click\", () => this.onRoomOutputClick());\n            document.getElementById(\"peopleSelectorButton\").addEventListener(\"click\", () => this.onPeopleSelectorClick());\n            document.getElementById(\"submitForm\").addEventListener(\"click\", (event) => this.submitForm(event));\n\n            const numberInputs = document.querySelectorAll(\".number-input\");\n\n            numberInputs.forEach((numberInput) => {\n                const decrementBtn = numberInput.querySelector(\".decrement\");\n                const incrementBtn = numberInput.querySelector(\".increment\");\n                const inputField = numberInput.querySelector(\".number\");\n\n                decrementBtn.addEventListener(\"click\", () => {\n                    let value = parseInt(inputField.value);\n                    if (value > 1) {\n                        value--;\n                        inputField.value = value;\n                    }\n                });\n\n                incrementBtn.addEventListener(\"click\", () => {\n                    let value = parseInt(inputField.value);\n                    value++;\n                    inputField.value = value;\n                });\n            });\n        }\n\n        submitForm(event) {\n            event.preventDefault();\n            const dfrom = this.datePicker.selectedDates[0] ? flatpickr.formatDate(this.datePicker.selectedDates[0], \"d\/m\/Y\") : \"today\";\n            const dto = this.datePicker.selectedDates[0] ? flatpickr.formatDate(this.datePicker.selectedDates[1], \"d\/m\/Y\") : flatpickr.formatDate(new Date().fp_incr(1), \"d\/m\/Y\");\n            let guestCount = document.getElementById(\"guest-count\").value;\n            let numRooms = document.getElementById(\"room-count\").value;\n            window.open(`https:\/\/wubook.net\/wbkd\/wbk\/?lcode=${WUBOOK_ID}&dfrom=${dfrom}&dto=${dto}&occupancies=${guestCount}`, \"_blank\");\n        }\n\n        onRoomOutputClick() {\n            this.tooglePeopleSelectorBar();\n        }\n\n        onPeopleSelectorClick() {\n            this.tooglePeopleSelectorBar();\n            this.dataToString();\n        }\n\n        tooglePeopleSelectorBar() {\n            const roomParameters = document.getElementById(\"room-range\");\n            console.log(roomParameters);\n            if (roomParameters.style.display === \"none\") {\n                roomParameters.style.display = \"flex\";\n            } else {\n                roomParameters.style.display = \"none\";\n            }\n        }\n\n        dataToString() {\n            let guestCount = document.getElementById(\"guest-count\").value;\n            let numRooms = document.getElementById(\"room-count\").value;\n            let roomText = document.getElementById(\"room-picker\");\n            let roomOutput = document.getElementById(\"room-text\");\n\n            if (guestCount > numRooms) {\n                \/\/TODO: if guests are more than rooms\n            }\n            const [roomAssignments, roomString, guestString] = this.splitGuestsIntoRooms(guestCount, numRooms);\n\n            roomText.value = roomAssignments;\n            roomOutput.innerHTML = guestString + \", \" + roomString;\n        }\n\n        splitGuestsIntoRooms(guestCount, numRooms) {\n            const roomParameters = document.getElementById(\"room-range\");\n            let guestsPerRoom = Math.floor(guestCount \/ numRooms);\n            let remainingGuests = guestCount % numRooms;\n            let roomAssignments = [];\n\n            for (let i = 0; i < numRooms; i++) {\n                const roomSize = guestsPerRoom + (remainingGuests > 0 ? 1 : 0);\n                roomAssignments.push(roomSize);\n                remainingGuests--;\n            }\n\n            let guestString = `${guestCount} ${guestCount == 1 ? \"HOST\" : \"HOST\u00c9\"}`;\n            let roomString = `${numRooms} ${numRooms == 1 ? \"POKOJ\" : \"POKOJE\"}`;\n            roomParameters.style.display = \"none\";\n            return [roomAssignments.join(\"_\"), roomString, guestString];\n        }\n    }\n    new PeopleSelectorBar();\n<\/script>\n\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2deaf47a section-content elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2deaf47a\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2b753f1d content-box\" data-id=\"2b753f1d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-4a36c0e3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4a36c0e3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-294a95e3 text-box-left text-box\" data-id=\"294a95e3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2bfb74cd text-box elementor-widget elementor-widget-text-editor\" data-id=\"2bfb74cd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.15.0 - 31-07-2023 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<h1 class=\"font-hero\">Wohnungen<\/h1>\n<hr>\n<p>Die Wohnungen sind Teil des Hauptgeb\u00e4udes und wurden nach den h\u00f6chsten Standards ma\u00dfgeschneidert. Jedes verf\u00fcgt \u00fcber eine voll ausgestattete K\u00fcche, Balkon oder Terrasse und einen Parkplatz.<\/p>\n<p>Kinderbetten und Hochst\u00fchle sind an der Rezeption zu mieten. Sie k\u00f6nnen auch Kaffeemaschinenkapseln, Grillkohle, Pellets und Holz kaufen.<\/p>\n<p>Die Anlage verf\u00fcgt auch \u00fcber eine Strandbar, die in der Hochsaison einen angenehmen Sitzbereich mit sch\u00f6ner Aussicht bietet.&nbsp;<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-286596d2\" data-id=\"286596d2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-67cd0fb2 elementor-widget elementor-widget-image\" data-id=\"67cd0fb2\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.15.0 - 31-07-2023 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/lakesidevillage.cz\/wp-content\/uploads\/2023\/07\/original_f29e97ed-c8c8-4f1a-95e1-8f8e0e3df0a9-1024x683.jpg\" class=\"attachment-large size-large wp-image-1628\" alt=\"\" srcset=\"https:\/\/lakesidevillage.cz\/wp-content\/uploads\/2023\/07\/original_f29e97ed-c8c8-4f1a-95e1-8f8e0e3df0a9-1024x683.jpg 1024w, https:\/\/lakesidevillage.cz\/wp-content\/uploads\/2023\/07\/original_f29e97ed-c8c8-4f1a-95e1-8f8e0e3df0a9-300x200.jpg 300w, https:\/\/lakesidevillage.cz\/wp-content\/uploads\/2023\/07\/original_f29e97ed-c8c8-4f1a-95e1-8f8e0e3df0a9-768x512.jpg 768w, https:\/\/lakesidevillage.cz\/wp-content\/uploads\/2023\/07\/original_f29e97ed-c8c8-4f1a-95e1-8f8e0e3df0a9-1536x1024.jpg 1536w, https:\/\/lakesidevillage.cz\/wp-content\/uploads\/2023\/07\/original_f29e97ed-c8c8-4f1a-95e1-8f8e0e3df0a9-2048x1365.jpg 2048w, https:\/\/lakesidevillage.cz\/wp-content\/uploads\/2023\/07\/original_f29e97ed-c8c8-4f1a-95e1-8f8e0e3df0a9-18x12.jpg 18w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dad5715 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dad5715\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b395a44\" data-id=\"b395a44\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6b02224 elementor-widget elementor-widget-Vypis ubytovani\" data-id=\"6b02224\" data-element_type=\"widget\" data-widget_type=\"Vypis ubytovani.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\r\n#room-template{\r\n\tflex-direction: column !important;\r\n}\r\n.skeleton-container{\r\n\tflex-direction: column !important;\r\n    padding: 10px;\r\n}\r\n.skeleton{\r\n\tanimation: skeleton-loading 1s linear infinite alternate;\r\n\tborder-radius: 0.175rem;\r\n}\r\n.skeleton-img{\r\n\theight: 296px !important;\r\n\tmargin-bottom: 1rem;\r\n}\r\n.skeleton-title{\r\n\theight: 1.375rem;\r\n\tmargin: 0.25rem 0 0.5rem 0;\r\n\twidth: 90%;\r\n}\r\n.skeleton-text{\r\n\twidth: 100%;\r\n\theight: 0.5rem;\r\n\tmargin-bottom: 0.25rem;\r\n\tborder-radius: 0.125rem;\r\n}\r\n.skeleton-text:nth-child(5){\r\n\tmargin-bottom: 0;\r\n\twidth: 80% !important;\r\n}\r\n.skeleton-button{\r\n\theight: 1.75rem;\r\n\twidth: 50%;\r\n\tmargin: 0.9rem 0;\r\n}\r\n@keyframes skeleton-loading {\r\n\t0%{\r\n\t\tbackground-color: hsl(200,20%,70%);\r\n\t}\r\n\t\r\n\t100%{\r\n\t\tbackground-color: hsl(200,20%,95%);\r\n\t}\r\n}\r\n\t\r\n\r\n#rooms{\r\n\tdisplay:flex;\r\n\tflex-direction: row;\r\n\tflex-wrap: wrap;\r\n\twidth: 100%;\r\n\talign-items: flex-start;\r\n\tjustify-content: space-evenly;\r\n}\r\n\t\r\n#rooms .room-link{\r\n\tpadding:0;\r\n\ttransition: all .4s;\r\n\tflex-direction: column;\r\n\tdisplay:flex;\r\n\tcolor: black;\r\n\twidth: 29%;\r\n\tmin-width: 280px;\r\n\tmargin: 24px;\r\n}\r\n#rooms .room-link div{\r\n\tpadding: 12px\r\n}\r\n#rooms .room-link:hover{\r\n\tbox-shadow: 0 6.4px 12.9px rgba(0,0,0,.055), 0 51px 103px rgba(0,0,0,.11);\r\n}\r\n#rooms .room-link img, .room-img-placeholder {\r\n    width: 100%;\r\n    height: 296px;\r\n    object-fit: cover;\r\n}\r\n\t\r\n#rooms .room-link div {\r\n    padding: 12px;\r\n}\r\n\t\r\n#rooms h2 {\r\n    margin-bottom: 0;\r\n}\r\n\t\r\n#rooms p {\r\n    font-family: fontMainRegular;\r\n    font-size: 1rem;\r\n}\r\n\r\n#rooms a .button-link, #rooms .button-link {\r\n\r\n    color: white;\r\n    padding: 8px 16px;\r\n    transition: all 200ms;\r\n    border: 0;\r\n    display: inline-block;\r\n}\r\n<\/style>\r\n\r\n    <div id=\"rooms\"><\/div>\r\n\r\n<script>\r\n    async function init() {\r\n    const loadingHTML = createLoadingHTML();\r\n    insertHTML(loadingHTML);\r\n    let roomsRaw = await fetchRooms().catch((error) => console.error);\r\n    if (!roomsRaw) return;\r\n\r\n\t\t\troomsRaw = filter(roomsRaw, \"typ\", \"apartment\");\r\n\t\t\r\n    let roomsWithPictures = await fetchPicturesFromRooms(roomsRaw).catch((error) => console.error);\r\n    if (!roomsWithPictures) return;\r\n\troomsWithPictures = sortRooms(roomsWithPictures);\t\r\n    const roomsHTML = mapHTMLWithRooms(roomsWithPictures);\r\n    insertHTML(roomsHTML);\r\n}\r\ninit();\r\n\r\nfunction sortRooms(rooms){\r\nreturn rooms.sort(function (a, b) {\r\n  const numberA = parseInt(a.acf.name.match(\/\\d+\/), 10) || 0;\r\n  const numberB = parseInt(b.acf.name.match(\/\\d+\/), 10) || 0;\r\n\r\n  return numberA - numberB;\r\n});\r\n}\r\n\r\nfunction filter(roomsRaw, key, value){\r\n\tconsole.log(roomsRaw);\r\n\treturn roomsRaw.filter((room)=>room.acf[key] === value);\r\n}\r\n\r\nfunction mapHTMLWithRooms(rooms) {\r\n    let roomsHTML = \"\";\r\n    rooms.map((room) => {\r\n        roomsHTML += createHTMLDOM(room);\r\n    });\r\n    return roomsHTML;\r\n}\r\nfunction createHTMLDOM(room) {\r\n    const heroImageDOM = room?.hero_image ? `<img decoding=\"async\" src=\"${room?.hero_image}\">` : `<div class=\"room-img-placeholder\"><\/div>`;\r\n    const heroTitleDOM = room?.acf?.name ? `<h2>${room?.acf?.name}<\/h2>` : \"<h2>undefined<h2>\";\r\n    const countDOM = room?.acf?.guest_number ? `<p>Po\u010det host\u016f: ${room?.acf?.guest_number}<\/p>` :  \"\";\r\n    let roomLink = assignLinkLanguage(room?.link);\r\n\r\n    return `\r\n    <section class=\"room-link\">\r\n    ${heroImageDOM}\r\n    <div>\r\n        ${heroTitleDOM}\r\n        ${countDOM}\r\n        <a href=\"${roomLink}\">\r\n        <button class=\"button-link\">UK\u00c1ZAT POKOJ - REZERVOVAT<\/button>\r\n        <\/a>\r\n    <\/div>\r\n    <\/section>`;\r\n}\r\nfunction assignLinkLanguage(link) {\r\n    const currentUrl = document.URL;\r\n    const pattern = \/\\\/(en|de|sk|pl|ru)\\\/\/;\r\n    const match = currentUrl.match(pattern);\r\n\r\n    if (match) {\r\n        const language = match[1];\r\n        return link.replace(`${window.location.origin}\/`, `${window.location.origin}\/${language}\/`);\r\n    }\r\n\r\n    return link;\r\n}\r\n\r\nfunction fetchRooms() {\r\n\t\treturn fetch(`${window.location.origin}\/wp-json\/wp\/v2\/room?per_page=100`).then((body) => body.json()).catch((err)=>console.error)\r\n}\r\n\r\nasync function fetchPicturesFromRooms(roomsRaw) {\r\n    let asyncMap = roomsRaw.map(async (room) => {\r\n        if (!room[\"_links\"][\"wp:featuredmedia\"]) return { ...room, hero_image: null };\r\n        const image = await fetch(`${room[\"_links\"][\"wp:featuredmedia\"][0][\"href\"]}`).then((body) => body.json());\r\n        room.hero_image = image.source_url || null;\r\n        return room;\r\n    });\r\n    let result = await Promise.all(asyncMap);\r\n    return result;\r\n}\r\nfunction createLoadingHTML() {\r\n    let loadingHTML = \"\";\r\n    let i = 0;\r\n    while (i < 6) {\r\n        loadingHTML += `\r\n        <div id=\"room-template\" class=\"room-link skeleton-container\">\r\n            <div class=\"skeleton skeleton-img\"><\/div>\r\n            <div class=\"skeleton skeleton-title\"><\/div>\r\n            <div class=\"skeleton skeleton-text\"><\/div>\r\n            <div class=\"skeleton skeleton-button\"><\/div>\r\n\t    <\/div>\r\n        `;\r\n        i++;\r\n    }\r\n    return loadingHTML;\r\n}\r\nfunction insertHTML(html) {\r\n    document.getElementById(\"rooms\").innerHTML = html;\r\n}\r\n<\/script>\r\n\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9d3deb9 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"9d3deb9\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6cc40b46\" data-id=\"6cc40b46\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-489dc163 elementor-widget elementor-widget-google_maps\" data-id=\"489dc163\" data-element_type=\"widget\" data-widget_type=\"google_maps.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.15.0 - 31-07-2023 *\/\n.elementor-widget-google_maps .elementor-widget-container{overflow:hidden}.elementor-widget-google_maps .elementor-custom-embed{line-height:0}.elementor-widget-google_maps iframe{height:300px}<\/style>\t\t<div class=\"elementor-custom-embed\">\n\t\t\t<iframe loading=\"lazy\"\n\t\t\t\t\tsrc=\"https:\/\/maps.google.com\/maps?q=Miln%C3%A1%20%C4%8D.ev.%20400%2C%20382%2079%20Frymburk&#038;t=m&#038;z=14&#038;output=embed&#038;iwloc=near\"\n\t\t\t\t\ttitle=\"Miln\u00e1 Nr. 400, 382 79 Frymburk\"\n\t\t\t\t\taria-label=\"Miln\u00e1 Nr. 400, 382 79 Frymburk\"\n\t\t\t><\/iframe>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>APARTMENTS G\u00c4STE UND APARTMENTS Anzahl der G\u00e4ste: - + Zimmer: - + NUTZUNG Die Appartements sind Teil des Hauptgeb\u00e4udes und wurden f\u00fcr h\u00f6chste Anspr\u00fcche ma\u00dfgeschneidert. Jedes verf\u00fcgt \u00fcber eine voll ausgestattete K\u00fcche, einen Balkon oder eine Terrasse und einen Parkplatz. Kinderbetten und Hochst\u00fchle k\u00f6nnen an der Rezeption gemietet werden. Sie k\u00f6nnen auch Kapseln kaufen [...]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/lakesidevillage.cz\/de\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lakesidevillage.cz\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lakesidevillage.cz\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lakesidevillage.cz\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lakesidevillage.cz\/de\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":15,"href":"https:\/\/lakesidevillage.cz\/de\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":2400,"href":"https:\/\/lakesidevillage.cz\/de\/wp-json\/wp\/v2\/pages\/12\/revisions\/2400"}],"wp:attachment":[{"href":"https:\/\/lakesidevillage.cz\/de\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}