if (subop == "MarkAllRead") {
- var feedlist = document.getElementById('feedList');
-
- var next_unread_feed = getRelativeFeedId(feedlist,
- feed, "next", true);
-
- if (!next_unread_feed) {
- next_unread_feed = getRelativeFeedId(feedlist,
- -3, "next", true);
- }
-
var show_next_feed = getInitParam("on_catchup_show_next_feed") == "1";
- if (next_unread_feed && show_next_feed && !activeFeedIsCat()) {
- query = query + "&nuf=" + param_escape(next_unread_feed);
- //setActiveFeedId(next_unread_feed);
- feed = next_unread_feed;
+ if (show_next_feed) {
+
+ if (!activeFeedIsCat()) {
+
+ var feedlist = document.getElementById('feedList');
+
+ var next_unread_feed = getRelativeFeedId(feedlist,
+ feed, "next", true);
+
+ if (!next_unread_feed) {
+ next_unread_feed = getRelativeFeedId(feedlist,
+ -3, "next", true);
+ }
+
+ if (next_unread_feed) {
+ query = query + "&nuf=" + param_escape(next_unread_feed);
+ //setActiveFeedId(next_unread_feed);
+ feed = next_unread_feed;
+ }
+ } else {
+
+ var next_unread_feed = getNextUnreadCat(feed);
+
+ /* we don't need to specify that our next feed is actually
+ a category, because we're in the is_cat mode by definition
+ already */
+
+ if (next_unread_feed && show_next_feed) {
+ query = query + "&nuf=" + param_escape(next_unread_feed);
+ feed = next_unread_feed;
+ }
+
+ }
}
}
}
}
+function getNextUnreadCat(id) {
+ try {
+ var rows = document.getElementById("feedList").getElementsByTagName("LI");
+ var feeds = new Array();
+
+ var unread_only = true;
+ var is_cat = true;
+
+ for (var i = 0; i < rows.length; i++) {
+ if (rows[i].id.match("FCAT-")) {
+ if (rows[i].id == "FCAT-" + id && is_cat || (Element.visible(rows[i]) && Element.visible(rows[i].parentNode))) {
+
+ var cat_id = parseInt(rows[i].id.replace("FCAT-", ""));
+
+ if (cat_id >= 0) {
+ if (!unread_only || get_cat_unread(cat_id) > 0) {
+ feeds.push(cat_id);
+ }
+ }
+ }
+ }
+ }
+
+ var idx = feeds.indexOf(id);
+ if (idx != -1 && idx < feeds.length) {
+ return feeds[idx+1];
+ } else {
+ return feeds.shift();
+ }
+
+ } catch (e) {
+ exception_error("getNextUnreadCat", e);
+ }
+}
function getRelativeFeedId2(id, is_cat, direction, unread_only) {
try {