/**
 * A generic header view class.
 */
(function(define) {
    'use strict';
    define(['backbone', 'text!templates/components/header/header.underscore'],
           function(Backbone, headerTemplate) {
               var HeaderView = Backbone.View.extend({
                   initialize: function(options) {
                       this.template = _.template(headerTemplate);
                       this.headerActionsView = options.headerActionsView;
                       this.listenTo(this.model, 'change', this.render);
                       this.render();
                   },

                   render: function() {
                       var json = this.model.attributes;
                       this.$el.html(this.template(json));
                       if (this.headerActionsView) {
                           this.headerActionsView.setElement(this.$('.page-header-secondary')).render();
                       }
                       return this;
                   }
               });

               return HeaderView;
           });
}).call(this, define || RequireJS.define);