$(document).ready(function () { var toTopBtn = document.querySelector('.pulse-button'); if (toTopBtn) { toggleToTopBtn(window.scrollY, toTopBtn); } var firstTopImage = document.querySelector('main .overlay-wrapper:first-of-type'); if (firstTopImage) { firstTopImage.classList.add('reveal'); } if ($('body').find('#handlebars-residences-filter').length > 0) { var handlebarTarget = $('#handlebars-residences-filter'); var testMobileView = handlebarTarget.attr('data-test-mobile'); var moduleMode = handlebarTarget.attr('data-module-mode'); var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var feedUrl = handlebarTarget.attr('data-feed-url'); var cookieDataFeed = getCookie("dataFeed" + currentPageID); console.log("cookieDataFeed ER ??? " + cookieDataFeed + " ingen ting"); if (cookieDataFeed != "") { feedUrl = cookieDataFeed; handlebarTarget.attr('data-feed-url', feedUrl); console.log("sessionDataFeed ER ikke null og feed url = " + feedUrl); } if (testMobileView && w < 576) { console.log('has mobile view? ' + handlebarTarget.attr('data-test-mobile')); if (handlebarTarget.attr('data-template-id').includes('template-page-')) { var newTemplateId = handlebarTarget.attr('data-template-id').replace('template-page-', 'template-listview-mobile-'); handlebarTarget.attr('data-template-id', newTemplateId); getHandlebarsContent(feedUrl, handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); } } else if (w > 576 && !testMobileView && !moduleMode) { //set the grid view to active console.log('load grid view'); var gridViewButton = $('.view-selector > div:last-child'); var listViewButton = $('.view-selector > div:first-child'); if (gridViewButton && listViewButton && handlebarTarget) { gridViewButton.addClass('active'); listViewButton.removeClass('active'); if (!handlebarTarget.attr('data-template-id').includes('grid')) { console.log('not on this page: ' + handlebarTarget.attr('data-template-id')); if (handlebarTarget.attr('data-template-id').includes('template-page-')) { var newTemplateId = handlebarTarget.attr('data-template-id').replace('template-page-', 'template-page-grid-'); handlebarTarget.attr('data-template-id', newTemplateId); } else { handlebarTarget.attr('data-template-id', handlebarTarget.attr('data-template-id')); } } } getHandlebarsContent(feedUrl, handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); } else { getHandlebarsContent(feedUrl, handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); } //Element is detached } $('.dropdown-menu a.dropdown-toggle').on('click', function (e) { var $el = $(this); $el.toggleClass('active-dropdown'); var $parent = $(this).offsetParent(".dropdown-menu"); if (!$(this).next().hasClass('show')) { $(this).parents('.dropdown-menu').first().find('.show').removeClass("show"); } var $subMenu = $(this).next(".dropdown-menu"); $subMenu.toggleClass('show'); $(this).parent("li").toggleClass('show'); $(this).parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function (e) { $('.dropdown-menu .show').removeClass("show"); $el.removeClass('active-dropdown'); }); //if (!$parent.parent().hasClass('navbar-nav')) { // $el.next().css({ "top": $el[0].offsetTop, "left": $parent.outerWidth() - 4 }); //} return false; }); //console.log('scrollbar width: ' + getScrollbarWidth()); if ($('body').hasScrollBar()) { $('body').addClass('has-scroll'); } $('.nav-toggle-btn').on('click', function (event) { if ($('#sidebar').is(':visible')) { $('#sidebar').fadeOut("slow"); $('.animated-icon').toggleClass('open'); if ($('body').hasClass('menu-open')) { $('body').removeClass('menu-open'); $('.header').css("padding-right", "unset"); $('body').css("padding-right", "unset"); } } else { var maxHeight = $(window).height() - $('#sidebar').offset(); $('#sidebar').css({ "max-height": maxHeight }) $('#sidebar').fadeIn("slow"); $('.animated-icon').toggleClass('open'); scrollWidth = getScrollbarWidth().toString() + "px"; $('body').addClass('menu-open'); $('.header').css("padding-right", scrollWidth); $('body').css("padding-right", scrollWidth); } }); $('#search-bar').on('click', function () { // close sidebar if ($('.search-bar').hasClass('closed')) { $('.search-bar').removeClass('closed'); $(this).find($(".fas")).removeClass('fa-search').addClass('fa-times'); } else { $('.search-bar').addClass('closed'); $(this).find($(".fas")).removeClass('fa-times').addClass('fa-search'); } }); $('#top-search-bar').on('click', function () { // close sidebar if ($('.search-bar').hasClass('closed')) { $('.search-bar').removeClass('closed'); $(this).find($(".fas")).removeClass('fa-search').addClass('fa-times'); } else { $('.search-bar').addClass('closed'); $(this).find($(".fas")).removeClass('fa-times').addClass('fa-search'); } }); $('.umbraco-forms-field > input[type=text]').addClass('form-control'); document.addEventListener('scroll', function () { document.documentElement.dataset.scroll = window.scrollY; if (toTopBtn) { toggleToTopBtn(window.scrollY, toTopBtn); } }); $('.filter-controls.v2 .dropdown-menu li label').on('click', function (e) { e.stopPropagation(); }); $('.filter-container-v2 .dropdown-menu li label').on('click', function (e) { console.log('clicked label in dropdown'); e.stopPropagation(); }); if ($('.filter-controls.v2')) { $('.filter-controls.v2 .dropdown').on('show.bs.dropdown', function (e) { $(this).find('.dropdown-menu').first().stop(true, true).slideDown(300); }); $('.filter-controls.v2 .dropdown').on('hide.bs.dropdown', function (e) { $(this).find('.dropdown-menu').first().stop(true, true).slideUp(300); }); } /* OwlSlider for residence details */ var bigimage = $("#big"); var thumbs = $("#thumbs"); //var totalslides = 10; var syncedSecondary = true; if (bigimage && thumbs) { var slideCount = bigimage.attr('data-slide-count'); if (slideCount) { slideCount = parseInt(slideCount); if (slideCount > 6) { slideCount = 6; } } console.log('slideCount: ' + slideCount); bigimage .owlCarousel({ items: 1, lazyLoad: true, slideSpeed: 2000, nav: true, // autoplay: true, dots: false, loop: true, responsiveRefreshRate: 200, navText: [ "", "" ] }) .on("changed.owl.carousel", syncPosition); thumbs .on("initialized.owl.carousel", function () { thumbs .find(".owl-item") .eq(0) .addClass("current"); }) .owlCarousel({ items: slideCount, dots: false, nav: true, navText: [ "", "" ], smartSpeed: 200, slideSpeed: 500, slideBy: 6, responsiveRefreshRate: 100 }) .on("changed.owl.carousel", syncPosition2); function syncPosition(el) { //if loop is set to false, then you have to uncomment the next line //var current = el.item.index; //to disable loop, comment this block console.log(el); var count = el.item.count - 1; var current = Math.round(el.item.index - el.item.count / 2 - 0.5); if (current < 0) { current = count; } if (current > count) { current = 0; } //to this thumbs .find(".owl-item") .removeClass("current") .eq(current) .addClass("current"); var onscreen = thumbs.find(".owl-item.active").length - 1; console.log(onscreen) var start = thumbs .find(".owl-item.active") .first() .index(); var end = thumbs .find(".owl-item.active") .last() .index(); console.log(end); if (current > end) { thumbs.data("owl.carousel").to(current, 100, true); } if (current < start) { thumbs.data("owl.carousel").to(current - onscreen, 100, true); } } function syncPosition2(el) { if (syncedSecondary) { var number = el.item.index; bigimage.data("owl.carousel").to(number, 100, true); } } thumbs.on("click", ".owl-item", function (e) { e.preventDefault(); var number = $(this).index(); bigimage.data("owl.carousel").to(number, 300, true); }); } /* OwlSlider for residence details */ /* OwlSlider Gallery slider */ var gallerySlider = $(".gallery-slider"); var isVideo = false; if (gallerySlider) { gallerySlider.each(function () { isVideo = $(this).attr("data-contains-video"); $(this).owlCarousel({ items: 1, slideSpeed: 8000, nav: true, autoplay: false, dots: true, loop: true, videp: isVideo, lazyLoad: false, merge: true, responsiveRefreshRate: 200, navText: [ "", "" ] }); }); $('.owl-next, .owl-prev').mousedown(function () { var item = $('.owl-item.active .item-video .owl-video-frame > iframe'); if (item) { item.attr("src", item.attr("src")); } }) } /* OwlSlider Gallery slider end */ var vrWrappers = $('.vr-wrapper .collapse'); if (vrWrappers) { vrWrappers.each(function (index) { console.log('vr collapses: ' + $(this)); $(this).on('show.bs.collapse', function () { //console.log('open vr load embed: ' + $(this).attr('data-embed-id')); var embedId = $(this).attr('data-embed-id'); var testScript = ''; var testEmbed = '' var testFullEmbed = '
'; var embedFrame = '' var VrBody = $(this).find('.vr-body'); var vrHtml = ''; var framehtml = "''"; //VrBody.html(embedFrame); }); }); } var roomsCheckboxlist = $('#d2d7a2b4-0b2f-4e11-d861-3fe74add6f3b'); var priceLevelCheckboxlist = $('#a304f586-e60d-4b28-8909-ce55201dc53d'); const checboxConstraintsMap = new Map(); checboxConstraintsMap.set('a304f586-e60d-4b28-8909-ce55201dc53d_0', '1,2,3'); checboxConstraintsMap.set('a304f586-e60d-4b28-8909-ce55201dc53d_1', '1,2,3'); checboxConstraintsMap.set('a304f586-e60d-4b28-8909-ce55201dc53d_2', '1,2,3,4'); checboxConstraintsMap.set('a304f586-e60d-4b28-8909-ce55201dc53d_3', '3,4,5'); checboxConstraintsMap.set('a304f586-e60d-4b28-8909-ce55201dc53d_4', '3,4,5'); const checkedRoomsList = []; if (roomsCheckboxlist) { if (!roomsCheckboxlist.attr('data-rooms-select')) { console.log('add data rooms select'); roomsCheckboxlist.attr('data-rooms-select', ''); } var allCheckWraps = roomsCheckboxlist.find('input[type=checkbox]'); if (allCheckWraps) { console.log('this page has rooms checkboxlist with check-wraps: + ' + allCheckWraps.length); allCheckWraps.each(function (checkWrap) { roomsCheckboxlist.attr('data-rooms-select', checkedRoomsList.toString()); $(this).change(function () { // Check input( $( this ).val() ) for validity here var allCheckedRooms = roomsCheckboxlist.find('input[type=checkbox]:checked'); var currentCheckedString = ''; if (allCheckedRooms) { currentCheckedString = getCheckedValues(allCheckedRooms) //console.log('allCheckedRooms: ' + currentCheckedString); } disableCheckWrap(this, priceLevelCheckboxlist, checboxConstraintsMap, currentCheckedString); }); }); } } var areasCheckboxlist = $('.n1område .checkboxlist'); var allAreaChecboxes = areasCheckboxlist.find('input[type=checkbox]'); const sjællandAreas = ["Glumsø", "Holbæk", "Slagelse", "Sorø", "Viby Sj. (Roskilde)", "Ringsted"]; const jutlandAreas = ["Aarhus og omegn", "Ans By", "Fredericia", "Horsens", "Kolding", "Randers", "Silkeborg", "Vejle", "Viborg", "Støvring", "Nyborg"]; //if only jutland areas is selected leave the mail. //if Sjælland is also selected added the extra email. //if only sjælland is selected replace the mail var rentalTeamEmail = 'udlejningsteam@birchgm.dk'; console.log('checking areasCheckboxlist '); if (allAreaChecboxes) { allAreaChecboxes.each(function () { filterAreasByCity(areasCheckboxlist, sjællandAreas, jutlandAreas, rentalTeamEmail); $(this).change(function () { filterAreasByCity(areasCheckboxlist, sjællandAreas, jutlandAreas, rentalTeamEmail); }); }); } }); /* End of Doc ready */ var currentPageID = $("#dataFeed").attr("data-feedID"); function filterAreasByCity(areasCheckboxlist, sjællandAreas, jutlandAreas, rentalTeamEmail) { // Check input( $( this ).val() ) for validity here var allCheckedAreas = areasCheckboxlist.find('input[type=checkbox]:checked'); console.log('check allCheckedAreas:? ' + allCheckedAreas.length); const checkedAreasList = []; allCheckedAreas.each(function () { console.log('check this:? ' + $(this).val()); if ($(this).val() && $(this).val().length > 0) { var areaValue = $(this).val(); } checkedAreasList.push(areaValue); }); const sjællandFound = checkedAreasList.some(r => sjællandAreas.indexOf(r) >= 0); const jutlandFound = checkedAreasList.some(r => jutlandAreas.indexOf(r) >= 0); console.log('checkedAreasList: ' + checkedAreasList.toString()); console.log('sjællandFound: ' + sjællandFound); console.log('jutlandFound: ' + jutlandFound); if (jutlandFound && sjællandFound) { rentalTeamEmail = "udlejningsteam@birchgm.dk;wicbi@birchgm.dk;labda@birchgm.dk"; } if (jutlandFound && !sjællandFound) { rentalTeamEmail = "udlejningsteam@birchgm.dk"; } if (!jutlandFound && sjællandFound) { rentalTeamEmail = "wicbi@birchgm.dk;labda@birchgm.dk"; } var rentalteamemailInput = document.querySelector('.rentalteamemail input'); console.log('.rentalteamemail input: ' + rentalteamemailInput.value); rentalteamemailInput.value = rentalTeamEmail; } function getCheckedValues(allCheckedRooms) { const checkedRoomsList = []; allCheckedRooms.each(function () { if ($(this).val() && $(this).val().length > 0) { var roomValue = $(this).val().substring(0, 1); } checkedRoomsList.push(roomValue); }); return checkedRoomsList.toString(); } function disableCheckWrap(elem, priceLevelCheckboxlist, checboxConstraintsMap, currentCheckedString) { //console.log('disable check wrap'); var priceLevelCheckboxes = priceLevelCheckboxlist.find('input[type=checkbox]'); const disableList = []; if (priceLevelCheckboxes) { $.each(priceLevelCheckboxes, function (index, thisCheckbox) { //console.log('priceLevel checkbox: + ' + $(thisCheckbox).attr('id')); if (checboxConstraintsMap) { var mapConstraints = checboxConstraintsMap.get($(thisCheckbox).attr('id')); //console.log('priceLevel constraint: + ' + checboxConstraintsMap.get($(this).attr('id'))); const checkedList = currentCheckedString.split(","); if (checkedList) { $.each(checkedList, function (index, thisCheckedList) { if (mapConstraints.includes(thisCheckedList.toString())) { if (!disableList.includes($(thisCheckbox).attr('id'))) { disableList.push($(thisCheckbox).attr('id')); } } }); } } }); $.each(priceLevelCheckboxes, function (index, thisCheckbox2) { console.log('disableList: ' + disableList.toString()); if (!disableList.includes($(thisCheckbox2).attr('id'))) { console.log('disable thisCheckbox2: ' + $(thisCheckbox2).attr('id')); if (!$(thisCheckbox2).prop("disabled")) { $(thisCheckbox2).prop("disabled", true); $(thisCheckbox2).parent().addClass('disabled'); } } else { if ($(this).prop("disabled")) { $(this).prop("disabled", false); $(this).parent().removeClass('disabled'); } } }); } } function toggleToTopBtn(windowYScroll, thisToTopBtn) { if (windowYScroll > 900) { if (!thisToTopBtn.classList.contains("display")) { thisToTopBtn.classList.add('display'); } } else { if (thisToTopBtn.classList.contains("display")) { thisToTopBtn.classList.remove('display'); } } } function initiateOwlSiders(elements) { elements.each(function () { console.log('init slider on this residence'); var thisSlider = $(this); if (thisSlider) { thisSlider .owlCarousel({ items: 1, lazyLoad: true, //onInitialized: initCallback, slideSpeed: 8000, nav: true, autoplay: false, dots: false, loop: true, responsiveRefreshRate: 200, navText: [ "", "" ] }); } }); } function initCallback(event) { var sliderTarget = event.target; if (sliderTarget) { sliderTarget.style.display = "table"; } } $(window).on("load", function () { //check if page has gridlist if ($('.card.scaled').length) { setTimeout(function () { $('.card.scaled').each(function () { if ($(this).hasClass('scaled')) { $(this).removeClass('scaled'); } }) }, 500) } var svgSelector = $('.residence-svg-selector'); var svgDatafeedString = svgSelector.attr('data-feed-string'); if (svgSelector && svgDatafeedString) { $.getJSON(svgDatafeedString, function (data) { var residencesListData = data.residencesData; //residencesListData.each(function (i) { // console.log('residence: ' + i + $(this)); //}); $.each(residencesListData, function (i) { //console.log('residence: ' + i + ': ' + residencesListData[i].StreetNumber); var streetNo = residencesListData[i].StreetNumber; var vacancy = residencesListData[i].Vacancy; var street = residencesListData[i].Street.trimEnd(); //console.log('residence: ' + i + JSON.stringify($(this))); console.log('street: ' + street); var resMatch = svgSelector.find(`[data-name='${streetNo}']`); console.log('resMatch.length: ' + resMatch.length); if (resMatch && !resMatch.length > 0) { console.log('try with streetname: '); resMatch = svgSelector.find(`[data-name='${street + "#" + streetNo}']`); console.log('resMatch.length after: ' + resMatch.length); } if (resMatch) { //setup onclick event console.log('* match found: ' + streetNo + ' vacancy: ' + vacancy); resMatch.on('click', function (e) { var popup = svgSelector.find('#popup-template'); if (popup) { popup.removeClass('open'); } openSvgResidencePopup(residencesListData[i], $('#popup-template'), e, svgDatafeedString); }); if (vacancy == 'vacant') { console.log('* add vacant'); resMatch.addClass('vacant'); } else if (vacancy == 'not-vacant') { resMatch.addClass('not-vacant'); } else if (vacancy == 'reserved') { resMatch.addClass('reserved'); } } }); }); } }); function openSvgResidencePopup(jsonResidence, popupElem, e, svgDatafeedString) { //alert('open popup'); var e = e || window.event; var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var topPos = 0; var leftPos = 0; var cssPos = 'absolute'; if (w < 992) { cssPos = 'relative'; } //Y axis if (e.clientY <= (h * 0.2)) { console.log('upper top half:'); //console.log('e.clientY: ' + e.clientY); //console.log('h * 0.2: ' + (h * 0.2)); console.log('popupElem.height(): ' + $(popupElem).height()); topPos = e.clientY + 450; } if (e.clientY > (h * 0.20) && e.clientY < (h * 0.5)) { console.log('upper half:'); //console.log('h * 0.2: ' + (h * 0.2)); //console.log('h * 0.5: ' + (h * 0.5)); topPos = (e.clientY / 2); } if (e.clientY > (h * 0.5) && e.clientY < (h * 0.8)) { console.log('lower half:'); //console.log('e.clientY: ' + e.clientY); //console.log('h * 0.5: ' + (h * 0.5)); //console.log('h * 0.8: ' + (h * 0.8)); topPos = + (e.clientY / 3); } if (e.clientY >= (h * 0.8)) { console.log('lower bottom half:'); //console.log('e.clientY: ' + e.clientY); //console.log('h * 0.8: ' + (h * 0.8)); topPos = + (e.clientY / 2) - 400; } //Y axis //X axis if (e.clientX < (w * 0.2)) { console.log('left most half:'); leftPos = e.clientX; } if (e.clientX > (w * 0.2) && e.clientX < (w * 0.5)) { console.log('left half'); leftPos = (w / 2) - (e.clientX / 2); } if (e.clientX > (w * 0.5) && e.clientX < (w * 0.8)) { console.log('right half'); leftPos = (e.clientX / 3); } if (e.clientX > (w * 0.8)) { console.log('right most half'); leftPos = (e.clientX / 2); } //X axis var openleft = false; if (e.clientX > (w / 2)) { openleft = true; } if (w < 992) { cssPos = 'relative'; leftPos = 0; topPos = 0; } else { leftPos = 'calc(50% - 150px)'; topPos = 'calc(50% - 200px)'; cssPos = 'fixed'; } console.log('MousePos X: ' + e.clientX + 'MousePos Y: ' + e.clientY); //console.log('screenX: ' + e.screenX + 'screenY: ' + e.screenY); //console.log('screenH: ' + h); //console.log('calc - Y: ' + (e.clientY - e.screenY)); //console.log('calc + Y: ' + (e.clientY + e.screenY)); if (!popupElem.hasClass('open')) { var dataFeedUrl = svgDatafeedString + '&streetno=' + jsonResidence.StreetNumber; if (dataFeedUrl.includes('&street=')) { dataFeedUrl = dataFeedUrl.replace('&street=', ('&street=' + jsonResidence.Street)); } else { dataFeedUrl + '&street=' + jsonResidence.Street; } //console.log('templateId: ' + popupElem.attr('data-template-id')); //console.log('id: ' + popupElem.attr('id')); getHandlebarsContent(dataFeedUrl, popupElem.attr('data-template-id'), popupElem.attr('id')) popupElem.addClass('open'); popupElem.css({ 'top': topPos, 'left': leftPos, 'position': cssPos, 'justify-content': 'unset' }); if (w < 992) { $('html, body').animate({ scrollTop: ($(popupElem).offset().top - 150) }, 600); } } } function rowClick(row) { window.location = $(row).attr('data-url'); } function filterSelection(input, button) { var currentSelection = []; var action = ''; var selectButtons = document.querySelectorAll(".filter-buttons > .btn.selected"); if (selectButtons && selectButtons.length > 0) { selectButtons.forEach(function (btnElem) { currentSelection.push(btnElem.getAttribute('data-filter-id')); }); } if (button.classList.contains('selected')) { button.classList.remove('selected'); action = 'remove'; } else { button.classList.add('selected'); action = 'add'; } var matches = document.querySelectorAll(".newslist-rows > div > div"); if (matches) { matches.forEach(function (elem) { elem.classList.remove('show'); if (action == "remove" && selectButtons.length == 1) { console.log('remove last and show all' + currentSelection); elem.classList.add('show'); if (!elem.classList.contains('silde-in-and-up')) { elem.classList.add('silde-in-and-up'); } } else { if (elem.getAttribute('data-filter-tag') == input && !currentSelection.includes(elem.getAttribute('data-filter-tag'))) { elem.classList.add('show'); if (!elem.classList.contains('silde-in-and-up')) { elem.classList.add('silde-in-and-up'); } } if (elem.getAttribute('data-filter-tag') != input && currentSelection.includes(elem.getAttribute('data-filter-tag'))) { elem.classList.add('show'); if (!elem.classList.contains('silde-in-and-up')) { elem.classList.add('silde-in-and-up'); } } } }); } } function sortColumn(colIndex, elem) { if (colIndex) { console.log('th col click index: ' + colIndex); var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') const currentUrl = new URL(currentFeedUrl); if (!currentUrl.searchParams.has('sort')) { currentUrl.searchParams.append('sort', colIndex); currentUrl.searchParams.append('sortdirection', '1'); } else if (currentUrl.searchParams.has('sort')) { if (currentUrl.searchParams.has('sortdirection')) { var sortDirection = currentUrl.searchParams.get('sortdirection'); console.log('sortdirection: ' + sortDirection); if (sortDirection == "1") { sortDirection = "2"; } else if (sortDirection == "2") { sortDirection = "1"; } currentUrl.searchParams.set('sortdirection', sortDirection); } else { //currentUrl.searchParams.append('sortdirection', '1'); } currentUrl.searchParams.set('sort', colIndex); } $('#handlebars-residences-filter').attr('data-feed-url', decodeURIComponent(currentUrl.href)) var handlebarTarget = $('#handlebars-residences-filter'); getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); //var buttons = $('.sort-btn'); //var clickedButton = $(elem); //if (clickedButton) { // console.log('disable all the buttons'); // disableAllActivesSetClick(clickedButton); //} } } (function ($) { $.fn.hasScrollBar = function () { return this.get(0).scrollHeight > this.height(); } })(jQuery); function getScrollbarWidth() { return window.innerWidth - document.documentElement.clientWidth; } // drawings grid lightbox // Open the Modal function openModal() { document.getElementById("drawingsModal").style.display = "block"; } function changeViewTemplate(templateId, elem) { var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var selectorButtons = $('.view-selector > div'); selectorButtons.each(function () { console.log('button: '); var thisButton = $(this); if (thisButton.hasClass('active')) { thisButton.removeClass('active'); } }); var clickedSource = $(elem); if (!clickedSource.hasClass('active')) { clickedSource.addClass('active'); } if ($('body').find('#handlebars-residences-filter').length > 0) { var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') //Element is detached var handlebarTarget = $('#handlebars-residences-filter'); var handlebarTemplateId = handlebarTarget.attr('data-template-id'); if (handlebarTemplateId != templateId) { if (w < 576 && templateId.includes('template-page-') && templateId != 'template-page-grid-1403') { templateId = templateId.replace('template-page-', 'template-listview-mobile-'); } handlebarTemplateId = templateId; handlebarTarget.attr('data-template-id', templateId); } getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTemplateId, handlebarTarget.attr('id')); } } // Close the Modal function closeModal() { document.getElementById("drawingsModal").style.display = "none"; } var slideIndex = 1; showSlides(slideIndex); initModalSlides(slideIndex); // Next/previous controls function plusSlides(n) { console.log('plus slides'); showSlides(slideIndex += n); } function plusRealSlides(n, sliderId) { console.log('sliderId: ' + sliderId); showRealSlides(slideIndex += n, sliderId); } // Thumbnail image controls function currentSlide(n) { showSlides(slideIndex = n); } function sendEmbeddata(embedSrc) { if (embedSrc !== 'undefined' && embedSrc != null) { var framehtml = "''"; $("#videoframecontainer").html(framehtml); console.log('Send embed: ' + embedSrc); } } $("#videoModal").on('hide.bs.modal', function () { $(this).find('#videoframecontainer').empty(); }); $("#resVideoModal").on('hide.bs.modal', function () { $("#resVideoModal iframe").attr("src", $("#resVideoModal iframe").attr("src")); }); $("#residence-video-modal").on('hide.bs.modal', function () { $("#residence-video-modal iframe").attr("src", $("#residence-video-modal iframe").attr("src")); }); function disableAllActivesSetClick(clickedElement) { console.log('disableAllActivesSetClick'); console.log('clickedElement: ' + clickedElement.text()); var selectorButtons = $('.sort-btn'); selectorButtons.each(function () { console.log('do ti: '); var thisElement = $(this); if (thisElement.hasClass('active')) { //thisElement.removeClass('active'); } }); if (clickedElement) { if (!clickedElement.hasClass('active')) { clickedElement.addClass('active'); } } } function showSlides(n) { var i; var slides = document.getElementsByClassName("mySlides"); console.log('show slides'); if (slides.length > 0) { console.log('slides.length: ' + slides.length); var dots = document.getElementsByClassName("demo"); var captionText = document.getElementById("caption"); if (n > slides.length) { slideIndex = 1 } if (n < 1) { slideIndex = slides.length } for (i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } for (i = 0; i < dots.length; i++) { dots[i].className = dots[i].className.replace(" active", ""); } slides[slideIndex - 1].style.display = "block"; dots[slideIndex - 1].className += " active"; captionText.innerHTML = dots[slideIndex - 1].alt; } } function showRealSlides(n, sliderId) { var i; var newSliderElement; if (sliderId) { newSliderElement = document.getElementById(sliderId); } if (newSliderElement) { console.log('show real slides'); // Do stuff here console.log('new slider: ' + newSliderElement.tagName); var slides = newSliderElement.getElementsByClassName("modal-img-slide"); if (slides.length > 0) { console.log('slides.length: ' + slides.length); if (n > slides.length) { slideIndex = 1 } if (n < 1) { slideIndex = slides.length } for (i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } slides[slideIndex - 1].style.display = "block"; } } } function initModalSlides(n) { var i; var newSliderElements; if (document.getElementsByClassName("modal-slide-container")) { newSliderElements = document.getElementsByClassName("modal-slide-container"); } if (newSliderElements) { console.log('show real slides'); Array.prototype.forEach.call(newSliderElements, function (newSliderElement) { // Do stuff here console.log('new slider: ' + newSliderElement.tagName); var slides = newSliderElement.getElementsByClassName("modal-img-slide"); if (slides.length > 0) { console.log('slides.length: ' + slides.length); if (n > slides.length) { slideIndex = 1 } if (n < 1) { slideIndex = slides.length } for (i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } slides[slideIndex - 1].style.display = "block"; } }); } } //residence slider swipe $('#residence-slider').on("touchstart", function (event) { console.log('touching'); var xClick = event.originalEvent.touches[0].pageX; $(this).one("touchmove", function (event) { var xMove = event.originalEvent.touches[0].pageX; if (Math.floor(xClick - xMove) > 5) { $(this).carousel('next'); } else if (Math.floor(xClick - xMove) < -5) { $(this).carousel('prev'); } }); $(".carousel").on("touchend", function () { $(this).off("touchmove"); }); }); //youtube modal // Close the Modal $('.modal-header').find('.close').on('click', function () { console.log('closing modal'); $(this).closest('.youtube-modal').hide(); }); $('.youtube-embed-popup div').find('img').on('click', function () { $('.youtube-modal').show(); }); //GET COOKIE function getCookie(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function removeFilter(url, filter) { } function updateFilter(url, filter) { } function updateFeedUrl(filterName, filterValue, checked) { console.log('updateFeedUrl checked : ' + checked); var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') const currentUrl = new URL(currentFeedUrl); if (!currentUrl.searchParams.has(filterName) && checked) { currentUrl.searchParams.append(filterName, filterValue); } else if (currentUrl.searchParams.has(filterName) && checked) { var params = currentUrl.searchParams.get(filterName); var results = params.split(','); console.log('types is found and checked :'); //find out if the current type has the same value as passed in values console.log('params :' + params + ' filterValue : ' + filterValue); if (!params == filterValue || !results.includes(filterValue)) { console.log('current parameters is not found :' + params); results.push(filterValue); } var newParams = results.join(','); currentUrl.searchParams.set(filterName, newParams); } else if (currentUrl.searchParams.has(filterName) && !checked) { var params = currentUrl.searchParams.get(filterName); var results = params.split(','); console.log('delete this types matching value :'); //get all the valuys and if remove the matching value results.splice(results.indexOf(filterValue), 1); if (results.length == 0) { currentUrl.searchParams.delete(filterName); } else { var newParams = results.join(','); currentUrl.searchParams.set(filterName, newParams); } } //if it has the type update the type value $('#handlebars-residences-filter').attr('data-feed-url', decodeURIComponent(currentUrl.href)) var handlebarTarget = $('#handlebars-residences-filter'); getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); } function setFeedUrl(filterName, filterValue, checked) { console.log('updateFeedUrl checked : ' + checked); var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') const currentUrl = new URL(currentFeedUrl); if (!currentUrl.searchParams.has(filterName) && checked) { currentUrl.searchParams.append(filterName, filterValue); } else if (currentUrl.searchParams.has(filterName) && checked) { var params = currentUrl.searchParams.get(filterName); var results = params.split(','); console.log('types is found and checked :'); //find out if the current type has the same value as passed in values console.log('params :' + params + ' filterValue : ' + filterValue); if (!params == filterValue || !results.includes(filterValue)) { console.log('current parameters is not found :' + params); results.push(filterValue); } var newParams = results.join(','); currentUrl.searchParams.set(filterName, newParams); } else if (currentUrl.searchParams.has(filterName) && !checked) { var params = currentUrl.searchParams.get(filterName); var results = params.split(','); console.log('delete this types matching value :'); //get all the valuys and if remove the matching value results.splice(results.indexOf(filterValue), 1); if (results.length == 0) { currentUrl.searchParams.delete(filterName); } else { var newParams = results.join(','); currentUrl.searchParams.set(filterName, newParams); } } //if it has the type update the type value $('#handlebars-residences-filter').attr('data-feed-url', decodeURIComponent(currentUrl.href)) } function updateFeed() { console.log('updateFeed'); var handlebarTarget = $('#handlebars-residences-filter'); getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); var element = document.getElementById("filter-wrapper"); element.classList.remove("Show-filter"); var frontpageEls = document.getElementsByClassName("frontpage"); frontpageEls[0].classList.remove("mm-ocd-opened"); } function updateFeedUrl_V3(filterName, filterValue, checked, inputElement) { var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') const currentUrl = new URL(currentFeedUrl); if (!currentUrl.searchParams.has(filterName) && checked) { currentUrl.searchParams.append(filterName, filterValue); } else if (currentUrl.searchParams.has(filterName) && checked) { var params = currentUrl.searchParams.get(filterName); var results = params.split(','); console.log('types is found and checked :'); //find out if the current type has the same value as passed in values console.log('params :' + params + ' filterValue : ' + filterValue); if (!params == filterValue || !results.includes(filterValue)) { console.log('current parameters is not found :' + params); results.push(filterValue); } var newParams = results.join(','); currentUrl.searchParams.set(filterName, newParams); } else if (currentUrl.searchParams.has(filterName) && !checked) { var params = currentUrl.searchParams.get(filterName); var results = params.split(','); console.log('delete this types matching value :'); //get all the valuys and if remove the matching value results.splice(results.indexOf(filterValue), 1); if (results.length == 0) { currentUrl.searchParams.delete(filterName); } else { var newParams = results.join(','); currentUrl.searchParams.set(filterName, newParams); } } //if it has the type update the type value if (filterName == 'cities') { var cityParams = currentUrl.searchParams.get(filterName); var areaIdsToRemove = checkAreaSelections(cityParams); var areaParams = currentUrl.searchParams.get('areas'); if (areaParams) { var results = areaParams.split(','); for (var i = 0; i < areaIdsToRemove.length; i++) { if (results.includes(areaIdsToRemove[i])) { results.splice(results.indexOf(areaIdsToRemove[i]), 1); } } currentUrl.searchParams.set('areas', results.toString()); } } var dropdownToUpdate = $(inputElement).closest('.dropdown-menu'); if (dropdownToUpdate) { //alert('update dropdown indicator: ' + dropdownToUpdate.attr('class')); updateDropdownIndicator(dropdownToUpdate); } document.cookie = "dataFeed" + currentPageID + "=" + decodeURIComponent(currentUrl.href) + "; SameSite=None; Secure"; //sessionStorage.setItem('dataFeed', currentUrl); $('#handlebars-residences-filter').attr('data-feed-url', decodeURIComponent(currentUrl.href)); var handlebarTarget = $('#handlebars-residences-filter'); getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); } function resetFeedUrl(currentFeedUrl) { console.log('resetFeedUrl :'); /*var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url');*/ const currentUrl = new URL(currentFeedUrl); $('#handlebars-residences-filter').attr('data-feed-url', decodeURIComponent(currentUrl.href)) console.log('currentUrl :' + currentUrl); var handlebarTarget = $('#handlebars-residences-filter'); resetFeedSelections(); getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); document.cookie = "dataFeed" + currentPageID + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=None; Secure"; //sessionStorage.removeItem('dataFeed'); //sessionStorage.removeItem('dataAreaSliders'); //sessionStorage.removeItem('dataRentSliders'); //sessionStorage.removeItem('dataPageNumber'); } function resetFeedSelections() { //console.log('resetFeedSelections :'); /*var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url');*/ var dropdownMenusToUpdate = $('.filter-container-v2 .dropdown .dropdown-menu'); if (dropdownMenusToUpdate) { //console.log('dropdownMenusToUpdate :' + dropdownMenusToUpdate); $(dropdownMenusToUpdate).each(function () { //console.log('dropdownMenusToUpdate :'); resetDropdownChecks($(this)); }); //updateDropdownIndicator(dropdownToUpdate); } } function checkAreaSelections(cityParams, currentUrl) { var areaDropdown = $('.filter-container-v2 > .dropdown:nth-child(2)'); if (areaDropdown) { var inputs = areaDropdown.find("input[type=checkbox]"); var areaIdsToRemove = []; if (inputs) { $(inputs).each(function () { //console.log('found input: ' + $(this).attr('data-city-id')); var liMatch = $(this).closest('li'); if (cityParams) { var results = cityParams.split(','); if (results && !results.includes($(this).attr('data-city-id'))) { //if results do not include area city id, hide it from dropdown //areaIdsToRemove.push($(this).val()); addLiMatch(this, liMatch) var checked = $(this).prop("checked"); if (checked) { $(this).prop("checked", false); areaIdsToRemove.push($(this).val()); } } else if (results && results.includes($(this).attr('data-city-id'))) { removeLiMatch(this, liMatch); } } else { removeLiMatch(this, liMatch); } }); } } return areaIdsToRemove; } function removeLiMatch(input, liMatch) { if (liMatch && liMatch.hasClass('hide')) { liMatch.removeClass('hide'); } var dropdownToUpdate = $(input).closest('.dropdown-menu'); if (dropdownToUpdate) { updateDropdownIndicator(dropdownToUpdate); } } function addLiMatch(input, liMatch) { if (liMatch && !liMatch.hasClass('hide')) { liMatch.addClass('hide'); } var dropdownToUpdate = $(input).closest('.dropdown-menu'); if (dropdownToUpdate) { updateDropdownIndicator(dropdownToUpdate); } } function resetDropdownChecks(dropdown) { if (dropdown) { var checkedBoxes = $(dropdown).find("input[type=checkbox]:checked"); var thisIndicator = $(dropdown).parent(); $(checkedBoxes).each(function () { $(this).prop("checked", false); }); if (thisIndicator) { var theRealIndic = thisIndicator.find('.dropdown-toggle > .select-indicator'); theRealIndic.text(''); } } } function updateDropdownIndicator(dropdown) { //console.log('updateDropdownIndicator class: ' + $(dropdown).attr('class')); if (dropdown) { //console.log('updateDropdownIndicator exists'); var checkedBoxes = $(dropdown).find("input[type=checkbox]:checked"); var thisIndicator = $(dropdown).parent(); let counter = 0; //console.log('checkedBoxes exists: ' + checkedBoxes.length); $(checkedBoxes).each(function () { counter++; //console.log('found checked checkbox' + $(this).val()); }); if (thisIndicator) { var theRealIndic = thisIndicator.find('.dropdown-toggle > .select-indicator'); if (counter == 0) { theRealIndic.text(''); } else { theRealIndic.text('(' + counter + ')'); } } } } $('#collapse-01').on('hide.bs.collapse', function (e) { // do something… // console.log('close hit me!'); $.each($('#collapse-01 input:checkbox.hideme'), function () { // console.log('check: ' + $(this).attr("name")); $(this).hide(); $("label[for='" + $(this).attr("name") + "']").hide(); }); }) $('#collapse-01').on('show.bs.collapse', function (e) { // do something… // console.log('open hit me!'); $.each($('#collapse-01 input:checkbox.hideme'), function () { console.log('check: ' + $(this).attr("name")); $(this).show(); $("label[for='" + $(this).attr("name") + "']").show(); }); }) $('#collapse-69').on('hide.bs.collapse', function (e) { // do something… // console.log('close hit me!'); $.each($('#collapse-69 input:checkbox.hideme'), function () { // console.log('check: ' + $(this).attr("name")); $(this).hide(); $("label[for='" + $(this).attr("name") + "']").hide(); }); }) $('#collapse-69').on('show.bs.collapse', function (e) { // do something… // console.log('open hit me!'); $.each($('#collapse-69 input:checkbox.hideme'), function () { console.log('check: ' + $(this).attr("name")); $(this).show(); $("label[for='" + $(this).attr("name") + "']").show(); }); }) function updatePageNumberFeedUrl(value) { console.log('update pagenumber feed url on page: ' + value); var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') const currentUrl = new URL(currentFeedUrl); if (!currentUrl.searchParams.has('pagenumber')) { currentUrl.searchParams.append('pagenumber', value); } else if (currentUrl.searchParams.has('pagenumber')) { currentUrl.searchParams.set('pagenumber', value); } $('#handlebars-residences-filter').attr('data-feed-url', decodeURIComponent(currentUrl.href)) var handlebarTarget = $('#handlebars-residences-filter'); getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); document.cookie = "dataFeed" + currentPageID + "=" + handlebarTarget.attr('data-feed-url') + "; SameSite=None; Secure"; //scroll to page top var elmnt = document.getElementById("filter-scrollto"); elmnt.scrollIntoView({ behavior: 'smooth' }); window.scrollTo({ top: 0, behavior: 'smooth' }); } function scrollToPageTop() { console.log('scroll to page top'); window.scrollTo({ top: 0, behavior: 'smooth' }); } function scrollToCity(value) { var elmnt = document.getElementById(value); elmnt.scrollIntoView({ behavior: 'smooth', top: '120' }); } function getHandlebarsContent(contentFeedUrl, templateId, targetId, filters) { var loaderId = targetId + "-loader"; $("#" + targetId).html(""); //contentFeedUrl += "&PageNum=" + pages; //pages++; if (!templateId.includes('grid') && templateId != 'template-residence-popup') { console.log('template is table'); const currentUrl = new URL(contentFeedUrl); if (!currentUrl.searchParams.has('feedview')) { currentUrl.searchParams.append('feedview', 'table'); } else if (currentUrl.searchParams.has('feedview')) { currentUrl.searchParams.set('feedview', 'table'); } contentFeedUrl = decodeURIComponent(currentUrl.href); } console.log("contentFeedUrl: " + contentFeedUrl + " - templateId: " + templateId + " - targetId: " + targetId); var slingshot = function (contentFeedUrl, tplId, targetId) { $.getJSON(contentFeedUrl, function (data) { var template = $(tplId).html(); var compiledData = ""; console.log("wtf:" + tplId); //for (var i = 0; i < data[0].Results.length; i++) { // console.log("----12-----"); // console.log(""+data[0]); // console.log("----2-----"); //compiledData += Handlebars.compile(template)(data[0].Results[i]); //} compiledData += Handlebars.compile(template)(data); //console.log(data.length); $(targetId).html(compiledData); }) .done(function (data) { //console.log("----"); //console.log("data-length" + data); //console.log("----"); //console.log(data); //data-feed-url="https://www.birchejendomme.dk/test-bolig-feed/" //if (data[0].current === data[0].total) { // $('.load-more-button').remove(); //} $('#' + loaderId).remove(); var selectorButtons = $('.sort-btn'); if (selectorButtons) { var dataSort = data.Sort; selectorButtons.each(function (index) { var thisButton = $(this); if (contentFeedUrl.includes('sort')) { //console.log(dataSort); if (dataSort == index + 1) { //console.log('i am acitve: ' + index); if (!thisButton.hasClass('active')) { thisButton.addClass('active'); } } else { if (thisButton.hasClass('active')) { thisButton.removeClass('active'); } } } }); } //Get all residence-carousel and init owl-slider on them var residenceSliders = $(".residence-carousel"); if (residenceSliders) { initiateOwlSiders(residenceSliders); } var residencePopupContainer = $('#popup-template') if (residencePopupContainer) { var closeBtn = residencePopupContainer.find('#plus-circle'); closeBtn.on('click', function () { residencePopupContainer.removeClass('open'); var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if (w < 991) { $('html, body').animate({ scrollTop: ($('#carouselExampleControls').offset().top - 150) }, 600); } }); } console.log('done loading handles: '); }); }; slingshot(contentFeedUrl, '#' + templateId, '#' + targetId); // since url = 'data.json' , we can use both notations. } if ($('.number-animator').length) { //console.log('this page has number animators'); $(window).on('resize scroll', function () { //console.log('scroll'); $('.number-animator').each(function () { currentNumberAnimator = $(this); var activeCount = $(this).attr('id'); var startCount = $(this).attr('data-start-number'); //console.log('startCount: ' + startCount); if (isInViewport($(this))) { var isAnimated = $(this).attr('data-has-animated'); if (isAnimated == 'false') { var thisCount = currentNumberAnimator.find('.count'); //console.log('animate this count ' + thisCount); thisCount.prop('Counter', startCount).animate({ Counter: thisCount.text() }, { duration: 2000, easing: 'swing', step: function (now) { thisCount.text(Math.ceil(now)); } }); } $(this).attr('data-has-animated', 'true'); } }); }); } if ($('.newslist-rows.slide-v1').length || $('main .overlay-wrapper') || $('.load-slide-up')) { var fullWidthImages = $('main .overlay-wrapper'); var slideUpMods = $('.load-slide-up'); var slideUpMods2 = $('.load-slide-up-2'); if (slideUpMods) { slideUpMods.each(function (i, el) { var el = $(el); if (isInViewport(el)) { el.addClass("slide-in-and-up"); } }); } if (fullWidthImages) { fullWidthImages.each(function (i, el) { var el = $(el); if (isInViewport(el)) { el.addClass("reveal"); } }); } console.log('this is eventlist v3 slidein'); var allMods = $('.newslist-rows.slide-v1 > .row > div'); allMods.each(function (i, el) { var el = $(el); if (isInViewport(el)) { el.addClass("slide-in-and-up"); } }); $(window).on('resize scroll', function () { allMods.each(function (i, el) { var el = $(el); if (isInViewport(el)) { el.addClass("slide-in-and-up"); } }); fullWidthImages.each(function (i, el) { var el = $(el); if (isInViewport(el)) { el.addClass("reveal"); } }); slideUpMods.each(function (i, el) { var el = $(el); if (isInViewport(el)) { el.addClass("slide-in-and-up"); } }); if (slideUpMods2) { slideUpMods2.each(function (i, el) { var el = $(el); if (isInViewport(el)) { el.addClass("slide-in-and-up-2"); } }); } }); } function elementInViewport(element) { var bounding = element; if (bounding.top >= 0 && bounding.left >= 0 && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight)) { console.log('Element is in the viewport!'); } else { console.log('Element is NOT in the viewport!'); } } function isInViewport(animateitem) { var elementTop = animateitem.offset().top; if ($(window).width() < 767) { //console.log('elementTop: ' + elementTop); } var elementBottom = elementTop + (animateitem.outerHeight() / 2); var viewportTop = $(window).scrollTop(); var viewportBottom = viewportTop + $(window).height(); return elementTop > viewportTop && elementBottom < viewportBottom; return elementBottom < viewportBottom; }; //$(window).on('resize scroll', function () { // console.log('scroll'); // $('.number-animator').each(function () { // var activeCount = $(this).attr('id'); // console.log('count'); // console.log('active count' + activeCount); // //$(this).prop('Counter', start).animate({ // // Counter: $(this).text() // //}, { // // duration: 2000, // // easing: 'swing', // // step: function (now) { // // $(this).text(Math.ceil(now)); // // } // // }); // }); //}); // ------------------------------------------------------------------------------------------------------------------------------------------------------ // NoUiSlider -------------------------------------------------------------------------------------------------------------------------------------- function handleSliderUpdate(start1) { } //get filter link url function function copyFilterUrlToCB() { //var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') var currentFeedUrl = document.getElementById("handlebars-residences-filter").getAttribute('data-feed-url'); if (currentFeedUrl.includes('/bolig-feed/') && currentFeedUrl.length > 12) { currentFeedUrl = currentFeedUrl.replace('/bolig-feed/', '/find-bolig/'); } document.getElementById("generated-filter-url").value = currentFeedUrl; } //filter-wrapper $('#filter-wrapper').on('change', function () { // do stuff console.log('filter-wrapper class change'); }); //var slider = document.getElementById('areasize-slider-1'); var sliders = document.getElementsByClassName("area-slider"); Array.prototype.forEach.call(sliders, function (slider) { if (slider !== 'undefined' && slider != null) { slider.noUiSlider.on('change', function (values, handle) { checkSliderIndicator(slider, values); //var strippedValues = values[0].substring(0, values[0].length - 2) + "," + values[1].substring(0, values[1].length - 2); //console.log('strippedValues : ' + strippedValues); var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') //console.log('currentFeedUrl :' + currentFeedUrl); const currentUrl = new URL(currentFeedUrl); if (!currentUrl.searchParams.has("areasize") && values !== 'undefined') { currentUrl.searchParams.append("areasize", values); } if (currentUrl.searchParams.has("areasize") && values !== 'undefined') { currentUrl.searchParams.set("areasize", values); } document.cookie = "dataFeed" + currentPageID + "=" + currentUrl + "; SameSite=None; Secure"; $('#handlebars-residences-filter').attr('data-feed-url', decodeURIComponent(currentUrl.href)) var handlebarTarget = $('#handlebars-residences-filter'); getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); }); } }); //var rentslider = document.getElementById('rent-slider-1'); var rentSliders = document.getElementsByClassName("rent-slider"); Array.prototype.forEach.call(rentSliders, function (rentslider) { if (rentslider !== 'undefined' && rentslider != null) { rentslider.noUiSlider.on('change', function (values, handle) { //var strippedValues = values[0].replace(' DKK', '') + "," + values[1].replace(' DKK', ''); checkSliderIndicator(rentslider, values); var currentFeedUrl = $('#handlebars-residences-filter').attr('data-feed-url') const currentUrl = new URL(currentFeedUrl); if (!currentUrl.searchParams.has("rent") && values !== 'undefined') { currentUrl.searchParams.append("rent", values); } if (currentUrl.searchParams.has("rent") && values !== 'undefined') { currentUrl.searchParams.set("rent", values); } document.cookie = "dataFeed" + currentPageID + "=" + currentUrl + "; SameSite=None; Secure"; $('#handlebars-residences-filter').attr('data-feed-url', decodeURIComponent(currentUrl.href)) var handlebarTarget = $('#handlebars-residences-filter'); getHandlebarsContent(handlebarTarget.attr('data-feed-url'), handlebarTarget.attr('data-template-id'), handlebarTarget.attr('id')); }); } }); function checkSliderIndicator(slider, values) { sliderMin = slider.getAttribute('data-slider-start'); sliderMax = slider.getAttribute('data-slider-end'); if (parseInt(values[0]) > parseInt(sliderMin) || parseInt(values[1]) < parseInt(sliderMax)) { var sliderDropdown = $(slider).closest(".dropdown-menu").parent(); if (sliderDropdown) { var indicator = $(sliderDropdown).find('.dropdown-toggle > .select-indicator'); indicator.text('(1)'); } } else { var sliderDropdown = $(slider).closest(".dropdown-menu").parent(); if (sliderDropdown) { var indicator = $(sliderDropdown).find('.dropdown-toggle > .select-indicator'); indicator.text(''); } } } function filterDropdownUpdateUrl(filtername, value, text) { var currentFeedUrl = $('.filter-controls .search-action').attr('data-filter-query'); var textSelector = ""; if (filtername == "cities") { textSelector = "#city-list-btn"; } if (filtername == "rooms") { textSelector = "#room-list-btn"; } const currentUrl = new URL(currentFeedUrl); $(textSelector).html(text); //check if label container has label with text = text. if (!currentUrl.searchParams.has(filtername)) { currentUrl.searchParams.append(filtername, value); } else if (currentUrl.searchParams.has(filtername)) { currentUrl.searchParams.set(filtername, value); } $('.filter-controls .search-action').attr('data-filter-query', decodeURIComponent(currentUrl.href)); console.log('selText: ' + text); } function appendTextToSpan(spanElement, text) { spanElement.append('' + text + ''); } function filterDropdownUpdateUrlV2(filtername, value, text, event, elem) { var checked = $(elem).is(':checked'); var currentFeedUrl = $('.filter-controls .search-action').attr('data-filter-query'); var concatValue = false; var deconcat = false; if (currentFeedUrl.includes(filtername) && checked) { concatValue = true; console.log('add span'); } else if (currentFeedUrl.includes(filtername) && !checked) { //console.log('remove check: ' + checked); deconcat = true; console.log('remove span'); } var textSelector = ""; if (filtername == "cities") { textSelector = "#city-list-btn"; } if (filtername == "rooms") { textSelector = "#room-list-btn"; } const currentUrl = new URL(currentFeedUrl); //$(textSelector).html(text); var addValue = currentUrl.searchParams.get(filtername); //console.log('current addValue: ' + addValue); if (concatValue) { //console.log('concat me: ' + value + ' on: ' + filtername); addValue = addValue + "," + value; //console.log('new addValue: ' + addValue); //console.log('current value: ' + value); } else { console.log('just add value: '); addValue = value; } if (!deconcat) { if (!currentUrl.searchParams.has(filtername)) { currentUrl.searchParams.set(filtername, addValue); } else if (currentUrl.searchParams.has(filtername)) { currentUrl.searchParams.set(filtername, addValue); } } else { var removeValue = currentUrl.searchParams.get(filtername); //console.log('new removeValue: ' + removeValue); var del = ','; if (!removeValue.includes(',')) { del = ''; } var delValue = del + value; removeValue = removeValue.replace(delValue, ''); if (removeValue == '' && currentUrl.searchParams.has(filtername)) { currentUrl.searchParams.delete(filtername); } else if (currentUrl.searchParams.has(filtername)) { //console.log('new removeValue: ' + removeValue); currentUrl.searchParams.set(filtername, removeValue); } } $('.filter-controls .search-action').attr('data-filter-query', decodeURIComponent(currentUrl.href)); } function filterDropdownUpdateUrlV3(filtername, value, text, event, elem) { var checked = $(elem).is(':checked'); var currentFeedUrl = $('.filter-controls .search-action').attr('data-filter-query'); var concatValue = false; var deconcat = false; var roomSuffix = " vær."; var labelsContainer = ''; if (filtername == "cities") { labelsContainer = '.city-labels'; textSelector = "#city-list-btn"; } if (filtername == "rooms") { labelsContainer = '.room-labels'; textSelector = "#room-list-btn"; text = text + decodeURI(roomSuffix); console.log('this is rooms: ' + text); } if (currentFeedUrl.includes(filtername) && checked) { concatValue = true; console.log('add span 2'); $(labelsContainer).append('' + text + ''); } else if (currentFeedUrl.includes(filtername) && !checked) { //console.log('remove check: ' + checked); deconcat = true; console.log('remove span'); var activeSpan = $(labelsContainer).find('span:contains(' + text + ')'); if (activeSpan) { console.log('remove: ' + activeSpan.remove()); } } const currentUrl = new URL(currentFeedUrl); //$(textSelector).html(text); var addValue = currentUrl.searchParams.get(filtername); //console.log('current addValue: ' + addValue); if (concatValue) { //console.log('concat me: ' + value + ' on: ' + filtername); addValue = addValue + "," + value; //console.log('new addValue: ' + addValue); } else { addValue = value; } if (!deconcat) { if (!currentUrl.searchParams.has(filtername)) { console.log('add span'); $(labelsContainer).append('' + text + ''); currentUrl.searchParams.set(filtername, addValue); } else if (currentUrl.searchParams.has(filtername)) { currentUrl.searchParams.set(filtername, addValue); } } else { var removeValue = currentUrl.searchParams.get(filtername); //console.log('new removeValue: ' + removeValue); var del = ','; if (!removeValue.includes(',')) { del = ''; } var delValue = del + value; removeValue = removeValue.replace(delValue, ''); if (removeValue == '' && currentUrl.searchParams.has(filtername)) { currentUrl.searchParams.delete(filtername); } else if (currentUrl.searchParams.has(filtername)) { //console.log('new removeValue: ' + removeValue); currentUrl.searchParams.set(filtername, removeValue); } } $('.filter-controls .search-action').attr('data-filter-query', decodeURIComponent(currentUrl.href)); } // FILTER ------------------------------------------------------------------------------------------------------- function openFilterV2() { var element = document.getElementById("filter-wrapper"); element.classList.add("Show-filter"); var frontpageEls = document.getElementsByClassName("frontpage"); frontpageEls[0].classList.add("mm-ocd-opened"); } $(".filter-wrapper-backdrop").click(function () { $(this).parent().removeClass("Show-filter"); var frontpageEls = document.getElementsByClassName("frontpage"); frontpageEls[0].classList.remove("mm-ocd-opened"); }); function goToFilterSearch() { var currentFeedUrl = $('.filter-controls .search-action').attr('data-filter-query'); const currentUrl = new URL(currentFeedUrl); document.cookie = "dataFeed1403=; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=None; Secure"; window.location.href = decodeURIComponent(currentUrl.href + '#filter-scrollto'); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // YOUTUBEW SCRIPT -------------------------------------------------------------------------------------------------------------------------------------- //autoPlayYouTubeModal(); function autoPlayYouTubeModal() { var trigger = $("body").find('[data-toggle="modal"]'); trigger.click(function () { var theModal = $(this).data("target"), videoSRC = $(this).attr("data-theVideo"), videoSRCauto = videoSRC + "?autoplay=1"; $(theModal + ' iframe').attr('src', videoSRCauto); $(theModal + ' button.close').click(function () { $(theModal + ' iframe').attr('src', videoSRC); }); }); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // SMOOTH SCROLL ---------------------------------------------------------------------------------------------------------------------------------------- //$('a[href*="#"]') // // Remove links that don't actually link to anything // .not('[href="#"]') // .not('[href="#0"]') // .click(function (event) { // // On-page links // if ( // location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') // && // location.hostname == this.hostname // ) { // // Figure out element to scroll to // var target = $(this.hash); // target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); // // Does a scroll target exist? // if (target.length) { // // Only prevent default if animation is actually gonna happen // event.preventDefault(); // $('html, body').animate({ // scrollTop: target.offset().top - 100 // }, 1000, function () { // // Callback after animation // // Must change focus! // var $target = $(target); // $target.focus(); // if ($target.is(":focus")) { // Checking if the target was focused // return false; // } else { // $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable // $target.focus(); // Set focus again // }; // }); // } // } // }); // ------------------------------------------------------------------------------------------------------------------------------------------------------ // EASTER------------------------------------------------------------------------------------------------------------------------------------------------ $(document).ready(function () { //var throttle = false; //document.getElementById("easter").addEventListene('click', function (evt) { // var o = this, // ot = this.textContent; // if (!throttle && evt.detail === 6) { // var pictures = new Array() // pictures[0] = "/css/Images/racquetball.gif" // $(function () { // var new_img = pictures[Math.floor(Math.random() * pictures.length)];; // $("#easter").empty(); // var imgtag = $(''); // imgtag.attr('src', new_img); // imgtag.appendTo('#easter'); // }); // throttle = true; // setTimeout(function () { // o.textContent = ot; // throttle = false; // }, 3500); // } //}); }); // ------------------------------------------------------------------------------------------------------------------------------------------------------ // HOVER MENU ------------------------------------------------------------------------------------------------------------------------------------------- $(document).ready(function () { $(".dropdown-toggle").click(function () { var url = $(this).attr("href"); $(location).attr('href', url); }); }); // NOUI SLIDER --------------------------------------------------------------------------------------------------------------------------- //$(document).ready(function () { // var slider = document.getElementById('areasize-slider'); // console.log('test: ' + slider.getAttribute('data-slider-start')); // sliderStart = slider.getAttribute('data-slider-start'); // sliderStart2 = slider.getAttribute('data-slider-end'); // noUiSlider.create(slider, { // start: [sliderStart, sliderStart2], // connect: true, // tooltips: true, // format: wNumb({ // decimals: 0 // }), // range: { // 'min': 0, // 'max': 150 // } // }); // var slider = document.getElementById('rent-slider'); // sliderStart = slider.getAttribute('data-slider-start'); // sliderStart2 = slider.getAttribute('data-slider-end'); // noUiSlider.create(slider, { // start: [sliderStart, sliderStart2], // connect: true, // tooltips: true, // format: wNumb({ // decimals: 0 // }), // step: 50, // range: { // 'min': 0, // 'max': 12250 // } // }); //}); // TOP NAV HOVER ------------------------------------------------------------------------------- // -------------------- http://jsfiddle.net/arunpjohny/nqQHM/ //var timeoutHandler; //$("#navbarNavDropdown ul.navbar-nav li.dropdown[data-level='3']").mouseenter(function (e1) { // var thisItem = $(this); // clearTimeout(timeoutHandler); // timeoutHandler = setTimeout(function (e1) { // if ($(thisItem).children().hasClass('open-dd')) { // return; // } else { // $(thisItem).children().addClass('open-dd'); // $(thisItem).siblings().children().removeClass('open-dd'); // } // }, 200); //}).mouseleave(function (e2) { // var thisItem = $(this); // clearTimeout(timeoutHandler); // timeoutHandler = setTimeout(function (e2) { // if (!$(thisItem).children().hasClass('open-dd')) { return; } else { // $(thisItem).children().removeClass('open-dd'); // } // }, 500); //}); // TOP NAV HOVER ------------------------------------------------------------------------------- // -------------------- http://jsfiddle.net/arunpjohny/nqQHM/ var timeoutHandler; $("#navbarNavDropdown ul.navbar-nav li").mouseenter(function (e1) { var thisItem = $(this); clearTimeout(timeoutHandler); timeoutHandler = setTimeout(function (e1) { if ($(thisItem).children().hasClass('open-dd')) { return; } else { $(thisItem).children().addClass('open-dd'); $(thisItem).siblings().children().removeClass('open-dd'); } }, 0); }).mouseleave(function (e2) { var thisItem = $(this); clearTimeout(timeoutHandler); timeoutHandler = setTimeout(function (e2) { if (!$(thisItem).children().hasClass('open-dd')) { return; } else { $('.open-dd').removeClass('open-dd'); } }, 500); }); // OPEN CARD MODDAL ------------------------------------------------------------------------------- //function sendresidenceID(embedID) { // if (embedID !== 'undefined' && embedID != null) { // // var framehtml = "''"; // $("#videoframecontainer").html(framehtml); // console.log('Send embed: ' + embedID); // } //}