$(document).ready ->

  sort = () ->
    $(".pointSort li").each (idx) ->
      id = this.id
      num_selected = idx+1
      $(this).find("span").text(num_selected)
      checkbox = $('#checkbox'+id)[0]
      name = checkbox.name
      sort_name = name + '_sort'
      hidden_input = $('input[name="'+sort_name+'"]')[0]
      hidden_input.value = num_selected
      if num_selected <= 4
        $("ul.pointsList li##{id} input[type='checkbox']").prop('checked', true)
      else
        $("ul.pointsList li##{id} input[type='checkbox']").prop('checked', false)

  setClick = () ->
    $('li.option a').click ->
      $(this).closest('li.option').remove()
      sort()
      if not $(this).hasClass('custom')
        id = $(this).closest('li.option').attr('id')
        $("ul.pointsList input[value='#{id}']").prop('checked', false)

  initialSort = () ->
    selectedPoints = {}
    $('input[checked="checked"]').each ->
      id = $(this).val()
      sort_order = $(this).attr('sort')
      textStuff = $(this).next('p').text()
      newSelectedPoint = "<li id='#{id}' class='option ui-state-default'>
               	<div class='position'><span></span></div>
              	<p>#{textStuff}</p>
              	<a href='javascript:void(0)'></a>
        </li>"
      selectedPoints[sort_order] = newSelectedPoint
    for num in [1..25]
      if selectedPoints[num]
        $('ul.pointSort').append(selectedPoints[num])
    points = {}
    $('input[type="checkbox"]:not(:checked)').each (idx) ->
      id = $(this).val()
      textStuff = $(this).next('p').text()
      point = "<li id='#{id}' class='option ui-state-default'>
                <div class='position'><span></span></div>
                <p>#{textStuff}</p>
                <a href='javascript:void(0)'></a>
        </li>"
      points[idx] = point
    for num in [1..45]
      if points[num]
        $('ul.pointSort').append(points[num])


  $(".pointSort").sortable({
    change: ->
      $("#updateAlpha").prop("disabled",false).removeClass("btn-disabled")
    stop: (event, ui) ->
      sort()
  })
  $(".pointSort").disableSelection()

  setClick()
  initialSort()
  sort()

  $('ul.pointsList input').change ->
    $("#updateAlpha").prop("disabled",false).removeClass("btn-disabled")
    id = $(this).val()
    if($(this).prop('checked') == true)
      textStuff = $(this).next('p').text()
      newSelectedPoint = "<li id='#{id}' class='option ui-state-default'>
      				<div class='position'><span></span></div>
      				<p>#{textStuff}</p>
      				<a href='javascript:void(0)'><i class='fa fa-times'></i></a>
      			</li>"

      $('ul.pointSort').append(newSelectedPoint)
      setClick()
    else
      $("ul.pointSort li##{id}").remove()
    sort()
  setClick()

  $("#updateAlpha").click ->
    $(".alpha.updatePrompt").show()
    $("#alphaOverlay").show()

  $(".closeForm").click ->
    $(".alpha.updatePrompt").hide()
    $("#alphaOverlay").hide()
