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: 4.9 - 201 Reviews - " + existingTitle; var existingDesc = document.querySelector('meta[name="description"]').getAttribute("content"); document.querySelector('meta[name="description"]').setAttribute("content", "***** Rating: 4.9 - 201 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/Qq_GL4vgnU-0ZRaTUDEsgA.html"; var businessKey = "bz6o60ve"; var locationKey = ""; var tenantKey = ""; 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 = { advert: ' ', widget: '', big: '', wide: '', small: '', starbar: '', starbar10: '', starbar12: '', starbar20: '', starbar25: '', starbar50: '' }; var contents = { summary: ' \ {{reviewCount}} {{reviewText}}', 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 () { if (d.getElementById("ts-json") === null) { var filter = Array.prototype.filter; var productName = "Inspire Home Automation"; var field = document.querySelector("title"); if (field === null || field.innerText.match(/^ *$/) !== null) { field = filter.call(d.querySelectorAll('h1'), function (node) { return node.innerText != ""; })[0]; } if (typeof field !== "undefined") { productName = field.innerText; } var json = "[{\"@type\":\"Product\",\"@id\":\"{{url}}#trustist\",\"description\":\"{{productDesc}}\",\"logo\":\"https://content.trustist.com/brandlogos/2fc6af42-e08b-4f9d-b465-169350312c80.png\",\"image\":[\"https://content.trustist.com/brandlogos/2fc6af42-e08b-4f9d-b465-169350312c80.png\"],\"name\":\"{{productName}}\",\"alternateName\":null,\"hasMap\":null,\"geo\":null,\"telephone\":null,\"url\":\"{{url}}\",\"address\":null,\"branchOf\":null,\"openingHoursSpecification\":null,\"sameAs\":[\"https://www.trustist.com/local-reviews/Website-Review-inspire-home-automation-reviews-2896.html\"],\"@context\":\"http://schema.org\",\"brand\":{\"@type\":\"Organization\",\"@id\":null,\"description\":null,\"logo\":\"https://content.trustist.com/brandlogos/2fc6af42-e08b-4f9d-b465-169350312c80.png\",\"image\":[\"https://content.trustist.com/brandlogos/2fc6af42-e08b-4f9d-b465-169350312c80.png\"],\"name\":\"Manufacturer\",\"alternateName\":null,\"hasMap\":null,\"geo\":null,\"telephone\":null,\"url\":\"https://www.inspirehomeautomation.co.uk\",\"address\":null,\"branchOf\":null,\"openingHoursSpecification\":null,\"sameAs\":null},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":4.9,\"bestRating\":5,\"worstRating\":1,\"reviewCount\":201},\"review\":null,\"mpn\":\"{{url}}\",\"sku\":\"{{url}}\"}]"; var a = d; var c = a.createElement("script"); c.type = 'application/ld+json'; c.id = 'ts-json'; c.innerText = json .replace(new RegExp("{{url}}", 'g'), w.location.href) .replace("\"{{productName}}\"", JSON.stringify(productName).replace(/[^ -~]+/g, "")) .replace("\"{{productDesc}}\"", JSON.stringify((d.body.innerText || d.body.textContent).substring(0, 200).replace(/[^ -~]+/g, "") + "...")); 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 { } }); 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; } 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]; 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/2fc6af42-e08b-4f9d-b465-169350312c80.html?mode=review","id":"9a9b0d66-e568-474d-939b-f1859a3769d9"},{"name":"Google","description":"Google or YouTube Login Required","url":"https://maps.google.com/?cid=7743438045137024991","id":"84fe44de-280b-483d-a9d5-3068eac1a857"},{"name":"Trustpilot","description":"Trustpilot, Google or Facebook Login Required","url":"https://uk.trustpilot.com/review/inspirehomeautomation.co.uk","id":"a6e40440-b3cb-4be2-bf15-3dbbf0159f6f"},{"name":"Facebook","description":"Facebook Login Required","url":"https://www.facebook.com/InspireHomeAutomation/reviews","id":"cff801d9-244d-4f01-91c3-187a3d0483a8"}]; if (reviewSources.length > 1) { reviewLinkTemplate = '