<?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'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Denis Roy
	# Date:			2005-06-16
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "DLTK Downloads";
	$pageKeywords	= "dltk, tcl, ruby, python, languages, eclipse, ide";
	$pageAuthor		= "Andrey Platov";
	
	# 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
	# 
		
	include("_sideIncubator.php");		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

<div id="maincontent">
	<div id="midcolumn">
		<h1>$pageTitle</h1>
			<h3>Requirements</h3>		
<p>First-time users can get started quickly by simply downloading the Ruby IDE Runtime Bundle or Tcl IDE Runtime Bundle, or installing 
DLTK with Eclipse Update Manager from <a href="http://download.eclipse.org/technology/dltk/updates">Dynamic Languages Toolkit Update Site</a>.</p> 

<p>DLTK 0.9 requires Eclipse 3.3.</p>
		<div class="homeitem3col">
			<h3>DLTK 0.9 Downloads</h3>
			<ul>
			  <li><a href="http://www.eclipse.org/downloads/download.php?file=/technology/dltk/downloads/drops/R0.9/R-0.9-200706220937/dltk-core-ruby-R-0.9-200706220937-incubation.zip">Ruby IDE Runtime Bundle</a> - includes DLTK Core Frameworks Runtime and Ruby IDE Runtime for Eclipse Platform 3.3.</li>
			  <li><a href="http://www.eclipse.org/downloads/download.php?file=/technology/dltk/downloads/drops/R0.9/R-0.9-200706220937/dltk-core-tcl-R-0.9-200706220937-incubation.zip">Tcl IDE Runtime Bundle</a> - includes DLTK Core Frameworks Runtime and Tcl IDE Runtime for Eclipse Platform 3.3.</li>
			  <li><a href="http://www.eclipse.org/downloads/download.php?file=/technology/dltk/downloads/drops/R0.9/R-0.9-200706220937/dltk-sdk-R-0.9-200706220937-incubation.zip">All-in-One DLTK SDK</a> - includes binaries and source code of DLTK Core Frameworks, Ruby IDE and TCL IDE for Eclipse Platform 3.3.</li>
			  <li><a href="http://download.eclipse.org/technology/dltk/downloads/">More DLTK downloads...</a> - link to another versions, integration and stable builds.</li>
			</ul>
		</div>
		<hr class="clearer" />
	</div>
	<div id="rightcolumn">
	    <div class="sideitem">
			<h6>Related links</h6>
			<ul>
				<li><a href="/proposals/dltk/">Project proposal</a></li>
				<li><a href="/proposals/dltk/Dynamic%20Languages%20Toolkit%20-%20Creation%20Review%20Slides.pdf">Creation review slides</a></li>
			</ul>
		</div>	    
	    $incubatorSide
	</div>
</div>

EOHTML;


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