Module:Sports table/sub
-- Subfunctions for this module that are called from the style modules
 local ppp = {}
 
 function ppp.colhead(ttt,width,text)
 	-- For individual column headers
 	local head_string
 	if width=='auto' then
 		head_string = '! scope=&quot;col&quot; |'..text..'\n'
 	else
 		head_string = '! scope=&quot;col&quot; width='..width..'|'..text..'\n'
 	end
 
 	ttt.count = ttt.count+1
 	table.insert(ttt.tab_text,head_string)
 	
 	return ttt
 end
 
 function ppp.hth(frame,Args,full_table,hth_id_list,hth_local,notes_exist,team_list,team_code_ii,ii_start,ii_end,rand_val)
 	-- For head-to-head notes
 	local hth_string, hth_local_num, hth_id, k, hth_loc = '', nil, nil, nil, nil
 	
 	-- Check whether there is a head-to-head note or not, if so get text ready for it the same way as for the notes
 	if hth_local and full_table then
 		-- Set global check for notes to true
 		notes_exist = true
 		
 		-- Split the hth_local into a table if all the entries are valid
 		local multiref = 1
 		local hth_local_table = mw.text.split(hth_local, '%s*,%s*')
 		if (#hth_local_table &gt; 1) then
 			for k, hth_loc in ipairs(hth_local_table) do
 				multiref = multiref * (Args['hth_' .. hth_loc] and 1 or 0)
 			end
 		else
 			multiref = 0
 		end
 
 		-- Split failed, so make a single entry table with hth_local inside
 		if multiref &lt; 1 then
 			hth_local_table = { hth_local }
 		end
 
 		for k,hth_loc in ipairs(hth_local_table) do
 			if not Args['hth_'..hth_loc] then
 				-- Option 1
 				-- Now define the identifier for this
 				hth_id = '&quot;table_hth_'..team_code_ii..rand_val..'&quot;' -- Add random end for unique ID if more tables are present on article (which might otherwise share an ID)
 				hth_id_list[team_code_ii] = hth_id
 				-- Call refn template
 				hth_string = hth_string .. frame:expandTemplate{ title = 'efn', args = { group='lower-alpha',  name=hth_id, hth_loc} }
 			else 
 				-- Option 2
 				hth_local_num = team_list[hth_loc] or -1
 				if hth_id_list[hth_loc] or ((hth_local_num &gt;= ii_start) and (hth_local_num &lt;= ii_end)) then
 					-- Option 2a
 					hth_id = '&quot;table_hth_'..hth_loc..rand_val..'&quot;'
 					hth_string = hth_string .. frame:extensionTag{ name = 'ref', args = { group = 'lower-alpha', name = hth_id} }
 				else
 					-- Option 2b
 					hth_id = '&quot;table_hth_'..hth_loc..rand_val..'&quot;' -- Add random end for unique ID
 					hth_id_list[hth_loc] = hth_id
 					-- Call refn template
 					hth_string = hth_string .. frame:expandTemplate{ title = 'efn', args = { group='lower-alpha',  name=hth_id, Args['hth_'..hth_loc]} }
 				end
 			end
 		end
 	end
 	
 	return {str=hth_string, list=hth_id_list, notes_exist=notes_exist}
 end
 
 function ppp.status(Args, status_code)
 	-- Declare status options
 	-- ------------------------------------------------------------
 	-- NOTE: If you add to status_code, also add to status_called and status_letters!!
 	-- Or functionality will be compromised
 	-- ------------------------------------------------------------
 	local status_called = {}
 	local status_letters = (Args['status_order'] or '') .. 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 	if type(status_code) ~= 'table' then status_code = {} end
 	if #status_code &lt; 1 then
 		status_code = {	A='மேலும் ஒரு சுற்றுக்கு முன்னேற்றம்', C='வாகையாளர்', D='தகுதிநீக்கம்', 
 		E='நீக்கப்பட்டது', G='விருந்தாளி', H='நடத்துபவர்', O='Play-off winner', P='நிலை உயர்வு', Q='சுட்டிக்காட்டப்பட்ட கட்டத்திற்கு தகுதி',
 		R='தாழ்த்தப்பட்டது', T='தகுதி, ஆனால் இன்னும் குறிப்பிட்ட கட்டத்திற்கு வரவில்லை'}
 	end
 	
 	-- Status position (before or after read and default)
 	local stat_pos_val = string.lower(Args['status_pos'] or '')
 	local status_position = 'after' 	-- Default location
 	if stat_pos_val=='before' then
 		status_position = 'before'
 	elseif stat_pos_val=='after' then
 		status_position = 'after'
 	end
 	-- Read in custom status options
 	for l in mw.text.gsplit(status_letters, '') do
 		status_called[l] = false
 		status_code[l] = status_code[l] or '?'
 		status_letters = mw.ustring.gsub(status_letters, '(' .. l ..'.-)' .. l, '%1')
 
 		if Args['status_text_' .. l] then
 			status_code[l] = Args['status_text_' .. l]
 		end
 	 end
 	
 	return {code=status_code, called=status_called, letters=status_letters, position=status_position}
 end