(function() { Danbooru.Comment = {}; Danbooru.Comment.initialize_all = function() { if ($("#c-posts").length || $("#c-comments").length) { this.initialize_response_link(); this.initialize_reply_links(); this.initialize_expand_links(); } if ($("#c-posts").length && $("#a-show").length) { Danbooru.Comment.highlight_threshold_comments(Danbooru.meta("post-id")); } } Danbooru.Comment.quote_message = function(data) { var stripped_body = data["body"].replace(/\[quote\](?:.|\n|\r)+?\[\/quote\](?:\r\n|\r|\n)*/gm, ""); return "[quote]\n" + data["creator_name"] + " said:\n" + stripped_body + "\n[/quote]\n\n"; } Danbooru.Comment.quote = function(e) { $.get( "/comments/" + $(e.target).data('comment-id') + ".json", function(data) { var $link = $(e.target); var $div = $link.closest("div.comments-for-post"); var $textarea = $div.find("textarea") $textarea.val($textarea.val() + "\n\n" + Danbooru.Comment.quote_message(data)); $div.find("a.expand-comment-response").trigger("click"); $textarea.focus(); } ); e.preventDefault(); } Danbooru.Comment.initialize_reply_links = function() { $(".reply-link").click(Danbooru.Comment.quote); } Danbooru.Comment.initialize_expand_links = function() { $(".comment-section form").hide(); $(".comment-section input.expand-comment-response").click(function(e) { var post_id = $(this).closest(".comment-section").data("post-id"); $(this).hide(); $(".comment-section[data-post-id=" + post_id + "] form").slideDown("fast"); e.preventDefault(); }); } Danbooru.Comment.initialize_response_link = function() { $("a.expand-comment-response").click(function(e) { $(e.target).hide(); $(e.target).closest("div.new-comment").find("form").slideDown("fast"); e.preventDefault(); }); $("div.new-comment form").hide(); } Danbooru.Comment.highlight_threshold_comments = function(post_id) { var threshold = parseInt(Danbooru.meta("user-comment-threshold")); var articles = $("article.comment[data-post-id=" + post_id + "]"); articles.each(function(i, v) { var $comment = $(v); if (parseInt($comment.data("score")) < threshold) { $comment.addClass("below-threshold"); } }) } Danbooru.Comment.hide_threshold_comments = function(post_id) { var threshold = parseInt(Danbooru.meta("user-comment-threshold")); var articles = $("article.comment[data-post-id=" + post_id + "]"); articles.each(function(i, v) { var $comment = $(v); if (parseInt($comment.data("score")) < threshold) { $comment.hide(); } }) } })(); $(document).ready(function() { Danbooru.Comment.initialize_all(); });