<?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/FormMessengerTitle"/>
<xsl:with-param name="PageTitle">
<img border="0" src="{$XMLC_PictosPath}button_im.gif"/>&#160;<xsl:value-of select="/document/Locales/FormMessengerPageTitle"/>
</xsl:with-param>
<xsl:with-param name="ToolbarButtonsRight">
<xsl:call-template name="CommonToolbarButtonsRight"/>
</xsl:with-param>
<xsl:with-param name="Head">
<!--Submission check-->
<script language="javascript"><![CDATA[

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 (cbx.selectedIndex < cbx.options.length - 1)
//      cbx.selectedIndex = cbx.selectedIndex + 1;
  }
  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 analyzeAddress(addr) {
  var ltPos, gtPos;
  ltPos = addr.lastIndexOf('<');
  gtPos = addr.lastIndexOf('>');
  if ((-1 != ltPos) && (ltPos < gtPos)) {
    return addr.substring(0, ltPos - 1);
  } else
    return addr;
} 

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;
} 
]]></script>
<!--Clearing-->
<script language="javascript"><![CDATA[

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[optIndex] = null;
  }
} 
]]></script>
<!--Recipient's / Custom Recipient's special Return key handling-->
<script language="javascript"><![CDATA[
function handleCustomRecipientKeyPress(event) {
  var emptyStr = /^\s*$/;
  var edtText = this.document.forms['MainForm'].elements['CustomRecipient'].value;

  if (13 == GetEventKeyCode(event)) {
    if (!edtText.match(emptyStr))
      addRecipient(1);
    CancelEvent(event);

  }
} 

function handleRecipientKeyPress() {
  var emptyStr = /^\s*$/;
  var edt = this.document.forms['MainForm'].elements['CustomRecipient'];

  if (13 == GetEventKeyCode(event)) {
    edt.value = "";
    addRecipient(1);
  }
} 
]]></script>
<style type="text/css">a:active {color: yellow; font-weight: bold}</style>
</xsl:with-param>
<xsl:with-param name="ActivePageName">XMLC_FormIMPage</xsl:with-param>
<xsl:with-param name="Tabs">
<Item Name="XMLC_FormIMPage" Caption="{/document/Locales/SendPage}" Hint="{/document/Locales/SendPage}" ImagePath="{$XMLC_PictosPath}button_im.gif"/>
</xsl:with-param>
<xsl:with-param name="Body">
<xsl:value-of select="/document/Locales/MessengerFormExplanation"/>
<br/>
<xsl:value-of select="/document/Locales/MessengerFormCommentsExplanation"/>
<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_IMPage</xsl:if></xsl:attribute>
<xsl:if test="/document/XMLC_Params/XMLC_UseXMLC_Action = '1'">
<input type="hidden" name="XMLC_Action" value="XMLC_IMPage"/>
</xsl:if>
<input type="hidden" name="PageURL" value="{PARAMS/PageURL}"/>
<input type="hidden" name="ReturnURL" value="{PARAMS/ReturnURL}"/>
<input type="hidden" name="ToList"/>
<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/ConnectedUsers"/>
<br/>
<select name="Recipient" onkeypress="handleRecipientKeyPress(event); return false;" ondblclick="addRecipient(); return false;" size="5" style="width: 100%" tabindex="1">
<xsl:apply-templates select="Users/User"/>
</select>
<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(); return false;" value="{/document/Locales/AddIMAddressAlt}" style="width: 100%"/>
<br/>
<br/>
<input type="button" name="btnDelete" onclick="delRecipient(); return false;" value="{/document/Locales/RemoveIMAddressAlt}" 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 valign="top">
<td colspan="2">
<textarea tabindex="4" name="Comments" rows="3" style="width: 100%" class="clFlatTextInput">
<xsl:value-of select="PARAMS/Comments"/>
</textarea>
</td>
</tr>
<xsl:if test="/document/XMLC_Params/XMLC_UserName != ''">
<tr valign="top">
<td colspan="2">
<input name="FromInConversation" type="checkbox" value="1" checked="1"/>
<xsl:value-of select="/document/Locales/UserInConversation"/>
</td>
</tr>
<tr valign="top">
<td colspan="2">
<input name="FromReceiveMessage" type="checkbox" value="1" checked="1"/>
<xsl:value-of select="/document/Locales/UserReceiveMessage"/>
</td>
</tr>
</xsl:if>
<tr valign="top">
<td colspan="2">
<input name="DistinctConversations" type="checkbox" value="1"/>
<xsl:value-of select="/document/Locales/DistinctConversations"/>
</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/SendInstantMessage}" 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="User">
<option value="{Email}">
<xsl:value-of select="Name"/>
<xsl:variable name="StateValue">State<xsl:value-of select="State"/>
</xsl:variable>
<xsl:variable name="StateText" select="/document/Locales/*[name() = $StateValue]"/>
<xsl:choose>
<xsl:when test="$StateText"> (<xsl:value-of select="$StateText"/>)</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</option>
</xsl:template>
</xsl:stylesheet>
