- /* Since element.onload is used here, test to see if evt is defined */
- var event = evt ? evt : window.event;
- var target = event.target ? event.target: event.srcElement; // and again..
- var parent = target.parentNode;
- var msgId = parent.ctdlMsgId;
- // If the ctrl key modifier wasn't used, unmark all rows and load the message
- if (!event.shiftKey && !event.ctrlKey && !event.altKey) {
- unmarkAllRows();
- markedRowId = parent.ctdlRowId;
- new Ajax.Updater('preview_pane', 'msg/'+msgId, {method: 'get'});
- markRow(parent);
- new Ajax.Request('ajax_servcmd', {
- method: 'post',
- parameters: 'g_cmd=SEEN ' + msgId + '|1',
- onComplete: CtdlMarkRowAsRead(parent)});
- } else if (event.button != 2 && event.shiftKey) {
- markRow(parent);
- var rowId = parent.ctdlRowId;
- var startMarkingFrom = 0;
- var finish = 0;
- if (rowId > markedRowId) {
- startMarkingFrom = markedRowId+1;
- finish = rowId;
- } else if (rowId < markedRowId) {
- startMarkingFrom = rowId+1;
- finish = markedRowId;
- }
- for(var x = startMarkingFrom; x<finish; x++) {
- WCLog("Marking row "+x);
- markRow(rowArray[x]);
- }
- } else if (event.button != 2 && (event.ctrlKey || event.altKey)) {
- markRow(parent);
- }
+ /* Since element.onload is used here, test to see if evt is defined */
+ var event = evt ? evt : window.event;
+ var target = event.target ? event.target: event.srcElement; // and again..
+ var parent = target.parentNode;
+ var msgId = parent.getAttribute("citadel:msgid");
+ // If the ctrl key modifier wasn't used, unmark all rows and load the message
+ if (!is_shift_pressed && !is_ctrl_pressed) {
+ previousFinish = 0;
+ markedFrom = 0;
+ unmarkAllRows();
+ markedRowIndex = parent.rowIndex;
+ originalMarkedRow = parent;
+ document.getElementById("preview_pane").innerHTML = "";
+ new Ajax.Updater('preview_pane', 'msg/'+msgId, {method: 'get'});
+ markRow(parent);
+ var p = encodeURI('g_cmd=SEEN ' + msgId + '|1');
+ new Ajax.Request('ajax_servcmd', {
+ method: 'post',
+ parameters: p,
+ onComplete: CtdlMarkRowAsRead(parent)
+ });
+ // If the shift key modifier is used, mark a range...
+ } else if (event.button != 2 && is_shift_pressed) {
+ if (originalMarkedRow == null) {
+ originalMarkedRow = parent;
+ markRow(parent);
+ } else {
+ unmarkAllRows();
+ markRow(parent);
+ markRow(originalMarkedRow);
+ }
+ var rowIndex = parent.rowIndex;
+ if (markedFrom == 0) {
+ markedFrom = rowIndex;
+ }
+ var startMarkingFrom = 0;
+ var finish = 0;
+ if (rowIndex > markedRowIndex) {
+ startMarkingFrom = markedRowIndex+1;
+ finish = rowIndex;
+ } else if (rowIndex < markedRowIndex) {
+ startMarkingFrom = rowIndex+1;
+ finish = markedRowIndex;
+ }
+ previousFinish = finish;
+ WCLog('startMarkingFrom=' + startMarkingFrom + ', finish=' + finish);
+ for(var x = startMarkingFrom; x<finish; x++) {
+ WCLog("Marking row " + x);
+ markRow(parent.parentNode.rows[x]);
+ }
+ // If the ctrl key modifier is used, toggle one message
+ } else if (event.button != 2 && is_ctrl_pressed) {
+ if (parent.getAttribute("citadel:marked")) {
+ unmarkRow(parent);
+ }
+ else {
+ markRow(parent);
+ }
+ }