/** * @provides javelin-behavior-differential-show-all-comments * @requires javelin-behavior * javelin-stratcom * javelin-dom */ JX.behavior('differential-show-all-comments', function(config) { var shown = false; function reveal(node) { if (shown) { return false; } shown = true; node = node || JX.DOM.find( document.body, 'div', 'differential-all-comments-container'); if (node) { JX.DOM.setContent(node, JX.$H(config.markup)); } return true; } // Reveal the hidden comments if the user clicks "Show All Comments", or if // there's an anchor in the URL, since we don't want to link to "#comment-3" // and have it collapsed. function at_comment_hash() { return window.location.hash && window.location.hash.match(/comment/); } if (at_comment_hash()) { reveal(); } else { JX.Stratcom.listen( 'hashchange', null, function(e) { if (at_comment_hash() && reveal()) { try { var target = JX.$(window.location.hash.replace(/^#/, '')); window.scrollTo(0, target.offsetTop); } catch (ex) { } } }); } JX.Stratcom.listen( 'click', 'differential-show-all-comments', function(e) { reveal(e.getNode('differential-all-comments-container')); e.kill(); }); });