(function($){ $.cookieBar = function(options,val){ if(options=='cookies'){ var doReturn = 'cookies'; }else if(options=='set'){ var doReturn = 'set'; }else{ var doReturn = false; } var defaults = { message: 'We use cookies to improve your experience and track website usage.', //Message displayed on bar acceptButton: true, //Set to true to show accept/enable button acceptText: 'I understand', //Text on accept/enable button acceptFunction: function(cookieValue){if(cookieValue!='disabled' && cookieValue!='declined') window.location = window.location.href;}, //Function to run after accept declineButton: true, //Set to true to show decline/disable button declineText: 'Disable all coookies', //Text on decline/disable button declineFunction: function(cookieValue){if(cookieValue=='enabled' || cookieValue=='accepted') window.location = window.location.href;}, //Function to run after decline policyButton: false, //Set to true to show Privacy Policy button policyText: 'default.cookie.p.more.information}', //Text on Privacy Policy button policyURL: '{default.cookie.policy.url}', //URL of Privacy Policy autoEnable: true, //Set to true for cookies to be accepted automatically. Banner still shows acceptOnContinue: false, //Set to true to accept cookies when visitor moves to another page acceptOnScroll: false, //Set to true to accept cookies when visitor scrolls X pixels up or down acceptAnyClick: false, //Set to true to accept cookies when visitor clicks anywhere on the page expireDays: 365, //Number of days for cookieBar cookie to be stored for renewOnVisit: false, //Renew the cookie upon revisit to website forceShow: false, //Force cookieBar to show regardless of user cookie preference effect: 'slide', //Options: slide, fade, hide element: 'body', //Element to append/prepend cookieBar to. Remember "." for class or "#" for id. append: false, //Set to true for cookieBar HTML to be placed at base of website. Actual position may change according to CSS fixed: false, //Set to true to add the class "fixed" to the cookie bar. Default CSS should fix the position bottom: false, //Force CSS when fixed, so bar appears at bottom of website zindex: '', //Can be set in CSS, although some may prefer to set here domain: String(window.location.hostname), //Location of privacy policy referrer: String(document.referrer), //Where visitor has come from, ignore: '' //List of classes or ids to ignore in acceptAnyClick, space separated. Click will be ignored if target or any of its ancestors has one of these classes or id. }; var options = $.extend(defaults,options); //Sets expiration date for cookie var expireDate = new Date(); expireDate.setTime(expireDate.getTime()+(options.expireDays*86400000)); expireDate = expireDate.toGMTString(); var cookieEntry = 'cb-enabled={value}; expires='+expireDate+'; path=/'; //Retrieves current cookie preference var i,cookieValue='',aCookie,aCookies=document.cookie.split('; '); for (i=0;i=0 && String(window.location.href).indexOf(options.policyURL)==-1 && doReturn!='cookies' && doReturn!='set' && cookieValue!='accepted' && cookieValue!='declined'){ doReturn = 'set'; val = 'accepted'; } } if(doReturn=='cookies'){ //Returns true if cookies are enabled, false otherwise if(cookieValue=='enabled' || cookieValue=='accepted'){ return true; }else{ return false; } }else if(doReturn=='set' && (val=='accepted' || val=='declined')){ //Sets value of cookie to 'accepted' or 'declined' document.cookie = cookieEntry.replace('{value}',val); if(val=='accepted'){ return true; }else{ return false; } }else{ //Sets up enable/accept button if required var message = options.message.replace('{policy_url}',options.policyURL); if(options.acceptButton){ var acceptButton = ''+options.acceptText+''; }else{ var acceptButton = ''; } //Sets up disable/decline button if required if(options.declineButton){ var declineButton = ''+options.declineText+''; }else{ var declineButton = ''; } //Sets up privacy policy button if required if(options.policyButton){ var policyButton = ''+options.policyText+''; }else{ var policyButton = ''; } //Whether to add "fixed" class to cookie bar if(options.fixed){ if(options.bottom){ var fixed = ' class="fixed bottom"'; }else{ var fixed = ' class="fixed"'; } }else{ var fixed = ''; } if(options.zindex!=''){ var zindex = ' style="z-index:'+options.zindex+';"'; }else{ var zindex = ''; } //Displays the cookie bar if arguments met if(options.forceShow || cookieValue=='enabled' || cookieValue==''){ if(options.append){ $(options.element).append(''); }else{ $(options.element).prepend(''); } } var removeBar = function(func){ if(options.acceptOnScroll) $(document).off('scroll'); if(typeof(func)==='function') func(cookieValue); if(options.effect=='slide'){ $('#cookie-bar').slideUp(300,function(){$('#cookie-bar').remove();}); }else if(options.effect=='fade'){ $('#cookie-bar').fadeOut(300,function(){$('#cookie-bar').remove();}); }else{ $('#cookie-bar').hide(0,function(){$('#cookie-bar').remove();}); } $(document).unbind('click',anyClick); }; var cookieAccept = function(){ document.cookie = cookieEntry.replace('{value}','accepted'); removeBar(options.acceptFunction); }; var cookieDecline = function(){ var deleteDate = new Date(); deleteDate.setTime(deleteDate.getTime()-(864000000)); deleteDate = deleteDate.toGMTString(); aCookies=document.cookie.split('; '); for (i=0;i=0){ document.cookie = aCookie[0]+'=0; expires='+deleteDate+'; domain='+options.domain.replace('www','')+'; path=/'; }else{ document.cookie = aCookie[0]+'=0; expires='+deleteDate+'; path=/'; } } document.cookie = cookieEntry.replace('{value}','declined'); removeBar(options.declineFunction); }; var anyClick = function(e){ var selectors = 'cb-policy ' + options.ignore; selectors = selectors.trim(); selectors = selectors.split(' '); console.log($(e.target).prop("id")); for(i=0; i < selectors.length; i++) if($(e.target).hasClass(selectors[i]) || $(e.target).parents('.' + selectors[i]).length > 0 || $(e.target).prop("id") == selectors[i] ) return; cookieAccept(); }; $('#cookie-bar .cb-enable').click(function(){cookieAccept();return false;}); $('#cookie-bar .cb-disable').click(function(){cookieDecline();return false;}); if(options.acceptOnScroll){ var scrollStart = $(document).scrollTop(),scrollNew,scrollDiff; $(document).on('scroll',function(){ scrollNew = $(document).scrollTop(); if(scrollNew>scrollStart){ scrollDiff = scrollNew - scrollStart; }else{ scrollDiff = scrollStart - scrollNew; } if(scrollDiff>=Math.round(options.acceptOnScroll)) cookieAccept(); }); } if(options.acceptAnyClick){ $(document).bind('click',anyClick); } } }; })(jQuery); setTimeout(() => { if($("#pinums").length == 1){ $("#cookie-bar").addClass("dpi"); } }, 1000);