<?php
/*******************************************************************************
 * Copyright (c) 2013 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    Denis Roy (Eclipse Foundation)- initial API and implementation
*******************************************************************************/

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("../committertools/_projectCommon.php");

$pageTitle 		= "Web Stats";
$pageKeywords	= "";
$pageAuthor		= "Eclipse Foundation, Inc.";
header("Content-type: text/html; charset=utf-8");
header("Cache-Control: no-cache, must-revalidate");
$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="layout.css" media="screen" />');

# require session for this page
$Session = $App->useSession(true);
ob_start();
?>
	<div id="maincontent">
		<div id="midcolumn" style="width: 678px;">
			<h1><?=$pageTitle ?></h1>			
			<h2>Click an image for more details</h2>
			<a href="https://dev.eclipse.org/committers/webstats/dev.eclipse.org"><img src="dev.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/www.eclipse.org"><img src="www.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/download.eclipse.org"><img src="download.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/wiki.eclipse.org"><img src="wiki.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/archive.eclipse.org"><img src="archive.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/planeteclipse.org"><img src="planeteclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/bugs.eclipse.org"><img src="bugs.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/help.eclipse.org"><img src="help.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/eclipseplugincentral.com"><img src="eclipseplugincentral.com/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/live.eclipse.org"><img src="live.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/marketplace.eclipse.org"><img src="marketplace.eclipse.org/usage.png" ></a>
		    <a href="https://dev.eclipse.org/committers/webstats/git.eclipse.org"><img src="git.eclipse.org/usage.png" ></a>
		    <br /><br /><a href="../../site_login/myaccount.php">< Back to My Account</a>
	</div></div>
<?php 
$html = ob_get_contents();
ob_end_clean();
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>