JasonQuest - Share QuestLogs between party members
jaslaughter@yahoo.com

Credits:
Double-Wide Code: Iriel <iriel@vigilance-committee.org>
Core comm handler: Quixote, created by Kemayo
Minimap button: MiniButtLib, created by DarkImakuni, who credited Gello

Credit Note:
This AddOn was created for my internal use with my family while leveling up
together.  In the process, I looked at Quixote and QuestLogFrame.lua.  Since
the AddOn wasn't meant for public consumption at first, I may have missed
giving credit where credit is due.  Please know that this is not intentional
and a simple email letting me know I've missed a credit is all that's needed
to get the insertion.


Use:
*Yes, party members that want to share QuestLogs need to have this mod!*

Simply click on the minimap book icon (when in a party or debug mode) to open
the JasonQuest log frame.  There will be a tab for each party member along the side
with portraits - red for no data and full-color for any data (may not be
complete yet, though).  Just click the tab to see their log.

Once in the log, clicking Synchronize will send what quests you have listed for
a member, and that member's JQuest should send back the missing quests.

Clicking Share Quest will ask the other member's JQuest to share a quest that
you don't have with you.


Commands:
/jq followed by:

show - Show the JasonQuest gui

showUpdates - By default JQuest will let you know when a party member has
              completed a quest objective.

locked - Lock / Unlock JQuest tracker

wide - Toggle Single- or Double-Wide JQuest Log

autoTrack - Toggle auto-tracking of member quests

resetWatch - Reset JQuestWatch frame position

clearWatch - Stop watching all JQuests

debug - Enter debug mode (saved across sessions).  The tabs act like checkboxes
        and when no tabs are checked your own log will display.  There really
        shouldn't be a need for most users to use this.

ping - Force a 'PING' to the party addon channel.  If JQuest hasn't seen a
       response ('PONG') from a member, this can ask again.


Known Issues:
If it's in this list, rest assured I'm aware of it and looking for solutions. If
you've been able to solve one yourself, please let me know and I'll incorporate it
ASAP along with proper credit. 

- Sometimes Blizzard doesn't update the questlog objectives quickly enough, and you
  end up with objectives like " : 0/5" 
- Expanding / Collapsing quests changes quests available through the Blizzard API,
  and it makes the QUEST_LOG_UPDATE event unreliable. At this time I'm unregistering
  that event when I enumerate the quests, and sometimes this event never re-registers
  properly.


Change log:
v1.04.$Revision: 73320 $
- Hopefully fixed objective completion for non numbered objectives (i.e. Energize
  a Crystal Ward for Arm the Wards!)
- Various cleanup
- Reduced ping frequency

v1.04.73115
- Fixed not-so-rare Comm.lua:40 bug

v1.04.72005
- Fixed semi-rare Comm.lua:3 bug

v1.04.71815
+ Added version notifications on-frame
+ Modified playersOnQuest functions to ignore debug mode
+ Modified playersOnQuest indicator to be colored a light blue when you're one of
  players on the quest

v1.04.70752
+ Modified the way LightHeaded_JasonQuest is supported
+ Frame is movable without shift (not sure why I did that now), frame will always
  snap back to where it was after closing

v1.04.70617
+ Added support for QuestLinks
+ Added Dewdrop to Embeds.xml
- Disabled use in raids do to unreliable results

v1.04.49361
+ Added Dewdrop to svn:externals

v1.04.48993
+ Frame is now movable (hold shift)
+ Organized the options a bit
+ Added DewdropLib as X-Embed, so everyone has the right-click menu

v1.04.48248
- Applied quest selection fix to Comm.lua

v1.04.47715
+ Added a search bar at the bottom of the JQuest frame, ripped straight from my
  Baggins_Search
- Fixed rare spamming of 'party#' spam
- Fixed LogFrame.lua:201 nil error
- Fixed Comm.lua:197:attempt to index field '?' (a nil value)
- Fixed Tab status indicators to properly display gray if incompatible version, and
  red only when there is no data
- Selected quests should now be properly reselected after a scan (using
  GetQuestLogSelection() instead of QuestLogFrame.selectedButtonID which lags behind
  realtime)

v1.04.46030
- Fixed issue with reward items sometimes not showing up--Required a COMM change so
  all users will need to upgrade (Sorry!)

v1.03.45788
- Changed the check for battlegrounds, using GetBattlefieldInstanceRunTime() instead,
  tested but not in an arena
- Fixed Comm.lua:342 nil error

v1.03.45729
+ Quest rewards are now linkable and dressable
- Fixed Core.lua:549 nil error

v1.03.45689
- Fresh installs will default to DoubleWide if Iriel's DoubleWide mod is loaded
- Reworked QUEST_LOG_UPDATE event registering and de-registering--should keep JQuest
  from stopping unexpectedly
- Moved debug messages to ChatFrame3 again, with notifications staying in default
+ Added reward info, although no tooltips for spell rewards
+ Added required money info, although this is currently untested

v1.03.45521
- Player-to-player messages should not be sent in battlegrounds, hopefully getting
  rid of some ChatFrame spam
+ Added (slightly out of scope) party XP info -- Just mouse-over their tab to see
- Player will now refresh cached quest list before responding to sync requests

v1.03.45431
- [#] Number of members on quest indicator now updates with player updates
- Details pane updates when party updates
- Fixed compatibility issue with beql

v1.03.44347
- Fixed Comm.lua:215: attempt to compare boolean with number

v1.03.43752
- Not sure what I was thinking, debug messages use the same function as the
  notification messages so moving them to ChatFrame3 moved everything, fixed

v1.03.43400
- Fixed Comm.lua:31: attempt to index field '?' (a number value)
- Debug messages are now in ChatFrame3, and added some new messages

v1.03.42031
- Minimap button should now only show up when other members have JQuest (or you
  are in debug mode)
+ JQuest will now re-ping members who ping you and didn't have JQuest earlier
  (generally a sign of a /rl)

v1.03.41925
- [#] Number of members on quest indicator now updates when the party updates
- Fixed Core.lua line 565:attempt to index field '?' (a number value)
- Fixed LogFrame.lua:513: bad argument #2 to 'format' (number expected, got nil)
- Attempt 1 to reduce 'does not exist' errors during raids (drycoded)

v1.03.41619
- The questlog from Bliz moves IDs around when adding/removing quests, as such
  the quest tracker was screwy.  Most of the code has been overhauled to use
  titles exclusively, requiring yet another comm update (Sorry!)
+ Custom Double-Wide textures since I couldn't get ahold of Kudane
+ Slightly better memory / cpu usage
+ Slightly lower bandwidth utilization due to incorporation of the WHISPER
  addon channel

v1.02.39949
+ Auto-Track is now available, and behaves much like Blizzard's.  As such, the
  default now is to have 'showUpdates' turned off
+ If DewDrop is loaded then the minimap button will now have a right-click menu
- Multiple member indicator [2] will now only show when there are 2+ members
  on the quest
- Fixed error when shift-clicking a header

v1.02.39713
+ Moved credits from code to ReadMe.txt
+ Added Double-Wide option
+ Transfer status indicator on member tabs
- If a member was selected and they left, the data was not cleared visually
- If the JQuest frame was not visible, detail text was not updated properly
  for the selected quest

v1.02.39171
- In JQuest Tracker the level is replaced with the trackee name
- The tracker will stop tracking a quest after it's deleted

v1.02.39109
- Tooltips did not properly show which JQuest users were on a quest
- [#] indicator in the quest log did not properly show which JQuest users were
  on a quest
- JQuest did not properly update when a member changed from partyA to partyB
- Tabs did not properly update 'glow' when switching between tabs
- Portraits did not properly update past Party1
+ Shift-clicking a quest will track that quest

v1.02.38778
- Debug mode required an on_show event when not in a group
- (Sorry!) COMM update to 1.02 reflecting ERROR message types
- Will no longer ping same-version JQuest users
- Should no longer show 0/# for objectives of a turned-in quest
+ Shift-clicking a questname will copy it into the ChatFrame and WIM edit boxes
+ Asking for a shared quest will now notify you of the results (already completed,
  too far away, etc)

v1.38710
- Fixed spamming issue when JQuest versions are mis-matched

v1.38693
- Fixed really annoying bug that selects last quest after a leaderboard update

v1.38691
- COMM update to 1.01, reflecting some optimizations when there are 2+ other members
+ Tabs now gray out when a member has JQuest, but the wrong version (red if no JQuest)

v1.38305
- TOC Revision fix
+ Added '/jq show' to show gui

v1.37615
- Public Release

v1.3a
- 1.3 broke objective updates (oops)
- Cleaned up code for potential public release

v1.3
- Removed simple queue.  Hopefully it doesn't start d/c'ing again but so far so good
- Fixed "Comm.lua line 184: attempt to index field '?' (a nil value)" error

v1.2
- Corrected embedded libs for standalone
- Fixed line 244 error related to questlog mods

v1.1
+ Added minimap button (shows only when in party or in debug mode).

v1.0
- Internal release.
