Ext.onReady(function() {
  addProfileFilteringBehavior();

  function _addOverBehavior(selection) {
    selection.on('mouseover', function(e, el, o) { Ext.get(this).addClass('over'); });
    selection.on('mouseout', function(e, el, o) { Ext.get(this).removeClass('over'); });
  }
  _addOverBehavior(Ext.select('ul#uninav > li.initiative'));
  _addOverBehavior(Ext.select('.oc-dropdown-list li.lsi-dropdown-container'));

  _quoteHtmlMessages();
});

function _quoteHtmlMessages() {
  // this will try to make blockquotes collapsible
  // which is what mail clients seem to do with responses
  var msgs = Ext.query('.oc-listen-message-body');
  for (var i = 0; i < msgs.length; i++) {
    var msg = msgs[i];
    var blockquotes = Ext.get(msg).query('blockquote');
    for (var j = 0; j < blockquotes.length; j++) {
      var blockquote = Ext.get(blockquotes[j]);
      var elt = Ext.DomHelper.insertBefore(blockquote,
        {tag: 'div',
         cls: 'oc-listen-quoted-text oc-js-expander',
         children: [{tag: 'h3',
                     cls: 'oc-js-expander_open oc-expanderLink',
                     html: 'Show quoted text'
                    },
                    {tag: 'div',
                     cls: 'oc-js-expander-content'
                    }]
        },
        true);
      var node = blockquote.dom;
      node = node.parentNode.removeChild(node);
      elt.child('.oc-js-expander-content').appendChild(node);
      OC.breatheLife(elt);
    }
  }
}

function addProfileFilteringBehavior() {
  var feedProfile = Ext.get('oc-feed-profile');
  if (!feedProfile) return;
  var feedItems = Ext.query('li.oc-feed-item', feedProfile.dom);
  var dateHeaders = Ext.query('h3.oc-boxy', feedProfile.dom);
  var feedContainer = Ext.get('feed-container');
  var filters = Ext.select('.filters li');
  Ext.select('.filters a', false, feedProfile.dom).on('click', function(e, el, o) {
    e.preventDefault();
    filters.removeClass('current');
    Ext.get(el).up('li').addClass('current');
    var query = el.innerHTML;
    var url = window.location.href;
    feedContainer.load({url: url,
                        method: 'GET',
                        params: {query: query}
                       });
  });
}
