<?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 		= "Eclipse.org Privacy Policy";
	$pageKeywords	= "legal, privacy, policy";
	$pageAuthor		= "Mike Milinkovich, Nov. 22, 2005";
	
	# 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", 1);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 1);

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

	<div id="midcolumn">
		<h1>Copyright Agent</h1>

		<p>We respect the intellectual property rights of others, and require that the people who use the Site do the same.  We also maintain a policy under which the Web Site use privileges of users who are repeat infringers of intellectual property rights are terminated in appropriate circumstances.  If you believe that your work has been copied in a way that constitutes copyright infringement, please forward the following information to Eclipse's Copyright Agent, designated as such pursuant to the Digital Millennium Copyright Act, 17 U.S.C. &#167; 512(c)(2), named below: 
			<ul>
				<li>Your address, telephone number, and email address;</li>
				<li>A description of the copyrighted work that you claim has been infringed; </li>
				<li>A description of where the alleged infringing material is located;</li>
				<li>A statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law; </li>
				<li>An electronic or physical signature of the person authorized to act on behalf of the owner of the copyright interest; and </li>
				<li>A statement by you, made under penalty of perjury, that the above information in your Notice is accurate and that you are the copyright owner or authorized to act on the copyright owner's behalf. </li> 
			</ul>
		</p>
		<p>
		<h3>Copyright Agent: </h3> 
		Manager, Intellectual Property<br/>
		Eclipse Foundation, Inc.<br/>
		102 Centrepointe Drive<br/>
		Ottawa, Ontario<br/>
		Canada<br/>
		K2G 6B1<br/> <br/>
		Phone:  +1.613.224.9461<br/>
		Fax:  +1.212.918.1619<br/>
		Email:  license@eclipse.org<br/>
		</p>
		<br/>
	</div>
	<div id="rightcolumn">
		<div class="sideitem">
			<h6>Related Links</h6>
			<ul>
			<li><a href="index.php">Legal resources</a></li>
			<li><a href="guidetolegaldoc.php">Guide to legal documents</a></li>
			</ul>
		</div>
	</div>

EOHTML;


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