1var FOXIZ_PERSONALIZE=(function(Module,$){'use strict';Module.initParams=function(){this.yesStorage=this.isStorageAvailable();this.ajaxURL=foxizCoreParams.ajaxurl||'';this.syncTimeout=0.5;this.personailizeUID=FOXIZ_CORE_SCRIPT.personailizeUID;this._body=$('body');this.isProgress=!1;this.checkPersonalize();this.personalizePopup=$('#bookmark-notification');this.yesPopup=this.personalizePopup.length||!1;this.followPopupTemplate=$('#follow-notification-template').html();this.savedPopupTemplate=$('#bookmark-notification-template').html();if('ask_login'===this.pesonalizeMode){this.bookmarkToggleTemplate=$('#bookmark-ask-login-template').html();this.followToggleTemplate=$('#follow-ask-login-template').html()}else{this.bookmarkToggleTemplate=$('#bookmark-toggle-template').html();this.followToggleTemplate=$('#follow-toggle-template').html()}} 2Module.init=function(){this.initParams();if(FOXIZ_CORE_SCRIPT.getCookie('personalize_sync')||this.syncInterval()){this.syncPersonalizeData()}else{this.syncPersonalizeLayout()} 3this.keepPersonalizePopup();this.readingListTemplate();this.bookmarkToggle();this.followCategoryToggle();this.followWriterToggle()} 4Module.getSavedKey=function(id){return this.personailizeUID+'-saved-'+id} 5Module.getCategoryFollowKey=function(id){return this.personailizeUID+'-cat-'+id} 6Module.getWriterFollowKey=function(id){return this.personailizeUID+'-writer-'+id} 7Module.isStorageAvailable=function(){let storage;try{storage=window.localStorage;storage.setItem('__rbStorageSet','x');storage.removeItem('__rbStorageSet');return!0}catch(e){return!1}} 8Module.setStorage=function(key,data){this.yesStorage&&localStorage.setItem(key,typeof data==='string'?data:JSON.stringify(data))} 9Module.getStorage=function(key,defaultValue){if(!this.yesStorage)return null;const data=localStorage.getItem(key);if(data===null)return defaultValue;try{return JSON.parse(data)}catch(e){return data}} 10Module.deleteStorage=function(key){this.yesStorage&&localStorage.removeItem(key)} 11Module.syncInterval=function(){const isLogged=FOXIZ_CORE_SCRIPT.getCookie('u_logged');const syncTimeout=!FOXIZ_CORE_SCRIPT.getCookie('syncTimeout');return isLogged&&syncTimeout} 12Module.checkPersonalize=function(){this.pesonalizeMode='yes';let setting='all';const isLogged=FOXIZ_CORE_SCRIPT.getCookie('u_logged');if(this._body.hasClass('personalized-logged-only')){setting='logged'}else if(this._body.hasClass('personalized-ask-login')){setting='login'} 13if(!isLogged){if('login'===setting){this.pesonalizeMode='ask_login'}else if('logged'===setting){this.pesonalizeMode='no'}}};Module.bookmarkToggle=function(){const self=this;self._body.on('click','.bookmark-trigger',function(e){e.preventDefault();e.stopPropagation();const target=$(this);const pid=target.data('pid');if(!pid||self.isProgress){return!1} 14self.isProgress=!0;clearTimeout(self.personalizeTimeout);target.addClass('in-progress');const storageKey=self.getSavedKey(pid);let savedPopupTemplate=self.savedPopupTemplate;let type='save';if(target.hasClass('bookmarked')){type='remove'} 15$.ajax({type:'POST',url:self.ajaxURL,data:{action:'rbbookmark',pid:pid,type:type,uuid:self.personailizeUID},success:function(response){response=JSON.parse(JSON.stringify(response));if('save'===type){$('.bookmark-trigger[data-pid='+pid+']').css('opacity',0).addClass('bookmarked').animate({opacity:1},250);self.setStorage(storageKey,'1');if(self.yesPopup){savedPopupTemplate=savedPopupTemplate.replace('{{classes}}','added')}}else{$('.bookmark-trigger[data-pid='+pid+']').css('opacity',0).removeClass('bookmarked').animate({opacity:1},250);self.deleteStorage(storageKey);if(self.yesPopup){savedPopupTemplate=savedPopupTemplate.replace('{{classes}}','removed')}} 16target.removeClass('in-progress');self.isProgress=!1;if(self.yesPopup){savedPopupTemplate=savedPopupTemplate.replace('{{image}}',response.image).replace('{{title}}',response.title).replace('{{description}}',response.description);clearTimeout(self.personalizeTimeout);self.personalizePopup.empty();self.personalizePopup.append(savedPopupTemplate);self.personalizePopup.fadeIn(300);self.personalizeTimeout=setTimeout(function(){self.personalizePopup.fadeOut(600)},2000)}}})})} 17Module.followCategoryToggle=function(){if('no'===this.pesonalizeMode){return} 18const self=this;self._body.on('click','.follow-trigger[data-cid]',function(e){e.preventDefault();e.stopPropagation();var target=$(this);var cid=target.data('cid');if(!cid||self.isProgress){return!1} 19self.isProgress=!0;clearTimeout(self.personalizeTimeout);target.addClass('in-progress');const storageKey=self.getCategoryFollowKey(cid);let followPopupTemplate=self.followPopupTemplate;const catName=target.data('name');let type='follow';if(target.hasClass('followed')){type='unfollow'} 20$.ajax({type:'POST',url:self.ajaxURL,data:{uuid:self.personailizeUID,action:'rb_follow_category',cid:cid,type:type,},success:function(response){response=JSON.parse(JSON.stringify(response));if('follow'===type){$('.follow-trigger[data-cid='+cid+']').css('opacity',0).addClass('followed').animate({opacity:1},150);self.setStorage(storageKey,'1');if(self.yesPopup){followPopupTemplate=followPopupTemplate.replace('{{classes}}','added')}}else{$('.follow-trigger[data-cid='+cid+']').css('opacity',0).removeClass('followed').animate({opacity:1},150);self.deleteStorage(storageKey);if(self.yesPopup){followPopupTemplate=followPopupTemplate.replace('{{classes}}','removed')}} 21target.removeClass('in-progress');self.isProgress=!1;if(self.yesPopup){followPopupTemplate=followPopupTemplate.replace('{{description}}',response.description).replace('{{name}}',catName);clearTimeout(self.personalizeTimeout);self.personalizePopup.empty();self.personalizePopup.append(followPopupTemplate);self.personalizePopup.fadeIn(300);self.personalizeTimeout=setTimeout(function(){self.personalizePopup.fadeOut(600)},2000)}}})})} 22Module.followWriterToggle=function(){if('no'===this.pesonalizeMode){return} 23const self=this;self._body.on('click','.follow-trigger[data-uid]',function(e){e.preventDefault();e.stopPropagation();var target=$(this);var uid=target.data('uid');if(!uid||self.isProgress){return!1} 24self.isProgress=!0;clearTimeout(self.personalizeTimeout);target.addClass('in-progress');const storageKey=self.getWriterFollowKey(uid);let followPopupTemplate=self.followPopupTemplate;const authName=target.data('name');let type='follow';if(target.hasClass('followed')){type='unfollow'} 25$.ajax({type:'POST',url:self.ajaxURL,data:{uuid:self.personailizeUID,action:'rb_follow_writer',uid:uid,type:type,},success:function(response){response=JSON.parse(JSON.stringify(response));
25if('follow'===type){$('.follow-trigger[data-uid='+uid+']').css('opacity',0).addClass('followed').animate({opacity:1},150);self.setStorage(storageKey,'1');if(self.yesPopup){followPopupTemplate=followPopupTemplate.replace('{{classes}}','added')}}else{$('.follow-trigger[data-uid='+uid+']').css('opacity',0).removeClass('followed').animate({opacity:1},150);self.deleteStorage(storageKey);if(self.yesPopup){followPopupTemplate=followPopupTemplate.replace('{{classes}}','removed')}} 26target.removeClass('in-progress');self.isProgress=!1;if(self.yesPopup){followPopupTemplate=followPopupTemplate.replace('{{description}}',response.description).replace('{{name}}',authName);clearTimeout(self.personalizeTimeout);self.personalizePopup.empty();self.personalizePopup.append(followPopupTemplate);self.personalizePopup.fadeIn(300);self.personalizeTimeout=setTimeout(function(){self.personalizePopup.fadeOut(600)},2000)}}})})} 27Module.keepPersonalizePopup=function(){const self=this;if(self.personalizePopup.length>0){self.personalizePopup.on({mouseenter:function(){clearTimeout(self.personalizeTimeout)},mouseleave:function(){self.personalizeTimeout=setTimeout(function(){self.personalizePopup.fadeOut(600)},1200)}})}} 28Module.syncPersonalizeLayout=function(){if('no'===this.pesonalizeMode){return} 29this.isProgress=!0;this.syncLayoutBookmarks();this.syncLayoutCategories();this.syncLayoutWitters();this.isProgress=!1} 30Module.syncLayoutBookmarks=function(){const self=this;const bookmarks=document.querySelectorAll('.rb-bookmark[data-pid]');bookmarks.forEach((bookmark)=>{if(bookmark.classList.contains('loaded')){return} 31bookmark.insertAdjacentHTML('beforeend',self.bookmarkToggleTemplate);if('yes'===self.pesonalizeMode){const storageKey=self.getSavedKey(bookmark.getAttribute('data-pid'));const bookmarked=self.getStorage(storageKey)==1;if(bookmarked){bookmark.classList.add('bookmarked')}else{bookmark.classList.remove('bookmarked')}}else{bookmark.classList.remove('bookmark-trigger')} 32bookmark.classList.add('loaded')})} 33Module.syncLayoutCategories=function(){const self=this;const catFollows=document.querySelectorAll('.rb-follow[data-cid]');catFollows.forEach((cat)=>{if(cat.classList.contains('loaded')){return} 34cat.insertAdjacentHTML('beforeend',self.followToggleTemplate);if('yes'===self.pesonalizeMode){const storageKey=self.getCategoryFollowKey(cat.getAttribute('data-cid'));const bookmarked=self.getStorage(storageKey)==1;if(bookmarked){cat.classList.add('followed')}else{cat.classList.remove('followed')}}else{cat.classList.remove('follow-trigger')} 35cat.classList.add('loaded')})} 36Module.syncLayoutWitters=function(){const self=this;const writerFollows=document.querySelectorAll('.rb-follow[data-uid]');writerFollows.forEach((writer)=>{if(writer.classList.contains('loaded')){return} 37writer.insertAdjacentHTML('beforeend',self.followToggleTemplate);if('yes'===self.pesonalizeMode){const storageKey=self.getWriterFollowKey(writer.getAttribute('data-uid'));const bookmarked=self.getStorage(storageKey)==1;if(bookmarked){writer.classList.add('followed')}else{writer.classList.remove('followed')}}else{writer.classList.remove('follow-trigger')} 38writer.classList.add('loaded')})} 39Module.syncPersonalizeData=function(){const self=this;const blankSavedKey=self.getSavedKey('');const blankCatKey=self.getCategoryFollowKey('');const blankWriterKey=self.getWriterFollowKey('');let i,id;FOXIZ_CORE_SCRIPT.setCookie('personalize_sync','');FOXIZ_CORE_SCRIPT.setCookie('syncTimeout','1',self.syncTimeout);$.ajax({type:'POST',url:self.ajaxURL,data:{action:'rbpersonalizedata',},success:function(response){response=JSON.parse(JSON.stringify(response));if(self.yesStorage){for(i=0;i<localStorage.length;i++){var key=localStorage.key(i);if(key.includes(blankSavedKey)||key.includes(blankCatKey)||key.includes(blankWriterKey)){self.deleteStorage(key)}} 40if(response.bookmarks&&response.bookmarks.length>0){for(i=0;i<response.bookmarks.length;i++){id=response.bookmarks[i];self.setStorage(self.getSavedKey(id),'1')}} 41if(response.categories&&response.categories.length>0){for(i=0;i<response.categories.length;i++){id=response.categories[i];self.setStorage(self.getCategoryFollowKey(id),'1')}} 42if(response.writers&&response.writers.length>0){for(i=0;i<response.writers.length;i++){id=response.writers[i];self.setStorage(self.getWriterFollowKey(id),'1')}}} 43self.isProgress=!1;self.syncPersonalizeLayout()}})} 44Module.readingListTemplate=function(){const self=this;const mySaved=$('#my-saved');const myCategories=$('#my-categories');const myWriters=$('#my-writers');const myRecommended=$('#my-recommended');if(mySaved.length<1){return!1} 45self.isProgress=!0;$.ajax({type:'POST',url:self.ajaxURL,data:{action:'rbreadinglist'},success:function(response){response=JSON.parse(JSON.stringify(response));if('no'===self.pesonalizeMode){mySaved.hide().html(response.saved).fadeIn(250);$(".interest-section").remove();$("#my-recommended").remove();return!1}else{mySaved.hide().html(response.saved).fadeIn(250)} 46if(myCategories.length>0){myCategories.hide().html(response.categories).fadeIn(250)} 47if(myWriters.length>0){myWriters.html(response.writers).fadeIn(250)} 48if(myRecommended.length>0){myRecommended.hide().html(response.recommended).fadeIn(250)} 49self.isProgress=!1;Waypoint.refreshAll();setTimeout(function(){self.syncPersonalizeLayout()},1)}})} 50return Module}(FOXIZ_PERSONALIZE||{},jQuery)) 51jQuery(document).ready(function($){FOXIZ_PERSONALIZE.init()})
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.