/wp-content/plugins/cookie-notice/js/front.js@ver=1.2.34.js

https://gitlab.com/alex4ip/misticlighting · JavaScript · 87 lines · 61 code · 16 blank · 10 comment · 15 complexity · e53da5f8175500bfac3bd9e865431693 MD5 · raw file

  1. ( function ( $ ) {
  2. $( document ).ready( function () {
  3. var cnDomNode = $( '#cookie-notice' );
  4. // handle set-cookie button click
  5. $( document ).on( 'click', '.cn-set-cookie', function ( e ) {
  6. e.preventDefault();
  7. $( this ).setCookieNotice( $( this ).data( 'cookie-set' ) );
  8. } );
  9. // handle on scroll
  10. if ( cnArgs.onScroll == 'yes' ) {
  11. var cnHandleScroll = function () {
  12. var win = $( this );
  13. if ( win.scrollTop() > parseInt( cnArgs.onScrollOffset ) ) {
  14. // If user scrolls at least 100 pixels
  15. win.setCookieNotice( 'accept' );
  16. win.off( 'scroll', cnHandleScroll ); //remove itself after cookie accept
  17. }
  18. };
  19. $( window ).on( 'scroll', cnHandleScroll );
  20. }
  21. // display cookie notice
  22. if ( document.cookie.indexOf( 'cookie_notice_accepted' ) === -1 ) {
  23. if ( cnArgs.hideEffect === 'fade' ) {
  24. cnDomNode.fadeIn( 300 );
  25. } else if ( cnArgs.hideEffect === 'slide' ) {
  26. cnDomNode.slideDown( 300 );
  27. } else {
  28. cnDomNode.show();
  29. }
  30. $( 'body' ).addClass( 'cookies-not-accepted' );
  31. } else {
  32. cnDomNode.removeCookieNotice();
  33. }
  34. } );
  35. // set Cookie Notice
  36. $.fn.setCookieNotice = function ( cookie_value ) {
  37. var cnTime = new Date(),
  38. cnLater = new Date(),
  39. cnDomNode = $( '#cookie-notice' );
  40. self = this;
  41. // set expiry time in seconds
  42. cnLater.setTime( parseInt( cnTime.getTime() ) + parseInt( cnArgs.cookieTime ) * 1000 );
  43. // set cookie
  44. cookie_value = cookie_value === 'accept' ? true : false;
  45. document.cookie = cnArgs.cookieName + '=' + cookie_value + ';expires=' + cnLater.toGMTString() + ';' + ( cnArgs.cookieDomain !== undefined && cnArgs.cookieDomain !== '' ? 'domain=' + cnArgs.cookieDomain + ';' : '' ) + ( cnArgs.cookiePath !== undefined && cnArgs.cookiePath !== '' ? 'path=' + cnArgs.cookiePath + ';' : '' );
  46. // trigger custom event
  47. $.event.trigger( {
  48. type : "setCookieNotice",
  49. value : cookie_value,
  50. time : cnTime,
  51. expires : cnLater
  52. } );
  53. // hide message container
  54. if ( cnArgs.hideEffect === 'fade' ) {
  55. cnDomNode.fadeOut( 300, function () {
  56. self.removeCookieNotice();
  57. } );
  58. } else if ( cnArgs.hideEffect === 'slide' ) {
  59. cnDomNode.slideUp( 300, function () {
  60. self.removeCookieNotice();
  61. } );
  62. } else {
  63. self.removeCookieNotice();
  64. }
  65. };
  66. // remove Cookie Notice
  67. $.fn.removeCookieNotice = function ( cookie_value ) {
  68. $( '#cookie-notice' ).remove();
  69. $( 'body' ).removeClass( 'cookies-not-accepted' );
  70. }
  71. } )( jQuery );