{"id":470,"date":"2024-10-08T14:00:41","date_gmt":"2024-10-08T14:00:41","guid":{"rendered":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/?page_id=470"},"modified":"2025-07-30T12:25:12","modified_gmt":"2025-07-30T12:25:12","slug":"huoneistot","status":"publish","type":"page","link":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/","title":{"rendered":"Levi Chalets &#8211; Huoneistot"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull is-light cover-hero wp-duotone-unset-1\" style=\"margin-top:0px;margin-bottom:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;min-height:30vw;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1406\" class=\"wp-block-cover__image-background wp-image-1993\" alt=\"Levi Chalets -huoneiston keitti\u00f6.\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg\" data-object-fit=\"cover\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg 2000w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio-300x211.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio-1024x720.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio-768x540.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio-1536x1080.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-black-background-color has-background-dim-0 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-container-core-cover-is-layout-6e17fc20 wp-block-cover-is-layout-flow\">\n<h1 class=\"wp-block-heading has-text-align-center\" id=\"h-\" style=\"font-size:70px\"><\/h1>\n\n\n\n<p><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group hiddenx is-layout-constrained wp-container-core-group-is-layout-72190d31 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"mews-booking-engine2-bg\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\"><\/div>\n\n<div class=\"mews-booking-engine2-hero\" style=\"background-image: url('https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/panorama_footer_bg2.png');\">\n    <div class=\"mews-booking-panel\">\n        <div class=\"mews-calendar-item\">\n\n            <!------------------------------>\n            <!-- Label                    -->\n            <!------------------------------>\n            <div class=\"mews-calendar-label\">\n                <img decoding=\"async\" src=\"https:\/\/www.kassiopeia.fi\/hotel-matts\/wp-content\/uploads\/sites\/2\/2025\/11\/varauskalenteri_matts.svg\">\n                <div class=\"mews-calendar-label__text\">\n                    Book accommodation:                <\/div>\n            <\/div>\n\n            <!------------------------------>\n            <!-- Input                   -->\n            <!------------------------------>\n            <div class=\"mews-calendar-input\">\n                <!--<input type=\"text\" id=\"mews-calendar-start\" disabled value=\"21.10.2025\"\/>-->\n                <div class=\"mews-calendar-input-field\" id=\"mews-calendar-start\" onclick=\"mewsCalendar.clickMewsOpenCalendar()\">\n                    <div class=\"mews-date-label\"><span id=\"mews-date-label-start\"><\/span> &#8211; <span id=\"mews-date-label-end\"><\/span><\/div>\n                    <div class=\"grid\">\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                        <div class=\"cell\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"mews-calendar-widget-container\">\n    <div id=\"mews-calendar-widget\">\n        <div class=\"mews-calendar-widget-close\" id=\"mews-calendar-close\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"65\" height=\"65\" role=\"img\" aria-label=\"Close\">\n                <circle cx=\"12\" cy=\"12\" r=\"11\" fill=\"none\"\/>\n                <path d=\"M8.5 8.5L15.5 15.5M15.5 8.5L8.5 15.5\" stroke=\"currentColor\" stroke-width=\"1.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\/>\n            <\/svg>\n        <\/div>\n        <div class=\"mcw-inner\">\n            <div class=\"mcw-table-container\">\n                <div class=\"mcw-table mcw-table-l\">\n                    <div class=\"calendar-arrow calendar-arrow-l\" onclick=\"mewsCalendar.clickArrow(1)\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n                            <path d=\"M15 5l-7 7 7 7\" fill=\"none\" stroke=\"white\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"calendar-title\" id=\"calendar-title-1\"><\/div>\n                    <div id=\"calendar-weekdays1\"><\/div>\n                    <div class=\"calendar-days\" id=\"calendar-days1\"><\/div>\n                <\/div>\n                <div class=\"mcw-table mcw-table-r\">\n                    <div class=\"calendar-arrow calendar-arrow-r\" onclick=\"mewsCalendar.clickArrow(2)\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n                            <path d=\"M9 5l7 7-7 7\" fill=\"none\" stroke=\"white\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                        <\/svg>\n                    <\/div>\n                    <div class=\"calendar-title\" id=\"calendar-title-2\"><\/div>\n                    <div id=\"calendar-weekdays2\"><\/div>\n                    <div class=\"calendar-days\" id=\"calendar-days2\"><\/div>\n                <\/div>\n            <\/div>\n            <div class=\"mcw-button\">\n                <button class=\"btn-secondary\" id=\"mews-submit-button-calendar-desktop\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                    Select dates                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>                <div class=\"mews-calendar-widget-container-mobile\">\n    <div id=\"mews-calendar-widget-mobile\">\n        <div class=\"mcw-top\">\n            <div>\n                Date            <\/div>\n            <div class=\"mews-calendar-widget-close\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"50\" height=\"50\" role=\"img\" aria-label=\"Close\">\n                    <circle cx=\"12\" cy=\"12\" r=\"11\" fill=\"none\"\/>\n                    <path d=\"M8.5 8.5L15.5 15.5M15.5 8.5L8.5 15.5\" stroke=\"currentColor\" stroke-width=\"1.0\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\/>\n                <\/svg>\n            <\/div>\n        <\/div>\n        <div class=\"mcw-content\" id=\"mcw-content-mobile\"><\/div>\n        <div class=\"mcw-bottom\">\n            <button class=\"btn-secondary\" id=\"mews-submit-button-calendar-mobile\" onclick=\"mewsCalendar.clickMewsCloseCalendar()\">\n                Select dates            <\/button>\n        <\/div>\n    <\/div>\n<\/div>            <\/div>\n        <\/div>\n        <input type=\"hidden\" id=\"mews-selected-start-year\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-start-month\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-start-day\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-year\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-month\" value=\"\">\n        <input type=\"hidden\" id=\"mews-selected-end-day\" value=\"\">\n        <button class=\"distributor-open\" id=\"mews-submit-button\">&#8230;<\/button>\n        <div id=\"mews-test\"><\/div>\n    <\/div>\n    <div class='mews-booking-engine2-hero__message'>\n        \n<p class=\"has-small-font-size\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:0\">Miksi varata suoraan meilt\u00e4? <a href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/miksi-varata-suoraan\/\">Katso kaikki hy\u00f6dyt!<\/a><\/p>\n    <\/div>\n<\/div>\n\n<script>\n\n    class MewsCalendar {\n        constructor() {\n            this.now = new Date(); \/\/Production\n            \/\/this.now = new Date('2027-12-28T10:00:00'); \/\/Testing\n            this.dayNow = this.now.getDate();\n            this.monthNow = this.now.getMonth() + 1;\n            this.yearNow = this.now.getFullYear();\n            this.monthNext = this.now.getMonth() + 2;\n            this.yearNext = this.now.getFullYear();\n            if (this.monthNow == 12) this.yearNext++;\n            this.monthNowSelected = this.monthNow;\n            this.yearNowSelected = this.yearNow;\n            this.monthNextSelected = this.monthNext;\n            this.yearNextSelected = this.yearNext;\n            if (this.monthNextSelected <= 0) this.monthNextSelected = 12;\n            if (this.monthNextSelected > 12) this.monthNextSelected = 1;\n            this.weekdayNames = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];this.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];            this.generateCalendar(1);\n            this.generateCalendar(2);\n            this.generateMonthDays(1, this.monthNowSelected, this.yearNowSelected);\n            this.generateMonthDays(2, this.monthNextSelected, this.yearNextSelected);\n            let tomorrow = new Date();\n            tomorrow.setDate(tomorrow.getDate() + 1);\n            this.setDateLabels(this.dateToString(this.now), this.dateToString(tomorrow));\n            this.arrayDates = [];\n            this.arrayDatesSorted = [];\n            this.clickDayCount = 0;\n        }\n\n        setDateLabels(start, end) {\n            jQuery('#mews-date-label-start').html(start);\n            jQuery('#mews-date-label-end').html(end);\n        }\n\n        clickMewsOpenCalendar() {\n            jQuery('.mews-booking-engine2-bg').fadeIn(50);\n            jQuery('#mews-calendar-widget').fadeIn(50);\n            jQuery('#mews-calendar-widget-mobile').fadeIn(50);\n        }\n\n        clickMewsCloseCalendar() {\n\t\t\tjQuery('.mews-booking-engine2-bg').fadeOut(50);\n            jQuery('#mews-calendar-widget').fadeOut(50);\n            jQuery('#mews-calendar-widget-mobile').fadeOut(50);\n        }\n\n        generateCalendar(id) {\n            this.generateWeekdays(id);\n            let html = '';\n            for (let y=0; y<6; y++) {\n                html += '<div class=\"row\">';\n                    for (let x=0; x<7; x++) {\n                        let day = y*7+x+1;\n                        html += '<div class=\"day-square day-square-' + id + '\" id=\"' + id + '-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendar.clickDay(this)\">';\n                        html += '<div class=\"day-square-inner\">';\n                        html += '<div class=\"day-square-circle\"><\/div>';\n                        html += '<\/div>';\n                        html += '<\/div>';\n                    }\n                html += '<\/div>';\n            }\n            jQuery('#calendar-days' + id).html(html);\n        }\n\n        generateWeekdays(id) {\n            let html = '<div class=\"calendar-weekdays\">';\n            html += '<div>' + this.weekdayNames[0] + '<\/div>';\n            html += '<div>' + this.weekdayNames[1] + '<\/div>';\n            html += '<div>' + this.weekdayNames[2] + '<\/div>';\n            html += '<div>' + this.weekdayNames[3] + '<\/div>';\n            html += '<div>' + this.weekdayNames[4] + '<\/div>';\n            html += '<div>' + this.weekdayNames[5] + '<\/div>';\n            html += '<div>' + this.weekdayNames[6] + '<\/div>';\n            html += '<\/div>';\n            jQuery('#calendar-weekdays' + id).html(html);\n        }\n\n        clickArrow(dir) {\n            if (dir == 1) {\n                if (this.monthNow == this.monthNowSelected && this.yearNow == this.yearNowSelected) {\n                    \/\/Do nothing\n                } else {\n                    this.monthNowSelected--;\n                    if (this.monthNowSelected <= 0) {\n                        this.monthNowSelected = 12;\n                        this.yearNowSelected--;\n                    }\n                    this.monthNextSelected--;\n                    if (this.monthNextSelected <= 0) {\n                        this.monthNextSelected = 12;\n                        this.yearNextSelected--;\n                    }\n                }\n            }\n            if (dir == 2) {\n                this.monthNowSelected++;\n                if (this.monthNowSelected > 12) {\n                    this.monthNowSelected = 1;\n                    this.yearNowSelected++;\n                }\n                this.monthNextSelected++;\n                if (this.monthNextSelected > 12) {\n                    this.monthNextSelected = 1;\n                    this.yearNextSelected++;\n                }\n            }\n            this.generateCalendar(1);\n            this.generateCalendar(2);\n            this.generateMonthDays(1, this.monthNowSelected, this.yearNowSelected);\n            this.generateMonthDays(2, this.monthNextSelected, this.yearNextSelected);\n            this.markSelectedDates();\n        }\n\n        generateMonthDays(id, month, year) {\n            \/\/console.log('generateMonthDays', id, month, year);\n            const firstDay = new Date(year, month-1, 1);\n            const firstDayId = (firstDay.getDay() + 6) % 7 + 1;\n            const daysInMonth = new Date(year, month, 0).getDate();\n            let html = '';\n            \/\/jQuery('.day-square-' + id).html('');\n            jQuery('.day-square-' + id).data('day', 0);\n            jQuery('.day-square-' + id).removeClass('disabled');\n            jQuery('.day-square-' + id).removeClass('current');\n            for (let i=firstDayId; i<daysInMonth+firstDayId; i++) {\n                const day = i-firstDayId+1;\n                const dateStr = day + '.' + month + '.' + year;\n                \/\/console.log(dateStr);\n                \/\/jQuery('#' + id + '-day-' + i).html(day);\n                jQuery('#' + id + '-day-' + i + ' .day-square-circle').html(day);\n                jQuery('#' + id + '-day-' + i).data('day', day + '.' + month + '.' + year);\n                if (this.stringToDate(dateStr) < this.now) {\n                    jQuery('#' + id + '-day-' + i).addClass('disabled');\n                    \/\/console.log('disabled', this.now);\n                }\n                if (dateStr == this.dateToString(this.now)) jQuery('#' + id + '-day-' + i).addClass('current');\n            }\n            const monthName = this.monthNames[month-1];\n            jQuery('#calendar-title-' + id).html(monthName + ' ' + year);\n            this.removeEmptyRows(id);\n        }\n\n        removeEmptyRows(id) {\n            let count = 0;\n            let rowCount = 0;\n            let html = '';\n            jQuery('.day-square-' + id).each(function() {\n                count++;\n                html += jQuery(this).html();\n                if (count % 7 == 0) {\n                    rowCount++;\n                    if (html == '') {\n                        const first = (rowCount-1)*7+1;\n                        for (let i=first; i<first+7; i++) {\n                            jQuery('#' + id + '-day-' + i).remove();\n                        }\n                    }\n                    html = '';\n                }\n            });\n        }\n\n        clickDay = (event) => {\n            const id = jQuery(event).attr('id');\n            const str = jQuery(event).data('day');\n            \/\/console.log(id, str);\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] != undefined) {\n                this.arrayDates = [];\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[1] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n            if (this.arrayDates[0] == undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[0] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markSelectedDates();\n            }\n        }\n\n        markSelectedDates() {\n            const date1 = this.arrayDatesSorted[0];\n            const date2 = this.arrayDatesSorted[1];\n            const str1 = this.dateToString(date1);\n            const str2 = this.dateToString(date2);\n            jQuery('.day-square-1').removeClass('selected');\n            jQuery('.day-square-1').removeClass('selected-strong1');\n            jQuery('.day-square-1').removeClass('selected-strong2');\n            jQuery('.day-square-2').removeClass('selected');\n            jQuery('.day-square-2').removeClass('selected-strong1');\n            jQuery('.day-square-2').removeClass('selected-strong2');\n            if (str1.length > 1) {\n                this.setDateLabels(str1, str2);\n                jQuery('.day-square-1').each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n                jQuery('.day-square-2').each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n            } else {\n                jQuery('.day-square-1').removeClass('selected');\n                jQuery('.day-square-2').removeClass('selected');\n            }\n            if (str1.length > 1 && str2.length > 1) {\n                jQuery('#mews-selected-start-year').val(date1.getFullYear());\n                jQuery('#mews-selected-start-month').val(date1.getMonth());\n                jQuery('#mews-selected-start-day').val(date1.getDate());\n                jQuery('#mews-selected-end-year').val(date2.getFullYear());\n                jQuery('#mews-selected-end-month').val(date2.getMonth());\n                jQuery('#mews-selected-end-day').val(date2.getDate());\n            }\n            \/* Testing:\n            let startYear = jQuery('#mews-selected-start-year').val();\n            let startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n            let startDay = jQuery('#mews-selected-start-day').val();\n            let endYear = jQuery('#mews-selected-end-year').val();\n            let endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n            let endDay = jQuery('#mews-selected-end-day').val();\n            console.log('mews start1', startYear, startMonth, startDay);\n            console.log('mews end1', endYear, endMonth, endDay);*\/\n        }\n\n        stringToDate(str) {\n            if (str.length > 1) {\n                const [day, month, year] = str.split('.').map(Number);\n                return new Date(year, month - 1, day);\n            }\n            return '';\n        }\n\n        dateToString(date) {\n            if (!date) return ''; \/\/ null\/undefined -> empty string\n            \/\/ If input is a string in dd.mm.yyyy (or d.m.yyyy) format, parse manually\n            if (typeof date === 'string' && \/^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$\/.test(date.trim())) {\n                const [d, m, y] = date.trim().split('.').map(Number);\n                \/\/ basic validation\n                if (!d || !m || !y) return '';\n                const dt = new Date(y, m - 1, d);\n                if (Number.isNaN(dt.getTime())) return '';\n                date = dt;\n            } else {\n                \/\/ try to coerce other inputs (Date object, ISO string, timestamp)\n                date = new Date(date);\n                if (Number.isNaN(date.getTime())) return '';\n            }\n            \/\/const day = String(date.getDate()).padStart(2, '0');\n            const day = String(date.getDate());\n            const month = String(date.getMonth() + 1);\n            const year = date.getFullYear();\n            return `${day}.${month}.${year}`;\n        }\n    }\n    const mewsCalendar = new MewsCalendar();\n<\/script><script>\n    class MewsCalendarMobile {\n        constructor() {\n            this.now = new Date();\n            this.dayNow = this.now.getDate();\n            this.monthNow = this.now.getMonth() + 1;\n            this.yearNow = this.now.getFullYear();\n            this.monthNext = this.now.getMonth() + 2;\n            this.yearNext = this.now.getFullYear();\n            this.weekdayNames = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];this.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];            this.arrayDates = [];\n            this.arrayDatesSorted = [];\n            this.generateAllCalendars();\n        }\n\n        generateAllCalendars() {\n            const date = new Date();\n            for (let i = 0; i < 13; i++) {\n                const year = date.getFullYear();\n                const month = date.getMonth() + 1; \/\/ getMonth() is 0-based\n                \/\/console.log(`${year}, ${month}`);\n                if (i < 12) {\n                    this.generateCalendar(i+1, year, month, false);\n                } else {\n                    this.generateCalendar(i+1, year, month, true);\n                }\n                this.generateMonthDays(i+1, year, month);\n                this.removeEmptyRows(i+1);\n                \/\/ Move to next month\n                date.setMonth(date.getMonth() + 1);\n            }\n        }\n\n        generateCalendar(id, year, month, addSpacer) {\n            let html = '';\n            html += '<div class=\"mcw-content-monthname\">' + this.monthNames[month-1] + ' ' + year + '<\/div>';\n            html += '<div class=\"m-calendar-weekdays\">';\n            html += '<div>' + this.weekdayNames[0] + '<\/div>';\n            html += '<div>' + this.weekdayNames[1] + '<\/div>';\n            html += '<div>' + this.weekdayNames[2] + '<\/div>';\n            html += '<div>' + this.weekdayNames[3] + '<\/div>';\n            html += '<div>' + this.weekdayNames[4] + '<\/div>';\n            html += '<div>' + this.weekdayNames[5] + '<\/div>';\n            html += '<div>' + this.weekdayNames[6] + '<\/div>';\n            html += '<\/div>';\n            html += '<div style=\"height: 10px;\"><\/div>';\n            for (let y=0; y<6; y++) {\n                html += '<div class=\"m-row\">';\n                    for (let x=0; x<7; x++) {\n                        let day = y*7+x+1;\n                        \/\/html += '<div class=\"m-day-square m-day-square-' + id + '\" id=\"' + id + '-m-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendarMobile.clickDay(this)\">' + day + '<\/div>';\n                        html += '<div class=\"m-day-square m-day-square-' + id + '\" id=\"' + id + '-m-day-' + day + '\" data-day=\"0\" onclick=\"mewsCalendarMobile.clickDay(this)\">';\n                        html += '<div class=\"m-day-square-inner\">';\n                        html += '<div class=\"m-day-square-circle\"><\/div>';\n                        html += '<\/div>';\n                        html += '<\/div>';\n                    }\n                html += '<\/div>';\n            }\n            html += '<div style=\"height: 30px;\"><\/div>';\n            if (addSpacer) html += '<div style=\"height: 150px;\"><\/div>';\n            jQuery('#mcw-content-mobile').append(html);\n        }\n\n        generateMonthDays(id, year, month) {\n            \/\/console.log('generateMonthDays', id, month, year);\n            const firstDay = new Date(year, month-1, 1);\n            const firstDayId = (firstDay.getDay() + 6) % 7 + 1;\n            const daysInMonth = new Date(year, month, 0).getDate();\n            let html = '';\n            \/\/jQuery('.m-day-square-' + id).html('');\n            jQuery('.m-day-square-' + id).data('day', 0);\n            jQuery('.m-day-square-' + id).removeClass('disabled');\n            jQuery('.m-day-square-' + id).removeClass('current');\n            for (let i=firstDayId; i<daysInMonth+firstDayId; i++) {\n                const day = i-firstDayId+1;\n                const dateStr = day + '.' + month + '.' + year;\n                \/\/jQuery('#' + id + '-m-day-' + i).html(day);\n                jQuery('#' + id + '-m-day-' + i + ' .m-day-square-circle').html(day);\n                jQuery('#' + id + '-m-day-' + i).data('day', day + '.' + month + '.' + year);\n                if (this.stringToDate(dateStr) < this.now) jQuery('#' + id + '-m-day-' + i).addClass('disabled');\n                if (dateStr == this.dateToString(this.now)) jQuery('#' + id + '-m-day-' + i).addClass('current');\n            }\n        }\n\n        removeEmptyRows(id) {\n            let count = 0;\n            let rowCount = 0;\n            let html = '';\n            jQuery('.m-day-square-' + id).each(function() {\n                count++;\n                html += jQuery(this).html();\n                if (count % 7 == 0) {\n                    rowCount++;\n                    if (html == '') {\n                        const first = (rowCount-1)*7+1;\n                        for (let i=first; i<first+7; i++) {\n                            jQuery('#' + id + '-m-day-' + i).remove();\n                        }\n                    }\n                    html = '';\n                }\n            });\n        }\n\n        clickDay = (event) => {\n            const id = jQuery(event).attr('id');\n            const str = jQuery(event).data('day');\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] != undefined) {\n                this.arrayDates = [];\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n            if (this.arrayDates[0] != undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[1] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n            if (this.arrayDates[0] == undefined && this.arrayDates[1] == undefined) {\n                this.arrayDates[0] = this.stringToDate(str);\n                this.arrayDatesSorted = [...this.arrayDates].sort((a, b) => a - b);\n                this.markAllSelectedDates();\n            }\n        }\n\n        markAllSelectedDates() {\n            for (let i=1; i<=13; i++) {\n                this.markSelectedDates(i);\n            }\n        }\n\n        markSelectedDates(id) {\n            const date1 = this.arrayDatesSorted[0];\n            const date2 = this.arrayDatesSorted[1];\n            const str1 = this.dateToString(date1);\n            const str2 = this.dateToString(date2);\n            \/\/console.log(str1, str2);\n            jQuery('.m-day-square-' + id).removeClass('selected');\n            jQuery('.m-day-square-' + id).removeClass('selected-strong1');\n            jQuery('.m-day-square-' + id).removeClass('selected-strong2');\n            if (str1.length > 1) {\n                this.setDateLabels(str1, str2);\n                jQuery('.m-day-square-' + id).each(function() {\n                    const dataDay = jQuery(this).data('day');\n                    if (dataDay.length > 1) {\n                        const [day, month, year] = dataDay.split('.').map(Number);\n                        const dataDayDate = new Date(year, month - 1, day);\n                        if (dataDayDate > date1 && dataDayDate < date2) {\n                            jQuery(this).addClass('selected');\n                        }\n                        if (dataDay == str1) jQuery(this).addClass('selected-strong1');\n                        if (dataDay == str2) jQuery(this).addClass('selected-strong2');\n                    }\n                });\n            } else {\n                jQuery('.m-day-square-' + id).removeClass('selected');\n            }\n            if (str1.length > 1 && str2.length > 1) {\n                jQuery('#mews-selected-start-year').val(date1.getFullYear());\n                jQuery('#mews-selected-start-month').val(date1.getMonth());\n                jQuery('#mews-selected-start-day').val(date1.getDate());\n                jQuery('#mews-selected-end-year').val(date2.getFullYear());\n                jQuery('#mews-selected-end-month').val(date2.getMonth());\n                jQuery('#mews-selected-end-day').val(date2.getDate());\n            }\n            \/* Testing:\n            let startYear = jQuery('#mews-selected-start-year').val();\n            let startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n            let startDay = jQuery('#mews-selected-start-day').val();\n            let endYear = jQuery('#mews-selected-end-year').val();\n            let endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n            let endDay = jQuery('#mews-selected-end-day').val();\n            console.log('mews start1', startYear, startMonth, startDay);\n            console.log('mews end1', endYear, endMonth, endDay);*\/\n        }\n\n        setDateLabels(start, end) {\n            jQuery('#mews-date-label-start').html(start);\n            jQuery('#mews-date-label-end').html(end);\n        }\n\n        stringToDate(str) {\n            if (str.length > 1) {\n                const [day, month, year] = str.split('.').map(Number);\n                return new Date(year, month - 1, day);\n            }\n            return '';\n        }\n\n        dateToString(date) {\n            if (!date) return ''; \/\/ null\/undefined -> empty string\n            \/\/ If input is a string in dd.mm.yyyy (or d.m.yyyy) format, parse manually\n            if (typeof date === 'string' && \/^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$\/.test(date.trim())) {\n                const [d, m, y] = date.trim().split('.').map(Number);\n                \/\/ basic validation\n                if (!d || !m || !y) return '';\n                const dt = new Date(y, m - 1, d);\n                if (Number.isNaN(dt.getTime())) return '';\n                date = dt;\n            } else {\n                \/\/ try to coerce other inputs (Date object, ISO string, timestamp)\n                date = new Date(date);\n                if (Number.isNaN(date.getTime())) return '';\n            }\n            \/\/const day = String(date.getDate()).padStart(2, '0');\n            const day = String(date.getDate());\n            const month = String(date.getMonth() + 1);\n            const year = date.getFullYear();\n            return `${day}.${month}.${year}`;\n        }\n    }\n    const mewsCalendarMobile = new MewsCalendarMobile();\n<\/script><script>\n    window.addEventListener('DOMContentLoaded', function() {\n\n        console.log(\"mews booking engine loaded\");\n\n        if (typeof Mews !== 'undefined') {\n\n            console.log(\"Mews is defined\");\n\n            Mews.Distributor(\n                {\n                    configurationIds: ['3e5b7df2-6d53-443f-aa6e-b4410085a177'],\n                    \/\/openElements: '.distributor-open',\n                },\n                \n                function(api) {\n                    \/\/ you can call API functions on a booking engine instance here\n                    \/\/ set different start and end date\n\n                    const mewsSubmit = () => {\n                        const startYear = jQuery('#mews-selected-start-year').val();\n                        const startMonth = jQuery('#mews-selected-start-month').val(); \/\/0-11\n                        const startDay = jQuery('#mews-selected-start-day').val();\n                        const endYear = jQuery('#mews-selected-end-year').val();\n                        const endMonth = jQuery('#mews-selected-end-month').val(); \/\/0-11\n                        const endDay = jQuery('#mews-selected-end-day').val();\n                        \/\/console.log('mews start2', startYear, startMonth, startDay);\n                        \/\/console.log('mews end2', endYear, endMonth, endDay);\n                        api.setStartDate(new Date(startYear, startMonth, startDay));\n                        api.setEndDate(new Date(endYear, endMonth, endDay));\n\n                        api.setLanguageCode('en-GB');\n                        console.log('mews submit en-GB');\n                        api.open();\n                    }\n\n                    const enableSubmit = () => {\n                        console.log('enableSubmit'); \n                        const submitButton = document.getElementById('mews-submit-button');\n                        const submitButtonCalendarDesktop = document.getElementById('mews-submit-button-calendar-desktop');\n                        const submitButtonCalendarMobile = document.getElementById('mews-submit-button-calendar-mobile');\n                        submitButton.innerHTML = 'Tarkista saatavuus';\n                        \/\/submitButton.disabled = false;\n                        submitButton.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                        submitButtonCalendarDesktop.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                        submitButtonCalendarMobile.addEventListener('click', function() {\n                            mewsSubmit();\n                        });\n                    };\n                    enableSubmit();\n                }\n            );\n        }\n    });\n<\/script><\/div>\n\n\n\n<div class=\"breadcrumb-container\"><ul id=\"breadcrumbs\" class=\"breadcrumbs\"><li class=\"item-home\"><a class=\"bread-link bread-home\" href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\" title=\"Hotel Levi Panorama\">Hotel Levi Panorama<\/a><\/li><li class=\"separator separator-home\"> \/ <\/li><\/ul><\/div>\n<style>\n    \n<\/style>\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-244a2f0a wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-group alignwide ingress is-layout-constrained wp-block-group-is-layout-constrained\">\n<h1 class=\"wp-block-heading has-text-align-center\" id=\"h-levi-chalets-huoneistot\" style=\"margin-bottom:var(--wp--preset--spacing--60)\">Levi Chalets -Huoneistot<\/h1>\n\n\n\n<p class=\"has-text-align-center has-large-font-size\">Levi Chalets -huoneistot sijaitsevat Levitunturin huipulla, Hotel Levi Panoraman v\u00e4litt\u00f6m\u00e4ss\u00e4 l\u00e4heisyydess\u00e4. Kattavasti varustelluissa huoneistoissa on kaikissa tupakeitti\u00f6, parveke ja sauna.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Kysy lis\u00e4\u00e4:<\/strong><br>Puh. 016 336 3000<br><a href=\"mailto:panorama@kassiopeia.fi\">panorama@kassiopeia.fi<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Sis\u00e4\u00e4nkirjautuminen huoneistoihin on klo 15<br>Huoneenluovutus klo 11<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-panorama-5-background-color has-background is-layout-constrained wp-container-core-group-is-layout-8a7fd378 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--80);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--70);padding-left:var(--wp--preset--spacing--40)\">\n  \n\n<!--<p>Id: <\/p>-->\n            <div class=\"hotel-rooms-main\">\n                                                <div class=\"hotel-rooms-container\" id=\"hotel-rooms-container-276\">\n                                    <input type=\"hidden\" id=\"hotel-rooms-images-count-276\" value=\"12\">\n                                    <div class=\"columns-s hotel-rooms-content\">\n                                        <div class=\"hotel-rooms-images-container\" id=\"hotel-rooms-images-container-276\">\n                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-0\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url(https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45.jpg);\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-1\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-2\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kolme-huonetta-keittio.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-3\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets_greenbedroom3.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-4\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kerrossanky.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-5\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/levi-chalets-huoneiston-kylpyhuone.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-6\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-sauna.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-7\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneiston-parveke.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-8\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levichalets_huoneistot-talvinen-ulkokuva.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-9\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/Levi-Chalets-huoneistot-levi.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-10\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/45-m2-huoneisto-levi-chalets.gif\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-276-11\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/50-m2-huoneisto-levi-chalets.gif\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-276\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-276\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kaksio\"><\/div>\n                                                                                                                                        <div class=\"hotel-rooms-slider-buttons\" style=\"left: calc(50% - 120px);\">\n                                                <input type=\"hidden\" id=\"hotel-rooms-image-url-276-0\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-0\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 0)\" style=\"background: white;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-1\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-1\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 1)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-2\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kolme-huonetta-keittio.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-2\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 2)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-3\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets_greenbedroom3.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-3\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 3)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-4\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kerrossanky.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-4\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 4)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-5\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/levi-chalets-huoneiston-kylpyhuone.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-5\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 5)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-6\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-sauna.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-6\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 6)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-7\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneiston-parveke.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-7\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 7)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-8\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levichalets_huoneistot-talvinen-ulkokuva.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-8\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 8)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-9\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/Levi-Chalets-huoneistot-levi.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-9\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 9)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-10\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/45-m2-huoneisto-levi-chalets.gif\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-10\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 10)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-276-11\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/50-m2-huoneisto-levi-chalets.gif\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-276\" id=\"hotel-rooms-slider-button-276-11\" onclick=\"hotelSingleRoom212551308.selectHotelRoomsImage(276, 11)\" style=\"background: none;\"><\/div>                                            <\/div>\n                                        <\/div>\n                                        \n                                        <div class=\"hotel-rooms-text\">\n                                            <h3 class=\"has-x-large-font-size\">Levi Chalets -kaksio <\/h3>\n                                            <div class=\"hotel-rooms-details\">\n                                                 <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">  <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">  <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">  <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">                                                 <div class=\"hotel-rooms-size\">45-50 m\u00b2<\/div>\n                                            <\/div>\n                                            <p><p>Levi Chalets -kaksioissa on yksi makuuhuone, tupakeitti\u00f6, makuualkovi sek\u00e4 kylpyhuone saunalla. Makuuhuoneessa on kaksi erillist\u00e4 90 cm leve\u00e4\u00e4 vuodetta. Makuualkovissa on kerrosvuode, joista alavuode on 120 cm ja yl\u00e4vuode 80 cm leve\u00e4. Tupakeitti\u00f6st\u00e4 l\u00f6yd\u00e4t kylm\u00e4laitteet, astianpesukoneen sek\u00e4 t\u00e4yden keitti\u00f6varustuksen. Kylpyhuoneessa on pyykinpesukone ja vaatteiden kuivauskaappi. Kaikissa huoneistoissa on lasitetut parvekkeet parvekekalusteineen. Huoneistossa majoittuu mukavasti nelj\u00e4 aikuista tai kaksi aikuista ja 1-3 lasta.<\/p>\n<p>Muista Kassiopeian majoituksista poiketen Levi Chaletseilla ei ole Joutsenmerkki\u00e4 eik\u00e4 Sustainable Travel Finland (STF) merkki\u00e4.<\/p>\n<\/p>\n                                            <div style=\"height: 20px;\"><\/div>\n                                                                                            <a class=\"btn-primary\" href=\"https:\/\/app.mews.com\/distributor\/fa550117-4209-4ca9-a13b-b4410085af05?mewsRoute=rates&#038;mewsRoom=0b54e544-c670-4f72-917c-b4410085cb28&#038;language=fi-FI\">Varaa Levi Chalets -kaksio<\/a>\n                                                                                    <\/div>\n                                    <\/div>\n                                <\/div>\n                                        <\/div>\n            <script>\n                class HotelSingleRoom212551308 {\n                    constructor(currentPostId) {\n                        this.currentPostId = currentPostId;\n                        this.prevCount = 0;\n                        this.currentCount = 0;\n                        this.maxCount = 0;\n                        this.initSwipeDetection();\n                    }\n\n                    showHotelRoomsTab(post_id) {\n                        this.currentPostId = post_id;\n                        this.currentCount = 0;\n                        this.selectHotelRoomsImage(this.currentPostId, this.currentCount);\n                        \/\/console.log('showHotelRoomsTab', this.currentPostId);\n                        jQuery('.hotel-rooms-container').hide();\n                        jQuery('#hotel-rooms-container-' + this.currentPostId).show();\n                        jQuery('.hotel-rooms-tab').removeClass('active');\n                        jQuery('#hotel-rooms-tab-' + this.currentPostId).addClass('active');\n                    }\n                    \n                    initSwipeDetection() {\n                        \/\/console.log('initSwipeDetection');\n                        \/\/jQuery('.hotel-rooms-images-container')\n                        let xDown;\n                        let xUp;\n                        jQuery('#hotel-rooms-images-container-' + this.currentPostId)\n                            .on('mousedown', (e) => {\n                                xDown = e.pageX; \/\/For mouse\n                            })\n                            .on('mouseup', (e) => {\n                                xUp = e.pageX; \/\/For mouse\n                                let xDiff = xDown - xUp;\n                                if (xDiff > 50) {\n                                    this.swipeHotelRoomsImage(1);\n                                } else if (xDiff < -50) {\n                                    this.swipeHotelRoomsImage(-1);\n                                }\n                            })\n                            .on('touchstart', (e) => {\n                                if (e.changedTouches[0].pageX !== undefined) {\n                                    xDown = e.changedTouches[0].pageX; \/\/For touch\n                                }\n                            })\n                            .on('touchend', (e) => {\n                                if (e.changedTouches[0].pageX !== undefined) {\n                                    xUp = e.changedTouches[0].pageX; \/\/For touch\n                                }\n                                let xDiff = xDown - xUp;\n                                if (xDiff > 50) {\n                                    this.swipeHotelRoomsImage(1);\n                                } else if (xDiff < -50) {\n                                    this.swipeHotelRoomsImage(-1);\n                                }\n                            })\n                        ;\n                    }\n                    \n                    swipeHotelRoomsImage(step) {\n                        \/\/console.log('swipeHotelRoomsImage', this.currentPostId, step);\n                        this.prevCount = this.currentCount;\n                        this.currentCount = Number(this.currentCount) + Number(step);\n                        this.maxCount = Number(jQuery('#hotel-rooms-images-count-' + this.currentPostId).val()) - 1;\n                        \/\/console.log('currentPostId', this.currentPostId);\n                        \/\/console.log('maxCount', this.maxCount);\n                        \/\/console.log('currentCount1', this.currentCount);\n                        if (this.currentCount < 0) this.currentCount = this.maxCount;\n                        if (this.currentCount > this.maxCount) this.currentCount = 0;\n                        \/\/console.log('currentCount2', this.currentCount);\n                        this.changeHotelRoomsImage(step);\n                        this.activateHotelRoomsTab(this.currentCount);\n                    }\n                    \n                    selectHotelRoomsImage(post_id, count) {\n                        this.currentPostId = post_id;\n                        this.prevCount = this.currentCount;\n                        this.currentCount = count;\n                        \/\/console.log('selectHotelRoomsImage', this.currentPostId, this.currentCount);\n                        this.changeHotelRoomsImage(0);\n                        this.activateHotelRoomsTab(this.currentCount);\n                    }\n                    \n                    changeHotelRoomsImage(dir) {\n                        let urlOld = jQuery('#hotel-rooms-image-url-' + this.currentPostId + '-' + this.prevCount).val();\n                        let urlNew = jQuery('#hotel-rooms-image-url-' + this.currentPostId + '-' + this.currentCount).val();\n                        \/\/console.log(urlOld, urlNew);\n                        jQuery('#hotel-rooms-image-bottom-' + this.currentPostId).css('background-image', 'url(' + urlOld + ')');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('background-image', 'url(' + urlNew + ')');\n                        \/\/console.log(this.prevCount, this.currentCount, this.maxCount);\n                        if (this.prevCount != this.currentCount) {\n                            if (dir == 0) {\n                                if (this.prevCount == 0 && this.currentCount == 0) {\n                        \n                                } else if (this.currentCount == 0 && this.prevCount == this.maxCount) {\n                                    this.swipeFromRight();\n                                } else if (this.currentCount == this.maxCount && this.prevCount == 0) {\n                                    this.swipeFromLeft();\n                                } else if (this.prevCount > this.currentCount) {\n                                    this.swipeFromLeft();\n                                } else {\n                                    this.swipeFromRight();\n                                }\n                            } else {\n                                if (dir == 1) {\n                                    this.swipeFromRight();\n                                } else {\n                                    this.swipeFromLeft();\n                                }\n                            }\n                        }\n                    }\n                    \n                    swipeFromLeft() {\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('right', 'auto');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('left', '-100%');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).animate({\n                            left: '0'\n                        }, {\n                            duration: 300\n                        });\n                    }\n                    \n                    swipeFromRight() {\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('left', 'auto');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('right', '-100%');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).animate({\n                            right: '0'\n                        }, {\n                            duration: 300\n                        });\n                    }\n                    \n                    activateHotelRoomsTab(id) {\n                        jQuery('.hotel-rooms-slider-button-' + this.currentPostId).css('background', 'none');\n                        jQuery('#hotel-rooms-slider-button-' + this.currentPostId + '-' + id).css('background', 'white');\n                    }\n                }\n                const hotelSingleRoom212551308 = new HotelSingleRoom212551308(276);\n            <\/script>\n        \n\n\n\n  \n\n<!--<p>Id: <\/p>-->\n            <div class=\"hotel-rooms-main\">\n                                                <div class=\"hotel-rooms-container\" id=\"hotel-rooms-container-277\">\n                                    <input type=\"hidden\" id=\"hotel-rooms-images-count-277\" value=\"10\">\n                                    <div class=\"columns-s hotel-rooms-content\">\n                                        <div class=\"hotel-rooms-images-container\" id=\"hotel-rooms-images-container-277\">\n                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-0\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kolme-huonetta-oleskelutila.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url(https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kolme-huonetta-oleskelutila.jpg);\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-1\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kolme-huonetta-keittio.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-2\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneiston-makuuhuone.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-3\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kerrossanky.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-4\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/levi-chalets-huoneiston-kylpyhuone.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-5\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-sauna.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-6\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneiston-parveke.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-7\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levichalets_huoneistot-talvinen-ulkokuva.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-8\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-talvnen-ulkokuva.jpg\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                            <input type=\"hidden\" id=\"hotel-rooms-image-url-277-9\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/65-m2-huoneisto-levi-chalets.gif\"> \n                                                <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-bottom-277\"><\/div>\n                                                                                                    <div class=\"hotel-rooms-image\" id=\"hotel-rooms-image-top-277\" style=\"background-image: url();\" role=\"image\" aria-label=\"Levi Chalets -kolmio\"><\/div>\n                                                                                                                                        <div class=\"hotel-rooms-slider-buttons\" style=\"left: calc(50% - 100px);\">\n                                                <input type=\"hidden\" id=\"hotel-rooms-image-url-277-0\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kolme-huonetta-oleskelutila.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-0\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 0)\" style=\"background: white;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-1\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kolme-huonetta-keittio.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-1\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 1)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-2\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneiston-makuuhuone.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-2\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 2)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-3\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-kerrossanky.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-3\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 3)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-4\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/levi-chalets-huoneiston-kylpyhuone.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-4\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 4)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-5\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-sauna.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-5\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 5)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-6\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneiston-parveke.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-6\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 6)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-7\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levichalets_huoneistot-talvinen-ulkokuva.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-7\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 7)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-8\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-talvnen-ulkokuva.jpg\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-8\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 8)\" style=\"background: none;\"><\/div><input type=\"hidden\" id=\"hotel-rooms-image-url-277-9\" value=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/65-m2-huoneisto-levi-chalets.gif\"><div class=\"hotel-rooms-slider-button hotel-rooms-slider-button-277\" id=\"hotel-rooms-slider-button-277-9\" onclick=\"hotelSingleRoom1379250866.selectHotelRoomsImage(277, 9)\" style=\"background: none;\"><\/div>                                            <\/div>\n                                        <\/div>\n                                        \n                                        <div class=\"hotel-rooms-text\">\n                                            <h3 class=\"has-x-large-font-size\">Levi Chalets -kolmio <\/h3>\n                                            <div class=\"hotel-rooms-details\">\n                                                 <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">  <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">  <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">  <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">  <img decoding=\"async\" class=\"hotel-rooms-person\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/themes\/panorama-theme\/assets\/images\/person_icon.svg\">                                                 <div class=\"hotel-rooms-size\">65 m\u00b2<\/div>\n                                            <\/div>\n                                            <p><p>Kolmen huoneen Levi Chalets -huoneistoissamme on kaksi makuuhuonetta, tilava ja viihtyis\u00e4 tupakeitti\u00f6 sek\u00e4 kylpyhuone ja sauna. Makuuhuoneissa on kaksi erillist\u00e4 90 cm leve\u00e4\u00e4 vuodetta. Tupakeitti\u00f6st\u00e4 l\u00f6yd\u00e4t kylm\u00e4laitteet, astianpesukoneen sek\u00e4 t\u00e4yden keitti\u00f6varustuksen. Kylpyhuoneessa on pyykinpesukone ja vaatteiden kuivauskaappi. Kaikissa huoneistoissa on lasitetut parvekkeet parvekekalusteineen. Huoneistoistoon majoittuu mukavasti 4-5 aikuista tai nelj\u00e4 aikuista ja 1-2 lasta.<\/p>\n<p>Muista Kassiopeian majoituksista poiketen Levi Chaletseilla ei ole Joutsenmerkki\u00e4 eik\u00e4 Sustainable Travel Finland (STF) merkki\u00e4.<\/p>\n<\/p>\n                                            <div style=\"height: 20px;\"><\/div>\n                                                                                            <a class=\"btn-primary\" href=\"https:\/\/app.mews.com\/distributor\/fa550117-4209-4ca9-a13b-b4410085af05?mewsRoute=rates&#038;mewsRoom=b2e3733f-68a2-40d4-9563-b4410085cb28&#038;language=fi-FI\">Varaa Levi Chalets -kolmio<\/a>\n                                                                                    <\/div>\n                                    <\/div>\n                                <\/div>\n                                        <\/div>\n            <script>\n                class HotelSingleRoom1379250866 {\n                    constructor(currentPostId) {\n                        this.currentPostId = currentPostId;\n                        this.prevCount = 0;\n                        this.currentCount = 0;\n                        this.maxCount = 0;\n                        this.initSwipeDetection();\n                    }\n\n                    showHotelRoomsTab(post_id) {\n                        this.currentPostId = post_id;\n                        this.currentCount = 0;\n                        this.selectHotelRoomsImage(this.currentPostId, this.currentCount);\n                        \/\/console.log('showHotelRoomsTab', this.currentPostId);\n                        jQuery('.hotel-rooms-container').hide();\n                        jQuery('#hotel-rooms-container-' + this.currentPostId).show();\n                        jQuery('.hotel-rooms-tab').removeClass('active');\n                        jQuery('#hotel-rooms-tab-' + this.currentPostId).addClass('active');\n                    }\n                    \n                    initSwipeDetection() {\n                        \/\/console.log('initSwipeDetection');\n                        \/\/jQuery('.hotel-rooms-images-container')\n                        let xDown;\n                        let xUp;\n                        jQuery('#hotel-rooms-images-container-' + this.currentPostId)\n                            .on('mousedown', (e) => {\n                                xDown = e.pageX; \/\/For mouse\n                            })\n                            .on('mouseup', (e) => {\n                                xUp = e.pageX; \/\/For mouse\n                                let xDiff = xDown - xUp;\n                                if (xDiff > 50) {\n                                    this.swipeHotelRoomsImage(1);\n                                } else if (xDiff < -50) {\n                                    this.swipeHotelRoomsImage(-1);\n                                }\n                            })\n                            .on('touchstart', (e) => {\n                                if (e.changedTouches[0].pageX !== undefined) {\n                                    xDown = e.changedTouches[0].pageX; \/\/For touch\n                                }\n                            })\n                            .on('touchend', (e) => {\n                                if (e.changedTouches[0].pageX !== undefined) {\n                                    xUp = e.changedTouches[0].pageX; \/\/For touch\n                                }\n                                let xDiff = xDown - xUp;\n                                if (xDiff > 50) {\n                                    this.swipeHotelRoomsImage(1);\n                                } else if (xDiff < -50) {\n                                    this.swipeHotelRoomsImage(-1);\n                                }\n                            })\n                        ;\n                    }\n                    \n                    swipeHotelRoomsImage(step) {\n                        \/\/console.log('swipeHotelRoomsImage', this.currentPostId, step);\n                        this.prevCount = this.currentCount;\n                        this.currentCount = Number(this.currentCount) + Number(step);\n                        this.maxCount = Number(jQuery('#hotel-rooms-images-count-' + this.currentPostId).val()) - 1;\n                        \/\/console.log('currentPostId', this.currentPostId);\n                        \/\/console.log('maxCount', this.maxCount);\n                        \/\/console.log('currentCount1', this.currentCount);\n                        if (this.currentCount < 0) this.currentCount = this.maxCount;\n                        if (this.currentCount > this.maxCount) this.currentCount = 0;\n                        \/\/console.log('currentCount2', this.currentCount);\n                        this.changeHotelRoomsImage(step);\n                        this.activateHotelRoomsTab(this.currentCount);\n                    }\n                    \n                    selectHotelRoomsImage(post_id, count) {\n                        this.currentPostId = post_id;\n                        this.prevCount = this.currentCount;\n                        this.currentCount = count;\n                        \/\/console.log('selectHotelRoomsImage', this.currentPostId, this.currentCount);\n                        this.changeHotelRoomsImage(0);\n                        this.activateHotelRoomsTab(this.currentCount);\n                    }\n                    \n                    changeHotelRoomsImage(dir) {\n                        let urlOld = jQuery('#hotel-rooms-image-url-' + this.currentPostId + '-' + this.prevCount).val();\n                        let urlNew = jQuery('#hotel-rooms-image-url-' + this.currentPostId + '-' + this.currentCount).val();\n                        \/\/console.log(urlOld, urlNew);\n                        jQuery('#hotel-rooms-image-bottom-' + this.currentPostId).css('background-image', 'url(' + urlOld + ')');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('background-image', 'url(' + urlNew + ')');\n                        \/\/console.log(this.prevCount, this.currentCount, this.maxCount);\n                        if (this.prevCount != this.currentCount) {\n                            if (dir == 0) {\n                                if (this.prevCount == 0 && this.currentCount == 0) {\n                        \n                                } else if (this.currentCount == 0 && this.prevCount == this.maxCount) {\n                                    this.swipeFromRight();\n                                } else if (this.currentCount == this.maxCount && this.prevCount == 0) {\n                                    this.swipeFromLeft();\n                                } else if (this.prevCount > this.currentCount) {\n                                    this.swipeFromLeft();\n                                } else {\n                                    this.swipeFromRight();\n                                }\n                            } else {\n                                if (dir == 1) {\n                                    this.swipeFromRight();\n                                } else {\n                                    this.swipeFromLeft();\n                                }\n                            }\n                        }\n                    }\n                    \n                    swipeFromLeft() {\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('right', 'auto');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('left', '-100%');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).animate({\n                            left: '0'\n                        }, {\n                            duration: 300\n                        });\n                    }\n                    \n                    swipeFromRight() {\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('left', 'auto');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).css('right', '-100%');\n                        jQuery('#hotel-rooms-image-top-' + this.currentPostId).animate({\n                            right: '0'\n                        }, {\n                            duration: 300\n                        });\n                    }\n                    \n                    activateHotelRoomsTab(id) {\n                        jQuery('.hotel-rooms-slider-button-' + this.currentPostId).css('background', 'none');\n                        jQuery('#hotel-rooms-slider-button-' + this.currentPostId + '-' + id).css('background', 'white');\n                    }\n                }\n                const hotelSingleRoom1379250866 = new HotelSingleRoom1379250866(277);\n            <\/script>\n        \n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-af415cb8 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--70);padding-right:var(--wp--preset--spacing--40);padding-bottom:0;padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile is-vertically-aligned-center is-image-fill-element\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--70)\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"695\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/Levi-Chalets-huoneistot-levi-1024x695.jpg\" alt=\"Levi Chalets huoneistojen rakennus talvella.\" class=\"wp-image-1532 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/Levi-Chalets-huoneistot-levi-1024x695.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/Levi-Chalets-huoneistot-levi-300x204.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/Levi-Chalets-huoneistot-levi-768x521.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/Levi-Chalets-huoneistot-levi-1536x1042.jpg 1536w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/Levi-Chalets-huoneistot-levi.jpg 1671w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<h2 class=\"wp-block-heading\" id=\"h-kattava-varustelu-ja-oma-sauna\">Kattava varustelu ja oma sauna<\/h2>\n\n\n\n<p>Tasokkaat Levi Chalets -huoneistot sijaitsevat Hotel Levi Panoraman v\u00e4litt\u00f6m\u00e4ss\u00e4 l\u00e4heisyydess\u00e4. Huoneistot ovat tilavia, sisustettu kodikkaiksi sek\u00e4 kattavasti varusteltuja. Huoneistossa on kattavasti keitti\u00f6tarvikkeita ruoanlaittoon, mutta jos kuitenkin kaipaat lomallasi helppoutta, ovat kaikki <a href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/ravintolat\/ravintolat\">Hotel Levi Panoraman ravintoloiden palvelut<\/a> k\u00e4yt\u00f6ss\u00e4si.<\/p>\n\n\n\n<p>Kaikki huoneistot ja niiden parvekkeet ovat savuttomia.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile is-vertically-aligned-center is-image-fill-element\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--70)\"><div class=\"wp-block-media-text__content\">\n<h2 class=\"wp-block-heading\" id=\"h-palvelut\">Palvelut<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Omat suksivarastot sek\u00e4 suksien huoltotilat rakennuksen ensimm\u00e4isess\u00e4 kerroksessa.<\/li>\n\n\n\n<li>Maksuton 15-paikkainen autotalli sek\u00e4 oma pys\u00e4k\u00f6intialue maksuttomine l\u00e4mmityspistokepaikkoineen.<\/li>\n\n\n\n<li>Kaikki <a href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/ravintolat\/ravintolat\">Hotel Levi Panoraman ravintoloiden palvelut<\/a> k\u00e4yt\u00f6ss\u00e4.<\/li>\n\n\n\n<li>Vain 100 m matkaa Levin eturinteeseen ja Levi Express Gondolin yl\u00e4asemalle.<\/li>\n<\/ul>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"666\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/hotel-levi-panorama-levin-rinteessa-1024x666.jpg\" alt=\"Hotel Levi Panorama Levin rinteess\u00e4.\" class=\"wp-image-2015 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/hotel-levi-panorama-levin-rinteessa-1024x666.jpg 1024w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/hotel-levi-panorama-levin-rinteessa-300x195.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/hotel-levi-panorama-levin-rinteessa-768x499.jpg 768w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/hotel-levi-panorama-levin-rinteessa-1536x998.jpg 1536w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/hotel-levi-panorama-levin-rinteessa.jpg 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile is-vertically-aligned-center is-image-fill-element\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/koira.jpg\" alt=\"Kuva koirasta.\" class=\"wp-image-2007 size-full\" style=\"object-position:50% 50%\" srcset=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/koira.jpg 800w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/koira-300x225.jpg 300w, https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/10\/koira-768x576.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<h2 class=\"wp-block-heading\" id=\"h-huomio-lemmikin-kanssa-matkustava\">Huomio lemmikin kanssa matkustava!<\/h2>\n\n\n\n<p>Levi Chalets -huoneistot eiv\u00e4t ik\u00e4v\u00e4 kyll\u00e4 ole lemmikkiyst\u00e4v\u00e4llisi\u00e4 mutta tarjoamme lemmikkihuoneita naapurissa sijaitsevassa Hotel Levi Panoramassa eri huoneluokissa.<\/p>\n\n\n\n<div style=\"height:22px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneet\/\">Rinnehotelli Hotel Levi Panoraman huoneet<\/a><\/div>\n<\/div>\n<\/div><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Levi Chalets -Huoneistot Levi Chalets -huoneistot sijaitsevat Levitunturin huipulla, Hotel Levi Panoraman v\u00e4litt\u00f6m\u00e4ss\u00e4 l\u00e4heisyydess\u00e4. Kattavasti varustelluissa huoneistoissa on kaikissa tupakeitti\u00f6, parveke ja sauna. Kysy lis\u00e4\u00e4:Puh. 016 336 3000panorama@kassiopeia.fi Sis\u00e4\u00e4nkirjautuminen huoneistoihin on klo 15Huoneenluovutus klo 11 Kattava varustelu ja oma sauna Tasokkaat Levi Chalets -huoneistot sijaitsevat Hotel Levi Panoraman v\u00e4litt\u00f6m\u00e4ss\u00e4 l\u00e4heisyydess\u00e4. Huoneistot ovat tilavia, sisustettu kodikkaiksi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":216,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-470","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Levi Chalets - Huoneistot - Hotel Levi Panorama<\/title>\n<meta name=\"description\" content=\"Huoneistomajoitusta Levill\u00e4! Saatavilla hyv\u00e4t, monipuoliset palvelut ja aamiainen hotellilla. Valitse huoneistosi ja varaa heti!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Levi Chalets - Huoneistot\" \/>\n<meta property=\"og:description\" content=\"Huoneistomajoitusta Levill\u00e4! Saatavilla hyv\u00e4t, monipuoliset palvelut ja aamiainen hotellilla. Valitse huoneistosi ja varaa heti!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/\" \/>\n<meta property=\"og:site_name\" content=\"Hotel Levi Panorama\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-30T12:25:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1406\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/huoneistot\\\/\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/huoneistot\\\/\",\"name\":\"Levi Chalets - Huoneistot - Hotel Levi Panorama\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/huoneistot\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/huoneistot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2024\\\/09\\\/levi-chalets-huoneisto-45-keittio.jpg\",\"datePublished\":\"2024-10-08T14:00:41+00:00\",\"dateModified\":\"2025-07-30T12:25:12+00:00\",\"description\":\"Huoneistomajoitusta Levill\u00e4! Saatavilla hyv\u00e4t, monipuoliset palvelut ja aamiainen hotellilla. Valitse huoneistosi ja varaa heti!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/huoneistot\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/huoneistot\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/huoneistot\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2024\\\/09\\\/levi-chalets-huoneisto-45-keittio.jpg\",\"contentUrl\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/2024\\\/09\\\/levi-chalets-huoneisto-45-keittio.jpg\",\"width\":2000,\"height\":1406,\"caption\":\"Levi Chaletsin keitti\u00f6.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/huoneistot\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Majoitus\",\"item\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/majoitus\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Levi Chalets &#8211; Huoneistot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/#website\",\"url\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/\",\"name\":\"Hotel Levi Panorama\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.kassiopeia.fi\\\/hotel-levi-panorama\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Levi Chalets - Huoneistot - Hotel Levi Panorama","description":"Huoneistomajoitusta Levill\u00e4! Saatavilla hyv\u00e4t, monipuoliset palvelut ja aamiainen hotellilla. Valitse huoneistosi ja varaa heti!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/","og_locale":"en_US","og_type":"article","og_title":"Levi Chalets - Huoneistot","og_description":"Huoneistomajoitusta Levill\u00e4! Saatavilla hyv\u00e4t, monipuoliset palvelut ja aamiainen hotellilla. Valitse huoneistosi ja varaa heti!","og_url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/","og_site_name":"Hotel Levi Panorama","article_modified_time":"2025-07-30T12:25:12+00:00","og_image":[{"width":2000,"height":1406,"url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/","url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/","name":"Levi Chalets - Huoneistot - Hotel Levi Panorama","isPartOf":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/#primaryimage"},"image":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg","datePublished":"2024-10-08T14:00:41+00:00","dateModified":"2025-07-30T12:25:12+00:00","description":"Huoneistomajoitusta Levill\u00e4! Saatavilla hyv\u00e4t, monipuoliset palvelut ja aamiainen hotellilla. Valitse huoneistosi ja varaa heti!","breadcrumb":{"@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/#primaryimage","url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg","contentUrl":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-content\/uploads\/sites\/3\/2024\/09\/levi-chalets-huoneisto-45-keittio.jpg","width":2000,"height":1406,"caption":"Levi Chaletsin keitti\u00f6."},{"@type":"BreadcrumbList","@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/huoneistot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/"},{"@type":"ListItem","position":2,"name":"Majoitus","item":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/majoitus\/"},{"@type":"ListItem","position":3,"name":"Levi Chalets &#8211; Huoneistot"}]},{"@type":"WebSite","@id":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/#website","url":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/","name":"Hotel Levi Panorama","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"lang":"fi","translations":{"fi":470,"en":1519},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages\/470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/comments?post=470"}],"version-history":[{"count":57,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages\/470\/revisions"}],"predecessor-version":[{"id":5535,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages\/470\/revisions\/5535"}],"up":[{"embeddable":true,"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/pages\/216"}],"wp:attachment":[{"href":"https:\/\/www.kassiopeia.fi\/hotel-levi-panorama\/wp-json\/wp\/v2\/media?parent=470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}