- CtdlNumMsgsSelected = 0;
-
- // Clear the preview pane too.
- $('preview_pane').innerHTML = '';
-}
-
-
-// Move selected messages.
-function CtdlMoveSelectedMessages(evt, target_roomname) {
-
- if (CtdlNumMsgsSelected < 1) {
- // Nothing to delete, so exit silently.
- return false;
- }
- for (i=0; i<CtdlNumMsgsSelected; ++i) {
- new Ajax.Request(
- 'ajax_servcmd', {
- method:'post',
- parameters:'g_cmd=MOVE ' + CtdlMsgsSelected[i] + '|' + target_roomname + '|0',
- onComplete:CtdlClearDeletedMsg(CtdlMsgsSelected[i])
- }
- );
- }
- CtdlNumMsgsSelected = 0;
-
- // Clear the preview pane too.
- $('preview_pane').innerHTML = '';
-}
-
-
-
-// This gets called when the user touches the keyboard after selecting messages...
-function CtdlMsgListKeyPress(evt) {
- if(document.all) { // aIEeee
- var whichKey = window.event.keyCode;
- }
- else { // non-sux0r browsers
- var whichKey = evt.which;
- }
- if (whichKey == 46) { // DELETE key
- CtdlDeleteSelectedMessages(evt);
- }
- return true;
-}
-
-// Take the boldface away from a message to indicate that it has been seen.
-function CtdlRemoveTheUnseenBold(msgnum) {
- $('m'+msgnum).style.fontWeight='normal';
-}
-
-// A message has been deleted, so yank it from the list.
-function CtdlClearDeletedMsg(msgnum) {
-
-
- // Traverse the table looking for a row whose ID contains the desired msgnum
- var table = $('summary_headers');
- if (table) {
- for (var r = 0; r < table.rows.length; r++) {
- var thename = table.rows[r].id;
- if (thename.substr(1) == msgnum) {
- try {
- table.deleteRow(r);
- }
- catch(e) {
- alert('error: browser failed to clear row ' + r);
- }
- }
- }
- }
- else { // if we can't delete it,
- new Effect.Squish('m'+msgnum); // just hide it.
- }
-
-
-}
-
-// These functions called when the user down-clicks on the message list resizer bar
-
-var saved_x = 0;
-var saved_y = 0;
-
-function CtdlResizeMsgListMouseUp(evt) {
- document.onmouseup = null;
- document.onmousemove = null;
- if (document.layers) {
- document.releaseEvents(Event.MOUSEUP | Event.MOUSEMOVE);
- }
- return true;
-}
-
-function CtdlResizeMsgListMouseMove(evt) {
- y = (ns6 ? evt.clientY : event.clientY);
- increment = y - saved_y;
-
- // First move the bottom of the message list...
- d = $('message_list');
- if (d.offsetHeight){
- divHeight = d.offsetHeight;
- }
- else if (d.style.pixelHeight) {
- divHeight = d.style.pixelHeight;
- }
- d.style.height = (divHeight + increment) + 'px';
-
- // Then move the top of the preview pane...
- d = $('preview_pane');
- if (d.offsetTop){
- divTop = d.offsetTop;
- }
- else if (d.style.pixelTop) {
- divTop = d.style.pixelTop;
- }
- d.style.top = (divTop + increment) + 'px';
-
- // Resize the bottom of the preview pane...
- d = $('preview_pane');
- if (d.offsetHeight){
- divHeight = d.offsetHeight;
- }
- else if (d.style.pixelHeight) {
- divHeight = d.style.pixelHeight;
- }
- d.style.height = (divHeight - increment) + 'px';
-
- // Then move the top of the slider bar.
- d = $('resize_msglist');
- if (d.offsetTop){
- divTop = d.offsetTop;
- }
- else if (d.style.pixelTop) {
- divTop = d.style.pixelTop;
- }
- d.style.top = (divTop + increment) + 'px';
-
- saved_y = y;
- return true;
-}
-
-function CtdlResizeMsgListMouseDown(evt) {
- saved_y = (ns6 ? evt.clientY : event.clientY);
- document.onmouseup = CtdlResizeMsgListMouseUp;
- document.onmousemove = CtdlResizeMsgListMouseMove;
- if (document.layers) {
- document.captureEvents(Event.MOUSEUP | Event.MOUSEMOVE);
- }
- return false; // disable the default action
+ else {
+ $('online_users').style.display = 'none';
+ }
+
+}
+
+function GenericTreeRoomList(roomlist) {
+ var currentExpanded = ctdlLocalPrefs.readPref("rooms_expanded");
+ var curRoomName = "";
+ if (document.getElementById("rmname")) {
+ curRoomName = getTextContent(document.getElementById("rmname"));
+ }
+ currentDropTargets = new Array();
+ var iconbar = document.getElementById("iconbar");
+ var ul = document.createElement("ul");
+ roomlist.appendChild(ul);
+ // Add mailbox, because they are special
+ var mailboxLI = document.createElement("li");
+ ul.appendChild(mailboxLI);
+ var mailboxSPAN = document.createElement("span");
+ var _mailbox = getTextContent(document.getElementById("mbox_template"));
+ mailboxSPAN.appendChild(document.createTextNode(_mailbox));
+ $(mailboxSPAN).observe('click', expandFloorEvent);
+ mailboxLI.appendChild(mailboxSPAN);
+ mailboxLI.className = "floor";
+ var mailboxUL = document.createElement("ul");
+ mailboxLI.appendChild(mailboxUL);
+ var mailboxRooms = GetMailboxRooms();
+ for(var i=0; i<mailboxRooms.length; i++) {
+ var room = mailboxRooms[i];
+ currentDropTargets.push(addRoomToList(mailboxUL, room, curRoomName));
+ }
+ if (currentExpanded != null && currentExpanded == _mailbox ) {
+ expandFloor(mailboxSPAN);
+ }
+ for(var a=0; a<floors.length; a++) {
+ var floor = floors[a];
+ var floornum = floor[0];
+
+ if (floornum != -1)
+ {
+
+ var name = floor[1];
+ var floorLI = document.createElement("li");
+ ul.appendChild(floorLI);
+ var floorSPAN = document.createElement("span");
+ floorSPAN.appendChild(document.createTextNode(name));
+ $(floorSPAN).observe('click', expandFloorEvent);
+ floorLI.appendChild(floorSPAN);
+ floorLI.className = "floor";
+ var floorUL = document.createElement("ul");
+ floorLI.appendChild(floorUL);
+ var roomsForFloor = GetRoomsByFloorNum(floornum);
+ for(var b=0; b<roomsForFloor.length; b++) {
+ var room = roomsForFloor[b];
+ currentDropTargets.push(addRoomToList(floorUL, room, curRoomName));
+ }
+ if (currentExpanded != null && currentExpanded == name) {
+ expandFloor(floorSPAN);
+ }
+ }
+ }
+}
+function IconBarRoomList() {
+ roomlist = document.getElementById("roomlist");
+ GenericTreeRoomList(roomlist);
+}
+function KNRoomsRoomList() {
+ roomlist = document.getElementById("roomlist_knrooms");
+ GenericTreeRoomList(roomlist);
+}
+
+function addRoomToList(floorUL,room, roomToEmphasize) {
+ var roomName = room[RN_ROOM_NAME];
+ var flag = room[RN_ROOM_FLAG];
+ var curView = room[RN_CUR_VIEW];
+ var view = room[RN_DEF_VIEW];
+ var raflags = room[RN_RAFLAGS];
+ var isMailBox = ((flag & QR_MAILBOX) == QR_MAILBOX);
+ var hasNewMsgs = ((raflags & UA_HASNEWMSGS) == UA_HASNEWMSGS);
+ var roomLI = document.createElement("li");
+ var roomA = document.createElement("a");
+ roomA.setAttribute("href","dotgoto?room="+encodeURIComponent(roomName));
+ roomA.appendChild(document.createTextNode(roomName));
+ roomLI.appendChild(roomA);
+ floorUL.appendChild(roomLI);
+ var className = "room ";
+ if (view == VIEW_MAILBOX) {
+ className += "room-private"
+ } else if (view == VIEW_ADDRESSBOOK) {
+ className += "room-addr";
+ } else if (view == VIEW_CALENDAR || view == VIEW_CALBRIEF) {
+ className += "room-cal";
+ } else if (view == VIEW_TASKS) {
+ className += "room-tasks";
+ } else if (view == VIEW_NOTES) {
+ className += "room-notes";
+ } else {
+ className += "room-chat";
+ }
+ if (hasNewMsgs) {
+ className += " room-newmsgs";
+ }
+ if (roomName == roomToEmphasize) {
+ className += " room-emphasized";
+ }
+ roomLI.setAttribute("class", className);
+ roomA.dropTarget = true;
+ roomA.dropHandler = roomListDropHandler;
+ return roomLI;
+}
+
+function roomListDropHandler(target, dropped) {
+ if (dropped.getAttribute("citadel:msgid")) {
+ var room = getTextContent(target);
+ var msgIds = "";
+ for(msgId in currentlyMarkedRows) { //defined in summaryview.js
+ msgIds += ","+msgId;
+ if (msgIds.length > 800) {
+ var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0");
+ new Ajax.Request("ajax_servcmd", {
+ parameters: mvCommand,
+ method: 'post',
+ });
+ msgIds = "";
+ }
+
+ }
+ var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0");
+ new Ajax.Request('ajax_servcmd', {
+ method: 'post',
+ parameters: mvCommand,
+ onComplete: deleteAllMarkedRows()});
+ }
+}
+function expandFloorEvent(event) {
+ expandFloor(event.target);
+}
+function expandFloor(target) {
+ if (target.nodeName.toLowerCase() != "span") {
+ return; // ignore clicks on child UL
+ }
+ ctdlLocalPrefs.setPref("rooms_expanded", target.firstChild.nodeValue);
+ var parentUL = target.parentNode;
+ if (currentlyExpandedFloor != null) {
+ currentlyExpandedFloor.className = currentlyExpandedFloor.className.replace("floor-expanded","");
+ }
+ parentUL.className = parentUL.className + " floor-expanded";
+ currentlyExpandedFloor = parentUL;