PageSourceSearch

https://www.castillejoderobledo.es/sites/all/modules/eu_cookie_compliance/js/eu_cookie_compliance.js?tk0h2l

js castillejoderobledo.es collected 2026-10-02 22:25:04 UTC 9,635 bytes, 250 lines download raw bytes

1(function ($) {
2  'use strict';
3
4  Drupal.behaviors.eu_cookie_compliance_popup = {
5    attach: function(context, settings) {
6      if (context !== document) {
7        return;
8      }
9
10      // If configured, check JSON callback to determine if in EU.
11      if (Drupal.settings.eu_cookie_compliance.popup_eu_only_js) {
12        if (Drupal.eu_cookie_compliance.showBanner()) {
13          var url = Drupal.settings.basePath + 'eu-cookie-compliance-check';
14          var data = {};
15          $.getJSON(url, data, function(data) {
16            // If in the EU, show the compliance popup.
17            if (data.in_eu) {
18              Drupal.eu_cookie_compliance.execute();
19            }
20            // If not in EU, set an agreed cookie automatically.
21            else {
22              Drupal.eu_cookie_compliance.setStatus(2);
23            }
24          });
25        }
26      }
27      // Otherwise, fallback to standard behavior which is to render the popup.
28      else {
29        Drupal.eu_cookie_compliance.execute();
30      }
31    }
32  };
33
34  Drupal.eu_cookie_compliance = {};
35
36  Drupal.eu_cookie_compliance.execute = function() {
37    try {
38        if (!Drupal.settings.eu_cookie_compliance.popup_enabled) {
39          return;
40        }
41        if (!Drupal.eu_cookie_compliance.cookiesEnabled()) {
42          return;
43        }
44        Drupal.eu_cookie_compliance.updateCheck();
45        var status = Drupal.eu_cookie_compliance.getCurrentStatus();
46        if (status === 0 || status === null) {
47          if (!Drupal.settings.eu_cookie_compliance.disagree_do_not_show_popup || status === null) {
48            Drupal.eu_cookie_compliance.createPopup(Drupal.settings.eu_cookie_compliance.popup_html_info);
49            Drupal.eu_cookie_compliance.attachAgreeEvents();
50          }
51        } else if (status === 1 && Drupal.settings.eu_cookie_compliance.popup_agreed_enabled) {
52          Drupal.eu_cookie_compliance.createPopup(Drupal.settings.eu_cookie_compliance.popup_html_agreed);
53          Drupal.eu_cookie_compliance.attachHideEvents();
54        }
55      }
56      catch(e) {
57      }
58  };
59
60  Drupal.eu_cookie_compliance.createPopup = function(html) {
61    // This fixes a problem with jQuery 1.9.
62    var $popup = $('<div></div>').html(html);
63    $popup.attr('id', 'sliding-popup');
64    if (!Drupal.settings.eu_cookie_compliance.popup_use_bare_css) {
65      $popup.height(Drupal.settings.eu_cookie_compliance.popup_height)
66          .width(Drupal.settings.eu_cookie_compliance.popup_width);
67    }
68    $popup.hide();
69    var height = 0;
70    if (Drupal.settings.eu_cookie_compliance.popup_position) {
71      $popup.prependTo('body');
72      height = $popup.height();
73      $popup.show()
74        .attr('class', 'sliding-popup-top clearfix')
75        .css('top', -1 * height)
76        .animate({top: 0}, Drupal.settings.eu_cookie_compliance.popup_delay);
77    } else {
78      if (Drupal.settings.eu_cookie_compliance.better_support_for_screen_readers) {
79        $popup.prependTo('body');
80      }
81      else {
82        $popup.appendTo('body');
83      }
84      height = $popup.height();
85      $popup.show()
86        .attr('class', 'sliding-popup-bottom')
87        .css('bottom', -1 * height)
88        .animate({bottom: 0}, Drupal.settings.eu_cookie_compliance.popup_delay);
89    }
90  };
91
92  Drupal.eu_cookie_compliance.attachAgreeEvents = function() {
93    var clickingConfirms = Drupal.settings.eu_cookie_compliance.popup_clicking_confirmation;
94    var scrollConfirms = Drupal.settings.eu_cookie_compliance.popup_scrolling_confirmation;
95
96    $('.agree-button').click(Drupal.eu_cookie_compliance.acceptAction);
97
98    if (clickingConfirms) {
99      $('a, input[type=submit], button[type=submit]').bind('click.euCookieCompliance', Drupal.eu_cookie_compliance.acceptAction);
100    }
101
102    if (scrollConfirms) {
103      $(window).bind('scroll', Drupal.eu_cookie_compliance.acceptAction);
104    }
105
106    $('.find-more-button').not('.find-more-button-processed').addClass('find-more-button-processed').click(Drupal.eu_cookie_compliance.moreInfoAction);
107  };
108
109  Drupal.eu_cookie_compliance.attachHideEvents = function() {
110    var popupHideAgreed = Drupal.settings.eu_cookie_compliance.popup_hide_agreed;
111    var clickingConfirms = Drupal.settings.eu_cookie_compliance.popup_clicking_confirmation;
112    $('.hide-popup-button').click(function() {
113      Drupal.eu_cookie_compliance.changeStatus(2);
114    });
115    if (clickingConfirms) {
116      $('a, input[type=submit], button[type=submit]').unbind('click.euCookieCompliance');
117    }
118    if (popupHideAgreed) {
119      $('a, input[type=submit], button[type=submit]').bind('click.euCookieComplianceHideAgreed', function() {
120        Drupal.eu_cookie_compliance.changeStatus(2);
121      });
122    }
123    $('.find-more-button').not('.find-more-button-processed').addClass('find-more-button-processed').click(Drupal.eu_cookie_compliance.moreInfoAction);
124  };
125
126  Drupal.eu_cookie_compliance.acceptAction = function () {
127    var agreedEnabled = Drupal.settings.eu_cookie_compliance.popup_agreed_enabled;
128    var nextStatus = 1;
129    if(!agreedEnabled) {
130      Drupal.eu_cookie_compliance.setStatus(1);
131      nextStatus = 2;
132    }
133    Drupal.eu_cookie_compliance.changeStatus(nextStatus);
134  };
135
136  Drupal.eu_cookie_compliance.moreInfoAction = function () {
137    if (Drupal.settings.eu_cookie_compliance.disagree_do_not_show_popup) {
138      Drupal.eu_cookie_compliance.setStatus(0);
139      $('#sliding-popup').remove();
140    }
141    else {
142      if (Drupal.settings.eu_cookie_compliance.popup_link_new_window) {
143        window.open(Drupal.settings.eu_cookie_compliance.popup_link);
144      }
145      else {
146        window.location.href = Drupal.settings.eu_cookie_compliance.popup_link;
147      }
148    }
149  };
150
151  Drupal.eu_cookie_compliance.getCurrentStatus = function() {
152    var value = $.cookie('cookie-agreed');
153    value = parseInt(value);
154    if (isNaN(value)) {
155      value = null;
156    }
157    return value;
158  };
159
160  Drupal.eu_cookie_compliance.changeStatus = function(value) {
161    var status = Drupal.eu_cookie_compliance.getCurrentStatus();
162    if (status === value) {
163      return;
164    }
165    if (Drupal.settings.eu_cookie_compliance.popup_position) {
166      $('.sliding-popup-top').animate({top: $('#sliding-popup').height() * -1}, Drupal.settings.eu_cookie_compliance.popup_delay, function () {
167        if (status === null) {
168          $('#sliding-popup').html(Drupal.settings.eu_cookie_compliance.popup_html_agreed).animate({top: 0}, Drupal.settings.eu_cookie_compliance.popup_delay);
169          Drupal.eu_cookie_compliance.attachHideEvents();
170        }
171        else if (status === 1) {
172          $('#sliding-popup').remove();
173          Drupal.eu_cookie_compliance.reloadPage();
174        }
175      });
176    } else {
177      $('.sliding-popup-bottom').animate({bottom: $('#sliding-popup').height() * -1}, Drupal.settings.eu_cookie_compliance.popup_delay, function () {
178        if (status === null) {
179          $('#sliding-popup').html(Drupal.settings.eu_cookie_compliance.popup_html_agreed).animate({bottom: 0}, Drupal.settings.eu_cookie_compliance.popup_delay);
180          Drupal.eu_cookie_compliance.attachHideEvents();
181        }
182        else if (status === 1) {
183          $('#sliding-popup').remove();
184          Drupal.eu_cookie_compliance.reloadPage();
185        }
186      });
187    }
188    Drupal.eu_cookie_compliance.setStatus(value);
189  };
190
191  Drupal.eu_cookie_compliance.setStatus = function(status) {
192    var date = new Date();
193    var domain = Drupal.settings.eu_cookie_compliance.domain ? Drupal.settings.eu_cookie_compliance.domain : '';
194    var path = Drupal.settings.basePath;
195    if(path.length > 1) {
196      var pathEnd = path.length - 1;
197      if (path.lastIndexOf('/') === pathEnd) {
198        path = path.substring(0, pathEnd);
199      }
200    }
201    date.setDate(date.getDate() + parseInt(Drupal.settings.eu_cookie_compliance.cookie_lifetime));
202    $.cookie('cookie-agreed', status, {expires: date, path: path, domain: domain});
203  };
204
205  Drupal.eu_cookie_compliance.hasAgreed = function() {
206    var status = Drupal.eu_cookie_compliance.getCurrentStatus();
207    return (status === 1 || status === 2);
208  };
209
210  Drupal.eu_cookie_compliance.showBanner = function() {
211    var showBanner = false;
212    var status = Drupal.eu_cookie_compliance.getCurrentStatus();
213    if (status === 0 || status === null) {
214      if (!Drupal.settings.eu_cookie_compliance.disagree_do_not_show_popup || status === null) {
215        showBanner = true;
216      }
217    } else if (status === 1 && Drupal.settings.eu_cookie_compliance.popup_agreed_enabled) {
218      showBanner = true;
219    }
220    return showBanner;
221  };
222
223  Drupal.eu_cookie_compliance.cookiesEnabled = function() {
224    var cookieEnabled = navigator.cookieEnabled;
225    if (typeof navigator.cookieEnabled === 'undefined' && !cookieEnabled) {
226      document.cookie = 'testCookie';
227      cookieEnabled = (document.cookie.indexOf('testCookie') !== -1);
228    }
229    return cookieEnabled;
230  };
231
232  Drupal.eu_cookie_compliance.reloadPage = function() {
233    if (Drupal.settings.eu_cookie_compliance.reload_page) {
234      location.reload();
235    }
236  };
237
238  // This code upgrades the cookie agreed status when upgrading for an old version.
239  Drupal.eu_cookie_compliance.updateCheck = function () {
240    var legacyCookie = 'cookie-agreed-' + Drupal.settings.eu_cookie_compliance.popup_language;
241    var domain = Drupal.settings.eu_cookie_compliance.domain ? Drupal.settings.eu_cookie_compliance.domain : '';
242    var path = Drupal.settings.basePath;
243    var cookie;
244    if ((cookie = $.cookie(legacyCookie)) !== null) {
245      $.cookie('cookie-agreed', cookie, { path:  path, domain: domain });
246      $.cookie(legacyCookie, null, { path: path, domain: domain });
247    }
248  }
249
250})(jQuery);

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.