-----------------------------------------------------------------------
-- Upvalued Lua API.
-----------------------------------------------------------------------
local _G = getfenv(0)
local string = _G.string
local format = string.format

-- WoW
local function C_Map_GetAreaInfo(id)
	local d = C_Map.GetAreaInfo(id)
	return d or ("GetAreaInfo"..id)
end

-- ----------------------------------------------------------------------------
-- AddOn namespace.
-- ----------------------------------------------------------------------------
local addonname, private = ...
local AtlasLoot = _G.AtlasLoot
if AtlasLoot:GameVersion_LT(AtlasLoot.BC_VERSION_NUM) then return end
local data = AtlasLoot.ItemDB:Add(addonname, 1, AtlasLoot.BC_VERSION_NUM)

local AL = AtlasLoot.Locales
local ALIL = AtlasLoot.IngameLocales

local GetForVersion = AtlasLoot.ReturnForGameVersion

local NORMAL_DIFF = data:AddDifficulty("NORMAL", nil, nil, nil, true)
local HEROIC_DIFF = data:AddDifficulty("HEROIC", nil, nil, nil, true)
local RAID10_DIFF = data:AddDifficulty("10RAID")
local RAID10H_DIFF = data:AddDifficulty("10RAIDH")
local RAID25_DIFF = data:AddDifficulty("25RAID")
local RAID25H_DIFF = data:AddDifficulty("25RAIDH")

local VENDOR_DIFF = data:AddDifficulty(AL["Vendor"], "vendor", 0)
local T10_1_DIFF = data:AddDifficulty(AL["10H / 25 / 25H"], "T10_1", 0)
local T10_2_DIFF = data:AddDifficulty(AL["25 Raid Heroic"], "T10_2", 0)

local ALLIANCE_DIFF, HORDE_DIFF, LOAD_DIFF
if UnitFactionGroup("player") == "Horde" then
	HORDE_DIFF = data:AddDifficulty(FACTION_HORDE, "horde", nil, 1)
	ALLIANCE_DIFF = data:AddDifficulty(FACTION_ALLIANCE, "alliance", nil, 1)
	LOAD_DIFF = HORDE_DIFF
else
	ALLIANCE_DIFF = data:AddDifficulty(FACTION_ALLIANCE, "alliance", nil, 1)
	HORDE_DIFF = data:AddDifficulty(FACTION_HORDE, "horde", nil, 1)
	LOAD_DIFF = ALLIANCE_DIFF
end

local NORMAL_ITTYPE = data:AddItemTableType("Item", "Item")
local SET_ITTYPE = data:AddItemTableType("Set", "Item")

local QUEST_EXTRA_ITTYPE = data:AddExtraItemTableType("Quest")
local PRICE_EXTRA_ITTYPE = data:AddExtraItemTableType("Price")
local SET_EXTRA_ITTYPE = data:AddExtraItemTableType("Set")

local VENDOR_CONTENT = data:AddContentType(AL["Vendor"], ATLASLOOT_DUNGEON_COLOR)
local SET_CONTENT = data:AddContentType(AL["Sets"], ATLASLOOT_PVP_COLOR)
local COLLECTIONS_CONTENT = data:AddContentType(AL["Collections"], ATLASLOOT_COLLECTIONS_COLOR)
local WORLD_EVENT_CONTENT = data:AddContentType(AL["World Events"], ATLASLOOT_SEASONALEVENTS_COLOR)

-- colors
local BLUE = "|cff6666ff%s|r"
--local GREY = "|cff999999%s|r"
local GREEN = "|cff66cc33%s|r"
local _RED = "|cffcc6666%s|r"
local PURPLE = "|cff9900ff%s|r"
--local WHIT = "|cffffffff%s|r"


data["BadgeofJustice"] = {
	name = format(AL["'%s' Vendor"], AL["Badge of Justice"]),
	ContentType = VENDOR_CONTENT,
	TableType = NORMAL_ITTYPE,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	items = {
		{
			name = ALIL["Armor"].." - "..ALIL["Cloth"],
			[NORMAL_DIFF] = {
				{ 1, 32089 }, -- Mana-Binders Cowl
				{ 2, 32090 }, -- Cowl of Naaru Blessings

				{ 4, 30762 }, -- Infernoweave Robe
				{ 5, 30764 }, -- Infernoweave Gloves
				{ 6, 30761 }, -- Infernoweave Leggings
				{ 7, 30763 }, -- Infernoweave Boots
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Leather"],
			[NORMAL_DIFF] = {
				{ 1, 32087 }, -- Mask of the Deceiver
				{ 2, 32088 }, -- Cowl of Beastly Rage

				{ 4, 30776 }, -- Inferno Hardened Chestguard
				{ 5, 30780 }, -- Inferno Hardened Gloves
				{ 6, 30778 }, -- Inferno Hardened Leggings
				{ 7, 30779 }, -- Inferno Hardened Boots
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Mail"],
			[NORMAL_DIFF] = {
				{ 1, 32085 }, -- Warpstalker Helm
				{ 2, 32086 }, -- Storm Master's Helmet

				{ 4, 30773 }, -- Inferno Forged Hauberk
				{ 5, 30774 }, -- Inferno Forged Gloves
				{ 6, 30770 }, -- Inferno Forged Boots
				{ 7, 30772 }, -- Inferno Forged Leggings
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Plate"],
			[NORMAL_DIFF] = {
				{ 1, 32083 }, -- Faceguard of Determination
				{ 2, 32084 }, -- Helmet of the Steadfast Champion

				{ 4, 30769, }, -- Inferno Tempered Chestguard
				{ 5, 30767, }, -- Inferno Tempered Gauntlets
				{ 6, 30766 }, -- Inferno Tempered Leggings
				{ 7, 30768 }, -- Inferno Tempered Boots
			},
		},
		{
			name = ALIL["Off Hand"],
			[NORMAL_DIFF] = {
				{ 1,  29266 }, -- Azure-Shield of Coldarra
				{ 2,  29267 }, -- Light-Bearer's Faith Shield
				{ 3,  29268 }, -- Mazthoril Honor Shield
				{ 5,  29269 }, -- Sapphiron's Wing Bone
				{ 6,  29270 }, -- Flametongue Seal
				{ 7,  29271 }, -- Talisman of Kalecgos
				{ 8,  29272 }, -- Orb of the Soul-Eater
				{ 9,  29273 }, -- Khadgar's Knapsack
				{ 10, 29274 }, -- Tears of Heaven
				{ 16, 29275 }, -- Searing Sunblade
			},
		},
		{
			name = ALIL["Neck"],
			[NORMAL_DIFF] = {
				{ 1, 29368 }, -- Manasurge Pendant
				{ 2, 29374 }, -- Necklace of Eternal Hope
				{ 3, 29381 }, -- Choker of Vile Intent
				{ 4, 29386 }, -- Necklace of the Juggernaut
			},
		},
		{
			name = ALIL["Cloak"],
			[NORMAL_DIFF] = {
				{ 1, 29369 }, -- Shawl of Shifting Probabilities
				{ 2, 29375 }, -- Bishop's Cloak
				{ 3, 29382 }, -- Blood Knight War Cloak
				{ 4, 29385 }, -- Farstrider Defender's Cloak
			},
		},
		{
			name = ALIL["Finger"],
			[NORMAL_DIFF] = {
				{ 1, 29367 }, -- Ring of Cryptic Dreams
				{ 2, 29373 }, -- Band of Halos
				{ 3, 29379 }, -- Ring of Arathi Warlords
				{ 4, 29384 }, -- Ring of Unyielding Force
			},
		},
		{
			name = ALIL["Trinket"],
			[NORMAL_DIFF] = {
				{ 1, 29370 }, -- Icon of the Silver Crescent
				{ 2, 29376 }, -- Essence of the Martyr
				{ 3, 29383 }, -- Bloodlust Brooch
				{ 4, 29387 }, -- Gnomeregan Auto-Blocker 600
			},
		},
		{
			name = ALIL["Relic"],
			[NORMAL_DIFF] = {
				{ 1, 29388 }, -- Libram of Repentance
				{ 2, 29389 }, -- Totem of the Pulsing Earth
				{ 3, 29390 }, -- Everbloom Idol
			},
		},
	}
}

data["BadgeofJustice4"] = {
	name = format(AL["'%s %s' Vendor"], AL["Badge of Justice"], "P4"),
	ContentType = VENDOR_CONTENT,
	TableType = NORMAL_ITTYPE,
	ContentPhaseBC = 4,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	items = {
		{
			name = ALIL["Armor"].." - "..ALIL["Cloth"],
			[NORMAL_DIFF] = {
				{ 1, 33588 },
				{ 2, 33586 },
				{ 3, 33291 },
				{ 4, 33584 },
				{ 6, 33589 },
				{ 7, 33587 },
				{ 8, 33585 },
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Leather"],
			[NORMAL_DIFF] = {
				{ 1,  33972 },
				{ 2,  33973 },
				{ 3,  33566 },
				{ 4,  33578 },
				{ 5,  33974 },
				{ 6,  33559 },
				{ 7,  33577 },

				{ 9,  33287 },
				{ 10, 33557 },
				{ 11, 33552 },

				{ 16, 33579 }, -- bonus armor
				{ 17, 33580 }, -- bonus armor
				{ 18, 33583 }, -- bonus armor
				{ 19, 33582 }, -- bonus armor

				{ 21, 33540 },
				{ 22, 33539 },
				{ 23, 33538 },
				{ 24, 33222 },
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Mail"],
			[NORMAL_DIFF] = {
				{ 1,  33970 },
				{ 2,  33965 },
				{ 3,  33535 },
				{ 4,  33534 },
				{ 5,  33536 },
				{ 6,  33537 },

				{ 8,  33529 },
				{ 9,  33528 },
				{ 10, 33280 },
				{ 11, 33527 },

				{ 16, 33532 },
				{ 17, 33531 },
				{ 18, 33386 },
				{ 19, 33530 },
				{ 20, 33324 },
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Plate"],
			[NORMAL_DIFF] = {
				{ 1,  33810 },
				{ 2,  33514 },
				{ 3,  33513 },
				{ 4,  33331 },
				{ 5,  33512 },
				{ 6,  33501 },

				{ 8,  33520 },
				{ 9,  33519 },
				{ 10, 33518 },
				{ 11, 33207 },

				{ 16, 33522 },
				{ 17, 33516 },
				{ 18, 33517 },
				{ 19, 33279 },
				{ 20, 33524 },
				{ 21, 33515 },
				{ 22, 33523 },
			},
		},
		{
			name = ALIL["Off Hand"],
			[NORMAL_DIFF] = {
				{ 1, 33334 },
				{ 2, 33325 },
			},
		},
		{
			name = ALIL["Neck"],
			[NORMAL_DIFF] = {
				{ 1, 33296 },
			},
		},
		{
			name = ALIL["등"],
			[NORMAL_DIFF] = {
				{ 1, 33593 },
				{ 2, 35321 },
				{ 3, 33304 },
				{ 4, 35324 },
				{ 5, 33484 },
				{ 6, 33333 },
			},
		},
		{
			name = ALIL["Trinket"],
			[NORMAL_DIFF] = {
				{ 1, 35326 },
				{ 2, 34049 },
				{ 3, 34162 },
				{ 4, 34163 },
				{ 5, 33832 },
				{ 6, 34050 },
			},
		},
		{
			name = ALIL["Relic"],
			[NORMAL_DIFF] = {
				{ 1,  "INV_Box_01", nil, AL["Idols"] },
				{ 2,  33510 },
				{ 3,  33509 },
				{ 4,  33508 },
				{ 6,  "INV_Box_01", nil, AL["Librams"] },
				{ 7,  33503 }, -- Libram of Divine Judgement
				{ 8,  33502 }, -- Libram of Mending
				{ 9,  33504 }, -- Libram of Divine Purpose
				{ 16, "INV_Box_01", nil, AL["Totems"] },
				{ 17, 33506 },
				{ 18, 33507 },
				{ 19, 33505 },
			},
		},
		{
			name = ALIL["마법봉"],
			[NORMAL_DIFF] = {
				{ 1, 33192 }, -- Carved Witch Doctor Stick
			},
		},
	}
}

--copy/paste from Rootkit for P5 badge items - github issue #199
data["BadgeofJusticeP5"] = {
	name = format(AL["'%s %s' Vendor"], AL["Badge of Justice"], "P5"),
	ContentType = VENDOR_CONTENT,
	TableType = NORMAL_ITTYPE,
	ContentPhaseBC = 5,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	items = {
		{
			name = ALIL["Armor"].." - "..ALIL["Cloth"],
			[NORMAL_DIFF] = {
				{ 1,  34926 },
				{ 2,  34924 },
				{ 3,  34925 },
				{ 5,  34919 },
				{ 6,  34917 },
				{ 7,  34918 },
				{ 9,  34938 },
				{ 10, 34936 },
				{ 11, 34937 },
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Leather"],
			[NORMAL_DIFF] = {
				{ 1,  34911 }, --bonus armor
				{ 2,  34906 }, --bonus armor
				{ 3,  34910 }, --bonus armor
				{ 5,  34929 }, -- AP
				{ 6,  34927 }, -- AP
				{ 7,  34928 }, --AP
				{ 16, 34902 }, -- healing
				{ 17, 34901 }, -- healing
				{ 18, 34900 }, -- healing
				{ 20, 34904 }, -- SP
				{ 21, 34903 }, --SP
				{ 22, 34905 }, -- SP
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Mail"],
			[NORMAL_DIFF] = {
				{ 1,  34932 }, -- Heal
				{ 2,  34931 }, -- heal
				{ 3,  34930 }, -- Heal
				{ 5,  34916 }, -- AP
				{ 6,  34912 }, -- AP
				{ 7,  34914 }, -- AP
				{ 9,  34935 }, -- SP
				{ 10, 34934 }, -- SP
				{ 11, 34933 }, -- SP
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Plate"],
			[NORMAL_DIFF] = {
				{ 1,  34947 }, -- DEF + SP
				{ 2,  34945 }, -- Def + SP
				{ 3,  34946 }, -- DEF + SP
				{ 5,  34941 }, -- Def + Expertise
				{ 6,  34939 }, -- Def
				{ 7,  34940 }, -- Def + Expertise
				{ 16, 34923 }, -- Healing
				{ 17, 34921 }, -- Healing
				{ 18, 34922 }, -- Healing
				{ 20, 34944 }, -- STR + Haste
				{ 21, 34942 }, -- STR + Haste
				{ 22, 34943 }, -- STR + Haste
			},
		},
		{
			name = ALIL["Weapon"],
			[NORMAL_DIFF] = {
				{ 1,  34894 }, -- 1H Dagger
				{ 2,  34949 }, -- OH Dagger
				{ 3,  34952 }, -- OH Dagger
				{ 4,  34950 }, -- OH Fist 1.5
				{ 6,  34893 }, -- MH Fist 2.5
				{ 7,  34951 }, -- OH - Fist 2.5
				{ 16, 34891 }, -- 2H Axe
				{ 18, 34892 }, -- Crossbow
				{ 20, 34898 }, -- Staff AP
				{ 22, 34895 }, -- MH Dagger - SP
				{ 24, 34896 }, -- MH Mace - Healing
			},
		},
		{
			name = ALIL["Finger"],
			[NORMAL_DIFF] = {
				{ 1, 34887 },
				{ 2, 34890 },
				{ 3, 34889 },
				{ 4, 34888 },
			},
		},
		{
			name = ALIL["보석"],
			[NORMAL_DIFF] = {
				{ 1, 32228 },
				{ 2, 32249 },
				{ 3, 32231 },
				{ 4, 32230 },
				{ 5, 32227 },
				{ 6, 32229 },
			},
		},
	}
}

data["BCCSunmote"] = {
	name = format(AL["'%s' Vendor"], AL["Sunmote"]),
	ContentType = VENDOR_CONTENT,
	TableType = NORMAL_ITTYPE,
	ContentPhaseBC = 5,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	items = {
		{
			name = ALIL["Armor"].." - "..ALIL["Cloth"],
			[NORMAL_DIFF] = {
				{ 1, 34405 }, -- Helm of Arcane Purity
				{ 3, 34393 }, -- Shoulderpads of Knowledge's Pursuit
				{ 5, 34399 }, -- Robes of Ghostly Hatred
				{ 7, 34406 }, -- Gloves of Tyri's Power
				{ 9, 34386 }, -- Pantaloons of Growing Strife
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Leather"],
			[NORMAL_DIFF] = {
				-- int
				{ 1,  34403 }, -- Cover of Ursoc the Mighty
				{ 3,  34391 }, -- Spaulders of Devastation
				{ 5,  34398 }, -- Utopian Tunic of Elune
				{ 7,  34407 }, -- Tranquil Moonlight Wraps
				{ 9,  34384 }, -- Breeches of Natural Splendor
				-- agi
				{ 16, 34404 }, -- Mask of the Fury Hunter
				{ 18, 34397 }, -- Bladed Chaos Tunic
				{ 20, 34392 }, -- Demontooth Shoulderpads
				{ 22, 34408 }, -- Gloves of the Forest Drifter
				{ 24, 34385 }, -- Leggings of the Immortal Beast
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Mail"],
			[NORMAL_DIFF] = {
				{ 1, 34402 }, -- Cover of Ursoc the Mighty
				{ 3, 34396 }, -- Garments of Crashing Shores
				{ 5, 34390 }, -- Erupting Epaulets
				{ 7, 34409 }, -- Gauntlets of the Ancient Frostwolf
				{ 9, 34383 }, -- Kilt of Spiritual Reconstruction
			},
		},
		{
			name = ALIL["Armor"].." - "..ALIL["Plate"],
			[NORMAL_DIFF] = {
				-- int
				{ 1,  34401 }, -- Helm of Uther's Resolve
				{ 3,  34389 }, -- Spaulders of the Thalassian Defender
				{ 5,  34395 }, -- Noble Judicator's Chestguard
				{ 7,  34382 }, -- Judicator's Legguards
				-- stam
				{ 16, 34400 }, -- Crown of Dath'Remar
				{ 18, 34388 }, -- Pauldrons of Berserking
				{ 20, 34394 }, -- Breastplate of Agony's Aversion
				{ 22, 34381 }, -- Felstrength Legplates
			},
		},
	}
}

data["WorldEpicsBC"] = {
	name = AL["World Epics"],
	ContentType = COLLECTIONS_CONTENT,
	LoadDifficulty = LOAD_DIFF,
	TableType = NORMAL_ITTYPE,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	CorrespondingFields = private.WORLD_EPICS,
	items = {
		{
			name = AL["One-Handed Weapons"],
			[NORMAL_ITTYPE] = {
				{ 1,  31331 }, -- The Night Blade
				{ 3,  31332 }, -- Blinkstrike
				{ 16, 31336 }, -- Blade of Wizardry
				{ 18, 31342 }, -- The Ancient Scepter of Sue-Min
			}
		},
		{
			name = AL["Two-Handed Weapons"],
			[NORMAL_ITTYPE] = {
				{ 1,  31318 }, -- Singing Crystal Axe
				{ 16, 31322 }, -- The Hammer of Destiny
				{ 18, 31334 }, -- Staff of Natural Fury
			}
		},
		{
			name = AL["Ranged Weapons"],
			[NORMAL_ITTYPE] = {
				{ 1,  31323 }, -- Don Santos' Famous Hunting Rifle
				{ 16, 34622 }, -- Spinesever
			}
		},
		{
			name = ALIL["Trinket"].." & "..ALIL["Finger"].." & "..ALIL["Neck"],
			[NORMAL_ITTYPE] = {
				{ 1,  31339 }, -- Lola's Eve
				{ 3,  31319 }, -- Band of Impenetrable Defenses
				{ 4,  31326 }, -- Truestrike Ring
				{ 16, 31338 }, -- Charlotte's Ivy
				{ 18, 31321 }, -- Choker of Repentance
			}
		},
		{
			name = AL["Equip"],
			[NORMAL_ITTYPE] = {
				{ 1,  31329 }, -- Lifegiving Cloak
				{ 3,  31340 }, -- Will of Edward the Odd
				{ 4,  31343 }, -- Kamaei's Cerulean Skirt
				{ 6,  31333 }, -- The Night Watchman
				{ 7,  31335 }, -- Pants of Living Growth
				{ 18, 31330 }, -- Lightning Crown
				{ 19, 31328 }, -- Leggings of Beast Mastery
				{ 21, 31320 }, -- Chestguard of Exile
			},
		},
	},
}

data["MountsBC"] = {
	name = ALIL["Mounts"],
	ContentType = COLLECTIONS_CONTENT,
	LoadDifficulty = LOAD_DIFF,
	TableType = NORMAL_ITTYPE,
	CorrespondingFields = private.MOUNTS,
	items = {
		{
			name = AL["Faction Mounts"],
			[ALLIANCE_DIFF] = {
				{ 5,  29745 }, -- Great Blue Elekk
				{ 6,  29746 }, -- Great Green Elekk
				{ 7,  29747 }, -- Great Purple Elekk
				{ 20, 28481 }, -- Brown Elekk
				{ 21, 29743 }, -- Purple Elekk
				{ 22, 29744 }, -- Gray Elekk
				{ 9,  25527 }, -- Swift Red Gryphon
				{ 10, 25528 }, -- Swift Green Gryphon
				{ 11, 25529 }, -- Swift Purple Gryphon
				{ 12, 25473 }, -- Swift Blue Gryphon
				{ 24, 25470 }, -- Golden Gryphon
				{ 25, 25471 }, -- Ebon Gryphon
				{ 26, 25472 }, -- Snowy Gryphon
			},
			[HORDE_DIFF] = {
				{ 1,  29223 }, -- Swift Green Hawkstrider
				{ 2,  29224 }, -- Swift Purple Hawkstrider
				{ 3,  28936 }, -- Swift Pink Hawkstrider
				{ 16, 29220 }, -- Blue Hawkstrider
				{ 17, 29221 }, -- Black Hawkstrider
				{ 18, 29222 }, -- Purple Hawkstrider
				{ 19, 28927 }, -- Red Hawkstrider
				{ 6,  25531 }, -- Swift Green Windrider
				{ 7,  25532 }, -- Swift Yellow Windrider
				{ 8,  25533 }, -- Swift Purple Windrider
				{ 9,  25477 }, -- Swift Red Windrider
				{ 21, 25474 }, -- Tawny Windrider
				{ 22, 25475 }, -- Blue Windrider
				{ 23, 25476 }, -- Green Windrider
			},
		},
		{
			name = AL["PvP"],
			[ALLIANCE_DIFF] = {
				{ 1,  35906 }, -- Reins of the Black War Elekk
				{ 2,  29228 }, -- Reins of the Dark War Talbuk
				{ 3,  28915 }, -- Reins of the Dark Riding Talbuk
				{ 16, 30609 }, -- Swift Nether Drake
				{ 17, 34092 }, -- Merciless Nether Drake
				{ 18, 37676 }, -- Vengeful Nether Drake
				{ 19, 43516 }, -- Brutal Nether Drake
			},
			[HORDE_DIFF] = {
				{ 1,  34129 }, -- Swift Warstrider
				{ 2,  29228 }, -- Reins of the Dark War Talbuk
				{ 3,  28915 }, -- Reins of the Dark Riding Talbuk
				{ 16, 30609 }, -- Swift Nether Drake
				{ 17, 34092 }, -- Merciless Nether Drake
				{ 18, 37676 }, -- Vengeful Nether Drake
				{ 19, 43516 }, -- Brutal Nether Drake
			},
		},
		{
			name = AL["Drops"],
			[NORMAL_DIFF] = {
				{ 1,  32768 }, -- Reins of the Raven Lord
				{ 3,  33809 }, -- Amani War Bear
				{ 16, 30480 }, -- Fiery Warhorse's Reins
				{ 18, 32458 }, -- Ashes of Al'ar
			},
		},
		{
			name = AL["Reputation"],
			[ALLIANCE_DIFF] = {
				{ 1,  29227 }, -- Reins of the Cobalt War Talbuk
				{ 2,  29229 }, -- Reins of the Silver War Talbuk
				{ 3,  29230 }, -- Reins of the Tan War Talbuk
				{ 4,  29231 }, -- Reins of the White War Talbuk
				{ 5,  31830 }, -- Reins of the Cobalt Riding Talbuk
				{ 6,  31832 }, -- Reins of the Silver Riding Talbuk
				{ 7,  31834 }, -- Reins of the Tan Riding Talbuk
				{ 8,  31836 }, -- Reins of the White Riding Talbuk
				{ 16, 33999 }, -- Cenarion War Hippogryph
				{ 18, 32319 }, -- Blue Riding Nether Ray
				{ 19, 32314 }, -- Green Riding Nether Ray
				{ 20, 32317 }, -- Red Riding Nether Ray
				{ 21, 32316 }, -- Purple Riding Nether Ray
				{ 22, 32318 }, -- Silver Riding Nether Ray
				{ 24, 32858 }, -- Reins of the Azure Netherwing Drake
				{ 25, 32859 }, -- Reins of the Cobalt Netherwing Drake
				{ 26, 32857 }, -- Reins of the Onyx Netherwing Drake
				{ 27, 32860 }, -- Reins of the Purple Netherwing Drake
				{ 28, 32861 }, -- Reins of the Veridian Netherwing Drake
				{ 29, 32862 }, -- Reins of the Violet Netherwing Drake
			},
			[HORDE_DIFF] = {
				{ 1,  29102 }, -- Reins of the Cobalt War Talbuk
				{ 2,  29104 }, -- Reins of the Silver War Talbuk
				{ 3,  29105 }, -- Reins of the Tan War Talbuk
				{ 4,  29103 }, -- Reins of the White War Talbuk
				{ 5,  31829 }, -- Reins of the Cobalt Riding Talbuk
				{ 6,  31831 }, -- Reins of the Silver Riding Talbuk
				{ 7,  31833 }, -- Reins of the Tan Riding Talbuk
				{ 8,  31835 }, -- Reins of the White Riding Talbuk
				{ 9,  31836 }, -- Reins of the White Riding Talbuk
				{ 16, 33999 }, -- Cenarion War Hippogryph
				{ 18, 32319 }, -- Blue Riding Nether Ray
				{ 19, 32314 }, -- Green Riding Nether Ray
				{ 20, 32317 }, -- Red Riding Nether Ray
				{ 21, 32316 }, -- Purple Riding Nether Ray
				{ 22, 32318 }, -- Silver Riding Nether Ray
				{ 24, 32858 }, -- Reins of the Azure Netherwing Drake
				{ 25, 32859 }, -- Reins of the Cobalt Netherwing Drake
				{ 26, 32857 }, -- Reins of the Onyx Netherwing Drake
				{ 27, 32860 }, -- Reins of the Purple Netherwing Drake
				{ 28, 32861 }, -- Reins of the Veridian Netherwing Drake
				{ 29, 32862 }, -- Reins of the Violet Netherwing Drake
			},
		},
		{
			name = AL["Crafting"],
			[NORMAL_DIFF] = {
				{ 1, 34061 }, -- Turbo-Charged Flying Machine Control
				{ 2, 34060 }, -- Flying Machine Control
			},
		},
		{
			name = AL["Special"],
			[NORMAL_DIFF] = {
				{ 1,  33225 }, -- Reins of the Swift Spectral Tiger
				{ 2,  33224 }, -- Reins of the Spectral Tiger
				{ 4,  38576 }, -- Big Battle Bear
				{ 16, 35226 }, -- X-51 Nether-Rocket X-TREME
				{ 17, 35225 }, -- X-51 Nether-Rocket
			},
		},
	},
}

data["CompanionsBC"] = {
	name = ALIL["Companions"],
	ContentType = COLLECTIONS_CONTENT,
	LoadDifficulty = LOAD_DIFF,
	TableType = NORMAL_ITTYPE,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	CorrespondingFields = private.COMPANIONS,
	items = {
		{
			name = AL["Drops"],
			[NORMAL_DIFF] = {
				{ 1, 33993 }, -- Mojo
				{ 3, 35504 }, -- Phoenix Hatchling
				{ 5, 34535 }, -- Azure Whelpling
				{ 6, 29960 }, -- Captured Firefly
			},
		},
		{
			name = AL["Quest"],
			[NORMAL_DIFF] = {
				{ 1, 31760 }, -- Miniwing
			},
		},
		{
			name = AL["Vendor"],
			[NORMAL_DIFF] = {
				{ 1,  34478 }, -- Tiny Sporebat
				{ 2,  38628 }, -- Nether Ray Fry
				{ 3,  29363 }, -- Mana Wyrmling
				{ 4,  29364 }, -- Brown Rabbit Crate
				{ 6,  29903 }, -- Yellow Moth Egg
				{ 7,  29904 }, -- White Moth Egg
				{ 8,  29902 }, -- Red Moth Egg
				{ 9,  29901 }, -- Blue Moth Egg
				{ 16, 29957 }, -- Silver Dragonhawk Hatchling
				{ 17, 29956 }, -- Red Dragonhawk Hatchling
				{ 18, 29953 }, -- Golden Dragonhawk Hatchling
				{ 19, 29958 }, -- Blue Dragonhawk Hatchling
			},
		},
		{
			name = AL["World Events"],
			[NORMAL_DIFF] = {
				{ 1,  34425 }, -- Clockwork Rocket Bot
				{ 3,  34955 }, -- Scorched Stone
				{ 5,  32233 }, -- Wolpertinger's Tankard
				{ 7,  33154 }, -- Sinister Squashling
				{ 16, 32617 }, -- Sleepy Willy
				{ 17, 32622 }, -- Elekk Training Collar
				{ 18, 32616 }, -- Egbert's Egg
			},
		},
		{
			name = ALIL["Fishing"],
			[NORMAL_DIFF] = {
				{ 1, 35350 }, -- Chuck's Bucket
				{ 2, 33818 }, -- Muckbreath's Bucket
				{ 3, 35349 }, -- Snarly's Bucket
				{ 4, 33816 }, -- Toothy's Bucket
				{ 6, 27445 }, -- Magical Crawdad Box
			},
		},
		{ -- Unobtainable
			name = AL["Unobtainable"],
			[NORMAL_DIFF] = {
				{ 1,  34493 }, -- Dragon Kite
				{ 2,  32588 }, -- Banana Charm
				{ 3,  38050 }, -- Soul-Trader Beacon
				{ 4,  34492 }, -- Rocket Chicken
				{ 6,  34519 }, -- Silver Pig Coin
				{ 7,  34518 }, -- Golden Pig Coin
				{ 8,  32498 }, -- Fortune Coin
				{ 9,  32465 }, -- Fortune Coin
				{ 16, 31665 }, -- Toy RC Mortar Tank
				{ 18, 37297 }, -- Gold Medallion
				{ 19, 37298 }, -- Competitor's Souvenir
				{ 21, 39656 }, -- Tyrael's Hilt
				{ 23, 25535 }, -- Netherwhelp's Collar
				{ 24, 30360 }, -- Lurky's Egg
			},
		},
	},
}

data["TabardsBC"] = {
	name = ALIL["Tabard"],
	ContentType = COLLECTIONS_CONTENT,
	LoadDifficulty = LOAD_DIFF,
	TableType = NORMAL_ITTYPE,
	CorrespondingFields = private.TABARDS,
	items = {
		{
			name = AL["Factions"],
			CoinTexture = "Reputation",
			[ALLIANCE_DIFF] = {
				{ 1,  31779 }, -- Aldor Tabard
				{ 2,  31780 }, -- Scryers Tabard
				{ 4,  31804 }, -- Cenarion Expedition Tabard
				{ 5,  31776 }, -- Consortium Tabard
				{ 6,  31777 }, -- Keepers of Time Tabard
				{ 7,  31778 }, -- Lower City Tabard
				{ 8,  32828 }, -- Ogri'la Tabard
				{ 9,  31781 }, -- Sha'tar Tabard
				{ 10, 32445 }, -- Skyguard Tabard
				{ 11, 31775 }, -- Sporeggar Tabard
				{ 12, 35221 }, -- Tabard of the Shattered Sun
				{ 16, 23999 }, -- Honor Hold Tabard
				{ 17, 31774 }, -- Honor Hold Tabard
			},
			[HORDE_DIFF] = {
				GetItemsFromDiff = ALLIANCE_DIFF,
				{ 1,  24004 }, -- Thrallmar Tabard
				{ 16, 31773 }, -- Mag'har Tabard
			},
		},
		{ -- Unobtainable Tabards
			name = AL["Unobtainable Tabards"],
			[NORMAL_DIFF] = {
				{ 1,  36941 }, -- Competitor's Tabard
				{ 16, 28788 }, -- Tabard of the Protector
			},
		},
	},
}

data["LegendarysBC"] = {
	name = AL["Legendarys"],
	ContentType = COLLECTIONS_CONTENT,
	LoadDifficulty = LOAD_DIFF,
	TableType = NORMAL_ITTYPE,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	CorrespondingFields = private.LEGENDARYS,
	items = {
		{
			name = AL["Legendarys"],
			[NORMAL_ITTYPE] = {
				{ 1,  34334 }, -- Thori'dal, the Stars' Fury

				{ 16, 32837 }, -- Warglaive of Azzinoth
				{ 17, 32838 }, -- Warglaive of Azzinoth
			},
		},
		{
			MapID = 3845,
			[NORMAL_ITTYPE] = {
				{ 1, 30312 }, -- Infinity Blade
				{ 2, 30311 }, -- Warp Slicer
				{ 3, 30317 }, -- Cosmic Infuser
				{ 4, 30316 }, -- Devastation
				{ 5, 30313 }, -- Staff of Disintegration
				{ 6, 30314 }, -- Phaseshift Bulwark
				{ 7, 30318 }, -- Netherstrand Longbow
				{ 8, 30319 }, -- Nether Spike
			},
		},
	},
}

data["ChildrensWeekBC"] = {
	name = AL["Childrens Week"],
	ContentType = WORLD_EVENT_CONTENT,
	LoadDifficulty = NORMAL_DIFF,
	TableType = NORMAL_ITTYPE,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	CorrespondingFields = private.CHILDRENS_WEEK,
	items = {
		{ -- ChildrensWeek
			name = AL["Childrens Week"],
			[NORMAL_DIFF] = {
				{ 1, 23007 }, -- Piglet's Collar
				{ 2, 23015 }, -- Rat Cage
				{ 3, 23002 }, -- Turtle Box
				{ 4, 23022 }, -- Curmudgeon's Payoff
				{ 6, 32616 }, -- Egbert's Egg
				{ 7, 32617 }, -- Sleepy Willy
				{ 8, 32622 }, -- Elekk Training Collar
			},
		},
	},
}

data["MidsummerFestivalBC"] = {
	name = AL["Midsummer Festival"],
	ContentType = WORLD_EVENT_CONTENT,
	LoadDifficulty = NORMAL_DIFF,
	TableType = NORMAL_ITTYPE,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	CorrespondingFields = private.MIDSUMMER_FESTIVAL,
	items = {
		{ -- MidsummerFestivalTBC
			name = AL["Midsummer Festival"],
			[NORMAL_DIFF] = {
				{ 1,  23083 }, -- Captured Flame
				{ 2,  34686 }, -- Brazier of Dancing Flames
				{ 4,  23324 }, -- Mantle of the Fire Festival
				{ 5,  23323 }, -- Crown of the Fire Festival
				{ 6,  34683 }, -- Sandals of Summer
				{ 7,  34685 }, -- Vestment of Summer
				{ 9,  23247 }, -- Burning Blossom
				{ 10, 34599 }, -- Juggling Torch
				{ 11, 34684 }, -- Handful of Summer Petals
				{ 12, 23246 }, -- Fiery Festival Brew
				{ 16, 23215 }, -- Bag of Smorc Ingredients
				{ 17, 23211 }, -- Toasted Smorc
				{ 18, 23435 }, -- Elderberry Pie
				{ 19, 23327 }, -- Fire-toasted Bun
				{ 20, 23326 }, -- Midsummer Sausage
			},
		},
		{ -- CFRSlaveAhune
			name = C_Map_GetAreaInfo(3717).." - "..AL["Ahune"],
			[NORMAL_DIFF] = {
				{ 1,  35514 }, -- Frostscythe of Lord Ahune
				{ 2,  35494 }, -- Shroud of Winter's Chill
				{ 3,  35495 }, -- The Frost Lord's War Cloak
				{ 4,  35496 }, -- Icebound Cloak
				{ 5,  35497 }, -- Cloak of the Frigid Winds
				{ 7,  35723 }, -- Shards of Ahune
				{ 16, 35498 }, -- Formula: Enchant Weapon - Deathfrost
				{ 18, 34955 }, -- Scorched Stone
				{ 19, 35557 }, -- Huge Snowball
			},
			[HEROIC_DIFF] = {
				{ 1,  29434 }, -- Badge of Justice
				{ 2,  35507 }, -- Amulet of Bitter Hatred
				{ 3,  35508 }, -- Choker of the Arctic Flow
				{ 4,  35509 }, -- Amulet of Glacial Tranquility
				{ 5,  35511 }, -- Hailstone Pendant
				{ 7,  35514 }, -- Frostscythe of Lord Ahune
				{ 8,  35494 }, -- Shroud of Winter's Chill
				{ 9,  35495 }, -- The Frost Lord's War Cloak
				{ 10, 35496 }, -- Icebound Cloak
				{ 11, 35497 }, -- Cloak of the Frigid Winds
				{ 13, 35723 }, -- Shards of Ahune
				{ 22, 35498 }, -- Formula: Enchant Weapon - Deathfrost
				{ 24, 34955 }, -- Scorched Stone
				{ 25, 35557 }, -- Huge Snowball
			},
		},
	},
}

data["Brewfest"] = {
	name = AL["Brewfest"],
	ContentType = WORLD_EVENT_CONTENT,
	LoadDifficulty = NORMAL_DIFF,
	TableType = NORMAL_ITTYPE,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	items = {
		{ -- Brewfest
			name = AL["Brewfest"],
			[NORMAL_DIFF] = {
				{ 1,  33968 }, -- Blue Brewfest Hat
				{ 2,  33864 }, -- Brown Brewfest Hat
				{ 3,  33967 }, -- Green Brewfest Hat
				{ 4,  33969 }, -- Purple Brewfest Hat
				{ 5,  33863 }, -- Brewfest Dress
				{ 6,  33862 }, -- Brewfest Regalia
				{ 7,  33966 }, -- Brewfest Slippers
				{ 8,  33868 }, -- Brewfest Boots
				{ 10, 33047 }, -- Belbi's Eyesight Enhancing Romance Goggles (Alliance)
				{ 11, 34008 }, -- Blix's Eyesight Enhancing Romance Goggles (Horde)
				{ 13, 33016 }, -- Blue Brewfest Stein
				{ 15, 37829 }, -- Brewfest Prize Token
				{ 16, 33976 }, -- Brewfest Ram
				{ 17, 33977 }, -- Swift Brewfest Ram
				{ 19, 32233 }, -- Wolpertinger's Tankard
				{ 21, 34028 }, -- "Honorary Brewer" Hand Stamp
				{ 22, 37599 }, -- "Brew of the Month" Club Membership Form
				{ 24, 33927 }, -- Brewfest Pony Keg
				{ 26, 37750 }, -- Fresh Brewfest Hops
				{ 27, 39477 }, -- Fresh Dwarven Brewfest Hops
				{ 28, 39476 }, -- Fresh Goblin Brewfest Hops
				{ 29, 37816 }, -- Preserved Brewfest Hops
			},
		},
		{
			name = AL["Food"],
			[NORMAL_DIFF] = {
				{ 1,  33043 }, -- The Essential Brewfest Pretzel
				{ 3,  34017 }, -- Small Step Brew
				{ 4,  34018 }, -- long Stride Brew
				{ 5,  34019 }, -- Path of Brew
				{ 6,  34020 }, -- Jungle River Water
				{ 7,  34021 }, -- Brewdoo Magic
				{ 8,  34022 }, -- Stout Shrunken Head
				{ 9,  33034 }, -- Gordok Grog
				{ 10, 33035 }, -- Ogre Mead
				{ 11, 33036 }, -- Mudder's Milk

			},
		},
		{
			name = C_Map_GetAreaInfo(1584).." - "..AL["Coren Direbrew"],
			[NORMAL_DIFF] = {
				{ 1,  37128 }, -- Balebrew Charm
				{ 2,  37127 }, -- Brightbrew Charm
				{ 3,  38287 }, -- Empty Mug of Direbrew
				{ 4,  38290 }, -- Dark Iron Smoking Pipe
				{ 5,  38288 }, -- Direbrew Hops
				{ 6,  38289 }, -- Coren's Lucky Coin
				{ 8,  37597 }, -- Direbrew's Shanker
				{ 16, 33977 }, -- Swift Brewfest Ram
				{ 17, 37828 }, -- Great Brewfest Kodo
				{ 19, 37863 }, -- Direbrew's Remote
				{ 21, 38280 }, -- Direbrew's Dire Brew
			},
		},
	},
}

data["HalloweenBC"] = {
	name = AL["Hallow's End"],
	ContentType = WORLD_EVENT_CONTENT,
	LoadDifficulty = NORMAL_DIFF,
	TableType = NORMAL_ITTYPE,
	gameVersion = AtlasLoot.BC_VERSION_NUM,
	CorrespondingFields = private.HALLOWEEN,
	items = {
		{ -- Halloween1
			name = AL["Hallow's End"].." - "..AL["Misc"],
			[NORMAL_DIFF] = {
				{ 1,  20400 }, -- Pumpkin Bag
				{ 3,  18633 }, -- Styleen's Sour Suckerpop
				{ 4,  18632 }, -- Moonbrook Riot Taffy
				{ 5,  18635 }, -- Bellara's Nutterbar
				{ 6,  20557 }, -- Hallow's End Pumpkin Treat
				{ 8,  20389 }, -- Candy Corn
				{ 9,  20388 }, -- Lollipop
				{ 10, 20390 }, -- Candy Bar
			},
		},
		{ -- Halloween1
			name = AL["Hallow's End"].." - "..AL["Wands"],
			[NORMAL_DIFF] = {
				{ 1, 20410 }, -- Hallowed Wand - Bat
				{ 2, 20409 }, -- Hallowed Wand - Ghost
				{ 3, 20399 }, -- Hallowed Wand - Leper Gnome
				{ 4, 20398 }, -- Hallowed Wand - Ninja
				{ 5, 20397 }, -- Hallowed Wand - Pirate
				{ 6, 20413 }, -- Hallowed Wand - Random
				{ 7, 20411 }, -- Hallowed Wand - Skeleton
				{ 8, 20414 }, -- Hallowed Wand - Wisp
			},
		},
		{ -- Halloween3
			name = AL["Hallow's End"].." - "..AL["Masks"],
			[NORMAL_DIFF] = {
				{ 1,  20561 }, -- Flimsy Male Dwarf Mask
				{ 2,  20391 }, -- Flimsy Male Gnome Mask
				{ 3,  20566 }, -- Flimsy Male Human Mask
				{ 4,  20564 }, -- Flimsy Male Nightelf Mask
				{ 5,  20570 }, -- Flimsy Male Orc Mask
				{ 6,  20572 }, -- Flimsy Male Tauren Mask
				{ 7,  20568 }, -- Flimsy Male Troll Mask
				{ 8,  20573 }, -- Flimsy Male Undead Mask
				{ 16, 20562 }, -- Flimsy Female Dwarf Mask
				{ 17, 20392 }, -- Flimsy Female Gnome Mask
				{ 18, 20565 }, -- Flimsy Female Human Mask
				{ 19, 20563 }, -- Flimsy Female Nightelf Mask
				{ 20, 20569 }, -- Flimsy Female Orc Mask
				{ 21, 20571 }, -- Flimsy Female Tauren Mask
				{ 22, 20567 }, -- Flimsy Female Troll Mask
				{ 23, 20574 }, -- Flimsy Female Undead Mask
			},
		},
		{ -- SMHeadlessHorseman
			name = C_Map_GetAreaInfo(796).." - "..AL["Headless Horseman"],
			[NORMAL_DIFF] = {
				{ 1,  34075 }, -- Ring of Ghoulish Delight
				{ 2,  34073 }, -- The Horseman's Signet Ring
				{ 3,  34074 }, -- Witches Band
				{ 5,  33808 }, -- The Horseman's Helm
				{ 6,  38175 }, -- The Horseman's Blade
				{ 8,  33292 }, -- Hallowed Helm
				{ 10, 34068 }, -- Weighted Jack-o'-Lantern
				{ 12, 33277 }, -- Tome of Thomas Thomson
				{ 16, 37012 }, -- The Horseman's Reins
				{ 18, 33182 }, -- Swift Flying Broom        280% flying
				{ 19, 33176 }, -- Flying Broom              60% flying
				{ 21, 33184 }, -- Swift Magic Broom         100% ground
				{ 22, 37011 }, -- Magic Broom               60% ground
				{ 24, 33154 }, -- Sinister Squashling
			},
		},
	},
}
