This repository has been archived on 2025-06-21. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
suitedesk/modules/eu-cookie-compliance/js/eu_cookie_compliance.js

165 lines
5.9 KiB
JavaScript

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);
}