<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
  
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:head>
	<script type="text/javascript" src="js/openmeetings_functions.js"></script>
</wicket:head>
<wicket:panel>
	<form wicket:id="signin">
		<table>
			<tr>
				<td>
					<table>
						<tr>
							<td class="desc"><wicket:message key="109" /></td>
							<td><input wicket:id="login" type="text" value="" /></td>
						</tr>
						<tr>
							<td class="desc"><wicket:message key="110" /></td>
							<td><input wicket:id="pass" type="password" value="" /></td>
						</tr>
						<tr wicket:id="ldap">
							<td class="desc"><wicket:message key="1372" /></td>
							<td><select wicket:id="domain"></select></td>
						</tr>
						<tr>
							<td></td>
							<td style="white-space: nowrap;"><input wicket:id="rememberMe" 
								type="checkbox" /><label wicket:for="rememberMe"><wicket:message key="288" /></label></td>
						</tr>
						<tr>
							<td><a wicket:id="forget"><wicket:message key="311"/></a></td>
							<td><a wicket:id="netTest" target="_blank"><wicket:message key="1527"/></a></td>
						</tr>
					</table>
				</td>
				<td wicket:id="oauthContainer" style="border-left: 2px dotted;">
					<div wicket:id="oauthList">
						<button wicket:id="oauthBtn"><img wicket:id="icon" width="16" height="16"/><span wicket:id="label"></span></button>
					</div>
				</td>
			</tr>
		</table>
		<span wicket:id="feedback" class="error"></span>
		<input type="submit" wicket:id="submit" class="invisible-form-component"/>
	</form>
</wicket:panel>
</html>
