rem:  if (tree.view.selection.count > 0) { var todoItem = tree.taskView.getCalendarTaskAtRow( tree.currentIndex ); if(todoItem) { var newItem = todoItem.clone().QueryInterface(Components.interfaces.calITodo); 
add: var start = new Object(); var end = new Object(); var numRanges = tree.view.selection.getRangeCount(); var toDoItem; if(numRanges == 0) return; startBatchTransaction(); for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t, start, end); for (v = start.value; v <= end.value; v++) { todoItem = tree.taskView.getCalendarTaskAtRow( v ); var newItem = todoItem.clone().QueryInterface( Components.interfaces.calITodo ); 
context: function contextChangeProgress( event, Progress ){   var tree = document.getElementById( ToDoUnifinderTreeName );   if (tree.view.selection.count > 0)   {      var todoItem = tree.taskView.getCalendarTaskAtRow( tree.currentIndex );      if(todoItem)      {          var newItem = todoItem.clone().QueryInterface(Components.interfaces.calITodo);          newItem.percentComplete = Progress;          doTransaction('modify', newItem, newItem.calendar, todoItem, null);      }   }}
meta: 5872	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5872/3b80878fe98770c4df3e8fafefa6e2997da51ce1/unifinderToDo.js/buggy/calendar/resources/content/unifinderToDo.js