(function ($) { Drupal.behaviors.eu_cookie_compliance_popup = { attach: function(context, settings) { $('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(){ if (Drupal.settings.eu_cookie_compliance.popup_link_new_window) { window.open(Drupal.settings.eu_cookie_compliance.popup_link); } else{ window.location.href = 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() { name = 'cookie-agreed'; value = Drupal.eu_cookie_compliance.getCookie(name); return 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); var cookie = "cookie-agreed=" + status + ";expires=" + date.toUTCString() + ";path=" + Drupal.settings.basePath; if(Drupal.settings.eu_cookie_compliance.domain) { cookie += ";domain="+Drupal.settings.eu_cookie_compliance.domain; } document.cookie = cookie; } Drupal.eu_cookie_compliance.hasAgreed = function() { var status = Drupal.eu_cookie_compliance.getCurrentStatus(); if(status == 1 || status == 2) { return true; } return false; } /** * Verbatim copy of Drupal.comment.getCookie(). */ Drupal.eu_cookie_compliance.getCookie = function(name) { var search = name + '='; var returnValue = ''; if (document.cookie.length > 0) { offset = document.cookie.indexOf(search); if (offset != -1) { offset += search.length; var end = document.cookie.indexOf(';', offset); if (end == -1) { end = document.cookie.length; } returnValue = decodeURIComponent(document.cookie.substring(offset, end).replace(/\+/g, '%20')); } } return returnValue; }; 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); } })(jQuery);;