// -*- mode: javascript; -*- if (!window.console || !console.firebug) { var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; window.console = {}; for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {} } function check_new_replies () { if (! live_replies) return; if (current_timeout) // clear any outstanding requests to prevent potential collisions window.clearTimeout(current_timeout); var i = Math.round(100000 * Math.random()); var url = '/item/new-replies/' + item_key + '/' + replies_count + '/' + i + '/' + 'newreplies'; ajax(url, check_new_replies_callback, {name: 'replies'}); } var current_timeout; var check_replies_delay = 4000; var global_page_views = -1; var live_replies_suspended = false; function maybe_suspend_live_replies() { if (live_replies_suspended || current_timeout == null) { console.log('maybe_suspend_live_replies: already suspended.'); return; } if (current_timeout) { // live-replues are on window.clearTimeout(current_timeout); current_timeout = null; live_replies_suspended = true; console.log('reply_to: suspending live replies...'); } else { console.log('maybe_suspend_live_replies: live replies are not on.'); } } function maybe_restore_live_replies() { if (live_replies_suspended) { console.log('maybe_restore_live_replies: restoring suspended live replies...'); current_timeout = window.setTimeout(check_new_replies, check_replies_delay); live_replies_suspended = false; } else { console.log('maybe_restore_live_replies: not suspended.'); } } function check_new_replies_callback(req) { current_timeout = window.setTimeout("check_new_replies()", check_replies_delay); live_replies_suspended = false; var new_replies = req.responseText; i = new_replies.indexOf('|'); if (i < 1) return; var new_replies_count = 1 * new_replies.substring(0, i); new_replies = new_replies.substring(i + 1); j = new_replies.indexOf('|'); var total_viewers = 1 * new_replies.substring(0,j); new_replies = new_replies.substring(j + 1); if (global_page_views == -1) { global_page_views = total_viewers; } else if (global_page_views != total_viewers) { global_page_views = total_viewers; refresh_viewing_history(); } if (new_replies_count > replies_count) { replies_count = new_replies_count; check_replies_delay = 1000; window.clearTimeout(current_timeout); current_timeout = window.setTimeout("check_new_replies()", check_replies_delay); } else { check_replies_delay = check_replies_delay * 1.2; // urchinTracker('/item/no-new-replies'); // Google analytics return; } var replies_count_label = getEl('numcommentslabel'); if (replies_count_label) { if (replies_count == 1) replies_count_label.innerHTML = '1 Comment'; else replies_count_label.innerHTML = replies_count + ' Comments'; } var do_scroll; var vheight; if (window.innerHeight) vheight = window.innerHeight; else if (document.documentElement && document.documentElement.clientHeight) vheight = document.documentElement.clientHeight; else if (document.body) vheight = document.body.clientHeight; var html_element = getEl('html_tag'); var scroll_top; if (self.pageYOffset) { scroll_top = self.pageYOffset; } else if (document.documentElement && document.documentElement.scrollTop) { scroll_top = document.documentElement.scrollTop; } else if (document.body) { scroll_top = document.body.scrollTop; } if (html_element.scrollHeight - (scroll_top + vheight) < 4) do_scroll = 1; var new_reply_node = document.createElement("div"); new_reply_node.innerHTML = new_replies; var vid_replies = new Array(); var audio_replies = new Array(); vid_replies = new_replies.match(/