<?xml version="1.0"?>
<!--
 * ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public
 * License Version 1.1 (the "MPL"); you may not use this file
 * except in compliance with the MPL. You may obtain a copy of
 * the MPL at http://www.mozilla.org/MPL/
 *
 * Software distributed under the MPL is distributed on an "AS
 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 * implied. See the MPL for the specific language governing
 * rights and limitations under the MPL.
 *
 * The Original Code is Enigmail.
 *
 * The Initial Developer of the Original Code is Patrick Brunschwig.
 * Portions created by Patrick Brunschwig <patrick@enigmail.net> are
 * Copyright (C) 2004 Patrick Brunschwig. All Rights Reserved.
 *
 * Contributor(s):
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 * ***** END LICENSE BLOCK ***** *
-->

<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://enigmail/skin/enigmail.css" type="text/css"?>

<!DOCTYPE window [
<!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd" >
%brandDTD;
<!ENTITY % enigMailDTD SYSTEM "chrome://enigmail/locale/enigmail.dtd" >
%enigMailDTD;
]>

<dialog id="enigmailSignKeyDlg"
        title="&enigmail.addUidDlg.title;"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        ondialogaccept="return onAccept();">

  <vbox>
    <grid>
      <columns>
        <column/>
        <column/>
      </columns>
      <rows autostretch="never">
        <row>
          <label value="&enigmail.addUidDlg.name.label;" control="addUid_name"/>
          <textbox id="addUid_name" size="30"/>
        </row>
        <row>
          <label value="&enigmail.addUidDlg.email.label;" control="addUid_email"/>
          <textbox id="addUid_email" size="30"/>
        </row>
        <row>
          <label value="&enigmail.addUidDlg.comment.label;" control="addUid_comment"/>
          <textbox id="addUid_comment" size="30"/>
        </row>
      </rows>
    </grid>
  </vbox>
  <script type="application/x-javascript">
  <![CDATA[
    Components.utils.import("resource://enigmail/enigmailCommon.jsm");
    Components.utils.import("resource://enigmail/keyManagement.jsm");

    const Ec = EnigmailCommon;

    function onAccept() {
      var name = document.getElementById("addUid_name");
      var email = document.getElementById("addUid_email");
      var comment = document.getElementById("addUid_comment");

      if ((email.value.search(/^ *$/) == 0) || (name.value.search(/^ *$/) == 0)) {
        Ec.alert(window, Ec.getString ("addUidDlg.nameOrEmailError"));
        return false;
      }
      if (name.value.replace(/ *$/, "").length <5) {
        Ec.alert(window, Ec.getString ("addUidDlg.nameMinLengthError"));
        return false;
      }
      if (email.value.search(/.@./)<0) {
        Ec.alert(window, Ec.getString ("addUidDlg.invalidEmailError"));
        return false;
      }
      if (comment.value.search(/[()]/) >= 0) {
        Ec.alert(window, Ec.getString ("addUidDlg.commentError"));
        return false;
      }
      var enigmailSvc = Ec.getService();
      if (!enigmailSvc) {
        Ec.alert(window, Ec.getString ("accessError"));
        return true;
      }

      EnigmailKeyMgmt.addUid(window,
        window.arguments[0].keyId,
        Ec.convertFromUnicode(name.value),
        Ec.convertFromUnicode(email.value),
        Ec.convertFromUnicode(comment.value),
        function _addUidCb(exitCode, errorMsg) {
           if (exitCode != 0) {
              Ec.alert(window, Ec.getString ("addUidFailed")+"\n\n"+errorMsg);
            }
            else {
              window.arguments[1].refresh = true;
              Ec.alert(window, Ec.getString ("addUidOK"));
            }
            window.close();
        });

      return false;
    }
  ]]>
  </script>

</dialog>

