<?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($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# sample_3col.php
	#
	# Author: 		Denis Roy
	# Date:			2005-11-07
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Getting to know Eclipse.org";
	$pageKeywords	= "Type, page, keywords, here";
	$pageAuthor		= "siwai";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>$pageTitle</h1>
		<h2>What is Eclipse.org?</h2>
		<p> Eclipse is an open source community whose projects are focused on providing an 
		extensible development platform and application frameworks for building software. 
		Eclipse provides extensible tools and frameworks that span the software development 
		lifecycle, including support for modeling, language development environments for Java, 
		C/C++ and others, testing and performance, business intelligence, rich client 
		applications and embedded development. A large, vibrant ecosystem of major technology 
		vendors, innovative start-ups, universities and research institutions and individuals 
		extend, complement and support the Eclipse Platform.<br />  </p>

		<div class="homeitem">
			<h3>Resources for the Eclipse Developer Community</h3>
			<ul>
				<li><a href="../documentation/main.html">Eclipse Technical Documentation</a> </li>			
				<li><a href="#"></a>Project Overview Map with subprojects </li>
				<li>Papers: <a href="../org/councils/roadmap.php">Eclipse Roadmap</a>, <a href=""
				../whitepapers/eclipse-overview.pdf">Whitepaper (.pdf) </a></li>
				<li><a href="../articles/index.html">Peer-reviewed technical articles</a></li>
				<li><a href="../search/search.cgi?form=extended&qprev=">Advanced Search</a> and <a href="#">ask technical questions on the newsgroups</a></li>
				<li><a href="#"></a>Catalogues of Eclipse related Events, Books, Tutorials, community websites </li>

			</ul>
		</div>
		<div class="homeitem">
			<h3>The Eclipse Foundation</h3>
			<ul>
				<li><a href="../org/membership/become_a_member/">Membership in the Eclipse Foundation </a> </li>
				<li><a href="../org/membership/members/">List of Members</a>, Board of Directors, Technical Councils</li>
				<li><a href="../org/legal/">Legal and Licensing</a> </li>
				<li><a href="">Calendar of Events</a></li>
				<li><a href="../org/press-release/">Press Releases</a> and case studies</li>

			</ul>
			
		</div>
		
	</div>
	<!-- remove the entire <div> tag to omit the right column!  -->
	<div id="rightcolumn">
		<div class="sideitem">
			<h6>What is .. ?</h6>
			<ul>
				<li><a href="../rcp/">OSGi/RCP</a></li>
				<li><a href="../swt/">SWT</a></li>
				<li><a href="../jdt/">JDT</a></li>
				<li><a href="../emf/">EMF</a></li>
				<li><a href="../eclipse/">Platform</a></li>
				<li><a href="../cdt/">CDT</a></li>
				
			</ul>
		</div>
		<div class="sideitem">
			<h6>Eclipse Top Level Projects</h6>
			<ul>
				<li><a href="../eclipse/"> Eclipse (Platform)</a></li>
				<li><a href="../birt/">Business Intelligence and Reporting Tools (BIRT)</a></li>
				<li><a href="../dtp/">Data Tools Platform (DTP)</a></li>
				<li><a href="../dsdp/">Device Software Development Platform (DSDP)</a></li>
				<li><a href="../technology/">Technology (incubator)</a></li>
				<li><a href="../tptp/">Test and Performance Tools Platform </a></li>
				<li><a href="../tools/">Tools (C/C++, Modelling..)</a></li>
				<li><a href="../webtools/">Web Tools Platform </a></li>
				
			</ul>
		</div>
	</div>

EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
