<?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-M1</h3>
		<p>			
			<ul>
				<li>Linux 32 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/1.3-M1/SMILA-1.3-M1-linux.gtk.x86.zip">SMILA-1.3-M1-linux.gtk.x86.zip</a></li>
				<li>Linux 64 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/1.3-M1/SMILA-1.3-M1-linux.gtk.x86_64.zip">SMILA-1.3-M1-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/milestones/1.3-M1/SMILA-1.3-M1-macosx.cocoa.x86_64.zip">SMILA-1.3-M1-macosx.cocoa.x86_64.zip</a></li>
				<li>Windows 32 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/1.3-M1/SMILA-1.3-M1-win32.win32.x86.zip">SMILA-1.3-M1-win32.win32.x86.zip</a></li>
				<li>Windows 64 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/1.3-M1/SMILA-1.3-M1-win32.win32.x86_64.zip">SMILA-1.3-M1-win32.win32.x86_64.zip</a></li>
				<li>SDK example code: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/1.3-M1/SMILA-1.3-M1-integrator-examples.zip">SMILA-1.3-M1-integrator-examples.zip</a></li>
				<li>SMILA source code: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/1.3-M1/SMILA-1.3-M1-core-source.zip">SMILA-1.3-M1-core-source.zip</a></li>
			</ul>
		</p>
		
		<h3>1.2</h3>
		<p>
			The release <b>1.2</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.2/SMILA-1.2-linux.gtk.x86.zip">SMILA-1.2-linux.gtk.x86.zip</a></li>
				<li>Linux 64 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.2/SMILA-1.2-linux.gtk.x86_64.zip">SMILA-1.2-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.2/SMILA-1.2-macosx.cocoa.x86_64.zip">SMILA-1.2-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.2/SMILA-1.2-win32.win32.x86.zip">SMILA-1.2-win32.win32.x86.zip</a></li>
				<li>Windows 64 Bit: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.2/SMILA-1.2-win32.win32.x86_64.zip">SMILA-1.2-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.2/SMILA-1.2-integrator-examples.zip">SMILA-1.2-integrator-examples.zip</a></li>
				<li>SMILA source code: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/releases/1.2/SMILA-1.2-core-source.zip">SMILA-1.2-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>
			Free and Commercial Distributions of SMILA:
			<ul>
				<li>eccenca: <a href="http://www.eccenca.com">Find out more about the different editions of eccenca</a></li>
				<li>eccenca Marketplace: <a href="http://market.eccenca.com">Components to extend the capabilities of your SMILA and eccenca installation</a></li>
			</ul>
		</p>
	</div>

EOHTML;

	include('rightColumn.php');
	$html .= $rightColumn;

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
