#Set Initial Ratings Values
if app.nps_override_id > 1
  $("ul.selectScore li[object_id='#{app.nps_override_id}']").addClass("selected")
  $('input[name=nps_override]').attr 'value', app.nps_override_id

if app.value_rating_override_id > 1
  $("input#backing6").attr 'value', app.value_rating_override_value
  $('input[name=value_rating_override]').attr 'value', app.value_rating_override_id

if app.frequency_rating_override_id > 1
  $("input#backing1").attr 'value', app.frequency_rating_override_value
  $('input[name=frequency_rating_override]').attr 'value', app.frequency_rating_override_id

if app.relevancy_rating_override_id > 1
  $("input#backing2").attr 'value', app.relevancy_rating_override_value
  $('input[name=relevancy_rating_override]').attr 'value', app.relevancy_rating_override_id

if app.design_rating_override_id > 1
  $("input#backing3").attr 'value', app.design_rating_override_value
  $('input[name=design_rating_override]').attr 'value', app.design_rating_override_id

if app.sentiment_override_id > 1
  $("ul.reviewFaces li[value='#{app.sentiment_override_value}']").addClass("active")
  $('input[name=sentiment_override]').attr 'value', app.sentiment_override_id

$("input[name='validate']").attr 'value', app.validate


$(document).ready ->
  #set Current value
  currentVal = 0

  $("button#validate").click ->
    if !$(this).hasClass("active")
      $("input[name='validate']").attr("value", 2)
      debugger
      $("form.adminAccountCreator").submit()

  setCurrent = ->
    currentVal = Math.round(currentVal * 1000) / 1000
    remaining = Math.round((70 - currentVal) * 1000) / 1000
    if remaining <= 0
      remaining = 0
    $("div.rating span.rating").text(currentVal).attr("data-value", currentVal)
    $("div.rating span.remaining b").text(remaining)

  #Satisfaction Rating
  $(".selectScore li").click ->
    prevVal = 0
    if $(".selectScore li.selected").length == 1
      prevVal = parseFloat($(".selectScore li.selected").attr("data-value"))
    $(".selectScore li").removeClass("selected")
    $(this).addClass("selected")
    value = parseFloat($(this).attr("data-value"))
    object_id = $(this).attr("object_id")
    $('input[name=nps_override]').attr 'value', object_id
    currentVal = value - prevVal + currentVal
    setCurrent()

  $(".rateit").bind 'rated', (event, value) ->
    prevVal = parseFloat($(this).attr("data-current"))
    object_id = value + 1 + ''
    value = parseFloat($(this).attr("data-" + value))
    $(this).removeClass("notRated")
    currentVal = value - prevVal + currentVal
    $(this).attr("data-current", value)
    selector = 'input[name=' + $(this).attr("related-input") + ']'
    $(selector).attr 'value', object_id
    setCurrent()

  #Review Face Select
  $("ul.reviewFaces li a").click ->
    $("ul.reviewFaces").addClass("selected")
    prevVal = 0
    active = $("ul.reviewFaces li").filter ".active"
    if active.length == 1
      prevVal = parseFloat(active.find("a").attr("data-value"))
    if not $(this).parent("li").hasClass("active")
      active.removeClass "active"
      $(this).parent("li").toggleClass "active"
      value = parseFloat($(this).attr("data-value"))
      object_id = $(this).attr("object_id")
      $('input[name=sentiment_override]').attr 'value', object_id
      currentVal = value - prevVal + currentVal
      setCurrent()

  #Self Assessment Stuff
  #show and hide
  updateShow = (currentID) ->
    if currentID == 1
      $("tr").slice(0, currentID).show().addClass('active').attr('id', currentID)
    else
      $("tr").slice((currentID - 1), currentID).show().addClass('active').attr('id', currentID)

  updateHide = ->
    $("tr").hide().removeClass('active')

  updateCount = (currentID) ->
    $("span.count").text(currentID)

  #set Checkbox based on selected value
  setCheckBox = (curr) ->
    val = $("tr##{curr}").find("input:checked").val()
    $('.checkBox').removeClass('active')
    $(".checkBox[value='#{val}']").addClass('active') if val

  #check to see if input is checked in current row and set class
  checkSet = (curr) ->
    if ($("tr##{curr} input:checked").length != 0)
      $("tr##{curr}").addClass('set')
      $('.navButtons #right').attr('disabled', false).removeClass('disabled')
    else
      $('.navButtons #right').attr('disabled', true).addClass('disabled')

  #Set current ID
  curr = 1

  #Hide table questions and update/show first row
  $('tr').hide()
  updateShow(curr)
  checkSet(curr)
  setCheckBox(curr)

  #Checkbox set
  $('.checkBox').on 'click touchend', ->
    $('.checkBox').removeClass('active')
    $(this).removeClass("hover")
    $(this).addClass("active")
    val = $(this).val()
    input = $("tr##{curr}").addClass('set').find("input[value='#{val}']").prop("checked", true)
    if curr == 10
      $('input[type="submit"]').show()
      $('.checkBox').removeClass('active')
      $(this).addClass('active')
      return false
    $('.navButtons #right').attr('disabled', false).removeClass('disabled')

  $('.checkBox').mouseenter ->
    $(this).addClass("hover")
    $(this).removeClass("deselected")

  $('.checkBox').mouseleave ->
    $(this).removeClass("hover")

  #navigate right
  $('.navButtons #right').click ->
    if $(this).hasClass('disabled')
      return false
    updateHide()
    curr++
    if curr == 2
      $('.navButtons #left').show()
    if curr == 10
      $('.navButtons #right').hide()
    checkSet(curr)
    setCheckBox(curr)
    updateShow(curr)
    updateCount(curr)

  #navigate left
  $('.navButtons #left').click ->
    updateHide()
    curr--
    checkSet(curr)
    setCheckBox(curr)
    if curr == 1
      $('.navButtons #left').hide()
    if curr == 9
      $('.navButtons #right').show()
    updateShow(curr)
    updateCount(curr)

  # Message tagging widget
  distribution_list =
    new app.models.DistributionList
      id: app.distribution_list_id

  messages = distribution_list.messages
  tags = distribution_list.tags

  distribution_list_view = new app.views.DistributionListView
    el: $('#monitoring')
    collection: messages

  messages.fetch success: ->
    distribution_list_view.initialize_message_views()
    distribution_list_view.render()
    tags.fetch success: ->
      $(".typeahead").typeahead
        source: distribution_list.tags.models.map (tag)->tag.get('text')
    if messages.length
      $("#tags .navButtons span").text("1/#{messages.length}")
    displayCounter = $('.cb:checked').length
    $('li.displayCount p').text("#{displayCounter}/5")
    $('li.displayCount').attr('value',displayCounter)
    if displayCounter == 5
      $(".cbox").not(".active").toggleClass('disabled')
      $(".displayError").hide().removeClass('active')
    else
      $("#submit_tags_and_next").prop("disabled",false).removeClass("btn-disabled")


  $("#updateAlpha").click ->
    $("#submit_tags_and_next").prop("disabled",false).removeClass("btn-disabled")
    $(".alpha.updatePrompt").show()
    $("#alphaOverlay").show()


  $("#tags .navButtons a").click ->
    navButtons = $(this).parent(".navButtons")
    step = navButtons.attr("id")
    stepCounter = navButtons.find("span")
    divLength = (messages.length - 1) * 812
    if $(this).hasClass("right")
      if parseInt(step) == messages.length
        navButtons.attr("id", "1")
        stepCounter.text("1/#{messages.length}")
        $('#messageWrapper').children('div').animate({"top": "0px"},500);
      else
        step = parseInt(step) + 1
        navButtons.attr("id", step)
        stepCounter.text("#{step}/#{messages.length}")
        $('#messageWrapper').children('div').animate({"top": "-=812px"},500);
    else
      if step == "1"
        navButtons.attr("id", "#{messages.length}")
        stepCounter.text("#{messages.length}/#{messages.length}")
        $('#messageWrapper').children('div').animate({"top": "-#{divLength}px"},500);
      else
        step = parseInt(step) - 1
        navButtons.attr("id", step)
        stepCounter.text("#{step}/#{messages.length}")
        $('#messageWrapper').children('div').animate({"top": "+=812px"},500);

