<?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");

require_once(dirname(__FILE__) . '/../classes/debug.php');
require_once(dirname(__FILE__) . '/scripts/specifications.inc');

$App = new App();
$Nav = new Nav();
$Menu = new Menu();
include($App->getProjectCommon());

$fileName = getEfspFile(@$_GET['version'], "content/diff_v{version}.html");

$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>
	<hr/>
	<?php include $fileName; ?>
	<hr/>
</div>

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