anchor.diff:      registerDraggablesAndDroppables()
       showEmptyMessage()
   
  -    // displaying the very fist empty column, that is not shown when no activities is present
  -    if (currentActivityCount() > 0) {
  -        var td1Element = document.getElementById("td1")
  -        var td2Element = document.getElementById("td2")
  -
  -        td1Element.style.display = 'table-cell';
  -        td2Element.style.display = 'table-cell';
  -    }
       SC.slideAndShow(rowId)
   }
   
   function showEmptyMessage() {
       if (currentActivityCount() > 0) {
  -        SC.slideAndHide('no-activities-message');
  +        $('no-activities-message').hide();
  +        $$('.activity-column').each(Element.show)
       } else {
  -        SC.slideAndShow('no-activities-message');
  -    }
  -}
  +        $('no-activities-message').show();
  +        $$('.activity-column').each(Element.hide)
  +    }
  +}
  +
  +/* ***** CONDITION INPUT HANDLING */
  +
  +function focusConditionInput(evt) {
  +    var input = evt.element('input')
  +    if (input.hasClassName('no-condition')) {
  +        input.value = ""
  +        input.removeClassName('no-condition')
  +    }
  +}
  +
  +function changedConditionInput(evt) {
  +    var input = evt.element("input")
  +    executeUpdateDetails(input)
  +    if (input.value.blank()) {
  +        input.addClassName('no-condition')
  +        input.value = 'Click to add condition'
  +    } else {
  +        input.removeClassName('no-condition')
  +    }
  +}
  +
  +/* ***** ASYNCHRONOUS UPDATERS */
   
   // extracts row from an ID like grid[row].property
   function extractRow(gridElementId) {
  
positive.code:     });
      cells.push(Builder.node('td', {}, [detailsInput]))
  
      // corresponding to the conditional behavior
      cells.push(Builder.node('td', {className:'emptyCell'}));
  
      // condition checkbox
      var name = 'grid[' + rowCount + '].conditionalCheckbox'
      var namePlusOne = name + 1
      var input = Builder.node('input', {
          type: 'checkbox',
          id: namePlusOne,
          name: name,
          value: 'true'
      });
      cells.push(Builder.node('td', {}, [input]))
  
      // conditionalDetails
      var conditionDetailsName = 'grid[' + rowCount + '].conditionalDetails'
      var conditionDetailsInput = Builder.node('input', {
          id: conditionDetailsName,
          name: conditionDetailsName,
          type: 'text',
          disabled: 'true'
      });
      cells.push(Builder.node('td', {}, [conditionDetailsInput]))
  
  
negative.code:                             <td>
                                  <form:input path="grid[${gridStatus.index}].details"/>
                              </td>
                              <td>
                                  <input name="grid[${gridStatus.index}].conditionalDetails" id="grid[${gridStatus.index}].conditionalDetails"
                                      class="${empty gridRow.conditionalDetails ? 'no-condition' : ''}"
                                      value="${empty gridRow.conditionalDetails ? 'Click to add condition' : gridRow.conditionalDetails}"
                                      />
                              </td>
                          </tr>
                      </c:forEach>
  