PageSourceSearch

https://www.ville-locmiquelic.fr/fileadmin/templates/LA/js/jquery-eu-cookie-law-popup.js?1517933364

js ville-locmiquelic.fr collected 2026-10-02 14:50:01 UTC 8,674 bytes, 267 lines download raw bytes

1/**
2 * 	
3 * JQUERY EU COOKIE LAW POPUPS
4 * version 1.0.1
5 * 
6 * Code on Github:
7 * https://github.com/wimagguc/jquery-eu-cookie-law-popup
8 * 
9 * To see a live demo, go to:
10 * http://www.wimagguc.com/2015/03/jquery-eu-cookie-law-popup/
11 * 
12 * by Richard Dancsi
13 * http://www.wimagguc.com/
14 * 
15 */
16
17(function($) {
18
19// for ie9 doesn't support debug console >>>
20if (!window.console) window.console = {};
21if (!window.console.log) window.console.log = function () { };
22// ^^^
23
24$.fn.euCookieLawPopup = (function() {
25
26	var _self = this;
27
28	///////////////////////////////////////////////////////////////////////////////////////////////
29	// PARAMETERS (MODIFY THIS PART) //////////////////////////////////////////////////////////////
30	_self.params = {
31		cookiePolicyUrl : 'http://www.wimagguc.com/?cookie-policy',
32		popupPosition : 'top',
33		colorStyle : 'default',
34		compactStyle : false,
35		popupTitle : 'This website is using cookies',
36		popupText : 'We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we\'ll assume that you are happy to receive all cookies on this website.',
37		buttonContinueTitle : 'Continue',
38		buttonLearnmoreTitle : 'Learn more',
39		buttonLearnmoreOpenInNewWindow : true,
40		agreementExpiresInDays : 30,
41		autoAcceptCookiePolicy : false,
42		htmlMarkup : null
43	};
44
45	///////////////////////////////////////////////////////////////////////////////////////////////
46	// VARIABLES USED BY THE FUNCTION (DON'T MODIFY THIS PART) ////////////////////////////////////
47	_self.vars = {
48		INITIALISED : false,
49		HTML_MARKUP : null,
50		COOKIE_NAME : 'EU_COOKIE_LAW_CONSENT'
51	};
52
53	///////////////////////////////////////////////////////////////////////////////////////////////
54	// PRIVATE FUNCTIONS FOR MANIPULATING DATA ////////////////////////////////////////////////////
55
56	// Overwrite default parameters if any of those is present
57	var parseParameters = function(object, markup, settings) {
58
59		if (object) {
60			var className = $(object).attr('class') ? $(object).attr('class') : '';
61			if (className.indexOf('eupopup-top') > -1) {
62				_self.params.popupPosition = 'top';
63			}
64			else if (className.indexOf('eupopup-fixedtop') > -1) {
65				_self.params.popupPosition = 'fixedtop';
66			}
67			else if (className.indexOf('eupopup-bottomright') > -1) {
68				_self.params.popupPosition = 'bottomright';
69			}
70			else if (className.indexOf('eupopup-bottomleft') > -1) {
71				_self.params.popupPosition = 'bottomleft';
72			}
73			else if (className.indexOf('eupopup-bottom') > -1) {
74				_self.params.popupPosition = 'bottom';
75			}
76			else if (className.indexOf('eupopup-block') > -1) {
77				_self.params.popupPosition = 'block';
78			}
79			if (className.indexOf('eupopup-color-default') > -1) {
80				_self.params.colorStyle = 'default';
81			}
82			else if (className.indexOf('eupopup-color-inverse') > -1) {
83				_self.params.colorStyle = 'inverse';
84			}
85			if (className.indexOf('eupopup-style-compact') > -1) {
86				_self.params.compactStyle = true;
87			}
88		}
89
90		if (markup) {
91			_self.params.htmlMarkup = markup;
92		}
93
94		if (settings) {
95			if (typeof settings.cookiePolicyUrl !== 'undefined') {
96				_self.params.cookiePolicyUrl = settings.cookiePolicyUrl;
97			}
98			if (typeof settings.popupPosition !== 'undefined') {
99				_self.params.popupPosition = settings.popupPosition;
100			}
101			if (typeof settings.colorStyle !== 'undefined') {
102				_self.params.colorStyle = settings.colorStyle;
103			}
104			if (typeof settings.popupTitle !== 'undefined') {
105				_self.params.popupTitle = settings.popupTitle;
106			}
107			if (typeof settings.popupText !== 'undefined') {
108				_self.params.popupText = settings.popupText;
109			}
110			if (typeof settings.buttonContinueTitle !== 'undefined') {
111				_self.params.buttonContinueTitle = settings.buttonContinueTitle;
112			}
113			if (typeof settings.buttonLearnmoreTitle !== 'undefined') {
114				_self.params.buttonLearnmoreTitle = settings.buttonLearnmoreTitle;
115			}
116			if (typeof settings.buttonLearnmoreOpenInNewWindow !== 'undefined') {
117				_self.params.buttonLearnmoreOpenInNewWindow = settings.buttonLearnmoreOpenInNewWindow;
118			}
119			if (typeof settings.agreementExpiresInDays !== 'undefined') {
120				_self.params.agreementExpiresInDays = settings.agreementExpiresInDays;
121			}
122			if (typeof settings.autoAcceptCookiePolicy !== 'undefined') {
123				_self.params.autoAcceptCookiePolicy = settings.autoAcceptCookiePolicy;
124			}
125			if (typeof settings.htmlMarkup !== 'undefined') {
126				_self.params.htmlMarkup = settings.htmlMarkup;
127			}
128		}
129
130	};
131
132	var createHtmlMarkup = function() {
133
134		if (_self.params.htmlMarkup) {
135			return _self.params.htmlMarkup;
136		}
137
138		var html = 
139			'<div class="eupopup-container' + 
140			    ' eupopup-container-' + _self.params.popupPosition + 
141			    (_self.params.compactStyle ? ' eupopup-style-compact' : '') + 
142				' eupopup-color-' + _self.params.colorStyle + '">' +
143				'<div class="eupopup-head">' + _self.params.popupTitle + '</div>' +
144				'<div class="eupopup-body">' + _self.params.popupText + '</div>' +
145				'<div class="eupopup-buttons">' +
146				  '<a href="#" class="eupopup-button eupopup-button_1">' + _self.params.buttonContinueTitle + '</a>' +
147				  '<a href="' + _self.params.cookiePolicyUrl + '"' +
148				 	(_self.params.buttonLearnmoreOpenInNewWindow ? ' target=_blank ' : '') +
149					' class="eupopup-button eupopup-button_2">
149' + _self.params.buttonLearnmoreTitle + '</a>' +
150				  '<div class="clearfix"></div>' +
151				'</div>' +
152				// Suppression du bouton fermer (croix)
153				// '<a href="#" class="eupopup-closebutton">x</a>' +
154			'</div>';
155
156		return html;
157	};
158
159	// Storing the consent in a cookie
160	var setUserAcceptsCookies = function(consent) {
161		var d = new Date();
162		var expiresInDays = _self.params.agreementExpiresInDays * 24 * 60 * 60 * 1000;
163		d.setTime( d.getTime() + expiresInDays );
164		var expires = "expires=" + d.toGMTString();
165		document.cookie = _self.vars.COOKIE_NAME + '=' + consent + "; " + expires + ";path=/";
166
167		$(document).trigger("user_cookie_consent_changed", {'consent' : consent});
168	};
169
170	// Let's see if we have a consent cookie already
171	var userAlreadyAcceptedCookies = function() {
172		var userAcceptedCookies = false;
173		var cookies = document.cookie.split(";");
174		for (var i = 0; i < cookies.length; i++) {
175			var c = cookies[i].trim();
176			if (c.indexOf(_self.vars.COOKIE_NAME) == 0) {
177				userAcceptedCookies = c.substring(_self.vars.COOKIE_NAME.length + 1, c.length);
178			}
179		}
180
181		return userAcceptedCookies;
182	};
183	
184	var hideContainer = function() {
185		// $('.eupopup-container').slideUp(200);
186		$('.eupopup-container').animate({
187			opacity: 0,
188			height: 0
189		}, 200, function() {
190			$('.eupopup-container').hide(0);
191		});
192	};
193
194	///////////////////////////////////////////////////////////////////////////////////////////////
195	// PUBLIC FUNCTIONS  //////////////////////////////////////////////////////////////////////////
196	var publicfunc = {
197
198		// INITIALIZE EU COOKIE LAW POPUP /////////////////////////////////////////////////////////
199		init : function(settings) {
200
201			parseParameters(
202				$(".eupopup").first(),
203				$(".eupopup-markup").html(),
204				settings);
205
206			// No need to display this if user already accepted the policy
207			if (userAlreadyAcceptedCookies()) {
208				return;
209			}
210
211			// We should initialise only once
212			if (_self.vars.INITIALISED) {
213				return;
214			}
215			_self.vars.INITIALISED = true;
216
217			// Markup and event listeners >>>
218			_self.vars.HTML_MARKUP = createHtmlMarkup();
219
220			if ($('.eupopup-block').length > 0) {
221				$('.eupopup-block').append(_self.vars.HTML_MARKUP);
222			} else {
223				$('BODY').append(_self.vars.HTML_MARKUP);
224			}
225
226			$('.eupopup-button_1').click(function() {
227				setUserAcceptsCookies(true);
228				hideContainer();
229				return false;
230			});
231			$('.eupopup-closebutton').click(function() {
232				//setUserAcceptsCookies(true);
233				hideContainer();
234				return false;
235			});
236			// ^^^ Markup and event listeners
237
238			// Ready to start!
239			$('.eupopup-container').show();
240
241			// In case it's alright to just display the message once 
242			if (_self.params.autoAcceptCookiePolicy) {
243				setUserAcceptsCookies(true);
244			}
245
246		}
247
248	};
249
250	return publicfunc;
251});
252
253$(document).ready( function() {
254	if ($(".eupopup").length > 0) {
255		$(document).euCookieLawPopup().init({
256			'info' : 'YOU_CAN_ADD_MORE_SETTINGS_HERE',
257			'popupTitle' : 'This website is using cookies. ',
258			'popupText' : 'We use them to give you the best experience. If you continue using our website, we\'ll assume that you are happy to receive all cookies on this website.'
259		});
260	}
261});
262
263$(document).bind("user_cookie_consent_changed", function(event, object) {
264	console.log("User cookie consent changed: " + $(object).attr('consent') );
265});
266
267}(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.