anchor.diff:  }
   
   function getInfoFromEventCheckbox(formdata, checkbox, index1, index2) {
  -   var details = 'grid[' + index1 + '].details';
  +    var details = 'grid[' + index1 + '].details';
       formdata = formdata + "details=" + escape($(details).value) + "&";
  -    formdata = formdata + 'columnNumber'+ "=" + index2 + "&";
  +    formdata = formdata + 'columnNumber' + "=" + index2 + "&";
       formdata = formdata + 'addition' + "=" + escape($(checkbox).checked) + "&";
  -    formdata = formdata + 'conditionalUpdated' + "=" + escape(false) + "&";    
  +    formdata = formdata + 'conditionalUpdated' + "=" + escape(false) + "&";
       return formdata;
   }
   
   function getInfoFromEventDetails(formdata, details, index) {
       formdata = formdata + "details=" + escape($(details).value) + "&";
       formdata = formdata + 'addition' + "=" + escape(false) + "&";
  -    formdata = formdata + 'columnNumber'+ "=" + escape(-1) + "&";
  +    formdata = formdata + 'columnNumber' + "=" + escape(-1) + "&";
       formdata = formdata + 'conditionalUpdated' + "=" + escape(false) + "&";
       return formdata;
   }
   
   function getInfoFromEventTextbox(formdata, isAdding, index1, index2) {
  -   var details = 'grid[' + index1 + '].details';
  +    var details = 'grid[' + index1 + '].details';
       formdata = formdata + "details=" + escape($(details).value) + "&";
  -    formdata = formdata + 'columnNumber'+ "=" + index2 + "&";
  +    formdata = formdata + 'columnNumber' + "=" + index2 + "&";
       formdata = formdata + 'addition' + "=" + isAdding + "&";
       formdata = formdata + 'conditionalUpdated' + "=" + escape(false) + "&";
       return formdata;
   }
   
   function createAddControl(text, objectType, objectId) {
  -    return createControlAnchorOne("add", text, "Add this " + objectType, '<c:url value="/pages/cal/managePeriod/addTo"/>')
  +    return createAjaxBaseHref('<c:url value="/pages/cal/managePeriod/addTo"/>')
   }
   
   function createRemoveControl(text, objectType, objectId) {
  -    return createControlAnchorOne("remove", text, "Remove this " + objectType, '<c:url value="/pages/cal/managePeriod/remove"/>')
  +    return createAjaxBaseHref('<c:url value="/pages/cal/managePeriod/remove"/>')
   }
   
   
   function updateDetails(text, objectType, objectId) {
  -    return createControlAnchorOne("update", text, "Update " + objectType, '<c:url value="/pages/cal/managePeriod/update"/>')
  +    return createAjaxBaseHref('<c:url value="/pages/cal/managePeriod/update"/>')
   }
   
   function move(text, objectType, objectId) {
  -    return createControlAnchorOne("move", text, "Move " + objectType, '<c:url value="/pages/cal/managePeriod/move"/>')
  -}
  -
  -function createControlAnchorOne(controlName, text, title, baseHref) {
  +    return createAjaxBaseHref('<c:url value="/pages/cal/managePeriod/move"/>')
  +}
  +
  +function createAjaxBaseHref(baseHref) {
       var href = baseHref;
       if (href.indexOf('?') >= 0) {
           href += '&'
  
positive.code: 
  function resetActivitiesAutocompleter() {
      activitiesAutocompleter.reset();
      $('add-activity').name="";
      $('add-activity').value="";
  }
  
  function createAutocompleter() {
      activitiesAutocompleter = new Ajax.RevertableAutocompleter('activities-autocompleter-input','activities-autocompleter-div','<c:url value="/pages/fragment/search/activities"/>',
      { method: 'get', paramName: 'searchText', callback: addAdditionalParameters, afterUpdateElement:updateActivity, revertOnEsc:true});
  }
  
  
negative.code:     // input cells
      for (var i = 0; i < dayCount; i++) {
          var name = 'grid[' + rowCount + '].eventIds[' + i + ']'
          var input = Builder.node('span', {
              id:name,
              name:name,
              class: "marker",
  