function idmodalitiesDidChange() {
  createNewModalityRowIfNeeded();
}

function createNewModalityRowIfNeeded() {
  var rowListEl = document.getElementById('modality-list');
  
  var innerHTMLOfLastRow = '';
  var lastRowHasValue = false;
  for (var i = 0; i < rowListEl.childNodes.length; i++) {
    var rowEl = rowListEl.childNodes[i];
    
    if (rowEl.className != 'modality-row')
      continue;
    
    var value = modalityIdOfModalityRow(rowEl);
    lastRowHasValue = (value != 0);
    innerHTMLOfLastRow = rowEl.innerHTML;
  }
  
  if (!lastRowHasValue)
    return;
  
  var rowEl = document.createElement('div');
  rowEl.className = 'modality-row';
  rowEl.innerHTML = innerHTMLOfLastRow;
  rowListEl.appendChild(rowEl);
  
  clearModalityIdOfModalityRow(rowEl);
}

function modalityIdOfModalityRow(rowEl) {
  for (var i=0; i < rowEl.childNodes.length; i++) {
    var child = rowEl.childNodes[i];
    if (child.name != 'idmodalities[]')
      continue;
    
    return child.value;
  }
  
  return 0;
}

function clearModalityIdOfModalityRow(rowEl) {
  for (var i=0; i < rowEl.childNodes.length; i++) {
    var child = rowEl.childNodes[i];

    if (child.name == 'idmodalities[]')
      child.selectedIndex = 0;
      
  }
}
