require('Module:No globals')

local getArgs = require('Module:Arguments').getArgs
local class = mw.loadData('Module:Class/data')

local p = {}

local function ret(args, i)
	if args[2] == 'simp' then
		return class[i].name
	end
	if args[2] == 'trad' then
		return class[i].name2
	end
	return class[i].code
end

function p.main(frame)
	local args = getArgs(frame, {frameOnly = true})
	return p._main(args)
end

function p._main(args)
	-- Main module code goes here.
	local str = string.lower(args[1] or 'unassessed')

	for i, v in pairs(class) do
		if str == v.code then
			return ret(args, i)
		end
		
		if str == v.name or str == v.name .. '级' then
			return ret(args, i)
		end
		
		if str == v.name2 or str == v.name2 .. '級'  then
			return ret(args, i)
		end
		
		for j, w in ipairs(v.alias) do
			if str == w then
				return ret(args, i)
			end
		end
	end
	
	return ret(args, 0)
end

return p