var _active_article_id = 0; var vgroup_last_feed = false; var post_under_pointer = false; var last_requested_article = false; var catchup_id_batch = []; var catchup_timeout_id = false; var cids_requested = []; var loaded_article_ids = []; var _last_headlines_update = 0; var _headlines_scroll_offset = 0; var current_first_id = 0; var last_search_query; var _catchup_request_sent = false; var has_storage = 'sessionStorage' in window && window['sessionStorage'] !== null; function headlines_callback2(transport, offset, background, infscroll_req) { handle_rpc_json(transport); console.log("headlines_callback2 [offset=" + offset + "] B:" + background + " I:" + infscroll_req); var is_cat = false; var feed_id = false; var reply = false; try { reply = JSON.parse(transport.responseText); } catch (e) { console.error(e); } if (reply) { is_cat = reply['headlines']['is_cat']; feed_id = reply['headlines']['id']; last_search_query = reply['headlines']['search_query']; if (background) { var content = reply['headlines']['content']; content = content + "
"; return; } if (feed_id != -7 && (feed_id != getActiveFeedId() || is_cat != activeFeedIsCat())) return; /* dijit.getEnclosingWidget( document.forms["main_toolbar_form"].update).attr('disabled', is_cat || feed_id <= 0); */ try { if (infscroll_req == false) { $("headlines-frame").scrollTop = 0; $("floatingTitle").style.visibility = "hidden"; $("floatingTitle").setAttribute("data-article-id", 0); $("floatingTitle").innerHTML = ""; } } catch (e) { }; $("headlines-frame").removeClassName("cdm"); $("headlines-frame").removeClassName("normal"); $("headlines-frame").addClassName(isCdmMode() ? "cdm" : "normal"); var headlines_count = reply['headlines-info']['count']; vgroup_last_feed = reply['headlines-info']['vgroup_last_feed']; if (parseInt(headlines_count) < 30) { _infscroll_disable = 1; } else { _infscroll_disable = 0; } current_first_id = reply['headlines']['first_id']; var counters = reply['counters']; var articles = reply['articles']; //var runtime_info = reply['runtime-info']; if (infscroll_req == false) { loaded_article_ids = []; dojo.html.set($("headlines-toolbar"), reply['headlines']['toolbar'], {parseContent: true}); /*dojo.html.set($("headlines-frame"), reply['headlines']['content'], {parseContent: true}); $$("#headlines-frame div[id*='RROW']").each(function(row) { loaded_article_ids.push(row.id); });*/ $("headlines-frame").innerHTML = ''; var tmp = new Element("div"); tmp.innerHTML = reply['headlines']['content']; dojo.parser.parse(tmp); while (tmp.hasChildNodes()) { var row = tmp.removeChild(tmp.firstChild); if (loaded_article_ids.indexOf(row.id) == -1 || row.hasClassName("cdmFeedTitle")) { dijit.byId("headlines-frame").domNode.appendChild(row); loaded_article_ids.push(row.id); } } var hsp = $("headlines-spacer"); if (!hsp) hsp = new Element("DIV", {"id": "headlines-spacer"}); dijit.byId('headlines-frame').domNode.appendChild(hsp); initHeadlinesMenu(); if (_infscroll_disable) hsp.innerHTML = "" + __("Click to open next unread feed.") + ""; if (_search_query) { $("feed_title").innerHTML += "" + " (" + __("Cancel search") + ")" + ""; } } else { if (headlines_count > 0 && feed_id == getActiveFeedId() && is_cat == activeFeedIsCat()) { console.log("adding some more headlines: " + headlines_count); var c = dijit.byId("headlines-frame"); var ids = getSelectedArticleIds2(); var hsp = $("headlines-spacer"); if (hsp) c.domNode.removeChild(hsp); var tmp = new Element("div"); tmp.innerHTML = reply['headlines']['content']; dojo.parser.parse(tmp); while (tmp.hasChildNodes()) { var row = tmp.removeChild(tmp.firstChild); if (loaded_article_ids.indexOf(row.id) == -1 || row.hasClassName("cdmFeedTitle")) { dijit.byId("headlines-frame").domNode.appendChild(row); loaded_article_ids.push(row.id); } } if (!hsp) hsp = new Element("DIV", {"id": "headlines-spacer"}); c.domNode.appendChild(hsp); if (headlines_count < 30) _infscroll_disable = true; console.log("restore selected ids: " + ids); for (var i = 0; i < ids.length; i++) { markHeadline(ids[i]); } initHeadlinesMenu(); if (_infscroll_disable) { hsp.innerHTML = "" + __("Click to open next unread feed.") + ""; } } else { console.log("no new headlines received"); var first_id_changed = reply['headlines']['first_id_changed']; console.log("first id changed:" + first_id_changed); var hsp = $("headlines-spacer"); if (hsp) { if (first_id_changed) { hsp.innerHTML = "" + __("New articles found, reload feed to continue.") + ""; } else { hsp.innerHTML = "" + __("Click to open next unread feed.") + ""; } } } } if (articles) { for (var i = 0; i < articles.length; i++) { var a_id = articles[i]['id']; cache_set("article:" + a_id, articles[i]['content']); } } else { console.log("no cached articles received"); } if (counters) parse_counters(counters); else request_counters(); } else { console.error("Invalid object received: " + transport.responseText); dijit.byId("headlines-frame").attr('content', "
" +
__("Loading, please wait...") + "";
loadMoreHeadlines();
return;
}
}
if (isCdmMode()) {
updateFloatingTitle();
}
catchupCurrentBatchIfNeeded();
if (getInitParam("cdm_auto_catchup") == 1) {
// let's get DOM some time to settle down
var ts = new Date().getTime();
if (ts - _last_headlines_update < 100) return;
$$("#headlines-frame > div[id*=RROW][class*=Unread]").each(
function(child) {
if (child.hasClassName("Unread") && $("headlines-frame").scrollTop >
(child.offsetTop + child.offsetHeight/2)) {
var id = child.getAttribute("data-article-id")
if (catchup_id_batch.indexOf(id) == -1)
catchup_id_batch.push(id);
//console.log("auto_catchup_batch: " + catchup_id_batch.toString());
}
});
if (_infscroll_disable) {
var child = $$("#headlines-frame div[id*=RROW]").last();
if (child && $("headlines-frame").scrollTop >
(child.offsetTop + child.offsetHeight - 50)) {
console.log("we seem to be at an end");
if (getInitParam("on_catchup_show_next_feed") == "1") {
openNextUnreadFeed();
}
}
}
}
} catch (e) {
console.warn("headlines_scroll_handler: " + e);
}
}
function openNextUnreadFeed() {
var is_cat = activeFeedIsCat();
var nuf = getNextUnreadFeed(getActiveFeedId(), is_cat);
if (nuf) viewfeed({feed: nuf, is_cat: is_cat});
}
function catchupBatchedArticles() {
if (catchup_id_batch.length > 0 && !_infscroll_request_sent && !_catchup_request_sent) {
console.log("catchupBatchedArticles: working");
// make a copy of the array
var batch = catchup_id_batch.slice();
var query = "?op=rpc&method=catchupSelected" +
"&cmode=0&ids=" + param_escape(batch.toString());
console.log(query);
_catchup_request_sent = true;
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
handle_rpc_json(transport);
_catchup_request_sent = false;
reply = JSON.parse(transport.responseText);
var batch = reply.ids;
batch.each(function (id) {
console.log(id);
var elem = $("RROW-" + id);
if (elem) elem.removeClassName("Unread");
catchup_id_batch.remove(id);
});
updateFloatingTitle(true);
}
});
}
}
function catchupRelativeToArticle(below, id) {
if (!id) id = getActiveArticleId();
if (!id) {
alert(__("No article is selected."));
return;
}
var visible_ids = getLoadedArticleIds();
var ids_to_mark = new Array();
if (!below) {
for (var i = 0; i < visible_ids.length; i++) {
if (visible_ids[i] != id) {
var e = $("RROW-" + visible_ids[i]);
if (e && e.hasClassName("Unread")) {
ids_to_mark.push(visible_ids[i]);
}
} else {
break;
}
}
} else {
for (var i = visible_ids.length - 1; i >= 0; i--) {
if (visible_ids[i] != id) {
var e = $("RROW-" + visible_ids[i]);
if (e && e.hasClassName("Unread")) {
ids_to_mark.push(visible_ids[i]);
}
} else {
break;
}
}
}
if (ids_to_mark.length == 0) {
alert(__("No articles found to mark"));
} else {
var msg = ngettext("Mark %d article as read?", "Mark %d articles as read?", ids_to_mark.length).replace("%d", ids_to_mark.length);
if (getInitParam("confirm_feed_catchup") != 1 || confirm(msg)) {
for (var i = 0; i < ids_to_mark.length; i++) {
var e = $("RROW-" + ids_to_mark[i]);
e.removeClassName("Unread");
}
var query = "?op=rpc&method=catchupSelected" +
"&cmode=0" + "&ids=" + param_escape(ids_to_mark.toString());
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
handle_rpc_json(transport);
}
});
}
}
}
function cdmCollapseArticle(event, id, unmark) {
if (unmark == undefined) unmark = true;
var row = $("RROW-" + id);
var elem = $("CICD-" + id);
if (elem && row) {
var collapse = row.select("span[class='collapseBtn']")[0];
Element.hide(elem);
Element.show("CEXC-" + id);
Element.hide(collapse);
if (unmark) {
row.removeClassName("active");
markHeadline(id, false);
if (id == getActiveArticleId()) {
setActiveArticleId(0);
}
updateSelectedPrompt();
}
if (event) Event.stop(event);
PluginHost.run(PluginHost.HOOK_ARTICLE_COLLAPSED, id);
if (row.offsetTop < $("headlines-frame").scrollTop)
scrollToRowId(row.id);
$("floatingTitle").style.visibility = "hidden";
$("floatingTitle").setAttribute("data-article-id", 0);
}
}
function cdmExpandArticle(id, noexpand) {
console.log("cdmExpandArticle " + id);
var row = $("RROW-" + id);
if (!row) return false;
var oldrow = $("RROW-" + getActiveArticleId());
var elem = $("CICD-" + getActiveArticleId());
if (id == getActiveArticleId() && Element.visible(elem))
return true;
selectArticles("none");
var old_offset = row.offsetTop;
if (getActiveArticleId() && elem && !getInitParam("cdm_expanded")) {
var collapse = oldrow.select("span[class='collapseBtn']")[0];
Element.hide(elem);
Element.show("CEXC-" + getActiveArticleId());
Element.hide(collapse);
}
if (oldrow) oldrow.removeClassName("active");
setActiveArticleId(id);
elem = $("CICD-" + id);
var collapse = row.select("span[class='collapseBtn']")[0];
var cencw = $("CENCW-" + id);
if (!Element.visible(elem) && !noexpand) {
if (cencw) {
cencw.innerHTML = htmlspecialchars_decode(cencw.innerHTML);
cencw.setAttribute('id', '');
Element.show(cencw);
}
Element.show(elem);
Element.hide("CEXC-" + id);
Element.show(collapse);
}
var new_offset = row.offsetTop;
if (old_offset > new_offset)
$("headlines-frame").scrollTop -= (old_offset - new_offset);
if (!noexpand) {
if (catchup_id_batch.indexOf(id) == -1)
catchup_id_batch.push(id);
catchupCurrentBatchIfNeeded();
}
toggleSelected(id);
row.addClassName("active");
PluginHost.run(PluginHost.HOOK_ARTICLE_EXPANDED, id);
return false;
}
function getArticleUnderPointer() {
return post_under_pointer;
}
function scrollArticle(offset) {
if (!isCdmMode()) {
var ci = $("content-insert");
if (ci) {
ci.scrollTop += offset;
}
} else {
var hi = $("headlines-frame");
if (hi) {
hi.scrollTop += offset;
}
}
}
function show_labels_in_headlines(transport) {
var data = JSON.parse(transport.responseText);
if (data) {
data['info-for-headlines'].each(function (elem) {
$$(".HLLCTR-" + elem.id).each(function (ctr) {
ctr.innerHTML = elem.labels;
});
});
}
}
function cdmClicked(event, id, in_body) {
//var shift_key = event.shiftKey;
if (!event.ctrlKey && !event.metaKey) {
if (!getInitParam("cdm_expanded")) {
return cdmExpandArticle(id);
} else {
var elem = $("RROW-" + getActiveArticleId());
if (elem) elem.removeClassName("active");
selectArticles("none");
toggleSelected(id);
var elem = $("RROW-" + id);
var article_is_unread = elem.hasClassName("Unread");
elem.removeClassName("Unread");
elem.addClassName("active");
setActiveArticleId(id);
if (article_is_unread) {
decrementFeedCounter(getActiveFeedId(), activeFeedIsCat());
updateFloatingTitle(true);
}
var query = "?op=rpc&method=catchupSelected" +
"&cmode=0&ids=" + param_escape(id);
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
handle_rpc_json(transport);
}
});
return !event.shiftKey;
}
} else if (!in_body) {
toggleSelected(id, true);
var elem = $("RROW-" + id);
var article_is_unread = elem.hasClassName("Unread");
if (article_is_unread) {
decrementFeedCounter(getActiveFeedId(), activeFeedIsCat());
}
toggleUnread(id, 0, false);
openArticleInNewWindow(id);
} else {
return true;
}
var unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length
request_counters(unread_in_buffer == 0);
return false;
}
function hlClicked(event, id) {
if (event.which == 2) {
view(id);
return true;
} else if (event.ctrlKey || event.metaKey) {
toggleSelected(id, true);
toggleUnread(id, 0, false);
openArticleInNewWindow(id);
return false;
} else {
view(id);
return false;
}
}
function openArticleInNewWindow(id) {
toggleUnread(id, 0, false);
var w = window.open("");
w.opener = null;
w.location = "backend.php?op=article&method=redirect&id=" + id;
}
function isCdmMode() {
return getInitParam("combined_display_mode");
}
function markHeadline(id, marked) {
if (marked == undefined) marked = true;
var row = $("RROW-" + id);
if (row) {
var check = dijit.getEnclosingWidget(
row.getElementsByClassName("rchk")[0]);
if (check) {
check.attr("checked", marked);
}
if (marked)
row.addClassName("Selected");
else
row.removeClassName("Selected");
}
}
function getRelativePostIds(id, limit) {
var tmp = [];
if (!limit) limit = 6; //3
var ids = getLoadedArticleIds();
for (var i = 0; i < ids.length; i++) {
if (ids[i] == id) {
for (var k = 1; k <= limit; k++) {
//if (i > k-1) tmp.push(ids[i-k]);
if (i < ids.length - k) tmp.push(ids[i + k]);
}
break;
}
}
return tmp;
}
function correctHeadlinesOffset(id) {
var container = $("headlines-frame");
var row = $("RROW-" + id);
if (!container || !row) return;
var viewport = container.offsetHeight;
var rel_offset_top = row.offsetTop - container.scrollTop;
var rel_offset_bottom = row.offsetTop + row.offsetHeight - container.scrollTop;
//console.log("Rtop: " + rel_offset_top + " Rbtm: " + rel_offset_bottom);
//console.log("Vport: " + viewport);
if (rel_offset_top <= 0 || rel_offset_top > viewport) {
container.scrollTop = row.offsetTop;
} else if (rel_offset_bottom > viewport) {
/* doesn't properly work with Opera in some cases because
Opera fucks up element scrolling */
container.scrollTop = row.offsetTop + row.offsetHeight - viewport;
}
}
function headlineActionsChange(elem) {
eval(elem.value);
elem.attr('value', 'false');
}
function closeArticlePanel() {
if (dijit.byId("content-insert"))
dijit.byId("headlines-wrap-inner").removeChild(
dijit.byId("content-insert"));
}
function initFloatingMenu() {
if (!dijit.byId("floatingMenu")) {
var menu = new dijit.Menu({
id: "floatingMenu",
targetNodeIds: ["floatingTitle"]
});
headlinesMenuCommon(menu);
menu.startup();
}
}
function headlinesMenuCommon(menu) {
menu.addChild(new dijit.MenuItem({
label: __("Open original article"),
onClick: function (event) {
openArticleInNewWindow(this.getParent().currentTarget.getAttribute("data-article-id"));
}
}));
menu.addChild(new dijit.MenuItem({
label: __("Display article URL"),
onClick: function (event) {
displayArticleUrl(this.getParent().currentTarget.getAttribute("data-article-id"));
}
}));
menu.addChild(new dijit.MenuSeparator());
menu.addChild(new dijit.MenuItem({
label: __("Toggle unread"),
onClick: function (event) {
var ids = getSelectedArticleIds2();
// cast to string
var id = (this.getParent().currentTarget.getAttribute("data-article-id")) + "";
ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
selectionToggleUnread(undefined, false, true, ids);
}
}));
menu.addChild(new dijit.MenuItem({
label: __("Toggle starred"),
onClick: function (event) {
var ids = getSelectedArticleIds2();
// cast to string
var id = (this.getParent().currentTarget.getAttribute("data-article-id")) + "";
ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
selectionToggleMarked(undefined, false, true, ids);
}
}));
menu.addChild(new dijit.MenuItem({
label: __("Toggle published"),
onClick: function (event) {
var ids = getSelectedArticleIds2();
// cast to string
var id = (this.getParent().currentTarget.getAttribute("data-article-id")) + "";
ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
selectionTogglePublished(undefined, false, true, ids);
}
}));
menu.addChild(new dijit.MenuSeparator());
menu.addChild(new dijit.MenuItem({
label: __("Mark above as read"),
onClick: function (event) {
catchupRelativeToArticle(0, this.getParent().currentTarget.getAttribute("data-article-id"));
}
}));
menu.addChild(new dijit.MenuItem({
label: __("Mark below as read"),
onClick: function (event) {
catchupRelativeToArticle(1, this.getParent().currentTarget.getAttribute("data-article-id"));
}
}));
var labels = getInitParam("labels");
if (labels && labels.length) {
menu.addChild(new dijit.MenuSeparator());
var labelAddMenu = new dijit.Menu({ownerMenu: menu});
var labelDelMenu = new dijit.Menu({ownerMenu: menu});
labels.each(function (label) {
var bare_id = label.id;
var name = label.caption;
labelAddMenu.addChild(new dijit.MenuItem({
label: name,
labelId: bare_id,
onClick: function (event) {
var ids = getSelectedArticleIds2();
// cast to string
var id = (this.getParent().ownerMenu.currentTarget.getAttribute("data-article-id")) + "";
ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
selectionAssignLabel(this.labelId, ids);
}
}));
labelDelMenu.addChild(new dijit.MenuItem({
label: name,
labelId: bare_id,
onClick: function (event) {
var ids = getSelectedArticleIds2();
// cast to string
var id = (this.getParent().ownerMenu.currentTarget.getAttribute("data-article-id")) + "";
ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
selectionRemoveLabel(this.labelId, ids);
}
}));
});
menu.addChild(new dijit.PopupMenuItem({
label: __("Assign label"),
popup: labelAddMenu
}));
menu.addChild(new dijit.PopupMenuItem({
label: __("Remove label"),
popup: labelDelMenu
}));
}
}
function initHeadlinesMenu() {
if (!dijit.byId("headlinesMenu")) {
var menu = new dijit.Menu({
id: "headlinesMenu",
targetNodeIds: ["headlines-frame"],
selector: ".hlMenuAttach"
});
headlinesMenuCommon(menu);
menu.startup();
}
/* vgroup feed title menu */
if (!dijit.byId("headlinesFeedTitleMenu")) {
var menu = new dijit.Menu({
id: "headlinesFeedTitleMenu",
targetNodeIds: ["headlines-frame"],
selector: "div.cdmFeedTitle"
});
menu.addChild(new dijit.MenuItem({
label: __("Select articles in group"),
onClick: function (event) {
selectArticles("all",
"#headlines-frame > div[id*=RROW]" +
"[data-orig-feed-id='" + this.getParent().currentTarget.getAttribute("data-feed-id") + "']");
}
}));
menu.addChild(new dijit.MenuItem({
label: __("Mark group as read"),
onClick: function (event) {
selectArticles("none");
selectArticles("all",
"#headlines-frame > div[id*=RROW]" +
"[data-orig-feed-id='" + this.getParent().currentTarget.getAttribute("data-feed-id") + "']");
catchupSelection();
}
}));
menu.addChild(new dijit.MenuItem({
label: __("Mark feed as read"),
onClick: function (event) {
catchupFeedInGroup(this.getParent().currentTarget.getAttribute("data-feed-id"));
}
}));
menu.addChild(new dijit.MenuItem({
label: __("Edit feed"),
onClick: function (event) {
editFeed(this.getParent().currentTarget.getAttribute("data-feed-id"));
}
}));
menu.startup();
}
}
function cache_set(id, obj) {
//console.log("cache_set: " + id);
if (has_storage)
try {
sessionStorage[id] = obj;
} catch (e) {
sessionStorage.clear();
}
}
function cache_get(id) {
if (has_storage)
return sessionStorage[id];
}
function cache_clear() {
if (has_storage)
sessionStorage.clear();
}
function cache_delete(id) {
if (has_storage)
sessionStorage.removeItem(id);
}
function cancelSearch() {
_search_query = "";
viewCurrentFeed();
}
function setSelectionScore() {
var ids = getSelectedArticleIds2();
if (ids.length > 0) {
console.log(ids);
var score = prompt(__("Please enter new score for selected articles:"), score);
if (score != undefined) {
var query = "op=article&method=setScore&id=" + param_escape(ids.toString()) +
"&score=" + param_escape(score);
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
var reply = JSON.parse(transport.responseText);
if (reply) {
console.log(ids);
ids.each(function (id) {
var row = $("RROW-" + id);
if (row) {
var pic = row.getElementsByClassName("hlScorePic")[0];
if (pic) {
pic.src = pic.src.replace(/score_.*?\.png/,
reply["score_pic"]);
pic.setAttribute("score", score);
}
}
});
}
}
});
}
} else {
alert(__("No articles are selected."));
}
}
function updateScore(id) {
var pic = $$("#RROW-" + id + " .hlScorePic")[0];
if (pic) {
var query = "op=article&method=getScore&id=" + param_escape(id);
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
console.log(transport.responseText);
var reply = JSON.parse(transport.responseText);
if (reply) {
pic.src = pic.src.replace(/score_.*?\.png/, reply["score_pic"]);
pic.setAttribute("score", reply["score"]);
pic.setAttribute("title", reply["score"]);
}
}
});
}
}
function changeScore(id, pic) {
var score = pic.getAttribute("score");
var new_score = prompt(__("Please enter new score for this article:"), score);
if (new_score != undefined) {
var query = "op=article&method=setScore&id=" + param_escape(id) +
"&score=" + param_escape(new_score);
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
var reply = JSON.parse(transport.responseText);
if (reply) {
pic.src = pic.src.replace(/score_.*?\.png/, reply["score_pic"]);
pic.setAttribute("score", new_score);
pic.setAttribute("title", new_score);
}
}
});
}
}
function displayArticleUrl(id) {
var query = "op=rpc&method=getlinktitlebyid&id=" + param_escape(id);
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function (transport) {
var reply = JSON.parse(transport.responseText);
if (reply && reply.link) {
prompt(__("Article URL:"), reply.link);
}
}
});
}
function scrollToRowId(id) {
var row = $(id);
if (row)
$("headlines-frame").scrollTop = row.offsetTop - 4;
}
function updateFloatingTitle(unread_only) {
if (!isCdmMode()) return;
var hf = $("headlines-frame");
var elems = $$("#headlines-frame > div[id*=RROW]");
for (var i = 0; i < elems.length; i++) {
var child = elems[i];
if (child && child.offsetTop + child.offsetHeight > hf.scrollTop) {
var header = child.getElementsByClassName("cdmHeader")[0];
if (unread_only || child.getAttribute("data-article-id") != $("floatingTitle").getAttribute("data-article-id")) {
if (child.getAttribute("data-article-id") != $("floatingTitle").getAttribute("data-article-id")) {
$("floatingTitle").setAttribute("data-article-id", child.getAttribute("data-article-id"));
$("floatingTitle").innerHTML = header.innerHTML;
$("floatingTitle").firstChild.innerHTML = "
" + $("floatingTitle").firstChild.innerHTML;
initFloatingMenu();
var cb = $$("#floatingTitle .dijitCheckBox")[0];
if (cb)
cb.parentNode.removeChild(cb);
}
if (child.hasClassName("Unread"))
$("floatingTitle").addClassName("Unread");
else
$("floatingTitle").removeClassName("Unread");
PluginHost.run(PluginHost.HOOK_FLOATING_TITLE, child);
}
$("floatingTitle").style.marginRight = hf.offsetWidth - child.offsetWidth + "px";
if (header.offsetTop + header.offsetHeight < hf.scrollTop + $("floatingTitle").offsetHeight - 5 &&
child.offsetTop + child.offsetHeight >= hf.scrollTop + $("floatingTitle").offsetHeight - 5)
$("floatingTitle").style.visibility = "visible";
else
$("floatingTitle").style.visibility = "hidden";
return;
}
}
}
function catchupCurrentBatchIfNeeded() {
if (catchup_id_batch.length > 0) {
window.clearTimeout(catchup_timeout_id);
catchup_timeout_id = window.setTimeout(catchupBatchedArticles, 1000);
if (catchup_id_batch.length >= 10) {
catchupBatchedArticles();
}
}
}
function cdmFooterClick(event) {
event.stopPropagation();
}