/**
 * @provides javelin-behavior-diff-preview-link
 * @requires javelin-behavior
 *           javelin-stratcom
 *           javelin-dom
 */

JX.behavior('diff-preview-link', function(config, statics) {
  if (statics.initialized) {
    return;
  }
  statics.initialized = true;

  var pht = JX.phtize(config.pht);

  // After inline comment previews are rendered, hook up the links to the
  // comments that are visible on the current page.
  function link_inline_preview(e) {
    var root = e.getData().rootNode;
    var links = JX.DOM.scry(root, 'a',  'differential-inline-preview-jump');

    for (var ii = 0; ii < links.length; ii++) {
      var data = JX.Stratcom.getData(links[ii]);
      try {
        JX.$(data.anchor);
        links[ii].href = '#' + data.anchor;
        JX.DOM.setContent(links[ii], pht('view'));
      } catch (ignored) {
        // This inline comment isn't visible, e.g. on some other diff.
      }
    }

  }

  JX.Stratcom.listen('EditEngine.didCommentPreview', null, link_inline_preview);
});