TODO
Key:
DONE (version) - version number this feature first appears in
?? - Should we even implement this? Will it be possible
* item0
	* item1 - item1 requires item0 be completed

New Message Manager:

I. User receives new (first) message from user2@server2
	A. with an unregistered extensions
		1. with message type=chat
			a. with types preserved || with types forced to chat
				i. with message queuing
					- ooochat should be flashing in StatusInterface.
					A) user2@server2 is not on the roster
						- ooochat should be flashing in roster under 
						  group "Not in Roster" with nickname (if possible).
					B) user2@server2 is on the roster
						- ooochat should be flashing for the appropriate
						  roster item
				ii. without message queuing
					- New ooochat pops up with nickname (if possible) and 
					  message.
			b. with types forced to normal
				i. with message queuing
					- normal should be flashing in StatusInterface.
					A) user2@server2 is not on the roster
						- normal should be flashing in roster under 
						  group "Not in Roster" with nickname (if possible).
					B) user2@server2 is on the roster
						- normal should be flashing for the appropriate
						  roster item
				ii. without message queuing
					- Received normal pops up with nickname (if possible) and 
					  message.
		2. with message type=normal
			a. with types preserved || with types forced to normal
				i. with message queuing
					- normal should be flashing in StatusInterface.
					A) user2@server2 is not on the roster
						- normal should be flashing in roster under 
						  group "Not in Roster" with nickname (if possible).
					B) user2@server2 is on the roster
						- normal should be flashing for the appropriate
						  roster item
				ii. without message queuing
					- Received normal pops up with nickname (if possible) and 
					  message.
			b. with types forced to chat
				i. with message queuing
					- ooochat should be flashing in StatusInterface.
					A) user2@server2 is not on the roster
						- ooochat should be flashing in roster under 
						  group "Not in Roster" with nickname (if possible).
					B) user2@server2 is on the roster
						- ooochat should be flashing for the appropriate
						  roster item
				ii. without message queuing
					- New ooochat pops up with nickname (if possible) and 
					  message.
		3. with message type=groupchat && any type setting && any queue setting
			a. with an existing groupchat "server2"
				- Message should be displayed in groupchat.
			b. with a non-existent groupchat "server2"
				- Message should be ignored.
		4. with message type=error && any type setting && any queue setting
			- Error should be displayed.
	B. with a registered extension && any type setting
		1. with message queuing
			- Extension type should be flashing in StatusInterface.
			a) user2@server2 is not on the roster
				- extension type should be flashing in roster under 
				  group "Not in Roster" with nickname (if possible).
			b) user2@server2 is on the roster
				- extension type should be flashing for the appropriate
				  roster item
		1. without message queuing
			- New extension type window should pop up

TODO for 0.8.7 (short-term)
	* The monthly moving of logs needs fixed badly
	* ContactRecv should ask for request reason when adding people (julian)
	* Still sometimes sends presence after </stream:stream>
	* New Normal Message UI (julian)
		* Also means that when there is more than one message in the
		  queue, the rest should flash in the roster until the user 
		  clicks "read next" - clicking in the roster should act just 
		  like "read next"
	* Error checking for file transfer
		* Check to see if file exists
		* Don't autoselect 127.0.0.1 or 192.168. if another is possible
	* Display subject and body of URIs if available (julian)
	* Look into fixing /away in group chats (julian)
	* "Send From" in file send should be "Send from" (julian)

TODO for 0.9.0 (long-term)
	* iq:browse support in jabberoo (julian/temas)
	* redo agent info for iq:browse (julian)
	* redo reg druid for iq:browse (julian)
	* redo agent browser for iq:browse (julian)
	* agent_replace() for iq:browse (julian)
	* maybe fix some of xtext's horrible bugs (temas)
	* DONE (0.8.5) Receive files using <strike>gnome-vfs</strike>temas's stuff (temas)
	* DONE (0.8.5) Send files using <strike>a small web server</strike>temas's stuff (temas)
	* make a vcard handler in jabberoo (julian)
	* better error handling
		This has been started by julian, in ErrorManager (0.8.2)
		* Create an ErrorViews.cc which handles every single error
		  we can think of, including a default errorview if Gabber
		  has no clue about the error.
		* ?? Possibly create ErrorManager to do the initial error check
		  and then hand off to the appropriate ErrorView?
		* if trying to send something to a user on a transport which 
		  is down, warn them instead of waiting for an error 
		  server-side
	* jids should NOT be case sensitive
		* many issues still in jabberoo
		* looking up JIDs in the presenceDB shouldn't be case sensitive
		* DONE (0.8.2) related, remove spaces automagically in usernames in add 
		  user druid (julian)
		* DONE (0.8.2) also possibly change @'s in usernames to % (julian)
	* DONE (0.8.1) Autoreconnect when disconnected (konrad)
	* DONE (0.8.1) GnuPG support (brandon2)
	* DONE (0.8.1) Sound support (julian)
	* Headline support!!! <--- Needed soon... really should discuss UI
	* DONE (0.8.2) Go over all code and convert to the new style
	* DONE (0.8.1) SSL support (konrad)
	* better Transmitter error handling and more descriptive error 
	  messages (konrad)
	* SOCKS and HTTP-Proxy (at least a theoretical solution) (konrad)
	* DONE (0.8.1) Drag and Drop (DnD) roster items
		* Support to drag users to/from Evolution (julian will work 
		  with clahey)
		* Ignore list
		* ?? Send to multiple users
		* (DONE 0.8.2) Group Chat Invitation (brandon2)
		* (DONE 0.8.2) Send (Multiple) roster items (brandon2)
		* (DONE 0.8.1) Reorganizing Roster (brandon2)
	* ?? Top-level unified group editor, instead of editing groups on a 
	  per user basis
	* DONE (0.8.2) Auto-away (brandon2)
	* DONE (0.8.5) Send/Recv URLs (jabber:x:oob) (temas)
	* PUT OFF (IRC-t is dead) Specialized handling of IRC in group chat win (julian)
	* DONE (0.8.4) Redo MessageManager to support message-types/views more dynamically (brandon2)

TODO for whenever
	* Put in some hooks so we can hook up things like festival (julian)
	* Modify the way we do sounds to allow for anything, not just gnome (julian)