local DAS = DailyAutoShare

local function GenerateTooltipText(control)

	local key = control:GetName()

	if 	    string.match(key, "Invite")	then return GetString((DAS.GetAutoInvite() and DAS_SI_INVITE_TRUE) or DAS_SI_INVITE_FALSE)
	elseif string.match(key, "Accept")	then return GetString((DAS.GetAutoAcceptShared() and DAS_SI_ACCEPT_TRUE) or DAS_SI_ACCEPT_FALSE)
	elseif string.match(key, "Share") 	then return GetString((DAS.GetAutoShare() and DAS_SI_SHARE_TRUE) or DAS_SI_SHARE_FALSE)
	elseif string.match(key, "Spam") 	then return GetString(DAS_SI_SPAM)
	elseif string.match(key, "Donate") 	then return GetString(DAS_SI_DONATE)
	elseif string.match(key, "Refresh") then return GetString(DAS_SI_REFRESH)
	end

end


local function SetTooltipText(control)
	DailyAutoShare_Tooltip:ClearLines()
	local tooltipText = GenerateTooltipText(control)
    if not tooltipText then return end
	DailyAutoShare_Tooltip:AddLine(tooltipText)
	DailyAutoShare_Tooltip:SetHidden(false)

	return tooltipText
end
function DAS.SetTooltipText(control)
	SetTooltipText(control)
end


local function setTooltipOffset(control)
	local offsetY = control:GetTop() - control:GetParent():GetTop()
	local isTooltipRight = DAS.GetSettings().tooltipRight
	local myAnchorPos 		= (isTooltipRight and TOPLEFT) or TOPRIGHT
	local parentAnchorPos 	= (isTooltipRight and TOPRIGHT) or TOPLEFT

	DailyAutoShare_Tooltip:ClearAnchors()
	DailyAutoShare_Tooltip:SetAnchor(myAnchorPos, control:GetParent(), parentAnchorPos, 0, offsetY)
end

function DAS.CreateControlTooltip(control)

	SetTooltipText(control)
    setTooltipOffset(DasHeader)

end

function DAS.CreateTooltip(control)
	setTooltipOffset(control)
	SetTooltipText(control, isButton)
end

local questStateColors = {
    [DAS_STATUS_ACTIVE]     = ZO_HIGHLIGHT_TEXT:UnpackRGBA(),
    [DAS_STATUS_OPEN]       = ZO_NORMAL_TEXT:UnpackRGBA(),
    [DAS_STATUS_COMPLETE]   = ZO_DISABLED_TEXT:UnpackRGBA(),
}

local dotDotDot = "%.%.%."
function DAS.CreateLabelTooltip(control)


	setTooltipOffset(control)
	local tooltipText = ""

    local questName = control.dataTitle or control.dataQuestName

    if nil == questName then return end
    if nil ~= questName:find(dotDotDot) then
        tooltipText = GetString(DAS_TOGGLE_SUBLIST)
    else
        local state = DAS.GetCompleted(questName)
        if control.dataQuestState == DAS_STATUS_COMPLETE then
            tooltipText = (questName .. " completed today with " .. GetUnitName(UNITTAG_PLAYER))
        else
            local bingoString = control["dataBingoString"] or ""
            local bingoTooltip = (bingoString ~= "" and "\n The bingo code is " .. bingoString) or ""
            local status = (( control.dataQuestState == DAS_STATUS_ACTIVE and " is acive") or " still open")
            tooltipText = (questName .. status .. bingoTooltip)
        end
    end


	DailyAutoShare_Tooltip:AddLine(tooltipText)
	DailyAutoShare_Tooltip:SetHidden(false)

 end

function DAS.HideTooltip(control)
	DailyAutoShare_Tooltip:ClearLines()
	 DailyAutoShare_Tooltip:SetHidden(true)
	 -- DAS.RefreshLabels()
end