if not PriceTracker then
	return
end

local PriceTracker = PriceTracker
local PriceTrackerMenu = {}
PriceTracker.menu = PriceTrackerMenu

PriceTrackerMenu.algorithmTable = {
	"Weighted Average",
	"Median",
	"Most Frequently Used"
}

PriceTrackerMenu.keyTable = {
	"None",
	"Shift",
	"Control",
	"Alt",
	"Command"
}

function PriceTrackerMenu:InitAddonMenu(addOnName)
	local LAM = LibStub:GetLibrary("LibAddonMenu-1.0")
	local addOnMenu = LAM:CreateControlPanel("PriceTrackerMenu", PriceTracker.colors.title .. addOnName)

	-- Ensure compatibility
	if PriceTracker.settings.showMinMax == nil then
		PriceTracker.settings.showMinMax = true
	end

	if PriceTracker.settings.showSeen == nil then
		PriceTracker.settings.showSeen = true
	end

	-- Create the settings menu
	LAM:AddHeader(addOnMenu, addOnName .. "Header", "Options")
	LAM:AddDropdown(addOnMenu, addOnName .. "Algorithm", "Select Price Algorithm", "", self.algorithmTable,
		function() return PriceTracker.settings.algorithm or self.algorithmTable[1] end,
		function(algorithm) PriceTracker.settings.algorithm = algorithm end)
	LAM:AddCheckbox(addOnMenu, addOnName .. "MinMax", "Show Min / Max Prices", "Show minimum and maximum sell values",
		function() return PriceTracker.settings.showMinMax end,
		function(check) PriceTracker.settings.showMinMax = check end)
	LAM:AddCheckbox(addOnMenu, addOnName .. "Seen", "Show 'Seen'", "Show how many times an item was seen in the guild stores",
		function() return PriceTracker.settings.showSeen end,
		function(check) PriceTracker.settings.showSeen = check end)
	LAM:AddDropdown(addOnMenu, addOnName .. "KeyPress", "Show only if key is pressed",
		"Show pricing on tooltip only if one of the following keys is pressed.  This is useful if you have too many addons modifying your tooltips.",
		self.keyTable,
		function() return PriceTracker.settings.keyPress or self.keyTable[1] end,
		function(key) PriceTracker.settings.keyPress = key end)
end

function PriceTrackerMenu:IsKeyPressed()
	return PriceTracker.settings.keyPress == self.keyTable[1] or
		(PriceTracker.settings.keyPress == self.keyTable[2] and IsShiftKeyDown()) or
		(PriceTracker.settings.keyPress == self.keyTable[3] and IsControlKeyDown()) or
		(PriceTracker.settings.keyPress == self.keyTable[4] and IsAltKeyDown()) or
		(PriceTracker.settings.keyPress == self.keyTable[5] and IsCommandKeyDown())
end