<?php

	require_once($_SERVER['DOCUMENT_ROOT'] ."/eclipse.org-common/system/app.class.php");
	require_once("/home/data/httpd/eclipse-php-classes/people/ldapperson.class.php");
	require_once("/home/data/httpd/eclipse-php-classes/menu/menu.class.php");
    
	#*****************************************************************************
	#
	# showyearlystats.php
	#
	# Author: 		M. Ward
	# Date:			2008-04-10
	#
	# Description: show the load stats for the all available years on the given server.
	#
	# 
	#
	#
	# HISTORY:
	#
	#****************************************************************************

    //set the default debug level nice and low
    define('DEBUG',0);
    //define('BASEPATH','/tmp/')

	$App = new App();
	$App->runStdWebAppCacheable();
	
	//connect to ldap
	$LDAPPerson = new LDAPPerson();
    $LDAPPerson = $LDAPPerson->redirectIfNotLoggedIn();
	
	include "../html/header.php";
	//do menu stuff
	$Menu = new Menu("en");
	$Menu->addMenuItem("Main stats page", "dailyloadstats.php", "_self");
    include("../modules/menu.php");
	
	//get the servername
    $server= $_REQUEST['server'];
	//get directory data
	$contents = scandir($server);
	
	$html = "<h2>Yearly Summaries</h2>";
	
	foreach( $contents as $entry) {
	  //is it a directory?
	  if ( $entry != "." && $entry != ".." ){
	    if( is_dir( $server ."/" . $entry ) == true) {
	      $html .= "</br></br><img src='drawyearstats.php?server=$server&year=$entry'></br></br></br>";
	    } else {
	      $html .= "not a directory !$entries";
	    }
	  }
	}
     
  echo $html;
  
  include "../html/footer.php";
  
?>
