local lang = require("Module:languages").getByCode("vo")

local p = {}

function p.init(frame)
    local intr = frame:getParent().args["intr"]
    local pagename = tostring( mw.title:getCurrentTitle() )
    local root = mw.ustring.sub(pagename, 0, -3)
    return p.conj(root, intr)
end

function p.conj(root, intr)
    local function link(prefix, suffix)
        return require("Module:links").full_link({lang = lang, accel = {form = prefix .. suffix}, term = prefix .. root .. suffix})
    end

    local function row(r)
        return ""
    end

    local t = {{"", "pa"}, {"e", "pe"}, {"ä", "pä"}, {"i", "pi"}, {"o", "po"}, {"u", "pu"}, {"ö", "pö"}, {"ü", "pü"}}
    local p = {{"第一人稱<br>單數", "ob"}, {"第二人稱<br>單數", "ol"}, {"第二人稱<br>單數禮貌", "or"}, {"第三人稱<br>單數", "on"}, {"第三人稱<br>男性單數", "om"}, {"第三人稱<br>女性單數", "of"}, {"反身單數", "ok"}, {"互相單數", "od"}, {"第一人稱<br>複數", "obs"}, {"第二人稱<br>複數", "ols"}, {"第二人稱<br>複數禮貌", "ors"}, {"第三人稱<br>複數", "ons"}, {"第三人稱<br>男性複數", "oms"}, {"第三人稱<br>女性複數", "ofs"}, {"反身複數", "oks"}, {"互相複數", "ods"}, {"不定稱", "oy"}, {"無人稱", "os"}}
    local f = {{"主動直陳式", "被動直陳式", ""}, {"主動虛擬式", "被動虛擬式", "-la"}, {"主動希求式", "被動希求式", "ös"}, {"主動疑問", "被動疑問", "-li"}, {"主動祈願式", "被動祈願式", "öz"}, {"主動條件式", "被動條件式", nil}, {"主動命令式", "被動命令式", nil}, {"主動不定式", "被動不定式", nil}}

    local val = {[=[{| width="100%"
|-
|  ||<div class="NavFrame">
<div class="NavHead" style="background-color:#FFE6FF;"><span lang="vo">]=] .. root .. [=[ön</span> 的[[Appendix:沃拉普克語動詞|變位]]</div>
<div class="NavContent">
{| border="1" cellpadding="5" style="border-bottom:2; border-collapse:collapse" width=100% class="inflection-table" align="center"]=]}

    local function verbs(voice)
        table.insert(val, "\n|-\n!style=\"background-color:#FFF55F\" colspan=18|" .. f[8][voice])
        table.insert(val, "\n|-\n|style=\"background-color:#F0F0F0\" colspan=18|" .. link(t[1][voice], "ön"))

        for i = 1, 5, 1 do
            table.insert(val, "\n|-\n!style=\"background-color:#FFF55F\" colspan=2|" .. f[i][voice])
            table.insert(val, "\n!style=\"background-color:#C6C\" colspan=2|現在時")
            table.insert(val, "\n!style=\"background-color:#C6C\" colspan=2|現在<br>完成時")
            table.insert(val, "\n!style=\"background-color:#C6C\" colspan=2|過去<br>未完成時")
            table.insert(val, "\n!style=\"background-color:#C6C\" colspan=2|過去<br>完成時")
            table.insert(val, "\n!style=\"background-color:#C6C\" colspan=2|將來時")
            table.insert(val, "\n!style=\"background-color:#C6C\" colspan=2|將來<br>完成時")
            table.insert(val, "\n!style=\"background-color:#C6C\" colspan=2|過去時中<br>的將來")
            table.insert(val, "\n!style=\"background-color:#C6C\" colspan=2|過去完成時中<br>的將來")

            for j = 1, 18, 1 do
                table.insert(val, "\n|-\n!style=\"background-color:#C6C\" colspan=2|" .. p[j][1])
                for k = 1, 8, 1 do
                    table.insert(val, "\n|style=\"background-color:#F0F0F0\" colspan=2|" .. link(t[k][voice], p[j][2] .. f[i][3]))
                end
            end
        end

        table.insert(val, "\n|-\n!style=\"background-color:#FFF55F\" colspan=18|" .. f[6][voice])
        for j = 1, 18, 1 do
            table.insert(val, "\n|-\n!style=\"background-color:#C6C\" colspan=2|" .. p[j][1])
            table.insert(val, "\n|style=\"background-color:#F0F0F0\" colspan=16|" .. link(t[1][voice], p[j][2] .. "öv"))
        end

        table.insert(val, "\n|-\n!style=\"background-color:#FFF55F\" colspan=18|" .. f[7][voice])
        for j = 1, 18, 1 do
            table.insert(val, "\n|-\n!style=\"background-color:#C6C\" colspan=2|" .. p[j][1])
            table.insert(val, "\n|style=\"background-color:#F0F0F0\" colspan=16|" .. link(t[1][voice], p[j][2] .. "öd"))
        end
    end

    verbs(1)

    if intr ~= "yes" then
        verbs(2)
    end

table.insert(val, [=[

|}
</div></div>
|}]=])

    return table.concat(val)
end


return p