local DEBUG =
function() end
-- d

local function _tr(str)
	return str
end

RPFlagger = {}

RPFlagger.LAM = LibStub:GetLibrary("LibAddonMenu-2.0")

RPFlagger.name = "RPFlagger"
RPFlagger.loadedAddons = {}

function RPFlagger:help()
	-- CHAT_SYSTEM:AddMessage("/im listrules - list the rules currently defined")
	-- CHAT_SYSTEM:AddMessage("/im dryrun    - show what the currently defined rules would do to your inventory")
end

function RPFlagger:SlashCommand(argv)
    local options = {}
    local searchResult = { string.match(argv,"^(%S*)%s*(.-)$") }
    for i,v in pairs(searchResult) do
        if (v ~= nil and v ~= "") then
            options[i] = string.lower(v)
        end
    end

	if #options == 0 or options[1] == "help" then
		self:help()
	else
		CHAT_SYSTEM:AddMessage("Unknown parameter '" .. argv .. "'")
	end
end

RPFlagger.UI = { }
RPFlagger.UI.Settings = { }

local Settings = RPFlagger.UI.Settings

function RPFlagger:InitializeUI()
	local panelData = {
		type = "panel",
		name = "RPFlagger",
		registerForRefresh = true,	--boolean (optional) (will refresh all options controls when a setting is changed and when the panel is shown)
	}

	local mainPanel = {
		{
			type = "description",
			text = _tr("To have a flag set for others in your guild to be shown, you need to enclose the text in '##RP: ##', for example, '##RP: God amongst mortals ##'. For retrieving purposes, the list in the settings below denote the order of your guilds which are scanned for the other player's flag"),
		},
		{
			type = "submenu",
			name = _tr("Settings"),
			tooltip = _tr("Manage general settings"),	--(optional)
			controls = Settings:GetControls(),
		},
	}

	self.UI.panel = self.LAM:RegisterAddonPanel("iwontsayRPFlagger", panelData)
	self.LAM:RegisterOptionControls("iwontsayRPFlagger", mainPanel)
end

function RPFlagger:Init()
	self.charDefaults = {
		["guildList"]		= { 1,2,3,4,5 }
	}

	self.charVariables = ZO_SavedVars:New(
		"RPFSavedVars",
		1,
		nil,
		self.charDefaults)

	self.guildList = self.charVariables.guildList

	self:InitializeUI()

	-- CHAT_SYSTEM:AddMessage(self.name .. " Addon Loaded.")
	-- CHAT_SYSTEM:AddMessage("Use /rpf help for an overview")
end

local function OnAddOnLoaded(eventCode, addonName)
	if addonName == RPFlagger.name then
		RPFlagger:Init()
	else
		RPFlagger.loadedAddons[addonName] = true
	end
end

local function OnPCCreated()
	Settings:PopulateUI()
end

EVENT_MANAGER:RegisterForEvent(RPFlagger.name, EVENT_ADD_ON_LOADED, OnAddOnLoaded)

-- SLASH_COMMANDS["/rpf"] = function(argv) RPFlagger:SlashCommand(argv) end

CALLBACK_MANAGER:RegisterCallback("LAM-PanelControlsCreated", OnPCCreated)