1( function ( $ ) { 2 3 // set Cookie Notice 4 $.fn.setCookieNotice = function ( cookie_value ) { 5 6 var cnTime = new Date(), 7 cnLater = new Date(), 8 cnDomNode = $( '#cookie-notice' ), 9 cnSelf = this; 10 11 // set expiry time in seconds 12 cnLater.setTime( parseInt( cnTime.getTime() ) + parseInt( cnArgs.cookieTime ) * 1000 ); 13 14 // set cookie 15 cookie_value = cookie_value === 'accept' ? true : false; 16 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 + ';' : '' ); 17 18 // trigger custom event 19 $.event.trigger( { 20 type: "setCookieNotice", 21 value: cookie_value, 22 time: cnTime, 23 expires: cnLater 24 } ); 25 26 // hide message container 27 if ( cnArgs.hideEffect === 'fade' ) { 28 cnDomNode.fadeOut( 300, function () { 29 cnSelf.removeCookieNotice(); 30 } ); 31 } else if ( cnArgs.hideEffect === 'slide' ) { 32 cnDomNode.slideUp( 300, function () { 33 cnSelf.removeCookieNotice(); 34 } ); 35 } else { 36 cnSelf.removeCookieNotice(); 37 } 38 }; 39 40 // remove Cookie Notice 41 $.fn.removeCookieNotice = function ( cookie_value ) { 42 $( '#cookie-notice' ).remove(); 43 $( 'body' ).removeClass( 'cookies-not-accepted' ); 44 }; 45 46 $( document ).ready( function () { 47 48 var cnDomNode = $( '#cookie-notice' ); 49 50 // handle set-cookie button click 51 $( document ).on( 'click', '.cn-set-cookie', function ( e ) { 52 e.preventDefault(); 53 $( this ).setCookieNotice( $( this ).data( 'cookie-set' ) ); 54 } ); 55 56 // handle on scroll 57 if ( cnArgs.onScroll == 'yes' ) { 58 var cnHandleScroll = function () { 59 var win = $( this ); 60 if ( win.scrollTop() > parseInt( cnArgs.onScrollOffset ) ) { 61 // If user scrolls at least 100 pixels 62 win.setCookieNotice( 'accept' ); 63 win.off( 'scroll', cnHandleScroll ); //remove itself after cookie accept 64 } 65 }; 66 67 $( window ).on( 'scroll', cnHandleScroll ); 68 } 69 70 // display cookie notice 71 if ( document.cookie.indexOf( 'cookie_notice_accepted' ) === -1 ) { 72 if ( cnArgs.hideEffect === 'fade' ) { 73 cnDomNode.fadeIn( 300 ); 74 } else if ( cnArgs.hideEffect === 'slide' ) { 75 cnDomNode.slideDown( 300 ); 76 } else { 77 cnDomNode.show(); 78 } 79 $( 'body' ).addClass( 'cookies-not-accepted' ); 80 } else { 81 cnDomNode.removeCookieNotice(); 82 } 83 84 } ) 85} )( jQuery );
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.