
=======================================
Background Tasks
=======================================

Details:RegisterBackgroundTask (name, func, priority, ...)
register a function to be called while the player isn't in: combat, group, raid instances.
priority determines the interval time and support "LOW", "MEDIUM", "HIGH" values.

Details:UnregisterBackgroundTask (name)
unregister a background task.

=======================================
Item Level
=======================================

Details.ilevel:IsTrackerEnabled()
return if the item level tracker is enabled.

Details.ilevel:TrackItemLevel (bool)
enable or disable the tracker, item level tracker only work when inside a raid instance and out of combat.

Details.ilevel:GetPool()
return a table containing all tracked players:
{[GUID] = {["name"] = name-realm, ["ilvl"] = item level, ["time"] = time()}}

Details.ilevel:GetIlvl (guid)
return the item level table for the requested guid.

Details.ilevel:GetInOrder()
return a new numeric table with sorted in decreasing order:
{{name-realm, item level, time()}, {name-realm, item level, time()}}

=======================================
Raid History
=======================================

Details.storage:OpenRaidStorage()
get the table containing all stored data.

Details.storage:ListDiffs()
return a indexed table with dificulty numbers.

Details.storage:ListEncounters (diff)
return a indexed table with all encounters stored for the dificulty.

Details.storage:GetEncounterData (diff, encounterId, guildname)
return a indexed table with encounter tables playd by the guild.

Details.storage:GetPlayerData (diff, encounterId, playername)
return a indexed table with player tables for the player.

Details.storage:GetBestFromPlayer (diff, encounterId, role, playername)
return the best result from the player.

Structure:
DB = hash{
	[difficulty index] = hash{
		[encounter id] = indexed{
			{
				--encounter table
				damage = hash{
					[playername] = indexed{} --player table
				}
				...
			}--[1]
		}
	}
}

encounter table = hash {["time"] = time(), ["guild"] = guild name, ["date"] = formated date, ["healing"] = {[playername] = playertable}, ["elapsed"] = combat time, ["damage"] = {[playername] = playertable}}
player table = indexed {total done, item level, class index}

=======================================
Parser
=======================================

/dump Details.parser.original_functions
will tell all internal tokens used by the parser.

Details.parser:SetParserFunction (token, func)
replaces a original parser function with a customized one.
If no function passed, it uses the default function.


