diff options
author | Andrew Dolgov <[email protected]> | 2005-12-13 16:59:43 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2005-12-13 16:59:43 +0100 |
commit | 1a6a9555ffc0bb6d6f1d9e1b54e141ebd605c604 (patch) | |
tree | 939fb4f4ef2077841cf8ced4476781a2dd2b2a10 /functions.js | |
parent | c3d74dca93ce93bd7aecefccfb459166da9d459e (diff) |
consolidate counter parsing code
Diffstat (limited to 'functions.js')
-rw-r--r-- | functions.js | 104 |
1 files changed, 56 insertions, 48 deletions
diff --git a/functions.js b/functions.js index e032ff527..f82708b29 100644 --- a/functions.js +++ b/functions.js @@ -344,6 +344,61 @@ if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') { xmlhttp_rpc = new XMLHttpRequest(); } +function parse_counters(reply, f_document) { + try { + for (var l = 0; l < reply.childNodes.length; l++) { + var id = reply.childNodes[l].getAttribute("id"); + var t = reply.childNodes[l].getAttribute("type"); + var ctr = reply.childNodes[l].getAttribute("counter"); + + if (id == "global-unread") { + parent.global_unread = ctr; + parent.updateTitle(); + continue; + } + + if (t == "category") { + var catctr = f_document.getElementById("FCATCTR-" + id); + if (catctr) { + catctr.innerHTML = "(" + ctr + " unread)"; + } + continue; + } + + var feedctr = f_document.getElementById("FEEDCTR-" + id); + var feedu = f_document.getElementById("FEEDU-" + id); + var feedr = f_document.getElementById("FEEDR-" + id); + + if (feedctr && feedu && feedr) { + + feedu.innerHTML = ctr; + + if (ctr > 0) { + feedctr.className = "odd"; + if (!feedr.className.match("Unread")) { + var is_selected = feedr.className.match("Selected"); + + feedr.className = feedr.className.replace("Selected", ""); + feedr.className = feedr.className.replace("Unread", ""); + + feedr.className = feedr.className + "Unread"; + + if (is_selected) { + feedr.className = feedr.className + "Selected"; + } + + } + } else { + feedctr.className = "invisible"; + feedr.className = feedr.className.replace("Unread", ""); + } + } + } + } catch (e) { + exception_error(e); + } +} + function all_counters_callback() { if (xmlhttp_rpc.readyState == 4) { try { @@ -353,57 +408,10 @@ function all_counters_callback() { } var reply = xmlhttp_rpc.responseXML.firstChild; - var f_document = parent.frames["feeds-frame"].document; - - for (var l = 0; l < reply.childNodes.length; l++) { - var id = reply.childNodes[l].getAttribute("id"); - var t = reply.childNodes[l].getAttribute("type"); - var ctr = reply.childNodes[l].getAttribute("counter"); - - if (id == "global-unread") { - parent.global_unread = ctr; - parent.updateTitle(); - continue; - } - if (t == "category") { - var catctr = f_document.getElementById("FCATCTR-" + id); - if (catctr) { - catctr.innerHTML = "(" + ctr + " unread)"; - } - continue; - } - - var feedctr = f_document.getElementById("FEEDCTR-" + id); - var feedu = f_document.getElementById("FEEDU-" + id); - var feedr = f_document.getElementById("FEEDR-" + id); - - if (feedctr && feedu && feedr) { - - feedu.innerHTML = ctr; - - if (ctr > 0) { - feedctr.className = "odd"; - if (!feedr.className.match("Unread")) { - var is_selected = feedr.className.match("Selected"); - - feedr.className = feedr.className.replace("Selected", ""); - feedr.className = feedr.className.replace("Unread", ""); - - feedr.className = feedr.className + "Unread"; - - if (is_selected) { - feedr.className = feedr.className + "Selected"; - } + parse_counters(reply, f_document); - } - } else { - feedctr.className = "invisible"; - feedr.className = feedr.className.replace("Unread", ""); - } - } - } } catch (e) { exception_error("all_counters_callback", e); } |