<?php
	function compose($names)
	{
		array_map
		(
			function ($name)
			{
				include("source/content/" . $name . ".html.php");
			},
			$names
		);
	}
	
	function mark($core, $classes)
	{
		return ('<span class="' . implode(" ", $classes) . '">' . $core . '</span>');
	}
	
	function format($string, $classes = ["word", "lang_fs"])
	{
		if ($string == NULL)
		{
			$string = "--";
		}
		else
		{
			$string = preg_replace("/\/([^\/]*)\//", mark("$1", ["ipa"]), $string);
			$string = preg_replace("/_([^_]*)_/", "<u>$1</u>", $string);
			$string = preg_replace("/\'([^\']*)\'/", mark("$1", $classes), $string);
		}
		return $string;
	}
	
	function _foo($fieldname)
	{
		return (
			function ($row) use (&$fieldname)
			{
				global $configuration;
				return ["original" => $row[$fieldname]["fs"], "translated" => $row[$fieldname][$configuration["target"]]];
			}
		);
	}
	
	function _baz($words, $type, $language)
	{
		return ((count($words) == 0) ? "?" : implode(", ", array_map(function ($word) use (&$type,&$language) {return mark($word, [$type, "lang_" . $language]);}, $words)));
	}
	
	function _bar($type = "word")
	{
		return (
			function ($value) use (&$type)
			{
				global $configuration;
				$output = "";
				$output .= _baz($value["original"], $type, "fs");
				$output .= " ~ ";
				$output .= _baz($value["translated"], $type, $configuration["target"]);
				return $output;
			}
		);
	}	
 ?>