<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslc="http://xslcomponents.org/TR/WD-xslc">
<xsl:import href="../xslc.xsl"/>
<xsl:import href="../common.xsl"/>
<xsl:template match="/">
<xsl:apply-templates select="document"/>
</xsl:template>
<xsl:template match="document">
<xsl:call-template name="xslc:Page">
<xsl:with-param name="Title" select="/document/Locales/FormSendMailTitle"/>
<xsl:with-param name="Head">
<!--Submission check-->
<script language="javascript"><![CDATA[
function mailHandleFormKeyPress(e) {
  var keyCode = getEventKeyCode(e);
  if (e.srcElement.tagName == 'TEXTAREA')
    return true;
  if (keyCode == 13)
    checkForm();
}

function checkForm() {
  var emptyStr = /^\s*$/;
  var frm = this.document.forms['MainForm'];

  if (frm.elements['ToRecipients'].options.length == 0)
  {
    alert("You must specify at least one To: recipient.");
    return false;
  } else {
    buildString(frm.elements['ToRecipients'].options, frm.elements['ToList']);
    frm.submit();
  }
}

function buildString(addrArr, addrStr) {
  var addrIndex;
  var str = "";

  for (addrIndex = 0; addrIndex < addrArr.length; addrIndex++)
    str += addrArr[addrIndex].value + '\n';
  addrStr.value = str;
}

function addRecipient() {
  var emptyStr = /^\s*$/;
  var frm = this.document.forms['MainForm'];
  var cbx = frm.elements['Recipient'];
  var cbxOpt = null;
  if (cbx.selectedIndex != -1) 
    cbxOpt = cbx.options[cbx.selectedIndex];
  var edt = frm.elements['CustomRecipient'];
  var edtText = edt.value;
  var lstRecipients = frm.elements['ToRecipients'];

  if (!edtText.match(emptyStr))
  {
    addOption(lstRecipients.options, analyzeAddress(edtText), edtText);
    edt.value = "";
  }
  else if (cbxOpt != null)
  {
    addOption(lstRecipients.options, cbxOpt.text, cbxOpt.value);
  }
  if (lstRecipients.length != 0)
    frm.btnDelete.disabled = false;
}

function addOption(optArr, optText, optValue) {
  var opt = this.document.createElement("OPTION");
  opt.text = optText;
  opt.value = optValue;
  optArr.add(opt);
  opt.selected = true;
} 

function delRecipient() {
  var frm = this.document.forms['MainForm'];
  var lstRecipients = frm.elements['ToRecipients'];

  if (0 == lstRecipients.options.length)
    alert("No address to remove from list.");
  else
    delOption(lstRecipients);
  if (lstRecipients.length == 0)
    frm.btnDelete.disabled = true;
}

function delOption(lst) {
  var idx = lst.selectedIndex;
  if (idx != -1)
    lst.options[idx] = null;
  if (idx <= lst.options.length)
    idx = idx-1;
  if (idx >= 0)
    lst.selectedIndex = idx;
}

function clearList(ctrlID) {
  var frm = this.document.forms['MainForm'];
  var lstRecipients;
  var optIndex;

  if (2 == ctrlID)
    lstRecipients = frm.elements['CcRecipients'];
  else
    lstRecipients = frm.elements['ToRecipients'];

  for (optIndex = lstRecipients.options.length - 1; optIndex >= 0; optIndex = optIndex-1)
  {
    lstRecipients.options.remove(optIndex);
  }
} 

function handleCustomRecipientKeyPress(e) {
  var emptyStr = /^\s*$/;
  var edtText = this.document.forms['MainForm'].elements['CustomRecipient'].value;
  var keyCode = getEventKeyCode(e);

  if (keyCode == 13)
  {
    if (!edtText.match(emptyStr))
      addRecipient(e);
    CancelEvent(e);
  }
}

function handleRecipientKeyPress(e) {
  var emptyStr = /^\s*$/;
  var edt = this.document.forms['MainForm'].elements['CustomRecipient'];
  var keyCode = getEventKeyCode(e);

  if (keyCode == 13)
  {
    edt.value = "";
    addRecipient();
    CancelEvent(e);
  }
}

function analyzeAddress(addr) {
  var ltPos, gtPos;
  if (addr == null)
    return "";
  ltPos = addr.lastIndexOf('<');
  gtPos = addr.lastIndexOf('>');
  if ((-1 != ltPos) && (ltPos < gtPos))
    return addr.substring(0, ltPos - 1);
  else
    return addr;
}
]]></script>
<style type="text/css">a:active {color: yellow; font-weight: bold}</style>
</xsl:with-param>
<xsl:with-param name="ToolbarButtonsLeft"/>
<xsl:with-param name="ToolbarButtonsRight">
<xsl:call-template name="CommonToolbarButtonsRight"/>
</xsl:with-param>
<xsl:with-param name="ActivePageName">XMLC_FormEmailPage</xsl:with-param>
<xsl:with-param name="Tabs">
<Item Name="XMLC_FormEmailPage" Caption="{/document/Locales/SendPage}" Hint="{/document/Locales/SendPage}" ImagePath="{$XMLC_PictosPath}button_email.gif"/>
</xsl:with-param>
<xsl:with-param name="Body">
<xsl:value-of select="/document/Locales/XMLC_MailFormExplanation"/>
<br/>
<xsl:value-of select="/document/Locales/XMLC_MailFormCommentsExplanation"/>
<br/>
<form name="MainForm" method="post">
<xsl:attribute name="action"><xsl:value-of select="/document/XMLC_Params/XMLC_ScriptName"/><xsl:if test="/document/XMLC_Params/XMLC_UseXMLC_Action != '1'">/XMLC_EmailPage</xsl:if></xsl:attribute>
<xsl:if test="/document/XMLC_Params/XMLC_UseXMLC_Action = '1'">
<input type="hidden" name="XMLC_Action" value="XMLC_EmailPage"/>
</xsl:if>
<input type="hidden" name="PageURL" value="{PARAMS/PageURL}"/>
<input type="hidden" name="ReturnURL" value="{PARAMS/ReturnURL}"/>
<input type="hidden" name="ToList"/>
<input type="hidden" name="CcList"/>
<br/>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr>
<td colspan="2">
<table border="0" cellpadding="2" cellspacing="0" width="100%">
<tr>
<td valign="top" width="50%">
<xsl:value-of select="/document/Locales/Users"/>
<br/>
<xsl:apply-templates select="Users"/>
<br/>
<xsl:value-of select="/document/Locales/EmailAddress"/>
<br/>
<input type="text" name="CustomRecipient" class="clFlatTextInput" onkeypress="handleCustomRecipientKeyPress(event);" style="width: 100%" tabindex="2"/>
</td>
<td nowrap="" style="padding-left: 10px; padding-right: 10px" width="100">
<input type="button" name="btnAdd" onclick="addRecipient();" value="Add &gt;" style="width: 100%"/>
<br/>
<br/>
<input type="button" name="btnDelete" onclick="delRecipient();" value="&lt; Delete" style="width: 100%" disabled=""/>
</td>
<td valign="top" width="50%">
<xsl:value-of select="/document/Locales/Recipients"/>
<br/>
<select name="ToRecipients" size="8" style="width: 100%" tabindex="11"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<b>
<xsl:value-of select="/document/Locales/Subject"/>
</b>
</td>
<td width="100%">
<input type="text" tabindex="3" name="Subject" style="width: 100%" class="clFlatTextInput" value="{PARAMS/Subject}"/>
</td>
</tr>
<tr valign="top">
<td colspan="2">
<textarea tabindex="4" name="Comments" rows="3" style="width: 100%" class="clFlatTextInput"/>
</td>
</tr>
<tr>
<td colspan="2" align="left" valign="top"/>
</tr>
<tr>
<td colspan="2">
<xsl:call-template name="xslc:ButtonPad">
<xsl:with-param name="Button_Submit">
<xsl:call-template name="xslc:Button">
<xsl:with-param name="Caption">
<img alt="{/document/Locales/EmailPage}" border="0" tabindex="6" src="{$XMLC_PictosPath}button_submit.gif"/>
</xsl:with-param>
<xsl:with-param name="OnClick">checkForm();</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</td>
</tr>
</table>
</form>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="Users">
<select name="Recipient" onkeypress="handleRecipientKeyPress(event);" ondblclick="addRecipient();" size="5" style="width: 100%" tabindex="1">
<xsl:apply-templates select="User"/>
</select>
</xsl:template>
<xsl:template match="User">
<option value="{Email}">
<xsl:value-of select="Name"/>
</option>
</xsl:template>
</xsl:stylesheet>
