local export = {}

function export.make_table(data)
	local colors = {
		top = "#F0F0F0", gray = "#C0C0C0", straw = "#e2e4c0", blue = "#c0cfe4",
		gray_text = "#7f7f7f", green = "#c0e4c0",  tan = "#e4d4c0",
	}
	
	local result = {}

	--header
	table.insert(result,
[=[
<div class="NavFrame" style="clear:both">
<div class="NavHead" align=left>&nbsp;&nbsp;{{{imp_nom_s}}} 的變格(參見[[Appendix:維吾爾語名詞]])</div>
<div class="NavContent" align=center>
{| style="background:{{{top}}};width:100%;"

]=])

	--decl
	table.insert(result, export.make_case("無人稱","imp","straw"))
	table.insert(result, export.make_case("第一人稱單數(我的)","p1s","blue"))
	table.insert(result, export.make_case("第一人稱複數(我們的)","p1p","green"))
	table.insert(result, export.make_case("第二人稱單數普通(你的)","p2so","tan"))
	table.insert(result, export.make_case("第二人稱複數普通(你們的)","p2po","blue"))
	table.insert(result, export.make_case("第二人稱單數文雅(你的)","p2sr","green"))
	table.insert(result, export.make_case("第二人稱複數文雅(你們的)","p2pr","tan"))
	table.insert(result, export.make_case("第二人稱尊稱(您的、您們的)","p2spr","blue"))
	table.insert(result, export.make_case("第三人稱(他的、他們的)","p3","green"))
	
	--footer
	table.insert(result,
[=[

|}
</div>
</div>
]=])
	
	local str,_ = mw.ustring.gsub(table.concat(result), "{{{([^}]+)}}}",
		function(code)
			return data.forms[code] or colors[code] or ""
		end)
	return str
end

function export.make_case(title,short,color)

	local case = [=[
|-
! rowspan="14" style="background:{{{straw}}}" | 非人稱

! style="background:{{{straw}}};width:10%" | 
! style="background:{{{straw}}};width:40%" | 單數
! style="background:{{{straw}}};width:40%" | 複數

|-
! style="height:3em;background:#ECECEC" | 主格
| {{{imp_nom_s}}}
| {{{imp_nom_p}}}

|-
! style="height:3em;background:#ECECEC" | 屬格
| {{{imp_gen_s}}}
| {{{imp_gen_p}}}

|-
! style="height:3em;background:#ECECEC" | 賓格
| {{{imp_acc_s}}}
| {{{imp_acc_p}}}

|-
! style="height:3em;background:#ECECEC" | 與格
| {{{imp_dat_s}}}
| {{{imp_dat_p}}}

|-
! style="height:3em;background:#ECECEC" | 方位格
| {{{imp_loc_s}}}
| {{{imp_loc_p}}}

|-
! style="height:3em;background:#ECECEC" | 離格
| {{{imp_abl_s}}}
| {{{imp_abl_p}}}

|-
! rowspan="2" style="height:3em;background:#ECECEC" | 範圍特徵格
| {{{imp_lqu_s}}}
| {{{imp_lqu_p}}}

|-
! colspan="2" style="height:3em;background:#ECECEC" | 

<div class="NavFrame">
<div class="NavHead" align=center>&nbsp; &nbsp; 範圍特徵形式變格</div>
<div class="NavContent">
{| style="background:#ECECEC;text-align:center;width:100%"

|-

! style="background:#ECECEC;width:10%" | 
! style="background:#ECECEC;width:45%" | 單數
! style="background:#ECECEC;width:45%" | 複數

|-
! style="height:3em;background:#ECECEC" | 主格
| {{{imp_lqu_nom_s}}}
| {{{imp_lqu_nom_p}}}

|-
! style="height:3em;background:#ECECEC" | 屬格
| {{{imp_lqu_gen_s}}}
| {{{imp_lqu_gen_p}}}

|-
! style="height:3em;background:#ECECEC" | 賓格
| {{{imp_lqu_acc_s}}}
| {{{imp_lqu_acc_p}}}

|-
! style="height:3em;background:#ECECEC" | 與格
| {{{imp_lqu_dat_s}}}
| {{{imp_lqu_dat_p}}}

|-
! style="height:3em;background:#ECECEC" | 方位格
| {{{imp_lqu_loc_s}}}
| {{{imp_lqu_loc_p}}}

|-
! style="height:3em;background:#ECECEC" | 離格
| {{{imp_lqu_abl_s}}}
| {{{imp_lqu_abl_p}}}

|-
! style="height:3em;background:#ECECEC" | 範圍特徵格
| {{{imp_lqu_lqu_s}}}
| {{{imp_lqu_lqu_p}}}

|-
! style="height:3em;background:#ECECEC" | 限格
| {{{imp_lqu_lim_s}}}
| {{{imp_lqu_lim_p}}}

|-
! style="height:3em;background:#ECECEC" | 形似格
| {{{imp_lqu_sem_s}}}
| {{{imp_lqu_sem_p}}}

|-
! style="height:3em;background:#ECECEC" | 量似格
| {{{imp_lqu_com_s}}}
| {{{imp_lqu_com_p}}}
|}
</div></div>

|-
! style="height:3em;background:#ECECEC" | 限格
| {{{imp_lim_s}}}
| {{{imp_lim_p}}}

|-
! style="height:3em;background:#ECECEC" | 形似格
| {{{imp_sem_s}}}
| {{{imp_sem_p}}}

|-
! style="height:3em;background:#ECECEC" | 量似格
| {{{imp_com_s}}}
| {{{imp_com_p}}}

|-
! rowspan="2" style="height:3em;background:#ECECEC" | representative
| {{{imp_rep_s}}}
| {{{imp_rep_p}}}

|-
! colspan="2" style="height:3em;background:#ECECEC" | 

<div class="NavFrame">
<div class="NavHead" align=center>&nbsp; &nbsp; 代表形式變格<!--Declension of representative form--></div>
<div class="NavContent">
{| style="background:#ECECEC;text-align:center;width:100%"

|-

! style="background:#ECECEC;width:10%" | 
! style="background:#ECECEC;width:45%" | 單數
! style="background:#ECECEC;width:45%" | 複數

|-
! style="height:3em;background:#ECECEC" | 主格
| {{{imp_rep_nom_s}}}
| {{{imp_rep_nom_p}}}

|-
! style="height:3em;background:#ECECEC" | 屬格
| {{{imp_rep_gen_s}}}
| {{{imp_rep_gen_p}}}

|-
! style="height:3em;background:#ECECEC" | 賓格
| {{{imp_rep_acc_s}}}
| {{{imp_rep_acc_p}}}

|-
! style="height:3em;background:#ECECEC" | 與格
| {{{imp_rep_dat_s}}}
| {{{imp_rep_dat_p}}}

|-
! style="height:3em;background:#ECECEC" | 方位格
| {{{imp_rep_loc_s}}}
| {{{imp_rep_loc_p}}}

|-
! style="height:3em;background:#ECECEC" | 離格
| {{{imp_rep_abl_s}}}
| {{{imp_rep_abl_p}}}

|-
! style="height:3em;background:#ECECEC" | 範圍特徵格
| {{{imp_rep_lqu_s}}}
| {{{imp_rep_lqu_p}}}

|-
! style="height:3em;background:#ECECEC" | 限格
| {{{imp_rep_lim_s}}}
| {{{imp_rep_lim_p}}}

|-
! style="height:3em;background:#ECECEC" | 形似格
| {{{imp_rep_sem_s}}}
| {{{imp_rep_sem_p}}}

|-
! style="height:3em;background:#ECECEC" | 量似格
| {{{imp_rep_com_s}}}
| {{{imp_rep_com_p}}}
|}
</div></div>

]=]
	if title ~= "" then case = string.gsub(case,"impersonal",title) end
	if short ~= "" then case = string.gsub(case,"imp_",short .. "_") end
	if color ~= "" then case = string.gsub(case,"straw",color) end
	
	return case
end

return export