Bugs/feature requests:

- BUG: Send RST message on logout/camping
- BUG: Re-queue aborted updates as high-priority if they're for owned databases
- BUG: Shorten timeout on self-updates to detect deadbeats more quickly
- BUG: Prolong synch if a self-update is received and aborted
- BUG: Use "left channel" messages to cancel updates
- BUG: Inviting 4 people causes a raid conversion

- FEATURE: Notification when you're accepted/standby to attend an event
- FEATURE: Daily dungeon, daily heroic, other dailies
- FEATURE: Show events the player has signed up for even when on other realms or factions
- FEATURE: Use a rank mask instead of min. rank to control posting
- FEATURE: iCal format support for export using in-game configuration
- FEATURE: Generate and attach a unique machine ID to the database to detect movement between computers
- FEATURE: Propogate saved dungeon IDs so other players can verify they're at the right event
- FEATURE: Turn <guild> only event flag on by default
- FEATURE: Change event date
- FEATURE: Automatic MotD showing next 1 - 3 raid events
- FEATURE: Read-only mode until calendar is modified
- FEATURE: Elune's Lantern cooldown
- FUTURE: Priority for guild raid events when choosing which icon to display

v4.1 Changes

- FEATURE: Added Maybe status, which is distinct from Standby (see compatibility issue note below)
- FEATURE: Event owners can preview their event as well as sign up their own alts and specify their own role
- FEATURE: Default limit for off-tank and off-healer roles is zero (may eventually remove these roles completely)
- FEATURE: Attendance notices now include the date of the event
- FEATURE: '/cal attend on|off' command added to disable attendance notices
- FEATURE: Default attendance view for manual and closed events is By Role
- FEATURE: Added right-click support to minimap button for accessing the new Blizzard Time Manager feature
- FEATURE: Added Russian translation (thanks to Eritnull)
- FEATURE: Updated Spanish translation (thanks to Maqjav)
- BUGFIX: Increased synch period to 3 minutes to improve reliability for roaming users
- BUGFIX: Synch status timer no longer restarts when a guild roster update is received
- BUGFIX: Fixed bug causing excess network chatter during synch (very common)
- BUGFIX: Fixed bug which could cause updated events and attendance to not be sent (rare)
- BUGFIX: Fixed bug which could cause roaming users to accept an update to their events which is inferior to one they've already received (rare)
- BUGFIX: Leaving a guild which used the guild data channel no longer gives repeating "You are not in a guild" messages
- BUGFIX: Updates which were corrupted when received are now correctly re-requested and no longer generate messages about an "internal error"
- BUGFIX: Transmute cooldown detections work in French (thanks to Ekhurr)

Important information about compatibility with previous versions of GC4

This version is compatible with previous GC4 versions but signing up as Maybe attending
will behave oddly when 4.1 is used alongside prior versions. Choosing "Maybe" used to
put you on the Standby list, but with 4.1 Standby and Maybe are two different lists
(Standby is people who want to attend but for whom there isn't space available,
Maybe is people who aren't sure they'll be able to attend).

If the event owner is running 4.1 and the member signing up as Maybe is running an
earlier version then the member will see himself with an 'Unknown' status.  This is
because earlier versions of GC don't know about the new Maybe list.  The member will
be processed correctly and his status will correctly show as Maybe to the event owner
as well as to any other members running 4.1 or newer.

Conversely, if the event creator is running an earlier version and the member signing
up is running 4.1 then his Maybe request will get processed as Standby since that's
what prior versions do with Maybe attendees.  In this case the member running 4.1 will
see himself as "Yes" for attending and "Confirmed - On Standby" for his status.

If both the member and the event owner are running 4.1 or newer then it will behave as expected.

v4.1b5 Changes

- BUGFIX: Updates which were corrupted when received are now correctly re-requested and no longer generate messages about an "internal error"
- BUGFIX: Transmute cooldown detections work in French (thanks to Ekhurr)
- FEATURE: Added Russian translation (thanks to Eritnull)

v4.1b4 Changes

- BUGFIX: Leaving a guild which used the guild data channel no longer gives repeating "You are not in a guild" messages
- FEATURE: Added right-click support to minimap button for accessing the new Blizzard Time Manager feature

v4.1b3 Changes

- BUGFIX: Moved role and class limit frames into merged editor/viewer code so they work again (broken in 4.1b2)

v4.1b2 Changes

- BUGFIX: Added missing attendance message for 'Maybe' attendees
- BUGFIX: Fixed numerous errors in the event viewer/editor
- FEATURE: Removed EventEditor.lua/.xml from the project

v4.0.4 Changes

- BUGFIX: Fixed bug causing error message "GetDatabase: User name is nil"
- BUGFIX: Users of release versions will only be notified of newer release versions and not newer versions which are in beta

v4.0.3 Changes

- BUGFIX: Admins should no longer get disconnected when trying to set GC config while Guild Info is at or near maximum-length

v4.0.2 Changes

- BUGFIX: Default role for Discipline priests is Main Healer instead of Off-Healer
- BUGFIX: Meeting events and other non-questing events no longer put players into Standby
- BUGFIX: Closed Events will stay closed when viewed by their creator
- BUGFIX: Fixed bug in updating existing attendance requests
- BUGFIX: Removed "Unknown Role" error message
- BUGFIX: Fixed intermittent error when logging out and then canceling logout
- BUGFIX: Event tooltip shows Standby players correctly

v4.0.1 Changes

- BUGFIX: Fixed error regarding nil name while calling GetDatabase() upon login
- BUGFIX: Fixed error when using the '/cal history' command while set to Administrator
- BUGFIX: Corrected class name localization errors for German and Spanish
- BUGFIX: Group view no longer attempts to include Standby players in its total
- FEATURE: Added Void Sphere cooldown support
- FEATURE: Changed '/cal clock auto' to '/cal clock on' for better symmetry with the 'off' option
- FEATURE: Added '/cal birthdays on|off' to enable/disable birthday reminders.  Birthday reminders are on by default.

v4.0 Changes

- FEATURE: New networking code designed for better reliability and scalability
- FEATURE: Role-based signups for more flexibility in forming groups
- FEATURE: You can now edit your own events and get tradeskill cooldown messages while on another realm or faction
- FEATURE: Whisper-based UI allows players not running GC to view and sign up for events
- FEATURE: Backups (both automatic and manual) of your event data to help recover if something goes wrong
- FEATURE: Circled dates and times for events you're attending are now color-coded: yellow for pending, green for confirmed and blue for standby
- FEATURE: Event templates remember up to the last five variations on an event type (you can schedule "Karazhan Alpha" and "Karazhan Beta" and it will remember your setting preferences for both)
- FEATURE: /cal slash command added -- same as /calendar, just shorter, and /calendar still works too
- FEATURE: /cal command now shows help by default (use "/cal show" to show the GUI)
- FEATURE: New '/cal history numdays' command to set the number of days to keep events
- FEATURE: History length is stored in the auto-config data so it can be set for the entire guild at once
- FEATURE: MD5 hash protection to detect damaged event or attendance updates
- FEATURE: Date and time settings are verified by comparing clocks with other users on the network
- FEATURE: Players can now sign up for events as a standby
- FEATURE: Event titles now auto-complete
- FEATURE: Synch period is now two minutes long instead of five
- FEATURE: Database version info in About tab now shows the total number of databases known
- FEATURE: Event attendance list now shows separate totals for accepted and standby players
- FEATURE: Dungeons with a 7 day reset cycle now only show the next reset instead of the next four
- FEATURE: All localization files are UTF8 and all escape sequences have been replaced by their real characters
- FEATURE: /cal reset now resets only the current character, with a new parameter of "realm" to reset the databases for the realm
- FEATURE: Tradeskill reminder messages are smaller
- FEATURE: Brilliant Glass added to tradeskill cooldown reminders
- BUGFIX: Calendars for characters on the opposing faction will no longer be shared outside that faction
- BUGFIX: Default 12h/24h time and Sun/Mon start day can be set in localization files.  Currently the
          German translation will use 24h and Monday by default, all others are still 12h and Sunday
- BUGFIX: Disconnecting the data channel works
- BUGFIX: Guild Rank setting works again in manual configuration
- BUGFIX: Subscribing to an event and later attempting to view the attendees list should no longer re-send the request
- BUGFIX: Pressing enter while typing an attendance comment will now send the attendance request
- BUGFIX: Rebuild Database now also refreshes all attendance requests

v4.0b16 Changes

- BUGFIX: Night Elf and Blood Elf races are recognized in all languages
- BUGFIX: Fixed error with template error on first-use creating an event
- CHANGE: Warning about incorrect clock setting now mentions to check the time zone setting as well as the time and date
- FEATURE: Updated French translation

v4.0b15 Changes

- BUGFIX: Enchanting cooldowns are now detected properly
- BUGFIX: Channel status updates correctly after an auto-config error
- BUGFIX: Fixed a potential event leak between characters when leaving/changing guilds
- BUGFIX: Event templates are now remembered only by title and not by type/title

v4.0b14 Changes

- BUGFIX: Roaming (multi-computer) users get the correct update when switching machines (requires *others* to upgrade to fix the bug)
- BUGFIX: Auto-complete no longer gives errors when Lua regexp characters are typed (parenthesis, etc)
- BUGFIX: Events should no longer leak between guilds when a character changes guilds

v4.0b13 Changes

- FEATURE: Simplified description of role and class limit dialogs (enUS)
- FEATURE: Updated Spanish translation
- BUGFIX: Race information should now work for all languages (fixed for female race names introduced in patch 2.4)
- BUGFIX: Fixed event leaks spread by characters in the same account that are in other guilds/alliances
- BUGFIX: Removed cooldown error detection warning

v4.0b12 Changes

- FEATURE: Updated Traditional Chinese translation
- BUGFIX: Added internal error checks to help locate the remaining bugs
- BUGFIX: Auto-confirm using roles will count reserved class spaces correctly

v4.0b11 Changes

- FEATURE: Updated Spanish translation
- FEATURE: Updated French translation (gender-specific class support)
- FEATURE: Brilliant Glass and Void Shatter added to tradeskill cooldown reminders
- BUGFIX: Fixed bug causing an error when processing Priests under any language (bug was in 4.0b10 only)
- BUGFIX: Network initialization should now start correctly

v4.0b10 Changes

- FEATURE: Added support for gender-specific class names (German only so far, still need French, Spanish and possibly others)
- FEATURE: Backup/restore with automatic backups
- BUGFIX: Changed initialization to wait longer if the guild information hasn't arrived from the server yet
- BUGFIX: Corrected icon for Kazzak and added icon for Doom Walker (courtesy of Dridzt)

v4.0b9 Changes

- BUGFIX: Shared data channels work again

v4.0b8 Changes

- FEATURE: Updated .toc for WoW 2.4
- FEATURE: Added events and icons for Magister's Terrace and Sunwell Plateau
- FEATURE: Added cooldown icons for Karazhan, Zul'Aman, and Sunwell
- FEATURE: Updated Spanish translation
- BUGFIX: /cal reset command no longer crashes
- BUGFIX: Synch properly restarts if the channel is changed
- BUGFIX: Switching between using the guild data channel and a named chat channel works

v4.0b7 Changes

- FEATURE: Clock warning now tells you whose clocks were used to determine that yours is wrong
- BUGFIX: Rebuild Database no longer crashes
- BUGFIX: Attempting to upgrade from 3.x without restarting WoW should properly give an error message
- BUGFIX: Fixed bugs which could cause events from guildmates to fail to show up
- BUGFIX: Fixed bug causing events not to spread when using guild data channel

v4.0b6 Changes

- FEATURE: Rebuild Database now always increases the database ID which should make it more effective for cleaning up corrupted databases
- BUGFIX: Fixed bug which sometimes caused update requests for events or attendance to be ignored
- BUGFIX: Auto complete works correctly when you delete from the completed text

v4.0b5 Changes

- BUGFIX: Fixed error when receiving time samples

v4.0b4 Changes

- BUGFIX: Clock check has a better algorithm for deciding which clocks are in agreement
- BUGFIX: Clock check no longer counts multiple time samples from the same player (a player with a bad clock who kept doing /reloadui would cause everyone to think their clocks were bad and they'd start putting up warnings)
- BUGFIX: Minor performance fix in whisper UI
- FEATURE: Minimap time tooltip now shows the events for the day as well
- BUGFIX: Attendance totals show correct values when viewing by status

v4.0b3 Changes

- FEATURE: Roles which are set to a max of zero not show be listed when viewing/signing up for an event
- FEATURE: '<guild> Only' setting is saved in event templates
- FEATURE: '/cal summary' command displays upcoming events, '/cal summary guild' sends the upcoming events to the guild channel
- FEATURE: Role-based confirmations is now the default mode
- FEATURE: Tradeskill reminder messages are smaller
- BUGFIX: Private events were being returned when !gc command was used to get event listing
- BUGFIX: Removed diagnostic whisper echo to chat window
- BUGFIX: Whispered event summary excludes expired events
- BUGFIX: Choosing an event type from the top level now works after you've browsed the sub-menus
- BUGFIX: Minimap clock shows and hides properly using the '/cal clock' command
- BUGFIX: Signing up twice for a manual-confirm event no longer changes the signup date
- BUGFIX: Whisper UI commands are no longer stored in recent whispers list
- BUGFIX: Rebuild Database now also refreshes all attendance requests
- BUGFIX: Roaming user requests are properly escalated when they're already queued
- BUGFIX: Database updates from the owner are processed with the proper priority

v4.0b2 Changes
----------
IMPORTANT: Because of the checksum bug, 4.0b2 and onward versions can not talk reliably to 4.0b1 and prior versions.  I've modified
the protocol ID to prevent any communication between them in order to avoid the problems it would create.  Sorry for the inconvenience.
----------
- BUGFIX: Fixed bug causing checksum calculation to fail and return all zeroes on long messages
- BUGFIX: Fixed error message when using /cal clock, history, or reminder commands
- BUGFIX: Chat log signup confirmations were showing the player's own name instead of the name of the person signing up for the event
- BUGFIX: Whisper signups would attempt to sign up the whisper recipient instead of the whisperer
- FEATURE: Whisper signups now indicate who owns an event so that you know who to whisper to sign up for it
- FEATURE: A chat log message is displayed when synch is completed
- BUGFIX: Players who tried to sign up twice for the same event using whispers used to end up on standby
- BUGFIX: Whisper signups will now correctly fail when you try to sign up for someone else's events
- BUGFIX: The whisper interface allowed requests during the synch period, now it asks you to try later
- BUGFIX: Roaming users were not getting processed correctly when they switched computers
- BUGFIX: Attendance processing was not removing old requests in some cases
- BUGFIX: Updates containing players deleted from attendance would not process correctly
- BUGFIX: Clocks accidentally set into the future won't disrupt events for that player once corrected

v4.0b1 Changes

- BUGFIX: Fixed typo causing and error when two updates for the same database arrive together
- FEATURE: Updated German translation
- BUGFIX: Whisper UI should correctly report unknown event IDs

v4.0a2 Changes

- FEATURE: GroupCalendar now detects when a user attempts a major upgrade using reloadui and warns them
- FEATURE: Updated French translation
- BUGFIX: Fixed error during first-time upgrade from 3.x when there are no saved templates
- BUGFIX: Corrected typo causing an error when certain updates are received
- BUGFIX: Damaged database names are repaired
- BUGFIX: Druids now properly show up as candidates for ranged DPS
- BUGFIX: Fixed error message when an untranslated dungeon is found in the saved instances
- BUGFIX: Fixed error when changing characters in the event viewer
- BUGFIX: Fixed bug with MCEventLib versions
- FEATURE: Changed whisper-UI response prefix to <GC> to make parsing those messages easier with regular expressions

v3.4.3 Changes

- BUGFIX: Fixed error when an untitled and un-typed event is encountered

v3.4.2 Changes

- German translation updated
- Fixed synch warning so it only displays once per session
- Fixed bug causing 12h/24h time display to get reversed after a relog
- Modified channel management to avoid possibly resetting the synch timer
- Fixed bug causing channel to sometimes fail to initialize

v3.4.1 Changes

- Fixed intermittent error while synch'ing

v3.4 Changes

- Added icons for all TBC dungeons
- Data channel message verification for improved reliability
- Data channel limits adjusted to prevent disconnects
- New Arena event types for 2v2, 3v3 and 5v5
- New character counter helps you fit your event descriptions
- Icons for all Burning Crusade dungeons

v3.4b7 Changes

- Updated UsersManual.html with /calendar commands
- Cleaned up About tab

v3.4b6d2 Changes

- Fixed typo causing errors

v3.4b6d1 Changes

WARNING: This is a development version of the next beta. This means that it
contains a change which is extensive enough and untested enough that I do
not recommend it being used by most people. If you're an experienced user,
please try it and let me know your experiences with it. If you have been
having problems with events not showing up, or if people have trouble
signing up for your events then try this build and let me know if it fixes
the problem. Once I'm confident that the new code is working correctly I'll
release this as just plain v3.4b6 for general testing.

- Fixed bug which could cause event or attendance updates to be ignored
- Replaced the Calendar window icon with a functioning copy of the minimap clock
- Added missing Zul'Aman icon
- Fixed bug causing tooltips to be shown on dates with no events

The logic to handle incoming event and attendance updates has had extensive
(though contained) changes made. This should fix certain problems with events
not showing up or with people not getting processed while signing up for an
event. This change has not been tested in a large guild environment though
and so should only be used by experienced users or those who're experiencing
these specific problems.

v3.4b5 Changes

- Added icons for all TBC dungeons
- Fixed item-based cooldowns (Salt Shaker and Snowmaster 9000)
- Removed line breaks from .toc file header

v3.4b4 Changes

- Fixed event editor error when adding an event with no title or no description

v3.4b3 Changes

- Added check so that transmission of very long messages will disconnect GC
  instead of disconnect the whole client
- Fixed bugs in enforcement of message limits
- Description limit counter now displays the length of the message data so
  that escaped characters are included in the count

v3.4b2 Changes

- Restored message delay limit (albeit longer than orignally) to ensure
  that GC messages can't be completely locked out by other addon data channels
- Added icons for Black Temple, Gruul, Hyjal, Kazzak,
  Magtheridon, Serpentshrine and The Eye (reported by CurtisTheGreat)
- Added Arena icons (Aqua)
- Added Skull to heroic dungeon icons
- Fixed call to Outfitter from GroupCalendar (reported by Zidomo)

v3.4b1 Changes

- Fixed event description limit to prevent disconnects (Aqua)
- Added event description length counter (Aqua)
- Added database scan to eliminate existing long descriptions (John)
- Added Arena PvP events (Aqua)
- Fixed tooltip display in About tab (Dridzt)

v3.2.3 Changes

- The "/calendar 12h" command now works correctly
- Updated Primal Mooncloth, Spellcloth and Shadowcloth for German
- Fixed a bug which could cause event/cooldown reminders to reappear much more frequently than intended
- Added "/calendar reminder [off|on]" command to disable reminders completely if desired

v3.2.2 Changes

- Corrected analog clock display for 24H locales

v3.2.1 Changes

- Added /calendar clock [off|local|server|auto] command for controlling the minimap clock

v3.2 Changes

- Added support for Spellcloth, Shadowcloth and Primal Mooncloth
- New events for Holiday (shared event) and Other (personal event)
- Added support for new alchemy transmutes
- Added dungeon reset event for Karazhan
- Doctor, Dentist, Vacation and Other are now in their own Personal sub-menus
- Flashing date button for new events is brighter for better visibility
- "Guild members only" option is no longer displayed on personal events
- Reminders work correctly when there is only one upcoming event
- Alert for tradeskill cooldowns no longer start over after using that tradeskill
- Auto-inviting players to a 5-man dungeon should no longer cause conversion to a raid
- Disabled reminders for birthdays
- Calendar button now show current time
- Updated German translation

v3.2b4 Changes

- Corrected typo causing null value errors when doing group invites

v3.2b3 Changes

- Alert for tradeskill cooldowns no longer start over after using that tradeskill
- Auto-inviting players to a 5-man dungeon should no longer cause conversion to a raid

v3.2b2 Changes

- New events for Holiday (shared event) and Other (personal event)
- Added dungeon reset event for Karazhan
- Doctor, Dentist, Vacation and Other are now in their own Personal sub-menus
- Updated German translation

v3.1 Changes

- Added event types for Burning Crusade dungeons and PvP
- Tab key now works correctly in the class limits dialog
- Shaman and Paladin classes are now shown for both factions
- The Whisper button in the Add Player dialog now works under patch 2.0
- Users making attendance changes will be reminded that they should wait before logging off
- Updated French translation
- Auto-config data is written correctly when the guild information panel is too full

v3.1b4 Changes

- Users making attendance changes will be reminded that they should wait before logging off
- Updated French translation

v3.1b3 Changes

- Split dungeons list into Azeroth and Outlands to keep menus smaller
- Added Gruul's Lair raid event
- Added Eye of the Storm PvP event
- Added code to remove the data channel from the chat window if it's present

v3.1b2 Changes

- Added icons for Mana-Tombs, Sethekk Halls, Auchenai Crypts, Durnholde Keep
- Fixed bug which caused auto config data to be written incorrectly when the guild information panel is too full
- Tab key now works correctly in the class limits dialog
- Shaman and Paladin classes are now shown for both factions
- The Whisper button in the Add Player dialog now works under patch 2.0

v3.0.4 Changes

- Fixed source of chat frame tainting, which eventually led to pet bar tainting

v3.0.3 Changes

- Increased data transmission speed
- Increased update timeout to help avoid missed events in very large guilds/alliances
- Snowmaster and Salt Shaker are detected correctly again
- Fixed Administrator mode to set config string properly when guild information is too full
- Improved reliability and speed of event and attendance requests
- Improved compatibility with patch 2.0

v3.0.3b6 Changes

- Fixed numerous bugs where patch 2.0 changes were causing attendance and event changes to be completely ignored sometimes

v3.0.3b5 Changes

- Fixed behavior of Channel tab when in Administrator mode
- Connect/Disconnect button now changes to "Apply" when settings have been changed

v3.0.3b4 Changes

- Updated Chinese/Taiwanese translations
- Fixed About tab alignment
- Guild Members Only checkbox is no longer shown if the player isn't in a guild
- Buttons for Invite and Select players have labels once again
- Modified sending of changes to be more aggressive about pushing attendance requests and new events out faster

v3.0.3b3 Changes

- Fixed bug which could cause players to accidentally delete all events for another player
- Updates for your own calendar which appear to be instructions to delete all of your events will notify you and give you the option to cancel them to avoid event loss
- Added "/calendar reset" command which erases all of your events, thereby allowing you to start over with a clean calendar
- Fixed new events so that the title once again defaults to the name of the selected event type

v3.0.3b2 Changes

- Corrected version number for Spanish language versions
- Snowmaster and Salt Shaker are detected correctly again
- Fixed Administrator mode to set config string properly when guild information is too full
- Changed bandwidth throttle to take traffic generated by other addons into account

v3.0.2 Changes

- Fixed InviteByName error when attempting to form the group for an event

v3.0.1 Changes:

- Fixed network error

v3.0 Changes:

NOTE: 3.0 will not communicate with pre-3.0 versions.  The data is compatible however and you can
      switch between running 3.0 and pre-3.0 versions

- Support for guild data channel
- Simplified setup and security
- Added doctor, dentist and vacation event types (doctor and dentist are not shared with the network)
- 3.5 hours is now an event duration option
- The minimap button and the date buttons will now flash when new events arrive
- A tooltip showing a summary of events for each date is now displayed in the calendar window
- A tooltip showing an attendance summary is now displayed for the daily event list
- Events can be created as "closed" which won't allow signups and players can only be added manually (or the event can be opened later)
- Reminders for events are given at 60, 30, 15, 5, and 1 minute before start time as well as at start time
- Calendar can be set to start the week on a Monday (use "/calendar mon" command)
- Events can now be restricted to members of the same guild
- Players can now be manually added as "not attending"
- Minimap icon changes to an upcoming event one hour before the event starts
- Compatible with The Burning Crusade expansion

v3.0b5 Changes:

- Added Spanish translation courtesy of Marutak of C'Thun
- Corrected spelling of Administrator in setup
- "Connect" button should no longer become unusable if the connection is stopped and restarted
- User Manual updated for 3.0

v3.0b4 Changes:

- "Synchronizing" status message now includes a countdown timer

v3.0b3 Changes:

- Player events should no longer disappear from other people's calendars
- Channel connection should no longer be delayed an extra two minutes
- Setting week to start on a Monday should now correctly set the weekday labels after re-logging
- Updated Chinese translations (thanks Andy!)

v3.0b2 Changes:

- Moved event disposition strings to localization files
- Event reminders should now work correctly when there's an all-day event (birthday, vacation) the following day
- Fixed error message while receiving database updates
- Attendance tooltip will now wordwrap
- Default configuration now makes any officer who can edit the guild information an admin by default
- Fixed display problems with group invites

v2.2.1 Changes:

- Ahn'Qiraj Temple reset event is now recognized properly
- Event creator's self-attendance will show up on other calendars correctly
- Event descriptions repositioned slightly for better appearance
- Attendance comments containing special symbols are now properly encoded
- AQ20 and AQ40 reset dog-ear icons now display correctly
- Default time for new events will now use the time from the last event in that dungeon again

v2.2.1b2 Changes:

- Default time for new events will now use the time from the last event in that dungeon again
- AQ20 and AQ40 reset dog-ear icons now display correctly
- Attendance comments containing special symbols are now properly encoded

v2.2 Changes:

- Added Naxxramas, general PvP and Roleplaying event types
- Player kill command no longer allows a guild member to be specified
- Fixed instance reset names for Onyxia's Lair, Zul'Gurub and Ruins of Ahn'Qiraj (English clients)
- Fixed instance reset names for Onyxia's Lair (German clients)
- Fixed instance reset names for Onyxia's Lair and Molten Core (French clients)
- Updated Simplified Chinese translation

v2.2b3 Changes:

- Adjusted level range boxes for better fit
- Changed font setting for event creator name to use WoW constants

v2.2b2 Changes:

- Updated Simplified/Traditional Chinese translations
- Updated Onyxia's Lair string for German translation

v2.1.1 Changes:

- Fixed raid reset handling for patch 1.11
- Added ability for guild officers to purge a player's events from the network
- Now displays the next four resets for an instance

v2.1 Changes:

- Support for users logging in from multiple PCs
- Corrected detection of Onyxia's Lair for German clients
- Fixed class coloring for non-English clients
- Added UI to About tab for viewing Group Calendar versions being run by other players
- Disabled sending of player alts when replying to an event
- Players removed from an event will now display a "Banned from event" message so they
  know why their attendance requests aren't being handled any more
- Improved event and attendance request reliability

v2.1b9 Changes:

- Changed version polling to a one-time event to prevent channel spam
- Fixed bug causing event and attendance update problems when using guild rank-based trust settings

v2.1b8 Changes:

- Added version polling every 20 minutes
- Modified trust handling so that untrusted guild members are still allowed to forward events

v2.1b7 Changes:

- Fixed bug with processing attendance requests from the same player for different events

v2.1b6 Changes:

- Added check for nil pointer when receiving a confirmation settings update for an
  event which no longer exists
- Corrected French translation for Herbalism tradeskill

v2.1b5 Changes:

- Actually changed default trust (turned out I made the change to the wrong source code in 2.1b3, oops :)
- Fixed expand/collapse all button in attendance view

v2.1b4 Changes:

- Updated French translation
- Removed debug messages

v2.1b3 Changes:

- Changed default trust for unguilded players to trust anyone in channel.  This should make things simpler for first time users
- Added support for high priority synching of alts data
- Fixed bugs causing some player updates to be sent before five minute synch was completed
- Fixed display problem with player version list
- Added channel status message to indicate when synching is still occurring
- Fixed bug causing some event updates to fail to appear in the calendar after processing
- Added synchronization warning dialog if the user edits events during synch phase

v2.1b2 Changes:

- Changed RSVP handling so that new attendance requests with older dates aren't discarded
  but instead are added as if they are one second newer than the previous request
  
v2.0b17 Changes:

- Fixed bug causing case sensitivity in channel names
- Fixed bug causing update requests to be lost during the five minute timeout
  period after login
  
v2.0b16 Changes:

- Fixed another bug in processing request queues

v2.0b15 Changes:

- Updated TOC for patch 1.10
- Turned off debug code

v2.0b14 Changes:

- Fixed bug with processing request queues which could cause large backups
  of requests and sporadic freezes lasting from less than a second to 30
  seconds or more.  The frequency and severity of this problem is related
  to the number of users on the network and therefore primarily affected
  larger guilds.

v2.0b13 Changes:

- Fixed typo causing nil pointer error in EventDatabase.lua

v2.0b12 Changes

- Fixed bug causing event IDs to become strings which resulted in events not being
  located properly for attendance processing
- Fixed bug causing RSVPs to stay around after the event or database they're for
  are deleted

v2.0b11 Changes

- Fixed player attendance comment to unescape special characters
- Fixed minor race condition which could cause initialization to
  halt when data channel is already joined
- Fixed attendance request processing to correctly remove processed
  requests from the queue
- Fixed bug causing attendance requests to be lost when making a Yes/No
  response and then immediately changing to the opposite response
- Improved event/attendance processing performance when the calendar UI
  isn't open

v2.0b10 Changes

- Delayed initial event update requests until after the guild roster is received
  when trust setting is Guild Members.  This should prevent problems with unreliable
  event delivery when using that trust setting.

v2.0b9 Changes

- Modified event viewer to disable comment field with neither Yes nor No are checked
- Fixed recognition of tradeskill events and tradeskill window opening so that cooldowns
  are properly scheduled
- Added timeout to calendar updates to prevent a disconnected player from causing
  updates to becomed locked out
- Disabled Invite button when player isn't capable of inviting
- Modified event viewer so that comment-only attendance feedback isn't sent
- Modified roster updating do refresh every four minutes so that rank-based authentication
  is more reliable

v2.0b8 Changes

- Fixed Ahn'Qiraj Ruins reset event detection
- Fixed processing of RSVPs so that comment updates don't cause the player to lose
  their date/time priority or accepted/standby status
- Fixed invites so that they aren't limited by the event attendance settings but are
  limited by the number of players selected
- Added Salt Shaker and SnowMaster 9000 support for tradeskill cooldown events
- Removed filtering of whispers before an event is opened.  This was causing too much
  trouble with missing invite requests when the organizer hadn't opened the event yet.

v2.0b7 Changes

- Fixed bug which caused a players rank to fail to update in the group list after updating
  the rank in the attendance list
- Added View by Name to attendance list
- Fixed dungeon reset event scheduling for Ahn'Qiraj Temple and Ruins (unverified)

v2.0b6 Changes

- Fixed bug causing menus to change suddenly while choosing items
- Fixed bug which prevented changing a players rank in the attendance list under certain conditions
- Fixed display of long event titles in the event viewer
- Fixed bugs in automatic invites which would cause invites to stop being issued
- Offline guild and party members will have their names rendered in gray in the event Group list
- Fixed bug causing event Group list status to not update when raid members changed

v2.0b5 Changes

- Fixed sorting of events when events are on different days in server date/time but
  on the same date in local date/time
- Fixed Rebuild Database so that private events (tradeskill cooldowns and instance
  resets) aren't added to the public calendar
- Fixed bugs in filtering whispers from existing event attendees/party members
- Fixed bug which caused Enable Automatic Confirmations checkbox to revert to its
  original setting whenever attendance for an event was updated
- Prefixed automatic event invite whispers with [GroupCalendar]
- Modified group invites to do them at a slower rate so that Blizzard's spammer
  detection sentry's don't mistakenly kick the event organizer offline
- Fixed event viewer so that attendees don't send a request to delete themselves
  from an event when they're on the Standby list

v2.0b4 Changes

- Fixed event editing in local time zone for events where local date
  is different from server date
- Added whisper filtering to eliminate recording whispers from existing
  attendees and party members

v2.0b3 Changes

- Modified Recent Whispers to ignore whispers starting with [ < or {
- Added Clear button to Recent Whispers category
- Fixed attendance menu items so they work correctly without Outfitter installed

v2.0b2 Changes

- Updated user's manual for 2.0 features
- Fixed nil pointer bug when handling alts list in attendance responses
- Fixed bug causing request queue to be processed much more slowly than
  intended.  This was especially noticeable at startup because channel
  initialization was delayed for a very long time.
- Fixed bug causing attendance responses not to be requested at startup if
  trust is set to guild members only
- Modifed protocol to suppress sending updates for three minutes after login
- Added task queue for managing tasks which should run independently of
  channel traffic

v2.0b1 Changes

- 2.0b1 is the same as 2.0a6

v2.0a6 Changes

- Fixed automatic party selection so that the priority is actually based on
  the setting from the limits dialog and not on the view mode of the list

v2.0a5 Changes

- Fixed class/race dropdowns to be faction-specific
- Implemented Remove RSVP
- Added class limits defaults
- Added class limits and manual/auto confirm setting to saved templates
- Added default limits to auto select when event has none specified
- Changed recent whispers to only show up on events which are editable

v2.0a4 Changes

- Fixed item coloring of member of Unknown class
- Fixed group expand/collapse

v2.0a3 Changes

- Fixed group invite

v2.0a2 Changes

- Fixed nil pointer bug when attempting to open events

v2.0a1 Changes

- Decreased maximum event age to 30 days from 45 days
- Fixed time wrapping so that events which cross over midnight display the correct end time

v1.2.1 Changes

- Changed server time zone calculation to correct for players more than 12 hours off from the server

v1.2b4 Changes

- Added "circled" dates and times for events being attended
- Fixed bug causing attendance feedback to get reset sometimes while trying to change it
- Modified to hide the "use server time" checkbox when server and local time are the same

v1.2b3 Changes

- Today and Date buttons now toggle the summary window
- Hooked up guild rank caches to improve performance
- Modified database trust checking to be a scheduled event instead of
  immediate in order to improve performance
- Modified queues to be processed more steadily in an attempt to reduce
  unnecessary traffic and smooth out potential lag spikes

v1.2b2 Changes

- Modified database code to use an "LocalUsers" tag.  A character will not use
  a database until he sees it offered on his own network.  This should prevent
  unguilded toons from clearing the database cache as well as preventing toons
  in other guilds from spreading events between the guilds.
  
v1.2b1 Changes

- Added event cleanup so that events older than 45 days are automatically
  removed, except for birthdays which are rescheduled for the same time next year
- Added ability to display and edit events in local date and time instead
  of server date and time

v1.1 Changes

- Changed dungeon order to be by level instead of by English alphabetical
  order
- Added Simplified and Traditional Chinese translations
- Fixed bug with Trust tab names not working correctly for names that
  didn't start with a Roman letter
- Fixed crash when switching to windowed mode on Macintosh clients
- Fixed minor layout bugs

v1.1b23 Changes

- Fixed nil pointer bug when reconstructing databases from their
  change history

v1.1b22 Changes

- Fixed nil pointer problem whene executing attendance changelists
- Fixed bug which caused events which don't have a type to not be
  added correctly to other people's calendars
- Added icon for events which don't have an event type
- Changed calendar button to use the GameTimeFrame as a parent so that it hides
  or moves if a UI changes the time frame
- Fixed store auto config so that the config data isn't cleared accidentally
  if an officer uses manual config but doesn't select a config player

v1.1b21 Changes

- Added Battlegrounds events (I know, I shouldn't be adding features
  this late but this really belonged in 1.0 with the other dungeons
  and it was only omitted because of my light battlegrounds experience)
- Modified calendar icon rendering to avoid icons for events it doesn't
  understand.  This will allow new event types to be added in the future
  without causing the calendar to render ugly green squares.

v1.1b20 Changes

- Added support for key binding to show/hide the calendar.  This was a trivial
  change which should make life a little easier for people using heavily
  customized UIs.
- Updated BFD icon with new artwork
- Changed database ID to be a timestamp instead of a sequence number.  This fixes
  Rebuild Database so that you only have to hit it once to make it clear up the
  network and also fixes initialization so that throwing away your settings file
  will clear your old database from the network.
- Modified update handling so that changes are only made after the update is
  received.  This fixes problems with partial updates being sent out on the
  network while they were still in progress as well as fixing problems caused
  by updates being promised but never arriving.

v1.1b19 Changes

- Fixed bug causing guild trust level to be calculated incorrectly

v1.1b18 Changes

- Increased startup delay to 2 minutes but added code which shortens it
  to 10 seconds when the General channel is joined.  This should make
  startup quick for people who don't experience significant login lag
  but still be long enough to ensure that /1 doesn't go to the calendar
  channel if there is a lot of lag
- Fixed bug causing attendance requests to be ignored by the event owner
  under some circumstances
- Fixed excess traffic when requesting authoritative updates
- Fixed live updating of UI when new event data arrives
- Modified trust UI to hide rank dropdown when trust group isn't set to guild
- Modified trust UI to update when autoconfig data arrives
- Fixed change notification on deleted events

v1.1b17 Changes

- Modified attendance list to show queued attendance requests
  as "Pending approval"
- Changed minimap icon to be smaller, more discrete so that the sun and
  moon could shine through
- Changed calendar icon to be more in the spirit of the game's design
- Fixed bug in auto-config trust level.  This may be responsible for
  events not showing up or attendance requests not getting confirmed.
- Fixed local time calculation when server time is near midnight
- Updated Ruins of Ahn'Qiraj icon

v1.1b16 Changes

- Increased delay until channel initialization after login
- Added more status messages during initialization

v1.1b15 Changes

- Changed channel initialization to provide detailed error information when
  the password fails or the number of allowed channels is exceeded

v1.1b14 Changes

- Fixed local time calculation so it occurs on PLAYER_ENTERING_WORLD event
  instead of VARIABLES_LOADED.  The server time value doesn't appear to be
  reliable at VARIABLES_LOADED time.
- Restored the old Dire Maul event icon
- Lowered the saturation of BRD, MC and RFC icons for better appearance
- Modified RebuildDatabase to repair event IDs if there are any collisions
- Fixed bug causing changes to be lost during update event processing.  This
  was causing events to disappear right after they were created but could
  also cause other problems such as attendees disappearing or changes to
  events reverting to the original event values.
- Added support for separate update request for owner revision and shared revision

v1.1b13 Changes

- Fixed bug which caused drunken chat strings to be escaped in a different
  format than they were being un-escaped, causing damaged messages.  I 
  really shouldn't program at 2am, really.

v1.1b12 Changes

- Updated Onyxia icon with new artwork
- Added check for invalid packet on UPD (DB or RAT) message
- Added support for intoxicated players
- Changed protocol to GC2 since it isn't compatible with the drunk escaping

v1.1b11 Changes

- Fixed *another* bug causing nil pointer errors during certain updates

v1.1b10 Changes

- Fixed bug causing nil pointer error during certain updates
- Added attendance total to attendance panel

v1.1b9 Changes

- Modified event updates to store actual change log directly, then
  create event updates from that.  This should improve reliability
- Modified event updates to track owner updates and reconstruct the
  database if the owner provides data that differs from proxied updates
- Fixed Rebuild Database to correctly rebuild the attendance records

v1.1b8 Changes

- Fixed bug which caused channel to not be closed when quitting in an inn

v1.1b7 Changes

- Fixed database rebuild when receiving major database revision changes
- Modified attendance viewer to hide class totals on non-questing events
- Added newline to list of escaped characters to prevent random disconnects

v1.1b5 Changes

- Fixed an error when logging out while not connected to any channel
- Updated icons with new artwork form Palyr for BFD, BWL, DM, UBRS, ZG
  and Meetings
- Added background image to event viewer and editor

v1.1b4 Changes

- Fixed bugs which caused redundant network requests to be issued
- Fixed database rebuild so a revision isn't opened when there are
  no events or RSVPs
- Fixed bug which could cause an external database to become corrupted
  during updates
- Changed database format to 4 to force a rebuild and flush old
  databases to clear any corruption problems
- Fixed error regarding nil concatenation caused by database errors
- Changed initialization sequencing to avoid excessive loading of the
  guild roster
- Added guild roster cache to speed up trust lookup
- Fixed bug causing attendance items to show highlights where there was
  nothing to highlight
- Attendance list names are now concatenated with their level and class
  name to conserve space

v1.1b1 Changes

- Attendance feedback comments are now displayed as a tooltip in the
  Attendance panel
- Added a new Today button in the main calendar display to jump directly
  to the current date
- Special characters are now escaped in event titles and descriptions
  and feedback comments so they can be properly transmitted
- Added 5 and 6 hour choices to the Duration menu
- Attendance list for meetings is now sorted by is/isn't attending instead
  of by class
- Attendance list names are now sorted alphabetically
- Minimap date/time tooltip now also displays the day of the week
- Birthday events no longer show an attendance tab 

v1.0.2 Changes

- Added support for 24 hour times in the event editor
- Moved dungeon names into GroupCalendarStrings.lua
- Modified class and race name/id lookup to be friendlier to localizers
- Moved class names, race names, and class color indices to
  GroupCalendarStrings.lua for localization
- Added French and German translations

v1.0.1 Changes

- Modified trust tab to save auto-config data when changing settings

v1.0 Changes:

- Changed trust group settings to be part of the auto-configuration data

v1.0f4 Changes:

- Changed protocol ID to GC1.  This will prevent this version from communicating
  with older versions, please upgrade to this version to continue getting
  calendar event updates
- Added check for nil ID before bumping changelist revision
- Modified user authentication to fail gracefully and silently when the guild
  roster hasn't been loaded yet

v1.0f3 Changes:

- Modified the protocol slightly to allow for empty databases to be deleted
  and not transmitted over the data channel.  This should reduce both memory
  and data channel chatter by a fair amount

v1.0f2 Changes:

- Changed new alliance race from Pandarin to Draenaei
- Fixed minor bug causing empty databases to be announced to the channel
- Added work-around for bug in which the ClearFocus method of edit fields
  isn't always present

v1.0f1 Changes:

- Fixed bug which caused RSVP database to fail to update correctly after a
  database rebuild
- Modified rebuild database to compact the RSVP database as well

v1.0b13 Changes:

- Modified channel shutdown during logout to avoid a spurious error message
- Fixed bug with database IDs not updating properly
- Changed protocol to GC3
- Changed database to version 3 to force all external databases to be
flushed
- Modified channel suspension during logout to prevent channel number from
becoming invalid
- Fixed various uses of the guild roster to exit gracefully when the roster
hasn't been downloaded yet

v1.0b12 Changes:

- Modified channel status message to display in red/green/yellow based on the status
- Added animated highlight to today's date in the main calendar display
- Fixed a bug in the Disconnect button which caused it to reconnect after
  closing the window or changing tabs
- Modified request processing queue to suspend itself while incoming messages
  are being processed.  This should reduce redundant data being sent over the channel
- Modified event editor so it doesn't save events which don't have a type or title
- Added support for "quick" event changes to help reduce network traffic
- Fixed a bug which could cause unnecessary requests to be issued for the same update
- Modified channel password field when auto-config is enabled to show "******"
  to indicate when a channel password is being used
- Fixed bugs causing certain network messages to be sent even when the same message
  was already sent by another player

v1.0b11 Changes:

- Added ability to connect/disconnect from the data channel
- Added channel connection status
- Changed auto-configuration on guild roster change to a deferred event to avoid any
  performance issues related to frequent guild roster updates

v1.0b10 Changes:

- Added inbound message queue
- Suspended outbound message processing while inbound messages are being received
- Disabled update events when all queues are empty

v1.0b9 Changes:

- Added ability to rebuild the players database using a button on the
  about page

v1.0b8

- Added about screen
- Removed use of QuestLog UI template for show/hide all button
  
v1.0b7 Changes:

- Fixed bug causing player level to not be set correctly which caused
  events with level restrictions to be blocked

v1.0b6 Changes:

- Fixed bug causing update events to trigger an error dialog

v1.0b5 Changes

- Removed annoying message about auto-config data not found
- Players who do not meet the level requirements for an event will see
the event's icon as translucent in their calendar
- Players who do not meet the level requirements for an event will not be
able to provide an attendance response for an event
- Modified trust behavior so that fellow guild members can respond to and
view events even if they're not trusted to provide events
- Modified event viewer to display level range in red when player isn't
qualified
- Modified security to allow all guild members to request calendar 
information if the trust group includes guildies (only guild members of the 
specified rank or higher can contribute to your calendar however)

v1.0b4 Changes

- Fixed bug which prevented giving attendance response to events
- Fixed "store auto config in player" option to remove data from the old
player setting
- Fixed edit fields so they give up keyboard focus before being disabled
- Added UBRS and LBRS icons (same icon for both currently)
- Update BRD icon with new image
- Added event templates -- new events will default to the same values as the
last event you saved of the same type
- Fixed initial setup bugs
- Adjusted message delays
- Fixed bug which caused multiple people to respond to the same calendar
update requests
- Increased message delays to reduce traffic further

v1.0b3 Changes:

- Fixed error when trying to expand an empty attendance list
- Modified automatic channel configuration so that the channel
name/password/player are not stored in settings and displayed values are
taken from the current channel config
- Modified automatic channel config to update whenever a guild update occurs
- Modified channel config UI to update whenever a channel config change
occurs
- Fixed bug in event viewer close box which cause the schedule window to
stay open
- Added <self> will attend so users can include themselves in their own
events
- Started localization support
- Fixed error when creating a new event
- Added dungeon icons for Stratholme, Blackfathom Deeps, Maraudon, Ragefire
Chasm, Shadowfang Keep, Razorfen Downs, Razorfen Krawl, Wailing Caverns,
Scarlet Monastery and Uldaman
- Fixed error message caused when saving an edited event without viewing the
attendance
- Fixed event editor to show blank event type for new events
- Sharpened all the dungeon icons so they don't look so fuzzy

v1.0b2 Changes:

- Added sounds to tab-switching
- Updated version string to 1.0b2
- Modified removed trusted/excluded player to clear the selection after
removal
- Modified Channel setup to only enable Apply Changes button when something
is actually changed
- Fixed display of birthday events to not show attendance status
- Fixed bug causing only the last attendance value to be remembered

v1.0b1 Changes

- Added delete event confirmation
- Finished UI for event attendance

v1.0a12 Changes

- Added class and level info to acceptance messages
- Implemented more of the acceptance UI (still incomplete though)

v1.0a11 Changes

- Eliminated trust change notices when settings aren't actually changed
- Fixed selected tab rendering when showing calendar window
- Increased space allocated for channel panel description to avoid cropping
problems
- Added tooltips for channel tab controls
- Modified behavior to hide the event viewer/editor when switching to the
channel or trust tabs
- Added support for routing requests to all channel members
- Fixed bug which caused trust group to keep reverting to "only those listed
below"
- Modified auto config checkbox to be disabled when player isn't in a guild
- Corrected trust group dropdown to hide guildies option when not in a guild
(was hiding all option instead)
- Modified trust to solicit updates from guildies or the channel when
settings are changed
- Fixed default settings for guilded players
- Added attendance support to database engine
- Started on attendance UI

v1.0a10 Changes

- Added push-to-show icon to minimap (where the sun/moon icon normally is)
- Added enhanced time/date tooltip to minimap
- Actually tested the code first! Woot!
- Fixed trust caching issues when changing trust settings
- Added support for hiding the calendar window using the ESC key
- Added support for stacking the calendar window with other game windows
- Fixed initial synchronization problems
- Removed unwanted debug message

v1.0a9 Changes

- Removed unwanted debug message regarding user trust
- Corrected guild rank trust setting

v1.0a8 Changes

- Security (trust) implemented
- New settings/database formats OLD DATA AND SETTINGS WILL BE ERASED

v1.0a7 Changes

- Quick fix for a minor bug which caused periodic errors

v1.0a6 Changes

- Added Channel Setup page
- Added channel auto-configuration support
- Reduced network traffic caused by multiple users transmitting the same
updates
- Started on Trust Setup page (not hooked up)

v1.0a5 Changes

- Added calendar setup pages (not hooked up)
- Fixed database event duplication bug
- Added database integrity check at startup

 1.0a4 Changes

- Added meeting icon
- Modified event viewer to hide attendance feedback fields for
birthday events
- Added comment field to attendance feedback
- Modified event editor to show default title based on event type
- Fixed sorting for birthday events (previously they had a time of
7pm), existing birthday events will have to be edited in order to
correct them
- Changed time display for birthday events to simply show "Birthday"
instead of a time

1.0a3 Changes

- Added birthday icon
- Added icon overlay support to calendar display
- Added guild-specific update request support (no UI yet)

1.0a2 Changes

- Fixed communication protocol bugs

1.0a1 First public alpha release
