BUGS

- color dps, even if 0 and if not yet expired
- FindInventoryItemByName(): Weird behavior of strfind(), check out
- bug: if i get aggro (unitaffectingcombat) during spellcasting, unit does not defend itself
- duel someone in the raid with a pet (NOT in party). charm him. Pet Effects will expire (warnings printed)
- if item (potion) twice on the action bar and 2nd (higher) is clicked, cooldown may show wrong potion (CH_ActionBar[] only stores FIRST potion)

WEB

- heal range checking: Friend->Misc
- buffs-tab: partybuff not in battlefield
- slash command: /clickhea [reset]   (reset added)
- list the plugins in the plugin section
- new section: "Know Conflicts" ; 
  - addon "Group Button": Middle button not usable on raid frames
  - charcoal: uses CH_Config too. Charcoal author suggested to change his part
- Gui->Tooltips : tooltip scale
- Gui->Anchors
- "Raid tooltip orientation" from GUI->Tooltip to Extended->Raid
- not cast on charmed: Friend->Misc, Enemy->Misc
- new tab: extended with needy List
- moved MT to extended tab
- moved raid to extended tab
- FAQS: add right click of standard wow gui frames (Cannot (right) click portrait of player/....)
- new tab: plugins
- Gui->Raid: Hide party in raid
- Gui->MainTank: width, height, scale
- Config->Notify: custom channel, emote/party for "Avatar hit", channels for OOM
- Config->Notify2: customChannel for notifications
- Config->Misc: Debug levels (incl description of each level)
- add new section: keys (keyboard)
- NEW description on download pages (not only healing mod!)
- explain colors of action tooltip
- screenshots of "in action" plus update of all frames
- autoshot/wand to action bar !!! (check also in Variables load and bring up a warning if this is not done)

PROJECTS

- frame-list with all "marked" units (skull, square, ...)
- make "modules" (e.g. tankassist, needylist, ...) : dynamically "bind" them into the tabs
- only call UpdateUnitEffects on demand (when IsUnitEffectedBy() or so called)
  - this will remove "lag" in huge raids, when not all raid members are shown
  - problem: HOT/buff timers need this behavior to be called frequently! -> Create queue when spell is casted and work off this queue in main loop!
  - check how long UpdateUnitEffects() really needs!
- use icons instead of letters (missing buffs, debuffs, HOT) (locate where? below each frame? in frame?) (make use of rezise, esp height (2 line icons))
- combat display: target window in middle, config if player also, config for pet, config for extra buttons, challenge: mana/combot points (bigger window?)
- horizontal layout
- buffs: make two checks for buff enabled: a) party b) solo
- "auto align" raid party/class windows: if StopMoving() and within "glue range" of another window, drag it over there
  - NOTE: not sticky, as they wont stick together. just align when "released"
  - maybe make the sticky, just see if the "parent" moves with the "child". hold down "SHIFT" to move them "unsticky" (option "sticky dragging")
  - "magnetic raid frames", not sticky!
  - check "TrinketMenu", for example: http://ui.worldofwar.net/ui.php?id=1202
- out of range indication (only if unit not in combat?) (problem: I have to target the units!) (make this VERY configable)
- make PANIC configable. Add frames to PANIC bar with 
  - range settings for emergency (CRITIC/SEVERE/...) for in combat per class! (also out of combat???) 
  - now only meta spells possible. add more?
  - DowngradeSpell NOT called for PANIC in combat spells. add it??? now handled implicitly via emergency levels (NOT finetune!):
  - option to downscale spells (now only works for out of combat) (not finetune, ONLY downscale!) (see above line)
- some way to execute a trinket BEFORE casting a certain spell (pre spell trigger, post spell trigger) (do i need clicks??? not if i check cooldown!)
- macros/scripts: make own tab, to create "named" macros (like WoW), then assign named macros to action (choose "named macro" or "quick macro")
- NeedyList
  - further optimize by recursive redocking in CH_AnchorUpdateVisibility() (see comment there)
  - simple cast (e.g. buff: left=buff,middle=buffPopup,...) (also mainTank: left=target)
  - Sort NL-buff with prios from the buff list (optional)
  - When buff goes from "warn" to missing, it briefly vanishes from the list
  - shorten anchor names ("NeedyList Heal" -> "NL Heal")
  - sort dead list by rezzers on top
  - better system for when units show up on "Heal" list. e.g. make groups: "Tanks%/Assist%/InCombat%/OutOfCombat%"
  - make difference in heal% when whole raid/group is in- or out of combat 
  - if unit leaves list, scan for a new unit to replace the one who left, to avoid "jumping" of units in list (only scan if list is full?)
- extend input for actions:
  - small button on the very right. when clicked, window with more config options shows up
  - for spells: pre-/post spell triggers (preSpell: use trinket or cast NS or the like) (postspell: eg message or macro...)
  - macros: extended input window
- range-check:
  - add option to NOT scan for range if active attack and/or wanding
  - target does not work, what else ??? (e.g. popups are manually unselected, sounds played even if masked)

TUNING

- add time checks for: UnitFrameUpdate (the drawing), UpdateUnitEffect for one/all units (how long does it need to execute)

NEXT

- CHECK: Buff expire warnings, IsValidBuffTarget(). timing here is very close, maybe use something else...
- CHECK: Sometimes i "lose" the target of the buff. then buff castTime is not refreshed
- CHECK: NurfedUI integration (promised for next release, add it to Addons-page "nurfedUI") (both ingame and web)

- UPDATE tankassist / paranoia!
- PARANOIA: make config to disable in BG

- new anchor system
  - add main anchor
  - add split anchor
  - allow docking to bottom/top, CONSIDER grow direction
  - CH_MTAnchor: does it maintain topFrame/bottomFrame??? members??  
  - enable TOP/BOTTOM in CH_Gui.lua
  - NeedyListGrowDirection changes: force redock at wipe?
  - tooltip docking: rewrite code? meaning, just dock to "normalized" anchor or anchor.bottom (free float tooltip)
  - mai kurt: tooltip

- NeedyList: check visibility or ALL anchors every n seconds (1 minute?)

- hide ClickHeal when joining a raid
- if "target" and Player/Party/Raid, show effects!
- 5 second rule: start counting when spell Finishes! (instant spells???)
- if "Use items" but nothing entered, leave screen, enter gain: BUG
- Self defense: if switch off in group, also switch off pet!!!
- check paladin buffs, on targets not in group: Might works, Wisdom does not
- SHaman weapon buff error (search for Hratgard in ClickHeal.lua)
- plugin (or add to Nutriton): feed pet
- add "main frames" and "party frames" ("Split frames") to anchor system
- anchor error (curse-board)
- BUG: check OOM notify, they spam! (no repeat)

- remove CH_Config.castSpellByNameOnSelf (also from CH_CastSpellOnFriend()!!!)

- limit "Quick" ("Slow?") to spell ranks (only cast below rank X) for mana conservation
- allow "marking" to assign to buttons (plugin?)
- if spell is NS (or friends), then call "SpellCastStop()" at the end of CH_CastSpellOnFriend/Enemy (or in the masked? check out, prefer NOT masked)
- notify: a) possibility to add spell rank optionally b) only announce if below certain health
- Chain: When assigning (two) offensive spells to a chain and then casting on e.g. "player1target", chain breaks. works fine if casting on "target" (verify)
- Action "Use Item", add field/dropdown for "default target" (others too? inventory item?)
- GetRaidTargetIndex("unit"): Display on frame???
  - make action to assign them!!!
- all internationalizations: check one letter abbrevations for: a) buffs b) effects
- GetPlayerBuffApplications(): useable for InnerFire??? YES (a,b,c=UnitBuff() too???) (Inner Fire, Ligthning Shield)
- if druid is shapeshifted, show what (bear, lion, ...) (only at friend/parrty?)
- if partypet (raidpet?) dies, effects are not cleared. check out. what about invis party succubuses (aka what if pet "vanishes"?) (dismiss succ, get imp?)
- 5 sec rule: When option changed, sliders reset to absolution positions (35px). But what if frame width changed!!!! (relDimension, parentWidth*35%) (already done???)
- Add chain to Extra (and Friend)
- Rogue/Warrior: Cooldown of spell (class-file) this esp is the GLOBAL cooldown of the instants. 
- Rogue/Warrior: defaults in class-file, incl translation
- group-buff-problem: what if "target" too low level for group buff (or in that case: any party/raidgroup member)
  - dont count them in PreferPartyBuff()!
- detect "triggered" actions and make them green in the ActionToolip (and show up flashing icon somewhere that it is usable)
  - problem: how to detect? a) make a list, 
                            b) CH_Action[spellName].isTriggered: check if action in range and not has cooldown and enough mana but still unusable -> triggered (hmm...)
- if IsCurrentAction() then also place it as cooldownIcon, if action is marked for cooldown display (time --)
- cure/decurse: Show dropdown with options: a) decursive, b) dispel magic c) cure disease (or whatever spells the clas has)
- BuffPopup: at paladins (BLESSING), use greater blessing if buff is enabled, otherwise only bless the unit
- BuffExpireMsg: Bigger Font! (customizable?)
- if shapeshifting, CH_InitSpellData() is called. is this REALLY required and WHY? (can i stop this?)
- show missing buffs/debuffs on raid members (all friendly players?), when they are targetted (in the target box) (also for party members??)
- spell target detection: Missing alot of targeting methods (TargetLastTarget, TargetNextEnemy, Prev, Friend, ...), maybe also TARGET_CHANGED event

- Plugins: add author as entry and show in pluginlist (GetAuthor()), also GetDescription(ActionID)
- MT: own settings for a) MT background (color) b) MT label formatting
- mind control: abort not detected (channel just "stops"). same problem if channeled spell and getting disrupted???? (e.g. moving?)
- downgrade healing/buffing spells not cast via ClickHeal (options) (in CastSpell/Action MASK)
- GotW/Prayer of Fort: Check for AdjustSpellRank() (already at MayReceiveBuff)
- CH_SPELL_DATA and CH_SPELL_INFO confusing: rename CH_SPELL_INFO to CH_SPELL_DATA and CH_SPELL_DATA to something distinct new
- buff timers: if player, then get data directly from the api (tooltip remaining time, UnitIsEffectedBy(buffIdx))
  - bandage, weakend soul (duration of weakend soul varies) (where to store master data? CH_DEBUFF_INFO??)
  - Problem: when casting on raid, how long can be delay between cast and scan???
  - BLESSING: would need to store UnitClass() of spellTarget at spell resolve!
- debuff at targetFrame: show applications (count)
- give tooltips on moveover of: cooldown, target debuffs, mesmerize info
- tooltip: when casting and target moves out of range, add red (oor) to the spell (which is in blue)
- show cooldown of equipped items (trinkets). check for ACTION_BAR_COOLDOWN and if event, scan equipment. 
  - WATCHOUT OUT: bag items on action bar! now handled by CH_CooldownBagUpdateCooldown()
- when casting spell on an enemy a) always attack that enemy b) only attack that enemy if not in active combat d) do nothing
   NOTE: When in active combat and targeting something else (e.g. other enemy player to cast spell upon), WoW will cancel your attack! (help?)
- attack: configure options (keep target, change target, toggle) also check if unit already in attack mode (ENTER_COMBAT???) (toggle)
- use wow party frames for clicking (PartyMemberFrame_OnClick(); ) (problem: Clickheal is hidden, what with updates of frames??? PartyFrame.xml)
- chains: check if spell had been casted successfully! and only then advance to next index
- chains: if condition is "refresh" and mob already has the buff, do not cast it!
- show selected party member (name in yellow) (plus * at end/start)
- pet spells: remember what kind of pet it was at PETSPELL (at warlock) (hunter? bird/cat/...?)
- not only show tracking buff as missing, also cast it with "rebuff" (plus make it configable to show up as missing)
  - make action (plugin) to cycle
- add channels to announce to for when u get hit (now only party)
- CH_TooltipActionsShow/..Refresh: Cache string and only update if underlaying unit changes (esp with plugin.ActionToString() it takes "long")
  - WARNING: range check on target!
- IDEA: if spell in tooltip (at target) is not on ActionBar, color it yellow (config?)
- remove targeting/clear target sound (CastSpellOnFriend/Enemy) (there is an addon that does this, old version of paranoia too)
- titan panel integration (like MetaMap). problem: need icon
- MiniMap Icon

CLASS DRUID:
- when morphed into feral, missing buffs display (or better, GROUPBUFF, BUFF) what to cast
- when morphed into feral, PANIC button functionallity
- 5 sec DRUID: gUnitManaMax: 
  - check if i can use UNIT_MANA_MAX event (when does it fire, in shapeshift too?)
  - if UNIT_MANA not firing for couple of seconds, then mana is on 100%. problem: how to detect, it does NOT fire
  - better way to calculate regain average??? what if regain changes ??? (level up, other gear, ...)
  - calculate 2 avgs regain: inCombat, outOfCombat

CLASS HUNTER:
- PetAttack: new configure: only cast mark if not cast in the last n seconds
- announce FD to party. block OOM warning when FDed
- Warning if low on ammo, color ammo red
- if sting already active, cast other shot (Configable!!!)
- Show DZ (where?)
- show pet hungry/happiness as debuff (or at pet) (both PANIC and pet frame, just as a "normal" debuff) (integrate with feed-o-matic)
- cleanup non used items on config screen: e.g. overheal
- show duration of traps (at polymorph)

CLASS MAGE
- show lack of mana agate
- conjure best mana agate

CLASS PALADIN
- warning if other pally has same aura up
- new paladin heal/damage spell (talent) (patch 1.9)
- blessing of protection: show cooldown (small orange p?) (or just in cooldown watch list)
- show debuff of devine protection/blessing of protect (check description for other spells)
- buffs: blessing of protect different duration per rank!
- divine favor/devine shield: show as buffs, with warning. put in bufflist??? or only spelllist? check out!
- paladin: casting of seal causes half a second "Freeze".

CLASS PRIEST
- add levitate to buffs (problem: component! add component to CH_BUFF_DATA, check for compo before cast, if not compo, skip casting)

CLASS SHAMAN
- Add "Wait" to totem spells. if true, wait until cooled down, if false take next totem

CLASS WARLOCK
- Show shards instead of PNC (use event BAG_UPDATE to count shards) 
- Create healthstone (best) and autotrade
- cleanup non used items: e.g. overheal
- Imps: Shape Shift, do not cast buffs on them. Show up as missing???
- if target (of pet) is feared, abort pet spellcast/attack
- intelligent cast (e.g. use lash until % mana)

PLUGIN Bandage
- bandage treshold slider (ala mana potion) (next to Action)

PLUGIN Nutrition
- option: "eat food" -> a) normal only b) buffed food too
- if you have 2 food with same healing value, take lowest stack first
- allow to give limits (next to ACTION, SLIDER) (isEditable = TEXT, DROPDOWN, SLIDER )
- best first, worst first, lowest batch first

PLUGIN ShapeShift
- add "shape to caster form" (cancel of active shapeshift) (can be used in chains to cancel current shapeshift)

HIGH

- possibility to limit PANIC healing to a) needyList, b) needyList Tanks
- make notify2 messages customizable (with meta tags)
- anchors (raid and other):if framewidth chagned, anchor width does not change (note: scale is not easy, as it "moves" the anchor relative to parent!)
- totemSet and Chain: Allow to give them a name (input box in options), then show this name in ActionTooltip
- make it possible to modify buff duration (e.g. druid set gives +50% thorns duration)
- if casting buff on 'target', who is not in raid or party and buff has party version: add config to cast party buff (or not, as it is now)
- Reset "Defaults": On Extra, MISC, cooldown spell dropdown not reset (only label)
- Thrown: cannot be triggered with "Auto Shot", have to use UseItem() or the like (TotemKiller, somewhere else?)
- colors for: SHIELD / NOTARGET / SELECTED (make own tab "Colors"?)
- CHH_Config: DropDowns use local info = {}, thus a local array. maybe make this global (gInfo) and use it everywhere, dont forget to init every time!!!
- GROUPBUFF/GROUPCURE: make an options to cure raid members or not (currently they are cured/buffed)
- missing party buffs (CH_PreferPartyBuff()) now only checks for party/raid members, not their pets!
- EFFECT_EXPIRATION: make this a config: make GOOD, HARD lower limit (0.3, 0.5??)
- CH_EffectsCleanUp(): optimize: Scan party/raid and flag the ones not found as missing. prevents from scanning whole raid every loop run
- check wowwiki Buffs/Debuffs for alot of new ideas of what to do with buffs/debuffs
- Announce HIT/OOM also to raid (incl config checkbox)
- also announce LOM (low on mana) (second slider)
- on PANIC, check if player is moving and then select instant spell (GetPlayerMapPosition)
- UnitPANIC: an action which heals/buffs/cures the unit, depending on what is needed
- What to do with debuff side effects ('Shadow Vulnerability')?
- add option to always heal units in critical state FIRST
- HealUp: Check for HoTs
- When spell has cooldown, cast QUICK (dangerous!!! at custom spells)
- allow to cast buffs on players not in group (add 'target') to buff selection
- Also color name Pink when unit is "Blessing of Protection" (or similar color?)
- Make it possible to reset all values, not just mousebutton assignments
- slider of how long a unit should stay on the blacklist
- Allow to assign maintank
  - assign "target color" to main tank (target which is targetted by tank in that color, not in partyN color)
- Own section/tab for pet?
- check range on heal metaspells (and panic). reason: U can detect this BEFORE u cast and can still chose a different target
- weapon buff: make only one weapon buff active in list (if one selected, disable the other)

MEDIUM

- target of target (of party/raid member)
- if in shapeshift/shadowform and casting healspell, autocancel shapeshift/shadow (does not work, check out further)
- PANIC missing buffs indication only works for party. should work for raid too (problem: have to scan WHOLE raid)
- How exactly is this with high level bandages and item level? can apply when i have level or can apply to level???
- use darkblue when combat regen, use lighterblue when normal/outofcombat regain (or other way around)
- show spell icon next to spellName in spell assigns
- allow to drag spell to spellname box in config
- allow to drag inventory item to name box in config (at UseBagItem)
- show "weakened soul" as debuff on enemy (indication for priest shield)
- overhealing: base % values on class / target (boss/elite/normal)
- if healer OOM, /whisper backhealer to take over (+ option to setup backup healer or just tell every healer in group/raid?)

LOW

- use different (number) font for numbers (mana, dps)
- Buff Tab: new config "show missing buffs": if disabled, missing buffs are not displayed (on unit and PANIC), make 2 configs?
- IDEA: if i cannot determine spellrank for mesmerize, then check with playerlevel what rank he can cast in CH_MesmerizeUpdateUnit()
- config to display class of player in target always/enemyPlayer/never
- make a checkbox at mousebutton assign, if action == SPELL then show cooldown if box is clicked
- make it possible to give slotName for "use item" for inventory slots (e.g. headSlot)
- DPS calculation: do not consider 0 if at the end (e.g. at falling damage). 5 5 0 0 0 = (5+5)/2 and not (5+5+0+0+0)/5 (does this make sense?)
- When using PANIC and could not cast spell (ie unit added to blacklist), automatically take next best.
   this also involves to return a sorted list by CHL_NeediestHeal() (how to detect BEFORE cast/target???)
