drproperty_enable_mobile_menu();
drproperty_mark_favorites();
forAny=function (selector, callbackfn, container){
container=container||document;
container.querySelectorAll(selector).forEach(callbackfn);
}
onAny=function (selector, type, callbackfn, container){
container=container||document;
container.querySelectorAll(selector).forEach(element=> element.addEventListener(type, event=> {
callbackfn(element, event);
}));
}
forAny('[data-load-url]', element=> {
fetch(element.dataset.loadUrl).then(response=> response.text()).then(text=> {
element.innerHTML=text
if(element.dataset.loadCallback){
window[element.dataset.loadCallback]();
}})
return null;
});
document.querySelectorAll('.drproperty-language-switcher-select select').forEach(select=> select.addEventListener('change', _=> location.href=select.value)
)
document.querySelectorAll('.drproperty-tabs .tab-trigger').forEach(element=> element.addEventListener('click', drproperty_switch_tab)
)
if(document.querySelectorAll('#contact-wechat, .contact-wechat').length > 0){
document.querySelectorAll('.wechat-trigger').forEach(element=> element.classList.remove('drproperty-hidden'));
}
if(window.innerWidth < 768){
document.querySelectorAll('.wpv-loop .property-item a').forEach(element=> element.setAttribute('target', '_blank')
)
}
if(document.querySelectorAll('#contact').length===0){
document.querySelectorAll('.contact-trigger').forEach(element=> {
element.href=document.querySelector('a[rel="home"]').href + 'contact/';
});
}
document.addEventListener('DOMContentLoaded', _=> {
document.querySelectorAll('input[name=site-language]').forEach(element=> element.value=document.body.parentElement.lang);
document.querySelectorAll('input[name=contact-favorites]').forEach(element=> element.value=drproperty_getCookie('drproperty_favorites'));
['budget', 'title', 'type', 'location', 'sublocation', 'sublocation-parent'].forEach(entry=> {
let elements=document.getElementsByName('listing-' + entry);
if(elements.length > 0){
document.getElementsByName('contact-listing-' + entry).forEach(input=> input.value=elements[0].content);
}});
})
tippy('[data-tippy-content]', {
allowHTML: true,
appendTo: ()=> document.body,
zIndex: 99999,
});
tippy('[data-toggle="tooltip"]', {
allowHTML: true,
appendTo: ()=> document.body,
zIndex: 99999,
content: (reference)=> {
let content=reference.getAttribute('title');
if(content&&content.trim()!==''){
return content;
}
return reference.getAttribute('data-original-title');
}});
document.querySelectorAll('.property-by-id-input').forEach(input=> {
function update_property_link(){
document.querySelectorAll('a.property-by-id-link').forEach(link=> link.href=drproperty_data.wpml_home_url + '?p=' + input.value);
}
input.addEventListener('keyup', update_property_link);
input.addEventListener('change', update_property_link);
});
document.querySelectorAll('.property-by-id-link').forEach(link=> {
link.addEventListener('click', _=>
location.href=drproperty_data.wpml_home_url + '?p=' + document.querySelector('.property-by-id-input').value
);
});
function drproperty_mark_favorites(){
let favorites=drproperty_getCookie('drproperty_favorites');
if(favorites&&favorites.length > 0){
favorites.split(',').forEach(favorite=> document.querySelectorAll(`[data-favorite-id="${favorite}"]`).forEach(element=> element.classList.add('is-favorite')
))
}
document.getElementsByName('wpcf-contact-favorites').forEach(element=> element.value=favorites);
}
function drproperty_toggle_favorite_status(element, id){
if(event){
event.stopPropagation();
event.preventDefault();
}
let favorites=drproperty_getCookie('drproperty_favorites');
favorites=favorites.split(',');
if(element.classList.contains('is-favorite')){
favorites=favorites.filter(item=> item!==id)
}else{
favorites.push(id);
}
element.classList.toggle('is-favorite')
favorites=favorites.filter(item=> item.trim()!=='')
favorites=favorites.join(',');
drproperty_setCookie('drproperty_favorites', favorites, 1000);
drproperty_mark_favorites();
return false;
}
document.getElementsByName('contact-phone').forEach(element=> {
element.addEventListener('keyup', event=> {
if(element.value&&element.value!==''){
document.getElementById('drproperty-empty-phone-number').classList.remove('drproperty-hidden');
}else{
document.getElementById('drproperty-empty-phone-number').classList.add('drproperty-hidden');
}})
})
function drproperty_enable_mobile_menu(){
let mobileMenu=document.getElementById('toggle-navigation');
if(mobileMenu){
mobileMenu.addEventListener('click', event=> {
event.preventDefault();
mobileMenu.querySelector('i').classList.toggle('show');
document.body.classList.toggle('show-nav');
document.querySelector('.mobile-menu-overlay').classList.toggle('hide')
});
}
jQuery('.menu-item-has-children > a').click(function (e){
if($('body').hasClass('show-nav')){
e.preventDefault();
$(this).toggleClass('open');
}});
}
function drproperty_setCookie(cname, cvalue, exdays){
let d=new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
let expires="expires=" + d.toUTCString();
document.cookie=cname + "=" + cvalue + ";" + expires + ";path=/";
}
function drproperty_getCookie(cname){
var name=cname + "=";
var decodedCookie=decodeURIComponent(document.cookie);
var ca=decodedCookie.split(';');
for (var i=0; i < ca.length; i++){
var 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 drproperty_switch_tab(event){
let tab=event.target.dataset.tab;
tab=tab.replace('-de', '');
tab=tab.replace('-zh-hans', '');
tab=tab.replace('-fr', '');
tab=tab.replace('-th', '');
let tabsWrapper=jQuery(this).closest('.drproperty-tabs');
tabsWrapper.find('.tab-trigger').removeClass('active');
tabsWrapper.find('.tab-trigger[data-tab=' + tab + ']').addClass('active');
tabsWrapper.find('.tabs-content').removeClass('active');
tabsWrapper.find('.tabs-content[data-tab=' + tab + ']').addClass('active');
return false;
}
function drproperty_remove_unwanted_filters(viewNumber){
let wanted_options=[];
['beachfront', 'pool', 'sea-view', 'furnished', 'leasehold', 'freehold' ,].forEach(element=> {
wanted_options.push(element);
wanted_options.push(element + '-de');
wanted_options.push(element + '-fr');
wanted_options.push(element + '-th');
wanted_options.push(element + '-zh-hans');
}
)
wanted_options=wanted_options.concat([
'meerblick', 'mobliert', 'fitnesstudio',
]);
wanted_options=wanted_options.concat(drproperty_data.features_to_filter);
document.querySelectorAll('select.features-filter option').forEach(option=> {
if(!wanted_options.includes(option.value)){
option.remove();
}})
document.querySelectorAll('select[name="location"] option').forEach(option=> {
if(option.value!=='0'&&!drproperty_data.locations_to_filter.includes(option.value)){
option.remove();
}})
}
document.querySelectorAll('.drproperty-faq-title, .faq-title').forEach(element=> element.addEventListener('click', value=> element.classList.toggle('show-faq')));
class DrProperty_Formatter {
constructor(prefix, suffix){
this.prefix=prefix;
this.suffix=suffix;
}
to(value){
return value;
}
from(value){
return value;
}}
window.setTimeout(function (){
let counters=document.getElementsByName('moewe_cred_token_counter');
if(counters.length===0){
return;
}
let counter=counters[0];
if(counter.value===""){
counter.value='1235';
document.getElementsByName('moewe_cred_token')[0].value='8766';
}}, 10000);
forAny('.inject-paging-anchors ', wrapper=> {
let anchor=wrapper.id;
if(!anchor){
return;
}
forAny('a.js-wpv-pagination-link', link=> {
link.href=link.href + '#' + anchor;
}, wrapper)
});