--- /dev/null
+/* ***** BEGIN LICENSE BLOCK *****\r
+ * Copyright (c) 2008-2009 EADS DEFENCE AND SECURITY - All rights reserved.\r
+ * ximfmail is under the triple license MPL 1.1/GPL 2.0/LGPL 2.1.\r
+ *\r
+ *\r
+ * Redistribution and use, in source and binary forms, with or without modification,\r
+ * are permitted provided that the following conditons are met :\r
+ *\r
+ * 1. Redistributions of source code must retain the above copyright notice,\r
+ * 2. MPL 1.1/GPL 2.0/LGPL 2.1. license agreements must be attached\r
+ * in the redistribution of the source code.\r
+ * 3. Neither the names of the copyright holders nor the names of any contributors\r
+ * may be used to endorse or promote products derived from this software without specific\r
+ * prior written permission from EADS Defence and Security.\r
+ *\r
+ * Alternatively, the contents of this file may be used under the terms of\r
+ * either of the GNU General Public License Version 2 or later (the "GPL"),\r
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),\r
+ * in which case the provisions of the GPL or the LGPL are applicable instead\r
+ * of those above. If you wish to allow use of your version of this file only\r
+ * under the terms of either the GPL or the LGPL, and not to allow others to\r
+ * use your version of this file under the terms of the MPL, indicate your\r
+ * decision by deleting the provisions above and replace them with the notice\r
+ * and other provisions required by the GPL or the LGPL. If you do not delete\r
+ * the provisions above, a recipient may use your version of this file under\r
+ * the terms of any one of the MPL, the GPL or the LGPL.\r
+ *\r
+ * REMINDER :\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING\r
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+ * EADS Defence and Security - 1 Boulevard Jean Moulin -\r
+ * ZAC de la Clef Saint Pierre - 78990 Elancourt - FRANCE (IDDN.FR.001.480012.002.S.P.2008.000.10000)\r
+ * ***** END LICENSE BLOCK ***** */\r
+gConsole.logStringMessage("[ximfmail] messengerComposeHeaders-ximfmail.js file loaded ");\r
+var gXimfHdrs = null;\r
+function onclosepanel() {\r
+ var lisitem = $("#search-panel checkbox");\r
+ var resString = "";\r
+ for (i=0;i<lisitem.length;++i) {\r
+ if (lisitem[i].hasAttribute("checked")) {\r
+ resString += $(lisitem[i]).attr("label")+ " | ";\r
+ }\r
+ }\r
+ var b = document.getElementById("txtpanel");\r
+ b.value = resString;\r
+}\r
+function XimfmailInstanceHeaders() {\r
+ //private:\r
+ var _instance = null;\r
+ var _ximfHdrArray = [];\r
+ var _xsmtpHdrArray = [];\r
+ var _eSSSecurityLabelHdrArray = [];\r
+ var _ximfAssociatedHdrArray = [];\r
+ var _ximfSpecialRulesArray = []; //FT 3504\r
+ //public:\r
+ if (typeof XimfmailInstanceHeaders.initialized === "undefined") {\r
+ XimfmailInstanceHeaders.prototype.init = function(ximfInstanceResource){\r
+ _instance = ximfInstanceResource;\r
+ _xsmtpHdrArray = CreateRulesArray(_instance,"ximf:compatibility");\r
+ _ximfAssociatedHdrArray = CreateRulesArray(_instance, "ximf:association");\r
+ _ximfSpecialRulesArray = CreateRulesArray(_instance, "ximf:special"); //FT 3504\r
+ };\r
+ XimfmailInstanceHeaders.prototype.getXimfInstanceResource = function(){\r
+ return _instance;\r
+ };\r
+ XimfmailInstanceHeaders.prototype.getXimfHdrArray = function(){\r
+ return _ximfHdrArray;\r
+ };\r
+ XimfmailInstanceHeaders.prototype.getXsmtpHdrArray = function(){\r
+ return _xsmtpHdrArray;\r
+ };\r
+ XimfmailInstanceHeaders.prototype.getXimfAssociatedHdrArray = function(){\r
+ return _ximfAssociatedHdrArray;\r
+ };\r
+ XimfmailInstanceHeaders.prototype.getESSSecurityLabelHdrArray = function(){\r
+ return _eSSSecurityLabelHdrArray;\r
+ };\r
+ //FT 3504\r
+ XimfmailInstanceHeaders.prototype.getSpecialRulesArray = function(){\r
+ return _ximfSpecialRulesArray;\r
+ };\r
+ XimfmailInstanceHeaders.prototype.loadXimfSecurityRules = function(identity){\r
+ var isForceSign = false;\r
+ // get secure state from prefs\r
+ if (!gSMFields) {\r
+ // use Trustedbird function to initialize gSMFields\r
+ onComposerReOpen();\r
+ }\r
+ // secure headers\r
+ try {\r
+ // create XMLFile at temp directory with rules datas\r
+ if (UpdateSecureHeadersFileSettings (_instance, identity)) {\r
+ // message with secure headers : force sign message\r
+ identity.setBoolAttribute("secureheaders.checked",true);\r
+ setSecureHeaderUI();\r
+ $("#secureHeaderStatus").attr("disabled","true");\r
+ $("#menu_securitySign1").attr("disabled","true");\r
+ $("#menu_securitySign2").attr("disabled","true");\r
+ isForceSign = true;\r
+ gConsole.logStringMessage("ximfmail - loadSecurityRules - secureHeaders on ");\r
+ } else {\r
+ gConsole.logStringMessage("ximfmail - loadSecurityRules - secureHeaders off ");\r
+ }\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - loadSecurityRules - secureHeaders] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ // Security Labels\r
+ try{\r
+ // create XMLFile at temp directory with rules datas\r
+ _eSSSecurityLabelHdrArray = CreateRulesArray(_instance,"ximf:securityLabel");\r
+ if (_eSSSecurityLabelHdrArray.length > 0) {\r
+ $("#menu_securityLabelDialog1").attr("checked","true");\r
+ $("#menu_securityLabelDialog1").attr("disabled","true");\r
+ $("#menu_securityLabelDialog2").attr("checked","true");\r
+ $("#menu_securityLabelDialog2").attr("disabled","true");\r
+\r
+ $("#menu_securitySign1").attr("checked","true");\r
+ $("#menu_securitySign1").attr("disabled","true");\r
+ $("#menu_securitySign2").attr("checked","true");\r
+ $("#menu_securitySign2").attr("disabled","true");\r
+ if (!gSMFields.signMessage && !isForceSign) {\r
+ toggleSignMessage();\r
+ // if certificate problem resolved, try to load ui signature\r
+ if (identity.getUnicharAttribute("signing_cert_name")&&!gSMFields.signMessage) {\r
+ toggleSignMessage();// certificate is set by user\r
+ }\r
+ }\r
+ gSMFields.securityClassification = -1;\r
+ gSMFields.privacyMark = "";\r
+ gSMFields.securityCategories = "";\r
+ gConsole.logStringMessage("ximfmail - loadSecurityRules - securityLabels on ");\r
+ } else {\r
+ gConsole.logStringMessage("ximfmail - loadSecurityRules - securityLabels off ");\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - loadSecurityRules - securityLabel] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ };\r
+ // init object\r
+ XimfmailInstanceHeaders.initialized = true;\r
+ }\r
+}\r
+function XimfDataSource() {\r
+ this._id; // xml file name path\r
+ this._dataSource;\r
+ this._refDataSource;\r
+}\r
+/*\r
+ * DOM MANIPULATIONS OF XIMFMAIL ELEMENTS\r
+ */\r
+function ResetXimfhdrsDom(){\r
+ try{\r
+ // delete old ximf items\r
+ $("#ximfmailComposeMessageHeadersTablist").empty();\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - ResetXimfhdrsDom ] " + e +"\nline : " + e.lineNumber + " : "+ e + "\nfile : "+ Error().fileName);\r
+ }\r
+}\r
+function InsertXimfhdrsDom(ximfInstanceResource, urlXslTemplate, ximfCatalog) {\r
+ // append to document ximfmail panel ihm\r
+ if(!ximfInstanceResource){\r
+ $("#isUsingXimfail").attr("hidden","true");\r
+ return;\r
+ }\r
+ if (ximfCatalog) {\r
+ $("#ximfmailComposeMessageTitle").attr("value",ximfCatalog.getLabelInstance(ximfInstanceResource));\r
+ } else {\r
+ $("#ximfmailComposeMessageTitle").attr("value","XIMFMAIL");\r
+ $("#ximfmailComposeMessageTitle").attr("tooltiptext",ximfInstanceResource);\r
+ }\r
+ try{\r
+ // Add XSLT result in MessengerCompose window\r
+ $("#ximfmailComposeMessageHeadersTablist").append(CreateDOMWithXimfInstance(ximfInstanceResource, urlXslTemplate));\r
+ }catch(e){\r
+ // TODO : alert user of xslt problem\r
+ gConsole.logStringMessage("[ximfmail - ResetXimfhdrsDom ] Error creating ximfmail panel :" + e +"\nline : " + e.lineNumber + " : "+ e + "\nfile : "+ Error().fileName);\r
+ ("#isUsingXimfail").attr("hidden","true");\r
+ }\r
+ // custom panels where maxitem=1 and contains composed elements\r
+ var arrPanel = $("panel[ximfmaxitem='1']");\r
+ for (var idxPnl=0; idxPnl < arrPanel.length; ++idxPnl) {\r
+ // checkboxes are used\r
+ var chkboxes = $("panel[id='"+arrPanel[idxPnl].id+"'] checkbox");\r
+ if (chkboxes.length >= 1) {\r
+ var mnuitems = $("panel[id='"+arrPanel[idxPnl].id+"'] menuitem");\r
+ for (var idxMnuItm=0; idxMnuItm < mnuitems.length; ++idxMnuItm) {\r
+ var chkbx = document.createElement("checkbox");\r
+ $(chkbx).attr("id",$(mnuitems[idxMnuItm]).attr("id"));\r
+ $(chkbx).attr("class","ximfCheckbox");\r
+ $(chkbx).attr("label",$(mnuitems[idxMnuItm]).attr("label"));\r
+ $(chkbx).attr("ximfvalue",$(mnuitems[idxMnuItm]).attr("ximfvalue"));\r
+ $(chkbx).attr("ximftextbox",$(mnuitems[idxMnuItm]).attr("ximftextbox"));\r
+ if (mnuitems[idxMnuItm].hasAttribute("ximftecvalue")) {\r
+ $(chkbx).attr("ximftecvalue",$(mnuitems[idxMnuItm]).attr("ximftecvalue"));\r
+ }\r
+ $(mnuitems[idxMnuItm].parentNode).append(chkbx);\r
+ $(mnuitems[idxMnuItm]).remove();\r
+ }\r
+ }\r
+ }\r
+ // custom input boxes\r
+ try {\r
+ var inputPopupList = $("textbox[class='ximfInputbox']");\r
+ for (var idxPpLst = 0; idxPpLst < inputPopupList.length; ++idxPpLst) {\r
+ var padre = inputPopupList[idxPpLst].parentNode;\r
+ if (padre.nodeName === "popup") {\r
+ padre.setAttribute("position", "overlap");\r
+ }\r
+ }\r
+ } catch(err) {}\r
+ // internationalisation of ximfmail context popup\r
+ try {\r
+ var gBundle = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService);\r
+ var stringBundle = gBundle.createBundle("chrome://ximfmail/locale/ximfmail.properties");\r
+ var contextMenuList = $("menuitem[class='ximfContext']");\r
+ for (var idxCtxtMnu=0; idxCtxtMnu<contextMenuList.length; ++idxCtxtMnu) {\r
+ var ilabel = contextMenuList[idxCtxtMnu].getAttribute("label");\r
+ var sLabel = stringBundle.GetStringFromName(ilabel);\r
+ if (sLabel !== "") {\r
+ contextMenuList[idxCtxtMnu].setAttribute("label",sLabel);\r
+ }\r
+ }\r
+ } catch(err) {}\r
+ // Custom Ximf Headers Dom\r
+ CustomXimfhdrsInputBox();\r
+ CustomXimfhdrsButton();\r
+ // append DOM elements to access external datas\r
+ CustomXimfhdrsTreeDialog();\r
+ // display Ximf elements\r
+ $("#isUsingXimfail").attr("hidden","false");\r
+}\r
+/*\r
+* change ximtextbox elements to edit box\r
+*/\r
+function CustomXimfhdrsInputBox() {\r
+ var listEditorClass = $("popup > textbox[class='ximfInputbox']");\r
+ for (var i = 0 ; i<listEditorClass.length ; ++i) {\r
+ try {\r
+ var idTxtBox = $(listEditorClass[i]).attr("ximfreftextbox");\r
+ var inputbox = $("textbox[id='"+idTxtBox+"']");\r
+ if ($(inputbox).attr("class") !== "ximfDatetime") {\r
+ var editor_button = $("textbox[id='"+idTxtBox+"']>button");\r
+ $(editor_button).attr("class","ximfmailButtonTxt ximfEditor");\r
+ $(editor_button).attr("tooltiptext",getIlkProperties("ximfmail.composer.editor.image"));\r
+ $(editor_button).attr("refbox",$(inputbox).attr("id"));\r
+ $(inputbox).attr("ximfmaxitems", $(listEditorClass[i]).attr("ximfmaxitems"));\r
+ $(inputbox).attr("ximfminitems", $(listEditorClass[i]).attr("ximfminitems"));\r
+ $(inputbox).attr("ximseparator", $(listEditorClass[i]).attr("ximseparator"));\r
+ $(inputbox).attr("tabindex",parseInt(i, 10)+100);\r
+ $(inputbox).attr("class","ximfEditor");\r
+ $(inputbox).removeAttr("popup");\r
+ $(inputbox).removeAttr("readonly");\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - CustomXimfhdrsInputBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ }\r
+ try {\r
+ // remove popup of free text\r
+ $("textbox[class='ximfEditor'] ~ popup").remove();\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - CustomXimfhdrsInputBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Add international tooltiptext to button\r
+ */\r
+function CustomXimfhdrsButton() {\r
+ var listCalendarClass = $("button[class*='ximfDatepicker']");\r
+ for (var idxClndr = 0; idxClndr < listCalendarClass.length; ++idxClndr) {\r
+ try {\r
+ listCalendarClass[idxClndr].setAttribute("tooltiptext",getIlkProperties("ximfmail.composer.calendar.image"));\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - customizeCalendarBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : " + e.lineNumber);\r
+ }\r
+ }\r
+ var listPopupClass = $("button[class*='ximfPopup']");\r
+ for (var idxPp = 0 ; idxPp < listPopupClass.length ; ++idxPp){\r
+ try{\r
+ listPopupClass[idxPp].setAttribute("tooltiptext",getIlkProperties("ximfmail.composer.popup.image"));\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - customizeCalendarBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : " + e.lineNumber);\r
+ }\r
+ }\r
+}\r
+/*\r
+ * Add informations to load ximfTreeDialog\r
+ */\r
+function CustomXimfhdrsTreeDialog() {\r
+ var listTreeClass = $("box[class='ximfTreeDialog']");\r
+ for(var i = 0; i<listTreeClass.length;++i){\r
+ try {\r
+ var idTxtBox = listTreeClass[i].getAttribute("refBox");\r
+ // create DOM element to acces External Tree Dialog\r
+ var data_button = $("textbox[id='"+idTxtBox+"']>button");\r
+ data_button[0].setAttribute("class", "ximfmailButtonTxt ximfTreeDialog");// insert image in DOM\r
+ data_button[0].setAttribute("id","image-"+idTxtBox);\r
+ data_button[0].setAttribute("refBox",idTxtBox);\r
+ data_button[0].setAttribute("refExternal",listTreeClass[i].getAttribute("refExternal"));\r
+ data_button[0].setAttribute("tooltiptext",getIlkProperties("ximfmail.composer.treedlg.image"));\r
+ $("textbox[id='"+idTxtBox+"']").attr("refExternal",listTreeClass[i].getAttribute("refExternal"));\r
+ $("textbox[id='"+idTxtBox+"']").attr("refBox",idTxtBox);\r
+ $("textbox[id='"+idTxtBox+"']").removeAttr("popup");\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - createButtonsOfExternDatas ] \n " + e + "\nfile : " + Error().fileName+"\nline : " + e.lineNumber);\r
+ }\r
+ }\r
+}\r
+/*\r
+ * Switch On / Off Ximf DOM\r
+ */\r
+function ToogleXimfhdrsPanel(){\r
+ if ($("#isShowingXimfail").attr("hidden") === "true") {\r
+ $("#isShowingXimfail").attr("hidden","false");\r
+ $("#ximfmailComposeMessageMaximize").attr("hidden","true");\r
+ $("#ximfmailComposeMessageMinimize").attr("hidden","false");\r
+ // set focus on first tab\r
+ try{\r
+ var tbox = $("#ximfmailComposeMessageHeadersTablist textbox[class='ximfEditor']");\r
+ if(tbox){\r
+ $(tbox[0]).click();\r
+ }\r
+ } catch(e) {}\r
+ try {\r
+ var tab = $("#ximfmailComposeMessageHeadersTablist tab");\r
+ if(tab){\r
+ $(tab[0]).click();\r
+ }\r
+ } catch(e) {}\r
+ } else {\r
+ $("#isShowingXimfail").attr("hidden","true");\r
+ $("#ximfmailComposeMessageMaximize").attr("hidden","false");\r
+ $("#ximfmailComposeMessageMinimize").attr("hidden","true");\r
+ }\r
+};\r
+/*\r
+ * manage DOM elements to send message\r
+ */\r
+function HideSendMessageElements(isToSend) {\r
+ if (!isToSend) {\r
+ // ihm to unactive sending message\r
+ $("#button-send").attr("disabled", "true");\r
+ $("#menu_File menuitem[command='cmd_sendNow']").attr("hidden", "true");\r
+ $("#menu_File menuitem[key='key_sendLater']").attr("hidden", "true");\r
+ } else {\r
+ // ihm to active sending message\r
+ $("#button-send").removeAttr("disabled");\r
+ $("#menu_File menuitem[command='cmd_sendNow']").removeAttr("hidden");\r
+ $("#menu_File menuitem[key='key_sendLater']").removeAttr("hidden");\r
+ }\r
+}\r
+/*\r
+ * Open Window to select external datas\r
+ */\r
+ var _dataSourceArray = []; // array of ximfHdr : _ximfHdrArray[ximfHdr]\r
+ function OpenTreeDialog(element) {\r
+ var keyCat = element.getAttribute("refExternal");\r
+ var refBox = element.getAttribute("refBox");\r
+ var idxDatasSource = -1;\r
+ var rdfdataSource = null;\r
+ var refRdfdataSource = null;\r
+ // get/create RDF sources\r
+ try {\r
+ for (var idx_dataSourceArray = 0; idx_dataSourceArray < _dataSourceArray.length ; ++idx_dataSourceArray) {\r
+ if (keyCat === _dataSourceArray[idx_dataSourceArray]._id) {\r
+ idxDatasSource = idx_dataSourceArray;\r
+ }\r
+ }\r
+ if (idxDatasSource >= 0) {\r
+ rdfdataSource = _dataSourceArray[idxDatasSource]._dataSource;\r
+ refRdfdataSource = _dataSourceArray[idxDatasSource]._refDataSource;\r
+ } else {\r
+ // get xml schema from profile instance directory\r
+ var sCompletePath = getFilePathInProfile("extensions/"+ XimfCatalog.getInstance().getSchemaInstance(gXimfHdrs.getXimfInstanceResource()));\r
+ sCompletePath = sCompletePath.substring(0, sCompletePath.lastIndexOf("\\")+1) + keyCat;\r
+ var dir = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);\r
+ dir.initWithPath( sCompletePath );\r
+ if (!dir.exists()) {\r
+ return;\r
+ }\r
+ // create and save datasource\r
+ xDataSource = new XimfDataSource();\r
+ xDataSource._id = keyCat;\r
+ var res = CreateRdfDatasSource(sCompletePath);\r
+ rdfdataSource = res._dataSource;\r
+ xDataSource._dataSource = rdfdataSource;\r
+ refRdfdataSource = res._refDataSource;\r
+ xDataSource._refDataSource = refRdfdataSource;\r
+ _dataSourceArray.push(xDataSource);\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - addExternDatas ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
+ }\r
+ // push datas to new dialog window\r
+ try {\r
+ // get informations of datas to load\r
+ var eltTxtBox = document.getElementById(refBox);\r
+ var separator = eltTxtBox.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ var header = document.getElementById(eltTxtBox.getAttribute("refheader"));\r
+ // set informations of datas to load\r
+ var args = new XimfmailTreedialogArgs();\r
+ args.dataSource = rdfdataSource;\r
+ args.refdataSource = refRdfdataSource;\r
+ args.title = header.getAttribute("value");\r
+ args.maxItemsSelected = eltTxtBox.getAttribute(ximfConst._XIMF_ATT_MAX_ITEMS);\r
+ // push current selection\r
+ if (eltTxtBox.value) {\r
+ try {\r
+ var currentValue = eltTxtBox.value;\r
+ if (args.maxItemsSelected > 1 && separator !== "" ) {\r
+ var reg = new RegExp("["+separator+"]+", "g");\r
+ var arrayItems = currentValue.split(reg);\r
+ for(var idxItm=0 ; idxItm < arrayItems.length; ++idxItm){\r
+ if (arrayItems[idxItm] !== "") {\r
+ args.currentKeys.push(arrayItems[idxItm]);\r
+ }\r
+ }\r
+ } else {\r
+ args.currentKeys.push(currentValue);\r
+ if ($(eltTxtBox).attr("tooltiptext")) {\r
+ args.currentLabels.push($(eltTxtBox).attr("tooltiptext"));\r
+ }\r
+ }\r
+ }catch(ex){\r
+ gConsole.logStringMessage("[ximfmail - OpenTreeDialogBox_Svc ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ }\r
+ // open dialog\r
+ window.openDialog(ximfConst.CHROME_XSL_TREE_DIALOG,"showmore", "chrome,resizable,centerscreen,modal",args);\r
+ if (args.retIsCancel) {\r
+ gConsole.logStringMessage("[ximfmail - OpenTreeDialogBox_Svc ] selection has been canceled !");\r
+ return;\r
+ }\r
+ // get for user selection\r
+ if (args.retKeys.length > 1) {\r
+ var value = "";\r
+ for (var idxKey=0 ; idxKey < args.retKeys.length ; ++idxKey) {\r
+ if (value === "") {\r
+ value = args.retKeys[idxKey];\r
+ } else {\r
+ value = value + separator + args.retKeys[idxKey];\r
+ }\r
+ }\r
+ // set new list values\r
+ eltTxtBox.value = value;\r
+ $(eltTxtBox).attr("ximfvalue",value);\r
+ $(eltTxtBox).attr("tooltiptext","");\r
+ } else {\r
+ if (args.retKeys[0]) {\r
+ eltTxtBox.value = args.retKeys[0];\r
+ $(eltTxtBox).attr("ximfvalue",args.retKeys[0]); // used for mandatories headers control rules\r
+ $(eltTxtBox).attr("tooltiptext",args.retLabels[0]);\r
+ } else {\r
+ eltTxtBox.value = "";\r
+ $(eltTxtBox).attr("ximfvalue","");\r
+ $(eltTxtBox).attr("tooltiptext","");\r
+ }\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - addExternDatas ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Open window to select datetime\r
+ */\r
+function OpenCalendarDialog(button) {\r
+ try {\r
+ // get informations of datas to load\r
+ var args = [];\r
+ var idBox = button.getAttribute("refBox");\r
+ var ebox = document.getElementById(idBox);\r
+ // args[0] : id de la textbox a enrichir\r
+ args.push(idBox);\r
+ // displayed date\r
+ args.push(ebox.value);\r
+ args.push($("label[id='"+ebox.getAttribute("refheader")+"']").attr("value"));\r
+ // open dialog\r
+ window.openDialog(ximfConst.CHROME_XSL_DLG_CALENDAR,"showmore", "chrome,resizable,centerscreen,modal",args);\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - openCalendarDialogBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Open window text editor\r
+ */\r
+function OpenEditorDialog(button) {\r
+ try {\r
+ var args=[];\r
+ var idBox = button.getAttribute("refbox");\r
+ args.push(idBox);\r
+ var ebox = document.getElementById(idBox);\r
+ if (ebox) {\r
+ args.push(ebox.value);\r
+ args.push(ebox.getAttribute("ximfseparator"));\r
+ args.push(ebox.getAttribute("ximfmaxitems"));\r
+ args.push(ebox.getAttribute("ximfminitems"));\r
+ args.push($("label[id='"+ebox.getAttribute("refheader")+"']").attr("value"));\r
+ window.openDialog(ximfConst.CHROME_XSL_DLG_EDITOR,"showmore", "chrome,resizable,centerscreen,modal",args);\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - openEditorDialogBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Open window with complete informations of ximf header\r
+ */\r
+function OpenInfoDialog(idBox) {\r
+ // get informations of datas to load\r
+ var args = [];\r
+ var txtBox = document.getElementById(idBox);\r
+ var hLabel = document.getElementById(txtBox.getAttribute("refheader"));\r
+ args.push(hLabel.getAttribute("value")); // args[0] : id de la textbox a enrichir\r
+ args.push(hLabel.getAttribute("ximfheader")); // args[1] : ref du catalogue a charger\r
+ args.push(txtBox.value); // args[2] : titre de la dialogbox\r
+ args.push(txtBox.getAttribute("ximfvalue")); // args[3] : description de la dialogbox\r
+ if (txtBox.hasAttribute("ximfseparator")) {\r
+ args.push(txtBox.getAttribute("ximfseparator"));\r
+ }\r
+ // open dialog\r
+ window.openDialog("chrome://ximfmail/content/dialogHdrInfo-ximfmail.xul","showmore", "chrome,resizable,centerscreen,modal",args);\r
+}\r
+/*\r
+ * EVENT MANAGER OF XIMFMAIL ELEMENTS\r
+ */\r
+function LoadXimfhdrsEventObserver () { \r
+ // animation on ximfmail panel\r
+ $("#ximfmailComposeMessageMaximize").bind("command",OnClickXimfhdrsBar);\r
+ $("#ximfmailComposeMessageMinimize").bind("command",OnClickXimfhdrsBar);\r
+ $("#ximfmailComposeMessageFocusBar").dblclick(OnClickXimfhdrsBar);\r
+ // command events on ximfmail elements\r
+ $("button[class='ximfButton']").bind("command",OnSelectButtonPopup);\r
+ $("menuitem[class='ximfOkSet']").bind("command",OnSelectCheckPopup);\r
+ $("textbox[class='XimfTextboxDisplay']").mouseover(OnHoverTextbox);\r
+ $("menuitem[class='ximfContext']").bind("command",OnSelectContextBox);\r
+ $("button[class*='ximfEraser']").bind("command",OnClickEraser);\r
+ $("button[class*='ximfTreeDialog']").bind("command",OnClickTreeDialogButton);\r
+ $("button[class*='ximfDatepicker']").bind("command",OnClickDatepicker);\r
+ $("textbox[class='ximfEditor']").click(OnXimfhdrsEditor);\r
+ $("textbox[class='ximfEditor']").bind("change",OnCheckXimfhdrsEditor);\r
+ $("button[class*='ximfEditor']").bind("command",OnClickEditorButton);\r
+ // check for mandatory ximf headers when editor texbox has changed\r
+ $("#ximfmailComposeMessageHeadersTablist textbox").bind("change", function() {\r
+ $(this).setAttribute("ximfvalue", $(this).value);\r
+ CheckXimfhdrsSelection();\r
+ });\r
+ // get complete information of ximf hdr\r
+ $("button[class*='ximfDetail']").bind("command", function() {\r
+ OpenInfoDialog($(this).attr("refLabel"));\r
+ });\r
+ // open panel under ximfmail textbox\r
+ $("button[class*='ximfPopup']").bind("command", function(evt) {\r
+ var panel = document.getElementById($(evt.currentTarget).attr("refpanel"));\r
+ $("#"+panel.id+" richlistitem").removeAttr("selected");\r
+ $("#"+panel.id+" richlistitem").removeAttr("current");\r
+ panel.openPopup(evt.currentTarget.parentNode, "after_start", 0, 0, false, false);\r
+ });\r
+ // menuitem selected for 1 entry header\r
+ $("menuitem[class*='ximfItem']").bind("command", function(evt) {\r
+ ComputeXimfhdrsMenuItem(evt.currentTarget);\r
+ var box = document.getElementById($(evt.currentTarget).attr("ximftextbox"));\r
+ document.getElementById($(box).attr("refpanel")).hidePopup();\r
+ });\r
+ // keyboard event on panel\r
+ $("panel").bind("keyup", function(evt) {\r
+ if (evt.keyCode === 13) {\r
+ var panel = evt.currentTarget;\r
+ var richlistitem = $("#" + evt.currentTarget.id + " richlistitem");\r
+ for (i=0;i<richlistitem.length;++i) {\r
+ if (richlistitem[i].selected) {\r
+ var nodes = richlistitem[i].childNodes;\r
+ for (j=0;j<nodes.length;++j) {\r
+ if(nodes[j].localName === "menuitem") {\r
+ ComputeXimfhdrsMenuItem(nodes[j]);\r
+ var box = document.getElementById($(nodes[j]).attr("ximftextbox"));\r
+ XimfailComposeCanClose();\r
+ document.getElementById($(box).attr("refpanel")).hidePopup();\r
+ return;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ document.getElementById(evt.currentTarget.id).hidePopup();\r
+ }\r
+ });\r
+ // checkbox panel is selected\r
+ $("panel checkbox").bind("command",function(evt) {\r
+ ComputePanelOfCheckboxSelection(evt.currentTarget.id);\r
+ });\r
+ // check richlistitem where ximfchild=true (ximf computestring)\r
+ $("panel").bind("popuphiding",function(evt) {\r
+ var CompstringItem = $("#" + evt.currentTarget.id + " richlistitem[ximfchild='true']");\r
+ for (i=0; i<CompstringItem.length; ++i) {\r
+ var chk1 = CompstringItem[i].firstElementChild;\r
+ if (chk1.localName === "checkbox" && chk1.checked && !IsAcceptableXimfCompstring(chk1.id)) {\r
+ chk1.checked = false;\r
+ chk1.removeAttribute("ximfchild");\r
+ ComputePanelOfCheckboxSelection(chk1.id);\r
+ }\r
+ }\r
+ });\r
+ // panel can accept more than 1 entry for header\r
+ $("panel").bind("popuphidden", function(evt) {\r
+ if (parseInt($(evt.currentTarget).attr("ximfmaxitem"), 10) > 1 ) {\r
+ // if panel has XIMF multiset implementation, don't compute it\r
+ var multisetPanel = $("#" + evt.currentTarget.id + " button[class='ximfButton']");\r
+ if (multisetPanel.length <=0) {\r
+ ComputeXimfhdrsMultivaluePanel(evt.currentTarget.id);\r
+ }\r
+ } else {\r
+ var nbChk = $("#" + evt.currentTarget.id + " checkbox");\r
+ if (nbChk.length > 0 ) {\r
+ ComputeXimfhdrsMultivaluePanel(evt.currentTarget.id);\r
+ }\r
+ }\r
+ XimfailComposeCanClose();\r
+ });\r
+ // panel - first entry must be selected before selecting composed item\r
+ $("panel").bind("popupshown",function(evt) {\r
+ if (parseInt($(evt.currentTarget).attr("ximfmaxitem"), 10) <= 1 ) {\r
+ return;\r
+ }\r
+ var richitems = $("#" + evt.currentTarget.id + " richlistbox" ).children("richlistitem");\r
+ for (var i=0 ; i<richitems.length; ++i) {\r
+ var chk1 = richitems[i].firstElementChild;\r
+ if (chk1.localName === "checkbox" && !chk1.checked){\r
+ var eltsChild = richitems[i].getElementsByTagName("checkbox");\r
+ for (j=0 ; j < eltsChild.length; ++j) {\r
+ $(eltsChild[j]).attr("disabled","true");\r
+ }\r
+ $(chk1).attr("disabled","false");\r
+ }\r
+ }\r
+ });\r
+ // remove css style from mouse item selections\r
+ $("#ximfmailComposeMessageHeadersTablist richlistitem").mouseout(function(evt) {\r
+ if (evt.currentTarget.hasAttribute("selected")) {\r
+ $(evt.currentTarget).removeAttr("selected");\r
+ }\r
+ });\r
+ // get document tab control, set focus to ximfmail tabbox\r
+ $(document).bind("keypress", function(evt) {\r
+ if (evt.keyCode === 9 && evt.target.id === "msgSubject") { // 9: tabuklation keycode\r
+ if (document.getElementById("ximfmailComposeMessageMinimize").hasAttribute("hidden")) {\r
+ $("#ximfmailComposeMessageMaximize").focus();\r
+ } else {\r
+ $("#ximfmailComposeMessageMinimize").focus();\r
+ }\r
+ }\r
+ }); \r
+}\r
+function OnClickXimfhdrsBar(evt) {\r
+ ToogleXimfhdrsPanel();\r
+}\r
+function OnSelectButtonPopup(evt) {\r
+ ComputeXimfhdrsButtonPopup(evt.currentTarget);\r
+}\r
+function OnSelectCheckPopup(evt) {\r
+ ComputeXimfhdrsCheckPopup(evt.currentTarget);\r
+}\r
+function OnClickEraser(evt) {\r
+ EraseAndComputeXimfhdrsTextbox(document.getElementById(evt.currentTarget.id).getAttribute("refValue"), false);\r
+ // valid document state\r
+ CheckXimfhdrsSelection();\r
+}\r
+function OnClickTreeDialogButton(evt) {\r
+ OpenTreeDialog(evt.currentTarget);\r
+ XimfailComposeCanClose();\r
+}\r
+function OnClickDatepicker(evt) {\r
+ OpenCalendarDialog(evt.currentTarget);\r
+ XimfailComposeCanClose();\r
+}\r
+function OnClickEditorButton(evt) {\r
+ OpenEditorDialog(evt.currentTarget);\r
+ CheckXimfhdrsSelection();\r
+ XimfailComposeCanClose();\r
+}\r
+function OnXimfhdrsEditor(evt) {\r
+ var id = evt.currentTarget.id;\r
+ var bx = document.getElementById(id);\r
+ bx.focus();\r
+}\r
+function OnHoverTextbox(evt) {\r
+ try {\r
+ elt = evt.currentTarget;\r
+ tooltext = elt.value;\r
+ if(tooltext !== ""){\r
+ elt.setAttribute("tooltiptext",tooltext);\r
+ }else{\r
+ elt.removeAttribute("tooltiptext");\r
+ }\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - OnHoverXimfTextbox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Display context menu Ximfmail\r
+ */\r
+function OnSelectContextBox(evt) {\r
+ try{\r
+ idBox = evt.currentTarget.getAttribute("idbox");\r
+ var eltTextbox = document.getElementById(idBox);\r
+ switch (parseInt(evt.currentTarget.getAttribute("idx"), 10)) {\r
+ case 1:\r
+ // erase all selected values\r
+ EraseAndComputeXimfhdrsTextbox(eltTextbox.id, true);\r
+ break;\r
+ case 2:\r
+ // display datas of current XIMF header\r
+ if(eltTextbox.value !== ""){\r
+ OpenInfoDialog(idBox);\r
+ }\r
+ break;\r
+ default:\r
+ gConsole.logStringMessage("[ximfmail warning OnSelectXimfmailContextBox] \n unknown choice : "+eltTextbox.getAttribute("idx"));\r
+ break;\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - OnSelectXimfmailContextBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+}\r
+function OnCheckXimfhdrsEditor(evt) {\r
+ try {\r
+ var domElt = evt.currentTarget;\r
+ var maxItems = domElt.getAttribute("ximfmaxitems");\r
+ var separatorItem = domElt.getAttribute("ximfseparator");\r
+ var labelHeader = document.getElementById(domElt.getAttribute("refheader")).getAttribute("value");\r
+ if(maxItems === "") {\r
+ return;\r
+ }\r
+ var dlgEditorXimf_maxItem_alert = maxItems + " "+ getIlkProperties("ximfmail.dialog.editor.warning.nbrows");\r
+ var arrayItem = domElt.value.split(separatorItem);\r
+ var nbItems = arrayItem.length;\r
+ if (parseInt(maxItems, 10)<arrayItem.length) {\r
+ nbItems = parseInt(maxItems, 10);\r
+ ximfAlert(labelHeader,dlgEditorXimf_maxItem_alert);\r
+ var newvalue = "";\r
+ for (var i=0 ; i<nbItems ; ++i) {\r
+ if (arrayItem[i] !== "") {\r
+ if (i===0) {\r
+ newvalue = arrayItem[i];\r
+ } else {\r
+ newvalue += separatorItem + arrayItem[i];\r
+ }\r
+ }\r
+ }\r
+ domElt.value = newvalue;\r
+ domElt.inputField = newvalue;\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - OnCheckXimfhdrsEditor ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * COMPUTE XIMFMAIL ELEMENTS AND UPDATE DOM\r
+ */\r
+function CheckXimfhdrsSelection() {\r
+ try {\r
+ var isRuleOk=true;\r
+ // apply generic rules\r
+ if (!ExecuteXimfHdrsAssociationRule()) {\r
+ isRuleOk=false;\r
+ }\r
+ if (!ExecuteXimfHdrsMandatoryRule()) {\r
+ isRuleOk=false;\r
+ }\r
+ AppendESSSecuityLabel();\r
+ HideSendMessageElements(isRuleOk);\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - IsReadyToSend ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Update Ximf header selected from multi choice panel\r
+ */\r
+function ComputeXimfhdrsMultivaluePanel(idPanel) {\r
+ try {\r
+ var panel = document.getElementById(idPanel);\r
+ var ximfSeparator = $(panel).attr("ximfseparator");\r
+ var ximfTecSeparator = $(panel).attr("ximftecseparator");\r
+ var selectionObject = new Object;\r
+ selectionObject.value = "";\r
+ selectionObject.ximfvalue = "";\r
+ selectionObject.ximftecvalue = "";\r
+ var listRichBox = panel.getElementsByTagName("richlistbox");\r
+ var childnodes = listRichBox[0].childNodes;\r
+ for (var i = 0 ; i < childnodes.length ; i++) {\r
+ if (childnodes[i].localName === "richlistitem") {\r
+ var selectionItem = GetXimfSelectionOfRichlistitem(childnodes[i],ximfSeparator,ximfTecSeparator);\r
+ if (selectionItem) {\r
+ if (selectionItem.value !== "") {\r
+ if (selectionObject.value === "") {\r
+ selectionObject.value = selectionItem.value;\r
+ selectionObject.ximfvalue = selectionItem.ximfvalue;\r
+ if (selectionItem.ximftecvalue !== "") {\r
+ selectionObject.ximftecvalue = selectionItem.ximftecvalue;\r
+ }\r
+ } else {\r
+ selectionObject.value += ximfSeparator + selectionItem.value;\r
+ selectionObject.ximfvalue += ximfSeparator + selectionItem.ximfvalue;\r
+ if (selectionItem.ximftecvalue !== "") {\r
+ selectionObject.ximftecvalue += ximfTecSeparator + selectionItem.ximftecvalue;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // save selection to ximfhdr textbox\r
+ var hdrTextbox = document.getElementById($(panel).attr("ximfreftextbox"));\r
+ hdrTextbox.value = selectionObject.value;\r
+ $(hdrTextbox).attr("ximfvalue",selectionObject.ximfvalue);\r
+ $(hdrTextbox).attr("ximfseparator",ximfSeparator);\r
+ if (selectionObject.ximftecvalue !== "") {\r
+ $(hdrTextbox).attr("ximftecvalue",selectionObject.ximftecvalue);\r
+ $(hdrTextbox).attr("ximftecseparator",ximfTecSeparator);\r
+ }\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - ComputeXimfhdrsMultivaluePanel ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Get XIMF informations of composed element\r
+ */\r
+function GetXimfSelectionOfRichlistitem(richItem,cSeparator,cTecSeparator) {\r
+ var selectionObject = new Object;\r
+ selectionObject.value = "";\r
+ selectionObject.ximfvalue = "";\r
+ selectionObject.ximftecvalue = "";\r
+ selectionObject.separator = "";\r
+ selectionObject.tecseparator = "";\r
+ try {\r
+ var childnodes = richItem.childNodes;\r
+ // single element to decode\r
+ if (childnodes.length === 1) {\r
+ return GetXimfValuesOfRichlistItem(childnodes[0]);\r
+ }\r
+ // multi element to decode\r
+ if (!GetXimfValuesOfRichlistItem(childnodes[0])) {\r
+ return selectionObject;\r
+ }\r
+ // create array of user informations\r
+ var arrSlaveItems = new Array();\r
+ var masterItem = null;\r
+ for (var idxChilNd=0 ; idxChilNd < childnodes.length ; idxChilNd++) {\r
+ switch (childnodes[idxChilNd].localName) {\r
+ case "checkbox" :\r
+ var item = GetXimfValuesOfRichlistItem(childnodes[idxChilNd]);\r
+ if (item) {\r
+ masterItem = item;\r
+ }\r
+ break;\r
+ case "vbox":\r
+ var childnodes2 = childnodes[idxChilNd].childNodes;\r
+ for (var idxChilNd2 = 0 ; idxChilNd2 < childnodes2.length ; idxChilNd2++) {\r
+ var item = GetXimfValuesOfRichlistItem(childnodes2[idxChilNd2].firstChild);\r
+ if (item) {\r
+ arrSlaveItems.push(item);\r
+ }\r
+ }\r
+ break;\r
+ default:\r
+ var item = GetXimfValuesOfRichlistItem(childnodes[idxChilNd]);\r
+ if (item) {\r
+ arrSlaveItems.push(item);\r
+ }\r
+ }\r
+ }\r
+ // format Ximf informations\r
+ if (arrSlaveItems.length > 0 && masterItem !== null) {\r
+ var newvalue = undefined;\r
+ var newximfvalue = undefined;\r
+ var newximftecvalue = undefined;\r
+ if (masterItem.bfactorise) {\r
+ for (var idxSlvItm = 0 ; idxSlvItm < arrSlaveItems.length ; ++idxSlvItm) {\r
+ // concat linked values\r
+ if (masterItem.id === arrSlaveItems[idxSlvItm].concatid) {\r
+ if ( newvalue === undefined) {\r
+ newvalue = arrSlaveItems[idxSlvItm].value;\r
+ newximfvalue = arrSlaveItems[idxSlvItm].ximfvalue;\r
+\r
+ } else {\r
+ newvalue += masterItem.separator + arrSlaveItems[idxSlvItm].value;\r
+ newximfvalue += masterItem.separator + arrSlaveItems[idxSlvItm].ximfvalue;\r
+ }\r
+ }\r
+ // technical value formating\r
+ if (masterItem.ximftecvalue !== "" || arrSlaveItems[idxSlvItm].ximftecvalue !== "") {\r
+ newximftecvalue = masterItem.ximftecvalue + masterItem.tecseparator + arrSlaveItems[idxSlvItm].ximftecvalue;\r
+ if (newximftecvalue !== undefined) {\r
+ if (selectionObject.ximftecvalue === "" ) {\r
+ selectionObject.ximftecvalue = newximftecvalue;\r
+ } else {\r
+ selectionObject.ximftecvalue += cTecSeparator + newximftecvalue;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // factorize master item with slaves\r
+ if (!masterItem.bpositionend) {\r
+ newvalue = masterItem.value + " " + newvalue;\r
+ newximfvalue = masterItem.ximfvalue + " " + newximfvalue;\r
+ } else {\r
+ newvalue = newvalue + " " + masterItem.value;\r
+ newximfvalue = newximfvalue + " " + masterItem.ximfvalue;\r
+ }\r
+ // set compstring items\r
+ if (selectionObject.value === "") {\r
+ selectionObject.value = newvalue;\r
+ selectionObject.ximfvalue = newximfvalue;\r
+ } else {\r
+ selectionObject.value += cSeparator + newvalue;\r
+ selectionObject.ximfvalue += cSeparator + newximfvalue;\r
+ }\r
+ } else {\r
+ for (var i = 0 ; i < arrSlaveItems.length ; ++i) {\r
+ // concat linked values and create formated information\r
+ if (masterItem.id === arrSlaveItems[i].concatid) {\r
+ if (!masterItem.bpositionend) {\r
+ newvalue = masterItem.value + masterItem.separator + arrSlaveItems[i].value;\r
+ newximfvalue = masterItem.ximfvalue + masterItem.separator + arrSlaveItems[i].ximfvalue;\r
+ } else {\r
+ newvalue = arrSlaveItems[i].value + masterItem.separator + masterItem.value;\r
+ newximfvalue = arrSlaveItems[i].ximfvalue + masterItem.separator + masterItem.ximfvalue;\r
+ }\r
+ // technical value formating\r
+ if (masterItem.ximftecvalue !== "" || arrSlaveItems[i].ximftecvalue !== "") {\r
+ newximftecvalue = masterItem.ximftecvalue + masterItem.tecseparator + arrSlaveItems[i].ximftecvalue;\r
+ }\r
+ // set compstring items\r
+ if (selectionObject.value === "") {\r
+ selectionObject.value = newvalue;\r
+ selectionObject.ximfvalue = newximfvalue;\r
+ if (newximftecvalue !== undefined) {\r
+ selectionObject.ximftecvalue = newximftecvalue;\r
+ }\r
+ } else {\r
+ selectionObject.value += cSeparator + newvalue;\r
+ selectionObject.ximfvalue += cSeparator + newximfvalue;\r
+ if (newximftecvalue !== undefined) {\r
+ selectionObject.ximftecvalue += cTecSeparator + newximftecvalue;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ } else {\r
+ // case 1 item is used in item selection\r
+ if (masterItem.value !== "") {\r
+ selectionObject.value += masterItem.value;\r
+ selectionObject.ximfvalue += masterItem.ximfvalue;\r
+ if (masterItem.ximftecvalue !== "") {\r
+ selectionObject.ximftecvalue += masterItem.ximftecvalue;\r
+ }\r
+ }\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - GetXimfSelectionOfRichlistitem ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ return selectionObject;\r
+}\r
+/*\r
+ * get iformations of element selected by user\r
+ */\r
+function GetXimfValuesOfRichlistItem(richItem){\r
+ var oItem = new Object;\r
+ oItem.id = "";\r
+ oItem.concatid = "";\r
+ oItem.value = "";\r
+ oItem.ximfvalue = "";\r
+ oItem.ximftecvalue = "";\r
+ oItem.separator = "";\r
+ oItem.tecseparator = "";\r
+ oItem.bfactorise = false;\r
+ oItem.bpositionend = false;\r
+ try{\r
+ switch (richItem.localName) {\r
+ case "checkbox" :\r
+ if (richItem.hasAttribute("checked")) {\r
+ oItem.value = richItem.getAttribute("label");\r
+ oItem.ximfvalue = richItem.getAttribute("ximfvalue");\r
+ if (richItem.hasAttribute("ximftecvalue")) {\r
+ oItem.ximftecvalue = richItem.getAttribute("ximftecvalue");\r
+ }\r
+ if (richItem.hasAttribute("ximfseparator")) {\r
+ oItem.separator = richItem.getAttribute("ximfseparator");\r
+ }\r
+ if (richItem.hasAttribute("ximftecseparator")) {\r
+ oItem.tecseparator = richItem.getAttribute("ximftecseparator");}\r
+ if (richItem.hasAttribute("id")) {\r
+ oItem.id = richItem.getAttribute("id");\r
+ }\r
+ if (richItem.hasAttribute("ximfconcatid")) {\r
+ oItem.concatid = richItem.getAttribute("ximfconcatid");\r
+ }\r
+ if (richItem.hasAttribute("ximfcompositionend")) {\r
+ oItem.bpositionend = richItem.getAttribute("ximfcompositionend") === "true" ? true : false;\r
+ }\r
+ if (richItem.hasAttribute("ximffactorise")) {\r
+ oItem.bfactorise = richItem.getAttribute("ximffactorise") === "true" ? true : false;\r
+ }\r
+ }\r
+ break;\r
+ case "textbox" :\r
+ if (richItem.value !== "") {\r
+ oItem.value = richItem.value;\r
+ oItem.ximfvalue = richItem.value;\r
+ if (richItem.hasAttribute("ximfseparator")) {\r
+ oItem.separator = richItem.getAttribute("ximfseparator");\r
+ }\r
+ if (richItem.hasAttribute("id")) {\r
+ oItem.id = richItem.getAttribute("id");\r
+ }\r
+ if (richItem.hasAttribute("ximfconcatid")) {\r
+ oItem.concatid = richItem.getAttribute("ximfconcatid");\r
+ }\r
+ }\r
+ break;\r
+ }\r
+ if (oItem.value === "") {\r
+ oItem = null;\r
+ }\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - GetXimfSelectionOfRichlistitem ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ return oItem;\r
+}\r
+/*\r
+ * Update Ximf header selected from single choice panel\r
+ */\r
+function ComputeXimfhdrsMenuItem(menuitem) {\r
+ try{\r
+ var iMaxItems = 0;\r
+ var sXimfseparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ var eltTextbox = document.getElementById(menuitem.getAttribute("ximftextbox"));\r
+ // CheckXimfhdrsSelection for list with finished elements number\r
+ if (eltTextbox.hasAttribute(ximfConst._XIMF_ATT_MAX_ITEMS)) {\r
+ iMaxItems = parseInt(eltTextbox.getAttribute(ximfConst._XIMF_ATT_MAX_ITEMS),10);\r
+ }\r
+ // CheckXimfhdrsSelection for separator value\r
+ if (eltTextbox.hasAttribute(ximfConst._XIMF_ATT_SEPARATOR)) {\r
+ sXimfseparator = eltTextbox.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ }\r
+ // CheckXimfhdrsSelection for concated values\r
+ var sConcatVal="";\r
+ var sConcatXimfVal="";\r
+ var sConcatTecVal="";\r
+ var sContentSeparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ var sContenTecSeparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ if (menuitem.hasAttribute(ximfConst._XIMF_ATT_CONCAT_ID)) {\r
+ if (menuitem.hasAttribute(ximfConst._XIMF_ATT_SEPARATOR)) {\r
+ sContentSeparator = menuitem.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ } else {\r
+ if (menuitem.parentNode.hasAttribute(ximfConst._XIMF_ATT_SEPARATOR)) {\r
+ sContentSeparator = menuitem.parentNode.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ }\r
+ }\r
+ if (menuitem.hasAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR)) {\r
+ sContenTecSeparator = menuitem.getAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR);\r
+ } else {\r
+ if (menuitem.parentNode.hasAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR)) {\r
+ sContenTecSeparator = menuitem.parentNode.getAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR);\r
+ }\r
+ }\r
+ var sIds = menuitem.getAttribute(ximfConst._XIMF_ATT_CONCAT_ID);\r
+ var reg=new RegExp("[+]+", "g");\r
+ var arrayIds = sIds.split(reg);\r
+ for (var i=0; i<arrayIds.length; i++) {\r
+ try{\r
+ var cElt = document.getElementById(arrayIds[i]);\r
+ if (cElt) {\r
+ if (sConcatVal === "") {\r
+ sConcatVal = cElt.getAttribute("label");\r
+ sConcatXimfVal = cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ sConcatTecVal = cElt.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE);\r
+ } else {\r
+ sConcatVal = sConcatVal + sContentSeparator + cElt.getAttribute("label");\r
+ sConcatXimfVal = sConcatXimfVal + sContentSeparator + cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ sConcatTecVal = sConcatTecVal + sContenTecSeparator + cElt.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE);\r
+ }\r
+ }\r
+ }catch(e){}\r
+ }\r
+ }\r
+ // replace existing value if exits\r
+ var sOldximfvalue = eltTextbox.getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ eltTextbox.value = sConcatVal + menuitem.getAttribute("label");\r
+ eltTextbox.setAttribute(ximfConst._XIMF_ATT_XVALUE, sConcatXimfVal + menuitem.getAttribute(ximfConst._XIMF_ATT_XVALUE));\r
+ // watch for technical value\r
+ if (menuitem.hasAttribute(ximfConst._XIMF_ATT_TEC_VALUE)) {\r
+ eltTextbox.setAttribute(ximfConst._XIMF_ATT_TEC_VALUE, sConcatTecVal + menuitem.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE));\r
+ }\r
+ //erase old linkPopup case and new selection\r
+ if (sOldximfvalue !== "" && sOldximfvalue !== menuitem.getAttribute(ximfConst._XIMF_ATT_XVALUE)) {\r
+ var sOldlinkpopup = $("panel[id='"+ eltTextbox.getAttribute("refpanel")+"'] menuitem[ximfvalue='"+sOldximfvalue+"']").attr(ximfConst._XIMF_ATT_LINK_POPUP_BOX);\r
+ EraseAndComputeXimfhdrsTextbox($("panel[id='"+ sOldlinkpopup +"']").attr(ximfConst._XIMF_ATT_REF_BOX));\r
+ // delete popup link in textbox\r
+ $("textbox[id='" + $("panel[id='"+ sOldlinkpopup +"']").attr(ximfConst._XIMF_ATT_REF_BOX) + "']").removeAttr("refpanel");\r
+ $("textbox[id='" + $("panel[id='"+ sOldlinkpopup +"']")+ " button").removeAttr("refpanel");\r
+ }\r
+ // manage popup of link header\r
+ if (menuitem.hasAttribute(ximfConst._XIMF_ATT_LINK_POPUP_BOX)) {\r
+ var popupset = document.getElementById(menuitem.getAttribute(ximfConst._XIMF_ATT_LINK_POPUP_BOX));\r
+ var txtbox = document.getElementById(popupset.getAttribute(ximfConst._XIMF_ATT_REF_BOX));\r
+ txtbox.setAttribute("refpanel",menuitem.getAttribute(ximfConst._XIMF_ATT_LINK_POPUP_BOX));\r
+ $("textbox[id='" + txtbox.getAttribute("id") + "'] button").attr("refpanel",menuitem.getAttribute(ximfConst._XIMF_ATT_LINK_POPUP_BOX));\r
+ }\r
+ // valid document state\r
+ CheckXimfhdrsSelection();\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - OnSelectXimfItem ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Update Ximf header selected in menu popup with button\r
+ */\r
+function ComputeXimfhdrsButtonPopup(button){\r
+ // Add selection and associated values for header from button popup\r
+ try{\r
+ var sXimfValues="";\r
+ var sValues="";\r
+ var sXimfTechnicalValues="";\r
+ var ximfvalue = "";\r
+ var value = "";\r
+ var ximftechnicalvalue="";\r
+ var sContentSeparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ var sContenTecSeparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ var eltTextbox = document.getElementById(button.getAttribute("ximfreftextbox"));\r
+ sXimfValues = eltTextbox.getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ sValues = eltTextbox.value;\r
+ sXimfTechnicalValues = eltTextbox.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE);\r
+ // CheckXimfhdrsSelection for concated values\r
+ if (button.hasAttribute(ximfConst._XIMF_ATT_CONCAT_ID)) {\r
+ var sIds = button.getAttribute(ximfConst._XIMF_ATT_CONCAT_ID);\r
+ var reg=new RegExp("[+]+", "g");\r
+ var arrayIds = sIds.split(reg);\r
+ for (var i=0; i<arrayIds.length; i++){\r
+ var cElt = document.getElementById(arrayIds[i]);\r
+ if (cElt) {\r
+ if (cElt.hasAttribute(ximfConst._XIMF_ATT_SEPARATOR)) {\r
+ sContentSeparator = cElt.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ }\r
+ if (cElt.hasAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR)) {\r
+ sContenTecSeparator = cElt.getAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR);\r
+ }\r
+ if (value === "") {\r
+ value = cElt.getAttribute("label") + sContentSeparator;\r
+ ximfvalue = cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE) + sContentSeparator;\r
+ ximftechnicalvalue = cElt.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE) + sContenTecSeparator;\r
+ } else {\r
+ value = value + cElt.getAttribute("label") + sContentSeparator ;\r
+ ximfvalue = ximfvalue + cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE) + sContentSeparator ;\r
+ ximftechnicalvalue = ximftechnicalvalue + cElt.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE) + sContenTecSeparator ;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // get default parameters\r
+ if (button.hasAttribute(ximfConst._XIMF_ATT_SEPARATOR)) {\r
+ sContentSeparator = button.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ }\r
+ if (button.hasAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR)) {\r
+ sContenTecSeparator = button.getAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR);\r
+ }\r
+ if (sValues !== "") {\r
+ sValues = sValues + sContentSeparator + value + button.getAttribute("label");\r
+ sXimfValues = sXimfValues + sContentSeparator + ximfvalue + button.getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ sXimfTechnicalValues = sXimfTechnicalValues + sContenTecSeparator + ximftechnicalvalue + button.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE);\r
+ } else {\r
+ sValues = value + button.getAttribute("label");\r
+ sXimfValues = ximfvalue + button.getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ sXimfTechnicalValues = ximftechnicalvalue + button.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE);\r
+ }\r
+ // load new values\r
+ eltTextbox.setAttribute(ximfConst._XIMF_ATT_XVALUE,sXimfValues);\r
+ eltTextbox.value=sValues;\r
+ CheckXimfhdrsSelection();\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - OnSelectXimfButton ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Update Ximf header selected in menu popup with CheckXimfhdrsSelection\r
+ */\r
+function ComputeXimfhdrsCheckPopup(xulElement) {\r
+ //CheckXimfhdrsSelection all selected values and add to ximf box\r
+ try {\r
+ var sXimfValues="";\r
+ var sValues="";\r
+ var sXimfTechnicalValues="";\r
+ var sContentSeparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ var sContenTecSeparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ var sConcatSeparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ var sConcatTecSeparator = ximfConst._XIMF_DEFAULT_SEPARATOR;\r
+ var nextElt = null;\r
+ var idTextBox = "";\r
+ var parentElt = null;\r
+ nextElt = xulElement.parentNode;\r
+ var arrayCheckedbox = null;\r
+ while (nextElt) {\r
+ if (nextElt.localName === "popup") {\r
+ arrayCheckedbox = $("popup[id='"+nextElt.id+"'] checkbox[class='ximfCheckbox'][checked]" );\r
+ // id of parent node\r
+ idTextBox = nextElt.getAttribute('ximfreftextbox');\r
+ parentElt = nextElt;\r
+ // get default parameters\r
+ if (parentElt.hasAttribute(ximfConst._XIMF_ATT_SEPARATOR)) {\r
+ sContentSeparator = parentElt.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ }\r
+ if (parentElt.hasAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR)) {\r
+ sContenTecSeparator = parentElt.getAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR);\r
+ }\r
+ break;\r
+ }\r
+ nextElt = nextElt.parentNode;\r
+ }\r
+ // get value of each checkbox selected\r
+ var ximfvalue = "";\r
+ var value = "";\r
+ var ximftechnicalvalue="";\r
+ var concatvalue = "";\r
+ var ximfconcatvalue = "";\r
+ var ximfconcattechnicalvalue = "";\r
+ var sIds = "";\r
+ var arrayIds = undefined;\r
+ var cElt = undefined;\r
+ for ( var idxChkBx=0 ; idxChkBx < arrayCheckedbox.length; ++idxChkBx) {\r
+ ximfvalue = "";\r
+ value = "";\r
+ ximftechnicalvalue="";\r
+ concatvalue = "";\r
+ ximfconcatvalue = "";\r
+ ximfconcattechnicalvalue = "";\r
+ if (arrayCheckedbox[idxChkBx].hasAttribute("label")) {\r
+ value = arrayCheckedbox[idxChkBx].getAttribute("label");\r
+ }\r
+ if (arrayCheckedbox[idxChkBx].hasAttribute(ximfConst._XIMF_ATT_XVALUE)) {\r
+ ximfvalue = arrayCheckedbox[idxChkBx].getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ }\r
+ if (arrayCheckedbox[idxChkBx].hasAttribute(ximfConst._XIMF_ATT_TEC_VALUE)) {\r
+ ximftechnicalvalue = arrayCheckedbox[idxChkBx].getAttribute(ximfConst._XIMF_ATT_TEC_VALUE);\r
+ }\r
+ // search for XIMF ComplexString\r
+ if (arrayCheckedbox[idxChkBx].hasAttribute(ximfConst._XIMF_ATT_CONCAT_ID)) {\r
+ sIds = arrayCheckedbox[idxChkBx].getAttribute(ximfConst._XIMF_ATT_CONCAT_ID);\r
+ var reg=new RegExp("[+]+", "g");\r
+ arrayIds = sIds.split(reg);\r
+ for (var idxIds=0; idxIds < arrayIds.length; ++idxIds) {\r
+ cElt = document.getElementById(arrayIds[idxIds]);\r
+ if (cElt) {\r
+ if (cElt.hasAttribute(ximfConst._XIMF_ATT_SEPARATOR)) {\r
+ sConcatSeparator = cElt.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ }\r
+ if (cElt.hasAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR)) {\r
+ sConcatTecSeparator = cElt.getAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR);\r
+ }\r
+ if (cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE)) {\r
+ if (concatvalue === "") {\r
+ concatvalue = cElt.getAttribute("label") + sConcatSeparator;\r
+ ximfconcatvalue = cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE) + sConcatSeparator ;\r
+ if (cElt.hasAttribute(ximfConst._XIMF_ATT_TEC_VALUE)) {\r
+ ximfconcattechnicalvalue = cElt.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE) + sConcatTecSeparator;\r
+ }\r
+ } else {\r
+ concatvalue = concatvalue + cElt.getAttribute("label") + sConcatSeparator;\r
+ ximfconcatvalue = ximfconcatvalue + cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE) + sConcatSeparator;\r
+ if (cElt.hasAttribute(ximfConst._XIMF_ATT_TEC_VALUE)) {\r
+ ximfconcattechnicalvalue = ximfconcattechnicalvalue + cElt.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE) + sConcatTecSeparator;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if (sValues !== "") {\r
+ sValues = sValues + sContentSeparator + concatvalue + value;\r
+ sXimfValues = sXimfValues + sContentSeparator + ximfconcatvalue + ximfvalue ;\r
+ if (ximfconcattechnicalvalue !== "" || ximftechnicalvalue !== "") {\r
+ sXimfTechnicalValues = sXimfTechnicalValues + sContenTecSeparator + ximfconcattechnicalvalue + ximftechnicalvalue ;\r
+ }\r
+ } else {\r
+ sValues = concatvalue + value;\r
+ sXimfValues = ximfconcatvalue + ximfvalue;\r
+ if(ximfconcattechnicalvalue !== "" || ximftechnicalvalue !== ""){\r
+ sXimfTechnicalValues = ximfconcattechnicalvalue + ximftechnicalvalue;\r
+ }\r
+ }\r
+ }\r
+ //CheckXimfhdrsSelection for input values\r
+ arrayTextbox = $("popup[id='"+parentElt.id+"'] textbox[class='ximfInputbox']" );\r
+ for ( var idxTxtBx=0 ; idxTxtBx < arrayTextbox.length; ++idxTxtBx) {\r
+ concatvalue = "";\r
+ ximfconcatvalue = "";\r
+ // search for XIMF ComplexString\r
+ if (arrayTextbox[idxTxtBx].hasAttribute(ximfConst._XIMF_ATT_CONCAT_ID)) {\r
+ sIds = arrayTextbox[idxTxtBx].getAttribute(ximfConst._XIMF_ATT_CONCAT_ID);\r
+ var regId=new RegExp("[+]+", "g");\r
+ arrayIds = sIds.split(regId);\r
+ for (var k=0; k<arrayIds.length; ++k) {\r
+ cElt = document.getElementById(arrayIds[k]);\r
+ if (cElt) {\r
+ if (cElt.hasAttribute(ximfConst._XIMF_ATT_SEPARATOR)) {\r
+ sConcatSeparator = cElt.getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ }\r
+ if (cElt.hasAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR)) {\r
+ sConcatTecSeparator = cElt.getAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR);\r
+ }\r
+ if (cElt.getAttribute("label")) {\r
+ if (concatvalue === "") {\r
+ concatvalue = cElt.getAttribute("label") + sConcatSeparator;\r
+ ximfconcatvalue = cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE) + sConcatSeparator ;\r
+ ximfconcattechnicalvalue = cElt.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE);\r
+ } else {\r
+ concatvalue = concatvalue + cElt.getAttribute("label") + sConcatSeparator;\r
+ ximfconcatvalue = ximfconcatvalue + cElt.getAttribute(ximfConst._XIMF_ATT_XVALUE) + sConcatSeparator;\r
+ ximfconcattechnicalvalue = ximfconcattechnicalvalue + sConcatTecSeparator + cElt.getAttribute(ximfConst._XIMF_ATT_TEC_VALUE) ;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // save edit entry\r
+ var sInValues = arrayTextbox[idxTxtBx].value;\r
+ var reg=new RegExp("[\n]+", "g");\r
+ var arrayValues = sInValues.split(reg);\r
+ var valuelist = "";\r
+ var valueXimflist = "";\r
+ for (var i=0; i<arrayValues.length; ++i) {\r
+ if (arrayValues[i] !== "") {\r
+ if (valuelist === "") {\r
+ valuelist = concatvalue + arrayValues[i];\r
+ valueXimflist = ximfconcatvalue + arrayValues[i];\r
+ } else {\r
+ valuelist = valuelist + sContentSeparator + concatvalue + arrayValues[i];\r
+ valueXimflist = valueXimflist + sContentSeparator + ximfconcatvalue + arrayValues[i];\r
+ }\r
+ }\r
+ }\r
+ // add new edit entry\r
+ if (valuelist !== "") {\r
+ if (sValues !== "") {\r
+ sValues = sValues + sContentSeparator + valuelist;\r
+ sXimfValues = sXimfValues + sContentSeparator + valueXimflist ;\r
+ } else {\r
+ sValues = valuelist;\r
+ sXimfValues = valueXimflist;\r
+ }\r
+ // technical values\r
+ if (ximfconcattechnicalvalue !== "") {\r
+ if (sXimfTechnicalValues !== "") {\r
+ sXimfTechnicalValues = sXimfTechnicalValues + sContenTecSeparator + ximfconcattechnicalvalue ;\r
+ } else {\r
+ sXimfTechnicalValues = ximfconcattechnicalvalue;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ // set values to textbox\r
+ var txt = document.getElementById(idTextBox);\r
+ txt.value = sValues;\r
+ txt.setAttribute("ximfvalue",sXimfValues);\r
+ txt.setAttribute(ximfConst._XIMF_ATT_TEC_VALUE,sXimfTechnicalValues);\r
+ txt.setAttribute(ximfConst._XIMF_ATT_SEPARATOR,sContentSeparator);\r
+ txt.setAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR,sContenTecSeparator);\r
+ CheckXimfhdrsSelection();\r
+ } catch (e) {\r
+ }\r
+}\r
+/*\r
+ * Check elements of panel and update accessibility of elements\r
+ */\r
+function ComputePanelOfCheckboxSelection(idCheckbox){\r
+ try {\r
+ // get informations of panel\r
+ var pnl = document.getElementById(idCheckbox);\r
+ while (pnl.localName !== "panel") {\r
+ pnl = pnl.parentNode;\r
+ }\r
+ // check for selected item number\r
+ var nbItems = $(pnl).attr("ximfmaxitem");\r
+ var richitems = $("#" + pnl.id + " richlistbox" ).children("richlistitem");\r
+ var nbchkedboxes = 0;\r
+ var chk1 = undefined;\r
+ var eltsChild = undefined;\r
+ for (idxRchItm=0; idxRchItm<richitems.length; ++idxRchItm) {\r
+ chk1 = richitems[idxRchItm].firstElementChild;\r
+ if (chk1.localName === "checkbox") {\r
+ if(chk1.checked){\r
+ eltsChild = richitems[idxRchItm].getElementsByTagName("checkbox");\r
+ var cptChk = 0;\r
+ for (var idxEltChild=0 ; idxEltChild < eltsChild.length; ++idxEltChild) {\r
+ if (eltsChild[idxEltChild].hasAttribute("checked")) {\r
+ cptChk++;\r
+ }\r
+ }\r
+ nbchkedboxes = nbchkedboxes + cptChk;\r
+ if (cptChk > 1) {\r
+ nbchkedboxes = nbchkedboxes - 1;\r
+ }\r
+ // Compstring flag, if true, child value must be filled\r
+ var ximfChild = false;\r
+ if (richitems[idxRchItm].hasAttribute("ximfchild")) {\r
+ if (richitems[idxRchItm].getAttribute("ximfchild") === "true") {\r
+ $(chk1).attr("ximfchild","true");\r
+ }\r
+ }\r
+ }else{\r
+ $(chk1).removeAttr("ximfchild");\r
+ }\r
+ }\r
+ }\r
+ var chkboxes = $("#" + pnl.id + " checkbox" );\r
+ // enable/disable items that can be selected\r
+ if (nbchkedboxes < nbItems) {\r
+ // other items can be selected\r
+ $(chkboxes).attr("disabled","false");\r
+ for (i=0 ; i<richitems.length; ++i) {\r
+ chk1 = richitems[i].firstElementChild;\r
+ if (chk1.localName === "checkbox" && !chk1.checked) {\r
+ eltsChild = richitems[i].getElementsByTagName("checkbox");\r
+ for (j = 0 ; j < eltsChild.length; ++j) {\r
+ $(eltsChild[j]).removeAttr("checked");\r
+ $(eltsChild[j]).attr("disabled","true");\r
+ }\r
+ $(chk1).attr("disabled","false");\r
+ }\r
+ }\r
+ } else {\r
+ // max selection is selected, disable others items\r
+ for (i=0 ; i<richitems.length; ++i) {\r
+ chk1 = richitems[i].firstElementChild;\r
+ if (chk1.localName === "checkbox") {\r
+ eltsChild = richitems[i].getElementsByTagName("checkbox");\r
+ if (!chk1.checked) {\r
+ $(chk1).removeAttr("ximfchild");\r
+ for (j=0 ; j < eltsChild.length; ++j) {\r
+ $(eltsChild[j]).removeAttr("checked");\r
+ $(eltsChild[j]).attr("disabled","true");\r
+ }\r
+ } else {\r
+ // disable composed items\r
+ if (eltsChild.length > 1) {\r
+ var intCpt = 0;\r
+ for (j=0; j < eltsChild.length; ++j) {\r
+ if (eltsChild[j].hasAttribute("checked")) {\r
+ intCpt++;\r
+ }\r
+ }\r
+ switch (intCpt) {\r
+ case 1:\r
+ for (j=0 ; j < eltsChild.length; ++j) {\r
+ $(eltsChild[j]).attr("disabled","false");\r
+ }\r
+ chk1.checked = true;\r
+ break;\r
+ case 2:\r
+ for (j=0 ; j < eltsChild.length; ++j) {\r
+ if(!eltsChild[j].hasAttribute("checked")) {\r
+ $(eltsChild[j]).attr("disabled","true");\r
+ }\r
+ }\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ XimfailComposeCanClose();\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - ComputePanelOfCheckboxSelection ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Check item group - more than 1 element must be selected\r
+ */\r
+function IsAcceptableXimfCompstring(idCompstring) {\r
+ try {\r
+ var isAcceptableCompstring = false;\r
+ //\r
+ var siblingElement = document.getElementById(idCompstring).nextElementSibling;\r
+ if (siblingElement) {\r
+ if (siblingElement.localName === "textbox") {\r
+ if (siblingElement.value !== "") {\r
+ isAcceptableCompstring = true;\r
+ }\r
+ } else {\r
+ // search for textboxes\r
+ var childTxtboxList = siblingElement.getElementsByTagName("textbox");\r
+ for (i=0 ; i<childTxtboxList.length ; ++i) {\r
+ if (childTxtboxList[i].value !== "") {\r
+ isAcceptableCompstring = true;\r
+ break;\r
+ }\r
+ }\r
+ if (!isAcceptableCompstring) {\r
+ // search for checkboxes\r
+ var childCheckBoxList = siblingElement.getElementsByTagName("checkbox");\r
+ for (i=0 ; i<childCheckBoxList.length ; ++i) {\r
+ if(childCheckBoxList[i].checked) {\r
+ isAcceptableCompstring = true;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - IsAcceptableXimfCompstring ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ return isAcceptableCompstring;\r
+}\r
+/*\r
+ * Delete all values of ximfmail element\r
+ */\r
+ function EraseAndComputeXimfhdrsTextbox (idTextBox) {\r
+ try {\r
+ var eltTextbox = document.getElementById(idTextBox);\r
+ // datepicker case\r
+ if (eltTextbox.localName === "datepicker") {\r
+ eltTextbox._input.value = "";\r
+ eltTextbox.gPopup.value = null;\r
+ return;\r
+ }\r
+ eltTextbox.value = "";\r
+ eltTextbox.setAttribute(ximfConst._XIMF_ATT_XVALUE,"");\r
+ if (eltTextbox.hasAttribute(ximfConst._XIMF_ATT_TEC_VALUE)) {\r
+ eltTextbox.setAttribute(ximfConst._XIMF_ATT_TEC_VALUE,"");\r
+ }\r
+ // raz panel selections\r
+ $("panel[id='"+ eltTextbox.getAttribute("refpanel")+"'] checkbox").removeAttr("checked");\r
+ $("panel[id='"+ eltTextbox.getAttribute("refpanel")+"'] checkbox").removeAttr("disabled");\r
+ var listTxtbox = $("panel[id='"+ eltTextbox.getAttribute("refpanel")+"'] textbox");\r
+ for (i=0;i<listTxtbox.length;++i) {\r
+ listTxtbox[i].value="";\r
+ }\r
+ // delete repanel of linked values\r
+ menu_link = $("panel[id='"+ eltTextbox.getAttribute("refpanel")+"'] menuitem[linkpopupbox]");\r
+ if (menu_link.length > 0) {\r
+ for (i=0 ; i<menu_link.length ; ++i) {\r
+ try {\r
+ var popupset = document.getElementById($(menu_link[i]).attr("linkpopupbox"));\r
+ var txtbox = document.getElementById(popupset.getAttribute(ximfConst._XIMF_ATT_REF_BOX));\r
+ EraseAndComputeXimfhdrsTextbox(popupset.getAttribute(ximfConst._XIMF_ATT_REF_BOX));\r
+ txtbox.setAttribute("refpanel","");\r
+ $("textbox[id='"+popupset.getAttribute(ximfConst._XIMF_ATT_REF_BOX)+"'] button").attr("refpanel","");\r
+ } catch(e) {}\r
+ }\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - eraseXimfmailTextbox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Compute DOM with datas (used to load draft or template message)\r
+*/\r
+function ComputeWithForm(ximfMessage) {\r
+ if (!ximfMessage instanceof XimfmailMesssage) {\r
+ gConsole.logStringMessage("[ximfmail - ComputeWithForm ] \n parameter of refreshDatas must be a ximfMessage object");\r
+ return false;\r
+ }\r
+ // compute free text type\r
+ // compute time type\r
+ // compute menus type\r
+ try {\r
+ var current_ximfvalue = "";\r
+ var valuemsg = "";\r
+ var valueref = "";\r
+ var xheader_dom = $("label[ximfheader]");\r
+ for (var idx_xheader_dom=0; idx_xheader_dom<xheader_dom.length; ++idx_xheader_dom) {\r
+ var display_box = null;\r
+ try {\r
+ var ximfValue = ximfMessage.getHeaderValue(xheader_dom[idx_xheader_dom].getAttribute("ximfheader"));\r
+ if (ximfValue) {\r
+ // search for value and complete display box\r
+ var display_box_list = $("textbox[refheader='" + xheader_dom[idx_xheader_dom].getAttribute("id") + "']");\r
+ if (!display_box_list) {\r
+ continue;\r
+ }\r
+ for(var i = 0 ; i < display_box_list.length ; ++i){\r
+ if(display_box_list[i].nodeName === "textbox"){\r
+ display_box = display_box_list[i];\r
+ }\r
+ }\r
+ if (!display_box) {\r
+ continue;\r
+ }\r
+ // default values\r
+ $(display_box).attr("value",ximfValue);\r
+ $(display_box).attr("ximfvalue",ximfValue);\r
+ $(display_box).attr("tooltiptext",ximfValue);\r
+ // menuitem value (ilk, linkpopup...)\r
+ var menu_item = $("panel[id='"+$(display_box).attr("refpanel")+"'] menuitem");\r
+ if (menu_item.length > 0) {\r
+ for(var idx_menu_item = 0 ; idx_menu_item < menu_item.length ; ++idx_menu_item){\r
+ try{\r
+ current_ximfvalue = menu_item[idx_menu_item].getAttribute("ximfvalue");\r
+ valuemsg = String_trim(ximfValue.toLowerCase());\r
+ valueref = String_trim(current_ximfvalue.toLowerCase());\r
+ if( valuemsg.indexOf(valueref, 0) !== -1 ){\r
+ //linkpopup manager\r
+ var linkpopup = menu_item[idx_menu_item].getAttribute("linkpopupbox");\r
+ if(linkpopup){\r
+ var targetlnkpopup = $("panel[id='"+linkpopup+"']");\r
+ $("textbox[id='" + targetlnkpopup[0].getAttribute("ximfreftextbox")+"']").attr("refpanel",linkpopup);\r
+ $("textbox[id='" + targetlnkpopup[0].getAttribute("ximfreftextbox")+"'] button[class*='ximfPopup']").attr("refpanel",linkpopup);\r
+ }\r
+ //insert values in textbox\r
+ $(display_box).attr("ximfvalue",current_ximfvalue);\r
+ $(display_box).attr("tooltiptext",menu_item[idx_menu_item].getAttribute("label"));\r
+ display_box.inputField.value = menu_item[idx_menu_item].getAttribute("label");\r
+ //technical value is associated\r
+ try{\r
+ var xtcval = menu_item[idx_menu_item].getAttribute("ximftecvalue");\r
+ if(xtcval){\r
+ display_box.setAttribute("ximftecvalue",xtcval);\r
+ }\r
+ }catch(err){}\r
+ }\r
+ }catch(err){\r
+ gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas ] \n " + err + "\nfile : " + Error().fileName+"\nline : "+err.lineNumber);\r
+ }\r
+ }\r
+ }\r
+ // checkbox value (ilk, linkpopup...)\r
+ var check_item = $("panel[id='"+$(display_box).attr("refpanel")+"'] checkbox");\r
+ if(check_item.length > 0){\r
+ var newximfvalue = "";\r
+ var newtooltiptex = "";\r
+ var newlabel = "";\r
+ var newximftecvalue = "";\r
+ var xSeparator = $("panel[id='"+$(display_box).attr("refpanel")+"']").attr("ximfseparator");\r
+ var xTecSeparator = $("panel[id='"+$(display_box).attr("refpanel")+"']").attr("ximftecseparator");\r
+ var arrayValue = [];\r
+ if(xSeparator){\r
+ var reg=new RegExp("["+xSeparator+"]+", "g");\r
+ arrayValue = ximfValue.split(reg);\r
+ }else{\r
+ arrayValue.push(ximfValue);\r
+ }\r
+ for(var idx_arrayValue=0 ; idx_arrayValue<arrayValue.length ; ++idx_arrayValue){\r
+ var isarrayValueAppend = false;\r
+ for(var idx_check_item = 0 ; idx_check_item < check_item.length ; ++idx_check_item){\r
+ try{\r
+ current_ximfvalue = check_item[idx_check_item].getAttribute("ximfvalue");\r
+ valuemsg = arrayValue[idx_arrayValue].toLowerCase();\r
+ valueref = current_ximfvalue.toLowerCase();\r
+ if( valuemsg === valueref){\r
+ isarrayValueAppend = true;\r
+ check_item[idx_check_item].setAttribute("checked",true);\r
+ //linkpopup manager\r
+ var linkpopup = check_item[idx_check_item].getAttribute("linkpopupbox");\r
+ if(linkpopup){\r
+ var targetpopup = $("panel[id='"+linkpopup+"']");\r
+ $("textbox[id='" + targetpopup[0].getAttribute("ximfreftextbox")+"']").attr("refpanel",linkpopup);\r
+ }\r
+ // save values\r
+ if(xSeparator && newlabel !== ""){\r
+ newlabel += xSeparator + check_item[idx_check_item].getAttribute("label");\r
+ }else{\r
+ newlabel = check_item[idx_check_item].getAttribute("label");\r
+ }\r
+ if(xSeparator && newximfvalue !== ""){\r
+ newximfvalue += xSeparator + current_ximfvalue;\r
+ }else{\r
+ newximfvalue = current_ximfvalue;\r
+ }\r
+ if(xSeparator && newtooltiptex !== ""){\r
+ newtooltiptex += xSeparator + check_item[idx_check_item].getAttribute("label");\r
+ }else{\r
+ newtooltiptex = check_item[idx_check_item].getAttribute("label");\r
+ }\r
+ //technical value is associated\r
+ var xtcval = check_item[idx_check_item].getAttribute("ximftecvalue");\r
+ if(xtcval){\r
+ if(xTecSeparator && newximftecvalue !== ""){\r
+ newximftecvalue += xTecSeparator + xtcval;\r
+ }else{\r
+ newximftecvalue = xtcval;\r
+ }\r
+ }\r
+ }\r
+ }catch(err){\r
+ gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas ] \n " + err + "\nfile : " + Error().fileName+"\nline : "+err.lineNumber);\r
+ }\r
+ }\r
+ if (!isarrayValueAppend && arrayValue[idx_arrayValue] !== "") {\r
+ if (xSeparator && newlabel !== "") {\r
+ newlabel += xSeparator + arrayValue[idx_arrayValue];\r
+ } else {\r
+ newlabel = arrayValue[idx_arrayValue];\r
+ }\r
+ if (xSeparator && newximfvalue !== "") {\r
+ newximfvalue += xSeparator + arrayValue[idx_arrayValue];\r
+ } else {\r
+ newximfvalue = arrayValue[idx_arrayValue];\r
+ }\r
+ if (xSeparator && newtooltiptex !== "") {\r
+ newtooltiptex += xSeparator + arrayValue[idx_arrayValue];\r
+ } else {\r
+ newtooltiptex = arrayValue[idx_arrayValue];\r
+ }\r
+ }\r
+ }\r
+ //insert values in textbox\r
+ if (newximfvalue !== "") {\r
+ $(display_box).attr("ximfvalue",newximfvalue);\r
+ }\r
+ if (newtooltiptex !== "") {\r
+ $(display_box).attr("tooltiptext",newtooltiptex);\r
+ }\r
+ if (newlabel !== "") {\r
+ display_box.inputField.value = newlabel;\r
+ }\r
+ if (newximftecvalue !== "") {\r
+ $(display_box).attr("ximftecvalue",newximftecvalue);\r
+ }\r
+ if (xTecSeparator !== "") {\r
+ $(display_box).attr("ximftecseparator",xTecSeparator);\r
+ }\r
+ if (xSeparator !== "") {\r
+ $(display_box).attr("ximfseparator",xSeparator);\r
+ }\r
+ }\r
+ // button value (ilk, linkpopup...)\r
+ var button_item = $("panel[id='"+$(display_box).attr("refpanel")+"'] button");\r
+ if (button_item.length > 0) {\r
+ for (var idx_button_item = 0 ; idx_button_item < button_item.length ; ++idx_button_item) {\r
+ try {\r
+ current_ximfvalue = button_item[idx_button_item].getAttribute("ximfvalue");\r
+ if (current_ximfvalue !== "") {\r
+ valuemsg = String_trim(ximfValue.toLowerCase());\r
+ valueref = String_trim(current_ximfvalue.toLowerCase());\r
+ if ( valuemsg.indexOf(valueref, 0) !== -1 ) {\r
+ //linkpopup manager\r
+ var linkpopup = button_item[idx_button_item].getAttribute("linkpopupbox");\r
+ if (linkpopup) {\r
+ var targetpopup = $("panel[id='"+linkpopup+"']");\r
+ $("textbox[id='" + targetpopup[0].getAttribute("ximfreftextbox")+"']").attr("refpanel",linkpopup);\r
+ }\r
+ //insert values in textbox\r
+ $(display_box).attr("ximfvalue",current_ximfvalue);\r
+ $(display_box).attr("tooltiptext",button_item[idx_button_item].getAttribute("label"));\r
+ display_box.inputField.value = button_item[idx_button_item].getAttribute("label");\r
+ //technical value is associated\r
+ try {\r
+ var xtcval = button_item[idx_button_item].getAttribute("ximftecvalue");\r
+ if (xtcval) {\r
+ $(display_box).attr("ximftecvalue",xtcval);\r
+ }\r
+ } catch (err) {}\r
+ }\r
+ }\r
+ } catch (err) {\r
+ gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas ] \n " + err + "\nfile : " + Error().fileName+"\nline : "+err.lineNumber);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ }\r
+ // load free text values\r
+ xheader_dom = $("textbox[class='ximfEditor']");\r
+ var ximfValue = "";\r
+ for (var idxXmfEdtr=0; idxXmfEdtr<xheader_dom.length; ++idxXmfEdtr) {\r
+ try {\r
+ var oriTxtboxId = xheader_dom[idxXmfEdtr].getAttribute("ximfreftextbox");\r
+ var ximfLabelId = $("textbox[id='"+oriTxtboxId+"']").attr("refheader");\r
+ if (ximfLabelId) {\r
+ ximfValue = ximfMessage.getHeaderValue($("label[id='"+ximfLabelId+"']").attr("ximfheader"));\r
+ if (ximfValue) {\r
+ xheader_dom[idxXmfEdtr].setAttribute("value",ximfValue);\r
+ }\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ }\r
+ // load address values\r
+ xheader_dom = $("ximfaddress");\r
+ var refHeader = "";\r
+ for(var idxXmfAddr=0; idxXmfAddr<xheader_dom.length; ++idxXmfAddr){\r
+ try {\r
+ refHeader = xheader_dom[idxXmfAddr].getAttribute(ximfConst._XIMF_ATT_REF_HEADER);\r
+ if (refHeader) {\r
+ ximfValue = ximfMessage.getHeaderValue($("label[id='" + refHeader + "']").attr("ximfheader"));\r
+ if (ximfValue) {\r
+ xheader_dom[idxXmfAddr].listaddress = ximfValue;\r
+ }\r
+ }\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ }\r
+ // load datetime values\r
+ xheader_dom = $("textbox[class='ximfDatetime']");\r
+ for (var idxXmfDtm=0; idxXmfDtm<xheader_dom.length; ++idxXmfDtm) {\r
+ try {\r
+ refHeader = xheader_dom[idxXmfDtm].getAttribute(ximfConst._XIMF_ATT_REF_HEADER);\r
+ if (refHeader) {\r
+ ximfValue = ximfMessage.getHeaderValue($("label[id='" + refHeader + "']").attr("ximfheader"));\r
+ if (ximfValue) {\r
+ var thisDate = ConvertZTimeToLocal(ximfValue);\r
+ if (!thisDate) {\r
+ thisDate = ximfValue;\r
+ }\r
+ // load date\r
+ xheader_dom[idxXmfDtm].setAttribute("value",thisDate );\r
+ xheader_dom[idxXmfDtm].setAttribute("ximfvalue", ximfValue);\r
+ }\r
+ }\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ }\r
+ CheckXimfhdrsSelection();\r
+ } catch(e) {\r
+ gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * XIMF RULES AND DOM\r
+ */\r
+function ExecuteXimfHdrsMandatoryRule() {\r
+ var isRuleOk=true;\r
+ //color tab container\r
+ var panelHdrs = $("tabpanel[class='ximfpane']");\r
+ for(var idx_panelHdrs = 0 ; idx_panelHdrs < panelHdrs.length ; ++idx_panelHdrs){\r
+ //raz tab element\r
+ idXimfPanel = panelHdrs[idx_panelHdrs].getAttribute("id");\r
+ idXimfTap = "tab" + idXimfPanel;\r
+ var cTab = $("tab[id='"+ idXimfTap +"']");\r
+ cTab[0].removeAttribute("ismandatory");\r
+ // CheckXimfhdrsSelection for mandatory elements\r
+ var mandatoriesHdrs = $("tabpanel[id='"+ idXimfPanel + "'] label[ximfmandatory='true']");\r
+ for(var i=0; i<mandatoriesHdrs.length; ++i){\r
+ if($("textbox[refheader='"+mandatoriesHdrs[i].getAttribute("id")+"']").attr("ximfvalue") === ""){\r
+ mandatoriesHdrs[i].setAttribute("style","color:#b20000;");\r
+ cTab[0].setAttribute("ismandatory","true");\r
+ isRuleOk = false;\r
+ }else{\r
+ mandatoriesHdrs[i].setAttribute("style","color:inherit;");\r
+ }\r
+ }\r
+ }\r
+ return isRuleOk;\r
+}\r
+/*\r
+ * XIMF RULES AND DOM\r
+ */\r
+function ExecuteXimfHdrsAssociationRule() {\r
+ var isRuleOk=true;\r
+ var isAlertDisplayed=false;\r
+ var associateArray = gXimfHdrs.getXimfAssociatedHdrArray();\r
+ if (!associateArray) {\r
+ return isRuleOk;\r
+ }\r
+ // label to prompt\r
+ // internationalisation\r
+ var sAlertLabel = "";\r
+ try{\r
+ var gBundle = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService);\r
+ var stringBundle = gBundle.createBundle("chrome://ximfmail/locale/ximfmail.properties");\r
+ sAlertLabel = stringBundle.GetStringFromName("ximf-association-alert-label");\r
+ }catch(err){\r
+ sAlertLabel = "Datas will be deleted!";\r
+ }\r
+ var reg=new RegExp("[&]+", "g");\r
+ for(var i=0; i<associateArray.length; ++i){\r
+ var headerRef = $("label[ximfheader='"+associateArray[i]._headerRef+"']").attr("id");\r
+ var valueRef = $("textbox[refheader='"+headerRef+"']").attr("ximfvalue");\r
+ var headerName = $("label[ximfheader='"+associateArray[i]._headerName+"']").attr("id");\r
+ var valueName = $("textbox[refheader='"+headerName+"']").attr("ximfvalue");\r
+ var tabAssociateValueRef =associateArray[i]._valueRef.split(reg);\r
+ var tabAssociateValueName =associateArray[i]._valueName.split(reg);\r
+ var idTextbox = $("textbox[refheader='"+headerName+"']").attr("id");\r
+ // list of menuitems\r
+ var tabItems = $("panel[ximfreftextbox='"+idTextbox+"'] menuitem");\r
+ if(valueRef !== ""){\r
+ for(var j=0; j<tabAssociateValueRef.length; ++j){\r
+ if(valueRef === tabAssociateValueRef[j]){\r
+ if(tabAssociateValueName[j].lastIndexOf(valueName) === -1 ){\r
+ if(valueName !== "" && !isAlertDisplayed){\r
+ // ask for delete datas\r
+ ximfAlert(sAlertLabel);\r
+ isAlertDisplayed = true;\r
+ }\r
+ EraseAndComputeXimfhdrsTextbox($("textbox[refheader='"+headerName+"']").attr("id"));\r
+ }\r
+ for(var idx_tabItems=0; idx_tabItems<tabItems.length; ++idx_tabItems){\r
+ if(tabAssociateValueName[j].lastIndexOf(tabItems[idx_tabItems].getAttribute("ximfvalue")) === -1){\r
+ tabItems[idx_tabItems].setAttribute("disabled","true");\r
+ tabItems[idx_tabItems].parentNode.setAttribute("ximfenable","false"); // css style\r
+ }else{\r
+ tabItems[idx_tabItems].removeAttribute("disabled");\r
+ tabItems[idx_tabItems].parentNode.setAttribute("ximfenable","true"); // css style\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }else{\r
+ for(var idx_tabItems=0; idx_tabItems<tabItems.length; ++idx_tabItems){\r
+ tabItems[idx_tabItems].setAttribute("disabled","true");\r
+ tabItems[idx_tabItems].parentNode.setAttribute("ximfenable","false"); // css style\r
+\r
+ if(valueName !== "" && !isAlertDisplayed){\r
+ // ask for delete datas\r
+ ximfAlert(sAlertLabel);\r
+ isAlertDisplayed = true;\r
+ }\r
+ EraseAndComputeXimfhdrsTextbox($("textbox[refheader='"+headerName+"']").attr("id"));\r
+ }\r
+ }\r
+ }\r
+ return isRuleOk;\r
+}\r
+/*\r
+ * XIMF RULES AND DOM : manage default values\r
+ */\r
+function ExecuteXimfHdrsDefaultValuesRule() {\r
+ try{\r
+ // get default value in ximfHdr\r
+ var textboxXimfHdrs = $("textbox[class='XimfTextboxDisplay']");\r
+ for (var i=0; i<textboxXimfHdrs.length; ++i) {\r
+ try{\r
+ var refDefaultItemXimfHdr = $("panel[id='" + $(textboxXimfHdrs[i]).attr("refpanel") + "']").attr("ximfdefault");\r
+ if(refDefaultItemXimfHdr && $(textboxXimfHdrs[i]).attr("ximfvalue") === "" ){\r
+ var item = $("#"+refDefaultItemXimfHdr);\r
+ if(item.length > 0){\r
+ $(textboxXimfHdrs[i]).attr("ximfvalue",$(item[0]).attr("ximfvalue"));\r
+ textboxXimfHdrs[i].value = $(item[0]).attr("label");\r
+ var techvalue=$(item[0]).attr("ximftecvalue");\r
+ if(techvalue){\r
+ $(textboxXimfHdrs[i]).attr("ximftecvalue",techvalue);\r
+ }\r
+ }else{\r
+ $(textboxXimfHdrs[i]).attr("ximfvalue",refDefaultItemXimfHdr);\r
+ textboxXimfHdrs[i].value = refDefaultItemXimfHdr;\r
+ }\r
+ }\r
+ }catch(err){}\r
+ }\r
+ }catch(err){\r
+ gConsole.logStringMessage("[ximfmail - ExecuteXimfHdrsDefaultValuesRule ] \n " + err + "\nfile : " + Error().fileName+"\nline : "+err.lineNumber);\r
+ }\r
+}\r
+/*\r
+ * Init non generic rules\r
+ * FT 3504\r
+ */\r
+function InitSpecialXimfRules() {\r
+ try{\r
+ // load special rules\r
+ var specialRulesArray = gXimfHdrs.getSpecialRulesArray();\r
+ for(var i=0 ; i < specialRulesArray.length ; ++i){\r
+ // search for ximf value\r
+ var nameHeader = specialRulesArray[i]._headerName;\r
+ var refHeader = specialRulesArray[i]._headerRef;\r
+ var targetName = specialRulesArray[i]._targetName;\r
+ switch(targetName){\r
+ case XIMF_RULE_TARGET_NAME_MANDATORY_HEADERS:\r
+ gConsole.logStringMessage("[ximfmail - InitSpecialXimfRules ] load special rule " + targetName);\r
+ SpecialMandatoryHeaders(nameHeader,refHeader);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - InitSpecialXimfRules ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+}\r
+/*\r
+ *\r
+ */\r
+function AppendESSSecuityLabel () {\r
+ var essArray = gXimfHdrs.getESSSecurityLabelHdrArray();\r
+ if (!essArray) {\r
+ return;\r
+ }\r
+ if (essArray.length <= 0) {\r
+ return;\r
+ }\r
+ if (!gSMFields) {\r
+ return;\r
+ }\r
+ try{\r
+ var essLabels = CreateDOMWithXimfInstance(gXimfHdrs.getXimfInstanceResource(),ximfConst.CHROME_XSL_SECURITY_LABEL);\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - AppendESSSecuityLabel ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ return false;\r
+ }\r
+ try{\r
+ var ximftexboxArray = $("#ximfmailComposeMessageHeadersTablist textbox");\r
+ var ximfhiddenlabelArray = $("#ximfmailComposeMessageHeadersTablist label[class='ximfHiddenHeader']");\r
+ var elt = null;\r
+ var sXimfValue = null;\r
+ var sXimfLabel = null;\r
+ var sXimfSeparator = null;\r
+ var sXimfTecSeparator = null;\r
+ var refHeader = null;\r
+ var refValue =null;\r
+ var nameValue = null;\r
+ var sXimfHeader = null;\r
+ var item = undefined;\r
+ for(var i=0 ; i < essArray.length ; ++i){\r
+ // search for ximf value\r
+ sXimfValue = null;\r
+ sXimfLabel = null;\r
+ sXimfSeparator = null;\r
+ sXimfTecSeparator = null;\r
+ refHeader = essArray[i]._headerRef;\r
+ refValue = essArray[i]._valueRef;\r
+ nameValue = essArray[i]._valueName;\r
+ for(var j=0 ; j < ximftexboxArray.length; ++j ){\r
+ sXimfHeader = $("label[id='" + ximftexboxArray[j].getAttribute(ximfConst._XIMF_ATT_REF_HEADER) + "']").attr("ximfheader");\r
+ if(refHeader === sXimfHeader){\r
+ sXimfValue = ximftexboxArray[j].getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ sXimfSeparator = ximftexboxArray[j].getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ break;\r
+ }\r
+ //technical header case\r
+ sXimfHeader = $("label[id='" + ximftexboxArray[j].getAttribute(ximfConst._XIMF_ATT_REF_HEADER) + "']").attr("ximftecheader");\r
+ if(refHeader === sXimfHeader){\r
+ sXimfValue = ximftexboxArray[j].getAttribute(ximfConst._XIMF_ATT_TEC_VALUE);\r
+ sXimfSeparator = ximftexboxArray[j].getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ sXimfLabel = ximftexboxArray[j].getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ sXimfTecSeparator = ximftexboxArray[j].getAttribute(ximfConst._XIMF_ATT_TEC_SEPARATOR);\r
+ break;\r
+ }\r
+ }\r
+ if(!sXimfValue){\r
+ for(var idx_ximfhiddenlabelArray=0 ; idx_ximfhiddenlabelArray < ximfhiddenlabelArray.length; ++idx_ximfhiddenlabelArray ){\r
+ sXimfHeader = ximfhiddenlabelArray[idx_ximfhiddenlabelArray].getAttribute("ximfheader");\r
+ if(refHeader === sXimfHeader){\r
+ sXimfValue = ximfhiddenlabelArray[idx_ximfhiddenlabelArray].getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ sXimfSeparator = ximfhiddenlabelArray[idx_ximfhiddenlabelArray].getAttribute(ximfConst._XIMF_ATT_SEPARATOR);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ //search valueName if refValue defined\r
+ if (refValue) {\r
+ var regrfVal=new RegExp("[&]+", "g");\r
+ var arrayRefValue = refValue.split(regrfVal);\r
+ var arrayNameValue = nameValue.split(regrfVal);\r
+ for (var idxArrayRefValue=0; idxArrayRefValue<arrayRefValue.length; ++idxArrayRefValue) {\r
+ if (arrayRefValue[idxArrayRefValue] === sXimfValue && arrayNameValue[idxArrayRefValue]) {\r
+ sXimfValue = arrayNameValue[idxArrayRefValue];\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ // add label to sign it\r
+ switch(essArray[i]._headerName) {\r
+ case "SecurityPolicyIdentifier":\r
+ //Security Policy Identifier\r
+ if (sXimfValue === "") {\r
+ gSMFields.securityClassification = -1;\r
+ gSMFields.privacyMark = "";\r
+ gSMFields.securityCategories = "";\r
+ } else {\r
+ gSMFields.securityPolicyIdentifier = sXimfValue;\r
+ if (essLabels) {\r
+ elt = essLabels.childNodes[0].getElementsByTagName("securityPolicyIdentifier");\r
+ elt[0].setAttribute("value",sXimfValue);\r
+ if(sXimfLabel){\r
+ elt[0].setAttribute("label",sXimfLabel);\r
+ }else{\r
+ elt[0].setAttribute("label",sXimfValue);\r
+ }\r
+ }\r
+ }\r
+ break;\r
+ case "SecurityClassification":\r
+ // Security Classification\r
+ // values must be 0,1,2,3,4 or 5 (RFC 2634)\r
+ if (sXimfValue === "") {\r
+ break;\r
+ }\r
+ if (sXimfValue >= 0 && sXimfValue <= 5) {\r
+ gSMFields.securityClassification = sXimfValue;\r
+ if (essLabels) {\r
+ elt = essLabels.childNodes[0].getElementsByTagName("securityClassification");\r
+ item = elt[0].getElementsByTagName("item");\r
+ for (var k=0; k<item.length; ++k) {\r
+ if (item[k].getAttribute("value") === sXimfValue){\r
+ item[k].setAttribute("ximf",sXimfLabel);\r
+ }\r
+ }\r
+ }\r
+ }else{\r
+ gSMFields.securityClassification = -1;\r
+ }\r
+ break;\r
+ case "ESSPrivacyMark": // Privacy Mark\r
+ gSMFields.privacyMark = sXimfValue;\r
+ if (essLabels) {\r
+ elt = essLabels.childNodes[0].getElementsByTagName("privacyMark");\r
+ item = elt[0].getElementsByTagName("item");\r
+ item[0].setAttribute("value",sXimfValue);\r
+ }\r
+ break;\r
+ case "SecurityCategory":\r
+ // Security Categories\r
+ // format to load : oid|type|value name e.g. 0.0.0|1|value|0.0.0.1|2|value\r
+ var categories = "";\r
+ var regtec = new RegExp("["+sXimfTecSeparator+"]+", "g");\r
+ var reg = new RegExp("["+sXimfSeparator+"]+", "g");\r
+ if (sXimfValue !== "") {\r
+ var tab_XimfValue = sXimfValue.split(regtec);\r
+ if (sXimfLabel) {\r
+ var tab_XimfLabel = sXimfLabel.split(reg);\r
+ for (var idx_tab_XimfValue=0; idx_tab_XimfValue<tab_XimfValue.length; ++idx_tab_XimfValue) {\r
+ try {\r
+ if (tab_XimfValue[idx_tab_XimfValue] !== "" && tab_XimfLabel[idx_tab_XimfValue] !== "") {\r
+ if (categories !== "") {\r
+ categories += "|";\r
+ }\r
+ //ximftecvalue = "oid,value"\r
+ var regOidValueSep = ","; // FT INT_FT4041\r
+ var tmp = tab_XimfValue[idx_tab_XimfValue];\r
+ var oid = tmp.slice(0,tmp.indexOf(regOidValueSep,0));\r
+ var value = tmp.slice(tmp.indexOf(regOidValueSep,0)+1,tmp.length);\r
+ if (value) {\r
+ var type = null;\r
+ if (essLabels) {\r
+ var elt = essLabels.childNodes[0].getElementsByTagName("securityCategories");\r
+ // get type form rules definition\r
+ type = $(elt).attr("type");\r
+ if (!type) {\r
+ // default value as integer\r
+ type = "2";\r
+ }\r
+ // add values to xml file\r
+ // <item oid="" type="" value="" label=""/>\r
+ item = document.createElement("item");\r
+ item.setAttribute("oid",oid);\r
+ item.setAttribute("type",type);\r
+ item.setAttribute("value",value);\r
+ item.setAttribute("label",tab_XimfLabel[idx_tab_XimfValue]);\r
+ $(elt).append(item);\r
+ }\r
+ categories += oid + "|" + type + "|" + value;\r
+ }\r
+ }\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - AppendESSSecuityLabel - SecurityCategory] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if (categories !== "") {\r
+ gConsole.logStringMessage("SecurityCategories = " + categories);\r
+ gSMFields.securityCategories = categories;\r
+ }\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - AppendESSSecuityLabel ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);\r
+ }\r
+ try{\r
+ // call external trustedBird functions\r
+ securityLabelSetUIStatusBar(gSMFields.securityPolicyIdentifier, gSMFields.securityClassification);\r
+ if (!gSMFields.signMessage) {\r
+ signMessage();\r
+ }\r
+ }catch(e){}\r
+}\r
+/*\r
+ * Check for changes to document and allow saving before closing\r
+ */\r
+function XimfailComposeCanClose() {\r
+ try{\r
+ if (gContentChanged === true) {\r
+ return;\r
+ }\r
+ var charSet = null;\r
+ if(gMsgCompose){\r
+ charSet = gMsgCompose.compFields.characterSet;\r
+ if (!charSet) {\r
+ charSet === msgCompFields.defaultCharacterSet;\r
+ }\r
+ }\r
+ var ximfmailMimeSelection = ReadMimeHeadersSelection( ximfConst.XIMF_ENDLINE, charSet);\r
+ if (ximfmailMimeSelection.length > 0) {\r
+ // used xith ComposeCanClose()\r
+ gContentChanged = true;\r
+ }\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - XimfailComposeCanClose ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
+ }\r
+}\r
+/**\r
+ * Extract Ximf headers from DOM composer and format them to MIME headers\r
+ */\r
+function ReadMimeHeadersSelection(headersSeparator, charSet) {\r
+ var sCompleteList="";\r
+ // send hidden headers elements\r
+ var arrayValues = $("label[class='ximfHiddenHeader']");\r
+ if (arrayValues) {\r
+ for (var idxHdnHdr=0; idxHdnHdr<arrayValues.length; idxHdnHdr++) {\r
+ try {\r
+ if (arrayValues[idxHdnHdr].getAttribute(ximfConst._XIMF_ATT_XVALUE)) {\r
+ sCompleteList += EncodeMimeXimfheader($(arrayValues[idxHdnHdr]).attr("ximfheader"), $(arrayValues[idxHdnHdr]).attr(ximfConst._XIMF_ATT_XVALUE), charSet) + headersSeparator;\r
+ }\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - ximfmailOnSend ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ }\r
+ }\r
+ // send textbox elements\r
+ arrayValues = $("textbox[class='XimfTextboxDisplay']");\r
+ if(arrayValues) {\r
+ for(var idxTxtbxDspl=0; idxTxtbxDspl<arrayValues.length; idxTxtbxDspl++) {\r
+ try {\r
+ if ($(arrayValues[idxTxtbxDspl]).attr(ximfConst._XIMF_ATT_XVALUE)) {\r
+ sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idxTxtbxDspl]).attr(ximfConst._XIMF_ATT_REF_HEADER)).attr("ximfheader"), $(arrayValues[idxTxtbxDspl]).attr(ximfConst._XIMF_ATT_XVALUE), charSet) + headersSeparator;\r
+ if ($(arrayValues[idxTxtbxDspl]).attr(ximfConst._XIMF_ATT_TEC_VALUE)) {\r
+ sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idxTxtbxDspl]).attr(ximfConst._XIMF_ATT_REF_HEADER)).attr("ximftecheader"), $(arrayValues[idxTxtbxDspl]).attr(ximfConst._XIMF_ATT_TEC_VALUE), charSet) + headersSeparator;\r
+ }\r
+ }\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - ximfmailOnSend ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ }\r
+ }\r
+ // send editor elements\r
+ try{\r
+ arrayValues = $("textbox[class='ximfEditor']");\r
+ if(arrayValues) {\r
+ for (var idxEdtr=0; idxEdtr<arrayValues.length; idxEdtr++) {\r
+ if (arrayValues[idxEdtr].value) {\r
+ try {\r
+ sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idxEdtr]).attr(ximfConst._XIMF_ATT_REF_HEADER)).attr("ximfheader"), arrayValues[idxEdtr].value, charSet) + headersSeparator;\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - ximfmailOnSend ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ } catch(e) {\r
+ }\r
+ // send datetime elements\r
+ try {\r
+ arrayValues = $("textbox[class='ximfDatetime']");\r
+ if (arrayValues) {\r
+ for (var idxDttm=0; idxDttm < arrayValues.length; idxDttm++) {\r
+ if (arrayValues[idxDttm].value) {\r
+ try {\r
+ sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idxDttm]).attr(ximfConst._XIMF_ATT_REF_HEADER)).attr("ximfheader"), arrayValues[idxDttm].getAttribute(ximfConst._XIMF_ATT_XVALUE), charSet) + headersSeparator;\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - ximfmailOnSend ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ } catch(e) {}\r
+ // send ximfaddress elements\r
+ try {\r
+ arrayValues = $("#ximfmailComposeMessagePanel ximfaddress");\r
+ if (arrayValues) {\r
+ for (var idxAddr=0; idxAddr<arrayValues.length; idxAddr++) {\r
+ if (arrayValues[idxAddr].listaddress !== "") {\r
+ try {\r
+ sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idxAddr]).attr(ximfConst._XIMF_ATT_REF_HEADER)).attr("ximfheader"), arrayValues[idxAddr].listaddress, charSet) + headersSeparator;\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - ximfmailOnSend ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ } catch(e) {}\r
+ return sCompleteList;\r
+}\r
+function ReadXsmptHeadersTranslation(headerValueSeparator, headersSeparator,charSet) {\r
+ var sCompleteList = "";\r
+ var xsmtpArray = gXimfHdrs.getXsmtpHdrArray();\r
+ if (!xsmtpArray) {\r
+ return;\r
+ }\r
+ // create mandatory xsmpt headers\r
+ try {\r
+ for (var i=0 ; i < xsmtpArray.length ; ++i) {\r
+ if (!xsmtpArray[i]._headerRef) {\r
+ sCompleteList += EncodeMimeXimfheader(xsmtpArray[i]._headerName, xsmtpArray[i]._valueName, charSet) + headersSeparator;\r
+ }\r
+ }\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - AddMandatoryXsmtpHeader ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ // Copy and convert XIMF headers to XSMTP headers\r
+ var ximftexboxArray = $("textbox[class='XimfTextboxDisplay']["+ximfConst._XIMF_ATT_XVALUE+"]");\r
+ var xvalue = "";\r
+ for (var i = 0 ; i < ximftexboxArray.length; ++i ) {\r
+ var sXimfHeader = $("label[class='ximfHeaderLabel'][id='" + ximftexboxArray[i].getAttribute(ximfConst._XIMF_ATT_REF_HEADER) + "']").attr("ximfheader");\r
+ var sXimfValue = ximftexboxArray[i].getAttribute(ximfConst._XIMF_ATT_XVALUE);\r
+ if (sXimfValue !== "") {\r
+ try {\r
+ for (var j=0 ; j < xsmtpArray.length ; ++j) {\r
+ if (xsmtpArray[j]._headerRef === sXimfHeader) {\r
+ xvalue = sXimfValue; // default, copy of XIMF value\r
+ // get for values references\r
+ var reg=new RegExp("[&]+", "g");\r
+ if (xsmtpArray[j]._valueRef) {\r
+ var arrayValRefs = xsmtpArray[j]._valueRef.split(reg);\r
+ var arrayVals = xsmtpArray[j]._valueName.split(reg);\r
+ for (var k=0; k<arrayValRefs.length; ++k) {\r
+ if (arrayValRefs[k] === sXimfValue && arrayVals[k]) {\r
+ xvalue = arrayVals[k];\r
+ break;\r
+ }\r
+ }\r
+ } else {\r
+ if (xsmtpArray[j]._valueName) {\r
+ // default, copy of XIMF value\r
+ xvalue = xsmtpArray[j]._valueName;\r
+ }\r
+ }\r
+ // append line to headers\r
+ sCompleteList += EncodeMimeXimfheader(xsmtpArray[j]._headerName, xvalue, charSet) + headersSeparator;\r
+ }\r
+ }\r
+ } catch (e) {\r
+ gConsole.logStringMessage("[ximfmail - AddXsmtpHeader ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
+ }\r
+ }\r
+ }\r
+ return sCompleteList;\r
+}\r
+/*\r
+ * Security rules are only valid for XIMFMAIL Instances\r
+ */\r
+function ReloadSecurityAccess() {\r
+ // access secure headers\r
+ gCurrentIdentity.setBoolAttribute("secureheaders.checked",false);\r
+ setNoSecureHeaderUI();\r
+ $("#secureHeaderStatus").removeAttr("disabled");\r
+ $("#menu_securitySign1").removeAttr("disabled");\r
+ $("#menu_securitySign2").removeAttr("disabled");\r
+ // access security label\r
+ $("#menu_securityLabelDialog1").removeAttr("checked");\r
+ $("#menu_securityLabelDialog2").removeAttr("checked");\r
+ $("#menu_securityLabelDialog1").removeAttr("disabled");\r
+ $("#menu_securityLabelDialog2").removeAttr("disabled");\r
+}
\ No newline at end of file