local getArgs = require('Modulo:Arguments').getArgs
local lang = require('Modulo:SwitchLang').langCode
local titolo = mw.title.getCurrentTitle().subpageText
local suffisso = mw.ustring.match(titolo, "-%w+")
local prefisso = mw.ustring.match(titolo, "%w+-")

local p = {}

function p.linkList(frame)
	local pages = {}
	local args = getArgs(frame)
	local Target = frame.args[1]
	local SplitOf = ','
	local SplitIn = ''
	local NColonne = '3'
	local Gap = '10'

-- Divide la lista in singole pagine e le ordina in ordine alfabetico
	local lista = mw.text.split(Target, SplitOf)
	table.sort(lista, function (a, b)
		a, b = mw.text.trim(a), mw.text.trim(b)
		return b > a
	end)

-- Trasforma ogni elemento in un link
for i, j in pairs(lista) do
	table.insert(pages, string.format('<li>[['..mw.text.trim(j)..']]</li>', mw.text.trim(j)))
end
-- E li aggiunge in un elenco numerato
local ordinati = '<ol>'..table.concat(pages, SplitIn)..'</ol>'

-- Stile dell'elenco su "n" colonne stabilite dalla variabile locale "NColonne"
local colonne = '<div style="-moz-column-count:'..NColonne..'; -moz-column-gap:'..Gap..'px; -webkit-column-count:'..NColonne..'; -webkit-column-gap:'..Gap..'; -ms-column-count:'..NColonne..'; -ms-column-gap:'..Gap..'; column-count:'..NColonne..'; column-gap:'..Gap..'; text-align:justify;">'
colonne = colonne .. ordinati
colonne = colonne .. '</div>'

return colonne 

end

function p.parte(frame)
	
	if prefisso ~= nil then
		return 'prefisso'
	elseif suffisso ~= nil then
		return 'suffisso'
	else
		return 'termine'
	end
end

function p.parteCat(frame)
	
	if prefisso ~= nil then
		return 'Prefissi in '
	elseif suffisso ~= nil then
		return 'Suffissi in '
	else
		return 'Termini derivati di parole in '
	end
end

function p.parteLink(frame)
	local args = getArgs(frame)
	local lang = lang(frame)
	lingua = lang:gsub("^%l", string.upper)
	
	if prefisso ~= nil then	
		parte = 'Prefissi'
	elseif suffisso ~= nil then	
		parte = 'Suffissi'
	else
		parte = 'Termini derivati'
	end
		return 'Appendice:'..parte..'/'..lingua..'/'..titolo
end 
return p