Festive Fare Rentals

Twitter
Facebook
Pinterest

Twitter

Facebook

Pinterest

","digits":0,"fieldid":104,"typeid":9,"type":"Text Area","value_raw":"Tweets by @FestiveFare\r\n ","value_string":"Tweets by @FestiveFare\r\n "}],"fullname":"Janet Pond","acctid":189300,"sortcompany":"festive fare rentals","typename":"Website","fname":"Janet","recid":3420,"weburl":"https://charlottesville.classicpartyrentals.com/","status":"Active-Partners","phone":"(434) 296-5496","crmtracking":{"core_mobile_call":"18_3420","core_itinerary":"58_3420","core_facebook_click":"15_3420","core_booking_click":"7_3420","core_map_view":"59_3420","core_mobile_click":"16_3420","core_listing_view":"1_3420","core_listing_click":"4_3420","core_twitter_view":"12_3420","core_mobile_view":"17_3420","core_facebook_view":"14_3420","core_twitter_click":"13_3420"},"lname":"Pond","contactid":296625,"statusid":1,"categories":[{"primary":true,"subcatid":200,"subcatname":"Wedding Planners","catname":"Event Services - Weddings","catid":24}],"title":"Festive Fare Rentals","updated":"2015-01-27T18:03:32.000Z","listingudfs_object":{"101":{"name":"Listing Title","value":"Wedding and Event Rentals","digits":0,"fieldid":101,"typeid":8,"type":"Text","value_raw":"Wedding and Event Rentals","value_string":"Wedding and Event Rentals"},"104":{"name":"Twitter Widget","value":"Tweets by @FestiveFare\r\n ","digits":0,"fieldid":104,"typeid":9,"type":"Text Area","value_raw":"Tweets by @FestiveFare\r\n ","value_string":"Tweets by @FestiveFare\r\n "}},"contacttitle":"General Manager","alpha":"f","loc":{"type":"Point","coordinates":[-78.4603251,38.0207974]},"sites":["primary"],"primary_site":"primary","primary_category":{"primary":true,"subcatid":200,"subcatname":"Wedding Planners","catname":"Event Services - Weddings","catid":24},"primarycatid":24,"primarysubcatid":200,"cms_title":"Festive Fare Rentals - Event Services - Weddings - Wedding Planners (3420)","cms_title_sort":"festive fare rentals - event services - weddings - wedding planners (3420)","filter_tags":["site_primary","catid_24","subcatid_200","site_primary_catid_24","site_primary_subcatid_200","site_primary_catid_24_subcatid_200"],"rankorder":999,"amenityTree":[],"id":"57ae2164bdccd1e1ace7c692","detailURL":"/listing/festive-fare-rentals/3420/","genericUrl":"/listing/festive-fare-rentals/3420/","url":"/listing/festive-fare-rentals/3420/","absolute_primary_url":"https://www.visitcharlottesville.org/listing/festive-fare-rentals/3420/","isListing":true,"longitude":-78.4603251,"latitude":38.0207974,"hasTripAdvisor":false,"hasYelp":false}; //trip builder if (tripbuilder !== undefined) { tripbuilder.initButtons({ root : root, addButtonTemplate : 'Add to Trip Builder', removeButtonTemplate : "View Trip Builder" }); } // validate and track social urls root.find("[data-sv-social]").each(function() { var validServices =['facebook', 'twitter', 'youtube', 'instagram', 'pinterest']; var service = $(this).data('svService').toLowerCase(); var href = $(this).attr('href'); if (validServices.indexOf(service) > -1) { href = lib.getValidSocialUrl({ url : href, urlType : service }); switch (service) { case "twitter": $(this).attr("href", sv_crmLib.getTrackUrl(data.crmtracking.core_twitter_click, href)); break; case "facebook": $(this).attr("href", sv_crmLib.getTrackUrl(data.crmtracking.core_facebook_click, href)); break; default: $(this).attr("href", href); } } }); root.find('#tab_social_media dl dd:first').addClass('active'); root.find('#tab_social_media .tabs-content .content:first').addClass('active'); /**** CRM tracking - DO NOT REMOVE!!!! ****/ sv_crmLib.trackAjax(data.crmtracking.core_listing_view); /*** Media Gallery ***/ var getVideoID = function(url) { if (url.match(/https?:\/\/www\.youtube\.com\/watch\?v=.*/) !== null) { return url.replace(/.*\?v=/, ""); } else if (url.match(/https?:\/\/youtu\.be\/.*/) !== null) { return url.replace(/.*\//, ""); } } var galleryTemplate = root.find("[data-sv-galleryTemplate]").html(); var galleryContainer = root.find('[data-sv-galleryContainer]'); var galleryParent = galleryContainer.parent(); if (data.media !== undefined) { data.media.forEach(function(val, i) { if (val.mediatype === "Image" || val.mediatype === "Logo") { val.image = sv_cloudinaryLib.default.createResource({ imageUrl : val.mediaurl }); } else if (val.mediatype === "YouTube") { val.videoID = getVideoID(val.mediafile); //you may use default, 0, 1, 2 or 3 for the youtube file name val.image = sv_cloudinaryLib.default.createResource({ imageUrl : "http://img.youtube.com/vi/" + val.videoID + "/0.jpg" }); } }); var galCount = data.media.length; var galleryHTML = goatee.fill(galleryTemplate, { media : data.media, total : galCount }); galleryContainer.append(galleryHTML); //Shadowbox.init(); /* galleryParent.find(".slider").slick({ infinite: false, dots : false }); */ } else { var galleryHTML = goatee.fill(galleryTemplate, {}); galleryContainer.append(galleryHTML); } galleryParent.magnificPopup({ delegate: 'a', type: 'image', mainClass: 'mfp-with-zoom', zoom: { enabled: true, duration: 300, easing: 'ease-in-out', opener: function(openerElement) { return openerElement.is('img') ? openerElement : openerElement.find('img'); } } }); galleryParent.find('a.expand').click(function() { galleryParent.find('.slick-active a').click(); return false; }); var $details_slick = root.find('#details_slick'); var $details_slick_controls = root.find('#details_slick_controls'); var $details_slick_nav = $details_slick_controls.find('.slick-nav'); $details_slick.slick({ speed : 700, fade : false, arrows : true, //autoplay: true, infinite : true, cssEase : 'linear', autoplaySpeed: 2000, //adaptiveHeight : true, appendArrows : $details_slick_nav, nextArrow : '', prevArrow : '' }); // Yelp var fetchYelp = function() { var yelphtml = ""; var yelpid = ""; if (data.social !== undefined && data.social instanceof Array) { //find yelp data.social.forEach(function(val,i) { if (val.smserviceid == 5) { yelpid = val.value; return false; } }); if (yelpid.length > 0) { var yelpapi = {service: "yelp", endpoint: "phonesearch", args: {phone: yelpid} }; $.get("/includes/plugins/svapis/controller/", yelpapi, function(res) { var yelphtml = goatee.fill(root.find("[data-sv-yelpTemplate]").html(), res); root.find("[data-tabhead-yelp]").show().on('click', function(e) { e.preventDefault(); var tc = root.find("#tab-yelp"); if (tc.html().length == 0) { tc.html(yelphtml); } }); }); } else { return false; } } else { return false; } return true; } // Trip Advisor fetchYelp(); if (data.latitude && data.longitude) { var infoWindowTmpl = root.find("[data-sv-infoWindowTemplate]").html(); var placemarks = [{ id : "listing_" + data.recid, marker : { position : [data.latitude, data.longitude] }, infoWindow : { content : goatee.fill(infoWindowTmpl, data) } }]; var tabOpenMap = root.find("[data-sv-mapTabButton]"); var tabOpenMapContent = root.find("[data-sv-mapTabButtonContent]"); tabOpenMapContent.data("svMapInit", false); var initMapTab = function() { if (tabOpenMapContent.data("svMapInit") === false) { tabOpenMapContent.data("svMapInit", true); mapObj.init({ node : root, map : { markerIcon : '/includes/public/assets/shared/map_point.png', mapOptions : { zoom: 16 } } }, true); mapObj.setState({ placemarksAdded : false, placemarks : placemarks }); mapObj.initDetailInterface(); } }; if (tabOpenMapContent.hasClass('active') == true) { initMapTab(); } else { tabOpenMap.click(initMapTab); } } $('.tabs.no-stack > dd > a').on('click', function(e) { e.preventDefault(); var tid = $(this).attr('href'); var t = $(this).closest('.tabs'); var dd = $(this).closest('dd'); var tc = t.closest('.tabs-content').closest('.content'); tc.removeClass('active'); $(tid).addClass('active'); $(tid).siblings().removeClass('active'); dd.addClass('active'); dd.siblings().removeClass('active'); t.toggleClass('open'); }); $(".tabs.subtab").each(function(i) { if ($(this).find('dd').length < 2) { $(this).addClass('solo'); } }); root.find('.select2').css('width', '100%').select2({minimumResultsForSearch : Infinity}); root.find('#description_tabs_controller').change(function() { var val = $(this).val(); var a = root.find('a[href="#' + val + '"]'); if(!a.parent('li').hasClass('active')) { a.click(); } }); root.find('.description-tabs-controllers-container a').click(function() { var clickedVal = $(this).attr('href').replace('#', ''); var selectedVal = root.find('#description_tabs_controller').val(); if(clickedVal !== selectedVal) { root.find('#description_tabs_controller').val(clickedVal).change(); } }); if(root.find('#description_tabs_controller option').length === 1) { root.find('.select2-container').addClass('single'); } $(window).on('resize', function() { /* when using open left menu tabs in desktop and closed dropdown style tabs in mobile we want to reset the open state. otherwise clicking on a tab in desktop will leave it stuck on open when re-sizing to responsive */ $('.listings .tabs.open').removeClass('open'); }); var seoCat = 'Listings', seoLabel = data.title, seoVars = {vt: 'Detail', ua: 'Click', crmc: data.primary_category.catname, crmsc: data.primary_category.subcatname}, seoArgs = {'event': 'tEvent', 'eventCategory': seoCat, 'eventLabel': seoLabel}, sem = sem || {}, si; sem.getSeoData = function (o,a,b) { var _b = (arguments.length >= 3) ? b : a; return $(o).closest("[" + a + "]").attr(_b); }; $.extend(seoArgs, seoVars); var seoTObj = { nearby: {'eventAction': 'What\'s Nearby', 'lt': 'Map Explorer', 'ot': 'Button'}, vgreen: {'eventAction': 'Virginia Green', 'lt': 'Virginia Green', 'ot': 'Image'}, website: {'eventAction': 'Visit Website', 'lt': 'Website', 'ot': 'Text'}, youtube: {'eventAction': 'Youtube', 'lt': 'Youtube', 'ot': 'Text'}, twitter: {'eventAction': 'Twitter', 'lt': 'Twitter', 'ot': 'Text'}, booking: {'eventAction': 'Booking', 'lt': 'Booking', 'ot': 'Text'}, pinterest: {'eventAction': 'Pinterest', 'lt': 'Pinterest', 'ot': 'Text'}, socialFlickr: {'eventAction': 'Flickr', 'lt': 'Flickr', 'ot': 'Social'}, socialTwitter: {'eventAction': 'Twitter', 'lt': 'Twitter', 'ot': 'Social'}, socialYoutube: {'eventAction': 'Youtube', 'lt': 'Youtube', 'ot': 'Social'}, socialFacebook: {'eventAction': 'Facebook', 'lt': 'Facebook', 'ot': 'Social'}, socialPinterest: {'eventAction': 'Pinterest', 'lt': 'Pinterest', 'ot': 'Social'}, tabEvents: {'eventAction': 'Click Tab Events', 'lt': 'Events', 'ot': 'Tab'}, tabOffers: {'eventAction': 'Click Tab Offers', 'lt': 'Offers', 'ot': 'Tab'}, tabSocial: {'eventAction': 'Click Tab Social', 'lt': 'Social', 'ot': 'Tab'}, tabOverview: {'eventAction': 'Click Tab Overview', 'lt': 'Overview', 'ot': 'Tab'}, tabMeetings: {'eventAction': 'Click Tab Meetings', 'lt': 'Meetings', 'ot': 'Tab'}, tabAmenities: {'eventAction': 'Click Tab Amenities', 'lt': 'Amenities', 'ot': 'Tab'}, tabTripadvisor: {'eventAction': 'Click Tab Tripadvisor', 'lt': 'Tripadvisor', 'ot': 'Tab'}, subtabTwitter: {'eventAction': 'Click Subtab Twitter', 'lt': 'Twitter', 'ot': 'Tab'}, subtabYoutube: {'eventAction': 'Click Subtab Youtube', 'lt': 'Youtube', 'ot': 'Tab'}, subtabFacebook: {'eventAction': 'Click Subtab Facebook', 'lt': 'Facebook', 'ot': 'Tab'}, subtabPinterest: {'eventAction': 'Click Subtab Pinterest', 'lt': 'Pinterest', 'ot': 'Tab'}, subtabFacilityInfo: {'eventAction': 'Click Subtab Facility Info', 'lt': 'Facility Info', 'ot': 'Tab'}, subtabMeetingRooms: {'eventAction': 'Click Subtab Meeting Rooms', 'lt': 'Meeting Rooms', 'ot': 'Tab'}, subtabAmenities: {'eventAction': 'Click Subtab Amenities', 'lt': 'Subtab Amenities', 'ot': 'Tab'} }; for (var si in seoTObj) { $.extend(seoTObj[si], seoArgs); } root.on('click', '[data-seo-nearby]', function () { gtmDataLayer.push(seoTObj.nearby); }); root.on('click', '[data-seo-vgreen]', function () { gtmDataLayer.push(seoTObj.vgreen); }); root.on('click', '[data-seo-website]', function () { gtmDataLayer.push(seoTObj.website); }); root.on('click', '[data-seo-youtube]', function () { gtmDataLayer.push(seoTObj.youtube); }); root.on('click', '[data-seo-twitter]', function () { gtmDataLayer.push(seoTObj.twitter); }); root.on('click', '[data-seo-booking]', function () { gtmDataLayer.push(seoTObj.booking); }); root.on('click', '[data-seo-pinterest]', function () { gtmDataLayer.push(seoTObj.pinterest); }); root.on('click', '[data-seo-social-flickr]', function () { gtmDataLayer.push(seoTObj.socialFlickr); }); root.on('click', '[data-seo-social-twitter]', function () { gtmDataLayer.push(seoTObj.socialTwitter); }); root.on('click', '[data-seo-social-youtube]', function () { gtmDataLayer.push(seoTObj.socialYoutube); }); root.on('click', '[data-seo-social-facebook]', function () { gtmDataLayer.push(seoTObj.socialFacebook); }); root.on('click', '[data-seo-social-pinterest]', function () { gtmDataLayer.push(seoTObj.socialPinterest); }); root.on('click', '[data-seo-tab-events]', function () { gtmDataLayer.push(seoTObj.tabEvents); }); root.on('click', '[data-seo-tab-offers]', function () { gtmDataLayer.push(seoTObj.tabOffers); }); root.on('click', '[data-seo-tab-social]', function () { gtmDataLayer.push(seoTObj.tabSocial); }); root.on('click', '[data-seo-tab-overview]', function () { gtmDataLayer.push(seoTObj.tabOverview); }); root.on('click', '[data-seo-tab-meetings]', function () { gtmDataLayer.push(seoTObj.tabMeetings); }); root.on('click', '[data-seo-tab-amenities]', function () { gtmDataLayer.push(seoTObj.tabAmenities); }); root.on('click', '[data-seo-tab-tripadvisor]', function () { gtmDataLayer.push(seoTObj.tabTripadvisor); }); root.on('click', '[data-seo-subtab-twitter]', function () { gtmDataLayer.push(seoTObj.subtabTwitter); }); root.on('click', '[data-seo-subtab-youtube]', function () { gtmDataLayer.push(seoTObj.subtabYoutube); }); root.on('click', '[data-seo-subtab-facebook]', function () { gtmDataLayer.push(seoTObj.subtabFacebook); }); root.on('click', '[data-seo-subtab-pinterest]', function () { gtmDataLayer.push(seoTObj.subtabPinterest); }); root.on('click', '[data-seo-subtab-facilityinfo]', function () { gtmDataLayer.push(seoTObj.subtabFacilityInfo); }); root.on('click', '[data-seo-subtab-meetingrooms]', function () { gtmDataLayer.push(seoTObj.subtabMeetingRooms); }); root.on('click', '[data-seo-subtab-amenities]', function () { seoTObj.subtabAmenities.eventAction = 'Click Subtab ' + sem.getSeoData(this, 'data-seo-subtab-amenities'); gtmDataLayer.push(seoTObj.subtabAmenities); }); });