diff --git a/js/quick-reply.js b/js/quick-reply.js index 926e5880..5c2a7b66 100644 --- a/js/quick-reply.js +++ b/js/quick-reply.js @@ -15,10 +15,10 @@ (function() { var settings = new script_settings('quick-reply'); - + var do_css = function() { $('#quick-reply-css').remove(); - + // Find background of reply posts var dummy_reply = $('
').appendTo($('body')); var reply_background = dummy_reply.css('backgroundColor'); @@ -26,7 +26,7 @@ var reply_border_color = dummy_reply.css('borderColor'); var reply_border_width = dummy_reply.css('borderWidth'); dummy_reply.remove(); - + $('').appendTo($('head')); }; - + var show_quick_reply = function(){ if($('div.banner').length == 0) return; if($('#quick-reply').length != 0) return; - + do_css(); - + var $postForm = $('form[name="post"]').clone(); - + $postForm.clone(); - + $dummyStuff = $('
').appendTo($postForm); - + $postForm.find('table tr').each(function() { var $th = $(this).children('th:first'); - var $td = $(this).children('td:first'); + var $td = $(this).children('td:first'); if ($th.length && $td.length) { $td.attr('colspan', 2); - + if ($td.find('input[type="text"]').length) { // Replace with input placeholders $td.find('input[type="text"]') .removeAttr('size') .attr('placeholder', $th.clone().children().remove().end().text()); } - + // Move anti-spam nonsense and remove $th.contents().filter(function() { return this.nodeType == 3; // Node.TEXT_NODE }).remove(); $th.contents().appendTo($dummyStuff); $th.remove(); - + if ($td.find('input[name="password"]').length) { // Hide password field $(this).hide(); } - + // Fix submit button if ($td.find('input[type="submit"]').length) { $td.removeAttr('colspan'); $('').append($td.find('input[type="submit"]')).insertAfter($td); } - + // reCAPTCHA if ($td.find('#recaptcha_widget_div').length) { // Just show the image, and have it interact with the real form. var $captchaimg = $td.find('#recaptcha_image img'); - + $captchaimg .removeAttr('id') .removeAttr('style') @@ -178,7 +178,7 @@ .click(function() { $('#recaptcha_reload').click(); }); - + // When we get a new captcha... $('#recaptcha_response_field').focus(function() { if ($captchaimg.attr('src') != $('#recaptcha_image img').attr('src')) { @@ -187,13 +187,13 @@ $postForm.find('input[name="recaptcha_response_field"]').val('').focus(); } }); - + $postForm.submit(function() { setTimeout(function() { $('#recaptcha_reload').click(); }, 200); }); - + // Make a new row for the response text var $newRow = $(''); $newRow.children().first().append( @@ -203,37 +203,37 @@ .removeAttr('id') .addClass('recaptcha_response_field') .attr('placeholder', $('#recaptcha_response_field').attr('placeholder')); - + $('#recaptcha_response_field').addClass('recaptcha_response_field') - + $td.replaceWith($('').append($('').append($captchaimg))); - + $newRow.insertAfter(this); } - + // Upload section if ($td.find('input[type="file"]').length) { if ($td.find('input[name="file_url"]').length) { $file_url = $td.find('input[name="file_url"]'); - + if (settings.get('show_remote', false)) { // Make a new row for it var $newRow = $(''); - + $file_url.clone().attr('placeholder', _('Upload URL')).appendTo($newRow.find('td')); - + $newRow.insertBefore(this); } $file_url.parent().remove(); - + $td.find('label').remove(); $td.contents().filter(function() { return this.nodeType == 3; // Node.TEXT_NODE }).remove(); $td.find('input[name="file_url"]').removeAttr('id'); } - + if ($(this).find('input[name="spoiler"]').length) { $td.removeAttr('colspan'); } @@ -253,7 +253,7 @@ if ($td.is('#upload_selection')) { $(this).remove(); } - + // Remove mod controls, because it looks shit. if ($td.find('input[type="checkbox"]').length) { var tr = this; @@ -271,15 +271,15 @@ } }); } - + $td.find('small').hide(); } }); - + $postForm.find('textarea[name="body"]').removeAttr('id').removeAttr('cols').attr('placeholder', _('Comment')); - + $postForm.find('textarea:not([name="body"]),input[type="hidden"]').removeAttr('id').appendTo($dummyStuff); - + $postForm.find('br').remove(); $postForm.find('table').prepend('\ \ @@ -287,12 +287,12 @@ ' + _('Quick Reply') + '\ \ '); - + $postForm.attr('id', 'quick-reply'); - + $postForm.appendTo($('body')).hide(); $origPostForm = $('form[name="post"]:first'); - + // Synchronise body text with original post form $origPostForm.find('textarea[name="body"]').on('change input propertychange', function() { $postForm.find('textarea[name="body"]').val($(this).val()); @@ -316,7 +316,7 @@ $origPostForm.find('[name="' + $(this).attr('name') + '"]').val($(this).val()); }); - if (typeof $postForm.draggable != 'undefined') { + if (typeof $postForm.draggable != 'undefined') { if (localStorage.quickReplyPosition) { var offset = JSON.parse(localStorage.quickReplyPosition); if (offset.top < 0) @@ -338,26 +338,26 @@ right: $(window).width() - $(this).offset().left - $(this).width(), }; localStorage.quickReplyPosition = JSON.stringify(offset); - + $postForm.css('right', offset.right).css('top', offset.top).css('left', 'auto'); } }); $postForm.find('th .handle').css('cursor', 'move'); } - + $postForm.find('th .close-btn').click(function() { $origPostForm.find('textarea[name="body"]').attr('id', 'body'); $postForm.remove(); floating_link(); }); - + // Fix bug when table gets too big for form. Shouldn't exist, but crappy CSS etc. $postForm.show(); $postForm.width($postForm.find('table').width()); $postForm.hide(); - + $(window).trigger('quick-reply'); - + $(window).ready(function() { if (settings.get('hide_at_top', true)) { $(window).scroll(function() { @@ -371,7 +371,7 @@ } else { $postForm.show(); } - + $(window).on('stylesheet', function() { do_css(); if ($('link#stylesheet').attr('href')) { @@ -380,7 +380,7 @@ }); }); }; - + $(window).on('cite', function(e, id, with_link) { if ($(this).width() <= 400) return; @@ -391,7 +391,7 @@ highlightReply(id); $(document).scrollTop($('#' + id).offset().top); } - + // Honestly, I'm not sure why we need setTimeout() here, but it seems to work. // Same for the "tmp" variable stuff you see inside here: setTimeout(function() { @@ -401,7 +401,7 @@ }); } }); - + var floating_link = function() { if (!settings.get('floating_link', false)) return; @@ -410,12 +410,12 @@ show_quick_reply(); $(this).remove(); }).appendTo($('body')); - + $(window).on('quick-reply', function() { $('.quick-reply-btn').remove(); }); }; - + if (settings.get('floating_link', false)) { $(window).ready(function() { if($('div.banner').length == 0) @@ -430,12 +430,12 @@ text-decoration: none;\ }\ ').appendTo($('head')); - + floating_link(); - + if (settings.get('hide_at_top', true)) { $('.quick-reply-btn').hide(); - + $(window).scroll(function() { if ($(this).width() <= 400) return;