summaryrefslogtreecommitdiff
path: root/js/post-hover.js
diff options
context:
space:
mode:
authorMichael Save <savetheinternet@tinyboard.org>2012-03-31 11:20:18 +1100
committerMichael Save <savetheinternet@tinyboard.org>2012-03-31 11:20:18 +1100
commit6a9169657d5b5dea09fe7d2dbabe49a8a4845d05 (patch)
treec57c9c440e8ae88875008591c56add350c4b8a5c /js/post-hover.js
parent2df1ebd88c266d984cbaa6c26917c2ea89c2ae0e (diff)
Merged js/ into https://github.com/savetheinternet/Tinyboard
Diffstat (limited to 'js/post-hover.js')
-rw-r--r--js/post-hover.js117
1 files changed, 0 insertions, 117 deletions
diff --git a/js/post-hover.js b/js/post-hover.js
deleted file mode 100644
index 7e085e97..00000000
--- a/js/post-hover.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * post-hover.js
- * https://github.com/savetheinternet/Tinyboard-Tools/blob/master/js/post-hover.js
- *
- * Released under the MIT license
- * Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
- *
- * Usage:
- * $config['additional_javascript'][] = 'js/jquery.min.js';
- * $config['additional_javascript'][] = 'js/post-hover.js';
- *
- */
-
-$(document).ready(function(){
- var dont_fetch_again = [];
- var init_hover = function() {
- var link = $(this);
-
- var id;
-
- if(id = $(link).text().match(/^>>(\d+)$/)) {
- id = id[1];
- }
-
- var post = false;
- var hovering = false;
- var hovered_at;
- $(link).hover(function(e) {
- hovering = true;
- hovered_at = {'x': e.pageX, 'y': e.pageY};
-
- var start_hover = function(link) {
- if(post.is(':visible') &&
- post.offset().top + post.height() >= $(window).scrollTop() &&
- post.offset().top <= $(window).scrollTop() + $(window).height()
- ) {
- // post is in view
- post.attr('style', 'border-style: none dashed dashed none; background: ' + post.css('border-right-color'));
- } else {
- post.clone()
- .attr('id', 'post-hover-' + id)
- .addClass('post-hover')
- .css('position', 'absolute')
- .css('border-style', 'solid')
- .css('box-shadow', '1px 1px 1px #999')
- .css('display', 'block')
- .insertAfter($(link).parent());
- $(link).trigger('mousemove');
- }
- };
-
- post = $('div.post#reply_' + id);
- if(post.length > 0) {
- start_hover(this);
- } else {
- var url = link.attr('href').replace(/#.*$/, '');
-
- if($.inArray(url, dont_fetch_again) != -1) {
- return;
- }
- dont_fetch_again.push(url);
-
- $.ajax({
- url: url,
- context: document.body,
- success: function(data) {
- $(data).find('div.post.reply').each(function() {
- if($('#' + $(this).attr('id')).length == 0)
- $('div.post:first').prepend($(this).css('display', 'none').addClass('hidden'));
-
- });
-
- post = $('div.post#reply_' + id);
- if(hovering && post.length > 0) {
- start_hover(link);
- }
- }
- });
- }
- }, function() {
- hovering = false;
- if(!post)
- return;
-
- post.attr('style', '');
- if(post.hasClass('hidden'))
- post.css('display', 'none');
- $('.post-hover').remove();
- }).mousemove(function(e) {
- if(!post)
- return;
-
- var hover = $('#post-hover-' + id);
- if(hover.length == 0)
- return;
-
- var top = (e.pageY ? e.pageY : hovered_at['y']) - 10;
-
- if(e.pageY < $(window).scrollTop() + 15) {
- top = $(window).scrollTop();
- } else if(e.pageY > $(window).scrollTop() + $(window).height() - hover.height() - 15) {
- top = $(window).scrollTop() + $(window).height() - hover.height() - 15;
- }
-
-
- hover.css('left', (e.pageX ? e.pageX : hovered_at['x'])).css('top', top);
- });
- };
-
- $('p.body a:not([rel="nofollow"])').each(init_hover);
-
- // allow to work with auto-reload.js, etc.
- $(document).bind('new_post', function(e, post) {
- $(post).find('p.body a:not([rel="nofollow"])').each(init_hover);
- });
-});
-