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


$version = SpecificationProcess::getInstance()->getVersion(@$_GET['version']);
$fileName = $version->getDiff();

$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" <?php if ($version->isDraft()) echo 'class="draft"'?>>
	<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 if ($fileName) include $fileName; else echo "Nothing to show." ?>
	<hr/>
</div>

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