anchor.diff:      } else {
           //means we are moving event from one cell to another
           var parentElementId = parentElement.id
  -        var arrayOfIndisesForParent = parseInput(parentElementId)
  -        var arrayOfIndisesForChild = parseInput(elementId)
  -        if (arrayOfIndisesForParent[0]== arrayOfIndisesForChild[0]) {
  +        var parentRC = extractRowAndColumn(parentElementId)
  +        var childRC = extractRowAndColumn(elementId)
  +        if (parentRC[0] == childRC[0]) {
               //need to set up ajax call for move
               if (wholeElement.firstChild == null) {
  -                moveAjaxForm(arrayOfIndisesForParent, arrayOfIndisesForChild, false)
  +                moveAjaxForm(parentRC, childRC)
                   setUpMovingMarker(draggable, dropZone)
               }
           }
  
positive.code: }
  
  function registerCellInputHandlers(input) {
      Event.observe(input, "click", function(e){return ajaxform(input, null, null, null, null)})
  }
  
  function parseInput(input) {
      var substring1 = input.substring(input.indexOf("[")+1, input.indexOf("]"));
      var substring2 = input.substring(input.indexOf("]") + 1);
      var substring3 = substring2.substring(substring2.indexOf("[")+1, substring2.indexOf("]"));
      var rowNumber = input.substring(input.length-1, input.length);
  
      var array = new Array();
      array[0] = substring1;
      array[1] = substring3;
      return array;
  }
  
  function parseDetailName(name) {
      return name.substring(name.indexOf("[")+1, name.indexOf("]"));
  
  }
  
  
negative.code:     // Set up data variable
      var formdata = "";
      formdata = formdata + 'id='+${period.id}+"&";
      var rc
  
      if (checkbox != null) {
          rc = extractRowAndColumn(checkbox.name)
          if (checkbox.name.indexOf(".conditionalCheckbox") >= 0) {
              formdata = getInfoFromConditionalCheckbox(formdata, checkbox, rc[0])
              href = updateDetails("Update details", "details", rc[0]);
          } else {
              formdata = getInfoFromEventCheckbox(formdata, checkbox, rc[0], rc[1])
              if ($(checkbox).checked) {
                  href = createAddControl("Add checkbox", "checkbox", rc[0])
              } else {
                  href = createRemoveControl("Remove checkbox", "checkbox", rc[0])
              }
          }
  
      } else if (details != null) {
          rc = extractRowAndColumn($(details).name);
          formdata = getInfoFromEventDetails(formdata, details, rc[0]);
          href = updateDetails("Update details", "details", rc[0]);
      } else if (conditionalDetails != null) {
          rc = extractRowAndColumn(conditionalDetails.name)
          formdata = getInfoFromConditionalDetails(formdata, conditionalDetails, rc[0])
          href = updateDetails("Update details", "details", rc[0]);
      } else if (textbox != null) {
          rc = extractRowAndColumn(textbox)
          formdata = getInfoFromEventTextbox(formdata, isAdd, rc[0], rc[1])
          if (isAdd) {
              href = createAddControl("Add checkbox", "checkbox", rc[0])
          } else {
              href = createRemoveControl("Remove checkbox", "checkbox", rc[0])
          }
      }
  
      var activity = 'grid[' + rc[0] + '].activity';
      formdata = formdata + "activity=" + escape($(activity).value) + "&";
  
      var arrayOfCounts = 'grid[' + rc[0] + '].eventIds';
      for (var i = 0; i < ${period.duration.days}; i++) {
          var singleElement = arrayOfCounts + '[' + i + ']';
          if ($(singleElement).getAttribute('value') == null) {
              formdata = formdata + 'eventIds' + '[' + i + ']' + "=-1" + "&";
          } else {
              formdata = formdata + 'eventIds' + '[' + i + ']' + "=" + $(singleElement).getAttribute('value') + "&";
          }
      }
  
      formdata = formdata + 'rowNumber' + "=" + rc[0] + "&";
      formdata = formdata + 'updated' + "=" + escape(true) + "&";
  
  
      var checkboxName = 'grid[' + rc[0] + '].conditionalCheckbox1';
      formdata = formdata + "conditionalCheckbox1=" + $(checkboxName).checked + "&";
  
      var details1 = 'grid[' + rc[0] + '].conditionalDetails';
      formdata = formdata + "conditionalDetails=" + $(details1).value + "&";
  
      var lastRequest = new Ajax.Request(href,
  