Module:WorldOrder2
Note: If you make changes to this module please also update Module:WorldOrder2 on bahaipedia.org.
local module = {}
-- Define a list of volume numbers and map to the pdf page offset
-- [11] means volume 1 issue 1, so 114 is volume 1 issue 14
local pdfOffset_map = {}
-- Set default value for all combinations
for volume = 1, 25 do
    for issue = 1, 12 do
        local key = string.format("%02d%02d", volume, issue)
        pdfOffset_map[key] = "2"
    end
end
-- Specify exceptions
pdfOffset_map["0101"] = "0"
pdfOffset_map["0102"] = "0"
pdfOffset_map["0103"] = "0"
pdfOffset_map["0104"] = "0"
pdfOffset_map["0201"] = "0"
pdfOffset_map["0202"] = "0"
local publicationDate_map = {
	["0101"] = "Fall, 1966",
	["0102"] = "Winter, 1966",
	["0103"] = "Spring, 1967",
	["0104"] = "Summer, 1967",
	["0201"] = "Fall, 1967",
	["0202"] = "Winter, 1967",
	["0203"] = "Spring, 1968",
	["0204"] = "Summer, 1968",
	["0301"] = "Fall, 1968",
	["0302"] = "Winter, 1968-69",
	["0303"] = "Spring, 1969",
	["0304"] = "Summer, 1969",
	["0401"] = "Fall, 1969",
	["0402"] = "Winter, 1969-70",
	["0403"] = "Spring, 1970",
	["0404"] = "Summer, 1970",
	["0501"] = "Fall, 1970",
	["0502"] = "Winter, 1970-71",
	["0503"] = "Spring, 1971",
	["0504"] = "Summer, 1971",
	["0601"] = "Fall, 1971",
	["0602"] = "Winter, 1971-72",
	["0603"] = "Spring, 1972",
	["0604"] = "Summer, 1972",
	["0701"] = "Fall, 1972",
	["0702"] = "Winter, 1972-73",
	["0703"] = "Spring, 1973",
	["0704"] = "Summer, 1973",
	["0801"] = "Fall, 1973",
	["0802"] = "Winter, 1973-74",
	["0803"] = "Spring, 1974",
	["0804"] = "Summer, 1974",
	["0901"] = "Fall, 1974",
	["0902"] = "Winter, 1974-75",
	["0903"] = "Spring, 1975",
	["0904"] = "Summer, 1975",
	["1001"] = "Fall, 1975",
	["1002"] = "Winter, 1975-76",
	["1003"] = "Spring, 1976",
	["1004"] = "Summer, 1976",
	["1101"] = "Fall, 1976",
	["1102"] = "Winter, 1976-77",
	["1103"] = "Spring, 1977",
	["1104"] = "Summer, 1977",
	["1201"] = "Fall, 1977",
	["1202"] = "Winter, 1977-78",
	["1203"] = "Spring, 1978",
	["1204"] = "Summer, 1978",
	["1301"] = "Fall, 1978",
	["1302"] = "Winter, 1978-79",
	["1303"] = "Spring, 1979",
	["1304"] = "Summer, 1979",
	["1401"] = "Fall, 1979",
	["1402"] = "Winter, 1979",
	["1403"] = "Spring/Summer, 1980",
	["1404"] = "Spring/Summer, 1980",
	["1501"] = "Fall 1980/Winter 1981",
	["1502"] = "Fall 1980/Winter 1981",
	["1503"] = "Spring/Summer, 1981",
	["1504"] = "Spring/Summer, 1981",
	["1601"] = "Fall, 1981",
	["1602"] = "Winter, 1981-02",
	["1603"] = "Spring, 1982",
	["1604"] = "Summer, 1982",
	["1701"] = "Fall, 1982",
	["1702"] = "Winter, 1982-83",
	["1703"] = "Spring, 1983",
	["1704"] = "Summer, 1983",
	["1801"] = "Fall, 1983",
	["1802"] = "Winter, 1983-84",
	["1803"] = "Spring, 1984",
	["1804"] = "Summer, 1984",
	["1901"] = "Fall 1984/Winter 1984-85",
	["1902"] = "Fall 1984/Winter 1984-85",
	["1903"] = "Spring/Summer, 1985",
	["1904"] = "Spring/Summer, 1985",
	["2001"] = "Fall, 1985",
	["2002"] = "Winter, 1985-86",
	["2003"] = "Spring/Summer, 1986",
	["2004"] = "Spring/Summer, 1986",
	["2101"] = "Fall 1986/Winter, 1986-87",
	["2102"] = "Fall 1986/Winter, 1986-87",
	["2103"] = "Spring/Summer, 1987",
	["2104"] = "Spring/Summer, 1987",
	["2201"] = "Fall 1987/Winter, 1987-88",
	["2202"] = "Fall 1987/Winter, 1987-88",
	["2203"] = "Spring/Summer, 1988",
	["2204"] = "Spring/Summer, 1988",
	["2301"] = "Fall 1988/Winter, 1988-89",
	["2302"] = "Fall 1988/Winter, 1988-89",
	["2303"] = "Spring/Summer, 1989",
	["2304"] = "Spring/Summer, 1989",
	["2401"] = "Fall 1989/Winter, 1989-90",
	["2402"] = "Fall 1989/Winter, 1989-90",
	["2403"] = "Spring/Summer, 1990",
	["2404"] = "Spring/Summer, 1990",
	["2501"] = "Fall, 1993",
	["2502"] = "Winter, 1993-94",
	["2503"] = "Spring, 1994",
	["2504"] = "Summer, 1994",
	["2601"] = "Fall, 1994",
	["2602"] = "Winter, 1994-95",
	["2603"] = "Spring, 1995",
	["2604"] = "Summer, 1995",
	["2701"] = "Fall, 1995",
	["2702"] = "Winter, 1995-96",
	["2703"] = "Spring, 1996",
	["2704"] = "Summer, 1996",
	["2801"] = "Fall, 1996",
	["2802"] = "Winter, 1996-97",
	["2803"] = "Spring, 1997",
	["2804"] = "Summer, 1997",
	["2901"] = "Fall, 1997",
	["2902"] = "Winter, 1997-98",
	["2903"] = "Spring, 1998",
	["2904"] = "Summer, 1998",
	["3001"] = "Fall, 1998",
	["3002"] = "Winter, 1998-99",
	["3003"] = "Spring, 1999",
	["3004"] = "Summer, 1999",
	["3101"] = "Fall, 1999",
	["3102"] = "Winter, 1999-2000",
	["3103"] = "Spring, 2000",
	["3104"] = "Summer, 2000",
	["3201"] = "Fall, 2000",
	["3202"] = "Winter, 2000-01",
	["3203"] = "Spring, 2001",
	["3204"] = "Summer, 2001",
	["3301"] = "Fall, 2001",
	["3302"] = "Winter, 2001-02",
	["3303"] = "Spring, 2002",
	["3304"] = "Summer, 2002",
	["3401"] = "Fall, 2002",
	["3402"] = "Winter, 2002-03",
	["3403"] = "Spring, 2003",
	["3404"] = "Summer, 2003",
	["3501"] = "Fall, 2003",
	["3502"] = "Winter, 2003-04",
	["3503"] = "Spring, 2004",
	["3504"] = "Summer, 2004",
	["3601"] = "Fall, 2004",
	["3602"] = "Winter, 2004-05",
	["3603"] = "Spring, 2005",
	["3604"] = "Summer, 2005",
	["3701"] = "Fall, 2005",
	["3702"] = "Winter, 2005-06",
	["3703"] = "Spring, 2006",
	["3704"] = "Summer, 2006",
	["3801"] = "Fall, 2006",
	["3802"] = "Winter, 2006-07",
	["3803"] = "Spring, 2007",
}
-- Function to generate padded keys
function getPaddedKey(vol, iss)
    local volPadded = string.format("%02d", vol)
    local issPadded = string.format("%02d", iss)
    return volPadded .. issPadded
end
-- Accept the input as the volume/issue number, return date published
function module.publicationDate(frame)
    local volNumber = tonumber(frame.args[1])
    local issNumber = tonumber(frame.args[2])
    local key = getPaddedKey(volNumber, issNumber)
    return publicationDate_map[key]
end
-- Accept the input as volume number, return pdf page number offset
function module.pdfOffset(frame)
    local volumeNumber = tonumber(frame.args[1])
    local issueNumber = tonumber(frame.args[2])
    local key = string.format("%02d%02d", volumeNumber, issueNumber)
    return pdfOffset_map[key]
end
return module