// Generated by CoffeeScript 1.3.3

/*
@license

----------------------------------------------

Copyright (c) 2012, Fergal Moran. All rights reserved.
Code provided under the BSD License:
*/


(function() {
  var __hasProp = {}.hasOwnProperty,
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };

  define(["underscore", "backbone", "vent", "utils", "text!/tpl/HeaderView"], function(_, Backbone, vent, utils, Template) {
    var HeaderView;
    HeaderView = (function(_super) {

      __extends(HeaderView, _super);

      function HeaderView() {
        return HeaderView.__super__.constructor.apply(this, arguments);
      }

      HeaderView.prototype.template = _.template(Template);

      HeaderView.prototype.events = {
        "click #header-play-pause-button": "togglePlayState",
        "click #header-login-button": "login",
        "click #header-live-button": "playLive"
      };

      HeaderView.prototype.initialize = function() {
        this.render();
        this.listenTo(vent, "mix:play", this.trackPlaying);
        return this.listenTo(vent, "mix:pause", this.trackPaused);
      };

      HeaderView.prototype.login = function() {
        return utils.modal("dlg/LoginView");
      };

      HeaderView.prototype.logout = function() {
        return utils.showAlert("Success", "You are now logged out");
      };

      HeaderView.prototype.trackChanged = function(data) {
        $(this.el).find("#track-description").text(data.title);
        return $(this.el).find("#track-description").attr("href", "#" + data.item_url);
      };

      HeaderView.prototype.trackPlaying = function(data) {
        $(this.el).find("#header-play-button-icon").removeClass("icon-play");
        return $(this.el).find("#header-play-button-icon").addClass("icon-pause");
      };

      HeaderView.prototype.trackPaused = function(data) {
        $(this.el).find("#header-play-button-icon").removeClass("icon-pause");
        return $(this.el).find("#header-play-button-icon").addClass("icon-play");
      };

      HeaderView.prototype.render = function() {
        $(this.el).html(this.template());
        return this;
      };

      HeaderView.prototype.playLive = function() {
        return vent.trigger('live:play');
      };

      HeaderView.prototype.togglePlayState = function() {
        var button, mode;
        button = $(this.el).find("#header-play-pause-button");
        mode = button.data("mode");
        if (mode === "play") {
          dssSoundHandler.resumeSound();
          _eventAggregator.trigger("track_playing");
          return button.data("mode", "pause");
        } else {
          dssSoundHandler.pauseSound();
          _eventAggregator.trigger("track_paused");
          return button.data("mode", "play");
        }
      };

      return HeaderView;

    })(Backbone.View);
    return HeaderView;
  });

}).call(this);
