local me = { }

local Navbox = require('Module:Navbox')

function me.generateRosterNavbox(frame)
    local args = { }
    local parentArgs = frame:getParent().args

    -- Massage the arguments before passing them to the Navbox helper function

    for argName, value in pairs(parentArgs) do
        if value ~= '' then
            if type(argName) == 'string' and mw.ustring.find(argName, '^list') then
                local listValues = { }
                for entry in mw.text.gsplit(value, '[\n\r]+') do
                  entry = mw.ustring.gsub(entry, '([^%*])%s+', '%1 ')
                  table.insert(listValues, entry)
                end
            	value = table.concat(listValues, '\n')
            end
            args[argName] = value
        end
    end

    -- Note Navbox.navbox() has a kludge to order the parent frame's args
    -- into a specific order. For now, this is omitted from this module.

    return Navbox._navbox(args)

end  -- function me.generateRosterNavbox

return me