Quantcast
local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local UF = E:GetModule('UnitFrames');

local CURRENT_PAGE = 0
local MAX_PAGE

local function MaxPages()
	if IsAddOnLoaded("ElvUI_Hud") then
		MAX_PAGE = 11
	else
		MAX_PAGE = 10
	end
end

local function SetupChat()
	InstallStepComplete.message = L["Chat Set"]
	InstallStepComplete:Show()
	FCF_ResetChatWindows()
	FCF_SetLocked(ChatFrame1, 1)
	FCF_DockFrame(ChatFrame2)
	FCF_SetLocked(ChatFrame2, 1)

	FCF_OpenNewWindow(LOOT)
	FCF_UnDockFrame(ChatFrame3)
	FCF_SetLocked(ChatFrame3, 1)
	ChatFrame3:Show()

	for i = 1, NUM_CHAT_WINDOWS do
		local frame = _G[format("ChatFrame%s", i)]
		local chatFrameId = frame:GetID()
		local chatName = FCF_GetChatWindowInfo(chatFrameId)

		-- move general bottom left
		if i == 1 then
			frame:ClearAllPoints()
			frame:Point("BOTTOMLEFT", LeftChatToggleButton, "TOPLEFT", 1, 3)
		elseif i == 3 then
			frame:ClearAllPoints()
			frame:Point("BOTTOMLEFT", RightChatDataPanel, "TOPLEFT", 1, 3)
		end

		FCF_SavePositionAndDimensions(frame)
		FCF_StopDragging(frame)

		-- set default Elvui font size
		FCF_SetChatWindowFontSize(nil, frame, 12)

		-- rename windows general because moved to chat #3
		if i == 1 then
			FCF_SetWindowName(frame, GENERAL)
		elseif i == 2 then
			FCF_SetWindowName(frame, GUILD_EVENT_LOG)
		elseif i == 3 then
			FCF_SetWindowName(frame, LOOT.." / "..TRADE)
		end
	end

	ChatFrame_RemoveAllMessageGroups(ChatFrame1)
	ChatFrame_AddMessageGroup(ChatFrame1, "SAY")
	ChatFrame_AddMessageGroup(ChatFrame1, "EMOTE")
	ChatFrame_AddMessageGroup(ChatFrame1, "YELL")
	ChatFrame_AddMessageGroup(ChatFrame1, "GUILD")
	ChatFrame_AddMessageGroup(ChatFrame1, "OFFICER")
	ChatFrame_AddMessageGroup(ChatFrame1, "GUILD_ACHIEVEMENT")
	ChatFrame_AddMessageGroup(ChatFrame1, "WHISPER")
	ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_SAY")
	ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_EMOTE")
	ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_YELL")
	ChatFrame_AddMessageGroup(ChatFrame1, "MONSTER_BOSS_EMOTE")
	ChatFrame_AddMessageGroup(ChatFrame1, "PARTY")
	ChatFrame_AddMessageGroup(ChatFrame1, "PARTY_LEADER")
	ChatFrame_AddMessageGroup(ChatFrame1, "RAID")
	ChatFrame_AddMessageGroup(ChatFrame1, "RAID_LEADER")
	ChatFrame_AddMessageGroup(ChatFrame1, "RAID_WARNING")
	ChatFrame_AddMessageGroup(ChatFrame1, "BATTLEGROUND")
	ChatFrame_AddMessageGroup(ChatFrame1, "BATTLEGROUND_LEADER")
	ChatFrame_AddMessageGroup(ChatFrame1, "BG_HORDE")
	ChatFrame_AddMessageGroup(ChatFrame1, "BG_ALLIANCE")
	ChatFrame_AddMessageGroup(ChatFrame1, "BG_NEUTRAL")
	ChatFrame_AddMessageGroup(ChatFrame1, "SYSTEM")
	ChatFrame_AddMessageGroup(ChatFrame1, "ERRORS")
	ChatFrame_AddMessageGroup(ChatFrame1, "AFK")
	ChatFrame_AddMessageGroup(ChatFrame1, "DND")
	ChatFrame_AddMessageGroup(ChatFrame1, "IGNORED")
	ChatFrame_AddMessageGroup(ChatFrame1, "ACHIEVEMENT")
	ChatFrame_AddMessageGroup(ChatFrame1, "BN_WHISPER")
	ChatFrame_AddMessageGroup(ChatFrame1, "BN_CONVERSATION")
	ChatFrame_AddMessageGroup(ChatFrame1, "BN_INLINE_TOAST_ALERT")
	ChatFrame_AddMessageGroup(ChatFrame1, "INSTANCE_CHAT")
	ChatFrame_AddMessageGroup(ChatFrame1, "INSTANCE_CHAT_LEADER")

	ChatFrame_RemoveAllMessageGroups(ChatFrame3)
	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_FACTION_CHANGE")
	ChatFrame_AddMessageGroup(ChatFrame3, "SKILL")
	ChatFrame_AddMessageGroup(ChatFrame3, "LOOT")
	ChatFrame_AddMessageGroup(ChatFrame3, "MONEY")
	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_XP_GAIN")
	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_HONOR_GAIN")
	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_GUILD_XP_GAIN")
	ChatFrame_AddChannel(ChatFrame1, GENERAL)
	ChatFrame_RemoveChannel(ChatFrame1, L['Trade'])
	ChatFrame_AddChannel(ChatFrame3, L['Trade'])


	if E.myname == "Elvz" then
		SetCVar("scriptErrors", 1)
	end

	-- enable classcolor automatically on login and on each character without doing /configure each time.
	ToggleChatColorNamesByClassGroup(true, "SAY")
	ToggleChatColorNamesByClassGroup(true, "EMOTE")
	ToggleChatColorNamesByClassGroup(true, "YELL")
	ToggleChatColorNamesByClassGroup(true, "GUILD")
	ToggleChatColorNamesByClassGroup(true, "OFFICER")
	ToggleChatColorNamesByClassGroup(true, "GUILD_ACHIEVEMENT")
	ToggleChatColorNamesByClassGroup(true, "ACHIEVEMENT")
	ToggleChatColorNamesByClassGroup(true, "WHISPER")
	ToggleChatColorNamesByClassGroup(true, "PARTY")
	ToggleChatColorNamesByClassGroup(true, "PARTY_LEADER")
	ToggleChatColorNamesByClassGroup(true, "RAID")
	ToggleChatColorNamesByClassGroup(true, "RAID_LEADER")
	ToggleChatColorNamesByClassGroup(true, "RAID_WARNING")
	ToggleChatColorNamesByClassGroup(true, "BATTLEGROUND")
	ToggleChatColorNamesByClassGroup(true, "BATTLEGROUND_LEADER")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL1")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL2")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL3")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL4")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL5")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL6")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL7")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL8")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL9")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL10")
	ToggleChatColorNamesByClassGroup(true, "CHANNEL11")
	ToggleChatColorNamesByClassGroup(true, "INSTANCE_CHAT")
	ToggleChatColorNamesByClassGroup(true, "INSTANCE_CHAT_LEADER")

	--Adjust Chat Colors
	--General
	ChangeChatColor("CHANNEL1", 195/255, 230/255, 232/255)
	--Trade
	ChangeChatColor("CHANNEL2", 232/255, 158/255, 121/255)
	--Local Defense
	ChangeChatColor("CHANNEL3", 232/255, 228/255, 121/255)

	if E.Chat then
		E.Chat:PositionChat(true)
		if E.db['RightChatPanelFaded'] then
			RightChatToggleButton:Click()
		end

		if E.db['LeftChatPanelFaded'] then
			LeftChatToggleButton:Click()
		end
	end
end

local function SetupCVars()
	SetCVar("mapQuestDifficulty", 1)
	SetCVar("ShowClassColorInNameplate", 1)
	SetCVar("screenshotQuality", 10)
	SetCVar("chatMouseScroll", 1)
	SetCVar("chatStyle", "classic")
	SetCVar("WholeChatWindowClickable", 0)
	SetCVar("ConversationMode", "inline")
	SetCVar("showTutorials", 0)
	SetCVar("UberTooltips", 1)
	SetCVar("threatWarning", 3)
	SetCVar('alwaysShowActionBars', 1)
	SetCVar('lockActionBars', 1)
	SetCVar('SpamFilter', 0) --Blocks mmo-champion.com, dumb... ElvUI one is more effeciant anyways.
	InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:SetValue('SHIFT')
	InterfaceOptionsActionBarsPanelPickupActionKeyDropDown:RefreshValue()

	InstallStepComplete.message = L["CVars Set"]
	InstallStepComplete:Show()
end

function E:GetColor(r, b, g, a)
	return { r = r, b = b, g = g, a = a }
end

function E:SetupPixelPerfect(enabled, noMsg)
	E.private.general.pixelPerfect = enabled;

	if (E.PixelMode ~= enabled) then
		E:StaticPopup_Show('PIXELPERFECT_CHANGED')
	end

	if not noMsg then
		E.db.general.bottomPanel = enabled
		E:GetModule('Layout'):BottomPanelVisibility()
	end

	if noMsg then
		if enabled then
			if not E.db.movers then E.db.movers = {}; end

			E.db.movers["ElvUF_PetMover"] = "BOTTOMElvUIParentBOTTOM0104"
			E.db.movers["ElvUF_TargetTargetMover"] = "BOTTOMElvUIParentBOTTOM064"
			E.db.movers["ElvUF_PlayerMover"] = "BOTTOMElvUIParentBOTTOM-27865"
			E.db.movers["ElvUF_TargetMover"] = "BOTTOMElvUIParentBOTTOM27864"

			E.db.actionbar.bar1.backdrop = false;
			E.db.actionbar.bar3.backdrop = false;
			E.db.actionbar.bar5.backdrop = false;
			E.db.actionbar.bar1.buttonspacing = 2;
			E.db.actionbar.bar2.buttonspacing = 2;
			E.db.actionbar.bar3.buttonspacing = 2;
			E.db.actionbar.bar4.buttonspacing = 2;
			E.db.actionbar.bar5.buttonspacing = 2;
			E.db.actionbar.barPet.buttonspacing = 2;
			E.db.actionbar.stanceBar.buttonspacing = 2;
		else
			E.db.actionbar.bar1.backdrop = true;
			E.db.actionbar.bar3.backdrop = true;
			E.db.actionbar.bar5.backdrop = true;
			E.db.actionbar.bar1.buttonspacing = 4;
			E.db.actionbar.bar2.buttonspacing = 4;
			E.db.actionbar.bar3.buttonspacing = 4;
			E.db.actionbar.bar4.buttonspacing = 4;
			E.db.actionbar.bar5.buttonspacing = 4;
			E.db.actionbar.barPet.buttonspacing = 4;
			E.db.actionbar.stanceBar.buttonspacing = 4;
		end
	end

	if InstallStepComplete and not noMsg then
		InstallStepComplete.message = L["Pixel Perfect Set"]
		InstallStepComplete:Show()
		E:UpdateAll(true)
	end


	E.PixelMode = enabled
end

function E:SetupTheme(theme, noDisplayMsg)
	local classColor = RAID_CLASS_COLORS[E.myclass]
	E.private.theme = theme


	--Set colors
	if theme == "classic" then
		E.db.general.bordercolor = E:GetColor(.31, .31, .31)
		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
		E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8)

		E.db.unitframe.colors.healthclass = false
		E.db.unitframe.colors.health = E:GetColor(.31, .31, .31)
		E.db.unitframe.colors.auraBarBuff = E:GetColor(.31, .31, .31)
		E.db.unitframe.colors.castColor = E:GetColor(.31, .31, .31)

	elseif theme == "class" then
		E.db.general.bordercolor = E:GetColor(.31, .31, .31)
		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
		E.db.general.backdropfadecolor = E:GetColor(.06, .06, .06, .8)
		E.db.unitframe.colors.auraBarBuff = E:GetColor(classColor.r, classColor.b, classColor.g)
		E.db.unitframe.colors.healthclass = true
		E.db.unitframe.colors.castColor = E:GetColor(classColor.r, classColor.b, classColor.g)
	else
		E.db.general.bordercolor = E:GetColor(.1, .1, .1)
		E.db.general.backdropcolor = E:GetColor(.1, .1, .1)
		E.db.general.backdropfadecolor = E:GetColor(.054, .054, .054, .8)
		E.db.unitframe.colors.auraBarBuff = E:GetColor(.1, .1, .1)
		E.db.unitframe.colors.healthclass = false
		E.db.unitframe.colors.health = E:GetColor(.1, .1, .1)
		E.db.unitframe.colors.castColor = E:GetColor(.1, .1, .1)
	end

	--Value Color
	if theme == "class" then
		E.db.general.valuecolor = E:GetColor(classColor.r, classColor.b, classColor.g)
	else
		E.db.general.valuecolor = E:GetColor(.09, .819, .513)
	end

	if not noDisplayMsg then
		E:UpdateAll(true)
	end

	if InstallStatus then
		InstallStatus:SetStatusBarColor(unpack(E['media'].rgbvaluecolor))

		if InstallStepComplete and not noDisplayMsg then
			InstallStepComplete.message = L["Theme Set"]
			InstallStepComplete:Show()
		end
	end
end

function E:SetupResolution(noDataReset)
	if not noDataReset then
		E:ResetMovers('')
	end

	if self == 'low' then
		if not E.db.movers then E.db.movers = {}; end
		if not noDataReset then
			E.db.chat.panelWidth = 400
			E.db.chat.panelHeight = 180

			E:CopyTable(E.db.actionbar, P.actionbar)

			E.db.actionbar.bar1.heightMult = 2;
			E.db.actionbar.bar2.enabled = true;
			E.db.actionbar.bar3.enabled = false;
			E.db.actionbar.bar5.enabled = false;
		end

		if not noDataReset then
			E.db.auras.wrapAfter = 10;
		end
		E.db.general.reputation.width = 400
		E.db.general.experience.width = 400
		E.db.movers.ElvAB_2 = "CENTERElvUIParentBOTTOM056.18"

		if not noDataReset then
			E:CopyTable(E.db.unitframe.units, P.unitframe.units)

			E.db.unitframe.fontSize = 10

			E.db.unitframe.units.player.width = 200;
			E.db.unitframe.units.player.castbar.width = 200;
			E.db.unitframe.units.player.classbar.fill = 'fill';
			E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current]"

			E.db.unitframe.units.target.width = 200;
			E.db.unitframe.units.target.castbar.width = 200;
			E.db.unitframe.units.target.health.text_format = '[healthcolor][health:current]'

			E.db.unitframe.units.pet.power.enable = false;
			E.db.unitframe.units.pet.width = 200;
			E.db.unitframe.units.pet.height = 26;

			E.db.unitframe.units.targettarget.debuffs.enable = false;
			E.db.unitframe.units.targettarget.power.enable = false;
			E.db.unitframe.units.targettarget.width = 200;
			E.db.unitframe.units.targettarget.height = 26;

			E.db.unitframe.units.boss.width = 200;
			E.db.unitframe.units.boss.castbar.width = 200;
			E.db.unitframe.units.arena.width = 200;
			E.db.unitframe.units.arena.castbar.width = 200;
		end

		local isPixel = E.private.general.pixelPerfect
		local xOffset = isPixel and 103 or 106;
		local yOffset = isPixel and 125 or 135;
		local yOffsetSmall = isPixel and 76 or 80;

		E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM"..-xOffset..""..yOffset
		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM"..xOffset..""..yOffsetSmall
		E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM"..xOffset..""..yOffset
		E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM"..-xOffset..""..yOffsetSmall
		E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310332"

		E.db.lowresolutionset = true;
	elseif not noDataReset then
		E.db.chat.panelWidth = P.chat.panelWidth
		E.db.chat.panelHeight = P.chat.panelHeight

		E:CopyTable(E.db.actionbar, P.actionbar)
		E:CopyTable(E.db.unitframe.units, P.unitframe.units)
		E:SetupPixelPerfect(E.PixelMode, true)
		E.db.auras.wrapAfter = P.auras.wrapAfter;
		E.db.general.reputation.width = P.general.reputation.width
		E.db.general.experience.width = P.general.experience.width

		E.db.lowresolutionset = nil;
	end

	if not noDataReset and E.private.theme then
		E:SetupTheme(E.private.theme, true)
	end

	E:UpdateAll(true)

	if InstallStepComplete and not noDataReset then
		InstallStepComplete.message = L["Resolution Style Set"]
		InstallStepComplete:Show()
	end
end

function E:SetupLayout(layout, noDataReset)
	--Unitframes
	if not noDataReset then
		E:CopyTable(E.db.unitframe.units, P.unitframe.units)
		E:CopyTable(E.db.sle.combatico, P.sle.combatico)
		E.db.sle.powtext = false
	end
	if layout == 'healer' then
		if not IsAddOnLoaded('Clique') then
			E:Print(L['Using the healer layout it is highly recommended you download the addon Clique to work side by side with ElvUI.'])
		end

		if not noDataReset then
			E.db.unitframe.units.party.health.frequentUpdates = true;
			E.db.unitframe.units.raid25.health.frequentUpdates = true;
			E.db.unitframe.units.raid40.health.frequentUpdates = true;

			E.db.unitframe.units.raid40.height = 36;
			E.db.unitframe.units.raid40.health.text = true;
			E.db.unitframe.units.raid40.name.position = 'TOP';
			E.db.unitframe.units.raid40.roleIcon.enable = true;
			E.db.unitframe.units.boss.width = 200;
			E.db.unitframe.units.boss.castbar.width = 200;
			E.db.unitframe.units.arena.width = 200;
			E.db.unitframe.units.arena.castbar.width = 200;

			E.db.unitframe.units.party.point = 'LEFT';
			E.db.unitframe.units.party.xOffset = 5;
			E.db.unitframe.units.party.healPrediction = true;
			E.db.unitframe.units.party.columnAnchorPoint = 'LEFT';
			E.db.unitframe.units.party.width = 80;
			E.db.unitframe.units.party.height = 52;
			E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]"
			E.db.unitframe.units.party.health.position = 'BOTTOM';
			E.db.unitframe.units.party.health.orientation = 'VERTICAL';
			E.db.unitframe.units.party.name.position = 'TOP';
			E.db.unitframe.units.party.name.text_format = "[namecolor][name:medium]";
			E.db.unitframe.units.party.debuffs.anchorPoint = 'BOTTOMLEFT';
			E.db.unitframe.units.party.debuffs.initialAnchor = 'TOPLEFT';
			E.db.unitframe.units.party.debuffs.useFilter = 'Blacklist';
			E.db.unitframe.units.party.debuffs.sizeOverride = 0;
			E.db.unitframe.units.party.petsGroup.enable = true;
			E.db.unitframe.units.party.petsGroup.width = 80;
			E.db.unitframe.units.party.petsGroup.initialAnchor = 'BOTTOM';
			E.db.unitframe.units.party.petsGroup.anchorPoint = 'TOP';
			E.db.unitframe.units.party.petsGroup.xOffset = 0;
			E.db.unitframe.units.party.petsGroup.yOffset = 1;
			E.db.unitframe.units.party.targetsGroup.enable = false;
			E.db.unitframe.units.party.targetsGroup.width = 80;
			E.db.unitframe.units.party.targetsGroup.initialAnchor = 'BOTTOM';
			E.db.unitframe.units.party.targetsGroup.anchorPoint = 'TOP';
			E.db.unitframe.units.party.targetsGroup.xOffset = 0;
			E.db.unitframe.units.party.targetsGroup.yOffset = 1;

			E.db.unitframe.units.raid25.healPrediction = true;
			E.db.unitframe.units.raid25.health.orientation = 'VERTICAL';

			E.db.unitframe.units.raid40.healPrediction = true;
			E.db.unitframe.units.raid40.health.orientation = 'VERTICAL';
		end

		if not E.db.movers then E.db.movers = {}; end
		if E.db.lowresolutionset then
			E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-305242"
			E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM305242"
			E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM080"
			E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM080"
			E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM080"
			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM305187"
			E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM0104"
			E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-305187"
			E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310432"

		else
			E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT464242"
			E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-464242"
			E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM050"
			E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM050"
			E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM050"
			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-464151"
			E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074"
			E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT464151"
			E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM280332"
		end
	elseif E.db.lowresolutionset then
		if not E.db.movers then E.db.movers = {}; end
		E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-106135"
		E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM106135"
		E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM10680"
		E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-10680"
		E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM310332"
	else
		if not noDataReset then
			E:ResetMovers('')
			E:SetupPixelPerfect(E.PixelMode, true)
		end
	end

	if E.db.lowresolutionset and not noDataReset then
		E.db.unitframe.units.player.width = 200;
		E.db.unitframe.units.player.castbar.width = 200;
		E.db.unitframe.units.player.classbar.fill = 'fill';

		E.db.unitframe.units.target.width = 200;
		E.db.unitframe.units.target.castbar.width = 200;

		E.db.unitframe.units.pet.power.enable = false;
		E.db.unitframe.units.pet.width = 200;
		E.db.unitframe.units.pet.height = 26;

		E.db.unitframe.units.targettarget.debuffs.enable = false;
		E.db.unitframe.units.targettarget.power.enable = false;
		E.db.unitframe.units.targettarget.width = 200;
		E.db.unitframe.units.targettarget.height = 26;

		E.db.unitframe.units.boss.width = 200;
		E.db.unitframe.units.boss.castbar.width = 200;
		E.db.unitframe.units.arena.width = 200;
		E.db.unitframe.units.arena.castbar.width = 200;
	end

	if not E.db.lowresolutionset and (layout == 'dpsCaster' or (layout == 'dpsMelee' and E.myclass == 'HUNTER')) then
		if not E.db.movers then E.db.movers = {}; end
		E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0180"
	--[[elseif not E.db.lowresolutionset and layout == 'tank' then --Not sure if i want to keep this.
		if not E.db.movers then E.db.movers = {}; end
		E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM0180"]]
	end

	--Datatexts
	if not noDataReset then
		E:CopyTable(E.db.datatexts.panels, P.datatexts.panels)
		E:CopyTable(E.db.sle.datatext, P.sle.datatext)
		if layout == 'tank' then
			E.db.datatexts.panels.LeftChatDataPanel.left = 'Armor';
			E.db.datatexts.panels.LeftChatDataPanel.right = 'Avoidance';
		elseif layout == 'healer' or layout == 'dpsCaster' then
			E.db.datatexts.panels.LeftChatDataPanel.left = 'Spell/Heal Power';
			E.db.datatexts.panels.LeftChatDataPanel.right = 'Haste';
		else
			E.db.datatexts.panels.LeftChatDataPanel.left = 'Attack Power';
			E.db.datatexts.panels.LeftChatDataPanel.right = 'Crit Chance';
		end

		if InstallStepComplete then
			InstallStepComplete.message = L["Layout Set"]
			InstallStepComplete:Show()
		end
	end

	E.db.layoutSet = layout

	if not noDataReset and E.private.theme then
		E:SetupTheme(E.private.theme, true)
	end

	if not noDataReset then
		E:CopyTable(E.db.sle.marks, P.sle.marks)
		E:CopyTable(E.db.sle.backgrounds, P.sle.backgrounds)
		E:CopyTable(E.db.sle.uibuttons, P.sle.uibuttons)
	end

	E:UpdateAll(true)
	local DT = E:GetModule('DataTexts')
	DT:LoadDataTexts()
end


local function SetupAuras(style)
	E:CopyTable(E.db.unitframe.units.player.buffs, P.unitframe.units.player.buffs)
	E:CopyTable(E.db.unitframe.units.player.debuffs, P.unitframe.units.player.debuffs)
	E:CopyTable(E.db.unitframe.units.player.aurabar, P.unitframe.units.player.aurabar)

	E:CopyTable(E.db.unitframe.units.target.buffs, P.unitframe.units.target.buffs)
	E:CopyTable(E.db.unitframe.units.target.debuffs, P.unitframe.units.target.debuffs)
	E:CopyTable(E.db.unitframe.units.target.aurabar, P.unitframe.units.target.aurabar)
	E.db.unitframe.units.target.smartAuraDisplay = P.unitframe.units.target.smartAuraDisplay

	E:CopyTable(E.db.unitframe.units.focus.buffs, P.unitframe.units.focus.buffs)
	E:CopyTable(E.db.unitframe.units.focus.debuffs, P.unitframe.units.focus.debuffs)
	E:CopyTable(E.db.unitframe.units.focus.aurabar, P.unitframe.units.focus.aurabar)
	E.db.unitframe.units.focus.smartAuraDisplay = P.unitframe.units.focus.smartAuraDisplay

	if not style then
		--PLAYER
		E.db.unitframe.units.player.buffs.enable = true;
		E.db.unitframe.units.player.buffs.attachTo = 'FRAME';
		E.db.unitframe.units.player.buffs.noDuration = false;

		E.db.unitframe.units.player.debuffs.attachTo = 'BUFFS';

		E.db.unitframe.units.player.aurabar.enable = false;

		--TARGET
		E.db.unitframe.units.target.smartAuraDisplay = 'DISABLED';
		E.db.unitframe.units.target.debuffs.enable = true;
		E.db.unitframe.units.target.aurabar.enable = false;
	elseif style == 'integrated' then
		--seriosly is this fucking hard??
		E.db.unitframe.units.target.smartAuraDisplay = 'SHOW_DEBUFFS_ON_FRIENDLIES';
		E.db.unitframe.units.target.buffs.playerOnly = {friendly = true, enemy = false};
		E.db.unitframe.units.target.debuffs.enable = false;
		E.db.unitframe.units.target.aurabar.attachTo = 'BUFFS';
	end

	E:GetModule('UnitFrames'):Update_AllFrames()
	if InstallStepComplete then
		InstallStepComplete.message = L["Auras Set"]
		InstallStepComplete:Show()
	end
end


function E:DarthSetup() --The function to switch from classic ElvUI settings to Darth's
	InstallStepComplete.message = L["Darth's Defaults Set"]
	InstallStepComplete:Show()
	if not E.db.movers then E.db.movers = {}; end

	layout = E.db.layoutSet --To know if some sort of layout was choosed before

	--General options--
	E.db.general.stickyFrames = false
	E.db.general.autoRepair = "PLAYER"
	E.db.general.vendorGrays = true
	E.db.general.fontsize = 10
	E.db.general.minimap.locationText = 'SHOW'
	E.db.general.experience.textFormat = 'CURPERC'
	E.db.general.experience.textSize = 10
	E.db.general.experience.height = 12
	E.db.general.reputation.textFormat = 'CURMAX'
	E.db.general.reputation.textSize = 10
	E.db.general.reputation.height = 12
	E.db.general.threat.enable = false
	E.db.general.totems.spacing = 2
	E.db.general.totems.growthDirection = "HORIZONTAL"
	E.db.general.totems.size = 24
	E.db.general.bottomPanel = false

	--Bags--
	E.db.bags.bagSize = 22
	E.db.bags.bankSize = 22
	E.db.bags.sortInverted = false
	E.db.bags.alignToChat = false
	E.db.bags.bagWidth = 633
	E.db.bags.bankWidth = 633
	E.db.bags.yOffset = 221
	E.db.bags.currencyFormat = "ICON"
	E.db.bags.growthDirection = "HORIZONTAL"

	--NamePlate--
	E.db.nameplate.healthtext = 'CURRENT_PERCENT'
	E.db.nameplate.lowHealthWarning = 'NONE'
	E.db.nameplate.lowHealthWarningThreshold = .20
	E.db.nameplate.width = 112
	E.db.nameplate.fontSize = 8
	E.db.nameplate.fontOutline = "OUTLINE"
	E.db.nameplate.font = "ElvUI Font"
	E.db.nameplate.height = 8
	E.db.nameplate.auraFont = "ElvUI Font"
	E.db.nameplate.auraFontOutline = "OUTLINE"
	E.db.nameplate.classIcons = false

	--Auras--
	E.db.auras.font = "ElvUI Font"
	E.db.auras.fontOutline = "OUTLINE"
	E.db.auras.wrapAfter = 18
	E.db.sle.castername = true

	--Chat--
	E.db.chat.editboxhistory = 10
	E.db.chat.emotionIcons = false
	E.db.chat.whisperSound = 'None'
	E.db.chat.panelHeight = 227
	E.db.chat.panelTabBackdrop = false
	if E.db.lowresolutionset then
		E.db.chat.panelWidth = 400
	else
		E.db.chat.panelWidth = 446
	end
	E.db.chat.timeStampFormat = "%H:%M:%S "
	E.db.chat.whisperSound = "Whisper Alert"

	--Datatexts--
	do
		E.db.datatexts.font = "ElvUI Pixel"
		E.db.datatexts.fontSize = 11
		E.db.datatexts.time24 = true
		E.db.sle.datatext.top.enabled = true
		E.db.sle.datatext.bottom.enabled = true
		if E.db.lowresolutionset then
			E.db.sle.datatext.dp1.enabled = false
			E.db.sle.datatext.dp2.enabled = false
			E.db.sle.datatext.dp3.enabled = false
			E.db.sle.datatext.dp4.enabled = false
			E.db.sle.datatext.dp5.enabled = false
			E.db.sle.datatext.dp6.enabled = false
			E.db.sle.datatext.chatleft.width = 384
			E.db.sle.datatext.chatright.width = 384
			E.db.sle.datatext.bottom.width = E.screenwidth/3 + 52
		else
			E.db.sle.datatext.dp1.enabled = true
			E.db.sle.datatext.dp1.width = E.screenwidth/5 + 1
			E.db.sle.datatext.dp2.enabled = true
			E.db.sle.datatext.dp3.enabled = true
			E.db.sle.datatext.dp4.enabled = true
			E.db.sle.datatext.dp4.width = E.screenwidth/5 + 1
			E.db.sle.datatext.dp5.enabled = true
			E.db.sle.datatext.dp5.width = E.screenwidth/4 - 60
			E.db.sle.datatext.dp6.enabled = true
			E.db.sle.datatext.dp6.width = E.screenwidth/4 - 60
			E.db.sle.datatext.chatleft.width = 430
			E.db.sle.datatext.chatright.width = 430
			E.db.sle.datatext.bottom.width = E.screenwidth/10
			E.db.sle.datatext.top.width = E.screenwidth/5 + 2
		end

		if E.db.lowresolutionset then
			E.db.datatexts.panels.LeftChatDataPanel.left = 'Bags';
			E.db.datatexts.panels.LeftChatDataPanel.middle = 'Gold';
			E.db.datatexts.panels.LeftChatDataPanel.right = 'Durability';
		else
			E.db.datatexts.panels.LeftChatDataPanel.right = 'Friends';
			E.db.datatexts.panels.LeftChatDataPanel.left = 'Call to Arms';
			E.db.datatexts.panels.LeftChatDataPanel.middle = 'Durability';
		end
		E.db.datatexts.panels.LeftMiniPanel = 'Time';
		E.db.datatexts.panels.RightMiniPanel = 'Guild';

		if layout == 'tank' then
			E.db.datatexts.panels.DP_6.left = 'Avoidance';
			E.db.datatexts.panels.DP_6.middle = 'Vengeance';
			E.db.datatexts.panels.DP_6.right = 'Expertise';
			if E.db.lowresolutionset then
				E.db.datatexts.panels.RightChatDataPanel.left = 'Avoidance';
				E.db.datatexts.panels.RightChatDataPanel.middle = 'Vengeance';
				E.db.datatexts.panels.RightChatDataPanel.right = 'Expertise';
			else
				E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
				E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
				E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
			end
			E.db.datatexts.panels.DP_5.right = 'Armor';
		elseif layout == 'healer' then
			E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power';
			E.db.datatexts.panels.DP_6.middle = 'Haste';
			E.db.datatexts.panels.DP_6.right = 'Crit Chance';
			if E.db.lowresolutionset then
				E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power';
				E.db.datatexts.panels.RightChatDataPanel.middle = 'Crit Chance';
				E.db.datatexts.panels.RightChatDataPanel.right = 'MP5';
			else
				E.db.datatexts.panels.RightChatDataPanel.left = 'MP5';
				E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
				E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
			end
			E.db.datatexts.panels.DP_5.right = 'Armor';
		elseif layout == 'dpsCaster' then
			E.db.datatexts.panels.DP_6.left = 'Spell/Heal Power';
			E.db.datatexts.panels.DP_6.middle = 'Haste';
			E.db.datatexts.panels.DP_6.right = 'Crit Chance';
			if E.db.lowresolutionset then
				E.db.datatexts.panels.RightChatDataPanel.left = 'Spell/Heal Power';
				E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste';
				E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance';
			else
				E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
				E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
				E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
			end
			E.db.datatexts.panels.DP_5.right = 'Armor';
		else
			E.db.datatexts.panels.DP_6.left = 'Attack Power';
			E.db.datatexts.panels.DP_6.middle = 'Haste';
			E.db.datatexts.panels.DP_6.right = 'Crit Chance';
			if E.db.lowresolutionset then
				E.db.datatexts.panels.RightChatDataPanel.left = 'Attack Power';
				E.db.datatexts.panels.RightChatDataPanel.middle = 'Haste';
				E.db.datatexts.panels.RightChatDataPanel.right = 'Crit Chance';
			else
				E.db.datatexts.panels.RightChatDataPanel.left = 'Hit Rating';
				E.db.datatexts.panels.RightChatDataPanel.middle = 'Mastery';
				E.db.datatexts.panels.RightChatDataPanel.right = 'Spec Switch';
			end
			E.db.datatexts.panels.DP_5.right = 'Expertise';
		end
	end

	--Unitframes--
	do
		E.db.unitframe.smoothbars = false
		E.db.unitframe.font = "ElvUI Font"
		E.db.unitframe.fontsize = 9
		E.db.unitframe.fontOutline = 'OUTLINE'
		E.db.unitframe.colors.castColor = {
									["b"] = 0.3098039215686275,
									["g"] = 0.792156862745098,
									["r"] = 0.8274509803921568,
								}
		UF:Update_AllFrames()
		if layout == "healer" then
			E.db.unitframe.debuffHighlighting = true
		else
			E.db.unitframe.debuffHighlighting = false
		end
		E.db.unitframe.smartRaidFilter = false
		E.db.unitframe.colors.healthclass = true
		E.db.unitframe.colors.colorhealthbyvalue = false
			--Setting player frame
			E.db.unitframe.units.player.width = 200
			if layout == "healer" then
				E.db.unitframe.units.player.lowmana = 30;
			else
				E.db.unitframe.units.player.lowmana = 0;
			end
			E.db.unitframe.units.player.health.position = 'BOTTOMRIGHT';
			E.db.unitframe.units.player.health.text_format = "[healthcolor][health:current-percent:sl]"
			E.db.unitframe.units.player.power.text_format = "[powercolor][power:current:sl]";
			E.db.unitframe.units.player.fixTo = "power"
			E.db.unitframe.units.player.name.text_format = "[name:medium] [level]";
			E.db.unitframe.units.player.name.position = 'TOPLEFT';
			E.db.unitframe.units.player.pvp.text_format = "||cFFB04F4F[pvptimer]||r"
			E.db.unitframe.units.player.pvp.position = "BOTTOMLEFT"
			E.db.unitframe.units.player.portrait.enable = true
			E.db.unitframe.units.player.portrait.camDistanceScale = 1.5;
			E.db.unitframe.units.player.debuffs.enable = false;
			E.db.unitframe.units.player.castbar.format = 'CURRENTMAX';
			E.db.unitframe.units.player.castbar.width = 238
			E.db.unitframe.units.player.classbar.fill = 'fill'
			E.db.unitframe.units.player.classbar.height = 8
			E.db.unitframe.units.player.aurabar.enable = false
			--Setting target frame
			E.db.unitframe.units.target.width = 200
			E.db.unitframe.units.target.smartAuraDisplay = "DISABLED"
			E.db.unitframe.units.target.hideonnpc = false;
			E.db.unitframe.units.target.health.position = 'BOTTOMRIGHT';
			E.db.unitframe.units.target.power.position = 'RIGHT';
			E.db.unitframe.units.target.power.hideonnpc = false;
			E.db.unitframe.units.target.power.text_format = "[powercolor][power:current:sl]"
			E.db.unitframe.units.target.fixTo = "power"
			E.db.unitframe.units.target.name.text_format = "[name:medium] [level] [shortclassification]";
			E.db.unitframe.units.target.name.position = 'TOPLEFT';
			E.db.unitframe.units.target.portrait.enable = true
			E.db.unitframe.units.target.portrait.camDistanceScale = 1.5;
			E.db.unitframe.units.target.buffs.perrow = 9;
			E.db.unitframe.units.target.buffs.numrows = 2;
			E.db.unitframe.units.target.buffs.anchorPoint = 'TOPLEFT';
			E.db.unitframe.units.target.buffs.clickThrough = false
			E.db.unitframe.units.target.buffs.playerOnly.friendly = false
			E.db.unitframe.units.target.buffs.playerOnly.enemy = false
			E.db.unitframe.units.target.buffs.useBlacklist.friendly = false
			E.db.unitframe.units.target.buffs.useBlacklist.enemy = false
			E.db.unitframe.units.target.buffs.useWhitelist.friendly = false
			E.db.unitframe.units.target.buffs.useWhitelist.enemy = false
			E.db.unitframe.units.target.buffs.noDuration.friendly = false
			E.db.unitframe.units.target.buffs.noDuration.enemy = false
			E.db.unitframe.units.target.buffs.onlyDispellable.friendly = false
			E.db.unitframe.units.target.buffs.onlyDispellable.enemy = false
			E.db.unitframe.units.target.debuffs.perrow = 9;
			E.db.unitframe.units.target.debuffs.playerOnly.friendly = false
			E.db.unitframe.units.target.debuffs.playerOnly.enemy = false
			E.db.unitframe.units.target.debuffs.useBlacklist.friendly = false
			E.db.unitframe.units.target.debuffs.useBlacklist.enemy = false
			E.db.unitframe.units.target.debuffs.useWhitelist.friendly = false
			E.db.unitframe.units.target.debuffs.useWhitelist.enemy = false
			E.db.unitframe.units.target.debuffs.noDuration.friendly = false
			E.db.unitframe.units.target.debuffs.noDuration.enemy = false
			E.db.unitframe.units.target.debuffs.onlyDispellable.friendly = false
			E.db.unitframe.units.target.debuffs.onlyDispellable.enemy = false
			E.db.unitframe.units.target.debuffs.enable = true
			E.db.unitframe.units.target.debuffs.clickThrough = false
			E.db.unitframe.units.target.castbar.format = 'CURRENTMAX';
			if layout == "healer" then
				E.db.unitframe.units.target.castbar.width = 238
			else
				E.db.unitframe.units.target.castbar.width = 200
			end
			E.db.unitframe.units.target.aurabar.enable = false
			--Target of Target
			E.db.unitframe.units.targettarget.height = 26
			if layout == "healer" then
				E.db.unitframe.units.targettarget.width = 115
			else
				E.db.unitframe.units.targettarget.width = 120
			end
			E.db.unitframe.units.targettarget.name.text_format = "[name:medium]"
			E.db.unitframe.units.targettarget.debuffs.enable = false
			--Focus
			E.db.unitframe.units.focus.height = 42
			E.db.unitframe.units.focus.width = 179
			E.db.unitframe.units.focus.health.position = 'BOTTOMRIGHT'
			E.db.unitframe.units.focus.health.text_format = "[healthcolor][health:current-percent:sl]"
			E.db.unitframe.units.focus.power.text_format = "[powercolor][power:current:sl]"
			E.db.unitframe.units.focus.fixTo = "power"
			E.db.unitframe.units.focus.power.position = "RIGHT"
			E.db.unitframe.units.focus.name.text_format = "[name:medium]"
			E.db.unitframe.units.focus.name.position = 'TOPLEFT'
			E.db.unitframe.units.focus.debuffs.perrow = 8
			E.db.unitframe.units.focus.debuffs.anchorPoint = "TOPLEFT"
			E.db.unitframe.units.focus.castbar.format = 'CURRENTMAX'
			E.db.unitframe.units.focus.castbar.width = 179
			--Focus Target
			E.db.unitframe.units.focustarget.name.text_format = "[name:medium]"
			E.db.unitframe.units.focustarget.enable = true
			E.db.unitframe.units.focustarget.height = 34
			E.db.unitframe.units.focustarget.width = 179
			--Pet
			E.db.unitframe.units.pet.name.text_format = "[name:medium]"
			if layout == "healer" then
				E.db.unitframe.units.pet.width = 115
			else
				E.db.unitframe.units.pet.width = 128
			end
			--Pet Target
			E.db.unitframe.units.pettarget.name.text_format = "[name:medium]"
			E.db.unitframe.units.pettarget.enable = true
			if layout == "healer" then
				E.db.unitframe.units.pettarget.width = 115
			else
				E.db.unitframe.units.pettarget.width = 119
			end
			--Party
			if layout == "healer" then
				E.db.unitframe.units.party.point = "LEFT"
				E.db.unitframe.units.party.xOffset = 5
				E.db.unitframe.units.party.debuffs.perrow = 3
				E.db.unitframe.units.party.debuffs.anchorPoint = "BOTTOMLEFT"
				E.db.unitframe.units.party.debuffs.useFilter = "Blacklist"
				E.db.unitframe.units.party.debuffs.initialAnchor = "TOPLEFT"
				E.db.unitframe.units.party.roleIcon.position = "RIGHT"
				E.db.unitframe.units.party.width = 80
				E.db.unitframe.units.party.height = 52
				E.db.unitframe.units.party.healPrediction = true
				E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]"
				E.db.unitframe.units.party.health.position = "BOTTOM"
				E.db.unitframe.units.party.health.frequentUpdates = true
				E.db.unitframe.units.party.health.orientation = "VERTICAL"
			else
				E.db.unitframe.units.party.debuffs.perrow = 4
				E.db.unitframe.units.party.roleIcon.position = "TOPRIGHT"
				E.db.unitframe.units.party.health.position = "BOTTOMLEFT"
			end
			E.db.unitframe.units.party.xOffset = 1
			E.db.unitframe.units.party.yOffset = 1
			E.db.unitframe.units.party.debuffs.sizeOverride = 26
			E.db.unitframe.units.party.buffIndicator.colorIcons = false
			E.db.unitframe.units.party.power.height = 8
			E.db.unitframe.units.party.power.text_format = ""
			E.db.unitframe.units.party.name.position = "TOP"
			E.db.unitframe.units.party.name.text_format = "[name:medium] [difficultycolor][smartlevel]"
			--Raid 10
			if layout == "healer" then
				E.db.unitframe.units.raid10.health.frequentUpdates = true
				E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:dificit]"
				E.db.unitframe.units.raid10.health.orientation = "VERTICAL"
				E.db.unitframe.units.raid10.health.position = "BOTTOM"
			else
				E.db.unitframe.units.raid10.health.text_format = "[healthcolor][health:current]"
				E.db.unitframe.units.raid10.columnAnchorPoint = "LEFT"
				E.db.unitframe.units.raid10.point = "TOP"
			end
			E.db.unitframe.units.raid10.xOffset = 1
			E.db.unitframe.units.raid10.yOffset = 1
			E.db.unitframe.units.raid10.name.text_format = "[name:medium]"
			E.db.unitframe.units.raid10.buffIndicator.colorIcons = false
			E.db.unitframe.units.raid10.rdebuffs.size = 22
			E.db.unitframe.units.raid10.power.height = 8
			E.db.unitframe.units.raid10.power.text_format = ""
			E.db.unitframe.units.raid10.health.position = "BOTTOMLEFT"
			--Raid 25
			if layout == "healer" then
				E.db.unitframe.units.raid25.health.text_format = "[healthcolor][health:deficit]"
				E.db.unitframe.units.raid25.health.frequentUpdates = true
				E.db.unitframe.units.raid25.health.orientation = "VERTICAL"
				E.db.unitframe.units.raid25.health.position = "BOTTOM"
				E.db.unitframe.units.raid25.height = 36
			else
				E.db.unitframe.units.raid25.point = "TOP"
				E.db.unitframe.units.raid25.columnAnchorPoint = "LEFT"
				E.db.unitframe.units.raid25.health.text_format = ""
			end
			E.db.unitframe.units.raid25.xOffset = 1
			E.db.unitframe.units.raid25.yOffset = 1
			E.db.unitframe.units.raid25.buffIndicator.colorIcons = false
			E.db.unitframe.units.raid25.name.text_format = "[name:medium]"
			E.db.unitframe.units.raid25.rdebuffs.size = 22
			E.db.unitframe.units.raid25.power.height = 8
			E.db.unitframe.units.raid25.power.text_format = ""
			--Raid 40
			if layout == "healer" then
				E.db.unitframe.units.raid40.health.frequentUpdates = true
				E.db.unitframe.units.raid40.health.text_format = ""
				E.db.unitframe.units.raid40.health.orientation = "VERTICAL"
			else
				E.db.unitframe.units.raid40.health.text_format = ""
			end
			E.db.unitframe.units.raid40.height = 26
			E.db.unitframe.units.raid40.xOffset = 1
			E.db.unitframe.units.raid40.yOffset = 1
			E.db.unitframe.units.raid40.name.text_format = "[name:short]"
			E.db.unitframe.units.raid40.buffIndicator.colorIcons = false

			--Tank
			if layout == "healer" then
				E.db.unitframe.units.tank.enable = true
				E.db.unitframe.units.tank.targetsGroup.enable = false
				E.db.unitframe.units.tank.height = 24
			else
				E.db.unitframe.units.tank.enable = false
			end
			--Assist
			E.db.unitframe.units.assist.enable = false

			--Arena
			E.db.unitframe.units.arena.width = 200
			E.db.unitframe.units.arena.height = 40
			E.db.unitframe.units.arena.growthDirection = 'DOWN'
			E.db.unitframe.units.arena.health.position = 'BOTTOMRIGHT'
			E.db.unitframe.units.arena.health.text_format = "[healthcolor][health:current-percent:sl]"
			E.db.unitframe.units.arena.power.text_format = "[powercolor][power:current:sl]"
			E.db.unitframe.units.arena.power.position = 'RIGHT'
			E.db.unitframe.units.arena.fixTo = "power"
			E.db.unitframe.units.arena.name.text_format = "[name:long]"
			E.db.unitframe.units.arena.name.position = 'TOPLEFT'
			E.db.unitframe.units.arena.buffs.enable = false
			E.db.unitframe.units.arena.debuffs.enable = false
			E.db.unitframe.units.arena.castbar.format = 'CURRENTMAX'
			E.db.unitframe.units.arena.castbar.height = 15
			E.db.unitframe.units.arena.castbar.width = 200
			E.db.unitframe.units.arena.castbar.color = {
									["r"] = 0.8274509803921568,
									["g"] = 0.792156862745098,
									["b"] = 0.3098039215686275,
								}
			--Boss
			E.db.unitframe.units.boss.width = 200
			E.db.unitframe.units.boss.height = 40
			E.db.unitframe.units.boss.growthDirection = 'DOWN'
			E.db.unitframe.units.boss.health.position = 'BOTTOMRIGHT'
			E.db.unitframe.units.boss.health.text_format = "[healthcolor][health:current-percent]"
			E.db.unitframe.units.boss.power.height = 10
			E.db.unitframe.units.boss.power.text_format = "[powercolor][power:current:sl]"
			E.db.unitframe.units.boss.power.position = 'RIGHT'
			E.db.unitframe.units.boss.fixTo = "power"
			E.db.unitframe.units.boss.name.text_format = "[name:long]"
			E.db.unitframe.units.boss.name.position = 'TOPLEFT'
			E.db.unitframe.units.boss.buffs.enable = false
			E.db.unitframe.units.boss.debuffs.enable = false
			E.db.unitframe.units.boss.castbar.format = 'CURRENTMAX'
			E.db.unitframe.units.boss.castbar.height = 15
			E.db.unitframe.units.boss.castbar.width = 200
			E.db.unitframe.units.boss.castbar.color = {
									["r"] = 0.8274509803921568,
									["g"] = 0.792156862745098,
									["b"] = 0.3098039215686275,
								}
			--Power text
			E.db.sle.powtext = true

	end

	--Actionbars
	do
		E.db.actionbar.font = "ElvUI Font"
		E.db.actionbar.fontOutline = 'OUTLINE'
		E.db.actionbar.hotkeytext = false
		E.db.actionbar.keyDown = false
		E.db.actionbar.bar1.point = "TOPLEFT"
		E.db.actionbar.bar1.buttonsPerRow = 3
		E.db.actionbar.bar1.buttonsize = 26
		E.db.actionbar.bar1.backdrop = true
		E.db.actionbar.bar2.enabled = true
		E.db.actionbar.bar2.point = "TOPLEFT"
		E.db.actionbar.bar2.backdrop = true
		E.db.actionbar.bar2.buttonsPerRow = 3
		E.db.actionbar.bar2.buttonsize = 26
		E.db.actionbar.bar2.visibility = "[petbattle] hide; show"
		E.db.actionbar.bar3.point = "TOPLEFT"
		E.db.actionbar.bar3.buttons = 12
		E.db.actionbar.bar3.buttonsPerRow = 3
		E.db.actionbar.bar3.visibility = "[petbattle] hide; show"
		E.db.actionbar.bar3.buttonsize = 26
		E.db.actionbar.bar3.backdrop = true
		E.db.actionbar.bar4.enabled = false
		--E.db.actionbar.bar5.enabled = true
		E.db.actionbar.bar5.buttons = 12
		E.db.actionbar.bar5.buttonspacing = 2
		E.db.actionbar.bar5.mouseover = true
		E.db.actionbar.bar5.buttonsize = 24
		E.db.actionbar.bar5.backdrop = true
		E.db.actionbar.microbar.enabled = true
		E.db.actionbar.microbar.buttonsPerRow = 2
		E.db.actionbar.microbar.alpha = 0.2
		E.db.actionbar.stanceBar.buttonspacing = 2
		E.db.actionbar.stanceBar.backdrop = true
		E.db.actionbar.stanceBar.buttonsPerRow = 1
		E.db.actionbar.stanceBar.buttonsize = 22
		E.db.actionbar.barPet.point = "TOPLEFT"
		E.db.actionbar.barPet.buttonspacing = 1
		E.db.actionbar.barPet.backdrop = false
		E.db.actionbar.barPet.buttonsPerRow = 5
		E.db.actionbar.barPet.buttonsize = 20
	end

	--Raid marks--
	E.db.sle.marks.growth = "LEFT"

	--Background Frames--
	E.db.sle.backgrounds.right.enabled = true
	E.db.sle.backgrounds.right.pethide = false
	E.db.sle.backgrounds.right.xoffset = 70
	E.db.sle.backgrounds.right.yoffset = -2
	E.db.sle.backgrounds.left.enabled = true
	E.db.sle.backgrounds.left.pethide = false
	E.db.sle.backgrounds.left.xoffset = -70
	E.db.sle.backgrounds.left.yoffset = -2

	--Exp/Rep Bars--
	E.db.sle.exprep.explong = true
	E.db.sle.exprep.replong = true

	--Combat icon--
	E.db.sle.combatico.pos = 'TOPRIGHT'

	--Loot History--
	E.db.sle.lootwin = true
	E.db.sle.lootalpha = 0.5

	--LFR--
	E.db.datatexts.lfrshow = true

	--Errors--
	E.db.sle.errors = true

	--UI Buttons--
	E.db.sle.uibuttons.enable = true

	--Moving stuff--
	do
		if layout == "healer" then
			E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-313245"
			E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0177"
			E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM313245"
			E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM0196"
			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMElvUIParentBOTTOM271220"
			E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-270210"
			E.db.movers.ElvUF_PetTargetMover = "BOTTOMElvUIParentBOTTOM-270185"
			E.db.movers.PetAB = "BOTTOMElvUIParentBOTTOM-275143"
			E.db.movers.TotemBarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT547298"
			E.db.movers.TempEnchantMover = "BOTTOMElvUIParentBOTTOM-243309"
			E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM0251"
			E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM0215"
			E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM0215"
			E.db.movers.ElvUF_Raid40Mover = "BOTTOMElvUIParentBOTTOM0215"
			E.db.movers.ElvUF_TankMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT428245"
			E.db.movers.BossButton = "BOTTOMLEFTElvUIParentBOTTOMLEFT326268"
		else
			E.db.movers.ElvUF_PlayerMover = "BOTTOMElvUIParentBOTTOM-228192"
			E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMElvUIParentBOTTOM0194"
			E.db.movers.ElvUF_TargetMover = "BOTTOMElvUIParentBOTTOM228192"
			E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMElvUIParentBOTTOM228169"
			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT-835169"
			E.db.movers.ElvUF_PetMover = "BOTTOMElvUIParentBOTTOM-264157"
			E.db.movers.ElvUF_PetTargetMover = "BOTTOMLEFTUIParentBOTTOMLEFT835169"
			E.db.movers.PetAB = "BOTTOMElvUIParentBOTTOM-275115"
			E.db.movers.TotemBarMover = "BOTTOMElvUIParentBOTTOM-275245"
			E.db.movers.TempEnchantMover = "BOTTOMElvUIParentBOTTOM-158255"
			E.db.movers.ElvUF_PartyMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245"
			E.db.movers.ElvUF_Raid10Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245"
			E.db.movers.ElvUF_Raid25Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245"
			E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0245"
			E.db.movers.BossButton = "BOTTOMElvUIParentBOTTOM0237"
		end
		E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM019"
		E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM8519"
		E.db.movers.ElvAB_3 = "BOTTOMElvUIParentBOTTOM-8519"
		E.db.movers.ElvAB_4 = "TOPRIGHTUIParentTOPRIGHT-311-319"
		E.db.movers.ElvAB_5 = "BOTTOMElvUIParentBOTTOM-24919"
		E.db.movers.MinimapMover = "TOPRIGHTElvUIParentTOPRIGHT2-18"
		E.db.movers.UIBFrameMover = "TOPLEFTElvUIParentTOPLEFT0-451"
		E.db.movers.WatchFrameMover = "TOPRIGHTUIParentTOPRIGHT-237-231"
		E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-1-217"
		E.db.movers.ArenaHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-1-217"
		E.db.movers.PetBattleABMover = "BOTTOMElvUIParentBOTTOM019"
		E.db.movers.ShiftAB = "BOTTOMElvUIParentBOTTOM-14019"
		if UnitLevel('player') == 90 then
			E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-19"
			E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-19"
			E.db.movers.PvPMover = "TOPElvUIParentTOP-5-50"
			E.db.movers.LocationMover = "TOPElvUIParentTOP0-30"
			E.db.movers.LocationLiteMover = "TOPElvUIParentTOP0-30"
			E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-32"
		else
			E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-19"
			E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-30"
			E.db.movers.LocationMover = "TOPElvUIParentTOP0-41"
			E.db.movers.LocationLiteMover = "TOPElvUIParentTOP0-41"
			E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43"
			E.db.movers.PvPMover = "TOPElvUIParentTOP-5-61"
		end
		E.db.movers.MarkMover = "BOTTOMElvUIParentBOTTOM0132"
		E.db.movers.MicrobarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT2244"
		E.db.movers.LootFrameMover = "TOPLEFTUIParentTOPLEFT60-360"
		E.db.movers.AurasMover = "TOPRIGHTElvUIParentTOPRIGHT-208-19"
		E.db.movers.BagsMover = "TOPLEFTUIParentTOPLEFT0-19"
		E.db.movers.GMMover = "TOPLEFTElvUIParentTOPLEFT402-19"
		E.db.movers.BNETMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT0479"
		E.db.movers.ElvUF_FocusMover = "BOTTOMElvUIParentBOTTOM239103"
		E.db.movers.ElvUF_FocusTargetMover = "BOTTOMElvUIParentBOTTOM23934"
		E.db.movers.VehicleSeatMover = "TOPLEFTElvUIParentTOPLEFT185-38"
		E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3050"
		E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3050"
		E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019"
		E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019"
		E.db.movers.Dashboard = "TOPLEFTElvUIParentTOPLEFT0-19"
		E.db.movers.RaidUtility_Mover = "TOPElvUIParentTOP-283-19"
		E.db.movers.AltPowerBarMover = "TOPElvUIParentTOP0-135"
	end

	E:UpdateAll(true)
end

function E:RepoocSetup() --The function to switch from classic ElvUI settings to Repooc's
	InstallStepComplete.message = L["Repooc's Defaults Set"]
	InstallStepComplete:Show()
	if not E.db.movers then E.db.movers = {}; end

	layout = E.db.layoutSet  --Pull which layout was selected if any.

	--General Options
	E.db.general.bottomPanel = true
	E.db.general.topPanel = true
	E.db.general.backdropfadecolor = {
		["b"] = 0.06,
		["g"] = 0.06,
		["r"] = 0.06,
	}
	E.db.general.valuecolor = {
		["b"] = 0.59,
		["g"] = 1,
		["r"] = 0,
	}
	E.db.general.vendorGrays = true
	E.db.general.bordercolor = {
		["b"] = 0.31,
		["g"] = 0.31,
		["r"] = 0.31,
	}
	E.db.general.experience.enable = true
	E.db.general.reputation.enable = true
	E.db.general.interruptAnnounce = "RAID"

	--Bags
	E.db.bags.xOffset = 3

	E.db.hideTutorial = 1

	--Chat
	E.db.chat.hyperlinkHover = false
	E.db.chat.editBoxPosition = "ABOVE_CHAT"
	E.db.chat.fontOutline = "OUTLINE"
	E.db.chat.panelBackdropNameLeft = "Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga"
	E.db.chat.panelBackdropNameRight = "Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga"
	E.db.chat.panelTabBackdrop = false
	E.db.chat.panelWidth = 433
	E.db.chat.tabFontSize = 11
	E.db.chat.timeStampFormat = "%I:%M %p "

	--Tooltip
	E.db.tooltip.count = false
	E.db.tooltip.spellid = false

	--Datatext
	do
		E.db.datatexts.minimapPanels = false
		E.db.datatexts.fontOutline = "OUTLINE"
		E.db.datatexts.lfrshow = true

		E.db.sle.datatext.bottom.enabled = true  --Checked
		E.private.sle.datatext.bottomhide = true
		E.db.sle.datatext.chatleft.width = 417
		E.db.sle.datatext.chatright.width = 417
		E.db.sle.datatext.dp1.enabled = false
		E.db.sle.datatext.dp2.enabled = false
		E.db.sle.datatext.dp3.enabled = false
		E.db.sle.datatext.dp4.enabled = false
		E.db.sle.datatext.dp5.enabled = true
		E.db.sle.datatext.dp5.width = 433
		E.private.sle.datatext.dp5hide = true
		E.db.sle.datatext.dp6.enabled = true
		E.db.sle.datatext.dp6.width = 433
		E.private.sle.datatext.dp6hide = true
		E.db.sle.datatext.top.enabled = true
		E.private.sle.datatext.tophide = true

		--Datatext Panels Presets
		E.db.datatexts.panels['DP_1']['left'] = ""
		E.db.datatexts.panels['DP_1']['middle'] = ""
		E.db.datatexts.panels['DP_1']['righ'] = ""
		E.db.datatexts.panels['DP_2']['left'] = ""
		E.db.datatexts.panels['DP_2']['middle'] = ""
		E.db.datatexts.panels['DP_2']['right'] = ""
		E.db.datatexts.panels['DP_3']['left'] = ""
		E.db.datatexts.panels['DP_3']['middle'] = ""
		E.db.datatexts.panels['DP_3']['right'] = ""
		E.db.datatexts.panels['DP_4']['left'] = ""
		E.db.datatexts.panels['DP_4']['middle'] = ""
		E.db.datatexts.panels['DP_4']['right'] = ""
		E.db.datatexts.panels['DP_5']['left'] = "Durability"
		E.db.datatexts.panels['DP_5']['middle'] = ""
		E.db.datatexts.panels['DP_5']['right'] = ""
		E.db.datatexts.panels['DP_6']['left'] = ""
		E.db.datatexts.panels['DP_6']['middle'] = ""
		E.db.datatexts.panels['DP_6']['right'] = ""
		E.db.datatexts.panels['LeftChatDataPanel']['left'] = "Bags"
		E.db.datatexts.panels['LeftChatDataPanel']['middle'] = ""
		E.db.datatexts.panels['LeftChatDataPanel']['right'] = ""
		E.db.datatexts.panels['RightChatDataPanel']['left'] = ""
		E.db.datatexts.panels['RightChatDataPanel']['middle'] = "Gold"
		E.db.datatexts.panels['RightChatDataPanel']['right'] = "Time"
		E.db.datatexts.panels['Top_Center'] = "Version"
		E.db.datatexts.panels['Bottom_Panel'] = "System"
		E.db.datatexts.panels['LeftMiniPanel'] = ""
		E.db.datatexts.panels['RightMiniPanel'] = ""

		--Datatext Panels Spec Specific
		if layout == 'tank' then
			E.db.datatexts.panels.DP_5.middle = ""
			E.db.datatexts.panels.DP_5.right = ""
			E.db.datatexts.panels.DP_6.left = ""
			E.db.datatexts.panels.DP_6.middle = ""
		elseif layout == 'healer' then
			E.db.datatexts.panels.DP_5.middle = "MP5"
			E.db.datatexts.panels.DP_5.right = "Spell/Heal Power"
			E.db.datatexts.panels.DP_6.left = "Haste"
			E.db.datatexts.panels.DP_6.middle = "Crit Chance"
		elseif layout == 'dpsCaster' then
			E.db.datatexts.panels.DP_5.middle = ""
			E.db.datatexts.panels.DP_5.right = ""
			E.db.datatexts.panels.DP_6.left = ""
			E.db.datatexts.panels.DP_6.middle = ""
		else
			E.db.datatexts.panels.DP_5.middle = ""
			E.db.datatexts.panels.DP_5.right = ""
			E.db.datatexts.panels.DP_6.left = ""
			E.db.datatexts.panels.DP_6.middle = ""
		end
	end

	--Unitframes
	do
		--Raid10
		E.db.unitframe.units.raid10.xOffset = 2
		--E.db.unitframe.units.raid10.columnSpacing = 2
		E.db.unitframe.units.raid10.healPrediction = true
		E.db.unitframe.units.raid10.width = 79

		--Target
		E.db.unitframe.units.target.aurabar.attachTo = "BUFFS"
		E.db.unitframe.units.target.smartAuraDisplay = "SHOW_DEBUFFS_ON_FRIENDLIES"
		E.db.unitframe.units.target.buffs.playerOnly.friendly = true
		E.db.unitframe.units.target.debuffs.enable = false
		E.db.unitframe.units.target.power.position = "BOTTOMLEFT"
		E.db.unitframe.units.target.power.hideonnpc = false
		E.db.unitframe.units.target.health.position = "LEFT"

		--Party
		E.db.unitframe.units.party.columnAnchorPoint = "LEFT"
		E.db.unitframe.units.party.healPrediction = true
		E.db.unitframe.units.party.height = 52
		E.db.unitframe.units.party.point = "LEFT"
		E.db.unitframe.units.party.width = 80
		E.db.unitframe.units.party.xOffset = 5
		E.db.unitframe.units.party.debuffs.anchorPoint = "BOTTOMLEFT"
		E.db.unitframe.units.party.debuffs.initialAnchor = "TOPLEFT"
		E.db.unitframe.units.party.debuffs.sizeOverride = 0
		E.db.unitframe.units.party.debuffs.useFilter = "Blacklist"
		E.db.unitframe.units.party.health.frequentUpdates = true
		E.db.unitframe.units.party.health.orientation = "VERTICAL"
		E.db.unitframe.units.party.health.position = "BOTTOM"
		E.db.unitframe.units.party.health.text_format = "[healthcolor][health:deficit]"
		E.db.unitframe.units.party.targetsGroup.anchorPoint = "TOP"
		E.db.unitframe.units.party.targetsGroup.initialAnchor = "BOTTOM"
		E.db.unitframe.units.party.targetsGroup.width = 80
		E.db.unitframe.units.party.targetsGroup.xOffset = 0
		E.db.unitframe.units.party.targetsGroup.yOffset = 1
		E.db.unitframe.units.party.name.position = "TOP"
		E.db.unitframe.units.party.name.text_format = "[namecolor][name:medium]"
		E.db.unitframe.units.party.petsGroup.anchorPoint = "TOP"
		E.db.unitframe.units.party.petsGroup.enable = true
		E.db.unitframe.units.party.petsGroup.initialAnchor = "BOTTOM"
		E.db.unitframe.units.party.petsGroup.width = 80
		E.db.unitframe.units.party.petsGroup.xOffset = 0
		E.db.unitframe.units.party.petsGroup.yOffset = 1

		--Raid25
		--E.db.unitframe.units.raid25.columnSpacing = 2
		E.db.unitframe.units.raid25.customTexts = {}
		E.db.unitframe.units.raid25.healPrediction = true
		E.db.unitframe.units.raid25.health.frequentUpdates = true
		E.db.unitframe.units.raid25.health.orientation = "VERTICAL"
		E.db.unitframe.units.raid25.width = 79
		E.db.unitframe.units.raid25.xOffset = 2

		--Raid40
		--E.db.unitframe.units.raid40.columnSpacing = 2
		E.db.unitframe.units.raid40.healPrediction = true
		E.db.unitframe.units.raid40.health.frequentUpdates = true
		E.db.unitframe.units.raid40.health.text = true
		E.db.unitframe.units.raid40.health.orientation = "VERTICAL"
		E.db.unitframe.units.raid40.height = 36
		E.db.unitframe.units.raid40.name.position = "TOP"
		E.db.unitframe.units.raid40.roleIcon.enable = true
		E.db.unitframe.units.raid40.width = 79
		E.db.unitframe.units.raid40.xOffset = 2

		--Arena
		E.db.unitframe.units.arena.castbar.width = 200
		E.db.unitframe.units.arena.width = 200

		--Player
		E.db.unitframe.units.player.health.position = "TOPRIGHT"
		E.db.unitframe.units.player.power.position = "BOTTOMRIGHT"

		--Boss
		E.db.unitframe.units.boss.width = 200
		E.db.unitframe.units.boss.castbar.width = 200

		E.db.unitframe.colors.healthclass = true
		E.db.unitframe.colors.auraBarBuff = {
			["b"] = 0.59,
			["g"] = 1,
			["r"] = 0,
		}
		E.db.unitframe.colors.castColor = {
			["b"] = 0.59,
			["g"] = 1,
			["r"] = 0,
		}
	end

	--Actionbars
	--Bar 2
	E.db.actionbar.bar2.enabled = true
	--Bar 3
	E.db.actionbar.bar3.enabled = false
	--Bar 4
	E.db.actionbar.bar4.enabled = true
	E.db.actionbar.bar4.backdrop = false
	E.db.actionbar.bar4.buttonsize = 28
	E.db.actionbar.bar4.buttonspacing = 1
	--Bar 5
	E.db.actionbar.bar5.enabled = false

	--UIButtons
	E.db.sle.uibuttons.enable = true
	E.db.sle.uibuttons.position = "uib_hor"

	--SLE Tooltip
	E.db.sle.castername = true

	do
		if layout == "healer" then
			E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460187"
			E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460187"
			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460129"
			E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460129"
			E.db.movers.ElvUF_FocusMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50052"
			E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074"
			E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460166"
			E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM091"
			E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM091"
			E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT13202"
			E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460166"
			E.db.movers.UIBFrameMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT329175"
			E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM021"
			E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM055"
			E.db.movers.ElvAB_4 = "TOPRIGHTElvUIParentTOPRIGHT-4-185"
			E.db.movers.ElvUF_FocusCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50031"
			E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3110"
			E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019"
			E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3100"
			E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-21"
			E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43"
			E.db.movers.WatchFrameMover = "TOPLEFTElvUIParentTOPLEFT115-123"
			E.db.movers.LootFrameMover = "TOPRIGHTElvUIParentTOPRIGHT-140-356"
			E.db.movers.RaidUtility_Mover = "TOPLEFTElvUIParentTOPLEFT524-4"
			E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-91-210"
			E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019"
			E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-32"

		else
			E.db.movers.ElvUF_PlayerMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460187"
			E.db.movers.ElvUF_TargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460187"
			E.db.movers.ElvUF_TargetTargetMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460129"
			E.db.movers.ElvUF_PetMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460129"
			E.db.movers.ElvUF_FocusMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50052"
			E.db.movers.ElvUF_PartyMover = "BOTTOMElvUIParentBOTTOM074"
			E.db.movers.ElvUF_PlayerCastbarMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT460166"
			E.db.movers.ElvUF_Raid10Mover = "BOTTOMElvUIParentBOTTOM091"
			E.db.movers.ElvUF_Raid25Mover = "BOTTOMElvUIParentBOTTOM091"
			E.db.movers.ElvUF_Raid40Mover = "BOTTOMLEFTElvUIParentBOTTOMLEFT13202"
			E.db.movers.ElvUF_TargetCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-460166"
			E.db.movers.UIBFrameMover = "BOTTOMLEFTElvUIParentBOTTOMLEFT329175"
			E.db.movers.ElvAB_1 = "BOTTOMElvUIParentBOTTOM021"
			E.db.movers.ElvAB_2 = "BOTTOMElvUIParentBOTTOM055"
			E.db.movers.ElvAB_4 = "TOPRIGHTElvUIParentTOPRIGHT-4-185"
			E.db.movers.ElvUF_FocusCastbarMover = "BOTTOMRIGHTElvUIParentBOTTOMRIGHT-50031"
			E.db.movers.DP_6_Mover = "BOTTOMElvUIParentBOTTOM3110"
			E.db.movers.LeftChatMover = "BOTTOMLEFTUIParentBOTTOMLEFT019"
			E.db.movers.DP_5_Mover = "BOTTOMElvUIParentBOTTOM-3100"
			E.db.movers.ReputationBarMover = "TOPElvUIParentTOP0-21"
			E.db.movers.AlertFrameMover = "TOPElvUIParentTOP0-43"
			E.db.movers.WatchFrameMover = "TOPLEFTElvUIParentTOPLEFT115-123"
			E.db.movers.LootFrameMover = "TOPRIGHTElvUIParentTOPRIGHT-140-356"
			E.db.movers.RaidUtility_Mover = "TOPLEFTElvUIParentTOPLEFT524-4"
			E.db.movers.BossHeaderMover = "TOPRIGHTElvUIParentTOPRIGHT-91-210"
			E.db.movers.RightChatMover = "BOTTOMRIGHTUIParentBOTTOMRIGHT019"
			E.db.movers.ExperienceBarMover = "TOPElvUIParentTOP0-32"
		end
	end

	E:UpdateAll(true)
end

function E:HudSimple()
	local H = E:GetModule('HUD')
	InstallStepComplete.message = L["Simple Layout Set"]
	InstallStepComplete:Show()
	H:SimpleLayout()
	H:UpdateAllFrames()
end

function E:HudDefault()
	local H = E:GetModule('HUD')
	InstallStepComplete.message = L["Default Layout"]
	InstallStepComplete:Show()
	E:CopyTable(E.db.hud,P.hud)
	H:UpdateAllFrames()
end

local function InstallComplete()
	E.private.install_complete = E.version

	if GetCVarBool("Sound_EnableMusic") then
		StopMusic()
	end

	ReloadUI()
end

local function ResetAll()
	InstallNextButton:Disable()
	InstallPrevButton:Disable()
	InstallOption1Button:Hide()
	InstallOption1Button:SetScript("OnClick", nil)
	InstallOption1Button:SetText("")
	InstallOption2Button:Hide()
	InstallOption2Button:SetScript('OnClick', nil)
	InstallOption2Button:SetText('')
	InstallOption3Button:Hide()
	InstallOption3Button:SetScript('OnClick', nil)
	InstallOption3Button:SetText('')
	InstallOption4Button:Hide()
	InstallOption4Button:SetScript('OnClick', nil)
	InstallOption4Button:SetText('')
	ElvUIInstallFrame.SubTitle:SetText("")
	ElvUIInstallFrame.Desc1:SetText("")
	ElvUIInstallFrame.Desc2:SetText("")
	ElvUIInstallFrame.Desc3:SetText("")
	ElvUIInstallFrame:Size(550, 400)
end

local function SetPage(PageNum)
	CURRENT_PAGE = PageNum
	ResetAll()
	InstallStatus:SetValue(PageNum)

	local f = ElvUIInstallFrame

	if PageNum == MAX_PAGE then
		InstallNextButton:Disable()
	else
		InstallNextButton:Enable()
	end

	if PageNum == 1 then
		InstallPrevButton:Disable()
	else
		InstallPrevButton:Enable()
	end

	if PageNum == 1 then
		f.SubTitle:SetText(format(L["Welcome to ElvUI version %s!"], E.version))
		f.Desc1:SetText(L["This install process will help you learn some of the features in ElvUI has to offer and also prepare your user interface for usage."])
		f.Desc2:SetText(L["The in-game configuration menu can be accesses by typing the /ec command or by clicking the 'C' button on the minimap. Press the button below if you wish to skip the installation process."])
		f.Desc3:SetText(L["Please press the continue button to go onto the next step."])

		InstallOption1Button:Show()
		InstallOption1Button:SetScript("OnClick", InstallComplete)
		InstallOption1Button:SetText(L["Skip Process"])
	elseif PageNum == 2 then
		f.SubTitle:SetText(L["CVars"])
		f.Desc1:SetText(L["This part of the installation process sets up your World of Warcraft default options it is recommended you should do this step for everything to behave properly."])
		f.Desc2:SetText(L["Please click the button below to setup your CVars."])
		f.Desc3:SetText(L["Importance: |cff07D400High|r"])
		InstallOption1Button:Show()
		InstallOption1Button:SetScript("OnClick", SetupCVars)
		InstallOption1Button:SetText(L["Setup CVars"])
	elseif PageNum == 3 then
		f.SubTitle:SetText(L["Chat"])
		f.Desc1:SetText(L["This part of the installation process sets up your chat windows names, positions and colors."])
		f.Desc2:SetText(L["The chat windows function the same as Blizzard standard chat windows, you can right click the tabs and drag them around, rename, etc. Please click the button below to setup your chat windows."])
		f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"])
		InstallOption1Button:Show()
		InstallOption1Button:SetScript("OnClick", SetupChat)
		InstallOption1Button:SetText(L["Setup Chat"])
	elseif PageNum == 4 then
		f.SubTitle:SetText(L["Pixel Perfect"])
		f.Desc1:SetText(L['The Pixel Perfect option will change the overall apperance of your UI. Using Pixel Perfect is a slight performance increase over the traditional layout.'])
		f.Desc2:SetText(L['Using this option will cause your borders around frames to be 1 pixel wide instead of 3 pixel. You may have to finish the installation to notice a differance. By default this is enabled.'])
		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])

		InstallOption1Button:Show()
		InstallOption1Button:SetScript('OnClick', function() E:SetupPixelPerfect(true) end)
		InstallOption1Button:SetText(L["Enable"])
		InstallOption2Button:Show()
		InstallOption2Button:SetScript('OnClick', function() E:SetupPixelPerfect(false) end)
		InstallOption2Button:SetText(L['Disable'])
	elseif PageNum == 5 then
		f.SubTitle:SetText(L['Theme Setup'])
		f.Desc1:SetText(L['Choose a theme layout you wish to use for your initial setup.'])
		f.Desc2:SetText(L['You can always change fonts and colors of any element of elvui from the in-game configuration.'])
		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])

		InstallOption1Button:Show()
		InstallOption1Button:SetScript('OnClick', function() E:SetupTheme('classic') end)
		InstallOption1Button:SetText(L["Classic"])
		InstallOption2Button:Show()
		InstallOption2Button:SetScript('OnClick', function() E:SetupTheme('default') end)
		InstallOption2Button:SetText(L['Dark'])
		InstallOption3Button:Show()
		InstallOption3Button:SetScript('OnClick', function() E:SetupTheme('class') end)
		InstallOption3Button:SetText(CLASS)
	elseif PageNum == 6 then
		f.SubTitle:SetText(L["Resolution"])
		f.Desc1:SetText(format(L["Your current resolution is %s, this is considered a %s resolution."], E.resolution, E.lowversion == true and L["low"] or L["high"]))
		if E.lowversion then
			f.Desc2:SetText(L["This resolution requires that you change some settings to get everything to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["You may need to further alter these settings depending how low you resolution is."])
			f.Desc3:SetText(L["Importance: |cff07D400High|r"])
		else
			f.Desc2:SetText(L["This resolution doesn't require that you change settings for the UI to fit on your screen."].." "..L["Click the button below to resize your chat frames, unitframes, and reposition your actionbars."].." "..L["This is completely optional."])
			f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])
		end

		InstallOption1Button:Show()
		InstallOption1Button:SetScript('OnClick', function() E.SetupResolution('high') end)
		InstallOption1Button:SetText(L["High Resolution"])
		InstallOption2Button:Show()
		InstallOption2Button:SetScript('OnClick', function() E.SetupResolution('low') end)
		InstallOption2Button:SetText(L['Low Resolution'])
	elseif PageNum == 7 then
		f.SubTitle:SetText(L["Layout"])
		f.Desc1:SetText(L["You can now choose what layout you wish to use based on your combat role."])
		f.Desc2:SetText(L["This will change the layout of your unitframes, raidframes, and datatexts."])
		f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"])
		InstallOption1Button:Show()
		InstallOption1Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('tank') end)
		InstallOption1Button:SetText(L['Tank'])
		InstallOption2Button:Show()
		InstallOption2Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('healer') end)
		InstallOption2Button:SetText(L['Healer'])
		InstallOption3Button:Show()
		InstallOption3Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsMelee') end)
		InstallOption3Button:SetText(L['Physical DPS'])
		InstallOption4Button:Show()
		InstallOption4Button:SetScript('OnClick', function() E.db.layoutSet = nil; E:SetupLayout('dpsCaster') end)
		InstallOption4Button:SetText(L['Caster DPS'])
	elseif PageNum == 8 then
		f.SubTitle:SetText(L["Auras System"])
		f.Desc1:SetText(L["Select the type of aura system you want to use with ElvUI's unitframes. The integrated system utilizes both aura-bars and aura-icons. The icons only system will display only icons and aurabars won't be used. The classic system will configure your auras to how they were pre-v4."])
		f.Desc2:SetText(L["If you have an icon or aurabar that you don't want to display simply hold down shift and right click the icon for it to disapear."])
		f.Desc3:SetText(L["Importance: |cffD3CF00Medium|r"])
		InstallOption1Button:Show()
		InstallOption1Button:SetScript('OnClick', function() SetupAuras('classic') end)
		InstallOption1Button:SetText(L['Classic'])
		InstallOption2Button:Show()
		InstallOption2Button:SetScript('OnClick', function() SetupAuras() end)
		InstallOption2Button:SetText(L['Icons Only'])
		InstallOption3Button:Show()
		InstallOption3Button:SetScript('OnClick', function() SetupAuras('integrated') end)
		InstallOption3Button:SetText(L['Integrated'])
	elseif PageNum == 9 then --The new page
		f.SubTitle:SetText(L["Shadow & Light Settings"])
		f.Desc1:SetText(L["You can now choose if you what to use one of authors' set of options. This will change not only the positioning of some elements but also change a bunch of other options."])
		f.Desc2:SetText(L["SLE_Install_Text2"])
		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])

		InstallOption1Button:Show()
		InstallOption1Button:SetScript('OnClick', function() E:DarthSetup() end)
		InstallOption1Button:SetText(L["Darth's Config"])
		InstallOption2Button:Show()
		InstallOption2Button:SetScript('OnClick', function() E:RepoocSetup() end)
		InstallOption2Button:SetText(L["Repooc's Config"])
	elseif PageNum == 10 and IsAddOnLoaded("ElvUI_Hud") then --Hud's page if enabled
		f.SubTitle:SetText("ElvUI Hud")
		f.Desc1:SetText(L["Thank you for using ElvUI Hud!"])
		f.Desc2:SetText(L["Here you can choose between the simple layout (only player health and power) or the default layout for the hud"])
		f.Desc3:SetText(L["Importance: |cffFF0000Low|r"])

		InstallOption1Button:Show()
		InstallOption1Button:SetScript('OnClick', function() E:HudSimple() end)
		InstallOption1Button:SetText(L["Simple Layout"])
		InstallOption2Button:Show()
		InstallOption2Button:SetScript('OnClick', function() E:HudDefault() end)
		InstallOption2Button:SetText(L["Default Layout"])
	elseif PageNum == 10 and not IsAddOnLoaded("ElvUI_Hud") then --Finish install if Hud disabled
		f.SubTitle:SetText(L["Installation Complete"])
		f.Desc1:SetText(L["You are now finished with the installation process. If you are in need of technical support please visit us at http://www.tukui.org."])
		f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."])
		InstallOption1Button:Show()
		InstallOption1Button:SetScript("OnClick", InstallComplete)
		InstallOption1Button:SetText(L["Finished"])
		ElvUIInstallFrame:Size(550, 350)
	elseif PageNum == 11 then --Finish install if Hud enabled
		f.SubTitle:SetText(L["Installation Complete"])
		f.Desc1:SetText(L["You are now finished with the installation process. If you are in need of technical support please visit us at http://www.tukui.org."])
		f.Desc2:SetText(L["Please click the button below so you can setup variables and ReloadUI."])
		InstallOption1Button:Show()
		InstallOption1Button:SetScript("OnClick", InstallComplete)
		InstallOption1Button:SetText(L["Finished"])
		ElvUIInstallFrame:Size(550, 350)
	end
end

local function NextPage()
	if CURRENT_PAGE ~= MAX_PAGE then
		CURRENT_PAGE = CURRENT_PAGE + 1
		SetPage(CURRENT_PAGE)
	end
end

local function PreviousPage()
	if CURRENT_PAGE ~= 1 then
		CURRENT_PAGE = CURRENT_PAGE - 1
		SetPage(CURRENT_PAGE)
	end
end

--Install UI
function E:Install()
	--ElvUI don't have this?
	MaxPages()
	if not InstallStepComplete then
		local imsg = CreateFrame("Frame", "InstallStepComplete", E.UIParent)
		imsg:Size(418, 72)
		imsg:Point("TOP", 0, -190)
		imsg:Hide()
		imsg:SetScript('OnShow', function(self)
			if self.message then
				PlaySoundFile([[Sound\Interface\LevelUp.wav]])
				self.text:SetText(self.message)
				UIFrameFadeOut(self, 3.5, 1, 0)
				E:Delay(4, function() self:Hide() end)
				self.message = nil

				if imsg.firstShow == false then
					if GetCVarBool("Sound_EnableMusic") then
						PlayMusic([[Sound\Music\ZoneMusic\DMF_L70ETC01.mp3]])
					end
					imsg.firstShow = true
				end
			else
				self:Hide()
			end
		end)

		imsg.firstShow = false

		imsg.bg = imsg:CreateTexture(nil, 'BACKGROUND')
		imsg.bg:SetTexture([[Interface\LevelUp\LevelUpTex]])
		imsg.bg:SetPoint('BOTTOM')
		imsg.bg:Size(326, 103)
		imsg.bg:SetTexCoord(0.00195313, 0.63867188, 0.03710938, 0.23828125)
		imsg.bg:SetVertexColor(1, 1, 1, 0.6)

		imsg.lineTop = imsg:CreateTexture(nil, 'BACKGROUND')
		imsg.lineTop:SetDrawLayer('BACKGROUND', 2)
		imsg.lineTop:SetTexture([[Interface\LevelUp\LevelUpTex]])
		imsg.lineTop:SetPoint("TOP")
		imsg.lineTop:Size(418, 7)
		imsg.lineTop:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)

		imsg.lineBottom = imsg:CreateTexture(nil, 'BACKGROUND')
		imsg.lineBottom:SetDrawLayer('BACKGROUND', 2)
		imsg.lineBottom:SetTexture([[Interface\LevelUp\LevelUpTex]])
		imsg.lineBottom:SetPoint("BOTTOM")
		imsg.lineBottom:Size(418, 7)
		imsg.lineBottom:SetTexCoord(0.00195313, 0.81835938, 0.01953125, 0.03320313)

		imsg.text = imsg:CreateFontString(nil, 'ARTWORK', 'GameFont_Gigantic')
		imsg.text:Point("BOTTOM", 0, 12)
		imsg.text:SetTextColor(1, 0.82, 0)
		imsg.text:SetJustifyH("CENTER")
	end

	--Create Frame
	if not ElvUIInstallFrame then
		local f = CreateFrame("Button", "ElvUIInstallFrame", E.UIParent)
		f.SetPage = SetPage
		f:Size(550, 400)
		f:SetTemplate("Transparent")
		f:SetPoint("CENTER")
		f:SetFrameStrata('TOOLTIP')

		f.Title = f:CreateFontString(nil, 'OVERLAY')
		f.Title:FontTemplate(nil, 17, nil)
		f.Title:Point("TOP", 0, -5)
		f.Title:SetText(L["ElvUI Installation"])

		f.Next = CreateFrame("Button", "InstallNextButton", f, "UIPanelButtonTemplate")
		f.Next:StripTextures()
		f.Next:SetTemplate("Default", true)
		f.Next:Size(110, 25)
		f.Next:Point("BOTTOMRIGHT", -5, 5)
		f.Next:SetText(CONTINUE)
		f.Next:Disable()
		f.Next:SetScript("OnClick", NextPage)
		E.Skins:HandleButton(f.Next, true)

		f.Prev = CreateFrame("Button", "InstallPrevButton", f, "UIPanelButtonTemplate")
		f.Prev:StripTextures()
		f.Prev:SetTemplate("Default", true)
		f.Prev:Size(110, 25)
		f.Prev:Point("BOTTOMLEFT", 5, 5)
		f.Prev:SetText(PREVIOUS)
		f.Prev:Disable()
		f.Prev:SetScript("OnClick", PreviousPage)
		E.Skins:HandleButton(f.Prev, true)

		f.Status = CreateFrame("StatusBar", "InstallStatus", f)
		f.Status:SetFrameLevel(f.Status:GetFrameLevel() + 2)
		f.Status:CreateBackdrop("Default")
		f.Status:SetStatusBarTexture(E["media"].normTex)
		f.Status:SetStatusBarColor(unpack(E["media"].rgbvaluecolor))
		f.Status:SetMinMaxValues(0, MAX_PAGE)
		f.Status:Point("TOPLEFT", f.Prev, "TOPRIGHT", 6, -2)
		f.Status:Point("BOTTOMRIGHT", f.Next, "BOTTOMLEFT", -6, 2)
		f.Status.text = f.Status:CreateFontString(nil, 'OVERLAY')
		f.Status.text:FontTemplate()
		f.Status.text:SetPoint("CENTER")
		f.Status.text:SetText(CURRENT_PAGE.." / "..MAX_PAGE)
		f.Status:SetScript("OnValueChanged", function(self)
			self.text:SetText(self:GetValue().." / "..MAX_PAGE)
		end)

		f.Option1 = CreateFrame("Button", "InstallOption1Button", f, "UIPanelButtonTemplate")
		f.Option1:StripTextures()
		f.Option1:Size(160, 30)
		f.Option1:Point("BOTTOM", 0, 45)
		f.Option1:SetText("")
		f.Option1:Hide()
		E.Skins:HandleButton(f.Option1, true)

		f.Option2 = CreateFrame("Button", "InstallOption2Button", f, "UIPanelButtonTemplate")
		f.Option2:StripTextures()
		f.Option2:Size(110, 30)
		f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45)
		f.Option2:SetText("")
		f.Option2:Hide()
		f.Option2:SetScript('OnShow', function() f.Option1:SetWidth(110); f.Option1:ClearAllPoints(); f.Option1:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45) end)
		f.Option2:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45) end)
		E.Skins:HandleButton(f.Option2, true)

		f.Option3 = CreateFrame("Button", "InstallOption3Button", f, "UIPanelButtonTemplate")
		f.Option3:StripTextures()
		f.Option3:Size(100, 30)
		f.Option3:Point('LEFT', f.Option2, 'RIGHT', 4, 0)
		f.Option3:SetText("")
		f.Option3:Hide()
		f.Option3:SetScript('OnShow', function() f.Option1:SetWidth(100); f.Option1:ClearAllPoints(); f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0); f.Option2:SetWidth(100); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOM', f, 'BOTTOM', 0, 45)  end)
		f.Option3:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end)
		E.Skins:HandleButton(f.Option3, true)

		f.Option4 = CreateFrame("Button", "InstallOption4Button", f, "UIPanelButtonTemplate")
		f.Option4:StripTextures()
		f.Option4:Size(100, 30)
		f.Option4:Point('LEFT', f.Option3, 'RIGHT', 4, 0)
		f.Option4:SetText("")
		f.Option4:Hide()
		f.Option4:SetScript('OnShow', function()
			f.Option1:Width(100)
			f.Option2:Width(100)

			f.Option1:ClearAllPoints();
			f.Option1:Point('RIGHT', f.Option2, 'LEFT', -4, 0);
			f.Option2:ClearAllPoints();
			f.Option2:Point('BOTTOMRIGHT', f, 'BOTTOM', -4, 45)
		end)
		f.Option4:SetScript('OnHide', function() f.Option1:SetWidth(160); f.Option1:ClearAllPoints(); f.Option1:Point("BOTTOM", 0, 45); f.Option2:SetWidth(110); f.Option2:ClearAllPoints(); f.Option2:Point('BOTTOMLEFT', f, 'BOTTOM', 4, 45) end)
		E.Skins:HandleButton(f.Option4, true)

		f.SubTitle = f:CreateFontString(nil, 'OVERLAY')
		f.SubTitle:FontTemplate(nil, 15, nil)
		f.SubTitle:Point("TOP", 0, -40)

		f.Desc1 = f:CreateFontString(nil, 'OVERLAY')
		f.Desc1:FontTemplate()
		f.Desc1:Point("TOPLEFT", 20, -75)
		f.Desc1:Width(f:GetWidth() - 40)

		f.Desc2 = f:CreateFontString(nil, 'OVERLAY')
		f.Desc2:FontTemplate()
		f.Desc2:Point("TOPLEFT", 20, -125)
		f.Desc2:Width(f:GetWidth() - 40)

		f.Desc3 = f:CreateFontString(nil, 'OVERLAY')
		f.Desc3:FontTemplate()
		f.Desc3:Point("TOPLEFT", 20, -175)
		f.Desc3:Width(f:GetWidth() - 40)

		local close = CreateFrame("Button", "InstallCloseButton", f, "UIPanelCloseButton")
		close:SetPoint("TOPRIGHT", f, "TOPRIGHT")
		close:SetScript("OnClick", function()
			f:Hide()
		end)
		E.Skins:HandleCloseButton(close)

		f.tutorialImage = f:CreateTexture('InstallTutorialImage', 'OVERLAY')
		f.tutorialImage:Size(256, 128)
		f.tutorialImage:SetTexture('Interface\\AddOns\\ElvUI_SLE\\media\\textures\\logo_elvui_sle.tga')
		f.tutorialImage:Point('BOTTOM', 0, 70)

	end

	ElvUIInstallFrame:Show()
	NextPage()
end