local p = {}

local com = require("Modul:Common")
local dev = require("Modul:Development")
local str = require("Modul:String")
local wik = require("Modul:Wiki")
local smw = require("Modul:SMW")
local lfd = require("Modul:LinkFormDatum")

function p.OpferDerShoah(frame)
--	mw.logObject(frame, "OpferDerShoah(frame)")
	local t = ""
	local frame, pargs = dev.GetFrameAndParentArgs(frame)
	local attr, attr_empty = wik.getArgs(pargs, {
		"Nachname", "Vorname", "Geburtsname", "Geburtsdatum", "Geburtsort",
		"Todesdatum", "Todesort", "Deportationsdatum", "Deportationsort", "Todesursache",
		"Letzter bekannter Wohnort in Fürth", "Quellangaben"})

	if not attr_empty then															-- Überhaupt Parameter übergeben?

		attr["SubObjektTyp"] = "Opfer der Shoah"
		attr["Seite"] = wik.pagename()
		attr["AbweichendeNamensform"] = attr["Geburtsname"]
		attr["Geburtsname"] = nil
		attr["Gebäude"] = attr["Letzter bekannter Wohnort in Fürth"]
		attr["Letzter bekannter Wohnort in Fürth"] = nil

		-- Gebäude-Attribut suchen
		if attr["Gebäude"] ~= nil and not wik.pageExists(attr["Gebäude"]) then
			-- Seite mit passender StraßeHnr suchen
			local query = mw.smw.ask("[[:+]][[Kategorie:Gebäude]]" ..
				"[[StraßeHnr::" .. attr["Gebäude"] .. "]]|?#-|limit=1")
			if query ~= nil then
				attr["Gebäude"] = query[1][1]
			end
		end

		-- Name setzen
		local vorname = attr["Vorname"]
		local nachname = attr["Nachname"]
		local name = com.tableConcatNil({vorname, nachname})
		local page
		if wik.pageExists(name) then
			page = name
		else
			page = str.split2(attr["Seite"], "/")[1]
		end
		if vorname ~= nil then
			attr["VornameLink"] =
				"[[" .. page .. "|" .. vorname .. "]]"
		end
		if nachname ~= nil then
			attr["NachnameLink"] =
				"[[" .. page .. "|" .. nachname .. "]]"
		end
		if vorname ~= nil or nachname ~= nil then
			attr[1] = smw.subobjectIdCleaner(name)
			attr["Name"] = name
			attr["NameLink"] =
				"[[" .. page .. "|" .. name .. "]]"
		end
		
		-- Geburtsdatum, Todesdatum, Deportationsdatum verarbeiten
		attr["Geburtsdatum"] =
			lfd.linkFormDateAttrList{attr_list = attr, date = attr["Geburtsdatum"], attr_date="Geburtsdatum"}
		attr["Deportationsdatum"] =
			lfd.linkFormDateAttrList{attr_list = attr, date = attr["Deportationsdatum"], attr_date="Deportationsdatum"}
		attr["Todesdatum"] =
			lfd.linkFormDateAttrList{attr_list = attr, date = attr["Todesdatum"], attr_date="Todesdatum"}

		-- subobject setzen
--		mw.logObject(attr, "attr")
		mw.smw.subobject(attr)

	end																			-- Ende if attr_empty

--	mw.logObject(t, "t")
	return t
end

return p