<!DOCTYPE html>
<html dir="ltr" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>GitHub plugin for Gerrit Code Review - Account review</title>
#include ("static/styles.html")
#include ("static/scripts.html")
</head>
<body>
	<div class="header">
		<div>
		    <div class="center">
            #include ("static/header.html")
				<div class="page-title">
					<div>
						<h2>
							Account profile
						</h2>
					</div>
				</div>
			</div>
		</div>
	</div>
	<!--div.header end -->

	<!--div.container start -->
	<div class="container">
		<div class="center">
			<form class="signupform" method="post" action="account.gh">
				<h5>
					GitHub account details
				</h5>
				<ul>
					<li><label for="username">Username:</label> <input
						maxlength="50" id="username" name="username" type="text"
						value="$myself.login" readonly="readonly" />
					</li>

					<li><label for="lastName">Full name:</label> <input
						maxlength="50" id="fullname" name="fullname" type="text"
						value="$myself.name" readonly="readonly" /></li>

					<li><label for="eMail">e-Mail:</label> 
							<input maxlength="50" value="$myself.email" type="text" name="email" readonly="readonly" /></li>
				</ul>

				<h5>Import GitHub SSH Public Keys</h5>
				<ul>
				#foreach ( $key in $myself.publicKeys )
					#if ( $key.key.length() > 45 )
						<li> <label for="$key.title" style="font-weight: bold;">$key.title :</label> 
							#set ( $trailStart = $key.key.length() - 10 )
							<textarea
								class="keyvalue" rows="1" cols="80" readonly="readonly">$key.key.substring(1,35) ... $key.key.substring($trailStart).trim()</textarea>
							<input class="keycheckbox" type="checkbox"
									name="key_check_$key.id" checked="checked" />
						</li>
					#end
                #end

				<h5></h5>
				<li class="a-center">
					<button type="button" onclick="window.location='reset'"
						id="cancel">
						<span class="button"><span>Cancel</span></span>
					</button>
					<button type="submit">
						<span class="button"><span>Accept &gt;</span></span>
					</button>
					<input type="hidden" name="next" value="$nextUrl" />
				</li>

				</ul>
			</form>
		</div>
	</div>
    <!--div.container end -->

    #include ("static/footer.html")

	<script type='text/javascript' src='js/jquery/jquery.form.js?ver=2.02m'></script>
</body>
</html>