FurnitureCatalogue_Export 		= {}
FurCExport 						= FurnitureCatalogue_Export


local defaults 					= {
}


local function getSortTable(tbl)
	list = {}
	for name,	value in pairs(tbl) do
		list[#list+1] = name
	end
	table.sort(list)
	return list
end

function FurCExport.Export()

	local itemNames = {}
	local itemName
	for itemId, recipeArray in pairs(FurC.settings.data) do
		if recipeArray.origin == FURC_CRAFTING then
			itemNames[GetItemLinkName(FurC.GetItemLink(itemId))] = FurC.GetItemLink(itemId)
		end
	end

	local tkeys = getSortTable(itemNames)
	local exportKnown = {}
	local exportUnknown = {}
	for key, itemName in pairs(tkeys) do
		local itemLink = itemNames[itemName]
		local recipeArray = FurC.Find(itemLink)
		local known = FurC.IsAccountKnown(itemLink, recipeArray)

		local exportArray = (known and exportKnown) or exportUnknown
		local mats = FurC.GetMats(itemLink, recipeArray, false, true)
		local knowledge = (known and (FurC.GetCrafterList(itemLink, recipeArray) .. ": "):gsub("Can be crafted by ", "")) or ""
		local exportString = zo_strformat("<<1>><<2>>", knowledge, mats)
		exportArray[itemName] = exportString
	end

	FurCExport.settings.known 		= exportKnown
	FurCExport.settings.unknown 	= exportUnknown
	ReloadUI()

end

SLASH_COMMANDS["/furcexport"] = function() FurCExport.Export() end


-- initialization stuff
function FurCExport_Initialize(eventCode, addOnName)
	if (addOnName ~= "FurnitureCatalogue_Export") then return end

	FurCExport.settings 	= ZO_SavedVars:NewAccountWide("FurnitureCatalogue_Export", nil, 0, defaults)
	FurCExport.makeSettings()
	EVENT_MANAGER:UnregisterForEvent("FurnitureCatalogue_Export", EVENT_ADD_ON_LOADED)
end


EVENT_MANAGER:RegisterForEvent("FurnitureCatalogue_Export", EVENT_ADD_ON_LOADED, FurCExport_Initialize)