$(document).ready ->

  #set Current value
  currentVal = 0

  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()

  #Select Buttons
  $("fieldset.rating select").on('change', ->
    prevVal = parseFloat($(this).attr("data-current"))
    value = parseFloat($(this).children('option:selected').attr("data-value"))
    $(this).attr("data-current", value)
    currentVal = value - prevVal + currentVal
    setCurrent()
  )

