165 lines
5.9 KiB
JavaScript
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);
|
|
}
|