(function (window, undefined){
window.wp=window.wp||{};
var document=window.document;
var $=window.jQuery;
var wp=window.wp;
var $document=$(document);
var recentViewsCookie="listeo_recent_views";
function getCookie(name){
var cookies=document.cookie ? document.cookie.split("; "):[];
for (var i=0; i < cookies.length; i++){
var parts=cookies[i].split("=");
var cookieName=parts.shift();
if(cookieName===name){
return decodeURIComponent(parts.join("="));
}}
return "";
}
function setCookie(name, value, maxAge){
document.cookie =
name +
"=" +
encodeURIComponent(value) +
"; max-age=" +
maxAge +
"; path=/; samesite=lax";
}
function getRecentViews(){
var value=getCookie(recentViewsCookie);
if(!value){
return [];
}
try {
var parsed=JSON.parse(value);
return $.isArray(parsed) ? parsed:[];
} catch (e){
return [];
}}
listeoStats.hasRecentView=function (){
return $.inArray(String(listeoStats.post_id), getRecentViews())!==-1;
};
listeoStats.markRecentView=function (){
var postId=String(listeoStats.post_id);
var views=getRecentViews();
var maxAge=parseInt(listeoStats.visit_cookie_expiration, 10)||1800;
if($.inArray(postId, views)===-1){
views.push(postId);
}
if(views.length > 100){
views=views.slice(views.length - 100);
}
setCookie(recentViewsCookie, JSON.stringify(views), maxAge);
};
listeoStats.log=function (stat){
if(stat==="visits"){
if(listeoStats.hasRecentView()){
return;
}
listeoStats.markRecentView();
}
wp.ajax.post("listeo_stat_" + stat, {
post_id: listeoStats.post_id,
stat: stat,
});
};
listeoStats.logButtonClick=function (){
$("body").on("click", ".book-now.button", function (e){
var that=$(this);
if(!that.hasClass("book-now_clicked")){
wp.ajax
.post("listeo_stat_booking_click", {
post_id: listeoStats.post_id,
stat: "booking_click",
})
.done(function (data){
that.addClass("book-now_clicked");
return;
})
.fail(function (data){
return;
});
}});
};
listeoStats.logContactClick=function (){
$("body").on("click", ".send-message-to-owner", function (e){
var that=$(this);
if(!that.hasClass("contact-now_clicked")){
wp.ajax
.post("listeo_stat_contact_click", {
post_id: listeoStats.post_id,
stat: "contact_click",
})
.done(function (data){
that.addClass("contact-now_clicked");
return;
})
.fail(function (data){
return;
});
}});
};
$document.ready(function (){
$.each(listeoStats.stats, function (index, value){
switch (value){
case "booking_click":
listeoStats.logButtonClick();
break;
case "contact_click":
listeoStats.logContactClick();
break;
default:
listeoStats.log(value);
}});
});
})(window);