/** FHRSWidget.Core.js: shared functionality for widgets **/
// Namespace definition : All Widget Classes should be created in this namespace //
if (!window.FHRSWidget47156) {
window.FHRSWidget47156 = {};
}
// Widget Core Constructor //
FHRSWidget47156.Core = function () {
// Write out Parent Div where script is placed
// Widget content can then be attached to this div through the DOM
this.parentDivId = 'CoreJsBaseDiv-47156';
document.write('
');
};
// Widget Core Class Definition //
FHRSWidget47156.Core.prototype =
{
// Create any HTML element //
createTag: function (tagName, innerHtml, cssClass) {
var tag = $c_47156(tagName);
if (cssClass) {
this.setCssClass(tag, cssClass);
}
if (innerHtml) {
tag.innerHTML = innerHtml;
}
return tag;
},
// Create Unordered List of Hyperlinks //
createHyperlinkList: function (dataCollection, businessUrl, ratingImageUrl, listId, cssClass) {
this.parentDiv = $g_47156(this.parentDivId);
// Remove existing list with this Id, if exists
// Create list
var list;
list = $c_47156('div');
list.id = listId;
list.name = listId;
if (cssClass !== '') {
this.setCssClass(list, cssClass);
}
// Add items to list
var div;
for (index in dataCollection) {
var item = dataCollection[index];
div = $c_47156('div');
var businessName = item.BusinessName;
var ratingKey = item.RatingKey;
var postCode = item.PostCode;
if (businessName) {
var hyperlink = this.createHyperlink(null, businessName, businessUrl + item.FHRSID, null, 'listhyperlink');
div.appendChild(hyperlink);
var image = this.createTag('div', postCode, null);
div.appendChild(image);
image = this.createTag('div', '', null);
div.appendChild(image);
}
else {
var norating = this.createTag('div', '', null);
div.appendChild(norating);
}
list.appendChild(div);
}
return list;
},
// Create a hyperlink and attach event handlers if needed //
createHyperlink: function (hyperlinkId, text, href, onClickFunction, cssClass, target) {
hyperlink = $c_47156('a');
if (hyperlinkId) {
hyperlink.id = hyperlinkId;
hyperlink.name = hyperlinkId;
}
hyperlink.title = text;
hyperlink.innerHTML = ('' + text + '
'); //text));
if (href) {
hyperlink.href = href;
}
if (cssClass !== null && cssClass !== '') {
this.setCssClass(hyperlink, cssClass);
}
if (target) {
hyperlink.setAttribute("target", target);
}
// Attach onclick event handlers
if (onClickFunction) {
hyperlink.onclick = onClickFunction;
var onClickHandler = new Function(hyperlink.onclick);
if (hyperlink.addEventListener) {
hyperlink.addEventListener('click', onClickHandler, false);
} else if (hyperlink.attachEvent) {
hyperlink.attachEvent('onclick', onClickHandler);
}
}
return hyperlink;
},
// Adds CSS Class to any element //
setCssClass: function (elem, cls) {
elem.setAttribute('class', cls);
elem.setAttribute('className', cls);
},
// Attach a Stylesheet to document //
attachStyleSheet: function (path, linkId) {
var doc = document.getElementsByTagName('head').item(0);
var link = $c_47156('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = path;
link.id = linkId;
doc.appendChild(link);
return false;
},
// Attach a new script, useful for simulating postbacks //
attachScript: function (path, scriptId) {
script = $c_47156('script');
script.src = path;
script.type = 'text/javascript';
script.id = scriptId;
this.parentDiv.appendChild(script);
return false;
}
};
// Shortcut for GetElementsById //
function $g_47156(elem)
{
return document.getElementById(elem);
}
// Shortcut for CreateElement //
function $c_47156(elem)
{
return document.createElement(elem);
}
// Construct a new core object
var core47156 = new FHRSWidget47156.Core();
/** FHRSWidget.Widget.js: renders list of dev events **/
// Widget Constructor //
FHRSWidget47156.Widget = function()
{
// Get reference to main div. All widget content will be children of this div
this.parentDiv = document.getElementById(core47156.parentDivId);
this.businessUrl = "https://ratings.food.gov.uk/business/";
this.ratingImageUrl = "https://api1-ratings.food.gov.uk/images/scores/small/";
this.fhrsEstablishmentData = [{"AddressLine1":"Kinder Day Nurseries","AddressLine2":"Silverdale Road","AddressLine3":"Royal Tunbridge Wells","AddressLine4":"Kent","BusinessName":"Tunbridge Wells Nursery","BusinessType":"Caring Premises","BusinessTypeID":5,"Distance":null,"FHRSID":47156,"Geocode":{"Latitude":null,"Longitude":null},"LocalAuthorityBusinessID":"11\/00109\/MIXED","LocalAuthorityCode":"192","LocalAuthorityEmailAddress":"EHAdmin@Midkent.gov.uk","LocalAuthorityName":"Tunbridge Wells","LocalAuthorityWebSite":"http:\/\/www.tunbridgewells.gov.uk","NewRatingPending":false,"PostCode":"TN4 9HU","RatingDate":"03 April 2024","RatingKey":"fhrs_1_en-gb","RatingValue":"1","ReInspectionResult":null,"RightToReply":"<p>\u000d\u000a\u0009<span style="font-size: 12pt; font-family: Aptos, sans-serif;">Since the inspection we have recruited a new experienced chef who had been with us as an agency chef previously and our management team deep cleaned the kitchen the following day to ensure the high standards returned. All actions that are within our power to fix immediately were completed the following week and we have been working with contractors to fix all actions.<\/span><\/p>\u000d\u000a<div>\u000d\u000a\u0009<span style="font-size: 12pt; font-family: Aptos, sans-serif;">We are looking forward to the follow up inspection so that we can demonstrate our usual standards and we will be booking a rescoring at the earliest opportunity<\/span><br \/>\u000d\u000a\u0009<div>\u000d\u000a\u0009\u0009 <\/div>\u000d\u000a<\/div>\u000d\u000a","SchemeType":"FHRS","Scores":{"ConfidenceInManagement":20,"Hygiene":10,"Structural":5}}];
}
// Widget : Core Class Definition //
FHRSWidget47156.Widget.prototype =
{
// Main function for Events Widget : Handles rendering the widget to the consuming site //
render: function () {
var child1 = core47156.createHyperlinkList(this.fhrsEstablishmentData, this.businessUrl, this.ratingImageUrl, 'eventList47156', 'widgetcontainer');
var child2 = core47156.createTag('br');
var els = document.getElementsByClassName("47156");
for (var i = 0; i < els.length; i++) {
// Create Border and Shadow and return Content Div
var contentDiv = this.createContentBorder(els[i]);
// Create and Attach Events List
contentDiv.appendChild(child1);
contentDiv.appendChild(child2);
}
},
// Create Border, Shadow, and Content Div //
createContentBorder: function (localParentDiv) {
var outerDiv = core47156.createTag('div', '', 'widget1');
var innerDiv = core47156.createTag('div', '', 'widget2');
var contentDiv = core47156.createTag('div', '', 'widget3');
innerDiv.appendChild(contentDiv);
outerDiv.appendChild(innerDiv);
localParentDiv.appendChild(outerDiv);
return contentDiv;
}
};
// Create Widget Object
var ev_w_47156 = new FHRSWidget47156.Widget();
ev_w_47156.render();