local p = {}
local c = require("Module:Common")

function p.daten(frame, args)
	local title = mw.title.getCurrentTitle().text
	local extension = p.getExtension(title)
	local a, w, z
	
	local t = '<table class="wikitable">' ..
		'<th colspan="4">' .. title .. '</th>'
	
	if not c.isEmpty(args.Genre) then
		t = t .. '<tr>'..
			'<td>[[Attribut:Genre|Genre]]</td>' ..
			'<td colspan="3">'..frame:callParserFunction(
				'#arraymap', args.Genre, ';', 'x', '[[:Kategorie:x|x]] [[Kategorie:x]]') .. '</td>' ..
		'</tr>'
	end
	
	-- Liste Freiattribute und Werte auf
	for i = 1, 6 do
		a = 'Attribut'..i
		w = 'Wert'..i
		if not c.isEmpty(args[a]) then
			t=t..'<tr>'..
				'<td>[[Attribut:'..args[a]..'|'..args[a]..']]</td>'..
				'<td colspan="3">'..frame:callParserFunction(
					'#arraymap', args[w], ';', 'x', '[['..args[a]..'::x]]')..'</td>'..
			'</tr>'
		end
	end
	
	if not c.isEmpty(args.Urheber) then
		t = t .. '<tr>'..
			'<td>[[Attribut:Urheber|Urheber]]</td>' ..
			'<td colspan="3">'..frame:callParserFunction(
				'#arraymap', args['Urheber'], ';', 'x', '[[Urheber::x]]')..
			'</td>'..
		'</tr>'
	end
	
	if not c.isEmpty(args.Quellangaben) then
		t = t .. '<tr>'..
		    '<td>[[Attribut:Quellangaben|Quellangaben]]</td>'..
		    '<td colspan="3">[[Quellangaben::'..args.Quellangaben..']]</td>'..
		'</tr>'
	end
	
	if not c.isEmpty(args.Ort) then
		t = t .. '<tr>'..
			'<td>[[Attribut:Ort|Ort]]</td>'..
			'<td>' .. frame:callParserFunction(
				'#arraymap', args.Ort, ';', 'x', '[[Ort::x]]') ..'</td>'..
			'<td><b>ausblenden:</b></td>'
		z = '<td>[[ZeigeNichtInOrt::Nein]]</td>'
		if not c.isEmpty(args.ZeigeNichtInOrt) then
			z = '<td>[[ZeigeNichtInOrt::'..args.ZeigeNichtInOrt..']]</td>'
		end
		t = t .. z ..'</tr>'
	end
	
	if not c.isEmpty(args['Straße']) then
		t=t..'<tr>'..
			'<td>[[Attribut:Straße|Straße]]</td>'..
			'<td>'..frame:callParserFunction(
				'#arraymap', args['Straße'], ';', 'x', '[[Straße::x]]') 
		t=t..'</td>'..
			'<td><b>ausblenden:</b></td>'
		z = '<td>[[ZeigeNichtInStraße::Nein]]</td>'
		if not c.isEmpty(args['ZeigeNichtInStraße']) then
			z = '<td>[[ZeigeNichtInStraße::'..args['ZeigeNichtInStraße']..']]</td>'
		end
		t=t..z..'</tr>'
	end
	
	if not c.isEmpty(args.Erstellungsdatum) then
		t=t..'<tr>'..
			'<td>[[Attribut:Erstellungsdatum|Erstellungsdatum]]</td>'..
			'<td colspan="3">'..frame:expandTemplate{title='LinkFormDatum', args={
				args.Erstellungsdatum,
				'Erstellungsdatum',
				'Erstellungstag',
				'Erstellungsjahr'}}..'</td>'..
		'</tr>'
	end
	
	if not c.isEmpty(args['ÜberDatum']) then
		t=t..'<tr>'..
			'<td>[[Attribut:ÜberDatum|Über Datum]]</td>'..
			'<td colspan="3">'..frame:expandTemplate{title='LinkFormDatum', args={
				args['ÜberDatum'],
				'ÜberDatum',
				'ÜberTag',
				'ÜberJahr'}}..'</td>'..
		'</tr>'
	end
	
	if not c.isEmpty(args.Seitennummer) then
		t=t..'<tr>'..
			'<td>[[Attribut:Seitennummer|Seitennummer]]</td>'..
			'<td colspan="3">'..frame:callParserFunction(
				'#arraymap', args.Seitennummer, ';', 'x', '[[Seitennummer::x]]') ..'</td>'..
		'</tr>'
	end
	
	if not c.isEmpty(args.Signatur) then
		t=t..'<tr>'..
			'<td>[[Attribut:Signatur|Signatur]]</td>'..
			'<td colspan="3">[[Signatur::'..args.Signatur..']]</td>'..
		'</tr>'
	end
	
	if not c.isEmpty(extension) then
		t=t..'<tr>'..
			'<td>[[Attribut:Dateityp|Dateityp]]</td>'..
			'<td colspan="3">[[Dateityp::' .. mw.ustring.upper(extension) .. ']]</td>'..
		'</tr>'
	end 
	
    if not c.isEmpty(args['Länge']) then
		t=t..'<tr>'..
			'<td>[[Attribut:Länge|Länge]]</td>'..
			'<td colspan="3">'..'[[Länge::'..args['Länge']..']]</td>'..
		'</tr>'
	end

	if not c.isEmpty(args.Lizenz) then
		t=t..'<tr>'..
			'<td>[[Attribut:Lizenz|Lizenz]]</td>'..
			'<td colspan="3">[[Lizenz::'..args.Lizenz..']]</td>'..
		'</tr>'
	end
		
	if not c.isEmpty(args.Beschreibung) then
		t=t..'<tr>'..
			'<td>[[Attribut:Beschreibung|Beschreibung]]</td>'..
			'<td colspan="3">[[Beschreibung::'..args.Beschreibung..']]</td>'..
		'</tr>'
	end
	
	if not c.isEmpty(args.UploadCommons) then
		t=t..'<tr>'..
			'<td>[[Attribut:UploadCommons|Upload zu Wikimedia Commons]]</td>'..
			'<td colspan="3">[[UploadCommons::'..args.UploadCommons..']]</td>'..
		'</tr>'
	end

	t=t..'<tr>'..
		'<td>[[Bild:IconSearch.svg|16px|semantisches Browsen|link=Spezial:Durchsuchen/{{NAMESPACE}}:{{PAGENAME}}]]</td>'..
		'<td colspan="3">[[Spezial:Durchsuchen/{{NAMESPACE}}:{{PAGENAME}}|semantisches Browsen]]</td>'..
	'</tr>'
	t=t..'</table>'
	return t
end 

function p.getExtension(filename)
    return filename:match("^.+%.([^%.]+)$")
end

return p