Drupal.behaviors.eu_cookie_compliance_popup = function(context) { $('body').not('.sliding-popup-processed').addClass('sliding-popup-processed').each(function() { try { var enabled = Drupal.settings.eu_cookie_compliance.popup_enabled; if(!enabled) { return; } if (!Drupal.eu_cookie_compliance.cookiesEnabled()) { return; } var status = Drupal.eu_cookie_compliance.getCurrentStatus(); var clicking_confirms = Drupal.settings.eu_cookie_compliance.popup_clicking_confirmation; var agreed_enabled = Drupal.settings.eu_cookie_compliance.popup_agreed_enabled; var popup_hide_agreed = Drupal.settings.eu_cookie_compliance.popup_hide_agreed; if (status == 0) { var next_status = 1; if (clicking_confirms) { $('a, input[type=submit]').bind('click.eu_cookie_compliance', function(){ if(!agreed_enabled) { Drupal.eu_cookie_compliance.setStatus(1); next_status = 2; } Drupal.eu_cookie_compliance.changeStatus(next_status); }); } $('.agree-button').click(function(){ if(!agreed_enabled) { Drupal.eu_cookie_compliance.setStatus(1); next_status = 2; } Drupal.eu_cookie_compliance.changeStatus(next_status); }); Drupal.eu_cookie_compliance.createPopup(Drupal.settings.eu_cookie_compliance.popup_html_info); } else if(status == 1) { Drupal.eu_cookie_compliance.createPopup(Drupal.settings.eu_cookie_compliance.popup_html_agreed); if (popup_hide_agreed) { $('a, input[type=submit]').bind('click.eu_cookie_compliance_hideagreed', function(){ Drupal.eu_cookie_compliance.changeStatus(2); }); } } else { return; } } catch(e) { return; } }); } Drupal.eu_cookie_compliance = {}; Drupal.eu_cookie_compliance.createPopup = function(html) { var popup = $(html) .attr({"id": "sliding-popup"}) .height(Drupal.settings.eu_cookie_compliance.popup_height) .width(Drupal.settings.eu_cookie_compliance.popup_width) .hide(); if(Drupal.settings.eu_cookie_compliance.popup_position) { popup.prependTo("body"); var height = popup.height(); popup.show() .attr({"class": "sliding-popup-top"}) .css({"top": -1 * height}) .animate({top: 0}, Drupal.settings.eu_cookie_compliance.popup_delay); } else { popup.appendTo("body"); height = popup.height(); popup.show() .attr({"class": "sliding-popup-bottom"}) .css({"bottom": -1 * height}) .animate({bottom: 0}, Drupal.settings.eu_cookie_compliance.popup_delay); } Drupal.eu_cookie_compliance.attachEvents(); } Drupal.eu_cookie_compliance.attachEvents = function() { var clicking_confirms = Drupal.settings.eu_cookie_compliance.popup_clicking_confirmation; var agreed_enabled = Drupal.settings.eu_cookie_compliance.popup_agreed_enabled; $('.find-more-button').click(function(){ window.open(Drupal.settings.eu_cookie_compliance.popup_link); }); $('.agree-button').click(function(){ var next_status = 1; if(!agreed_enabled) { Drupal.eu_cookie_compliance.setStatus(1); next_status = 2; } if (clicking_confirms) { $('a, input[type=submit]').unbind('click.eu_cookie_compliance'); } Drupal.eu_cookie_compliance.changeStatus(next_status); }); $('.hide-popup-button').click(function(){ Drupal.eu_cookie_compliance.changeStatus(2); }); } Drupal.eu_cookie_compliance.getCurrentStatus = function() { var search = 'cookie-agreed-'+Drupal.settings.eu_cookie_compliance.popup_language+'='; var offset = document.cookie.indexOf(search); if (offset < 0) { return 0; } offset += search.length; var end = document.cookie.indexOf(';', offset); if (end == -1) { end = document.cookie.length; } var value = document.cookie.substring(offset, end); return parseInt(value); } Drupal.eu_cookie_compliance.changeStatus = function(value) { var status = Drupal.eu_cookie_compliance.getCurrentStatus(); if (status == value) return; if(Drupal.settings.eu_cookie_compliance.popup_position) { $(".sliding-popup-top").animate({top: $("#sliding-popup").height() * -1}, Drupal.settings.eu_cookie_compliance.popup_delay, function () { if(status == 0) { $("#sliding-popup").html(Drupal.settings.eu_cookie_compliance.popup_html_agreed).animate({top: 0}, Drupal.settings.eu_cookie_compliance.popup_delay); Drupal.eu_cookie_compliance.attachEvents(); } if(status == 1) { $("#sliding-popup").remove(); } }) } else { $(".sliding-popup-bottom").animate({bottom: $("#sliding-popup").height() * -1}, Drupal.settings.eu_cookie_compliance.popup_delay, function () { if(status == 0) { $("#sliding-popup").html(Drupal.settings.eu_cookie_compliance.popup_html_agreed).animate({bottom: 0}, Drupal.settings.eu_cookie_compliance.popup_delay) Drupal.eu_cookie_compliance.attachEvents(); } if(status == 1) { $("#sliding-popup").remove(); } ;}) } Drupal.eu_cookie_compliance.setStatus(value); } Drupal.eu_cookie_compliance.setStatus = function(status) { var date = new Date(); date.setDate(date.getDate() + 100); document.cookie = "cookie-agreed-"+Drupal.settings.eu_cookie_compliance.popup_language + "="+status+";expires=" + date.toUTCString() + ";path=" + Drupal.settings.basePath; } Drupal.eu_cookie_compliance.hasAgreed = function() { var status = Drupal.eu_cookie_compliance.getCurrentStatus(); if(status == 1 || status == 2) { return true; } return false; } Drupal.eu_cookie_compliance.cookiesEnabled = function() { var cookieEnabled = (navigator.cookieEnabled) ? true : false; if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) { document.cookie="testcookie"; cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false; } return (cookieEnabled); }