<commit_before>//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require jquery.ui.touch-punch
//= require jquery.formalize
//= require jquery.colorbox

jQuery(function($) {

  $('#header .welcome strong').click(function() {
    $(this).toggleClass('over');
    $('#header .menu').css('width', $(this).css('width')).toggle();
  });

  $('body').click(function(evt) {
    $('#header .menu').hide();
    $('#header .welcome strong').removeClass('over')
  });

  $('#header').click(function(evt){
    evt.stopPropagation();
  });

  $('body').on('click', 'button[data-url]:not([data-popin])', function(evt) {
    evt.preventDefault();

    var url = $(this).data('url'),
        params = $(this).data('params') || null;

    if (params) {
      url = url + '?' + params;
    }

    if ($(this).data('target') == '_blank') {
      window.open(url);
    }
    else {
      window.location = url;
    }
  });

  $('body').on('click', 'a[data-popin], button[data-popin]', popinHandler);
  $('body').on('submit', 'form[data-popin]', popinHandler);
  $('body').on('change', 'input[name=include_magics]', function() {
    var checked = $(this).prop('checked'),
        $popin  = $(this).closest('.popin');

    $popin.find('button[data-url]').each(function() {
      if (checked) {
        $(this).data('url', $(this).data('url').replace('_nomagics', '_magics'));
      }
      else {
        $(this).data('url', $(this).data('url').replace('_magics', '_nomagics'));
      }
    });
  });

  $('.army_list_units_overview')
    .sortable({
      handle: '.position',
      update: function(event, ui) {
        $.post($(this).data('url'), $(this).sortable('serialize'), function() {
          $('.army_list_units_overview .position').each(function(index) {
            $(this).html(index < 9 ? '0' + (index+1) : index+1);
          });
        });
      }
    })
  ;

  $('body').on('click', '.army_list_unit_overview .name', function() {
    $(this).closest('.army_list_unit_overview').next('.army_list_unit_details').slideToggle('fast');
  });

  $('body').on('change', '.army_list_unit_overview .actions select, #subheader .actions select', function() {
    $(this).closest('form').attr('action', $(this).val());
  });

  $('body').on('click', '#army_list_unit_magic_items ul li strong', function() {
    $('#army_list_unit_magic_items ul li ul').not($(this).next('ul')).slideUp('fast');
    $(this).next('ul').slideToggle('fast', function() { $.colorbox.resize(); });
  });

  $('body').on('click', '#army_list_unit_extra_items ul li strong', function() {
    $('#army_list_unit_extra_items ul li ul').not($(this).next('ul')).slideUp('fast');
    $(this).next('ul').slideToggle('fast', function() { $.colorbox.resize(); });
  });

  $('body').on('change', '#army_list_unit_unit_options input, #army_list_unit_magic_items input, #army_list_unit_extra_items input, #army_list_unit_magic_standards input', function(evt) {
    var total     = 0.0,
        $changed  = $(this),
        $siblings = $changed.closest('ul').find('> li > label input[data-radio]').not($changed),
        $div      = $changed.closest('div');

    $div.find('input[type=number]').prop('disabled', true);

    if ($div.attr('id') == 'army_list_unit_magic_items') {
      $div.find('strong').css('opacity', 0.5);
    }

    if ($div.attr('id') == 'army_list_unit_extra_items') {
      $div.find('strong').css('opacity', 0.5);
    }

    $div.find('input:checked').each(function() {
      $(this).parent('label').next('input').prop('disabled', false);
      $(this).closest('ul').prev('strong').css('opacity', 1);

      var value_points = parseFloat($(this).parent('label').prev('em').find('span').html().replace(',', '.'));

      var $quantity = $(this).parent('label').next('input[type=number]');

      if ($quantity.length) {
        value_points = value_points * parseInt($quantity.val());
      }

      if ($div.data('value-points-limit')) {
        if (total + value_points > parseFloat($div.data('value-points-limit'))) {
          $changed.prop('checked', false);
          $quantity.val('');
          updateArmyListUnitDepend($changed);
          evt.stopPropagation();
          return false;
        }
      }

      total += value_points;
    });

    if (evt.isPropagationStopped()) {
      return false;
    }

    if ($changed.data('radio') && $changed.prop('checked')) {
      $siblings.prop('checked', false).each(function() {
        updateArmyListUnitDepend($(this));
      });
    }

    updateArmyListUnitDepend($changed);

    updateArmyListUnitValuePoints();
  });

  $('body').on('keyup', '.edit_army_list_unit #army_list_unit_troops .army_list_unit_troop_size', function() {
    var size = parseInt($(this).val());

    var minSize = parseInt($(this).closest('tr').data('min-size')),
        maxSize = parseInt($(this).closest('.popin').find('h1').data('max-size'));

    if (isNaN(minSize)) {
      minSize = parseInt($(this).closest('.popin').find('h1').data('min-size'));
    }

    if (isNaN(size) || size < minSize) {
      $(this).val(size = minSize);
    }

    if (!isNaN(maxSize) && size > maxSize) {
      $(this).val(size = maxSize);
    }

    if ($(this).attr('id') == 'army_list_unit_army_list_unit_troops_attributes_0_size') {
      $('#army_list_unit_unit_options input[data-per-model]').each(function() {
        var value_points = size * parseFloat($(this).data('value-points'));

        $(this).parent('label').prev('em').find('span').html(String(value_points).replace('.', ','));
        $(this).parent('label').next('input').val(size);
      });
    }

    updateArmyListUnitValuePoints();
  });

  $('body').on('keyup', '.edit_army_list_unit #army_list_unit_unit_options .army_list_unit_unit_option_quantity', function() {
    var quantity = parseInt($(this).val());

    if (isNaN(quantity)) return false;

    var value_points = quantity * parseFloat($(this).prev('label').find('input[data-is-multiple]').data('value-points'));

    $(this).prev('label').prev('em').find('span').html(String(value_points).replace('.', ','));

    updateArmyListUnitValuePoints();
  });<commit_msg>Stop keyup frustration with army_list_unit size min and max<commit_after>//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require jquery.ui.touch-punch
//= require jquery.formalize
//= require jquery.colorbox

jQuery(function($) {

  $('#header .welcome strong').click(function() {
    $(this).toggleClass('over');
    $('#header .menu').css('width', $(this).css('width')).toggle();
  });

  $('body').click(function(evt) {
    $('#header .menu').hide();
    $('#header .welcome strong').removeClass('over')
  });

  $('#header').click(function(evt){
    evt.stopPropagation();
  });

  $('body').on('click', 'button[data-url]:not([data-popin])', function(evt) {
    evt.preventDefault();

    var url = $(this).data('url'),
        params = $(this).data('params') || null;

    if (params) {
      url = url + '?' + params;
    }

    if ($(this).data('target') == '_blank') {
      window.open(url);
    }
    else {
      window.location = url;
    }
  });

  $('body').on('click', 'a[data-popin], button[data-popin]', popinHandler);
  $('body').on('submit', 'form[data-popin]', popinHandler);
  $('body').on('change', 'input[name=include_magics]', function() {
    var checked = $(this).prop('checked'),
        $popin  = $(this).closest('.popin');

    $popin.find('button[data-url]').each(function() {
      if (checked) {
        $(this).data('url', $(this).data('url').replace('_nomagics', '_magics'));
      }
      else {
        $(this).data('url', $(this).data('url').replace('_magics', '_nomagics'));
      }
    });
  });

  $('.army_list_units_overview')
    .sortable({
      handle: '.position',
      update: function(event, ui) {
        $.post($(this).data('url'), $(this).sortable('serialize'), function() {
          $('.army_list_units_overview .position').each(function(index) {
            $(this).html(index < 9 ? '0' + (index+1) : index+1);
          });
        });
      }
    })
  ;

  $('body').on('click', '.army_list_unit_overview .name', function() {
    $(this).closest('.army_list_unit_overview').next('.army_list_unit_details').slideToggle('fast');
  });

  $('body').on('change', '.army_list_unit_overview .actions select, #subheader .actions select', function() {
    $(this).closest('form').attr('action', $(this).val());
  });

  $('body').on('click', '#army_list_unit_magic_items ul li strong', function() {
    $('#army_list_unit_magic_items ul li ul').not($(this).next('ul')).slideUp('fast');
    $(this).next('ul').slideToggle('fast', function() { $.colorbox.resize(); });
  });

  $('body').on('click', '#army_list_unit_extra_items ul li strong', function() {
    $('#army_list_unit_extra_items ul li ul').not($(this).next('ul')).slideUp('fast');
    $(this).next('ul').slideToggle('fast', function() { $.colorbox.resize(); });
  });

  $('body').on('change', '#army_list_unit_unit_options input, #army_list_unit_magic_items input, #army_list_unit_extra_items input, #army_list_unit_magic_standards input', function(evt) {
    var total     = 0.0,
        $changed  = $(this),
        $siblings = $changed.closest('ul').find('> li > label input[data-radio]').not($changed),
        $div      = $changed.closest('div');

    $div.find('input[type=number]').prop('disabled', true);

    if ($div.attr('id') == 'army_list_unit_magic_items') {
      $div.find('strong').css('opacity', 0.5);
    }

    if ($div.attr('id') == 'army_list_unit_extra_items') {
      $div.find('strong').css('opacity', 0.5);
    }

    $div.find('input:checked').each(function() {
      $(this).parent('label').next('input').prop('disabled', false);
      $(this).closest('ul').prev('strong').css('opacity', 1);

      var value_points = parseFloat($(this).parent('label').prev('em').find('span').html().replace(',', '.'));

      var $quantity = $(this).parent('label').next('input[type=number]');

      if ($quantity.length) {
        value_points = value_points * parseInt($quantity.val());
      }

      if ($div.data('value-points-limit')) {
        if (total + value_points > parseFloat($div.data('value-points-limit'))) {
          $changed.prop('checked', false);
          $quantity.val('');
          updateArmyListUnitDepend($changed);
          evt.stopPropagation();
          return false;
        }
      }

      total += value_points;
    });

    if (evt.isPropagationStopped()) {
      return false;
    }

    if ($changed.data('radio') && $changed.prop('checked')) {
      $siblings.prop('checked', false).each(function() {
        updateArmyListUnitDepend($(this));
      });
    }

    updateArmyListUnitDepend($changed);

    updateArmyListUnitValuePoints();
  });

  $('body').on('keyup', '.edit_army_list_unit #army_list_unit_troops .army_list_unit_troop_size', function() {
    var size = parseInt($(this).val());

    var minSize = parseInt($(this).closest('tr').data('min-size')),
        maxSize = parseInt($(this).closest('.popin').find('h1').data('max-size'));

    if (isNaN(minSize)) {
      minSize = parseInt($(this).closest('.popin').find('h1').data('min-size'));
    }

    if (isNaN(size) || size < minSize || (!isNaN(maxSize) && size > maxSize)) {
      return false;
    }

    if ($(this).attr('id') == 'army_list_unit_army_list_unit_troops_attributes_0_size') {
      $('#army_list_unit_unit_options input[data-per-model]').each(function() {
        var value_points = size * parseFloat($(this).data('value-points'));

        $(this).parent('label').prev('em').find('span').html(String(value_points).replace('.', ','));
        $(this).parent('label').next('input').val(size);
      });
    }

    updateArmyListUnitValuePoints();
  });

  $('body').on('keyup', '.edit_army_list_unit #army_list_unit_unit_options .army_list_unit_unit_option_quantity', function() {
    var quantity = parseInt($(this).val());

    if (isNaN(quantity)) return false;

    var value_points = quantity * parseFloat($(this).prev('label').find('input[data-is-multiple]').data('value-points'));

    $(this).prev('label').prev('em').find('span').html(String(value_points).replace('.', ','));

    updateArmyListUnitValuePoints();
  });
{'fraction_non_alphanumeric': 0.22869073937607468, 'fraction_numerical': 0.0022926389912388437, 'mean_word_length': 3.668960244648318, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '393932', 'n_tokens_mistral': 4143, 'n_tokens_neox': 4051, 'n_words': 545}