{
aTopic |
	[
request.AreDifferencesShown.IfTrue
	{
		MenuItem("Don't highlight differences between this topic and previous version", "Hide Changes", federation.LinkMaker.LinkToTopic(aTopic.Fullname))
	}
	IfFalse
	{
		MenuItem("Show differences between this topic and previous version", "Show Changes", federation.LinkMaker.LinkToTopicWithDiffs(aTopic.Fullname))
	},
	aTopic.Version.IfNull
	{
		aTopic.Namespace.IsReadOnly.IfFalse
		{
			MenuItem("Edit this page", "Edit", federation.LinkMaker.LinkToEditTopic(aTopic.Fullname))
		}
		IfTrue
		{
			""
		}
	}
	Else
	{
		""
	},
	MenuItem("Show printable view of this page", "Print", federation.LinkMaker.LinkToPrintView(aTopic.Fullname)),
	MenuItem("Show recently changed pages", "Recent Changes", federation.LinkMaker.LinkToRecentChanges(aTopic.Namespace.Name)),
	MenuItem("Show RRS feeds to keep up-to-date", "Subscriptions", federation.LinkMaker.LinkToSubscriptions(aTopic.Namespace.Name)),
	MenuItem("Show disconnected topics", "Lost and Found", federation.LinkMaker.LinkToLostAndFound(aTopic.Namespace.Name)),
	MenuItem("Find references to this topic", "Find References", federation.LinkMaker.LinkToSearchFor(null, aTopic.Name)),
	aTopic.Namespace.IsReadOnly.IfFalse
	{
		MenuItem("Rename this page", "Rename", federation.LinkMaker.LinkToRename(aTopic.Fullname))
	}
	IfTrue
	{
		""
	},
	"----", Newline,
	[
		"||{T-}",
		"'''Search'''", 
		"||",
		Newline, 
		"||{+}",
		Presentations.FormStart(federation.LinkMaker.LinkToSearchNamespace(aTopic.Namespace.Name), "get"),
		Presentations.HiddenField("namespace", aTopic.Namespace.Name),
		Presentations.InputField("search", "", 15),
		Presentations.ImageButton("goButton", federation.LinkMaker.LinkToImage("images/go-dark.gif"), "Search for this text"), 
		Presentations.FormEnd(),
		"||",
		Newline
	],
	Newline, "----", Newline,
	[
		"'''History'''", Newline,
		aTopic.Changes.Snip(5).Collect
		{ each |
			[
				"||{T-+}", 
				Presentations.Link(federation.LinkMaker.LinkToTopic(each.Fullname), [each.Timestamp].ToString), 
				"||", 
				Newline,
				"||{T-+}``", 
				each.Author, 
				"``||", 
				Newline
			]
		},
		Newline,
		MenuItem("List all versions of this page", "List all versions", federation.LinkMaker.LinkToVersions(aTopic.Fullname)),
		aTopic.Version.IfNotNull
		{[
			Newline,
			Presentations.FormStart(federation.LinkMaker.LinkToRestore(aTopic.Fullname), "post"),
			Presentations.HiddenField("RestoreTopic", aTopic.Fullname),
			Presentations.SubmitButton("restoreButton", "Restore Version"), 
			Presentations.FormEnd(),
		]}
		Else
		{
			""
		},
		Newline
	]
	]
}