<?php  																														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("_projectCommon.php");    # All on the same line to unclutter the user's desktop'


	#*****************************************************************************
	#
	# index.php
	#
	# Author: 		Denis Roy
	# Date:			2005-10-11
	#
	# Description: display list of projects for downloads
	#
	#****************************************************************************

	#
	# Begin: page-specific settings.  Change these.
	$pageTitle 		= "Eclipse Downloads";
	$pageKeywords	= "eclipse,download,downloads,mirror,project,plug-ins,plugins,java,ide,swt,refactoring,free java ide,tools,platform,open source,development environment,development,ide";
	$pageAuthor		= "Eclipse Foundation, Inc.";

	$App->PageRSS = "/downloads/rss.php";
	$App->PageRSSTitle = "Eclipse Releases";

	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank)
	# $Nav->addCustomNav("My Link", "mypage.php", "_self");
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank");

	# End: page-specific settings
	#
	# Enable polls on this page
	# Polls are good for 3 months!
	#$App->usePolls();

	# Poll 1 - without a bar graph
	#$Poll = new Poll(1, "How could we improve the way you obtain Eclipse?", "http://www.eclipse.org/downloads/");
	#$Poll->addOption(1, "Sell DVD subscriptions");
	#$Poll->addOption(2, "Use BitTorrent");
	#$Poll->addOption(3, "Get more mirrors");
	#$Poll->addOption(4, "Get faster mirrors");
	#$Poll->addOption(5, "Add more bandwidth");
	#$Poll->addOption(6, "It works fine as it is");
	# $Poll->noGraph();  # uncomment to disable bar graph
	#$pollHTML = $Poll->getHTML();


	 # require_once "/home/data/httpd/eclipse-php-classes/downloads/livedownload.class.php";

	# $LiveDownload = new LiveDownload();
	# $dl_count = number_format($LiveDownload->selectDownloadCount("SDK_31"), 0, '', ',');




	# Place your html content in a file called content/en_pagename.php
	$downloadBasepath = $App->getDownloadBasePath();
	// UnComment this line to restore the old download page.
	// include("content/en_" . $App->getScriptName());
	// Comment this line to restore the old download page.
	include("content/en_developer.php");
	$App->Promotion = TRUE;
	# Generate the web page
	$App->generatePage("solstice", $Menu, NULL, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
