<?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'
	$pageTitle 		= "SMILA - Downloads";
	$pageKeywords	= "SMILA, Unified Information Access Architecture, unstructured information management, information logistics, semantic web, framework, platform, eclipse, big data, bigdata";
	$pageAuthor		= "Andreas Weber";

	# Paste your HTML content between the EOHTML markers!
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Downloads</h1>
		
		<h2>Releases</h2>			
		
		<h3>1.3</h3>
		<p>
			The release <b>1.3</b> is the latest stable version of SMILA.
			<ul>
				<li>Linux 32 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.3/SMILA-1.3-linux.gtk.x86.zip">SMILA-1.3-linux.gtk.x86.zip</a></li>
				<li>Linux 64 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.3/SMILA-1.3-linux.gtk.x86_64.zip">SMILA-1.3-linux.gtk.x86_64.zip</a></li>
				<li>Mac OS X 64 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.3/SMILA-1.3-macosx.cocoa.x86_64.zip">SMILA-1.3-macosx.cocoa.x86_64.zip</a></li>
				<li>Windows 32 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.3/SMILA-1.3-win32.win32.x86.zip">SMILA-1.3-win32.win32.x86.zip</a></li>
				<li>Windows 64 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.3/SMILA-1.3-win32.win32.x86_64.zip">SMILA-1.3-win32.win32.x86_64.zip</a></li>
				<li>SDK example code: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.3/SMILA-1.3-integrator-examples.zip">SMILA-1.3-integrator-examples.zip</a></li>
				<li>SMILA source code: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.3/SMILA-1.3-core-source.zip">SMILA-1.3-core-source.zip</a></li>
			</ul>
		</p>		
		
		<h2>Archived releases and milestones</h2>
		<p>
			You can find older SMILA releases and milestones in our 
			<a href="downloads_archive.php">download archive</a>.
		</p>
		<h2>Nightly builds</h2>
		<p>
			The nightly builds are provided for now only for Linux and Windows. Please note that these builds
			have not been tested and that they actually reflect the status of the current development branch.
			<ul>
				<li><a href="http://build.eclipse.org/rt/smila/nightly/">SMILA nightly builds</a></li>
			</ul>
		</p>
		<!--
		<h2>SMILA extensions for BPEL designer</h2>
		<p>
			Starting from release 0.8 we offer BPEL designer extensions for management of SMILA's workflows. 
			Detailed instructions on how to obtain the BPEL designer and install deploy our extensions int can be found 
			<a href="http://wiki.eclipse.org/SMILA/BPEL_Designer">here</a>.
		</p>
		-->
		<h2>Resources</h2>
		<p>
			If you would like to incorporate SMILA logo (e.g. "powered by SMILA") into your application or your website, here 
			are some graphics you can freely use:
			<table border="1" frame="border" >
				<tr>
					<td><img src="logo/SMILA_Icon.jpg" alt="SMILA icon" align="left" width="124" height="124"></td>
				</tr>
				<tr>
					<td><img src="logo/SMILA.gross.png" alt="SMILA with name - large" align="left" width="434" height="96"></td>
				</tr>
				<tr>
					<td><img src="logo/SMILA.Icon.tagline.jpg" alt="SMILA with tagline" align="left" width="124" height="163"></td>
				</tr>
				<tr>
					<td><img src="logo/SMILA_Tagline_Large.jpg" alt="SMILA with tagline - large" align="left" width="420" height="119"></td>
				</tr>
				<tr>
					<td><img src="logo/SMILA.powered.gross.jpg" alt="powered by SMILA - large" align="left" width="320" height="103"></td>
				</tr>
				<tr>
					<td><img src="logo/SMILA_powered_klein.jpg" alt="powered by SMILA" align="left" width="125" height="191"></td>
				</tr>
			</table>
		</p>
		<h2>SMILA Distributions</h2>
		<p>
			Find out more about commercial distributions of SMILA:
			<ul>
				<li>eESS: <a href="https://www.eccenca.com/en/products/enterprise-search-suite.html">eccenca Enterprise Search Suite</a></li>
			</ul>
		</p>
	</div>

EOHTML;

	include('rightColumn.php');
	$html .= $rightColumn;

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
