% if (my $invalid = stash('invalid')) {
	<div class="row">
		<div class="col s12">
			<div class="card red darken-4">
				<div class="card-content white-text">
					% if ($invalid eq 'csrf') {
						<span class="card-title">Ungültiger CSRF-Token</span>
						<p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen
						Fall von <a
						href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a>
						handeln.</p>
					% }
					% elsif ($invalid eq 'user_empty') {
						<span class="card-title">Leerer Nutzername</span>
						<p>Bitte gib einen Nutzernamen an.</p>
					% }
					% elsif ($invalid eq 'mail_empty') {
						<span class="card-title">Leere Mail-Adresse</span>
						<p>Bitte gib eine E-Mail-Adresse an.</p>
					% }
					% elsif ($invalid eq 'user_format') {
						<span class="card-title">Ungültiger Nutzername</span>
						<p>Für den Nutzernamen erlaubte Zeichen sind
						0-9, a-z, A-Z sowie Unterstrich (_) und Bindestrich (-).</p>
					% }
					% elsif ($invalid eq 'user_collision') {
						<span class="card-title">Name bereits vergeben</span>
						<p>Es gibt bereits einen Account unter diesem Namen.</p>
					% }
					% elsif ($invalid eq 'password_notequal') {
						<span class="card-title">Passwort ungültig</span>
						<p>Die angegebenen Passwörter sind nicht identisch.</p>
					% }
					% elsif ($invalid eq 'password_short') {
						<span class="card-title">Passwort zu kurz</span>
						<p>Das Passwort muss mindestens acht Zeichen lang sein.</p>
					% }
					% elsif ($invalid eq 'mail_blacklisted') {
						<span class="card-title">Mailadresse nicht nutzbar</span>
						<p>Mit der angegebenen E-Mail-Adresse können derzeit keine
							travelynx-Accounts registriert werden.</p>
					% }
					% elsif ($invalid eq 'sendmail') {
						<span class="card-title">Mailversand fehlgeschlagen</span>
						<p>Die Bestätigungsmail konnte nicht verschickt werden.
							Überprüfe bitte, ob die Adresse gültig ist.</p>
					% }
					% elsif ($invalid eq 'token') {
						<span class="card-title">Ungültiger Token</span>
						<p>Die Verifikation deiner Mail-Adresse ist fehlgeschlagen oder du hast den Token schon einmal verwendet.</p>
					% }
					% else {
						<span class="card-title">Unbekannter Fehler</span>
						<p>„<%= $invalid %>“</p>
					% }
				</div>
			</div>
		</div>
	</div>
% }
<div class="row">
	%= form_for '/register' => (class => 'col s12', method => 'POST') => begin
		%= csrf_field
		<div class="row">
			<div class="input-field col l6 m12 s12">
				<i class="material-icons prefix">account_circle</i>
				%= text_field 'user', id => 'account', class => 'validate', required => undef, pattern => '[0-9a-zA-Z_-]+', maxlength => 60, autocomplete => 'username'
				<label for="account">Name (alphanumerisch)</label>
			</div>
			<div class="input-field col l6 m12 s12">
				<i class="material-icons prefix">email</i>
				%= email_field 'email', id => 'email', class => 'validate', required => undef, maxlength => 250
				<label for="email">Mail-Adresse</label>
			</div>
			<div class="input-field col l6 m12 s12">
				<i class="material-icons prefix">lock</i>
				%= password_field 'password', id => 'password', class => 'validate', required => undef, minlength => 8, autocomplete => 'new-password'
				<label for="password">Passwort</label>
			</div>
			<div class="input-field col l6 m12 s12">
				<i class="material-icons prefix">lock</i>
				%= password_field 'password2', id => 'password2', class => 'validate', required => undef, minlength => 8, autocomplete => 'new-password'
				<label for="password2">Passwort wiederholen</label>
			</div>
		</div>
		<div class="row">
			<div class="col s3 m3 l3">
			</div>
			<div class="col s6 m6 l6 center-align">
				<button class="btn waves-effect waves-light" type="submit" name="action" value="register">
					Registrieren
					<i class="material-icons right">send</i>
				</button>
			</div>
			<div class="col s3 m3 l3">
			</div>
		</div>
	%= end
</div>
<div class="row">
	<div class="col s12">
		<p>
			Nach der Registrierung wird ein für 48 Stunden gültiger
			Bestätigungslink an die angegebene Mail-Adresse geschickt. Eine
			Anmeldung ist erst nach Bestätigung der Mail-Adresse möglich.
		</p>
		<p>
			Die Mail-Adresse wird ausschließlich zur Bestätigung der Anmeldung
			und für die "Passwort vergessen"-Funktionalität verwendet und nicht
			an Dritte weitergegeben.  Die <a
			href="/impressum">Datenschutzerklärung</a> beschreibt weitere
			erhobene Daten sowie deren Zweck und Speicherfristen.
			Accounts werden nach einem Jahr ohne Nutzung automatisch gelöscht.
		</p>
		<p>
			Bitte beachten: Travelynx ist ein privat betriebenes Projekt ohne
			Verfügbarkeitsgarantie. Unangekündigte Downtimes oder eine
			kurzfristige Einstellung dieser Seite sind nicht vorgesehen, aber
			möglich.
		</p>
	</div>
</div>