local getArgs = require('Modulo:Arguments').getArgs

local function categorizza(cat)
	return string.format('[[%s:%s]]', mw.site.namespaces[14].name, cat)
end

local function titleExists(pagina)
	local title = mw.title.new(pagina)
	return title and title.exists
end

local p = {}

function p.plurale(frame)
	local forme = {}
	local args = getArgs(frame)
	local categoria, testo, lista

	if args[1] == 'inv' or args[1] == 'invariabile' then
		return  '(\'\'invariabile\'\')'
	else
		testo = 'Plurale: '
		for i, j in pairs(args) do
			if mw.text.trim(j) == '' then
				error ('È stato specificato un parametro vuoto')
			end

			if titleExists(mw.text.trim(j)) == false then
				categoria = ''..categorizza('categoria di prova per ora')
			else 
				categoria = ''
			end

			lista = table.insert(forme, string.format('[[%s]]', mw.text.trim(j)))
			lista = table.concat(forme, ', ')
		end

			return  '(\'\''..testo..'\'\'' ..lista.. ')'..categoria

	end
end

function p.femminile (frame)
	local forme = {}
	local args = getArgs(frame)
	local categoria, testo, lista

	if args[1] == 'inv' or args[1] == 'invariabile' then
		return  '(\'\'invariabile\'\')'
	else
		testo = 'Femminile: '
		for i, j in pairs(args) do
			if mw.text.trim(j) == '' then
				error ('È stato specificato un parametro vuoto')
			end

			if titleExists(mw.text.trim(j)) == false then
				categoria = ''..categorizza('categoria di prova per ora')
			else 
				categoria = ''
			end

			lista = table.insert(forme, string.format('[[%s]]', mw.text.trim(j)))
			lista = table.concat(forme, ', ')
		end

			return  '(\'\''..testo..'\'\'' ..lista.. ')'..categoria

	end
end

return p