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