PageSourceSearch

https://www.babiafi.co.uk/js/cookienotice.js

js babiafi.co.uk collected 2026-09-26 05:48:11 UTC 6,513 bytes, 180 lines download raw bytes

1/*
2 Copyright 2014 Google Inc. All rights reserved.
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15 */
16
17/*
18 * For more information on this file, see http://www.cookiechoices.org/
19 */
20
21(function(window) {
22
23  if (!!window.cookieChoices) {
24    return window.cookieChoices;
25  }
26
27  var document = window.document;
28  // IE8 does not support textContent, so we should fallback to innerText.
29  var supportsTextContent = 'textContent' in document.body;
30
31  var cookieChoices = (function() {
32
33    var cookieName = 'displayCookieNotice';
34    var cookieConsentId = 'cookieChoiceInfo';
35    var divClass = 'cookie-choices-info';
36    var innerDivClass = 'cookie-choices-inner';
37    var textSpan = 'cookie-choices-text';
38    var buttonsClass = 'cookie-choices-buttons';
39    var buttonClass = 'cookie-choices-button';
40    var singletonClass = 'singleton-element';
41    var dismissLinkId = 'cookieChoiceDismiss';
42
43    function _createHeaderElement(cookieText, dismissText, linkText, linkHref) {
44      // Clean the HTML Tags from cookieText
45      if (cookieText && cookieText.replace) {
46        cookieText = cookieText.replace(/<[^>]*>/g,'');
47      }
48
49      var cookieInnerElement = document.createElement('div');
50      cookieInnerElement.className = innerDivClass;
51      cookieInnerElement.appendChild(_createConsentText(cookieText));
52
53      var buttonsElement = document.createElement('span');
54      buttonsElement.className = buttonsClass;
55      cookieInnerElement.appendChild(buttonsElement);
56
57      if (!!linkText && !!linkHref) {
58        buttonsElement.appendChild(_createInformationLink(linkText, linkHref));
59      }
60
61      buttonsElement.appendChild(_createDismissLink(dismissText));
62
63      var cookieConsentElement = document.createElement('div');
64      cookieConsentElement.id = cookieConsentId;
65      cookieConsentElement.className = divClass + ' ' + singletonClass;
66      cookieConsentElement.appendChild(cookieInnerElement);
67      return cookieConsentElement;
68    }
69
70    function _createStyleElement() {
71      var style = document.createElement('style');
72      style.className = singletonClass;
73      style.type = 'text/css';
74      _setElementText(style,
75          '.' + divClass + ' { ' +
76              'position:fixed;width:100%;background-color:#666;margin:0;' +
77              'left:0;top:0;padding:0;z-index:4000;text-align:center;' +
78              'color:#fff;line-height:140%;padding:10px 0;' +
79              'font-family:roboto,Arial; } ' +
80          '.' + divClass + ' .' + innerDivClass + ' { ' +
81              'position:relative;width:initial;margin:0;left:0;top:0; } ' +
82          '.' + divClass + ' .' + textSpan + ' { ' +
83              'display:inline-block;vertical-align:middle;font-size:16px;' +
84              'margin:10px 20px;color:#ccc;max-width:800px;' +
85              'text-align:left; }' +
86          '.' + divClass + ' .' + buttonsClass + ' { ' +
87              'display:inline-block;vertical-align:middle;' +
88              'white-space:nowrap;margin:0 10px; } ' +
89          '.' + divClass + ' .' + buttonClass + ':hover { ' +
90              ' color: #fff; } ' +
91          '.' + divClass + ' .' + buttonClass + ' { ' +
92              'font-weight:bold;text-transform:UPPERCASE;' +
93              'white-space:nowrap;' +
94              'color:#eee;margin-left:8px;padding:0 6px; ' +
95              'text-decoration:none; }');
96      document.getElementsByTagName('head')[0].appendChild(style);
97    }
98
99    function _setElementText(element, text) {
100      if (supportsTextContent) {
101        element.textContent = text;
102      } else {
103        element.innerText = text;
104      }
105    }
106
107    function _createConsentText(cookieText) {
108      var consentText = document.createElement('span');
109      _setElementText(consentText, cookieText);
110      consentText.className = textSpan;
111      return consentText;
112    }
113
114    function _createDismissLink(dismissText) {
115      var dismissLink = document.createElement('a');
116      _setElementText(dismissLink, dismissText);
117      dismissLink.id = dismissLinkId;
118      dismissLink.href = '#';
119      dismissLink.className = buttonClass;
120      return dismissLink;
121    }
122
123    function _createInformationLink(linkText, linkHref) {
124      var infoLink = document.createElement('a');
125      _setElementText(infoLink, linkText);
126      infoLink.href = linkHref;
127      infoLink.target = '_blank';
128      infoLink.className = buttonClass;
129      return infoLink;
130    }
131
132    function _dismissLinkClick(e) {
133      _saveUserPreference();
134      _removeCookieConsent();
135      e.stopPropagation && e.stopPropagation();
136      e.cancelBubble = true;
137      return false;
138    }
139
140    function _showCookieConsent(cookieText, dismissText, linkText, linkHref) {
141      if (_shouldDisplayConsent()) {
142        _removeCookieConsent();
143        _createStyleElement();
144        var consentElement =
145            _createHeaderElement(cookieText, dismissText, linkText, linkHref);
146        var fragment = document.createDocumentFragment();
147        fragment.appendChild(consentElement);
148        document.body.appendChild(fragment.cloneNode(true));
149        document.getElementById(dismissLinkId).onclick = _dismissLinkClick;
150      }
151    }
152
153    function _removeCookieConsent() {
154      var cookieChoiceElement = document.getElementById(cookieConsentId);
155      if (cookieChoiceElement != null) {
156        cookieChoiceElement.parentNode.removeChild(cookieChoiceElement);
157      }
158    }
159
160    function _saveUserPreference() {
161      // Set the cookie expiry to one year after today.
162      var expiryDate = new Date();
163      expiryDate.setFullYear(expiryDate.getFullYear() + 1);
164      document.cookie =
165          cookieName + '=y; path=/; expires=' + expiryDate.toGMTString();
166    }
167
168    function _shouldDisplayConsent() {
169      // Display the header only if the cookie has not been set.
170      return !document.cookie.match(new RegExp(cookieName + '=([^;]+)'));
171    }
172
173    var exports = {};
174    exports.showCookieConsentBar = _showCookieConsent;
175    return exports;
176  })();
177
178  window.cookieChoices = cookieChoices;
179  return cookieChoices;
180})(this);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.