<?php
/*******************************************************************************
 * Copyright (c) Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *******************************************************************************/
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
$App = new App();
$Nav = new Nav();
$Menu = new Menu();
include($App->getProjectCommon());

function getEfspFile($version = null) {
	if ($version) {
		$fileName = "content/diff_v{$version}.html";
		if (file_exists($fileName)) {
			return $fileName;
		}
	}

	$files = glob("content/diff_v*.html");
	return end($files);

}

$fileName = getEfspFile(@$_GET['version']);
$date = date('Y-m-d', filemtime($fileName));

$pageTitle = "Eclipse Foundation Specification Process Changes";
$pageAuthor = "Wayne Beaton";
$pageKeywords = "EDP, Specifications";

include( '../../_commonLeftNav.php' );

ob_start();
?>

<link rel="stylesheet" href="/projects/handbook/resources/handbook.css"/>

<style>
ins {
color: green;
text-decoration: underline;
}

ins img {
  border: 3px solid green;
}

del {
color: red;
text-decoration: line-through;
}

del img {
  border: 3px solid red;
}

</style>

<div id="maincontent">
	<h1><?php echo $pageTitle; ?></h1>
	<p><em>This document highlights differences between this version of the specification process and the last.
	Additions are underlined and coloured green; deletions are struck through and coloured red.</em></p>
	<p>Updated on <?php echo $date; ?>.</p>
	<hr/>
	<?php include $fileName; ?>
	<hr/>
</div>

<?php
	$html = ob_get_contents();
	ob_end_clean();
	$App->generatePage(null, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
