get_sxis = () ->
  $.getJSON('/engagement/sxi').success( (response) ->
    window.sxis = response
    nums = ['20','40','60','80','100']
    for num in nums
      if window.sxis["sxi_#{num}"]
        $("#subject-#{num}").text(window.sxis["sxi_#{num}"].subject)
        $("#rank-#{num}").bootstrapSwitch('state',window.sxis["sxi_#{num}_enabled"])
        $("#response-#{num}").text(window.sxis["sxi_#{num}"].id)
        $("#row-#{num}").removeClass('notSet').addClass('set')
      else
        $("#subject-#{num}").text('No Auto Reply set. Add a response on the right.')
        $("#rank-#{num}").bootstrapSwitch('disabled',true,true)
    $("#rank-comments").bootstrapSwitch('state',window.sxis["comments"],true)
  ).done( ->
    #Load the form for editting if row-20 is set
    if $("#row-20").hasClass('set')
      response_id = $('#response-20').text()
      $.get("/engagement/response-template/" + response_id)
      .done((data) ->
        #load data into the form
        $("form#newAutoResponse input#subject").val(data.subject)
        $("form#newAutoResponse textarea#message").val(data.body)
        $("#addResponse").text("Edit Auto Response")
        $("textarea").change()
      )
  )

check_ready = () ->
  if $("textarea#message").val().length > 0 and $("input#subject").val().length > 0
    $("#addResponse").prop('disabled', false).removeClass('btn-disabled')
  else
    $("#addResponse").prop('disabled', true).addClass('btn-disabled')

$(document).ready ->
  csrf = $("input[name='csrfmiddlewaretoken']").val()
  get_sxis()
  $("input.switch").bootstrapSwitch()
  $("input.switch").bootstrapSwitch('onSwitchChange', (e, state) ->
    num = e.target.id.split('-')[1]
    if num == 'comments'
      $.post("/engagement/auto/comments/", { 'csrfmiddlewaretoken': csrf, 'auto_reply_comments': state })
    else if state
      $.post("/engagement/sxi/#{num}/", { 'response_id': window.sxis["sxi_#{num}"].id, 'csrfmiddlewaretoken': csrf })
    else
      $.post("/engagement/sxi/#{num}/", { 'csrfmiddlewaretoken': csrf })
  )

  $("textarea#message").on('change', check_ready)
  $("textarea#message").on('keyup', check_ready)
  $("input#subject").on('change', check_ready)
  $("input#subject").on('keyup', check_ready)

  $("tr").on('click', ->
    if $(this).hasClass('comments')
      return
    $("tr").removeClass('selected')
    $(this).addClass('selected')
  )
    
  $("#addResponse").on('click', () ->
    num = $('.selected')[0].id.split('-')[1]
    $.post("/engagement/auto/create/", { 'csrfmiddlewaretoken': csrf, 'name': '_autoresponse', 'subject': $("#subject").val(), 'body': $("textarea").val() } ).success( (response) ->
      $.post("/engagement/sxi/#{num}/", { 'csrfmiddlewaretoken': csrf, 'response_id': response.id }).success( () ->
        window.sxis["sxi_#{num}"] = response
        window.sxis["sxi_#{num}_enabled"] = true
        $("#rank-#{num}").bootstrapSwitch('disabled',false,false)
        $("#rank-#{num}").bootstrapSwitch('state',true,true)
        $("#subject-#{num}").text(response.subject)
      )
    )
  )

  $("tr").click ->
    if $(this).hasClass('comments')
      return
    num = $(this)[0].id.split('-')[1]
    if window.sxis['sxi_' + num]
      $("#subject").val(window.sxis['sxi_' + num].subject)
      $("textarea").val(window.sxis['sxi_' + num].body)
      $("#addResponse").text("Edit Auto Response").prop('disabled', true).addClass('btn-disabled')
    else
      $("form#newAutoResponse input#subject").val("")
      $("form#newAutoResponse textarea#message").val("")
      $("#addResponse").text("Add Auto Response").prop('disabled', true).addClass('btn-disabled')
    $("textarea").change()

  $("textarea").on('change', ->  $("#emailPreview").html($("textarea").val()))
  $("textarea").on('keyup', ->  $("#emailPreview").html($("textarea").val()))
