","digits":0,"fieldid":232,"typeid":10,"type":"URL","value_raw":"","value_string":""}},"amenities":{"restaurants_barlounge":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Bar / Lounge","shortname":"barlounge","amenitygroupid":1016,"digits":0,"fieldid":577,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_barlounge"},"restaurants_californian_1002_1017":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Californian","shortname":"californian_1002_1017","amenitygroupid":1017,"digits":0,"fieldid":237,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_californian_1002_1017"},"restaurants_corkage_1002_1016":{"tabshortname":"restaurants","amenitytabid":1002,"value":"$25 per 750 mL for first 2 then $50 per 750mL.","label":"Corkage","shortname":"corkage_1002_1016","amenitygroupid":1016,"digits":0,"fieldid":217,"typeid":8,"type":"Text","value_raw":"$25 per 750 mL for first 2 then $50 per 750mL.","value_string":"$25 per 750 mL for first 2 then $50 per 750mL.","uniquename":"restaurants_corkage_1002_1016"},"restaurants_dinner_1002_1026":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Dinner","shortname":"dinner_1002_1026","amenitygroupid":1026,"digits":0,"fieldid":362,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_dinner_1002_1026"},"restaurants_evstations":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"EV Charging Stations","shortname":"evstations","amenitygroupid":1016,"digits":0,"fieldid":488,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_evstations"},"restaurants_happyhour":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Happy Hour","shortname":"happyhour","amenitygroupid":1016,"digits":0,"fieldid":566,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_happyhour"},"restaurants_italian_1002_1017":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Italian","shortname":"italian_1002_1017","amenitygroupid":1017,"digits":0,"fieldid":286,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_italian_1002_1017"},"restaurants_lassiette":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Recommended","shortname":"lassiette","amenitygroupid":1033,"digits":0,"fieldid":483,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_lassiette"},"restaurants_michelin_star_rated_1002_1016":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Michelin Rated","shortname":"michelin_star_rated_1002_1016","amenitygroupid":1016,"digits":0,"fieldid":339,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_michelin_star_rated_1002_1016"},"restaurants_openlater":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Open After 9pm","shortname":"openlater","amenitygroupid":1016,"digits":0,"fieldid":599,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_openlater"},"restaurants_petsok":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"Pet Friendly","shortname":"petsok","amenitygroupid":1016,"digits":0,"fieldid":423,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_petsok"},"restaurants_wheelchairyes":{"tabshortname":"restaurants","amenitytabid":1002,"value":"true","label":"ADA Accessible","shortname":"wheelchairyes","amenitygroupid":1016,"digits":0,"fieldid":426,"typeid":11,"type":"Yes/No","value_raw":true,"value_string":"Yes","uniquename":"restaurants_wheelchairyes"},"general_openthanksgivingday":{"listid":47,"tabshortname":"general","amenitytabid":1,"value":"Open","label":"Thanksgiving Day","shortname":"openthanksgivingday","amenitygroupid":1,"digits":0,"fieldid":629,"typeid":7,"type":"Dropdown","value_raw":{"listid":47,"value":"Open"},"value_string":"Open","uniquename":"general_openthanksgivingday"}}};
var cityStateZip = "Yountville, CA 94599";
var locations;
if (data.address1) {
var location = {
streetAddress: data.address1,
streetAddress2: data.address2,
streetAddress3: data.address3,
cityStateZip: cityStateZip
}
locations = [location];
}
var weburl = data.weburl !== undefined ? "/plugins/crm/count/?type=server&key=4_11060&val=289d659865c155bce1d7fbe12f86094f59f8877e650d0cfdff7950384afd6993659f2c04ef23f896981199fbd6836cfc4bd947b2e8e389687387795064f9b7d90617bc55fe532076b7448f192bb71fe5" : undefined;
var rawWeburl = data.weburl;
var tripbuilderTracking = "58_11060";
var translations = JSON.parse($("#translations_177b5ef9-4227-452d-99a5-540502ce2422").html());
var reservationUrl = data.listingudfs_object?.['232']?.value_string ?? undefined;
var socialMap = {
"serviceid_1" : { class : "fab fa-x-twitter", service : "twitter", sort : 3 },
"serviceid_2" : { class : "fab fa-youtube", service : "youtube", sort : 4 },
"serviceid_4" : { class : "fab fa-facebook-f", service : "facebook", sort : 1 },
"serviceid_10" : { class : "fab fa-linkedin", service : "linkedin", sort : 7 },
"serviceid_12" : { class : "fab fa-pinterest", service : "pinterest", sort : 5 },
"serviceid_13" : { class : "fab fa-instagram", service : "instagram", sort : 2 },
"serviceid_17" : { class : "fab fa-snapchat", service : "snapchat", sort : 6 }
};
function sortSoc(a, b) {
return a.sort - b.sort;
}
var social = [];
if (data.social) {
data.social.forEach(function(val) {
var item = socialMap['serviceid_' + val.smserviceid];
if (item === undefined) { return; }
item.url = listingsLib.getValidSocialUrl({ url : val.value, urlType : item.service });
item.rawUrl = listingsLib.getValidSocialUrl({ url : val.value, urlType : item.service });
if (item.service === 'twitter') {
item.url = sv_crmLib.getTrackUrl(data.crmtracking.core_twitter_click, item.url);
} else if (item.service === 'facebook') {
item.url = sv_crmLib.getTrackUrl(data.crmtracking.core_facebook_click, item.url);
} else if (item.service === 'youtube') {
item.url = sv_crmLib.getTrackUrl(data.crmtracking.custom_youtube_url_click_thrus, item.url);
} else if (item.service === 'pinterest') {
item.url = sv_crmLib.getTrackUrl(data.crmtracking.custom_pinterest_url_click_thrus, item.url);
} else if (item.service === 'instagram') {
item.url = sv_crmLib.getTrackUrl(data.crmtracking.custom_instagram_url, item.url);
}
social.push(item);
social.sort(sortSoc);
});
}
var placemarks = [];
if (data.latitude) {
placemarks.push({
recid : data.recid,
title : data.title,
crmc : data.primaryCategory.catname,
crmsc : data.primaryCategory.subcatname,
latitude : data.latitude,
longitude : data.longitude,
itemType : 'listings',
address1 : data.address1
});
}
// Convert New Line and Carrige Returns to
function convertLinetoBreak(args) {
var string = args.string || false;
if(string){
return string.replace(/(?:\r\n|\r|\n)/g, '
');
}
}
var vue = detail.getVue({
data : {
type : 'Listings',
title : data.title,
crmc : data.primaryCategory.catname,
crmsc : data.primaryCategory.subcatname,
rawWeburl : rawWeburl,
acctid : data.acctid,
city : data.city,
region : data.region,
rankname : data.custom?.rankname ?? data.rankname,
price : data.price,
ga4Price : data.custom?.price,
udfs : data.udfs,
locations : locations,
phone : data.phone,
tollfree : data.tollfree,
media : data.media,
weburl : weburl,
social : social,
hasTripAdvisor : data.hasTripAdvisor,
tripbuilder : tripbuilder,
tripbuilderTracking : tripbuilderTracking,
yelp : data.yelp,
hasYelp : data.hasYelp,
yelpHours : data.yelp ? data.yelp.hours : undefined,
threshold360id : data.threshold360id,
recid : data.recid,
rankid : data.rankid,
isDTN : data.isDTN,
description : convertLinetoBreak({string:data.description}),
offers : data.offers,
events : data.events,
placemarks : placemarks,
amenities : data.amenityTree,
meetingfacility : data.meetingfacility,
meetingrooms : data.meetingrooms,
translations : translations,
reservationUrl : reservationUrl ? sv_crmLib.getTrackUrl(data.crmtracking.core_booking_click, reservationUrl) : undefined,
virtualtourUrl : data.listingudfs_object?.['291']?.value_string ?? undefined,
napaGreen : data.amenities?.wineries_napagreen?.value_raw ?? undefined,
michelinRating : data.amenities?.restaurants_onestar?.value_raw ? { label: "Michelin rated - 1 Star", svg : "michelin-onestar", color : "red" } : data.amenities?.restaurants_twostar?.value_raw ? { label: "Michelin rated - 2 Stars", svg : "michelin-twostar", color : "red" } : data.amenities?.restaurants_threestars?.value_raw ? { label: "Michelin rated - 3 Stars", svg: "michelin-threestar", color : "red" } : data.amenities?.restaurants_bibgourmand?.value_raw ? { label: "Michelin rated - Bib Gourmand", svg: "michelin-bibgourmand", color : "red" } : data.amenities?.restaurants_lassiette?.value_raw ? { label: "Michelin rated - Recommended", svg: "", color : "red" } : undefined,
michelinGreen : data.amenities?.restaurants_greenstar?.value_raw ? { label: "Michelin rated - Green Star", svg: "michelin-greenstar", color : "green" } : undefined,
forbesRating : data.amenities?.lodging_forbesfivestar?.value_raw ? { label: "Forbes 5-Star rated", svg : "rating-forbes-fivestar" } : data.amenities?.lodging_forbesfourstar?.value_raw ? { label: "Forbes 4-Star rated", svg : "rating-forbes-fourstar" } : data.amenities?.lodging_forbesrecommended?.value_raw ? { label: "Forbes Recommended", svg: "rating-forbes-recommended" } : undefined,
michelinKeys : data.amenities?.lodging_onekey?.value_raw ? { label: "Michelin rated - 1 Key", svg : "rating-michelin-onekey" } : data.amenities?.lodging_twokeys?.value_raw ? { label: "Michelin rated - 2 Keys", svg : "rating-michelin-twokey" } : data.amenities?.lodging_threekeys?.value_raw ? { label: "Michelin rated - 3 Keys", svg: "rating-michelin-threekey" } : undefined,
openTableId : data.social?.filter(val => val.smserviceid === 6)[0]?.value ?? undefined,
listing_subtabs : {
subTab1 : data.listingudfs_object?.['251'] !== undefined && data.listingudfs_object?.['245'] !== undefined ? {
type : data.listingudfs_object?.['251'].value_string ?? undefined,
description : convertLinetoBreak({ string : data.listingudfs_object?.['245'].value_string }) ?? undefined
} : undefined,
subTab2 : data.listingudfs_object?.['252'] !== undefined && data.listingudfs_object?.['246'] !== undefined ? {
type : data.listingudfs_object?.['252'].value_string ?? undefined,
description : convertLinetoBreak({ string : data.listingudfs_object?.['246'].value_string }) ?? undefined
} : undefined,
subTab3 : data.listingudfs_object?.['253'] !== undefined && data.listingudfs_object?.['247'] !== undefined ? {
type : data.listingudfs_object?.['253'].value_string ?? undefined,
description : convertLinetoBreak({ string : data.listingudfs_object?.['247'].value_string }) ?? undefined
} : undefined
},
gtmVars : '{ "tClient_ga4" : {"interactionSource" : "detail"} }',
},
templates : {
listing_ta_snippet : listing_ta_snippet,
listing_detail_meeting_facilities : listing_detail_meeting_facilities,
listing_detail_meeting_room : listing_detail_meeting_room,
yelp_component : yelp_component,
event_item_template : event_item_template,
offer_item_template : offer_item_template,
custom_li_items : custom_li_items,
},
rootNode : $('[data-guid="177b5ef9-4227-452d-99a5-540502ce2422"]')
});
sv_crmLib.trackAjax(data.crmtracking.core_listing_view);
/* register available UI events for SEM tracking */
var watcher = new UIWatcher(vue, $, document);
var uid = clientLib.uuid().toString();
var widgetEvents = ["item-click"];
for (var i=0; i