From 30053886c35a892dc7af53868e7e4189e13ed395 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Niklas=20Laxstr=C3=B6m?= Date: Fri, 24 Feb 2006 23:28:00 +0000 Subject: [PATCH] Should be a little bit faster now --- skins/common/wikibits.js | 43 ++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/skins/common/wikibits.js b/skins/common/wikibits.js index ce2811ca14..a43028c784 100644 --- a/skins/common/wikibits.js +++ b/skins/common/wikibits.js @@ -552,22 +552,41 @@ function allmessagesfilter() { text = document.getElementById('allmessagesinput').value; k = document.getElementById('allmessagestable'); if (!k) { return;} - items = k.getElementsByTagName('span'); - for (var i = 0; i< items.length; i++) { - var hItem = items[i].getAttribute('id'); - if (hItem.substring(0,17) == 'sp-allmessages-i-') { - if (items[i].firstChild && items[i].firstChild.nodeName == '#text' && items[i].firstChild.nodeValue.indexOf(text) != -1) { - var s = "allmessageshelper(\"" + hItem + "\",'')"; - var k = window.setTimeout(s,i); - } else { - var s = "allmessageshelper(\"" + hItem + "\",'none')"; - var k = window.setTimeout(s,i); + + var items = k.getElementsByTagName('span'); + + if ( text.length > allmessages_prev.length ) { + for (var i = items.length-1, j = 0; i >= 0; i--) { + j = allmessagesforeach(items, i, j); + } + } else { + for (var i = 0, j = 0; i < items.length; i++) { + j = allmessagesforeach(items, i, j); + } + } + allmessages_prev = text; +} + +function allmessagesforeach(items, i, j) { + var hItem = items[i].getAttribute('id'); + if (hItem.substring(0,17) == 'sp-allmessages-i-') { + if (items[i].firstChild && items[i].firstChild.nodeName == '#text' && items[i].firstChild.nodeValue.indexOf(text) != -1) { + if ( document.getElementById( hItem.replace('i', 'r1') ).style.display != '' ) { + var s = "allmessageshider(\"" + hItem + "\",'')"; + var k = window.setTimeout(s,j++*5); + } + } else { + if ( document.getElementById( hItem.replace('i', 'r1') ).style.display != 'none' ) { + var s = "allmessageshider(\"" + hItem + "\",'none')"; + var k = window.setTimeout(s,j++*5); } } } + return j; } -function allmessageshelper(hItem, style) { + +function allmessageshider(hItem, style) { document.getElementById( hItem.replace('i', 'r1') ).style.display = style; var row = document.getElementById( hItem.replace('i', 'r2') ); if (row) { row.style.display = style; } @@ -594,6 +613,8 @@ function allmessagesmodified() { function allmessagesshow() { k = document.getElementById('allmessagesfilter'); if (k) { k.style.display = ''; } + + allmessages_prev = ''; } hookEvent("load", allmessagesshow); \ No newline at end of file -- 2.20.1