<?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:panel>
	<!-- TODO design should be changed in the future -->
	<table class="messages">
		<tr>
			<td class="side left">
				<div class="email new clickable" wicket:id="new" wicket:message="title:1208"><wicket:message key="1207"/></div>
				<div wicket:id="folders">
					<div wicket:id="inbox"><wicket:message key="1222"/></div>
					<div wicket:id="sent"><wicket:message key="1223"/></div>
					<div wicket:id="trash"><wicket:message key="1224"/></div>
					<div class="email newdir clickable" wicket:id="newdir" wicket:message="title:1259"><wicket:message key="1258"/></div>
					<div wicket:id="folder">
						<div wicket:id="name"></div>
						<div class="delete" wicket:id="delete" wicket:message="title:1262"></div>
					</div>
				</div>
			</td>
			<td class="main">
				<div><b><wicket:message key="1206"/>&nbsp;(<span wicket:id="unread"></span>)</b></div>
				<div wicket:id="navigator"></div>
				<table id="messagesTable" style="width: 100%;">
					<thead>
					<tr>
						<th align="left"><span wicket:id="orderById"></span><wicket:message key="1205"/></th>
						<th align="left"><span wicket:id="orderByFrom"></span><wicket:message key="1202"/></th>
						<th align="left"><span wicket:id="orderBySubject"></span><wicket:message key="1203"/></th>
						<th align="left"><span wicket:id="orderBySend"></span><wicket:message key="1204"/></th>
					</tr>
					</thead>
					<tbody wicket:id="container" style="background-color: white;">
					<tr wicket:id="messages">
						<td wicket:id="id"></td>
						<td wicket:id="from"></td>
						<td wicket:id="subject"></td>
						<td wicket:id="send"></td>
					</tr>
					</tbody>
				</table>
				<div wicket:id="buttons">
					<select wicket:id="msgSelect"></select>
					<input wicket:id="toInboxBtn" type="button" wicket:message="value:1255"/>
					<input wicket:id="deleteBtn" type="button" wicket:message="value:1245"/>
					<input wicket:id="readBtn" type="button" wicket:message="value:1248"/>
					<input wicket:id="unreadBtn" type="button" wicket:message="value:1247"/>
					<select wicket:id="msgMove"></select>
				</div>
				<div wicket:id="selectedMessage">
					<table style="width: 100%">
						<tr>
							<td style="width: 10px; padding-right: 20px;"><wicket:message key="1202"/></td>
							<td wicket:id="from"></td>
						</tr>
						<tr>
							<td style="width: 10px; padding-right: 20px;"><wicket:message key="1210"/></td>
							<td wicket:id="to"></td>
						</tr>
						<tr>
							<td style="width: 10px; padding-right: 20px;"><wicket:message key="1211"/></td>
							<td wicket:id="subj"></td>
						</tr>
					</table>
					<div style="background-color: white;min-height: 300px;" wicket:id="body"></div>
					<div wicket:id="roomContainer">
						<table style="width: 100%">
							<tr>
								<td>
									<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" wicket:id="enter">
										<span class="ui-button-text"><wicket:message key="1282"/></span>
									</button>
								</td>
								<td>
									<div style="display: inline-block; width: 300px;"><wicket:message key="570" /></div><span wicket:id="start"></span><br/>
									<div style="display: inline-block; width: 300px;"><wicket:message key="571" /></div><span wicket:id="end"></span>
								</td>
							</tr>
						</table>
					</div>
				</div>
			</td>
			<td class="side right" wicket:id="contacts">
				<div><b><wicket:message key="1189"/>&nbsp;(<span wicket:id="pendingContacts"></span>)</b></div>
				<div><b><wicket:message key="1188"/>&nbsp;(<span wicket:id="allContacts"></span>)</b></div>
				<table style="width: 100%">
					<tr>
						<th><wicket:message key="1180"/></th>
						<th><wicket:message key="1185"/></th>
					</tr>
					<tr wicket:id="users">
						<td><div wicket:id="name" style="overflow-x: hidden;"></div></td>
						<td><div wicket:id="accept" class="tick om-icon clickable" wicket:message="title:1190"
							></div><div wicket:id="decline" class="cross om-icon clickable" wicket:message="title:1191"
							></div><div wicket:id="view" class="user om-icon clickable" wicket:message="title:1236"
							></div><div wicket:id="message" class="new-email om-icon clickable" wicket:message="title:1253"
							></div><div wicket:id="delete" class="cross om-icon clickable" wicket:message="title:1234"
							></div></td>
					</tr>
				</table>
			</td>
		</tr>
	</table>
	<div wicket:id="addFolder"></div>
	<div wicket:id="newMessage"></div>
	<div wicket:id="infoDialog"></div>
</wicket:panel>
</html>
