<%@ page buffer="8kb" autoFlush="true" %>
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="zm" uri="com.zimbra.zm" %>
<%@ taglib prefix="app" uri="com.zimbra.htmlclient" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<fmt:setBundle basename="/msgs/ZhMsg" scope="request"/>
<app:handleError>
    <zm:getMailbox var="mailbox"/>


    <fmt:message var="title" key="addFromContacts"/>

    <zm:composeUploader var="uploader"/>
    <c:set var="compose" value="${uploader.compose}"/>

    <c:choose>
        <c:when test="${uploader.isContactSearch}">
            <c:choose>
                <c:when test="${uploader.contactLocation eq 'gal'}">
                    <zm:searchGal var="searchGal" query="${uploader.contactSearchQuery}" type="account"/>
                </c:when>
                <c:otherwise>
                    <zm:search var="search" query="${uploader.contactSearchQuery}" types="contact" field="contact:"/>
                </c:otherwise>
            </c:choose>
            <c:set var="query" value="${uploader.contactSearchQuery}"/>
        </c:when>
        <c:otherwise>
            <c:set var="query" value=""/>
        </c:otherwise>
    </c:choose>
</app:handleError>

<app:view title="${title}" selected='compose' folders="true" tags="true" searches="true" context="${null}" keys="false">

<c:set var="toolbar">
    <table width=100% cellspacing=0>
        <tr valign='middle'>
            <td>
                <table cellspacing=2 cellpadding=0 class='Tb'>
                    <tr>
                        <app:button name="actionContactDone" src="common/Close.gif" tooltip="done" text="done"/>
                        <td><div class='vertSep'></div></td>
                        <app:button name="actionContactAdd" src="contacts/ContactsPicker.gif" tooltip="addSelected" text="addSelected"/>
                        <td><div class='vertSep'></div></td>
                        <app:button name="actionContactCancel" src="common/Cancel.gif" tooltip="cancel" text="cancel"/>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</c:set>

<form action="" method="post" enctype="multipart/form-data" accept-charset="utf-8">
    <table width=100% cellpadding="0" cellspacing="0">
        <tr>
            <td class='TbTop'>
                ${toolbar}
            </td>
        </tr>
        <tr>
            <td class='ZhAppContent'>

            <table width=100% cellpadding="0" cellspacing="10">
                <c:if test="${not (empty compose.to and empty compose.cc and empty compose.bcc and empty uploader.pendingBcc and empty uploader.pendingCc and empty uploader.pendingTo)}">
                    <tr>
                        <td class=MsgHdr>
                                <table width=100% cellpadding=2 cellspacing=0 border=0>
                                    <c:if test="${not (empty compose.to and empty uploader.pendingTo)}">
                                        <tr>
                                            <td class='MsgHdrName'>
                                                <fmt:message key="to"/>
                                                :
                                            </td>
                                            <td class='MsgHdrValue'>
                                                <c:out value="${compose.to}"/>
                                                <c:if test="${not empty uploader.pendingTo}">
                                                    <span style='font-weight:bold'>
                                                        <c:if test="${not empty compose.to and not fn:endsWith(fn:trim(compose.to),',')}">
                                                            ,
                                                        </c:if>
                                                        <c:out value="${uploader.pendingTo}"/>
                                                    </span>
                                                </c:if>
                                            </td>
                                        </tr>
                                    </c:if>
                                    <c:if test="${not (empty compose.cc and empty uploader.pendingCc)}">
                                        <tr>
                                            <td class='MsgHdrName'>
                                                <fmt:message key="cc"/>
                                                :
                                            </td>
                                            <td class='MsgHdrValue'>
                                                <c:out value="${compose.cc}"/>
                                                <c:if test="${not empty uploader.pendingCc}">
                                                    <span style='font-weight:bold'>
                                                        <c:if test="${(not empty compose.cc) and (not fn:endsWith(fn:trim(compose.cc),','))}">
                                                            ,
                                                        </c:if>
                                                        <c:out value="${uploader.pendingCc}"/>
                                                    </span>
                                                </c:if>
                                            </td>
                                        </tr>
                                    </c:if>
                                    <c:if test="${not (empty compose.bcc and empty uploader.pendingBcc)}">
                                        <tr>
                                            <td class='MsgHdrName'>
                                                <fmt:message key="bcc"/>
                                                :
                                            </td>
                                            <td class='MsgHdrValue'>
                                                <c:out value="${compose.bcc}"/>
                                                <c:if test="${not empty uploader.pendingBcc}">
                                                    <span style='font-weight:bold'>
                                                        <c:if test="${not empty compose.bcc and not fn:endsWith(fn:trim(compose.bcc),',')}">
                                                            ,
                                                        </c:if>
                                                        <c:out value="${uploader.pendingBcc}"/>
                                                    </span>
                                                </c:if>
                                            </td>
                                        </tr>
                                    </c:if>
                                </table>
                        </td>
                    </tr>
                </c:if>
                <tr>
                    <td class='SearchBar'>
                            &nbsp;
                            <fmt:message key="find"/>
                            :
                            <input class="searchField" style='width:50%' maxlength=2048 name='contactSearchQuery'
                                   value="${fn:escapeXml(query)}">
                            &nbsp;
                            <fmt:message key="in"/>
                            &nbsp;

                            <select name="contactLocation">
                                <c:if test="${mailbox.features.contacts}">
                                <option
                                        <c:if test="${empty uploader.contactLocation or uploader.contactLocation eq 'personal'}">
                                            selected
                                        </c:if> value="contact"/>
                                <fmt:message key="searchPersonalContacts"/>
                                </c:if>
                                <c:if test="${mailbox.features.gal}">
                                <option
                                        <c:if test="${uploader.contactLocation eq 'gal'}">selected</c:if> value="gal"/>
                                <fmt:message key="GAL"/>
                                </c:if>
                            </select>
                            <input class="SearchButton" type=submit name='actionContactSearch'
                                   value="<fmt:message key="searchContacts"/>">
                    </td>
                </tr>
                <tr>
                    <td class='List'>
                        <app:contactAddListView searchResult="${search}" searchGalResult="${searchGal}"/>
                    </td>
                </tr>
            </table>

            </td>
        </tr>
        <tr>
            <td class='TbBottom'>
                ${toolbar}
            </td>
        </tr>
    </table>
    <input type="hidden" name="to" value="${fn:escapeXml(compose.to)}"/>
    <input type="hidden" name="cc" value="${fn:escapeXml(compose.cc)}"/>
    <input type="hidden" name="bcc" value="${fn:escapeXml(compose.bcc)}"/>
    <input type="hidden" name="pendingTo" value="${fn:escapeXml(uploader.pendingTo)}"/>
    <input type="hidden" name="pendingCc" value="${fn:escapeXml(uploader.pendingCc)}"/>
    <input type="hidden" name="pendingBcc" value="${fn:escapeXml(uploader.pendingBcc)}"/>
    <input type="hidden" name="subject" value="${fn:escapeXml(compose.subject)}"/>
    <c:forEach var="ma" items="${compose.messageAttachments}">
        <input type="hidden" name="messageAttachment" value="${ma.id}:${fn:escapeXml(ma.subject)}"/>
    </c:forEach>
    <c:forEach var="ca" items="${compose.checkedAttachmentNames}">
        <input type="hidden" name="originalAttachment" value="${fn:escapeXml(ca.key)}"/>
    </c:forEach>
    <input type="hidden" name="body" value="${fn:escapeXml(compose.content)}"/>
    <input type="hidden" name="replyto" value="${fn:escapeXml(compose.replyTo)}"/>
    <input type="hidden" name="from" value="${fn:escapeXml(compose.from)}"/>
    <input type="hidden" name="inreplyto" value="${fn:escapeXml(compose.inReplyTo)}"/>
    <input type="hidden" name="messageid" value="${fn:escapeXml(compose.messageId)}"/>
    <input type="hidden" name="replytype" value="${fn:escapeXml(compose.replyType)}"/>
    <input type="hidden" name="draftid"
           value="${fn:escapeXml(empty requestScope.draftid ? compose.draftId : requestScope.draftid)}"/>
</form>
</app:view>
