forked from ketanmistry/ihavecookies
-
Notifications
You must be signed in to change notification settings - Fork 1
/
jquery.ihavecookies.min.js
31 lines (28 loc) · 6.79 KB
/
jquery.ihavecookies.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
ihavecookies - jQuery plugin for displaying cookie/privacy message
v0.3.2 + 0.2
Copyright (c) 2018 Ketan Mistry (https://iamketan.com.au)
Licensed under the MIT license:
http://www.opensource.org/licenses/mit-license.php
Changes made from above version:
v0.1
- Updated so that the settings reflects the already set preferences.
- Added button to reopen the cookie preferences
v0.2
- Added compact mode, model 1
- Added all cookies preselected for model 2
Kim Steinhaug / [email protected]
*/
(function(a){a.fn.ihavecookies=function(c){var e=a(this),b=a.extend({forceDisplayPanel:!1,GDPRmode:"advanced",preselectAllCookietypes:!0,fixedCookieTypeLabel:"Necessary",fixedCookieTypeDesc:"These are essential for the website to work correctly.",cookieTypes:[{type:"Site Preferences",value:"preferences",description:"These are cookies that are related to your site preferences, e.g. remembering your username, site colours, etc."},{type:"Analytics",value:"analytics",description:"Cookies related to site visits, browser types, etc."},
{type:"Marketing",value:"marketing",description:"Cookies related to marketing, e.g. newsletters, social media, etc"}],title:"🍪 Implied Consent: Cookies info",message:"Cookies enable you to use shopping carts and to personalize your experience on our sites, tell us which parts of our websites people have visited, help us measure the effectiveness of ads and web searches, and give us insights into user behavior so we can improve our communications and products.",titleCompact:"This site uses cookies",
messageCompact:'By clicking "Accept Cookies" or by continuing to use our website, you give your consent and you agree to the use of these Cookies.',link:"/privacy-policy",moreInfoLabel:"More information",delay:600,expires:30,acceptBtnLabel:"Accept Cookies",advancedBtnLabel:"Customise Cookies",cookieTypesTitle:"Select cookies to accept",uncheckBoxes:!1,onDisplay:function(){},onDisplayCookieSelector:function(){},onAccept:function(){},code_needed_only_for_example:!1},c);c=d("cookieControl");var g=d("cookieControlPrefs");
if(c&&g&&!b.forceDisplayPanel){var h=!0;"false"==c&&(h=!1);k(h,b.expires)}else{c=d("cookieControl");var f='<li><input type="checkbox" name="gdpr[]" value="necessary" checked="checked" disabled="disabled"> <label title="'+b.fixedCookieTypeDesc+'">'+b.fixedCookieTypeLabel+"</label></li>";a.each(b.cookieTypes,function(b,a){if(""!==a.type&&""!==a.value){var c="";!1!==a.description&&(c=' title="'+a.description+'"');f+='<li><input type="checkbox" id="gdpr-cookietype-'+a.value+'" name="gdpr[]" value="'+
a.value+'" data-auto="on"> <label for="gdpr-cookietype-'+a.value+'"'+c+">"+a.type+"</label></li>"}});var m="compact"==b.GDPRmode?'<div id="gdpr-cookie-message" class="gdpr-compact"><h4>'+b.titleCompact+"</h4><p>"+b.messageCompact+' <div id="gdpr-cookie-types" style="display:none;"><h5>'+b.cookieTypesTitle+"</h5><ul>"+f+'</ul></div><p><button id="gdpr-cookie-policy" type="button">'+b.moreInfoLabel+'</button><button id="gdpr-cookie-accept" type="button">'+b.acceptBtnLabel+"</button></p></div>":'<div id="gdpr-cookie-message"><h4>'+
b.title+"</h4><p>"+b.message+' <a href="'+b.link+'">'+b.moreInfoLabel+'</a><div id="gdpr-cookie-types" style="display:none;"><h5>'+b.cookieTypesTitle+"</h5><ul>"+f+'</ul></div><p><button id="gdpr-cookie-advanced" type="button">'+b.advancedBtnLabel+'</button><button id="gdpr-cookie-accept" type="button">'+b.acceptBtnLabel+"</button></p></div>";setTimeout(function(){a(e).append(m);a("#gdpr-cookie-message").hide().fadeIn("slow");b.onDisplay.call(this)},b.delay);a("body").on("click","#gdpr-cookie-policy",
function(a){a.preventDefault();a.stopPropagation();a.stopImmediatePropagation();window.location=b.link});a("body").on("click","#gdpr-cookie-accept",function(c){c.preventDefault();c.stopPropagation();c.stopImmediatePropagation();k(!0,b.expires);g?(a('input[name="gdpr[]"][data-auto="on"]').prop("checked",!1),"on"==a("#gdpr-cookietype-marketing").data("auto")&&!0===a.fn.ihavecookies.preference("marketing")&&a("#gdpr-cookietype-marketing").prop("checked",!0),"on"==a("#gdpr-cookietype-preferences").data("auto")&&
!0===a.fn.ihavecookies.preference("preferences")&&a("#gdpr-cookietype-preferences").prop("checked",!0),"on"==a("#gdpr-cookietype-analytics").data("auto")&&!0===a.fn.ihavecookies.preference("analytics")&&a("#gdpr-cookietype-analytics").prop("checked",!0)):a('input[name="gdpr[]"][data-auto="on"]').prop("checked",!0);var e=[];a.each(a('input[name="gdpr[]"]').serializeArray(),function(a,b){e.push(b.value)});l("cookieControlPrefs",JSON.stringify(e).replace(/(^")|("$)|(\\)/g, ''), 365);b.onAccept.call(this)});a("body").on("click","#gdpr-cookie-advanced",
function(c){c.preventDefault();c.stopPropagation();c.stopImmediatePropagation();cbReturn=b.onDisplayCookieSelector.call(this);b.code_needed_only_for_example&&void 0!==cbReturn&&(b.preselectAllCookietypes=cbReturn);a('input[name="gdpr[]"]:not(:disabled)').attr("data-auto","off").prop("checked",!1);b.preselectAllCookietypes?(!1!==a.fn.ihavecookies.preference_state("marketing")&&a("#gdpr-cookietype-marketing").prop("checked",!0),!1!==a.fn.ihavecookies.preference_state("preferences")&&a("#gdpr-cookietype-preferences").prop("checked",
!0),!1!==a.fn.ihavecookies.preference_state("analytics")&&a("#gdpr-cookietype-analytics").prop("checked",!0)):(!0===a.fn.ihavecookies.preference("marketing")&&a("#gdpr-cookietype-marketing").prop("checked",!0),!0===a.fn.ihavecookies.preference("preferences")&&a("#gdpr-cookietype-preferences").prop("checked",!0),!0===a.fn.ihavecookies.preference("analytics")&&a("#gdpr-cookietype-analytics").prop("checked",!0));a("#gdpr-cookie-types").slideDown("fast",function(){a("#gdpr-cookie-advanced").prop("disabled",
!0)})})}!0===b.uncheckBoxes&&a('input[type="checkbox"].ihavecookies').prop("checked",!1);b.code_needed_only_for_example&&("advanced"===b.GDPRmode?a("#example_opt4a").prop("checked",!0):a("#example_opt4b").prop("checked",!0),a("#example_opt5").prop("checked",b.preselectAllCookietypes))};a.fn.ihavecookies.cookie=function(){var a=d("cookieControlPrefs");return JSON.parse(a)};a.fn.ihavecookies.preference=function(a){var c=d("cookieControl"),b=d("cookieControlPrefs");b=JSON.parse(b);return!1===c||!1===
b||-1===b.indexOf(a)?!1:!0};a.fn.ihavecookies.preference_state=function(a){var c=d("cookieControl"),b=d("cookieControlPrefs");b=JSON.parse(b);return!1===c||!1===b?null:-1===b.indexOf(a)?!1:!0};var k=function(c,e){l("cookieControl",c,e);a("#gdpr-cookie-message").fadeOut("fast",function(){a(this).remove()})},l=function(a,e,b){var c=new Date;c.setTime(c.getTime()+864E5*b);b="expires="+c.toUTCString();document.cookie=a+"="+e+";"+b+";path=/";return d(a)},d=function(a){a+="=";for(var c=decodeURIComponent(document.cookie).split(";"),
b=0;b<c.length;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1);if(0===d.indexOf(a))return d.substring(a.length,d.length).replace(/(^")|("$)|(\\)/g, '')}return!1}})(jQuery);