<!--
	Copyright 2009 The Go Authors. All rights reserved.
	Use of this source code is governed by a BSD-style
	license that can be found in the LICENSE file.
-->
<!--
	Note: Static (i.e., not template-generated) href and id
	attributes start with "pkg-" to make it impossible for
	them to conflict with generated attributes (some of which
	correspond to Go identifiers).
-->
{{with .PDoc}}
	<script>
	document.ANALYSIS_DATA = {{$.AnalysisData}};
	document.CALLGRAPH = {{$.CallGraph}};
	</script>

	{{if $.IsMain}}
		{{/* command documentation */}}
		{{comment_html .Doc}}
	{{else}}
		{{/* package documentation */}}
		<div id="short-nav">
			<dl>
			<dd><code>import "{{html .ImportPath}}"</code></dd>
			</dl>
			<dl>
			<dd><a href="#pkg-overview" class="overviewLink">Overview</a></dd>
			<dd><a href="#pkg-index" class="indexLink">Index</a></dd>
			{{if $.Examples}}
				<dd><a href="#pkg-examples" class="examplesLink">Examples</a></dd>
			{{end}}
			{{if $.Dirs}}
				<dd><a href="#pkg-subdirectories">Subdirectories</a></dd>
			{{end}}
			</dl>
		</div>
		<!-- The package's Name is printed as title by the top-level template -->
		<div id="pkg-overview" class="toggleVisible">
			<div class="collapsed">
				<h2 class="toggleButton" title="Click to show Overview section">Overview ▹</h2>
			</div>
			<div class="expanded">
				<h2 class="toggleButton" title="Click to hide Overview section">Overview ▾</h2>
				{{comment_html .Doc}}
				{{example_html $ ""}}
			</div>
		</div>

		<div id="pkg-index" class="toggleVisible">
		<div class="collapsed">
			<h2 class="toggleButton" title="Click to show Index section">Index ▹</h2>
		</div>
		<div class="expanded">
			<h2 class="toggleButton" title="Click to hide Index section">Index ▾</h2>

		<!-- Table of contents for API; must be named manual-nav to turn off auto nav. -->
			<div id="manual-nav">
			<dl>
			{{if .Consts}}
				<dd><a href="#pkg-constants">Constants</a></dd>
			{{end}}
			{{if .Vars}}
				<dd><a href="#pkg-variables">Variables</a></dd>
			{{end}}
			{{range .Funcs}}
				{{$name_html := html .Name}}
				<dd><a href="#{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd>
			{{end}}
			{{range .Types}}
				{{$tname_html := html .Name}}
				<dd><a href="#{{$tname_html}}">type {{$tname_html}}</a></dd>
				{{range .Funcs}}
					{{$name_html := html .Name}}
					<dd>&nbsp; &nbsp; <a href="#{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd>
				{{end}}
				{{range .Methods}}
					{{$name_html := html .Name}}
					<dd>&nbsp; &nbsp; <a href="#{{$tname_html}}.{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd>
				{{end}}
			{{end}}
			{{if $.Notes}}
				{{range $marker, $item := $.Notes}}
				<dd><a href="#pkg-note-{{$marker}}">{{noteTitle $marker | html}}s</a></dd>
				{{end}}
			{{end}}
			</dl>
			</div><!-- #manual-nav -->

		{{if $.Examples}}
		<div id="pkg-examples">
			<h3>Examples</h3>
			<div class="js-expandAll expandAll collapsed">(Expand All)</div>
			<dl>
			{{range $.Examples}}
			<dd><a class="exampleLink" href="#example_{{.Name}}">{{example_name .Name}}</a></dd>
			{{end}}
			</dl>
		</div>
		{{end}}

		{{with .Filenames}}
			<h3>Package files</h3>
			<p>
			<span style="font-size:90%">
			{{range .}}
				<a href="{{.|srcLink|html}}">{{.|filename|html}}</a>
			{{end}}
			</span>
			</p>
		{{end}}
		</div><!-- .expanded -->
		</div><!-- #pkg-index -->

		{{if ne $.CallGraph "null"}}
		<div id="pkg-callgraph" class="toggle" style="display: none">
		<div class="collapsed">
			<h2 class="toggleButton" title="Click to show Internal Call Graph section">Internal call graph ▹</h2>
		</div> <!-- .expanded -->
		<div class="expanded">
			<h2 class="toggleButton" title="Click to hide Internal Call Graph section">Internal call graph ▾</h2>
			<p>
			  In the call graph viewer below, each node
			  is a function belonging to this package
			  and its children are the functions it
			  calls&mdash;perhaps dynamically.
			</p>
			<p>
			  The root nodes are the entry points of the
			  package: functions that may be called from
			  outside the package.
			  There may be non-exported or anonymous
			  functions among them if they are called
			  dynamically from another package.
			</p>
			<p>
			  Click a node to visit that function's source code.
			  From there you can visit its callers by
			  clicking its declaring <code>func</code>
			  token.
			</p>
			<p>
			  Functions may be omitted if they were
			  determined to be unreachable in the
			  particular programs or tests that were
			  analyzed.
			</p>
			<!-- Zero means show all package entry points. -->
			<ul style="margin-left: 0.5in" id="callgraph-0" class="treeview"></ul>
		</div>
		</div> <!-- #pkg-callgraph -->
		{{end}}

		{{with .Consts}}
			<h2 id="pkg-constants">Constants</h2>
			{{range .}}
				{{comment_html .Doc}}
				<pre>{{node_html $ .Decl true}}</pre>
			{{end}}
		{{end}}
		{{with .Vars}}
			<h2 id="pkg-variables">Variables</h2>
			{{range .}}
				{{comment_html .Doc}}
				<pre>{{node_html $ .Decl true}}</pre>
			{{end}}
		{{end}}
		{{range .Funcs}}
			{{/* Name is a string - no need for FSet */}}
			{{$name_html := html .Name}}
			<h2 id="{{$name_html}}">func <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a>
				<a class="permalink" href="#{{$name_html}}">&#xb6;</a>
				{{$since := since "func" "" .Name $.PDoc.ImportPath}}
				{{if $since}}<span title="Added in Go {{$since}}">{{$since}}</span>{{end}}
			</h2>
			<pre>{{node_html $ .Decl true}}</pre>
			{{comment_html .Doc}}
			{{example_html $ .Name}}
			{{callgraph_html $ "" .Name}}

		{{end}}
		{{range .Types}}
			{{$tname := .Name}}
			{{$tname_html := html .Name}}
			<h2 id="{{$tname_html}}">type <a href="{{posLink_url $ .Decl}}">{{$tname_html}}</a>
				<a class="permalink" href="#{{$tname_html}}">&#xb6;</a>
				{{$since := since "type" "" .Name $.PDoc.ImportPath}}
				{{if $since}}<span title="Added in Go {{$since}}">{{$since}}</span>{{end}}
			</h2>
			{{comment_html .Doc}}
			<pre>{{node_html $ .Decl true}}</pre>

			{{range .Consts}}
				{{comment_html .Doc}}
				<pre>{{node_html $ .Decl true}}</pre>
			{{end}}

			{{range .Vars}}
				{{comment_html .Doc}}
				<pre>{{node_html $ .Decl true}}</pre>
			{{end}}

			{{example_html $ $tname}}
			{{implements_html $ $tname}}
			{{methodset_html $ $tname}}

			{{range .Funcs}}
				{{$name_html := html .Name}}
				<h3 id="{{$name_html}}">func <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a>
					<a class="permalink" href="#{{$name_html}}">&#xb6;</a>
					{{$since := since "func" "" .Name $.PDoc.ImportPath}}
					{{if $since}}<span title="Added in Go {{$since}}">{{$since}}</span>{{end}}
				</h3>
				<pre>{{node_html $ .Decl true}}</pre>
				{{comment_html .Doc}}
				{{example_html $ .Name}}
				{{callgraph_html $ "" .Name}}
			{{end}}

			{{range .Methods}}
				{{$name_html := html .Name}}
				<h3 id="{{$tname_html}}.{{$name_html}}">func ({{html .Recv}}) <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a>
					<a class="permalink" href="#{{$tname_html}}.{{$name_html}}">&#xb6;</a>
					{{$since := since "method" .Recv .Name $.PDoc.ImportPath}}
					{{if $since}}<span title="Added in Go {{$since}}">{{$since}}</span>{{end}}
				</h3>
				<pre>{{node_html $ .Decl true}}</pre>
				{{comment_html .Doc}}
				{{$name := printf "%s_%s" $tname .Name}}
				{{example_html $ $name}}
				{{callgraph_html $ .Recv .Name}}
			{{end}}
		{{end}}
	{{end}}

	{{with $.Notes}}
		{{range $marker, $content := .}}
			<h2 id="pkg-note-{{$marker}}">{{noteTitle $marker | html}}s</h2>
			<ul style="list-style: none; padding: 0;">
			{{range .}}
			<li><a href="{{posLink_url $ .}}" style="float: left;">&#x261e;</a> {{comment_html .Body}}</li>
			{{end}}
			</ul>
		{{end}}
	{{end}}
{{end}}

{{with .PAst}}
	{{range $filename, $ast := .}}
		<a href="{{$filename|srcLink|html}}">{{$filename|filename|html}}</a>:<pre>{{node_html $ $ast false}}</pre>
	{{end}}
{{end}}

{{with .Dirs}}
	{{/* DirList entries are numbers and strings - no need for FSet */}}
	{{if $.PDoc}}
		<h2 id="pkg-subdirectories">Subdirectories</h2>
	{{end}}
	<div class="pkg-dir">
		<table>
			<tr>
				<th class="pkg-name">Name</th>
				<th class="pkg-synopsis">Synopsis</th>
			</tr>

			{{if not ((eq $.Dirname "/src/cmd") $.DirFlat)}}
			<tr>
				<td colspan="2"><a href="..">..</a></td>
			</tr>
			{{end}}

			{{range .List}}
				<tr>
				{{if $.DirFlat}}
					{{if .HasPkg}}
						<td class="pkg-name">
							<a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Path}}</a>
						</td>
					{{end}}
				{{else}}
					<td class="pkg-name" style="padding-left: {{multiply .Depth 20}}px;">
						<a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Name}}</a>
					</td>
				{{end}}
					<td class="pkg-synopsis">
						{{html .Synopsis}}
					</td>
				</tr>
			{{end}}
		</table>
	</div>
{{end}}
