1 var contactSelectorAction = 'mailer-contacts';
3 function onContactAdd() {
5 var selectorURL = '?popup=YES&selectorId=mailer-contacts';
7 urlstr = ApplicationBaseURL;
8 if (urlstr[urlstr.length-1] != '/')
10 urlstr += ("../../" + UserLogin + "/Contacts/"
11 + contactSelectorAction + selectorURL);
13 var w = window.open(urlstr, "Addressbook",
14 "width=640,height=400,resizable=1,scrollbars=0");
15 w.selector = selector;
22 function addContact(tag, fullContactName, contactId, contactName, contactEmail) {
23 if (!mailIsRecipient(contactEmail)) {
24 var neededOptionValue = 0;
26 neededOptionValue = 1;
27 else if (tag == "bcc")
28 neededOptionValue = 2;
32 var currentRow = $('row_' + counter);
35 var currentValue = currentRow.childNodesWithTag("span")[1].childNodesWithTag("input")[0].value;
36 if (currentValue == neededOptionValue) {
38 insertContact($("addr_" + counter), contactName, contactEmail);
41 currentRow = $('row_' + counter);
45 fancyAddRow(false, "");
46 $("row_" + counter).childNodesWithTag("span")[0].childNodesWithTag("select")[0].value
48 insertContact($("addr_" + counter), contactName, contactEmail);
53 function mailIsRecipient(mailto) {
54 var isRecipient = false;
57 var currentRow = $('row_' + counter);
59 var email = extractEmailAddress(mailto).toUpperCase();
61 while (currentRow && !isRecipient) {
62 var currentValue = $("addr_"+counter).value.toUpperCase();
63 if (currentValue.indexOf(email) > -1)
68 currentRow = $('row_' + counter);
75 function insertContact(inputNode, contactName, contactEmail) {
76 var value = '' + inputNode.value;
78 var newContact = contactName;
79 if (newContact.length > 0)
80 newContact += ' <' + contactEmail + '>';
82 newContact = contactEmail;
88 inputNode.value = value;
91 function toggleAttachments() {
92 var div = $("attachmentsArea");
93 if (div.style.display)
94 div.style.display = "";
96 div.style.display = "block;";
101 function updateInlineAttachmentList(sender, attachments) {
104 var div = $("attachmentsArea");
106 count = attachments.length;
110 for (var i = 0; i < count; i++) {
111 text = text + attachments[i];
112 text = text + '<br />';
115 var e = $('compose_attachments_list');
117 if (!div.style.display)
118 div.style.display = "block;";
121 div.style.display = "";
125 function validateEditorInput(sender) {
129 field = document.pageform.subject;
130 if (field.value == "")
131 errortext = errortext + labels.error_missingsubject + "\n";
133 if (!UIxRecipientSelectorHasRecipients())
134 errortext = errortext + labels.error_missingrecipients + "\n";
136 if (errortext.length > 0) {
137 alert(labels.error_validationfailed.decodeEntities() + ":\n"
138 + errortext.decodeEntities());
144 function clickedEditorSend(sender) {
145 if (!validateEditorInput(sender))
148 document.pageform.action = "send";
149 document.pageform.submit();
151 window.alert("cocou");
156 function clickedEditorAttach(sender) {
157 var area = $("attachmentsArea");
159 area.setStyle({ display: "block" });
161 var inputs = area.getElementsByTagName("input");
162 var attachmentName = "attachment" + inputs.length;
163 var newAttachment = createElement("input", attachmentName,
164 "currentAttachment", null,
166 name: attachmentName },
168 Event.observe(newAttachment, "change",
169 onAttachmentChange.bindAsEventListener(newAttachment));
174 function onAddAttachment() {
175 var area = $("attachmentsArea");
176 var inputs = area.getElementsByTagName("input");
177 var attachmentName = "attachment" + inputs.length;
178 var newAttachment = createElement("input", attachmentName,
179 "currentAttachment", null,
181 name: attachmentName },
183 Event.observe(newAttachment, "change",
184 onAttachmentChange.bindAsEventListener(newAttachment));
187 function onAttachmentChange(event) {
188 if (this.value == "")
189 this.parentNode.removeChild(this);
191 this.addClassName("attachment");
192 this.removeClassName("currentAttachment");
193 var list = $("attachments");
194 createAttachment(this, list);
198 function createAttachment(node, list) {
199 var attachment = createElement("li", null, null, { node: node }, null, list);
200 createElement("img", null, null, { src: ResourcesURL + "/attachment.gif" },
202 Event.observe(attachment, "click", onRowClick);
204 var filename = node.value;
206 if (navigator.appVersion.indexOf("Windows") > -1)
210 var fileArray = filename.split(separator);
211 var attachmentName = document.createTextNode(fileArray[fileArray.length-1]);
212 attachment.appendChild(attachmentName);
215 function clickedEditorSave(sender) {
216 document.pageform.action = "save";
217 document.pageform.submit();
223 function clickedEditorDelete(sender) {
224 document.pageform.action = "delete";
225 document.pageform.submit();
232 function initMailEditor() {
233 var list = $("attachments");
234 $(list).attachMenu("attachmentsMenu");
235 var elements = list.childNodesWithTag("li");
236 for (var i = 0; i < elements.length; i++)
237 Event.observe(elements[i], "click",
238 onRowClick.bindAsEventListener(elements[i]));
241 function getMenus() {
242 return { "attachmentsMenu": new Array(null, onRemoveAttachments,
243 onSelectAllAttachments,
245 onAddAttachment, null) };
248 function onRemoveAttachments() {
249 var list = $("attachments");
250 var nodes = list.getSelectedNodes();
251 for (var i = nodes.length-1; i > -1; i--) {
252 var input = $(nodes[i]).node;
254 input.parentNode.removeChild(input);
255 list.removeChild(nodes[i]);
258 window.alert("Server attachments not handled");
262 function onSelectAllAttachments() {
263 var list = $("attachments");
264 var nodes = list.childNodesWithTag("li");
265 for (var i = 0; i < nodes.length; i++)
269 window.addEventListener("load", initMailEditor, false);