/* @licstart The following is the entire license notice for the JavaScript code in this page. Copyright (C) 2013 neko259 The JavaScript code in this page is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License (GNU GPL) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The code is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU GPL for more details. As additional permission under GNU GPL version 3 section 7, you may distribute non-source (e.g., minimized or compacted) forms of that code without the copy of the GNU GPL normally required by section 4, provided you include this license notice and a URL through which recipients can access the Corresponding Source. @licend The above is the entire license notice for the JavaScript code in this page. */ var FAV_POST_UPDATE_PERIOD = 10000; /** * An email is a hidden file to prevent spam bots from posting. It has to be * hidden. */ function hideEmailFromForm() { $('.form-email').parent().parent().hide(); } /** * Highlight code blocks with code highlighter */ function highlightCode(node) { node.find('pre code').each(function(i, e) { hljs.highlightBlock(e); }); } function updateFavPosts() { var includePostBody = $('#fav-panel').is(":visible"); var url = '/api/new_posts/'; if (includePostBody) { url += '?include_posts' } $.getJSON(url, function(data) { var allNewPostCount = 0; if (includePostBody) { var favoriteThreadPanel = $('#fav-panel'); favoriteThreadPanel.empty(); } $.each(data, function (_, dict) { var newPostCount = dict.new_post_count; allNewPostCount += newPostCount; if (includePostBody) { var favThreadNode = $('
'); favThreadNode.append($(dict.post_url)); favThreadNode.append(' '); favThreadNode.append($('' + dict.title + '')); if (newPostCount > 0) { favThreadNode.append(' (+' + newPostCount + ")"); } favoriteThreadPanel.append(favThreadNode); addRefLinkPreview(favThreadNode[0]); } }); var newPostCountNode = $('#new-fav-post-count'); if (allNewPostCount > 0) { newPostCountNode.text('(+' + allNewPostCount + ')'); newPostCountNode.show(); } else { newPostCountNode.hide(); } } ); } function initFavPanel() { updateFavPosts(); if ($('#fav-panel-btn').length > 0) { setInterval(updateFavPosts, FAV_POST_UPDATE_PERIOD); $('#fav-panel-btn').click(function() { $('#fav-panel').toggle(); updateFavPosts(); return false; }); $(document).on('keyup.removepic', function(e) { if(e.which === 27) { $('#fav-panel').hide(); } }); } } $( document ).ready(function() { hideEmailFromForm(); $("a[href='#top']").click(function() { $("html, body").animate({ scrollTop: 0 }, "slow"); return false; }); addImgPreview(); addRefLinkPreview(); highlightCode($(document)); initFavPanel(); });