Xmpp.Views.Tabbar ||= {}

class Xmpp.Views.Tabbar.TabView extends Backbone.View
  template: JST["backbone/templates/tabbar/tab"]
  tagName: 'div'
  className: 'tab'

  events:
    'click .js-close': 'closeChat'
    'click a div': 'switchChatWindow'

  initialize: () ->
    _.bindAll(this)
    @active = false

  setActive: ->
    $(@el).addClass('active')
    @active = true
    @render()

  setInactive: ->
    $(@el).removeClass('active')
    @active = false
    @render()

  render: ->
    $(@el).html(@template(
      who:      @model.get('who').firstname(),
      withWhom: @model.get('withWhom').firstname()
    ))
    return this

  showChat: ->
    if !@chatWindow
      @chatWindow = new Xmpp.Views.Chat.WindowView(attributes: {tab: this})
      App.debug 'zobrazujem NOVY chat window'
    else
      App.debug 'zobrazujem EXISTUJUCI chat window'

    @chatWindow.render()

  destroy: ->
    App.debug 'destroy chatWindow and tab'
    if @active
      @chatWindow.remove()
    @remove()

  hideChat: ->
    if @chatWindow
      @chatWindow.hide();

  closeChat: ->
    @destroy()
    Backbone.Events.trigger('closeChat', this, @model)

  hasParticipants: (who, withWhom) ->
    @model && @model.get('who') == who && @model.get('withWhom') == withWhom

  switchChatWindow: ->
    Backbone.Events.trigger('openChat', @model)