-----
fChat
-----

[BUG] Known Bug
[FIX] Bug Fix
[NEW] New Feature
[CHG] Changed Feature
[NTE] Note

0.6.1 - 12/04/06
-----
[FIX] Fixed a bug that kept status messages from working properly

0.6.0 - 12/04/06
-----
[NTE] 6th beta release, nearing 1.0 status
[NEW] Added timestamps, formattable in preferences
[NEW] Added help button and drawer to preferences to show how to format the timestamp
[NEW] Added full room support
[NEW] Chats can now be saved
[NEW] Added "Send Code From File..." menu item
[NEW] "Connect" menu item changes to "Disconnect" when connected
[NEW] Code snippets can now be saved individually
[CHG] Won't allow a blank nickname, server, or port in the preferences
[CHG] If there is no text on the clipboard when trying to send code, it will ask for a file to open
[CHG] Status shows "Logging in..." while waiting for server response to login packet
[CHG] Preferences no longer use BBML, they use a simpler human-readable format
[CHG] Revamped code window and entire code system
[CHG] Disconnect message no longer appears when you /quit or choose the "Disconnect" menu item
[CHG] Errors are now displayed in public window rather than dialogs
[FIX] Port field in preferences will only accept numbers now
[FIX] Uses default values for missing tags if there is an preferences file but not all tags are in it
[FIX] Nickname wizard no longer allows invalid nicknames
[FIX] "Away" menu item now functions as expected (never worked until now)

0.5.0 - 08/28/06
-----
[NEW] When you /quit, it is noted in all chat windows and the list of users is cleared 
[NEW] When code is sent or received, it is noted in the appropriate chat windows
[CHG] More informative warning window
[CHG] Server info messages are displayed in the public window rather than in a dialog
[FIX] When sending code in a private message, it is formatted properly
[FIX] Noting when code is received is displayed properly
[FIX] Sending code snippets works now

0.4.0 (0.04) - 08/21/06
-----
[NEW] When you connect to the server, it is noted in all chat windows
[NEW] Typing /whois and a nickname gets information on that user
[NEW] When you get disconnected from the server, it is noted in all chat windows
[NEW] Typing /quit and an optional message logs off from the server and disconnects
[CHG] Better packet handling
[CHG] Protocol has been expanded, version 0.03 still mostly works
[FIX] Public and code windows are toggled open/close with menu items like they are supposed to
[FIX] Quit packet handler no longer causes NilObjectException and crashes app

0.3.0 (0.03) - 08/19/06 
-----
[NTE] Third beta release
[NEW] Shows nick changes in chat windows
[NEW] Server info packet is now handled
[NEW] Typing /nick and a new nickname tells the server to change your nickname
[NEW] Action messages are displayed correctly
[NEW] You can type /away to change your presense, optionally with a message
[NEW] Typing /me followed by text will send an action message
[CHG] Modified protocol, older clients won't work any more
[FIX] When going away/returning, it is noted in private chat windows
[FIX] When someone logs in, it is reflected immediately in the public window, instead of waiting until message or other public packet is received
[FIX] Code window remembers its position when opened/closed like it was supposed to, and across sessions

0.2.0 (1.0.0b2) - 07/27/06
-----
[NTE] Second beta release
[NEW] When disconnected, choosing a status from the status menu connects 
you
[NEW] Status menu shows "Disconnected" when not connected to server and 
"Connecting..." while waiting to be logged in
[NEW] Server sends quit message to other users when a client disconnects
[NEW] Sending the server a quit packet logs you out and disconnects
[NEW] When someone goes offline, it is reflected in chat windows
[NEW] Remembers code when you close the code window
[CHG] Protocol uses 4-letter symbols for mode instead of numbers
[CHG] Code window doesn't open when code is received in public
[CHG] Removed focus ring from chat windows
[FIX] Status menu displays correctly now
[FIX] Decrypts error message from server
[FIX] Chat windows resize correctly

0.1.0 (1.0.0b072606) - 07/26/06
-----
[NTE] First beta release

---------
ChangeLog
---------
12/04/06
	- When sending code to a room, two snippets don't show up
	- Fixed rather large bug that kept status messages from working 
	  correctly
12/03/06
	- Fixed rooms so they function correctly now
	- Improved error-checking
	- All errors are displayed in public window rather than in dialogs
11/30/06
	- Revamped code window and entire code system
	- Code snippets can now be saved individually
	- "Away" menu item now functions as it should (it hasn't worked 
	  until now)
	- Public window won't open until logged in
	- Status messages in chat windows no longer has an extra preceding 	  space
	- Sending code now works with the new code system
	- Disconnect message no longer appears when you /quit or choose the 
	  "Disconnect" menu item
11/29/06
	- Preferences no longer use BBML, they use a simpler human-readable 
	  format
	- Nickname wizard no longer allows invalid nicknames
	- Older (BBML) preferences can still be used, but they will be 
	  converted to the new format upon quitting
	- Fixed new preferences escape/unescape methods to actually return 
	  a value (oops!)
11/28/06
	- Fully fChamp 1.3 compliant
	- Added "Disconnect" menu item
	- Status shows "Logging in..." while waiting for server response to 
	  login packet
	- Timestamp is now displayed in all socket error messages
	- Uses default values for missing tags if there is an preferences 
	  file but not all tags are in it
	- "Connect" menu item changes to "Disconnect" when connected, and 
	  removed "Disconnect" menu item
11/27/06
	- Won't allow a blank nickname, server, or port in the preferences
	- Port field in preferences will only accept numbers now
	- Added timestamps, formattable in preferences
	- Added help button and drawer to preferences to show how to format 	  the timestamp
	- Added full room support
	- Chats can now be saved
	- If there is no text on the clipboard when trying to send code, it 
	  will ask for a file to open
	- Added "Send Code From File..." menu item
08/28/06
	- Server info messages are displayed in the public window rather 
	  than in a dialog
	- Version scheme slightly changed (0.05 -> 0.5.0)
	- More informative warning window
	- Fixed bug in noting when code is received
	- Fixed bug when sending code in a private message and local 
	  display of code was messed up
08/21/06
	- When you connect, it is noted in all chat windows
	- Public and code windows are toggled open/close with menu items 
	  like they are supposed to
	- Sending code works now
	- When code is sent or received, it is noted in the appropriate 
	  chat windows
	- When you /quit, it is noted in all chat windows and the list of 
	  users is cleared
08/20/06
	- Added ping, pong, and whois to the protocol
	- Made client compliant with protocol additions
	- Fixed bug in quit packet handler that caused NilObjectException 
	  and crashed app
	- Better packet handling
	- /quit plus an optional message logs off the server and 
	  disconnects
	- When you get disconnected, it is noted in all chat windows
	- /whois and a nickname gets user info
08/19/06
	- Shows nick changes in chat windows
	- Server info packet is now handled
	- Typing /nick and a new nickname tells the server to change your 
	  nickname
	- Action messages are displayed correctly
	- You can type /away to change your presense, optionally with a 
	  message
	- Typing /me followed by text will send an action message
	- Better send message handling
	- Modified protocol, older clients won't work any more
	- When going away/returning, it is noted in private chat windows
	- When someone logs in, it is reflected immediately in the public 
	  window, instead of waiting until message or other public packet 
	  is received
	- Code window remembers its position when opened/closed like it was 
	  supposed to, and across sessions
08/17/06
	- Modified protocol, and updated server/client to comply. Compare 	  protocol version 1.0 and version 1.1 for changes.
	- Action messages are displayed correctly
	- You can type commands in the chat window similar to IRC:
		/away [<message>]
		/me slaps foo
07/27/06
	- When someone goes offline, it is reflected in public and private 
	  windows
	- Protocol uses 4-letter symbols for mode instead of numbers
	- You can logout with a quit packet
	- Server sends quit message to other users when client disconnects
	- Status menu shows "Disconnected" when not connected, 
	  "Connecting..." while waiting for log in
	- When disconnected, use status menu items to connect
	- Released second beta version
	- Clears userlist when disconnected
	- Nickname change works with modified protocol now
07/26/06
	- Released beta version
	- Fixed resize problem in chat windows
	- Removed focus ring from chat windows
	- Decrypts error messages from the server
	- Fixed status popup menu bug
	- Remembers code
	- Code window doesn't open when code is received in public
07/25/06
	- Fixed client socket issue
	- Improved protocol
	- User can choose server and port, and autoconnect on launch
	- Better wizard
07/24/06
	- Implemented code window
07/23/06
	- Uses BBML 1.1.1 for preferences
	- Switched over to client-server model:
		+ no more buddies
		+ no more statuses (only away and available)
		+ no more searching for IP
	- Removed iTunes controls
07/15/06
	- Messages are now encrypted when they are sent and decrypted on 
	  receipt
07/14/06
	- Can now successfully chat with another computer
	- Removed LAN mode, but still allows you to view LAN IP
02/17/06
	- Changed the iTunes controller to use RBtunes 2
01/31/06
	- Preferences window now resizes each page to the right height
	- Fixed bug where opening preferences window a second time
	  unexpectedly quits fChat
01/30/06
	- Buddies now have option whether they are on the local LAN or not
	- Can now edit buddy information
01/20/06
	- Fixed (temporarily?) issue with iTunes song info that contained
	  ampersands (&), replacing them with a plus sign (+)
	- Added descriptions to the statuses, and status button now has a
	  help tag that displays current dynamic status and status
	  description
	- Added preferences window with some appearance customization, and
	  moved status management to there
	- Default nickname in "setup wizard" is now the user's short
	  username
01/19/06
	- Fixed some image problems on the status menu
	- Clicking on the IP switches between local IP and external IP
	- Added iTunes control and song info display
	- Added dynamic statuses, i.e., %n represents the nickname

-----
To Do
-----
format messages better (color?) (embolden incoming messages?)

----
Goal
----
Create a functional client-server chat solution that allows users to send text messages and code snippets, with room support and away status.