local p 		= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args

-- ruthlessly stolen from TextureIt
function FurC.SortTable(tTable, sortKey, SortOrderUp)
	local keys = {}
	for k in pairs(tTable) do table.insert(keys, k) end
	table.sort(keys, function(a, b)
		if nil == tTable[a] or nil == tTable[b] then

		elseif nil == tTable[a][sortKey] then
            return false
			-- d(tTable[a])
		elseif nil == tTable[b][sortKey] then
            return true
			-- d(tTable[b])
		else
			if SortOrderUp then
				return tTable[a][sortKey] > tTable[b][sortKey]
			else
				return tTable[a][sortKey] < tTable[b][sortKey]
			end
		end

	end)

	local ret = {}
	local scannedLinks = {}
	local itemLink, entry
	for _, k in ipairs(keys) do
		entry = tTable[k]
		-- d(entry)
		itemLink = entry["itemLink"]
		ingredients = entry["ingredients"]
		local index = scannedLinks[itemLink] or k

		table.insert(ret, entry)
	end

	return ret
end