<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<page xmlns:ft="http://apache.org/cocoon/forms/1.0#template" xmlns:fi="http://apache.org/cocoon/forms/1.0#instance">
	<site signOn="true" view="cforms">
		<ft:form-template action="#{$continuation/id}.kont" method="POST">
			<fi:form layout="grey">
				<fi:group>
					<fi:label>Create your New Account</fi:label>
					<fi:widgets>
						<ft:widget id="message">
							 <fi:styling class="warnoutput" />
						</ft:widget>
						<ft:widget id="username">
							 <fi:styling  size="20" maxlength="20" type="text" />
						</ft:widget>
						<ft:widget id="password">
							 <fi:styling  size="20" type="password"/>
						</ft:widget>
						<ft:widget id="retypepassword">
							 <fi:styling  size="20" type="password"/>
						</ft:widget>
					</fi:widgets>
				</fi:group>
			</fi:form>
			<br />
			<center>
				<input border="0" type="image" src="images/button_submit.gif" name="submit" value="Save Account Information" />
			</center>
		</ft:form-template>
	</site>
</page>
