local _G = getfenv(0)
local unpack = unpack

local AtlasLoot = _G.AtlasLoot
local Search = {}
AtlasLoot.Addons.Search = Search
local AL = AtlasLoot.Locales
local db

function Search.Init()
	db = AtlasLoot.db.Addons.Search
	AtlasLoot.SlashCommands:Add("search", Search.Open, "/al search - Search")
end
AtlasLoot:AddInitFunc(Search.Init)


--################################
-- GUI
--################################
local function FrameOnDragStart(self, arg1)
	if arg1 == "LeftButton" then
		self:StartMoving()
	end
end

local function FrameOnDragStop(self)
	self:StopMovingOrSizing()
	local a,b,c,d,e = self:GetPoint()
	db.point = { a, nil, c, d, e }
end

local function FrameOnShow(self)
	
end

function Search:Open()
	if not Search.GUI then
		local frameName = "AtlasLoot_Search-Frame"
	
		local frame = CreateFrame("Frame", frameName, nil, BackdropTemplateMixin and "BackdropTemplate" or nil)
		frame:ClearAllPoints()
		frame:SetParent(UIParent)
		frame:SetPoint(unpack(db.point))
		frame:SetWidth(500)
		frame:SetHeight(500)
		frame:SetMovable(true)
		frame:EnableMouse(true)
		frame:RegisterForDrag("LeftButton")
		frame:RegisterForDrag("LeftButton", "RightButton")
		frame:SetScript("OnMouseDown", FrameOnDragStart)
		frame:SetScript("OnMouseUp", FrameOnDragStop)
		frame:SetScript("OnShow", FrameOnShow)
		frame:SetToplevel(true)
		frame:SetClampedToScreen(true)
		frame:SetBackdrop({bgFile = "Interface/Tooltips/UI-Tooltip-Background",
							edgeFile = "Interface/Tooltips/UI-Tooltip-Border", 
							tile = true, tileSize = 16, edgeSize = 16, 
							insets = { left = 4, right = 4, top = 4, bottom = 4 }})
		frame:SetBackdropColor(1,1,1,1)
		frame:Hide()
		tinsert(UISpecialFrames, frameName)	-- allow ESC close
		
		frame.CloseButton = CreateFrame("Button", frameName.."-CloseButton", frame, "UIPanelCloseButton")
		frame.CloseButton:SetPoint("TOPRIGHT", frame, "TOPRIGHT")
		
		frame.Title = frame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
		frame.Title:SetPoint("TOP", frame, "TOP", 0, -10)
		frame.Title:SetText(AL["AtlasLoot Search"])
		
		frame.NameBox = CreateFrame("EditBox", frameName.."-NameBox", frame, "SearchBoxTemplate")
		frame.NameBox:SetPoint("TOPLEFT", frame, "TOPLEFT", 15, -20)
		frame.NameBox:SetWidth(250)
		frame.NameBox:SetHeight(35)
		frame.NameBox:SetAutoFocus(false)
		--frame.NameBox:SetTextInsets(0, 8, 0, 0)
		frame.NameBox:SetMaxLetters(100)
		frame.NameBox:SetScript("OnEnterPressed",function(self) 
								print(frame.NameBox:GetText())
								frame.NameBox:ClearFocus()
							end)
		
		
		Search.GUI = frame
	elseif Search.GUI:IsShown() then
		Search.GUI:Hide()
		return
	end
	
	Search.GUI:Show()
end
