document.observe('dom:loaded', function() {
  // Crude submit spamming protection
  var submit = $('registration_submit');
  $(submit.up('form')).observe('submit', function(e) {
    submit.disabled = true;
  });
  
  // Nicify the UI for multiple people per registration
  var grl = $$('.group_registration_list')[0];
  var grl_lis = $$('.group_registration_list li');
  if (grl) {
    (function() {
      var chooser_div = document.createElement('div');
      chooser_div.className = 'number_of_people_chooser';
      chooser_div.appendChild(document.createTextNode('Jag vill anmäla '));
      
      var select = $(document.createElement('select'));
      var addOption = function(name, value) {
        var option = document.createElement('option');
        option.value = value;
        option.appendChild(document.createTextNode(name));
        select.appendChild(option);
      };
      grl_lis.each(function(li, idx) {
        addOption((idx+1)+' person'+(0==idx?'':'er'), ''+(idx+1));
      });
      chooser_div.appendChild(select);
      grl.parentNode.insertBefore(chooser_div, grl);
      
      var selectChange = function() {
        var num = parseInt(select.value);
        
        grl_lis.each(function(li, idx) {
          var hide = idx+1>num;
          var cb = li.down('.include_person_in_registration_checkbox input');
          if (cb) cb.checked = !hide;
          $(li)[hide?'hide':'show']();
        });
      };
      
      grl_lis.concat().reverse().each(function(li, idx) {
        select.value = grl_lis.length-idx;
        var cb = li.down('.include_person_in_registration_checkbox input');
        if (cb && cb.checked)
          throw $break;
      });
      
      select.observe('change', selectChange);
      selectChange();
    })();
    
    $$('.include_person_in_registration_checkbox').each(function(elm) {
      $(elm).hide();
    });
  }
});

