--[[
Author: Jarth
Filename: SummonAssistant.lua
]] --

-------------------------------------------------------------------------------------------------
-- VARIABLES --
-------------------------------------------------------------------------------------------------
local baseModule = SummonAssistant
local sharedBaseModule = JarthSharedBase

-------------------------------------------------------------------------------------------------
-- FUNCTIONS --
-------------------------------------------------------------------------------------------------
function baseModule.OnAddOnLoaded(_, addonName)
    if addonName == baseModule.Addon.Name then
        baseModule.Initialize()
    end
end

function baseModule.Initialize()
    -- Load saved values..
    baseModule.Saved = ZO_SavedVars:New("SummonAssistant_Character", baseModule.Addon.Version, nil, baseModule.Default)

    if baseModule.Saved.UseAccountSettings then
        baseModule.Saved = ZO_SavedVars:NewAccountWide("SummonAssistant_Account", baseModule.Addon.Version, nil, baseModule.Default)
    end

    baseModule:RestorePanel(baseModule.Frame)
    baseModule:HotkeyCreateSelections()
    baseModule:CreateSettingsWindow()

    EVENT_MANAGER:UnregisterForEvent(baseModule.Addon.Name, EVENT_ADD_ON_LOADED)
end

-------------------------------------------------------------------------------------------------
-- PRIVATE FUNCTIONS --
-------------------------------------------------------------------------------------------------
function baseModule:RestorePanel(frame)
    baseModule:SetButtonFrameWidth(baseModule.Saved.ShowAssistants)
    baseModule:InitializeButtons(frame, baseModule.OrderedTypes)
    baseModule:RestoreButtons(baseModule.OrderedTypes)
    sharedBaseModule:RestorePosition(baseModule, frame)
    sharedBaseModule:UpdateMoveFrame(baseModule, frame)
    baseModule.Fragment = sharedBaseModule:SetFragmentBehaviour(frame, baseModule.Saved, baseModule.Fragment)
end

EVENT_MANAGER:RegisterForEvent(baseModule.Addon.Name, EVENT_ADD_ON_LOADED, baseModule.OnAddOnLoaded)