<?php
	include_once("source/logic/server/data.php");
	include_once("source/logic/server/table.php");
	include_once("source/logic/server/misc.php");
 ?>
<section class="section" id="adpositions">
	<header>Adpositions</header>
	<?php proposal(); ?>
	<!--
	<p>The following list gives an overview over prepositions:</p>
	  -->
<?php
	$data_adpositions = read_json("source/data/adpositions.json");
	$data = $data_adpositions["words"];
	{
		{
			$data = sql_cross($data, $data_adpositions["situations"]);
			$data = sql_select($data, function ($row) {return ($row["situation_id"] == $row["id"]);});
			$data = sql_delete($data, ["situation_id", "id"]);
			$data = sql_rename($data, "name", "situation_name");
		}
		{
			$data = sql_cross($data, $data_adpositions["types"]);
			$data = sql_select($data, function ($row) {return ($row["type_id"] == $row["id"]);});
			$data = sql_delete($data, ["type_id", "id"]);
			$data = sql_rename($data, "name", "type_name");
		}
		{
			$data = sql_cross($data, $data_adpositions["references"]);
			$data = sql_select($data, function ($row) {return ($row["reference_id"] == $row["id"]);});
			$data = sql_delete($data, ["reference_id", "id"]);
			$data = sql_rename($data, "name", "reference_name");
		}
	}
	
	$table = new class_table
	(
		[
			new class_column("Language", "language_id"),
			new class_column("Situation", "situation_name"),
			new class_column("Type", "type_name"),
			new class_column("Reference", "reference_name"),
			new class_column("Words", "words", function ($x) {return json_encode($x);}),
		],
		$data
	);
	$table_ = $table->snap
	(
		[
			"label_vertical" => function ($column) {return "";},
			"columns_vertical" =>
			[
				$table->columns_get()[1],
			],
			"label_horizontal" => function ($column, $value) {return $value;},
			"columns_horizontal" =>
			[
				$table->columns_get()[2],
				$table->columns_get()[3],
			],
			"columns_data" =>
			[
				$table->columns_get()[0],
				$table->columns_get()[4],
			],
			"data_aggregator" => function ($values)
			{
				return $values;
			},
			"data_formatter" => function_chain
			(
				[
					object_from_array("language_id"),
					object_map(object_attribute("words")),
					format_correlation("type_word"),
				]
			),
		]
	);
	$table_->generate();
 ?>
 	<p><?php echo(format_correlation("type_sentence")(["flk" => ["Ek skal varte foran."], "eng" => ["I will wait in front."]])); ?></p>
 	<p><?php echo(format_correlation("type_sentence")(["flk" => ["Du mut blive bakan."], "eng" => ["You must stay in the back."]])); ?></p>
 	<p><?php echo(format_correlation("type_sentence")(["flk" => ["Han sta nedan de brüg."], "eng" => ["He stands under the bridge."]])); ?></p>
 	<p><?php echo(format_correlation("type_sentence")(["flk" => ["Hun flüg uvan de volker."], "eng" => ["She flies above the clouds."]])); ?></p>
 	<p><?php echo(format_correlation("type_sentence")(["flk" => ["Vi kan gae in de timer."], "eng" => ["We can go into the room."]])); ?></p>
 	<p><?php echo(format_correlation("type_sentence")(["flk" => ["Je skal löpe ut de hus."], "eng" => ["You shall run out of the house."]])); ?></p>
</section>