summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/id_highlighter40
1 files changed, 40 insertions, 0 deletions
diff --git a/js/id_highlighter b/js/id_highlighter
new file mode 100644
index 00000000..60052031
--- /dev/null
+++ b/js/id_highlighter
@@ -0,0 +1,40 @@
+Array.prototype.remove = function(v) { this.splice(this.indexOf(v) == -1 ? this.length : this.indexOf(v), 1); }
+
+var idshighlighted = [];
+
+function getPostsById(id){
+ return $(".poster_id").filter(function(i){
+ return $(this).text() == id;
+ });
+}
+
+function getMasterPosts(parents){
+ if(!parents.hasClass("post")) return;
+
+ var toRet = [];
+
+ $(parents).each(function(){
+ if($(this).hasClass("post"))
+ toRet.push($(this));
+ });
+
+ return toRet;
+}
+
+$(".poster_id").click(function(){
+ var id = $(this).text();
+
+ if($.inArray(id, idshighlighted) !== -1){
+ idshighlighted.remove(id);
+
+ $(getMasterPosts(getPostsById(id).parents())).each(function(i){
+ $(this).removeClass("highlighted");
+ });
+ }else{
+ idshighlighted.push(id);
+
+ $(getMasterPosts(getPostsById(id).parents())).each(function(i){
+ $(this).addClass("highlighted");
+ });
+ }
+});