Array.prototype.find = Array.prototype.find || function (callback) { if (typeof callback !== "function") { throw new TypeError("callback must be a function"); } var list = Object(this); // Makes sures is always has an positive integer as length. var length = list.length >>> 0; var thisArg = arguments[1]; for (var i = 0; i < length; i++) { var element = list[i]; if (callback.call(thisArg, element, i, list)) { return element; } } }; (function (w, d) { w.tsUpdateMetaDescription = function () { var existingTitle = document.querySelector('title').innerText; document.querySelector('title').innerText = "**** Rating: 3.8 - 78 Reviews - " + existingTitle; var existingDesc = document.querySelector('meta[name="description"]').getAttribute("content"); document.querySelector('meta[name="description"]').setAttribute("content", "**** Rating: 3.8 - 78 Reviews - " + existingDesc); }; var timestamp = document.createElement("meta"); timestamp.setAttribute("name", "ts-timestamp"); timestamp.setAttribute("content", new Date().toLocaleString()); document.head.appendChild(timestamp); var reviewLink = "https://www.trustistreviewer.com/survey/PXCdq-AsKUu11BDQ2uIAFA.html"; var businessKey = "1nghjesa"; var locationKey = ""; var tenantKey = ""; var json = "[{\"@context\":\"http://schema.org\",\"brand\":{\"@type\":\"Organization\",\"logo\":\"https://content.trustist.com/brandlogos/ab9d703d-2ce0-4b29-b5d4-10d0dae20014.png\",\"image\":\"https://content.trustist.com/brandlogos/ab9d703d-2ce0-4b29-b5d4-10d0dae20014.png\",\"name\":\"Pennethorne\u0027s Bar\",\"url\":\"http://www.pennethornes.co.uk/\"},\"aggregateRating\":{\"reviewCount\":78,\"@type\":\"AggregateRating\",\"ratingValue\":3.8,\"bestRating\":5,\"worstRating\":1},\"image\":[\"https://content.trustist.com/brandlogos/ab9d703d-2ce0-4b29-b5d4-10d0dae20014.png\"],\"mpn\":\"{{url}}\",\"sku\":\"{{url}}\",\"@type\":\"Product\",\"@id\":\"{{url}}#trustist\",\"description\":\"{{productDesc}}\",\"logo\":\"https://content.trustist.com/brandlogos/ab9d703d-2ce0-4b29-b5d4-10d0dae20014.png\",\"name\":\"{{productName}}\",\"url\":\"{{url}}\",\"sameAs\":[\"https://www.trustist.com/local-reviews/Website-Review-pennethorne-s-bar-reviews-2403.html\"]}]"; var templateDefs = [ { name: "widget", template: "widget", content: "summary", css: "", reviewLink: true, starsWidth: 65 }, { name: "big", template: "big", content: "summaryBig", css: "https://widgetassets.trustist.com/css/reviewer_big.css", reviewLink: true, starsWidth: 150 }, { name: "wide", template: "wide", content: "summaryBig", css: "https://widgetassets.trustist.com/css/reviewer_wide.css", reviewLink: true, starsWidth: 150 }, { name: "small", template: "small", content: "summary", css: "https://widgetassets.trustist.com/css/reviewer_small.css", reviewLink: true, starsWidth: 65 }, { name: "starbar", template: "starbar20", content: "", css: "", reviewLink: false, starsWidth: 65 }, { name: "starbar10", template: "starbar10", content: "", css: "", reviewLink: false, starsWidth: 65 }, { name: "starbar12", template: "starbar12", content: "", css: "", reviewLink: false, starsWidth: 65 }, { name: "starbar20", template: "starbar20", content: "", css: "", reviewLink: false, starsWidth: 65 }, { name: "starbar25", template: "starbar25", content: "", css: "", reviewLink: false, starsWidth: 65 }, { name: "starbar50", template: "starbar50", content: "", css: "", reviewLink: false, starsWidth: 65 } ]; var logo = '
'; var templates = { widget: '', big: '', wide: '', small: '', starbar: '', starbar10: '', starbar12: '', starbar20: '', starbar25: '', starbar50: '' }; var contents = { summary: ' \ {{reviewCount}} {{reviewText}}', // advert: '', summaryBig: '{{reviewCount}} {{reviewText}}' }; var reviewTemplate = ''; function start(f) { /in/.test(document.readyState) ? setTimeout(start, 5, f) : f(); } // add tags tsAddCssTag("https://widgetassets.trustist.com/css/cleanslate.css"); tsAddCssTag("https://widgetassets.trustist.com/css/reviewer.css"); start(function () { var filter = Array.prototype.filter; var els = d.querySelectorAll('h1,title,h2'); var productName = "Pennethorne's Bar"; var field = filter.call(els, function(node) { return node.innerText != ""; })[0]; if (typeof field !== "undefined") { productName = field.innerText; } var a = d; var c = a.createElement("script"); c.type = 'application/ld+json'; c.innerText = json .replace(new RegExp("{{url}}", 'g'), w.location.href) .replace("{{productName}}", productName) .replace("\"{{productDesc}}\"", JSON.stringify((d.body.innerText || d.body.textContent).replace(/[^ -~]+/g, "").substring(0, 200) + "...")); a = a.getElementsByTagName("head")[0]; a.appendChild(c); // iterate over all widgets on the page and render var divs = document.querySelectorAll("[ts-widget],div.ts-widget"); if (divs.length >= 0) { for (var i = 0; i < divs.length; i++) { tsDisplayWidget(divs[i], businessKey, locationKey, tenantKey); } } else { console.log("No TRUSTist widgets found to render"); } }); function tsDisplayWidget(target, businessKey, locationKey, tenantKey) { // get options before cleanslate var options = tsReadAttributes(target); // see if the widget requested a different location var lkey = options.locationKey || locationKey; var bkey = options.businessKey || businessKey; var tkey = options.tenantKey || tenantKey; //todo: tenants unable to place reviews if (tkey !== "") { options.suppressReviewLink = true; } // build the link to the review, done per widget as there may be multiple different brands/locations per page var reviewLink = "https://www.trustistreviewer.com/surveyapp/" + bkey; if (typeof lkey !== "undefined" && lkey !== "") reviewLink += "/" + lkey; if (lkey === locationKey && bkey === businessKey) { tsDrawWidget(target, options); } else { // IE6 and below will not work var xhr = new XMLHttpRequest(); var url = "https://widget.trustist.com/widgetdata?"; if (typeof tkey !== "undefined" && tkey !== "") url += "tenantKey=" + tkey; if (typeof bkey !== "undefined" && bkey !== "") url += "businessKey=" + bkey; if (typeof lkey !== "undefined" && lkey !== "") url += "&locationKey=" + lkey; xhr.open("GET", url); xhr.onload = function () { if (xhr.status === 200) { tsDrawWidget(target, options); } }; xhr.send(); } } function tsDrawWidget(target, options) { var widgetStyle = ""; var viewLinkStyle = ""; var reviewLinkStyle = ""; var reviewLinkDivStyle = ""; var widgetScoreStyle = ""; var logoStyle = ""; var rel = "external"; var templateDef = templateDefs.find(function (def) { return def.name === options.templateName; }); var template = templates[templateDef.template]; var content = contents[templateDef.content]; // contents.advert var reviewLinkTemplate = ""; if (templateDef.css !== "") { tsAddCssTag(templateDef.css); } if (options.noFollow === false) { rel = "nofollow"; } if (templateDef.reviewLink === true && options.suppressReviewLink === false) { if (options.reviewLinks === "all" && true) { var reviewSources = [{"name":"TRUSTist","description":"No Login Required","url":"https://www.trustistreviewer.com/survey/ab9d703d-2ce0-4b29-b5d4-10d0dae20014.html?mode=review","id":"9a9b0d66-e568-474d-939b-f1859a3769d9"},{"name":"Google","description":"Google or YouTube Login Required","url":"https://maps.google.com/?cid=240314222153854578","id":"84fe44de-280b-483d-a9d5-3068eac1a857"},{"name":"Yell","description":"Facebook, Google or Yell Login Required","url":"https://www.yell.com/biz/pennethorne-s-bar-london-8725073/","id":"89bb56e5-7621-41f2-a654-3f56bdbbddad"},{"name":"Yelp","description":"Facebook or Yelp Login Required","url":"https://www.yelp.com/biz/pennethornes-cafe-bar-strand","id":"5b76a1d8-7f61-44f3-b2d7-7cdf4dfb591f"},{"name":"TripAdvisor","description":"No Login Required","url":"https://www.tripadvisor.co.uk/Restaurant_Review-g186338-d7289000-Reviews-Pennethorne_s_Bar-London_England.html","id":"50e412cc-4189-4006-98d2-2f6a0ad46bd0"}]; if (reviewSources.length > 1) { reviewLinkTemplate = '