-- Craft Research Timer (CRT) by @aTo (EU)
-- v0.4.8

function CRT.CRAFT_Create()

	if (CRT.SV.Settings.mode == "Icon") then
		CRT.mode_width = CRT.SV.Settings.icon_width
		CRT.mode_height = CRT.SV.Settings.icon_height
		CRT.vertical_move = 30
	elseif (CRT.SV.Settings.mode == "Text") then
		CRT.mode_width = CRT.SV.Settings.text_width
		CRT.mode_height = CRT.SV.Settings.text_height
		CRT.vertical_move = 0
	end

	--- MAIN WINDOW ---
	local scale = {}
	scale[0] = CRT.SV.Settings.BS.Scale
	scale[1] = CRT.SV.Settings.CL.Scale
	scale[2] = CRT.SV.Settings.WO.Scale
	local alpha = {}
	alpha[0] = CRT.SV.Settings.BS.BackdropAlpha
	alpha[1] = CRT.SV.Settings.CL.BackdropAlpha
	alpha[2] = CRT.SV.Settings.WO.BackdropAlpha


	for id_craft = 0, 2, 1 do
		CRT.UI.CRAFT_TLW[id_craft] = WINDOW_MANAGER:CreateTopLevelWindow("CRT_CRAFT_TLW_"..id_craft)
		CRT.UI.CRAFT_TLW[id_craft]:SetDimensions(CRT.mode_width,CRT.mode_height)
		CRT.UI.CRAFT_TLW[id_craft]:SetHidden(false)
		CRT.UI.CRAFT_TLW[id_craft]:SetClampedToScreen(false)
		CRT.UI.CRAFT_TLW[id_craft]:SetMovable(CRT.SV.Settings.lock)
		CRT.UI.CRAFT_TLW[id_craft]:SetMouseEnabled(true)
		CRT.UI.CRAFT_TLW[id_craft]:SetDrawLayer(1)
		CRT.UI.CRAFT_TLW[id_craft]:SetScale(scale[id_craft])

		if (id_craft == 0) then
			CRT.UI.CRAFT_TLW[id_craft]:SetHidden(not CRT.SV.Settings.BS.craft)
			CRT.UI.CRAFT_TLW[id_craft]:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, CRT.SV.Settings.BS.offset.X, CRT.SV.Settings.BS.offset.Y)
			CRT.UI.CRAFT_TLW[id_craft]:SetHandler("OnMouseUp", function(self) CRT.Save_position(id_craft)end)
		elseif(id_craft == 1) then
			CRT.UI.CRAFT_TLW[id_craft]:SetHidden(not CRT.SV.Settings.CL.craft)
			CRT.UI.CRAFT_TLW[id_craft]:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, CRT.SV.Settings.CL.offset.X, CRT.SV.Settings.CL.offset.Y)
			CRT.UI.CRAFT_TLW[id_craft]:SetHandler("OnMouseUp", function(self) CRT.Save_position(id_craft)end)
		elseif(id_craft == 2) then
			CRT.UI.CRAFT_TLW[id_craft]:SetHidden(not CRT.SV.Settings.WO.craft)
			CRT.UI.CRAFT_TLW[id_craft]:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, CRT.SV.Settings.WO.offset.X, CRT.SV.Settings.WO.offset.Y)
			CRT.UI.CRAFT_TLW[id_craft]:SetHandler("OnMouseUp", function(self) CRT.Save_position(id_craft)end)
		end

		CRT.UI.CRAFT_BD[id_craft] = WINDOW_MANAGER:CreateControlFromVirtual(CRT.name.."_Windows"..id_craft.."_BD",CRT.UI.CRAFT_TLW[id_craft], "ZO_DefaultBackdrop")
		CRT.UI.CRAFT_BD[id_craft]:SetAlpha(alpha[id_craft])





	---- WINDOWS 0 ----
		-- icon
		CRT.UI.CRAFT_WD[id_craft] = {}
		CRT.UI.CRAFT_WD[id_craft][0] = {}

		if (CRT.SV.Settings.mode == "Icon") then
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"] = WINDOW_MANAGER:CreateControl("CRT_CRAFT_WD_"..id_craft.."_0_icon",CRT.UI.CRAFT_TLW[id_craft],CT_TEXTURE)
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetHidden(false)
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetDimensions(22,22)
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetAlpha(1)
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetAnchor(TOPLEFT,CRT.UI.CRAFT_TLW[id_craft],TOPLEFT,0,0)
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetMouseEnabled(true)
	--		CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetHandler("OnMouseEnter", function (self) ZO_Tooltips_ShowTextTooltip(self, RIGHT, updatetooltip) end)
	--		CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetHandler("OnMouseExit", function (self) ZO_Tooltips_HideTextTooltip() end)

			if (id_craft == 0) then
				CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetTexture("/esoui/art/icons/ability_smith_007.dds")
			elseif (id_craft == 1) then
				CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetTexture("/esoui/art/icons/ability_tradecraft_008.dds")
			elseif (id_craft == 2) then
				CRT.UI.CRAFT_WD[id_craft][0]["Craft_icon"]:SetTexture("/esoui/art/icons/ability_tradecraft_009.dds")
			end
		end

		CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"] = WINDOW_MANAGER:CreateControl("CRT_CRAFT_WD_"..id_craft.."_0_text",CRT.UI.CRAFT_TLW[id_craft],CT_LABEL)
		CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetHidden(false)
		CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetFont(CRT.font)
		CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetDimensions(CRT.mode_width,CRT.mode_height)
		CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetAlpha(1)
		CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetAnchor(TOPLEFT,CRT.UI.CRAFT_TLW[id_craft],TOPLEFT,CRT.vertical_move,0)
		CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetText("Loading")
		if(id_craft == 0) then
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetColor(CRT.SV.Settings.BS.Color.r, CRT.SV.Settings.BS.Color.g, CRT.SV.Settings.BS.Color.b, CRT.SV.Settings.BS.Color.a)
		elseif(id_craft == 1) then
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetColor(CRT.SV.Settings.CL.Color.r, CRT.SV.Settings.CL.Color.g, CRT.SV.Settings.CL.Color.b, CRT.SV.Settings.CL.Color.a)
		elseif(id_craft == 2) then
			CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetColor(CRT.SV.Settings.WO.Color.r, CRT.SV.Settings.WO.Color.g, CRT.SV.Settings.WO.Color.b, CRT.SV.Settings.WO.Color.a)
		end



	---- WINDOWS 1 / 2 / 3 ----
		for simcraft = 1, 3 , 1 do
			local x = 5
			x = x + simcraft*20
			CRT.UI.CRAFT_WD[id_craft][simcraft] = {}
		--// icon
			if (CRT.SV.Settings.mode == "Icon") then
				CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"] = WINDOW_MANAGER:CreateControl("CRT_CRAFT_WD_"..id_craft.."_"..simcraft.."_icon",CRT.UI.CRAFT_TLW[id_craft],CT_TEXTURE)
				CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetHidden(true)
				CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetDimensions(20,20)
				CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetAlpha(1)
				CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetAnchor(TOPLEFT,CRT.UI.CRAFT_TLW[id_craft],TOPLEFT,0,x)
				CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetMouseEnabled(true)
				if(CRT.SV.data.Craft[CRT.playername][id_craft][simcraft] ~= nil) then
					local tooltip = CRT.SV.data.Craft[CRT.playername][id_craft][simcraft]["Item_name"].." - ".. CRT.SV.data.Craft[CRT.playername][id_craft][simcraft]["Trait_description"]
					CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetHandler("OnMouseEnter", function (self) ZO_Tooltips_ShowTextTooltip(self, TOP, tooltip) end)
					CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetHandler("OnMouseExit", function (self)	ZO_Tooltips_HideTextTooltip() end)
				end
			end
		--// text
			CRT.UI.CRAFT_WD[id_craft][simcraft]["text"] = WINDOW_MANAGER:CreateControl("CRT_CRAFT_WD_"..id_craft.."_"..simcraft.."_text",CRT.UI.CRAFT_TLW[id_craft],CT_LABEL)
			CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetHidden(true)
			CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetFont(CRT.font)
			CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetDimensions(CRT.mode_width,CRT.mode_height)
			CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetAlpha(1)
			CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetAnchor(LEFT,CRT.UI.CRAFT_TLW[id_craft],LEFT,CRT.vertical_move,x)
			if(id_craft == 0) then
				CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetColor(CRT.SV.Settings.BS.Color.r, CRT.SV.Settings.BS.Color.g, CRT.SV.Settings.BS.Color.b, CRT.SV.Settings.BS.Color.a)
			elseif(id_craft == 1) then
				CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetColor(CRT.SV.Settings.CL.Color.r, CRT.SV.Settings.CL.Color.g, CRT.SV.Settings.CL.Color.b, CRT.SV.Settings.CL.Color.a)
			elseif(id_craft == 2) then
				CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetColor(CRT.SV.Settings.WO.Color.r, CRT.SV.Settings.WO.Color.g, CRT.SV.Settings.WO.Color.b, CRT.SV.Settings.WO.Color.a)
			end
			if (CRT.SV.Settings.mode == "Text") then
				if(CRT.SV.data.Craft[CRT.playername][id_craft][simcraft] ~= nil) then
					CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetMouseEnabled(true)
					local tooltip = CRT.SV.data.Craft[CRT.playername][id_craft][simcraft]["Item_name"].." - ".. CRT.SV.data.Craft[CRT.playername][id_craft][simcraft]["Trait_description"]
					CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetHandler("OnMouseEnter", function (self) ZO_Tooltips_ShowTextTooltip(self, TOP, tooltip) end)
					CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetHandler("OnMouseExit", function (self) ZO_Tooltips_HideTextTooltip() end)
				end
			end
		end
	end
end

function CRT.CRAFT_Update(timestamp)
				for id_craft = 0, 2,1 do

					local MaxResearch = CRT.SV.data.Craft[CRT.playername][id_craft]["MaxResearch"]
					local Simu_craft = CRT.SV.data.Craft[CRT.playername][id_craft]["Simu_craft"]
					local title = "error"

					if (CRT.SV.Settings.mode == "Text" and id_craft == 0) then
						title = CRT.L["BS"] .. " : " .. "Simu_craft.. / "..MaxResearch
					elseif (CRT.SV.Settings.mode == "Text" and id_craft == 1) then
						title = CRT.L["Clothing"] .. " : "..Simu_craft.." / "..MaxResearch
					elseif (CRT.SV.Settings.mode == "Text" and id_craft == 2) then
						title = CRT.L["Woodwork"] .. " : "..Simu_craft.." / "..MaxResearch
					elseif (CRT.SV.Settings.mode == "Icon") then
						title = " "..Simu_craft.." / "..MaxResearch
					end
					CRT.UI.CRAFT_WD[id_craft][0]["Craft_Text"]:SetText(title)


					for simcraft = 1, 3,1 do

						if (CRT.SV.data.Craft[CRT.playername][id_craft][simcraft] ~= nil)then

							local currenttimer = CRT.SV.data.Craft[CRT.playername][id_craft][simcraft]["EndTimeStamp"] - timestamp - 1
							local human_timer = CRT.Converthms(currenttimer)

							local msg = "error"
							if (CRT.SV.Settings.mode == "Icon") then
								CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetHidden(false)
								CRT.UI.CRAFT_WD[id_craft][simcraft]["item_icon"]:SetTexture(CRT.SV.data.Craft[CRT.playername][id_craft][simcraft]["Item_icon"])
								msg = human_timer
							elseif (CRT.SV.Settings.mode == "Text") then
								local Item_name = CRT.SV.data.Craft[CRT.playername][id_craft][simcraft]["Item_name"]
								msg = Item_name.." - "..human_timer
							end

							if (currenttimer > 0) then
								CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetHidden(false)
								CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetText(msg)
							else
								CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetHidden(false)
								CRT.UI.CRAFT_WD[id_craft][simcraft]["text"]:SetText(CRT.L["Finished"])
							end

						end
					end
				end
end