vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
---------------
-- Variables --
---------------
Perl_Config_Config = {};

Perl_Config_Global_ArcaneBar_Config = {};
Perl_Config_Global_CombatDisplay_Config = {};
Perl_Config_Global_Config_Config = {};
Perl_Config_Global_Party_Config = {};
Perl_Config_Global_Party_Pet_Config = {};
Perl_Config_Global_Player_Config = {};
Perl_Config_Global_Player_Buff_Config = {};
Perl_Config_Global_Player_Pet_Config = {};
Perl_Config_Global_Raid_Config = {};
Perl_Config_Global_Target_Config = {};
Perl_Config_Global_Target_Target_Config = {};

-- Default Saved Variables (also set in Perl_Config_GetVars)
local texture = 0;                      -- no texture is set by default
local showminimapbutton = 1;            -- minimap button is on by default
local minimapbuttonpos = 270;           -- default minimap button position
local transparentbackground = 0;        -- use solid black background as default
PCUF_CASTPARTYSUPPORT = 1;              -- CastParty support is enabled by default (global variable so i don't go insane)
PCUF_COLORHEALTH = 0;                   -- progressively colored health bars are off by default

-- Empty variables used for localization
PERL_LOCALIZED_DRUID = nil;
PERL_LOCALIZED_HUNTER = nil;
PERL_LOCALIZED_MAGE = nil;
PERL_LOCALIZED_PALADIN = nil;
PERL_LOCALIZED_PRIEST = nil;
PERL_LOCALIZED_ROGUE = nil;
PERL_LOCALIZED_SHAMAN = nil;
PERL_LOCALIZED_WARLOCK = nil;
PERL_LOCALIZED_WARRIOR = nil;
PERL_LOCALIZED_CIVILIAN = nil;
PERL_LOCALIZED_CREATURE = nil;
PERL_LOCALIZED_NOTSPECIFIED = nil;


----------------------
-- Loading Function --
----------------------
function Perl_Config_OnLoad()
        -- Events
        this:RegisterEvent("ADDON_LOADED");
        this:RegisterEvent("PLAYER_ENTERING_WORLD");
        this:RegisterEvent("VARIABLES_LOADED");

        Perl_Config_Set_Localization();

        -- Slash Commands
        SlashCmdList["PERL_CONFIG"] = Perl_Config_SlashHandler;
        SLASH_PERL_CONFIG1 = "/perl";

        if (DEFAULT_CHAT_FRAME) then
                DEFAULT_CHAT_FRAME:AddMessage("|cffffff00Perl Classic: Config loaded successfully.");
        end
end


-------------------
-- Event Handler --
-------------------
function Perl_Config_OnEvent(event)
        if (event == "ADDON_LOADED") then
                if (arg1 == "Perl_Config") then
                        Perl_Config_myAddOns_Support();
                end
                return;
        elseif (event=="PLAYER_ENTERING_WORLD") then
                Perl_Config_Set_Texture();
                Perl_Config_Button_UpdatePosition();
                Perl_Config_ShowHide_MiniMap_Button();
                Perl_Config_Set_Background();
        elseif (event == "VARIABLES_LOADED") then
                Perl_Config_Initialize();
                return;
        else
                return;
        end
end


-------------------
-- Slash Handler --
-------------------
function Perl_Config_SlashHandler(msg)
        Perl_Config_Toggle();
end


-------------------------------
-- Loading Settings Function --
-------------------------------
function Perl_Config_Initialize()
        -- Check if a previous exists, if not, enable by default.
        if (type(Perl_Config_Config[UnitName("player")]) == "table") then
                Perl_Config_GetVars();
        else
                Perl_Config_UpdateVars();
        end
end


---------------------------
-- Localization Function --
---------------------------
function Perl_Config_Set_Localization()
        -- English is set no matter what in order to not break the mod for untranslated clients like in version 0.25
        --if (GetLocale() == "enUS") then
                PERL_LOCALIZED_DRUID = "Druid";
                PERL_LOCALIZED_HUNTER = "Hunter";
                PERL_LOCALIZED_MAGE = "Mage";
                PERL_LOCALIZED_PALADIN = "Paladin";
                PERL_LOCALIZED_PRIEST = "Priest";
                PERL_LOCALIZED_ROGUE = "Rogue";
                PERL_LOCALIZED_SHAMAN = "Shaman";
                PERL_LOCALIZED_WARLOCK = "Warlock";
                PERL_LOCALIZED_WARRIOR = "Warrior";

                PERL_LOCALIZED_CIVILIAN = "Civilian";
                PERL_LOCALIZED_CREATURE = "Creature";
                PERL_LOCALIZED_NOTSPECIFIED = "Not specified";
        --end

        if (GetLocale() == "deDE") then
                PERL_LOCALIZED_DRUID = "Druide";
                PERL_LOCALIZED_HUNTER = "J\195\164ger";
                PERL_LOCALIZED_MAGE = "Magier";
                PERL_LOCALIZED_PALADIN = "Paladin";
                PERL_LOCALIZED_PRIEST = "Priester";
                PERL_LOCALIZED_ROGUE = "Schurke";
                PERL_LOCALIZED_SHAMAN = "Schamane";
                PERL_LOCALIZED_WARLOCK = "Hexenmeister";
                PERL_LOCALIZED_WARRIOR = "Krieger";

                PERL_LOCALIZED_CIVILIAN = "Zivilist";
                PERL_LOCALIZED_CREATURE = "Kreatur";
                PERL_LOCALIZED_NOTSPECIFIED = "Nicht spezifiziert";
        end

        if (GetLocale() == "frFR") then
                PERL_LOCALIZED_DRUID = "Druide";
                PERL_LOCALIZED_HUNTER = "Chasseur";
                PERL_LOCALIZED_MAGE = "Mage";
                PERL_LOCALIZED_PALADIN = "Paladin";
                PERL_LOCALIZED_PRIEST = "Pr\195\170tre";
                PERL_LOCALIZED_ROGUE = "Voleur";
                PERL_LOCALIZED_SHAMAN = "Chaman";
                PERL_LOCALIZED_WARLOCK = "D\195\169moniste";
                PERL_LOCALIZED_WARRIOR = "Guerrier";

                PERL_LOCALIZED_CIVILIAN = "Civil";
                PERL_LOCALIZED_CREATURE = "Cr\195\169ature";
                PERL_LOCALIZED_NOTSPECIFIED = "Non indiqu\195\169";
        end

        if (GetLocale() == "koKR") then
                PERL_LOCALIZED_DRUID = "드루이드";
                PERL_LOCALIZED_HUNTER = "사냥꾼";
                PERL_LOCALIZED_MAGE = "마법사";
                PERL_LOCALIZED_PALADIN = "성기사";
                PERL_LOCALIZED_PRIEST = "사제";
                PERL_LOCALIZED_ROGUE = "도적";
                PERL_LOCALIZED_SHAMAN = "주술사";
                PERL_LOCALIZED_WARLOCK = "흑마법사";
                PERL_LOCALIZED_WARRIOR = "전사";

                PERL_LOCALIZED_CIVILIAN = "민간인";
                PERL_LOCALIZED_CREATURE = "동물";
                PERL_LOCALIZED_NOTSPECIFIED = "무엇인가";
        end

        if (GetLocale() == "zhCN") then
                PERL_LOCALIZED_DRUID = "德鲁伊";
                PERL_LOCALIZED_HUNTER = "猎人";
                PERL_LOCALIZED_MAGE = "法师";
                PERL_LOCALIZED_PALADIN = "圣骑士";
                PERL_LOCALIZED_PRIEST = "牧师";
                PERL_LOCALIZED_ROGUE = "盗贼";
                PERL_LOCALIZED_SHAMAN = "萨满祭司";
                PERL_LOCALIZED_WARLOCK = "术士";
                PERL_LOCALIZED_WARRIOR = "战士";

                PERL_LOCALIZED_CIVILIAN = "平民";
                PERL_LOCALIZED_CREATURE = "生物";
                PERL_LOCALIZED_NOTSPECIFIED = "非特定的";
        end

        if (GetLocale() == "zhTW") then
                PERL_LOCALIZED_DRUID = "德魯伊";
                PERL_LOCALIZED_HUNTER = "獵人";
                PERL_LOCALIZED_MAGE = "法師";
                PERL_LOCALIZED_PALADIN = "聖騎士";
                PERL_LOCALIZED_PRIEST = "牧師";
                PERL_LOCALIZED_ROGUE = "盜賊";
                PERL_LOCALIZED_SHAMAN = "薩滿";
                PERL_LOCALIZED_WARLOCK = "術士";
                PERL_LOCALIZED_WARRIOR = "戰士";

                PERL_LOCALIZED_CIVILIAN = "平民";
                PERL_LOCALIZED_CREATURE = "生物";
                PERL_LOCALIZED_NOTSPECIFIED = "非特定的";
        end
end


--------------------------
-- Update/GUI Functions --
--------------------------
function Perl_Config_Set_Texture(newvalue)
        if (newvalue ~= nil) then
                texture = newvalue;
                Perl_Config_UpdateVars();
        end

        local texturename;
        if (texture ~= 0) then
                texturename = "Interface\\AddOns\\Perl_Config\\Perl_StatusBar"..texture..".tga";
        else
                texturename = "Interface\\TargetingFrame\\UI-StatusBar";
        end

        if (Perl_ArcaneBar_Frame_Loaded_Frame) then
                Perl_ArcaneBarTex:SetTexture(texturename);
        end

        if (Perl_CombatDisplay_Frame) then
                Perl_CombatDisplay_HealthBarTex:SetTexture(texturename);
                Perl_CombatDisplay_ManaBarTex:SetTexture(texturename);
                Perl_CombatDisplay_DruidBarTex:SetTexture(texturename);
                Perl_CombatDisplay_CPBarTex:SetTexture(texturename);
                Perl_CombatDisplay_PetHealthBarTex:SetTexture(texturename);
                Perl_CombatDisplay_PetManaBarTex:SetTexture(texturename);
                Perl_CombatDisplay_Target_HealthBarTex:SetTexture(texturename);
                Perl_CombatDisplay_Target_ManaBarTex:SetTexture(texturename);
        end

        if (Perl_Party_Frame) then
                Perl_Party_MemberFrame1_StatsFrame_HealthBar_HealthBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame1_StatsFrame_ManaBar_ManaBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame1_StatsFrame_PetHealthBar_PetHealthBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame2_StatsFrame_HealthBar_HealthBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame2_StatsFrame_ManaBar_ManaBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame2_StatsFrame_PetHealthBar_PetHealthBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame3_StatsFrame_HealthBar_HealthBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame3_StatsFrame_ManaBar_ManaBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame3_StatsFrame_PetHealthBar_PetHealthBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame4_StatsFrame_HealthBar_HealthBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame4_StatsFrame_ManaBar_ManaBarTex:SetTexture(texturename);
                Perl_Party_MemberFrame4_StatsFrame_PetHealthBar_PetHealthBarTex:SetTexture(texturename);
        end

        if (Perl_Party_Pet_Script_Frame) then
                Perl_Party_Pet1_StatsFrame_HealthBar_HealthBarTex:SetTexture(texturename);
                Perl_Party_Pet1_StatsFrame_ManaBar_ManaBarTex:SetTexture(texturename);
                Perl_Party_Pet2_StatsFrame_HealthBar_HealthBarTex:SetTexture(texturename);
                Perl_Party_Pet2_StatsFrame_ManaBar_ManaBarTex:SetTexture(texturename);
                Perl_Party_Pet3_StatsFrame_HealthBar_HealthBarTex:SetTexture(texturename);
                Perl_Party_Pet3_StatsFrame_ManaBar_ManaBarTex:SetTexture(texturename);
                Perl_Party_Pet4_StatsFrame_HealthBar_HealthBarTex:SetTexture(texturename);
                Perl_Party_Pet4_StatsFrame_ManaBar_ManaBarTex:SetTexture(texturename);
        end

        if (Perl_Player_Frame) then
                Perl_Player_HealthBarTex:SetTexture(texturename);
                Perl_Player_ManaBarTex:SetTexture(texturename);
                Perl_Player_DruidBarTex:SetTexture(texturename);
                Perl_Player_XPBarTex:SetTexture(texturename);
        end

        if (Perl_Player_Pet_Frame) then
                Perl_Player_Pet_HealthBarTex:SetTexture(texturename);
                Perl_Player_Pet_ManaBarTex:SetTexture(texturename);
                Perl_Player_Pet_XPBarTex:SetTexture(texturename);
        end

        if (Perl_Raid_Frame) then
                for num=1,40 do
                        getglobal("Perl_Raid"..num.."_StatsFrame_HealthBar_HealthBarTex"):SetTexture(texturename);
                        getglobal("Perl_Raid"..num.."_StatsFrame_ManaBar_ManaBarTex"):SetTexture(texturename);
                end
        end

        if (Perl_Target_Frame) then
                Perl_Target_HealthBarTex:SetTexture(texturename);
                Perl_Target_ManaBarTex:SetTexture(texturename);
                Perl_Target_NameFrame_CPMeterTex:SetTexture(texturename);
        end

        if (Perl_Target_Target_Script_Frame) then
                Perl_Target_Target_HealthBarTex:SetTexture(texturename);
                Perl_Target_Target_ManaBarTex:SetTexture(texturename);
                Perl_Target_Target_Target_HealthBarTex:SetTexture(texturename);
                Perl_Target_Target_Target_ManaBarTex:SetTexture(texturename);
        end
end

function Perl_Config_Set_Background(newvalue)
        if (newvalue ~= nil) then
                transparentbackground = newvalue;
                Perl_Config_UpdateVars();
        end

        if (transparentbackground == 1) then
                if (Perl_CombatDisplay_Frame) then
                        Perl_CombatDisplay_ManaFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_CombatDisplay_Target_ManaFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_CombatDisplay_Initialize_Frame_Color();
                end

                if (Perl_Party_Frame) then
                        for partynum=1,4 do
                                getglobal("Perl_Party_MemberFrame"..partynum.."_NameFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_MemberFrame"..partynum.."_LevelFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_MemberFrame"..partynum.."_PortraitFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_MemberFrame"..partynum.."_StatsFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        end
                        Perl_Party_Initialize_Frame_Color(1);
                end

                if (Perl_Party_Pet_Script_Frame) then
                        for partynum=1,4 do
                                getglobal("Perl_Party_Pet"..partynum.."_NameFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_Pet"..partynum.."_PortraitFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_Pet"..partynum.."_StatsFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        end
                        Perl_Party_Pet_Initialize_Frame_Color(1);
                end

                if (Perl_Player_Frame) then
                        Perl_Player_NameFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_LevelFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_PortraitFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_RaidGroupNumberFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_StatsFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Initialize_Frame_Color();
                end

                if (Perl_Player_Pet_Frame) then
                        Perl_Player_Pet_LevelFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Pet_NameFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Pet_PortraitFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Pet_StatsFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Pet_Initialize_Frame_Color();
                end

                if (Perl_Raid_Frame) then
                        for num=1,40 do
                                getglobal("Perl_Raid"..num.."_NameFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Raid"..num.."_StatsFrame"):SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        end
                        Perl_Raid_Initialize_Frame_Color();
                end

                if (Perl_Target_Frame) then
                        Perl_Target_CivilianFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_ClassNameFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_CPFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_LevelFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_NameFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_PortraitFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_RareEliteFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_StatsFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Initialize_Frame_Color();
                end

                if (Perl_Target_Target_Script_Frame) then
                        Perl_Target_Target_NameFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Target_StatsFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Target_Target_NameFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Target_Target_StatsFrame:SetBackdrop({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Target_Initialize_Frame_Color();
                end
        else
                if (Perl_CombatDisplay_Frame) then
                        Perl_CombatDisplay_ManaFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_CombatDisplay_Target_ManaFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_CombatDisplay_Initialize_Frame_Color();
                end

                if (Perl_Party_Frame) then
                        for partynum=1,4 do
                                getglobal("Perl_Party_MemberFrame"..partynum.."_NameFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_MemberFrame"..partynum.."_LevelFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_MemberFrame"..partynum.."_PortraitFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_MemberFrame"..partynum.."_StatsFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        end
                        Perl_Party_Initialize_Frame_Color(1);
                end

                if (Perl_Party_Pet_Script_Frame) then
                        for partynum=1,4 do
                                getglobal("Perl_Party_Pet"..partynum.."_NameFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_Pet"..partynum.."_PortraitFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Party_Pet"..partynum.."_StatsFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        end
                        Perl_Party_Pet_Initialize_Frame_Color(1);
                end

                if (Perl_Player_Frame) then
                        Perl_Player_NameFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_LevelFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_PortraitFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_RaidGroupNumberFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_StatsFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Initialize_Frame_Color();
                end

                if (Perl_Player_Pet_Frame) then
                        Perl_Player_Pet_LevelFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Pet_NameFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Pet_PortraitFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Pet_StatsFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Player_Pet_Initialize_Frame_Color();
                end

                if (Perl_Raid_Frame) then
                        for num=1,40 do
                                getglobal("Perl_Raid"..num.."_NameFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                                getglobal("Perl_Raid"..num.."_StatsFrame"):SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        end
                        Perl_Raid_Initialize_Frame_Color();
                end

                if (Perl_Target_Frame) then
                        Perl_Target_CivilianFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_White", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_ClassNameFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_CPFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_LevelFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_NameFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_PortraitFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_RareEliteFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_StatsFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Initialize_Frame_Color();
                end

                if (Perl_Target_Target_Script_Frame) then
                        Perl_Target_Target_NameFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Target_StatsFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Target_Target_NameFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Target_Target_StatsFrame:SetBackdrop({bgFile = "Interface\\AddOns\\Perl_Config\\Perl_Black", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 16, edgeSize = 16, insets = { left = 5, right = 5, top = 5, bottom = 5 }});
                        Perl_Target_Target_Initialize_Frame_Color();
                end
        end
end

function Perl_Config_Set_Transparency(newvalue)
        if (Perl_ArcaneBar_Frame_Loaded_Frame) then
                Perl_ArcaneBar_Set_Transparency(newvalue);
        end

        if (Perl_CombatDisplay_Frame) then
                Perl_CombatDisplay_Set_Transparency(newvalue);
        end

        if (Perl_Party_Frame) then
                Perl_Party_Set_Transparency(newvalue);
        end

        if (Perl_Party_Pet_Script_Frame) then
                Perl_Party_Pet_Set_Transparency(newvalue);
        end

        if (Perl_Player_Frame) then
                Perl_Player_Set_Transparency(newvalue);
        end

        if (Perl_Player_Pet_Frame) then
                Perl_Player_Pet_Set_Transparency(newvalue);
        end

        if (Perl_Raid_Frame) then
                Perl_Raid_Set_Transparency(newvalue);
        end

        if (Perl_Target_Frame) then
                Perl_Target_Set_Transparency(newvalue);
        end

        if (Perl_Target_Target_Script_Frame) then
                Perl_Target_Target_Set_Transparency(newvalue);
        end
end

function Perl_Config_Set_MiniMap_Button(newvalue)
        showminimapbutton = newvalue;
        Perl_Config_UpdateVars();
        Perl_Config_ShowHide_MiniMap_Button();
end

function Perl_Config_Set_MiniMap_Position(newvalue)
        minimapbuttonpos = newvalue;
        Perl_Config_UpdateVars();
        Perl_Config_Button_UpdatePosition();
end

function Perl_Config_Set_CastParty_Support(newvalue)
        PCUF_CASTPARTYSUPPORT = newvalue;
        Perl_Config_UpdateVars();
end

function Perl_Config_Set_Color_Health(newvalue)
        PCUF_COLORHEALTH = newvalue;
        Perl_Config_UpdateVars();
end


-----------------------------------
-- Reset Frame Position Function --
-----------------------------------
function Perl_Config_Frame_Reset_Positions()
        -- Due to a terrible API, CombatDisplay resetting will not be a feature unless someone can unravel the mystery of screen resolution and scaling coordinates
--      if (Perl_CombatDisplay_Frame) then
--              Perl_CombatDisplay_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 626, -574);
--              Perl_CombatDisplay_Target_Frame:SetPoint("BOTTOMLEFT", Perl_CombatDisplay_Frame, "TOPLEFT", 0, 5);
--      end

        if (Perl_Party_Frame) then
                Perl_Party_Frame:SetUserPlaced(1);              -- All the SetUserPlaced allows us to save the new location set by these functions even if the user has not moved the frames on their own yet.
                Perl_Party_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", -8, -187);
        end

        if (Perl_Party_Pet_Script_Frame) then
                Perl_Party_Pet_Allign();
        end

        if (Perl_Player_Frame) then
                Perl_Player_Frame:SetUserPlaced(1);
                Perl_Player_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", -3, -43);
        end

        if (Perl_Player_Pet_Frame) then
                Perl_Player_Pet_Frame:SetUserPlaced(1);
                Perl_Player_Pet_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 27, -112);
        end

        if (Perl_Raid_Frame) then
                for num=1,8 do
                        getglobal("Perl_Raid_Grp"..num):SetUserPlaced(1);
                        getglobal("Perl_Raid_Grp"..num):SetPoint("TOPLEFT", UIParent, "TOPLEFT", 500, -200);
                end
        end

        if (Perl_Target_Frame) then
                Perl_Target_Frame:SetUserPlaced(1);
                Perl_Target_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 263, -43);
        end

        if (Perl_Target_Target_Script_Frame) then
                Perl_Target_Target_Frame:SetUserPlaced(1);
                Perl_Target_Target_Target_Frame:SetUserPlaced(1);
                Perl_Target_Target_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 501, -43);
                Perl_Target_Target_Target_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", 607, -43);
        end
end


-------------------------------------
-- Global Saved Variable Functions --
-------------------------------------
function Perl_Config_Global_Save_Settings()
        if (Perl_ArcaneBar_Frame_Loaded_Frame) then
                local vartable = Perl_ArcaneBar_GetVars();
                Perl_Config_Global_ArcaneBar_Config["Global Settings"] = {
                        ["Enabled"] = vartable["enabled"],
                        ["HideOriginal"] = vartable["hideoriginal"],
                        ["ShowTimer"] = vartable["showtimer"],
                        ["Transparency"] = vartable["transparency"],
                };
        end

        if (Perl_CombatDisplay_Frame) then
                local vartable = Perl_CombatDisplay_GetVars();
                Perl_Config_Global_CombatDisplay_Config["Global Settings"] = {
                        ["State"] = vartable["state"],
                        ["Locked"] = vartable["locked"],
                        ["HealthPersist"] = vartable["healthpersist"],
                        ["ManaPersist"] = vartable["manapersist"],
                        ["Scale"] = vartable["scale"],
                        ["Transparency"] = vartable["transparency"],
                        ["ShowTarget"] = vartable["showtarget"],
                        ["MobHealthSupport"] = vartable["mobhealthsupport"],
                        ["XPositionCD"] = floor(Perl_CombatDisplay_Frame:GetLeft() + 0.5),
                        ["YPositionCD"] = floor(Perl_CombatDisplay_Frame:GetTop() - (UIParent:GetTop() / Perl_CombatDisplay_Frame:GetScale()) + 0.5),
                        ["XPositionCDT"] = floor(Perl_CombatDisplay_Target_Frame:GetLeft() + 0.5),
                        ["YPositionCDT"] = floor(Perl_CombatDisplay_Target_Frame:GetTop() - (UIParent:GetTop() / Perl_CombatDisplay_Target_Frame:GetScale()) + 0.5),
                        ["ShowDruidBar"] = vartable["showdruidbar"],
                        ["ShowPetBars"] = vartable["showpetbars"],
                };
        end

        if (Perl_Config_Frame) then
                local vartable = Perl_Config_GetVars();
                Perl_Config_Global_Config_Config["Global Settings"] = {
                        ["Texture"] = vartable["texture"],
                        ["ShowMiniMapButton"] = vartable["showminimapbutton"],
                        ["MiniMapButtonPos"] = vartable["minimapbuttonpos"],
                        ["TransparentBackground"] = vartable["transparentbackground"],
                        ["PCUF_CastPartySupport"] = vartable["PCUF_CastPartySupport"],
                        ["PCUF_ColorHealth"] = vartable["PCUF_ColorHealth"],
                };
        end

        if (Perl_Party_Frame) then
                local vartable = Perl_Party_GetVars();
                Perl_Config_Global_Party_Config["Global Settings"] = {
                        ["Locked"] = vartable["locked"],
                        ["CompactMode"] = vartable["compactmode"],
                        ["PartyHidden"] = vartable["partyhidden"],
                        ["PartySpacing"] = vartable["partyspacing"],
                        ["Scale"] = vartable["scale"],
                        ["ShowPets"] = vartable["showpets"],
                        ["HealerMode"] = vartable["healermode"],
                        ["Transparency"] = vartable["transparency"],
                        ["BuffLocation"] = vartable["bufflocation"],
                        ["DebuffLocation"] = vartable["debufflocation"],
                        ["VerticalAlign"] = vartable["verticalalign"],
                        ["XPosition"] = floor(Perl_Party_Frame:GetLeft() + 0.5),
                        ["YPosition"] = floor(Perl_Party_Frame:GetTop() - (UIParent:GetTop() / Perl_Party_Frame:GetScale()) + 0.5),
                        ["CompactPercent"] = vartable["compactpercent"],
                        ["ShowPortrait"] = vartable["showportrait"],
                        ["ShowFKeys"] = vartable["showfkeys"],
                        ["DisplayCastableBuffs"] = vartable["displaycastablebuffs"],
                        ["ThreeDPortrait"] = vartable["threedportrait"],
                        ["BuffSize"] = vartable["buffsize"],
                        ["DebuffSize"] = vartable["debuffsize"],
                };
        end

        if (Perl_Party_Pet_Script_Frame) then
                local vartable = Perl_Party_Pet_GetVars();
                Perl_Config_Global_Party_Pet_Config["Global Settings"] = {
                        ["Locked"] = vartable["locked"],
                        ["ShowPortrait"] = vartable["showportrait"],
                        ["ThreeDPortrait"] = vartable["threedportrait"],
                        ["Scale"] = vartable["scale"],
                        ["Transparency"] = vartable["transparency"],
                        ["Buffs"] = vartable["numpetbuffsshown"],
                        ["Debuffs"] = vartable["numpetdebuffsshown"],
                        ["BuffSize"] = vartable["buffsize"],
                        ["DebuffSize"] = vartable["debuffsize"],
                        ["BuffLocation"] = vartable["bufflocation"],
                        ["DebuffLocation"] = vartable["debufflocation"],
                        ["HiddenInRaids"] = vartable["hiddeninraids"],
                        ["XPosition1"] = floor(Perl_Party_Pet1:GetLeft() + 0.5),
                        ["YPosition1"] = floor(Perl_Party_Pet1:GetTop() - (UIParent:GetTop() / Perl_Party_Pet1:GetScale()) + 0.5),
                        ["XPosition2"] = floor(Perl_Party_Pet2:GetLeft() + 0.5),
                        ["YPosition2"] = floor(Perl_Party_Pet2:GetTop() - (UIParent:GetTop() / Perl_Party_Pet2:GetScale()) + 0.5),
                        ["XPosition3"] = floor(Perl_Party_Pet3:GetLeft() + 0.5),
                        ["YPosition3"] = floor(Perl_Party_Pet3:GetTop() - (UIParent:GetTop() / Perl_Party_Pet3:GetScale()) + 0.5),
                        ["XPosition4"] = floor(Perl_Party_Pet4:GetLeft() + 0.5),
                        ["YPosition4"] = floor(Perl_Party_Pet4:GetTop() - (UIParent:GetTop() / Perl_Party_Pet4:GetScale()) + 0.5),
                };
        end

        if (Perl_Player_Frame) then
                local vartable = Perl_Player_GetVars();
                Perl_Config_Global_Player_Config["Global Settings"] = {
                        ["Locked"] = vartable["locked"],
                        ["XPBarState"] = vartable["xpbarstate"],
                        ["CompactMode"] = vartable["compactmode"],
                        ["ShowRaidGroup"] = vartable["showraidgroup"],
                        ["Scale"] = vartable["scale"],
                        ["HealerMode"] = vartable["healermode"],
                        ["Transparency"] = vartable["transparency"],
                        ["XPosition"] = floor(Perl_Player_Frame:GetLeft() + 0.5),
                        ["YPosition"] = floor(Perl_Player_Frame:GetTop() - (UIParent:GetTop() / Perl_Player_Frame:GetScale()) + 0.5),
                        ["ShowPortrait"] = vartable["showportrait"],
                        ["CompactPercent"] = vartable["compactpercent"],
                        ["ThreeDPortrait"] = vartable["threedportrait"],
                        ["PortraitCombatText"] = vartable["portraitcombattext"],
                        ["ShowDruidBar"] = vartable["showdruidbar"],
                };
        end

        if (Perl_Player_Buff_Script_Frame) then
                local vartable = Perl_Player_Buff_GetVars();
                Perl_Config_Global_Player_Buff_Config["Global Settings"] = {
                        ["BuffAlerts"] = vartable["buffalerts"],
                        ["ShowBuffs"] = vartable["showbuffs"],
                        ["Scale"] = vartable["scale"],
                };
        end

        if (Perl_Player_Pet_Frame) then
                local vartable = Perl_Player_Pet_GetVars();
                Perl_Config_Global_Player_Pet_Config["Global Settings"] = {
                        ["Locked"] = vartable["locked"],
                        ["ShowXP"] = vartable["showxp"],
                        ["Scale"] = vartable["scale"],
                        ["Buffs"] = vartable["numpetbuffsshown"],
                        ["Debuffs"] = vartable["numpetdebuffsshown"],
                        ["Transparency"] = vartable["transparency"],
                        ["BuffLocation"] = vartable["bufflocation"],
                        ["DebuffLocation"] = vartable["debufflocation"],
                        ["XPosition"] = floor(Perl_Player_Pet_Frame:GetLeft() + 0.5),
                        ["YPosition"] = floor(Perl_Player_Pet_Frame:GetTop() - (UIParent:GetTop() / Perl_Player_Pet_Frame:GetScale()) + 0.5),
                        ["BuffSize"] = vartable["buffsize"],
                        ["DebuffSize"] = vartable["debuffsize"],
                        ["ShowPortrait"] = vartable["showportrait"],
                        ["ThreeDPortrait"] = vartable["threedportrait"],
                };
        end

        if (Perl_Raid_Frame) then
                local vartable = Perl_Raid_GetVars();
                Perl_Config_Global_Raid_Config["Global Settings"] = {
                        ["Locked"] = locked,
                        ["ShowGroup1"] = vartable["showgroup1"],
                        ["ShowGroup2"] = vartable["showgroup2"],
                        ["ShowGroup3"] = vartable["showgroup3"],
                        ["ShowGroup4"] = vartable["showgroup4"],
                        ["ShowGroup5"] = vartable["showgroup5"],
                        ["ShowGroup6"] = vartable["showgroup6"],
                        ["ShowGroup7"] = vartable["showgroup7"],
                        ["ShowGroup8"] = vartable["showgroup8"],
                        ["ShowPercents"] = vartable["showpercents"],
                        ["SortRaidByClass"] = vartable["sortraidbyclass"],
                        ["Transparency"] = vartable["transparency"],
                        ["Scale"] = vartable["scale"],
                        ["XPosition1"] = floor(Perl_Raid_Grp1:GetLeft() + 0.5),
                        ["YPosition1"] = floor(Perl_Raid_Grp1:GetTop() - (UIParent:GetTop() / Perl_Raid_Grp1:GetScale()) + 0.5),
                        ["XPosition2"] = floor(Perl_Raid_Grp2:GetLeft() + 0.5),
                        ["YPosition2"] = floor(Perl_Raid_Grp2:GetTop() - (UIParent:GetTop() / Perl_Raid_Grp2:GetScale()) + 0.5),
                        ["XPosition3"] = floor(Perl_Raid_Grp3:GetLeft() + 0.5),
                        ["YPosition3"] = floor(Perl_Raid_Grp3:GetTop() - (UIParent:GetTop() / Perl_Raid_Grp3:GetScale()) + 0.5),
                        ["XPosition4"] = floor(Perl_Raid_Grp4:GetLeft() + 0.5),
                        ["YPosition4"] = floor(Perl_Raid_Grp4:GetTop() - (UIParent:GetTop() / Perl_Raid_Grp4:GetScale()) + 0.5),
                        ["XPosition5"] = floor(Perl_Raid_Grp5:GetLeft() + 0.5),
                        ["YPosition5"] = floor(Perl_Raid_Grp5:GetTop() - (UIParent:GetTop() / Perl_Raid_Grp5:GetScale()) + 0.5),
                        ["XPosition6"] = floor(Perl_Raid_Grp6:GetLeft() + 0.5),
                        ["YPosition6"] = floor(Perl_Raid_Grp6:GetTop() - (UIParent:GetTop() / Perl_Raid_Grp6:GetScale()) + 0.5),
                        ["XPosition7"] = floor(Perl_Raid_Grp7:GetLeft() + 0.5),
                        ["YPosition7"] = floor(Perl_Raid_Grp7:GetTop() - (UIParent:GetTop() / Perl_Raid_Grp7:GetScale()) + 0.5),
                        ["XPosition8"] = floor(Perl_Raid_Grp8:GetLeft() + 0.5),
                        ["YPosition8"] = floor(Perl_Raid_Grp8:GetTop() - (UIParent:GetTop() / Perl_Raid_Grp8:GetScale()) + 0.5),
                        ["ShowHeaders"] = vartable["showheaders"],
                        ["ShowMissingHealth"] = vartable["showmissinghealth"],
                        ["VerticalAlign"] = vartable["verticalalign"],
                };
        end

        if (Perl_Target_Frame) then
                local vartable = Perl_Target_GetVars();
                Perl_Config_Global_Target_Config["Global Settings"] = {
                        ["Locked"] = vartable["locked"],
                        ["ComboPoints"] = vartable["showcp"],
                        ["ClassIcon"] = vartable["showclassicon"],
                        ["ClassFrame"] = vartable["showclassframe"],
                        ["PvPIcon"] = vartable["showpvpicon"],
                        ["Buffs"] = vartable["numbuffsshown"],
                        ["Debuffs"] = vartable["numdebuffsshown"],
                        ["MobHealthSupport"] = vartable["mobhealthsupport"],
                        ["Scale"] = vartable["scale"],
                        ["ShowPvPRank"] = vartable["showpvprank"],
                        ["Transparency"] = vartable["transparency"],
                        ["BuffDebuffScale"] = vartable["buffdebuffscale"],
                        ["XPosition"] = floor(Perl_Target_Frame:GetLeft() + 0.5),
                        ["YPosition"] = floor(Perl_Target_Frame:GetTop() - (UIParent:GetTop() / Perl_Target_Frame:GetScale()) + 0.5),
                        ["ShowPortrait"] = vartable["showportrait"],
                        ["ThreeDPortrait"] = vartable["threedportrait"],
                        ["PortraitCombatText"] = vartable["portraitcombattext"],
                        ["ShowRareEliteFrame"] = vartable["showrareeliteframe"],
                        ["NameFrameComboPoints"] = vartable["nameframecombopoints"],
                        ["ComboFrameDebuffs"] = vartable["comboframedebuffs"],
                        ["FrameStyle"] = vartable["framestyle"],
                        ["CompactMode"] = vartable["compactmode"],
                        ["CompactPercent"] = vartable["compactpercent"],
                        ["HideBuffBackground"] = vartable["hidebuffbackground"],
                };
        end

        if (Perl_Target_Target_Script_Frame) then
                local vartable = Perl_Target_Target_GetVars();
                Perl_Config_Global_Target_Target_Config["Global Settings"] = {
                        ["Locked"] = vartable["locked"],
                        ["MobHealthSupport"] = vartable["mobhealthsupport"],
                        ["Scale"] = vartable["scale"],
                        ["ToTSupport"] = vartable["totsupport"],
                        ["ToToTSupport"] = vartable["tototsupport"],
                        ["Transparency"] = vartable["transparency"],
                        ["XPositionToT"] = floor(Perl_Target_Target_Frame:GetLeft() + 0.5),
                        ["YPositionToT"] = floor(Perl_Target_Target_Frame:GetTop() - (UIParent:GetTop() / Perl_Target_Target_Frame:GetScale()) + 0.5),
                        ["XPositionToToT"] = floor(Perl_Target_Target_Target_Frame:GetLeft() + 0.5),
                        ["YPositionToToT"] = floor(Perl_Target_Target_Target_Frame:GetTop() - (UIParent:GetTop() / Perl_Target_Target_Target_Frame:GetScale()) + 0.5),
                        ["AlertSound"] = vartable["alertsound"],
                        ["AlertMode"] = vartable["alertmode"],
                        ["AlertSize"] = vartable["alertsize"],
                };
        end
end

function Perl_Config_Global_Load_Settings()
        -- Load all global settings from last save and then do window positions in this mod since we aren't saving the positions in each individual mod (and to keep all position changes in one file instead of six).
        if (Perl_ArcaneBar_Frame_Loaded_Frame) then
                Perl_ArcaneBar_UpdateVars(Perl_Config_Global_ArcaneBar_Config);
        end

        if (Perl_CombatDisplay_Frame) then
                Perl_CombatDisplay_UpdateVars(Perl_Config_Global_CombatDisplay_Config);

                if (Perl_Config_Global_CombatDisplay_Config["Global Settings"] ~= nil) then
                        if ((Perl_Config_Global_CombatDisplay_Config["Global Settings"]["XPositionCD"] ~= nil) and (Perl_Config_Global_CombatDisplay_Config["Global Settings"]["YPositionCD"] ~= nil) and (Perl_Config_Global_CombatDisplay_Config["Global Settings"]["XPositionCDT"] ~= nil) and (Perl_Config_Global_CombatDisplay_Config["Global Settings"]["YPositionCDT"] ~= nil)) then
                                Perl_CombatDisplay_Frame:SetUserPlaced(1);
                                Perl_CombatDisplay_Target_Frame:SetUserPlaced(1);
                                Perl_CombatDisplay_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_CombatDisplay_Config["Global Settings"]["XPositionCD"], Perl_Config_Global_CombatDisplay_Config["Global Settings"]["YPositionCD"]);
                                Perl_CombatDisplay_Target_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_CombatDisplay_Config["Global Settings"]["XPositionCDT"], Perl_Config_Global_CombatDisplay_Config["Global Settings"]["YPositionCDT"]);
                        end
                end
        end

        if (Perl_Config_Frame) then
                Perl_Config_UpdateVars(Perl_Config_Global_Config_Config);
        end

        if (Perl_Party_Frame) then
                Perl_Party_UpdateVars(Perl_Config_Global_Party_Config);

                if (Perl_Config_Global_Party_Config["Global Settings"] ~= nil) then
                        if ((Perl_Config_Global_Party_Config["Global Settings"]["XPosition"] ~= nil) and (Perl_Config_Global_Party_Config["Global Settings"]["YPosition"] ~= nil)) then
                                Perl_Party_Frame:SetUserPlaced(1);
                                Perl_Party_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Party_Config["Global Settings"]["XPosition"], Perl_Config_Global_Party_Config["Global Settings"]["YPosition"]);
                        end
                end
        end

        if (Perl_Party_Pet_Script_Frame) then
                Perl_Party_Pet_UpdateVars(Perl_Config_Global_Party_Pet_Config);

                if (Perl_Config_Global_Party_Pet_Config["Global Settings"] ~= nil) then
                        if ((Perl_Config_Global_Party_Pet_Config["Global Settings"]["XPosition1"] ~= nil) and (Perl_Config_Global_Party_Pet_Config["Global Settings"]["YPosition1"] ~= nil)) then
                                Perl_Party_Pet1:SetUserPlaced(1);
                                Perl_Party_Pet2:SetUserPlaced(1);
                                Perl_Party_Pet3:SetUserPlaced(1);
                                Perl_Party_Pet4:SetUserPlaced(1);
                                Perl_Party_Pet1:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Party_Pet_Config["Global Settings"]["XPosition1"], Perl_Config_Global_Party_Pet_Config["Global Settings"]["YPosition1"]);
                                Perl_Party_Pet2:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Party_Pet_Config["Global Settings"]["XPosition2"], Perl_Config_Global_Party_Pet_Config["Global Settings"]["YPosition2"]);
                                Perl_Party_Pet3:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Party_Pet_Config["Global Settings"]["XPosition3"], Perl_Config_Global_Party_Pet_Config["Global Settings"]["YPosition3"]);
                                Perl_Party_Pet4:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Party_Pet_Config["Global Settings"]["XPosition4"], Perl_Config_Global_Party_Pet_Config["Global Settings"]["YPosition4"]);
                        end
                end
        end

        if (Perl_Player_Frame) then
                Perl_Player_UpdateVars(Perl_Config_Global_Player_Config);

                if (Perl_Config_Global_Player_Config["Global Settings"] ~= nil) then
                        if ((Perl_Config_Global_Player_Config["Global Settings"]["XPosition"] ~= nil) and (Perl_Config_Global_Player_Config["Global Settings"]["YPosition"] ~= nil)) then
                                Perl_Player_Frame:SetUserPlaced(1);
                                Perl_Player_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Player_Config["Global Settings"]["XPosition"], Perl_Config_Global_Player_Config["Global Settings"]["YPosition"]);
                        end
                end
        end

        if (Perl_Player_Buff_Script_Frame) then
                Perl_Player_Buff_UpdateVars(Perl_Config_Global_Player_Buff_Config);
        end

        if (Perl_Player_Pet_Frame) then
                Perl_Player_Pet_UpdateVars(Perl_Config_Global_Player_Pet_Config);

                if (Perl_Config_Global_Player_Pet_Config["Global Settings"] ~= nil) then
                        if ((Perl_Config_Global_Player_Pet_Config["Global Settings"]["XPosition"] ~= nil) and (Perl_Config_Global_Player_Pet_Config["Global Settings"]["YPosition"] ~= nil)) then
                                Perl_Player_Pet_Frame:SetUserPlaced(1);
                                Perl_Player_Pet_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Player_Pet_Config["Global Settings"]["XPosition"], Perl_Config_Global_Player_Pet_Config["Global Settings"]["YPosition"]);
                        end
                end
        end

        if (Perl_Raid_Frame) then
                Perl_Raid_UpdateVars(Perl_Config_Global_Raid_Config);

                if (Perl_Config_Global_Raid_Config["Global Settings"] ~= nil) then
                        if ((Perl_Config_Global_Raid_Config["Global Settings"]["XPosition1"] ~= nil) and (Perl_Config_Global_Raid_Config["Global Settings"]["YPosition1"] ~= nil)) then
                                Perl_Raid_Grp1:SetUserPlaced(1);
                                Perl_Raid_Grp2:SetUserPlaced(1);
                                Perl_Raid_Grp3:SetUserPlaced(1);
                                Perl_Raid_Grp4:SetUserPlaced(1);
                                Perl_Raid_Grp5:SetUserPlaced(1);
                                Perl_Raid_Grp6:SetUserPlaced(1);
                                Perl_Raid_Grp7:SetUserPlaced(1);
                                Perl_Raid_Grp8:SetUserPlaced(1);
                                Perl_Raid_Grp1:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Raid_Config["Global Settings"]["XPosition1"], Perl_Config_Global_Raid_Config["Global Settings"]["YPosition1"]);
                                Perl_Raid_Grp2:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Raid_Config["Global Settings"]["XPosition2"], Perl_Config_Global_Raid_Config["Global Settings"]["YPosition2"]);
                                Perl_Raid_Grp3:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Raid_Config["Global Settings"]["XPosition3"], Perl_Config_Global_Raid_Config["Global Settings"]["YPosition3"]);
                                Perl_Raid_Grp4:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Raid_Config["Global Settings"]["XPosition4"], Perl_Config_Global_Raid_Config["Global Settings"]["YPosition4"]);
                                Perl_Raid_Grp5:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Raid_Config["Global Settings"]["XPosition5"], Perl_Config_Global_Raid_Config["Global Settings"]["YPosition5"]);
                                Perl_Raid_Grp6:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Raid_Config["Global Settings"]["XPosition6"], Perl_Config_Global_Raid_Config["Global Settings"]["YPosition6"]);
                                Perl_Raid_Grp7:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Raid_Config["Global Settings"]["XPosition7"], Perl_Config_Global_Raid_Config["Global Settings"]["YPosition7"]);
                                Perl_Raid_Grp8:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Raid_Config["Global Settings"]["XPosition8"], Perl_Config_Global_Raid_Config["Global Settings"]["YPosition8"]);
                        end
                end
        end

        if (Perl_Target_Frame) then
                Perl_Target_UpdateVars(Perl_Config_Global_Target_Config);

                if (Perl_Config_Global_Target_Config["Global Settings"] ~= nil) then
                        if ((Perl_Config_Global_Target_Config["Global Settings"]["XPosition"] ~= nil) and (Perl_Config_Global_Target_Config["Global Settings"]["YPosition"] ~= nil)) then
                                Perl_Target_Frame:SetUserPlaced(1);
                                Perl_Target_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Target_Config["Global Settings"]["XPosition"], Perl_Config_Global_Target_Config["Global Settings"]["YPosition"]);
                        end
                end
        end

        if (Perl_Target_Target_Script_Frame) then
                Perl_Target_Target_UpdateVars(Perl_Config_Global_Target_Target_Config);

                if (Perl_Config_Global_Target_Target_Config["Global Settings"] ~= nil) then
                        if ((Perl_Config_Global_Target_Target_Config["Global Settings"]["XPositionToT"] ~= nil) and (Perl_Config_Global_Target_Target_Config["Global Settings"]["YPositionToT"] ~= nil) and (Perl_Config_Global_Target_Target_Config["Global Settings"]["XPositionToToT"] ~= nil) and (Perl_Config_Global_Target_Target_Config["Global Settings"]["YPositionToToT"] ~= nil)) then
                                Perl_Target_Target_Frame:SetUserPlaced(1);
                                Perl_Target_Target_Target_Frame:SetUserPlaced(1);
                                Perl_Target_Target_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Target_Target_Config["Global Settings"]["XPositionToT"], Perl_Config_Global_Target_Target_Config["Global Settings"]["YPositionToT"]);
                                Perl_Target_Target_Target_Frame:SetPoint("TOPLEFT", UIParent, "TOPLEFT", Perl_Config_Global_Target_Target_Config["Global Settings"]["XPositionToToT"], Perl_Config_Global_Target_Target_Config["Global Settings"]["YPositionToToT"]);
                        end
                end
        end
end

------------------------------
-- Saved Variable Functions --
------------------------------
function Perl_Config_GetVars()
        texture = Perl_Config_Config[UnitName("player")]["Texture"];
        showminimapbutton = Perl_Config_Config[UnitName("player")]["ShowMiniMapButton"];
        minimapbuttonpos = Perl_Config_Config[UnitName("player")]["MiniMapButtonPos"];
        transparentbackground = Perl_Config_Config[UnitName("player")]["TransparentBackground"];
        PCUF_CASTPARTYSUPPORT = Perl_Config_Config[UnitName("player")]["PCUF_CastPartySupport"];
        PCUF_COLORHEALTH = Perl_Config_Config[UnitName("player")]["PCUF_ColorHealth"];

        if (texture == nil) then
                texture = 0;
        end
        if (showminimapbutton == nil) then
                showminimapbutton = 1;
        end
        if (minimapbuttonpos == nil) then
                minimapbuttonpos = 270;
        end
        if (transparentbackground == nil) then
                transparentbackground = 0;
        end
        if (PCUF_CASTPARTYSUPPORT == nil) then
                PCUF_CASTPARTYSUPPORT = 1;
        end
        if (PCUF_COLORHEALTH == nil) then
                PCUF_COLORHEALTH = 0;
        end

        local vars = {
                ["texture"] = texture,
                ["showminimapbutton"] = showminimapbutton,
                ["minimapbuttonpos"] = minimapbuttonpos,
                ["transparentbackground"] = transparentbackground,
                ["PCUF_CastPartySupport"] = PCUF_CASTPARTYSUPPORT,
                ["PCUF_ColorHealth"] = PCUF_COLORHEALTH,
        }
        return vars;
end

function Perl_Config_UpdateVars(vartable)
        if (vartable ~= nil) then
                -- Sanity checks in case you use a load from an old version
                if (vartable["Global Settings"] ~= nil) then
                        if (vartable["Global Settings"]["Texture"] ~= nil) then
                                texture = vartable["Global Settings"]["Texture"];
                        else
                                texture = nil;
                        end
                        if (vartable["Global Settings"]["ShowMiniMapButton"] ~= nil) then
                                showminimapbutton = vartable["Global Settings"]["ShowMiniMapButton"];
                        else
                                showminimapbutton = nil;
                        end
                        if (vartable["Global Settings"]["MiniMapButtonPos"] ~= nil) then
                                minimapbuttonpos = vartable["Global Settings"]["MiniMapButtonPos"];
                        else
                                minimapbuttonpos = nil;
                        end
                        if (vartable["Global Settings"]["TransparentBackground"] ~= nil) then
                                transparentbackground = vartable["Global Settings"]["TransparentBackground"];
                        else
                                transparentbackground = nil;
                        end
                        if (vartable["Global Settings"]["PCUF_CastPartySupport"] ~= nil) then
                                PCUF_CASTPARTYSUPPORT = vartable["Global Settings"]["PCUF_CastPartySupport"];
                        else
                                PCUF_CASTPARTYSUPPORT = nil;
                        end
                        if (vartable["Global Settings"]["PCUF_ColorHealth"] ~= nil) then
                                PCUF_COLORHEALTH = vartable["Global Settings"]["PCUF_ColorHealth"];
                        else
                                PCUF_COLORHEALTH = nil;
                        end
                end

                -- Set the new values if any new values were found, same defaults as above
                if (texture == nil) then
                        texture = 0;
                end
                if (showminimapbutton == nil) then
                        showminimapbutton = 1;
                end
                if (minimapbuttonpos == nil) then
                        minimapbuttonpos = 270;
                end
                if (transparentbackground == nil) then
                        transparentbackground = 0;
                end
                if (PCUF_CASTPARTYSUPPORT == nil) then
                        PCUF_CASTPARTYSUPPORT = 1;
                end
                if (PCUF_COLORHEALTH == nil) then
                        PCUF_COLORHEALTH = 0;
                end

                -- Call any code we need to activate them
                Perl_Config_Set_Texture(texture);
                Perl_Config_Set_MiniMap_Button(showminimapbutton);
                Perl_Config_Set_MiniMap_Position(minimapbuttonpos);
                Perl_Config_Set_Background();
        end

        Perl_Config_Config[UnitName("player")] = {
                ["Texture"] = texture,
                ["ShowMiniMapButton"] = showminimapbutton,
                ["MiniMapButtonPos"] = minimapbuttonpos,
                ["TransparentBackground"] = transparentbackground,
                ["PCUF_CastPartySupport"] = PCUF_CASTPARTYSUPPORT,
                ["PCUF_ColorHealth"] = PCUF_COLORHEALTH,
        };
end


-------------------------
-- The Toggle Function --
-------------------------
function Perl_Config_Toggle()
        if (Perl_Config_Frame:IsVisible()) then
                Perl_Config_Frame:Hide();
                Perl_Config_Hide_All();
        else
                Perl_Config_Frame:Show();
                Perl_Config_Hide_All();
        end
end

function Perl_Config_Hide_All()
        Perl_Config_All_Frame:Hide();
        Perl_Config_ArcaneBar_Frame:Hide();
        Perl_Config_CombatDisplay_Frame:Hide();
        Perl_Config_NotInstalled_Frame:Hide();
        Perl_Config_Party_Frame:Hide();
        Perl_Config_Party_Pet_Frame:Hide();
        Perl_Config_Player_Frame:Hide();
        Perl_Config_Player_Buff_Frame:Hide();
        Perl_Config_Player_Pet_Frame:Hide();
        Perl_Config_Raid_Frame:Hide();
        Perl_Config_Target_Frame:Hide();
        Perl_Config_Target_Target_Frame:Hide();
end

function Perl_Config_ShowHide_MiniMap_Button()
        if (showminimapbutton == 0) then
                Perl_Config_ButtonFrame:Hide();
        else
                Perl_Config_ButtonFrame:Show();
        end
end


---------------------------
-- The Minimap Functions --
---------------------------
function Perl_Config_Button_OnClick()
        Perl_Config_Toggle();
end

function Perl_Config_Button_UpdatePosition()
        Perl_Config_ButtonFrame:SetPoint(
                "TOPLEFT",
                "Minimap",
                "TOPLEFT",
                55 - (75 * cos(minimapbuttonpos)),
                (75 * sin(minimapbuttonpos)) - 55
        );
end


----------------------
-- myAddOns Support --
----------------------
function Perl_Config_myAddOns_Support()
        -- Register the addon in myAddOns
        if (myAddOnsFrame_Register) then
                local Perl_Config_myAddOns_Details = {
                        name = "Perl_Config",
                        version = "Version 0.58",
                        releaseDate = "April 15, 2006",
                        author = "Global",
                        email = "global@g-ball.com",
                        website = "http://www.curse-gaming.com/mod.php?addid=2257",
                        category = MYADDONS_CATEGORY_OTHERS,
                        optionsframe = "Perl_Config_Frame",
                };
                Perl_Config_myAddOns_Help = {};
                Perl_Config_myAddOns_Help[1] = "/perl";
                myAddOnsFrame_Register(Perl_Config_myAddOns_Details, Perl_Config_myAddOns_Help);
        end
end

Generated by GNU Enscript 1.6.5.90.