<?php
/**
 * Copyright (c) 2014, 2018 Eclipse Foundation.
 *
 * 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/
 *
 * Contributors:
 *    Christopher Guindon (Eclipse Foundation) - Initial implementation
 *    Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");

$App = new App();
$Theme = $App->getThemeClass();

$pageTitle = "Support Eclipse";
$Theme->setPageTitle($pageTitle);
$Theme->setPageKeywords("eclipse membership");
$Theme->setPageAuthor("Eclipse Foundation, Inc.");

$supporters = array(
  'cisco120.gif',
  'eads120.png',
  'rim120.png',
  'siemens.gif'
);
shuffle($supporters);
$support_logos = "";
foreach ($supporters as $p) {
  $support_logos .= '<img src="images/' . $p . '" alt="' . $p . '" style="padding:10px 0;">';
}

// Generate the web page
ob_start();
include("content/en_" . $App->getScriptName());
$html = ob_get_clean();

$Theme->setHtml($html);
$Theme->generatePage();