source: trunk/expressoMail1_2/js/jscode/draw_api_messages.js @ 2705

Revision 2705, 68.7 KB checked in by amuller, 14 years ago (diff)

Ticket #1059 - Diminuição da função draw_message

Line 
1var openTab = {
2        'type' : [], // 8 types of tabs, further info. see expressolivre.org/dev/wiki/mail/Documentacao
3        'content_id' : [],
4        'imapUid' : [], // Stores the imap email number of current tab
5        'countFile' : [0,0,0,0,0,0,0,0,0,0], // Stores the number of files attached in current tab
6        'imapBox' : [], // Stores the folder name
7        'toPreserve' : [], // Check if the message should be removed from draft after send
8        'autosave_timer' : [] // The timeout timer for autosave function
9};
10var tabTypes = {
11        'new':4,
12        'forward':6,
13        'reply_with_history':7,
14        'reply_to_all_with_history':7,
15        'reply_without_history':7,
16        'reply_to_all_without_history':7,
17        'edit':5
18};
19var currentTab,numBox = 0; // Open Tab and num of mailboxes opened at context
20
21// Objeto Map, talvez o ideal fosse adicionar este objeto à Api do egroupware, e carregá-lo
22// aqui no expressoMail.
23function Map()
24{
25        this.keys = new Array();
26        this.values = new Array();
27}
28
29Map.prototype.add = function(key, value)
30{
31        this.keys.push(key);
32        this.values.push(value);
33};
34
35Map.prototype.get = function(key)
36{
37        result = new Array();
38        for (i = 0; i < this.keys.length; i++)
39        {
40                if (this.keys[i] == key)
41                {
42                        result.push(this.values[i]);
43                }
44        }
45
46        if (result.length == 0)
47        {
48                return null;
49        }
50
51        return result;
52};
53
54var translatedFolders = new Map();
55
56
57function draw_header_box(){
58        switch(sort_box_type){
59                case 'SORTFROM':
60                        type_name = get_lang("Who");
61                        break;
62                case 'SORTSUBJECT':
63                        type_name = get_lang("Subject");
64                        break;
65                case 'SORTARRIVAL':
66                        type_name = get_lang("Date");
67                        break;
68                case 'SORTSIZE':
69                        type_name = get_lang("Size");
70                        break;
71                default:
72                        type_name = get_lang("Date");
73                        break;
74        }
75        document.getElementById("message_header_SORTFROM_"+numBox).innerHTML    = get_lang("Who");
76        document.getElementById("message_header_SORTSUBJECT_"+numBox).innerHTML = get_lang("Subject");
77        document.getElementById("message_header_SORTARRIVAL_"+numBox).innerHTML = get_lang("Date");
78        document.getElementById("message_header_SORTSIZE_"+numBox).innerHTML    = get_lang("Size");     
79        document.getElementById("message_header_"+(sort_box_type.lastIndexOf("SORT") != "-1" ? sort_box_type : "SORTARRIVAL")+"_"+numBox ).innerHTML = "<B>"+type_name+'</B><img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/arrow_'+(sort_box_reverse == 1 ? 'desc' : 'asc')+'endant.gif">';
80}
81
82function createNxtPrevButtons(info_msg,ID,folder_id){
83        var next_previous_msg_td = createAndSet("TD",[ "noWrap", "align", "width" ], [ "true", "right", "40px"]);
84        var img_next_msg = createAndSet("IMG", [ 'id', 'src', 'title' ], [
85                        'msg_opt_next_' + ID,
86                        URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/down.button.png',
87                        get_lang('Next') ]);
88        img_next_msg.style.cursor = 'pointer';
89
90        var folder = document.getElementById(folder_id);
91        if (folder){ // mensagem local criptografada nao tem ID da pasta local
92                if (folder.nextSibling){
93                        var nextMsgBox = folder.nextSibling.name?folder.nextSibling.name:info_msg.msg_folder;
94
95                        if (nextMsgBox == "INBOX/decifradas")// teste para ver se a mensagem vem da pasta oculta decifradas
96                                nextMsgBox = get_current_folder();
97
98                        img_next_msg.onclick = function()
99                        {
100                                currentTab = ID;
101                                openTab.type[ID] = 2;
102                                proxy_mensagens.get_msg(folder.nextSibling.id,nextMsgBox,true,show_msg);
103                        };
104                }
105                else
106                {
107                        img_next_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/down.gray.button.png';
108                        img_next_msg.style.cursor = 'default';
109
110                }
111        }
112        else
113        {
114                img_next_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/down.gray.button.png';
115                img_next_msg.style.cursor = 'default';
116                if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(info_msg.msg_folder == "INBOX/decifradas")) // testa se a mensagem e local
117                {
118                        img_next_msg.onclick = function()
119                        {
120                                delete_border(ID);
121                        };
122                }
123        }
124        var img_space = document.createElement("SPAN");
125        img_space.innerHTML = "&nbsp;";
126        var img_previous_msg = createAndSet("IMG",['id','src','title'],['msg_opt_previous_' + ID,
127                        URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/up.button.png',
128                        get_lang('Previous')]);
129        img_previous_msg.style.cursor = 'pointer';
130
131        //folder = document.getElementById(ID.substr(0, ID.indexOf('_')));
132        if (!folder){
133                delete_border(ID);
134                return;
135        }
136        if (folder){ // mensagem local criptografada nao tem ID da pasta local
137                if (folder.previousSibling)
138                {
139                        var previousMsgBox = folder.previousSibling.name?folder.previousSibling.name:info_msg.msg_folder;
140
141                        if (previousMsgBox == "INBOX/decifradas") // teste para ver se a mensagem vem da pasta oculta decifradas
142                                previousMsgBox = get_current_folder();
143
144                        img_previous_msg.onclick = function()
145                        {
146                                currentTab = ID;
147                                openTab.type[ID] = 2;
148                                proxy_mensagens.get_msg(folder.previousSibling.id,previousMsgBox,true,show_msg);
149                        };
150                }
151                else
152                {
153                        img_previous_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/up.gray.button.png';
154                        img_previous_msg.style.cursor = 'default';
155                }
156        }
157        else
158        {
159                img_previous_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/up.gray.button.png';
160                img_previous_msg.style.cursor = 'default';
161                if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(info_msg.msg_folder == "INBOX/decifradas")) // testa se a mensagem e local
162                {
163                        img_previous_msg.onclick = function()
164                        {
165                                delete_border(ID);
166                        };
167                }
168        }
169        next_previous_msg_td.appendChild(img_previous_msg);
170        next_previous_msg_td.appendChild(img_space);
171        next_previous_msg_td.appendChild(img_next_msg);
172        return next_previous_msg_td;
173
174}
175var idx_cc = 0;
176function draw_plugin_cc(ID, addrs)
177{
178    expresso.connector.loadScript("jscode/ccQuickAdd");
179
180    var array_addrs = '';
181    var array_name      = '';
182    var cc_data = new Array();
183    if(typeof(addrs.name) != 'undefined') {
184        array_name      = LTrim(addrs.name).split(" ");
185        array_addrs = new Array(addrs.email);
186    }
187    else {
188        array_addrs = (typeof addrs == 'object' ? addrs.toString().split("\" ") : addrs.split("\" "));
189        array_name      = LTrim(array_addrs[0]).replace('"','').split(" ");
190    }
191
192    var _split = array_name[0].split('@');
193    cc_data[0] = _split[0];
194    cc_data[1] = _split[0];
195    cc_data[2] = '';
196
197    for (i=1; i < array_name.length; i++)
198        cc_data[2] += array_name[i] + " ";
199
200
201    if(array_addrs.length > 1)
202        cc_data[3] = array_addrs[1] ? array_addrs[1].replace("&lt;",'').replace("&gt;",'') : '';
203    else
204        cc_data[3] = array_addrs[0];
205
206    var sm_envelope_img1 = '<img style="cursor:'+ (is_ie ? 'hand' : 'pointer') +'" title="' + get_lang("Add Contact") +
207    '" onclick="ccQuickAddOne.showList(\''+cc_data+'\')" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/user_card.png">';
208    var to_addybook_add = "<SPAN id='insert_plugin_"+idx_cc+"_"+ID+"'>";
209    to_addybook_add += addrs;
210    to_addybook_add +=  sm_envelope_img1;
211    idx_cc++;
212    to_addybook_add += "</SPAN>";
213    return to_addybook_add;
214}
215
216
217function getSignature(ID,info_msg){
218                        var tr_signature = document.createElement("TR");
219                        var td_signature = document.createElement("TD");
220                        td_signature.className = 'tr_message_header';
221                        tr_signature.id = 'tr_signature_'+ID;
222                        td_signature.colSpan = "5";
223                        tr_signature.style.display = 'none';
224
225                        for (i=0; i < info_msg.signature.length; i++)
226                                td_signature.innerHTML += '<span>'+info_msg.signature[i]+'</span> <br /> ';
227                        var signature_status_pos = info_msg.signature[0].indexOf('Message untouched');
228                        td_signature.id = "td_signature_"+ID;
229                        if(signature_status_pos < 0 )
230                        {
231                                td.innerHTML += '&nbsp;<img style="cursor:pointer" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed_error.gif" title="'+get_lang("Details")+'">';
232                                tr_signature.style.display = '';
233                        }
234                        else
235                        {
236                                td.innerHTML += '&nbsp;<img style="cursor:pointer" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed_table.gif" title="'+get_lang("Details")+'">';
237                        }
238                        td.onclick = function(){
239                                var _height = Element("div_message_scroll_"+ID).style.height;
240                                _height = parseInt(_height.replace("px",""));
241                                var _offset = 130;
242                                if (this.value == 'more_cert'){
243                                        //this.innerHTML += "<b><u>Mais Informacoes</u></b>";
244                                        this.value = 'hide_cert';
245                                        Element("div_message_scroll_"+ID).style.height = (_height + _offset)+"px";
246                                        Element('tr_signature_'+ID).style.display = 'none';
247                                        Element('td_signature_'+ID).style.display = 'none';
248
249                                }
250                                else{
251                                        //this.innerHTML += "Mais Informacoes";
252                                        this.value = 'more_cert';
253                                        Element("div_message_scroll_"+ID).style.height = (_height - _offset)+"px";
254                                        Element('tr_signature_'+ID).style.display = '';
255                                        Element('td_signature_'+ID).style.display = '';
256                                }
257                        };
258
259                        tr_signature.appendChild(td_signature);
260                        return tr_signature;
261                        /******************************************* Old signature   ***********************************************/
262                        //if (info_msg.signature != "void")
263                        //      td.innerHTML += '&nbsp;<img style="cursor:pointer" onclick="alert(\''+ get_lang("This message is signed, and you can trust.") + info_msg.signature +'\');" src="'+tpl_img_path+'/signed.gif">';
264                        //else
265                        //      td.innerHTML += "&nbsp;<img style='cursor:pointer' onclick='alert(\""+get_lang("This message is signed, but it is invalid. You should not trust on it.")+"\");' title='"+get_lang("Voided message")+"' src='"+tpl_img_path+"/invalid.gif'>";
266                        /*****************************************                                                                                                                      ********/
267}
268
269function make_options_message(info_msg, tbody_message){
270        var tr0 = document.createElement("TR");
271        tr0.className = "tr_message_header";
272        var td0 = document.createElement("TD");
273        var table_message_options = createAndSet("TABLE",['border','width','class'],["0","100%",'table_message']);
274        var tbody_message_options = document.createElement("TBODY");
275        var tr = document.createElement("TR");
276        var td = document.createElement("TD");
277        td.setAttribute("noWrap","true");
278        var _name = '';
279        var menuHidden = Element("folderscol").style.display == 'none' ? true : false;
280
281        var folder_id = 0;
282        var ID = info_msg.msg_number + "_r";
283        folder_id = info_msg.original_ID ? info_msg.original_ID: info_msg.msg_number;
284        var folder = document.getElementById(folder_id);
285        if (!folder){
286                delete_border(ID);
287                return false;
288        }
289
290        var next_previous_msg_td = createNxtPrevButtons(info_msg,ID,folder_id);
291        if (typeof(next_previous_msg_td) == 'undefined')
292                return false;
293
294
295        var _maxChar = menuHidden ? 40 : 15;
296
297        if (info_msg.from.name)
298        {
299                var spanName = document.createElement("SPAN");
300                spanName.innerHTML = info_msg.from.name;
301                _name = spanName.innerHTML.length > _maxChar ? spanName.innerHTML.substring(0,_maxChar) + "..." : spanName.innerHTML;
302        }
303        else
304                _name = info_msg.from.email.length > _maxChar ? info_msg.from.email.substring(0,_maxChar) + "..." : info_msg.from.email;
305
306        td.innerHTML = _name.bold() + ', ' + info_msg.smalldate;
307        if (info_msg.attachments.length > 0)
308                td.innerHTML += "&nbsp<img style='cursor:pointer' onclick='javascript:Element(\"option_hide_more_"+ID+"\").onclick()' src ='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/clip.gif' title='"+info_msg.attachments.names+"'>";
309
310        if (typeof(info_msg.signature) == 'string')
311        {
312                if (info_msg.signature != "void")
313                        td.innerHTML += '&nbsp;<img style="cursor:pointer" onclick="alert(\''+ get_lang("This message is signed, and you can trust.") + info_msg.signature +'\');" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed.gif">';
314                else
315                        td.innerHTML += "&nbsp;<img style='cursor:pointer' onclick='alert(\""+get_lang("This message is signed, but it is invalid. You should not trust on it.")+"\");' title='"+get_lang("Voided message")+"' src='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/invalid.gif'>";
316        }
317
318        if (info_msg.DispositionNotificationTo)
319        {
320                td.innerHTML += '&nbsp;<img style="cursor:pointer" alt="'+ get_lang('Message with read notification') + '" title="'+ get_lang('Message with read notification') + '" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/notification.gif">';
321        }
322
323        // NORMAL MSG
324        if(info_msg.Draft != 'X')
325        {
326                var options = createAndSet("TD",['noWrap','width','align'],['true','30%','right']);
327                var option_hide_more = createAndSet("SPAN",['class','value','id'],['message_options','more_options','option_hide_more_'+ID],get_lang('show details'));
328                option_hide_more.onclick = function(){
329                        var _height = Element("div_message_scroll_"+ID).style.height;
330                        _height = parseInt(_height.replace("px",""));
331                        var _offset = 35;
332                        if (this.value != 'hide_options'){
333                                this.innerHTML = "<b><u>"+get_lang('hide details')+"</u></b>";
334                                this.value = 'hide_options';
335                                Element("div_message_scroll_"+ID).style.height = (_height - _offset)+"px";
336                                Element('table_msg_details_'+ID).style.display = '';
337
338                        }
339                        else{
340                                this.innerHTML = get_lang('show details');
341                                this.value = 'more_options';
342                                Element("div_message_scroll_"+ID).style.height = (_height + _offset)+"px";
343                                Element('table_msg_details_'+ID).style.display = 'none';
344                        }
345                };
346                var option_mark = createAndSet("TD",['width','align'],['50%','left']);
347
348                var option_mark_as_unseen = '<span class="message_options" onclick="changeLinkState(this,\'seen\');set_messages_flag(\'unseen\','+
349                                                folder_id+');write_msg(\''+get_lang('Message marked as ')+get_lang("Unseen")+
350                                                '.\');">'+get_lang("Unseen")+'</span>, ';
351
352                if (info_msg.Flagged == "F")
353                        var option_mark_important = '<span class="message_options" onclick="changeLinkState(this,\'important\');set_messages_flag(\'unflagged\','+
354                                                        folder_id+');write_msg(\''+get_lang('Message marked as ')+get_lang("Normal")+
355                                                        '.\');">'+get_lang("Normal")+'</span>';
356                else
357                        var option_mark_important = '<span class="message_options" onclick="changeLinkState(this,\'normal\');set_messages_flag(\'flagged\','+folder_id+');write_msg(\''+get_lang('Message marked as ')+get_lang("Important")+
358                                                                    '.\');">'+get_lang("Important")+'</span>';
359                option_mark.innerHTML = option_mark_as_unseen+option_mark_important;
360
361                var option_forward = createAndSet("SPAN",['id','class'],['msg_opt_forward_'+ID, 'message_options'],get_lang('Forward'));
362                option_forward.onclick = function(){new_message('forward', ID);};
363                appendChilds(options,option_hide_more,createAndSet('SPAN',false,false,'&nbsp;|&nbsp;'),option_forward);
364
365                var option_reply_options = createAndSet("IMG",['id', 'src', 'value'],['msg_opt_reply_options_'+ID,URL_SERVER+'expressoMail1_2/templates/default/images/down.png','show']);
366                option_reply_options.onmouseover = function(){
367                                option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/over.png';
368                };
369                option_reply_options.onmouseout = function(){
370                        if (this.value == 'show')
371                        {
372                                option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/down.png';
373                        }
374                        else
375                        {
376                                option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/pressed.png';
377                        }
378                };
379                option_reply_options.onclick = function(){
380                        if (this.value != 'hide'){
381                                this.value = 'hide';
382                                option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/pressed.png';
383                                Element('tr_other_options_'+ID).style.display = '';
384
385                        }
386                        else{
387                                this.value = 'show';
388                                option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/down.png';
389                                Element('tr_other_options_'+ID).style.display = 'none';
390                        }
391                };
392
393                var _option_reply = createAndSet("SPAN",['id','class'],['msg_opt_reply_'+ID,'message_options'],get_lang('Reply'));
394                _option_reply.onclick = function(){new_message('reply_with_history', ID);};
395
396                appendChilds(options,createAndSet('SPAN',false,false,'&nbsp;|&nbsp;'),option_reply_options,_option_reply);
397                appendChilds(tr,td,option_mark,options,next_previous_msg_td);
398                tbody_message_options.appendChild(tr);
399
400                ////////// OTHER OPTIONS ////////////////////
401                var _tr_other_options = createAndSet("TR",['id'],['tr_other_options_' + ID]);
402                _tr_other_options.style.display = 'none';
403
404                var div_other_options = document.createElement("DIV");
405
406                var option_mark_as      = '<span>'+get_lang("Mark as")+'</span>: ';
407                var option_mark_as_unseen       = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unseen\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Unseen")+'.\');">'+get_lang("Unseen")+'</span>, ';
408                var option_mark_as_important                    = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'flagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Important")+'.\');">'+get_lang("Important")+'</span>, ';
409                var option_mark_as_normal                               = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unflagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Normal")+'.\');">'+get_lang("Normal")+'</span> | ';
410
411                var option_reply_without_history                = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_without_history","'+ID+'");>'+get_lang("Reply without history")+'</span>';
412                var option_reply_to_all                                 = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_to_all_with_history","'+ID+'");>'+get_lang("Reply to all")+'</span> | ';
413
414                var option_reply_to_all_without_history = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_to_all_without_history","'+ID+'");>'+get_lang("Reply to all without history")+'</span> | </div>';
415
416                div_other_options.innerHTML = option_reply_to_all + option_reply_to_all_without_history + option_reply_without_history;
417                if (use_spam_filter) {
418                        if(info_msg.msg_folder == 'INBOX'+cyrus_delimiter+'Spam')
419                                div_other_options.innerHTML += ' | <span class="reply_options" onclick="nospam('+info_msg.msg_number+',\'null\', \''+info_msg.msg_folder+'\')";>'+get_lang("Not Spam")+'</span>';
420                        else
421                                div_other_options.innerHTML += ' | <span class="reply_options" onclick="spam(\''+info_msg.msg_folder+'\', '+info_msg.msg_number+',\'null\')";>'+get_lang("Mark as Spam")+'</span>';
422                }
423
424                var td_other_options = createAndSet("TD",['colSpan','align','noWrap'],['3','right','true']);
425                td_other_options.appendChild(div_other_options);
426
427                _tr_other_options.appendChild(td_other_options);
428                tbody_message_options.appendChild(_tr_other_options);
429                ////////// END OTHER OPTIONS ////////////////
430
431                if (info_msg.signature && info_msg.signature.length > 0)
432                {
433                        tbody_message_options.appendChild(getSignature(ID,info_msg));
434                }
435
436                table_message_options.appendChild(tbody_message_options);
437                td0.appendChild(table_message_options);
438                tr0.appendChild(td0);
439                tbody_message.appendChild(tr0);
440        }
441        else    // IF DRAFT
442        {
443                var options = createAndSet('TD',['width','noWrap','align'],['1%','true','right']);
444                var option_hide_more = createAndSet("SPAN",['class','value','id'],['message_options','more_options','option_hide_more_'+ID],get_lang('Show details'));
445                option_hide_more.onclick = function(){
446                        var _height = Element("div_message_scroll_"+ID).style.height;
447                        _height = parseInt(_height.replace("px",""));
448                        var _offset = 35;
449                        if (this.value != 'hide_options'){
450                                this.innerHTML = "<b><u>"+get_lang('Hide details')+"</u></b>";
451                                this.value = 'hide_options';
452                                Element("div_message_scroll_"+ID).style.height = (_height - _offset)+"px";
453                                Element('table_msg_details_'+ID).style.display = '';
454                        }
455                        else{
456                                this.innerHTML = get_lang('show details');
457                                this.value = 'more_options';
458                                Element("div_message_scroll_"+ID).style.height = (_height + _offset)+"px";
459                                Element('table_msg_details_'+ID).style.display = 'none';
460                        }
461                };
462                var option_edit = createAndSet('SPAN',['class'],['message_options'], get_lang('Edit'));
463                option_edit.onclick= function () { new_message('edit',ID); };
464                appendChilds(options, option_hide_more, createAndSet('SPAN',false,false,"&nbsp;|&nbsp;"), option_edit);
465
466                tbody_message_options.appendChild(appendChilds(tr, td, options, next_previous_msg_td));
467                table_message_options.appendChild(tbody_message_options);
468                td0.appendChild(table_message_options);
469                tr0.appendChild(td0);
470                tbody_message.appendChild(tr0);
471        }
472        return true;
473}
474function draw_message(info_msg, ID){
475        var content = document.getElementById('content_id_' + ID);
476        var defaultWidth = document.body.offsetWidth - 37;
477        if(Element("folderscol").style.display != 'none')
478                defaultWidth -= Element("folderscol").offsetWidth;
479
480
481        var table_message = createAndSet("TABLE",['border','width'],["0",defaultWidth]);
482        var tbody_message = document.createElement("TBODY");
483
484        if (!make_options_message(info_msg,tbody_message))
485                return;
486
487
488        var tbody_message_others_options = document.createElement("TBODY");
489        var tr1 = document.createElement("TR");
490        tr1.className = "tr_message_header";
491        var td1 = createAndSet('TD',['width'],['7%'],get_lang("From: "));
492        td1.appendChild(deny_email(info_msg.from.email));
493
494        if (info_msg.sender){
495                var tr111 = document.createElement("TR");
496                tr111.className = "tr_message_header";
497                var td111 = createAndSet('TD',['noWrap'],['true'],get_lang("Sent by")+": ");
498                td111.appendChild(deny_email(info_msg.sender.email));
499                var sender = document.createElement("TD");
500                sender.className = "header_message_field";
501                sender.id = "sender_"+ID;
502                sender.innerHTML += draw_plugin_cc(ID, info_msg.sender.full);
503                var sender_values = createAndSet("INPUT",['id','type','value'],["sender_values_"+ID,"HIDDEN",info_msg.sender.full]);
504
505                tbody_message_others_options.appendChild(appendChilds(tr111, td111, sender, sender_values));
506        }
507
508        var from = createAndSet('TD',['id','class'],["from_"+ID,"header_message_field"],info_msg.from.full);
509
510        if (info_msg.Draft != "X"){
511                from.innerHTML += draw_plugin_cc(ID, info_msg.from);
512                tbody_message_others_options.appendChild(tr1);
513        }
514        var from_values = createAndSet('INPUT',['id','type','value'],["from_values_"+ID,"HIDDEN",info_msg.from.full]);
515        var local_message = createAndSet("INPUT",['id','name','type','value'],["is_local_"+ID,"is_local","HIDDEN",(info_msg.local_message)?"1":"0"]);
516        appendChilds(tr1,td1,from,from_values,local_message);
517
518        if (info_msg.reply_to){
519                var tr11 = document.createElement("TR");
520                tr11.className = "tr_message_header";
521                var _td11 = createAndSet('TD',['noWrap'],['true'],get_lang("Reply to")+": ");
522                var _reply_to = createAndSet('TD',['id', 'class'],["reply_to_"+ID, "header_message_field"],draw_plugin_cc(ID, info_msg.reply_to));
523                var _reply_to_values = createAndSet('INPUT',['id', 'type', 'value'],["reply_to_values_"+ID,"HIDDEN",info_msg.reply_to]);
524                tbody_message_others_options.appendChild(appendChilds(tr11,_td11,_reply_to,_reply_to_values));
525        }
526        //////////////////////////////////////////////////////////////////////////////////////////////////////
527        var tr2 = document.createElement("TR");
528        tr2.className = "tr_message_header";
529        var td2 = document.createElement("TD");
530        td2.innerHTML = get_lang("To: ");
531        var to = document.createElement("TD");
532        to.id = "to_"+ID;
533
534        var _to_values = createAndSet('INPUT',['id', 'type', 'value'],["to_values_"+ID, "HIDDEN", info_msg.toaddress2]);
535        // Salva a pasta da mensagem
536        var _input_cfolder = createAndSet('INPUT',['id', 'name', 'type', 'value'],["input_folder_"+ID, "input_folder", "hidden", info_msg.msg_folder]);
537        td2.appendChild(_input_cfolder);
538
539        toaddress_array[ID] = info_msg.toaddress2.split(",");
540        if (toaddress_array[ID].length > 1){
541                to.innerHTML += draw_plugin_cc(ID, toaddress_array[ID][0]);
542                var _div_toaddrs = createAndSet('SPAN',['id','style'],["div_toaddress_"+ID,'display: inline']," (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','to');>"+get_lang('more')+"</a>)");
543                to.appendChild(_div_toaddrs);
544        }
545        else {
546                to.innerHTML += draw_plugin_cc(ID,toaddress_array[ID]);
547        }
548        to.className = "header_message_field";
549        tbody_message_others_options.appendChild(appendChilds(tr2,td2,to,_to_values));
550
551        if (info_msg.cc){
552                var tr3 = document.createElement("TR");
553                tr3.className = "tr_message_header";
554                var td3 = document.createElement("TD");
555                td3.innerHTML = "CC: ";
556                var cc = createAndSet("TD",['id', 'class'],["cc_"+ID,"header_message_field"]);
557
558                var cc_values = createAndSet("INPUT",['id', 'type', 'value'],["cc_values_"+ID, "HIDDEN", info_msg.cc]);
559                ccaddress_array[ID] = info_msg.cc.split(",");           
560                if (ccaddress_array[ID].length > 1){
561                        var div_ccaddress = document.createElement("SPAN");
562                        div_ccaddress.id = "div_ccaddress_"+ID;
563                        var div_ccaddress_full = createAndSet("SPAN",['id', 'style'],["div_ccaddress_full_"+ID, "display: inline"]);
564                        cc.innerHTML = draw_plugin_cc(ID, ccaddress_array[ID][0]);
565                        div_ccaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','cc');>"+get_lang('more')+"</a>)";
566                        cc.appendChild(div_ccaddress);
567                }
568                else{
569                        cc.innerHTML = draw_plugin_cc(ID, info_msg.cc);
570                }
571                tbody_message_others_options.appendChild(appendChilds(tr3,td3,cc,cc_values));
572        }
573
574        if (info_msg.bcc)
575        {
576                tbody_message_others_options.appendChild(getBcc(info_msg.bcc));
577        }
578
579        var tr4 = document.createElement("TR");
580        tr4.className = "tr_message_header";
581        var td4 = document.createElement("TD");
582        td4.innerHTML = get_lang("Date: ");
583        var date = createAndSet('TD',['id','class'],["date_"+ID,"header_message_field"],info_msg.fulldate);
584        var date_day = createAndSet('INPUT',['id', 'type', 'value'],["date_day_"+ID, "HIDDEN", info_msg.msg_day]);
585        var date_hour = createAndSet('INPUT',['id', 'type', 'value'],["date_hour_"+ID, "HIDDEN", info_msg.msg_hour]);
586        tbody_message_others_options.appendChild(appendChilds(tr4,td4,date,date_day,date_hour));
587
588        var tr5 = document.createElement("TR");
589        tr5.className = "tr_message_header";
590        var td5 = document.createElement("TD");
591        td5.innerHTML = get_lang("Subject");
592        var subject = createAndSet('TD',['id', 'class'],["subject_"+ID, "header_message_field"],info_msg.subject);
593        tbody_message_others_options.appendChild(appendChilds(tr5,td5,subject));
594        if (info_msg.attachments.length > 0){
595                var tr6 = document.createElement("TR");
596                tr6.className = "tr_message_header";
597                var td6 = document.createElement("TD");
598                td6.innerHTML = get_lang("Attachments: ");
599
600                var attachments = document.createElement("TD");
601                attachments.align='left';
602                td6.vAlign = "top";
603
604                var zipped_attachments = '';
605                if(info_msg.attachments.length >= 1) {
606                        var zipped_attachments  = createAndSet("TABLE",['style','cellPadding','cellSpacing'],['margin-bottom: 4px','0','0']);
607                        var td = document.createElement("TD");
608                        if(info_msg.attachments.length > 1) {
609                                var link_attachment     = document.createElement("A");
610                                if(proxy_mensagens.is_local_folder(current_folder))
611                                        link_attachment.setAttribute("href", "javascript:expresso_local_messages.download_all_local_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')");
612                                else
613                                        link_attachment.setAttribute("href", "javascript:download_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')");
614                                link_attachment.innerHTML = " "+info_msg.attachments.length+' '+get_lang('files')+' :: '+get_lang('Download all atachments');
615                                link_attachment.innerHTML += '<BR>';
616                                td.appendChild(link_attachment);
617                        }
618                        var tr = document.createElement("TR");
619                        if(parseInt(preferences.remove_attachments_function))
620                        {
621                                var del_attachments = document.createElement("A");
622                                del_attachments.setAttribute("href", "javascript:remove_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')");
623                                del_attachments.innerHTML = get_lang('remove all attachments');
624                                del_attachments.appendChild(document.createElement('BR'));
625                                td.appendChild(del_attachments);
626                                tr.appendChild(td);
627                        }
628                        tr.appendChild(td);
629                        zipped_attachments.appendChild(tr);
630                        attachments.appendChild(zipped_attachments);
631                }
632
633                attachments.id = "attachments_" + ID;
634                for (var i=0; i<info_msg.attachments.length; i++){
635                        var link_attachment = document.createElement("A");
636                        link_attachment.setAttribute("href", proxy_mensagens.link_anexo(info_msg,i));
637                        //link_attachment.setAttribute("href", "javascript:download_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"',"+i+",'"+info_msg.attachments[i].pid+"','"+info_msg.attachments[i].encoding+"')");
638                        link_attachment.innerHTML = url_decode(info_msg.attachments[i].name);
639                        link_attachment.innerHTML += "&nbsp;"+borkb(info_msg.attachments[i].fsize);
640
641                        if((url_decode(info_msg.attachments[i].name).indexOf(".ics")!=-1) || (url_decode(info_msg.attachments[i].name).indexOf(".vcard")!=-1)){
642                                //Link para importar calendário
643                                var link_import_attachment = createAndSet("IMG",['src','onclick','title','align','style'],["templates/"+template+"/images/new.png","javascript:import_calendar('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding+"');",get_lang("Import to calendar"),"top","cursor: pointer"]);
644                                var space = document.createElement("span");
645                                space.innerHTML = "&nbsp;";
646                                appendChilds(attachments,link_attachment,space,link_import_attachment);
647                        }
648                        else {
649                                link_attachment.innerHTML += '<BR>';
650                                attachments.appendChild(link_attachment);
651                        }
652                }
653                tr6.appendChild(td6);
654                tr6.appendChild(attachments);
655                tbody_message_others_options.appendChild(tr6);
656        }
657
658
659        // BEGIN MAKE THE SCROLL HEIGHT
660        var bar = document.getElementById("toolbar");
661        var offset = 0;
662        if(bar.style.visibility != 'hidden')
663                offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight;
664        var div = document.createElement("DIV");
665        div.id = "div_message_scroll_"+ID;
666        div.style.background = 'WHITE';
667        div.style.height = document.body.clientHeight - offset - 125;
668        content.style.height = document.body.clientHeight - offset - 90;
669        div.style.overflow = "auto";
670        div.style.width = defaultWidth - (is_ie ? 5 : 0);
671        // END MAKE THE SCROLL HEIGHT
672
673        var table_msg_details = createAndSet("TABLE",['id','width','class'],['table_msg_details_' + ID,defaultWidth - 30,'table_message']);
674        table_msg_details.style.display = 'none';
675        table_msg_details.appendChild(tbody_message_others_options);
676        div.appendChild(table_msg_details);
677
678        var tr = document.createElement("TR");
679        var td = document.createElement("TD");
680        td.colSpan = '2';
681
682        var newBody = blockImage(info_msg,ID,td);
683
684        td.appendChild(div);
685        tr.appendChild(td);
686        tbody_message.appendChild(tr);
687
688        ////////////////////////////////////////////////////////////////////////////////////////////////////// 
689        //Make the body message.
690        ///////////////////////////////////////////////////////////////////////////////////////////////////////
691        var tr = document.createElement("TR");
692        tr.className = "tr_message_body";
693        var td = document.createElement("TD");
694        //td.setAttribute("colSpan","2");
695        newBody = newBody.replace("<body","<span");
696        newBody = newBody.replace("<BODY","<span");
697        div.innerHTML+= "<span id='body_"+ID+"' style='font-size:16px;'>"+newBody+"</span><br><br>";
698        function mailto( link )
699        {
700                var mail = link.href.substr( 7 );
701                link.onclick = function( )
702                {
703                        new_message_to( mail );
704                        return false;
705                };
706        }
707        var links = div.getElementsByTagName( 'a' );
708        for ( var i = 0; i < links.length; i++ )
709                if ( links.item( i ).href.indexOf( 'mailto:' ) === 0 )
710                        mailto( links.item( i ) );
711                else
712                {
713                        if ( links.item( i ).href.indexOf( 'javascript:' ) !== 0 )
714                                links.item( i ).setAttribute( 'target', '_blank' );
715                }
716
717        if ((info_msg.thumbs)&&(info_msg.thumbs.length > 0)){
718                ////////////////////////////////////////////////////////////////////////////////////////////////////// 
719                //Make the thumbs of the message.
720                //////////////////////////////////////////////////////////////////////////////////////////////////////
721                div.appendChild(getThumbs(info_msg.attachments, info_msg.thumbs, info_msg.msg_number, info_msg.msg_folder));
722        }
723
724        table_message.appendChild(tbody_message);
725        content.appendChild(table_message);
726        var msg_number = createAndSet("INPUT",['id','type','value'],["msg_number_" + ID, "hidden", info_msg.msg_number]);
727        content.appendChild(msg_number);
728        //////////////////////////////////////////////////////////////////////////////////////////////////////
729
730        //Exibe o cabecalho da mensagem totalmente aberto caso esteja setado nas preferencias do usuario
731        if (preferences.show_head_msg_full == 1)
732        {
733                option_hide_more.onclick();
734
735                if (Element('div_toaddress_'+ID) != null)
736                {
737                        show_div_address_full(ID,'to');
738                }       
739                if (Element('div_ccaddress_'+ID) != null)
740                {
741                        show_div_address_full(ID,'cc');
742                }
743        }
744
745}
746function getThumbs(attachments, thumbs, msg_number, msg_folder){
747                var table_message_thumbs = document.createElement("TABLE");
748                table_message_thumbs.width = "80%";
749                table_message_thumbs.style.borderTop = "2px solid rgb(170, 170, 170)";
750                var tbody_message_thumbs = document.createElement("TBODY");
751                var tr = document.createElement("TR");
752                tr.className = "tr_message_body";
753                var td = document.createElement("TD");
754                td.setAttribute("colSpan","2");
755                td.id = "body_thumbs_"+msg_number;
756                td.innerHTML += "&nbsp;<font color='DARKBLUE' size='2'><b>"+attachments.length+" "+get_lang("attachment")+(attachments.length > 1 ? "s" : "")+" "+get_lang("in this message")+"</font></b>";
757                var _link_attachments = '';
758                if(thumbs.length > 1){
759                        _link_attachments       = document.createElement("A");
760                        _link_attachments.className = "message_options";
761                        if(proxy_mensagens.is_local_folder(current_folder))
762                                _link_attachments.setAttribute("href", "javascript:expresso_local_messages.download_all_local_attachments('"+msg_folder+"','"+msg_number+"')");
763                        else
764                                _link_attachments.setAttribute("href", "javascript:download_all_attachments('"+msg_folder+"','"+msg_number+"')");
765                        _link_attachments.innerHTML = get_lang('Download all atachments');
766                }
767
768                if(_link_attachments){
769                        td.innerHTML += " :: ";
770                        td.appendChild(_link_attachments);
771                }
772
773                td.innerHTML += "<BR><img src='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/menu/ktip.png'>"+get_lang("<b>Tip:</b> For faster save, click over the image with <u>right button</u>.");
774                td.innerHTML += "<BR>";
775
776                for (var i=0; i<thumbs.length; i++){
777                        if ((i % 4) == 0)
778                                td.innerHTML += "<BR>";
779                        td.innerHTML += thumbs[i];
780                        td.innerHTML += "&nbsp;&nbsp;";
781                }
782                tr.appendChild(td);
783                tbody_message_thumbs.appendChild(tr);
784                table_message_thumbs.appendChild(tbody_message_thumbs);
785                return table_message_thumbs;
786}
787
788function getBcc(bccField){
789        /*
790         * @AUTHOR Rodrigo Souza dos Santos
791         * @MODIFY-DATE 2008/09/11
792         * @BRIEF Adding routine to create bcc (blind carbon copy) field if there is one.
793         */
794        var tr3 = document.createElement("tr");
795        tr3.className = "tr_message_header";
796        var td3 = document.createElement("td");
797        td3.innerHTML = get_lang("BCC") + " : ";
798        var cco = document.createElement("td");
799        cco.id = "cco_"+ID;
800
801        var cco_values = createAndSet("INPUT",['id', 'type', 'value'],["cco_values_"+ID,"hidden",bccField]);
802        ccoaddress_array[ID] = bccField.split(",");             
803        if (ccoaddress_array[ID].length > 1){
804                var div_ccoaddress = document.createElement("SPAN");
805                div_ccoaddress.id = "div_ccoaddress_"+ID;
806                var div_ccoaddress_full = createAndSet("SPAN",['id', 'style'],["div_ccoaddress_full_"+ID, "display:inline"]);
807                /*
808                 * The function below is ugly, doesn't possible use this.
809                 * The problem is that the code's function was written
810                 * on a hardcode concept.
811                 */
812                //cco.innerHTML = draw_plugin_cc(ID, ccoaddress_array[ID][0]);
813                cco.innerHTML = ccoaddress_array[ID][0];
814                div_ccoaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','cco');>"+get_lang('more')+"</a>)";
815                cco.appendChild(div_ccoaddress);
816        }
817        else{
818                /*
819                 * The function below is ugly, it is not possible to use this.
820                 * The problem is that the code's function was written
821                 * on a hardcode concept.
822                 */
823                //cco.innerHTML = draw_plugin_cc(ID, info_msg.cco);
824                cco.innerHTML = bccField;
825        }
826        cco.className = "header_message_field";
827        return appendChilds(tr3,td3,cco,cco_values);
828}
829
830function blockImage(info_msg,ID,td){
831        var imgTag = info_msg.body.match(/(<img[^>]*src[^>=]*=['"]?[^'">]*["']?[^>]*>)|(<[^>]*(style[^=>]*=['"][^>]*background(-image)?:[^:;>]*url\()[^>]*>)/gi);
832
833        var newBody = info_msg.body;
834        if(!info_msg.showImg && imgTag)
835        {
836                var domains = '';
837                var blocked = false;
838                var forbidden = true;
839
840                if (preferences.notification_domains != null && typeof(preferences.notification_domains) != 'undefined')
841                {
842                        domains = preferences.notification_domains.split(',');
843                        for(var j = 0; j < imgTag.length; j++)
844                        {
845                                for (var i = 0; i < domains.length; i++)
846                                {
847                                        if (imgTag[j].match(/cid:([\w\d]){5,}/) || imgTag[j].match(/src=\"\.\/inc\/show_embedded_attach\.php/g))
848                                        {
849                                                forbidden = false;
850                                                continue;
851                                        }
852                                        imgSource = imgTag[j].match(/=['"](http:\/\/)+[^'"\/]*/);
853                                        if (imgSource && imgSource.toString().substr(5).match(domains[i]))
854                                                forbidden = false;
855                                }
856                                if (forbidden)
857                                {
858                                        newBody = newBody.replace(imgTag[j],"<img src='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/forbidden.jpg'>");
859                                        blocked=true;
860                                }
861                        }
862                        if (blocked)
863                        {
864                                var showImgLink = document.createElement('DIV');
865                                showImgLink.id="show_img_link_"+ID;
866                                showImgLink.onclick = function(){show_msg_img(info_msg.msg_number,info_msg.msg_folder)};
867                                showImgLink.className="show_img_link";
868                                showImgLink.innerHTML = get_lang("Show images from")+": "+info_msg.from.email;
869                                td.appendChild(showImgLink);
870                        }
871                }
872        }
873        return newBody;
874
875}
876
877function changeLinkState(el,state){
878        el.innerHTML = get_lang(state);
879        switch (state){
880                case 'important':
881                        {
882                                el.onclick = function(){changeLinkState(el,'normal');set_messages_flag('unflagged',currentTab.substr(0,currentTab.indexOf("_r"))); write_msg(get_lang('Message marked as ')+get_lang("Normal"))};
883                                break;
884                        }
885                case 'normal':
886                        {
887                                el.onclick = function(){  changeLinkState(el,'important');set_messages_flag('flagged',currentTab.substr(0,currentTab.indexOf("_r")));write_msg(get_lang('Message marked as ')+get_lang("Important"))};
888                                break;
889                        }
890                case 'unseen':
891                        {
892                                el.onclick = function(){  changeLinkState(el,'seen');set_messages_flag('unseen',currentTab.substr(0,currentTab.indexOf("_r")));write_msg(get_lang('Message marked as ')+get_lang("unseen"))};
893                                break;
894
895                        }
896                case 'seen':
897                        {
898                                el.onclick = function(){  changeLinkState(el,'unseen');set_messages_flag('seen',currentTab.substr(0,currentTab.indexOf("_r")));write_msg(get_lang('Message marked as ')+get_lang("seen"))};
899                                break;
900
901                        }
902                default:
903                        {
904                                break;
905                        }
906        }
907}
908function constructMenuNewMessage(ID,tbody_message,table_message,content)
909{
910        table_message.width = "100%";
911
912        var tr0 = document.createElement("TR");
913        tr0.className = "tr_message_header";
914        var td0 = document.createElement("TD");
915        td0.colSpan = '3';
916
917        var table_menu_new_message = document.createElement("TABLE");
918        table_menu_new_message.width = "100%";
919        table_menu_new_message.border = '0';
920        table_menu_new_message.className = 'table_message';
921        var tbody_menu_new_message = document.createElement("TBODY");
922        var tr_menu_new_message = document.createElement("TR");
923        var td_menu_new_message = document.createElement("TD");
924        td_menu_new_message.setAttribute("noWrap","true");
925
926        if ((preferences.save_in_folder == '-1') || (preferences.save_in_folder == '')){
927                //var option_send = '<span class="message_options" onclick=send_message("'+ID+'","null","null");>'+get_lang("Send")+'</span> | ';
928                var option_send   = '<input type="button" id="send_button_'+ID+'" class="em_button_like_span" tabindex="1" value="'+get_lang("Send")+'" onclick=send_message("'+ID+'","null","null");>' + ' | ';
929                if(!expresso_offline)
930                        var option_send_and_file= '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","send_and_file");>'+get_lang("Send and file")+'</span> | ';
931                else
932                        var option_send_and_file='';
933        }
934        else{
935                //var option_send = '<span class="message_options" onclick="send_message(\''+ID+'\',\''+preferences.save_in_folder+'\',\'null\');">'+get_lang("Send")+'</span> | ';
936                var option_send   = '<input type="button" id="send_button_'+ID+'" class="em_button_like_span" tabindex="1" value="'+get_lang("Send")+'" onclick="send_message(\''+ID+'\',\''+preferences.save_in_folder+'\',\'null\');">' + ' | ';
937                var option_send_and_file='';
938                wfolders.alert = true;
939        }
940        //      var option_save_as              = '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","save");>'+get_lang("Save as")+'</span> | ';
941        if (!expresso_offline) {
942                var option_save = '<span id="save_message_options_'+ID+'" class="message_options" onclick="openTab.toPreserve['+ID+'] = true; save_msg('+ID+');">'+get_lang("Save")+'</span> | ';
943                var option_search = '<span class="message_options" onclick=openListUsers("'+ID+'");>'+get_lang("Search")+'</span>';
944        }
945        else {
946                var option_save = '<input type="hidden" id="save_message_options_'+ID+'">';
947                var option_search = '';
948        }
949        td_menu_new_message.innerHTML = option_send + option_send_and_file + option_save + option_search;
950
951        tr_menu_new_message.appendChild(td_menu_new_message);
952        tbody_menu_new_message.appendChild(tr_menu_new_message);
953        table_menu_new_message.appendChild(tbody_menu_new_message);
954
955        content.appendChild(table_menu_new_message);
956        tr0.appendChild(td0);
957        tbody_message.appendChild(tr0);
958        ////////////////////////////////////////////////////////////////////////////////////////////////////////
959}
960function constructFromField(tbody_message,ID)
961{
962        var tr1_1 = document.createElement("TR");
963        tr1_1.style.display = 'none';
964        var td1_1 = document.createElement("TD");
965        td1_1.innerHTML = get_lang("From")+":";
966        td1_1.setAttribute("noWrap","true");
967        td1_1.style.width = "1%";
968
969        var td_from = document.createElement("TD");
970        td_from.setAttribute("noWrap","true");
971        td_from.style.width = "100%";
972
973        var sel_from = document.createElement('SELECT');       
974        sel_from.id = "from_"+ID;
975        sel_from.name = "input_from";
976        sel_from.style.width = "70%";
977        sel_from.setAttribute("wrap","soft");
978        td_from.appendChild(sel_from); 
979        tr1_1.appendChild(td1_1);
980        tr1_1.appendChild(td_from);
981        tbody_message.appendChild(tr1_1);       
982        if(!expresso_offline)
983                draw_from_field(sel_from,tr1_1);
984        var tr1 = document.createElement("TR");
985        var td1 = document.createElement("TD");
986        td1.innerHTML = get_lang("To")+":";
987        td1.setAttribute("noWrap","true");
988        td1.style.width = "1%";
989
990        var td_to = document.createElement("TD");
991        td_to.setAttribute("noWrap","true");
992        td_to.style.width = "100%";
993
994        var input_to = document.createElement('TEXTAREA');
995        input_to.id = "to_"+ID;
996        input_to.name = "input_to";
997        input_to.setAttribute("tabIndex","1"); 
998        input_to.style.width = "100%";
999        input_to.setAttribute("wrap","soft");
1000        input_to.onfocus = function(){clearTimeout(parseInt(setTimeOutLayer)); search_contacts('onfocus', this.id);};
1001        input_to.onblur = function(){setTimeOutLayer=setTimeout('search_contacts("lostfocus","'+this.id+'")',100);};
1002        if (!is_ie)
1003        {
1004                input_to.rows = 2;
1005                input_to.onkeypress = function (e)
1006                {
1007                        if ((e.keyCode) == 120) //F9
1008                        {
1009                                emQuickSearch(input_to.value, 'to', ID);
1010                        }
1011                        else
1012                        {
1013                                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden'))
1014                                {
1015                                        e.preventDefault();
1016                                        search_contacts(e.keyCode,this.id);
1017                                }
1018                        }
1019                };
1020                input_to.onkeyup = function (e)
1021                {
1022                        if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40))
1023                        {
1024                                search_contacts(e.keyCode,this.id);
1025                        }
1026                };
1027        }
1028        else
1029        {
1030                input_to.rows = 3;
1031                input_to.onkeyup = function (e)
1032                {
1033                        if ((window.event.keyCode) == 120) //F9
1034                        {
1035                                emQuickSearch(input_to.value, 'to', ID);
1036                        }
1037                        else
1038                        {
1039                                search_contacts(window.event.keyCode,this.id);
1040                        }   
1041                };
1042        }
1043        td_to.appendChild(input_to);
1044
1045        var forwarded_local_message = document.createElement("INPUT"); //Hidden para indicar se é um forward de uma mensagem local
1046        forwarded_local_message.id = "is_local_forward"+ID;
1047        forwarded_local_message.name = "is_local_forward";
1048        forwarded_local_message.type = "HIDDEN";
1049        forwarded_local_message.value = "0";
1050        td_to.appendChild(forwarded_local_message);
1051        ////////////////////////////////////////////////////////////////////////////////////////////////////////
1052
1053
1054        if (!expresso_offline) {
1055                var img_search = document.createElement("IMG");
1056                img_search.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/search.gif';
1057                img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.');
1058                img_search.onclick = function () {emQuickSearch(document.getElementById('to_'+ID).value, 'to', ID);};
1059        }
1060        else {
1061                var img_search = document.createElement("SPAN");
1062        }
1063
1064        var span_search = document.createElement("SPAN");
1065        span_search.innerHTML = get_lang('Search');
1066
1067        var td1_img_search = document.createElement("TD");
1068        td1_img_search.setAttribute("noWrap","true");
1069        var td1_span_search = document.createElement("TD");
1070        td1_span_search.setAttribute("noWrap","true"); 
1071
1072        td1_img_search.appendChild(img_search);
1073        td1_span_search.appendChild(span_search);
1074
1075        tr1.appendChild(td1);
1076        tr1.appendChild(td_to);
1077        tr1.appendChild(td1_img_search);
1078
1079        tbody_message.appendChild(tr1);
1080}
1081
1082function draw_new_message(border_ID)
1083{
1084        Tooltip.init();
1085
1086        var ID = create_border("",border_ID);
1087        if (ID === false){
1088                return false;
1089        }
1090        expresso.connector.hold_session = true;
1091
1092        var footer_menu = Element("footer_menu");       
1093        if (footer_menu) {
1094                footer_menu.style.display = 'none';
1095        }
1096
1097        /////////////////////////////////////////////////////////////////////////////////////////////////////////
1098        var form = document.createElement("FORM");
1099        form.name = "form_message_"+ID;
1100        form.method = "POST";
1101        form.onsubmit = function(){return false;};
1102        if(!is_ie)
1103                form.enctype="multipart/form-data";
1104        else
1105                form.encoding="multipart/form-data";
1106
1107        var content = Element('content_id_' + ID);
1108        var table_message = document.createElement("TABLE");
1109        var tbody_message = document.createElement("TBODY");
1110       
1111        constructMenuNewMessage(ID,tbody_message,table_message,content);
1112       
1113        constructFromField(tbody_message,ID);
1114
1115
1116        //////////////////////////////////////////////////////////////////////////////////////////////////////
1117        var tr2 = document.createElement("TR");
1118        tr2.id = "tr_cc_"+ID;
1119        tr2.style.display = 'none';
1120        var td2 = document.createElement("TD");
1121        td2.innerHTML = "Cc:";
1122        td2.setAttribute("noWrap","true");     
1123        td2.style.width = "1%";
1124
1125        var td_cc = document.createElement("TD");
1126        td_cc.setAttribute("noWrap","true");
1127        td_cc.style.width = "100%";
1128
1129        var input_cc = document.createElement('TEXTAREA');
1130        input_cc.id = "cc_"+ID;
1131        input_cc.name = "input_cc";
1132        input_cc.setAttribute("tabIndex","1");
1133        input_cc.style.width = "100%";
1134        input_cc.onfocus = function(){clearTimeout(parseInt(setTimeOutLayer)); search_contacts('onfocus',this.id);};
1135        input_cc.onblur = function(){setTimeOutLayer=setTimeout('search_contacts("lostfocus","'+this.id+'")',100);};
1136        if (!is_ie)
1137        {
1138                input_cc.rows = 2;
1139                input_cc.onkeypress = function (e)
1140                {
1141                        if ((e.keyCode) == 120) //F9
1142                        {
1143                                emQuickSearch(input_cc.value, 'cc', ID);
1144                        }
1145                        else
1146                        {
1147                                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden'))
1148                                {
1149                                        e.preventDefault();
1150                                        search_contacts(e.keyCode,this.id);
1151                                }
1152                        }
1153                };
1154                input_cc.onkeyup = function (e)
1155                {
1156                        if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40))
1157                        {
1158                                search_contacts(e.keyCode,this.id);
1159                        }
1160                };
1161        }
1162        else if (is_ie)
1163        {
1164                input_cc.rows = 3;
1165                input_cc.onkeyup = function (e)
1166                {
1167                        if ((window.event.keyCode) == 120) //F9
1168                        {
1169                                emQuickSearch(input_cc.value, 'cc', ID);
1170                        }
1171                        else
1172                        {
1173                                search_contacts(window.event.keyCode,this.id);
1174                        }
1175                };
1176        }
1177
1178        td_cc.appendChild(input_cc);
1179        var img_search = document.createElement("IMG");
1180        img_search.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/search.gif';
1181        img_search.onclick = function () {emQuickSearch(document.getElementById('cc_'+ID).value, 'cc', ID)};
1182        img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.');
1183        var span_search = document.createElement("SPAN");
1184        span_search.innerHTML = get_lang('Search');
1185
1186        var td2_img_search = document.createElement("TD");
1187        td2_img_search.setAttribute("noWrap","true");
1188        var td2_span_search = document.createElement("TD");
1189        td2_span_search.setAttribute("noWrap","true"); 
1190
1191        td2_img_search.appendChild(img_search);
1192        td2_span_search.appendChild(span_search);
1193
1194        tr2.appendChild(td2);
1195        tr2.appendChild(td_cc);
1196        tr2.appendChild(td2_img_search);
1197        tbody_message.appendChild(tr2);
1198        //////////////////////////////////////////////////////////////////////////////////////////////////////
1199        var tr3 = document.createElement("TR");
1200        tr3.id = "tr_cco_"+ID;
1201        tr3.style.display = 'none';
1202        var td3 = document.createElement("TD");
1203        td3.setAttribute("noWrap","true");
1204        td3.innerHTML = get_lang("CCo")+":";
1205        td3.style.width = "1%";
1206
1207        var td_cco = document.createElement("TD");
1208        td_cco.setAttribute("noWrap","true");
1209        td_cco.style.width = "100%";
1210
1211        var input_cco = document.createElement('TEXTAREA');
1212        input_cco.id = "cco_"+ID;
1213        input_cco.name = "input_cco";
1214        input_cco.setAttribute("tabIndex","1");
1215        input_cco.style.width = "100%";
1216        input_cco.onfocus = function(){clearTimeout(parseInt(setTimeOutLayer)); search_contacts('onfocus',this.id);};
1217        input_cco.onblur = function(){setTimeOutLayer=setTimeout('search_contacts("lostfocus","'+this.id+'")',100);};
1218
1219        if (!is_ie)
1220        {
1221                input_cco.rows = 2;
1222                input_cco.onkeypress = function (e)
1223                {
1224                        if ((e.keyCode) == 120) //F9
1225                        {
1226                                emQuickSearch(input_cco.value, 'cco', ID);
1227                        }
1228                        else
1229                        {
1230                                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden'))
1231                                {
1232                                        e.preventDefault();
1233                                        search_contacts(e.keyCode,this.id);
1234                                }
1235                        }
1236                };
1237                input_cco.onkeyup = function (e)
1238                {
1239                        if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40))
1240                        {
1241                                search_contacts(e.keyCode,this.id);
1242                        }
1243                };
1244        }
1245        else if (is_ie)
1246        {
1247                input_cco.rows = 3;
1248                input_cco.onkeyup = function (e)
1249                {
1250                        if ((window.event.keyCode) == 120) //F9
1251                        {
1252                                emQuickSearch(input_cco.value, 'cco', ID);
1253                        }
1254                        else
1255                        {
1256                                search_contacts(window.event.keyCode,this.id);
1257                        }   
1258                };
1259        }
1260
1261        td_cco.appendChild(input_cco);
1262        var img_search = document.createElement("IMG");
1263        img_search.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/search.gif';
1264        img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.');   
1265        img_search.onclick = function () {emQuickSearch(document.getElementById('cco_'+ID).value, 'cco', ID);};
1266        var span_search = document.createElement("SPAN");
1267        span_search.innerHTML = get_lang('Search');
1268
1269        var td3_img_search = document.createElement("TD");
1270        td3_img_search.setAttribute("noWrap","true");
1271        var td3_span_search = document.createElement("TD");
1272        td3_span_search.setAttribute("noWrap","true"); 
1273
1274        td3_img_search.appendChild(img_search);
1275        td3_span_search.appendChild(span_search);
1276
1277        tr3.appendChild(td3);
1278        tr3.appendChild(td_cco);
1279        tr3.appendChild(td3_img_search);       
1280        tbody_message.appendChild(tr3);
1281        //////////////////////////////////////////////////////////////////////////////////////////////////////
1282        var tr_link = document.createElement("TR");
1283        tr_link.id = "tr_link_"+ID;             
1284        var td1_link = document.createElement("TD");
1285        var td2_link = document.createElement("TD");
1286        td1_link.innerHTML = "&nbsp;";
1287        var a_cc_link = document.createElement('A');
1288        a_cc_link.innerHTML = get_lang('Add CC');
1289        a_cc_link.id = "a_cc_link_"+ID;
1290        a_cc_link.setAttribute("href","javascript:void(0)");
1291        a_cc_link.setAttribute("tabIndex","-1");
1292        a_cc_link.onclick = function () {
1293                                        this.style.display='none';
1294                                        document.getElementById('tr_cc_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';
1295                                        input_cc.focus();
1296                                        return false;
1297                                };
1298        td2_link.appendChild(a_cc_link);       
1299        var space = document.createElement("span");
1300        space.id ="space_link_"+ID;
1301        space.innerHTML="&nbsp;|&nbsp;";
1302        td2_link.appendChild(space);
1303        var a_cco_link = document.createElement('A');
1304        a_cco_link.innerHTML = get_lang('Add BCC');
1305        a_cco_link.id = "a_cco_link_"+ID;
1306        a_cco_link.setAttribute("href","javascript:void(0)");
1307        a_cco_link.setAttribute("tabIndex","-1");
1308        a_cco_link.onclick = function () {
1309                                        this.style.display='none';
1310                                        document.getElementById('tr_cco_'+ID).style.display='';
1311                                        document.getElementById('space_link_'+ID).style.display='none';
1312                                        input_cco.focus();
1313                                        return false;
1314                                };
1315        td2_link.appendChild(a_cco_link);       
1316        tr_link.appendChild(td1_link);
1317        tr_link.appendChild(td2_link);
1318        tbody_message.appendChild(tr_link);
1319        //////////////////////////////////////////////////////////////////////////////////////////////////////
1320        var tr4 = document.createElement("TR");
1321        var td4 = document.createElement("TD");
1322        //td4.setAttribute("noWrap","true");   
1323        td4.innerHTML = get_lang("Subject")+":";
1324        var td_subject = document.createElement("TD");
1325        var input_subject = document.createElement('input');
1326        input_subject.id = "subject_"+ID;
1327        input_subject.name = "input_subject";
1328        input_subject.setAttribute("tabIndex","1");
1329        input_subject.style.width = "90%";
1330        input_subject.setAttribute("autocomplete","off");
1331        td_subject.appendChild(input_subject);
1332        tr4.appendChild(td4);
1333        tr4.appendChild(td_subject);
1334        tbody_message.appendChild(tr4);
1335        ////////////////////////////////////////////////////////////////////////////////////////////////////// 
1336        var tr5 = document.createElement("TR");
1337        var td5 = document.createElement("TD");
1338        td5.innerHTML = "&nbsp;";
1339        var td_return_receipt = document.createElement("TD");
1340        td_return_receipt.setAttribute("noWrap","true");
1341        td_return_receipt.innerHTML = get_lang("Return receipt")+":";
1342        if (is_ie)
1343        {
1344                var input_return_receipt = document.createElement('input name=input_return_receipt');
1345        }
1346        else
1347        {
1348                var input_return_receipt = document.createElement('input');
1349                input_return_receipt.name = "input_return_receipt";
1350        }
1351        input_return_receipt.type = "checkbox";
1352        input_return_receipt.className = "checkbox";
1353        input_return_receipt.id = "return_receipt_"+ID;
1354        input_return_receipt.setAttribute("tabIndex","-1");
1355        td_return_receipt.appendChild(input_return_receipt);
1356
1357        // Workaround para resolver problema ao enviar e-mails
1358        if((preferences.use_assinar_criptografar != '0'))
1359        {
1360                if(parseInt(preferences.use_signature_digital_cripto)==1)
1361                {
1362                        td_return_receipt.innerHTML +=  "&nbsp;&nbsp;" + get_lang("Digitally sign message?")+"";
1363
1364                        if (is_ie)
1365                        {
1366                                var input_return_digital = document.createElement('input name=input_return_digital');
1367                        }
1368                        else
1369                        {
1370                                var input_return_digital = document.createElement('input');
1371                                input_return_digital.name = "input_return_digital";
1372                        }
1373
1374                        input_return_digital.type = "checkbox";
1375                        input_return_digital.className = "checkbox";
1376                        input_return_digital.id = "return_digital_"+ID;
1377                        input_return_digital.setAttribute("tabIndex","-1");
1378                        if(parseInt(preferences.use_signature_digital)==1)
1379                        {
1380                                input_return_digital.defaultChecked=true;
1381                        }
1382                        td_return_receipt.appendChild(input_return_digital);
1383                        td_return_receipt.innerHTML +=  "&nbsp;&nbsp;" + get_lang("Digitally crypt message?")+"";
1384
1385                        if (is_ie)
1386                        {
1387                                var input_return_cripto = document.createElement('input name=input_return_cripto');
1388                        }
1389                        else
1390                        {
1391                                var input_return_cripto = document.createElement('input');
1392                                input_return_cripto.name = "input_return_cripto";
1393                        }
1394
1395                        input_return_cripto.type = "checkbox";
1396                        input_return_cripto.className = "checkbox";
1397                        input_return_cripto.id = "return_cripto_"+ID;
1398                        input_return_cripto.setAttribute("tabIndex","-1");
1399                        input_return_cripto.defaultChecked=false;
1400
1401                        if(parseInt(preferences.use_signature_cripto)==1)
1402                        {
1403                                input_return_cripto.defaultChecked=true;
1404                        }
1405
1406                        td_return_receipt.appendChild(input_return_cripto);
1407                }
1408               
1409        }
1410        td_return_receipt.innerHTML += "";
1411       
1412        tr5.appendChild(td5);
1413        tr5.appendChild(td_return_receipt);
1414        tbody_message.appendChild(tr5);
1415        if (parseInt(preferences.use_important_flag))
1416        {
1417                var trn = document.createElement("TR");
1418                var tdn = document.createElement("TD");
1419                tdn.innerHTML = "&nbsp;";
1420                var td_important_msg = document.createElement("TD");
1421                td_important_msg.setAttribute("noWrap","true");
1422                td_important_msg.innerHTML = get_lang("Important message")+":";
1423                var input_important_message = document.createElement('input');
1424                input_important_message.type = "checkbox";
1425                input_important_message.className = "checkbox";
1426                input_important_message.id = "important_message_"+ID;
1427                input_important_message.name = "input_important_message";
1428                input_important_message.setAttribute("tabIndex","-1");
1429                td_important_msg.appendChild(input_important_message); 
1430                trn.appendChild(tdn);
1431                trn.appendChild(td_important_msg);
1432                tbody_message.appendChild(trn);
1433        }
1434
1435        var add_files = document.createElement("A");
1436        add_files.setAttribute("href", "javascript:void(0)");
1437        add_files.onclick = function () { addFile(ID); return false;};
1438        add_files.innerHTML =  get_lang("Attachments: add+");
1439        add_files.setAttribute("tabIndex","-1");
1440        var divfiles = document.createElement("DIV");
1441        divfiles.id = "divFiles_"+ID;
1442        var tr5 = document.createElement("TR");
1443        var td5_link = document.createElement("TD");
1444        var td5_input = document.createElement("TD");   
1445        td5_input.innerHTML = "&nbsp;";
1446        td5_link.setAttribute("valign","top");
1447        td5_link.setAttribute("colSpan","2");
1448        td5_link.appendChild(add_files);
1449        tr5.appendChild(td5_input);
1450        tr5.appendChild(td5_link);
1451        tbody_message.appendChild(tr5);
1452        var tr6 = document.createElement("TR");
1453        var td6_link  = document.createElement("TD");
1454        var td6_input = document.createElement("TD");
1455        tr6.appendChild(td6_link);
1456        td6_input.appendChild(divfiles);
1457        tr6.appendChild(td6_input);     
1458        tbody_message.appendChild(tr6);
1459        //////////////////////////////////////////////////////////////////////////////////////////////////////
1460        var tr5 = document.createElement("TR");
1461        var td5 = document.createElement("TD");
1462        td5.innerHTML = "&nbsp;";
1463        var td_body = document.createElement("TD");
1464        td_body.setAttribute("colSpan","2");
1465        var div_body_position = document.createElement("DIV");
1466        div_body_position.id = "body_position_" + ID;
1467        td_body.appendChild(div_body_position);
1468        tr5.appendChild(td5);
1469        tr5.appendChild(td_body);
1470        tbody_message.appendChild(tr5);
1471        // BEGIN MAKE THE SCROLL HEIGHT
1472        var defaultWidth = document.body.clientWidth - (is_ie ? 200 : 195);
1473        var _bar = document.getElementById("toolbar");
1474        var _offset = 0;
1475        if(_bar.style.visibility != 'hidden')
1476                _offset = _bar.offsetHeight ? _bar.offsetHeight :  _bar.clientHeight;           
1477        var _div = document.createElement("DIV");
1478        _div.id = "div_message_scroll_"+ID;
1479        _div.style.height = document.body.clientHeight - _offset - 105;
1480        content.style.height = document.body.clientHeight - _offset - 80;
1481        _div.style.overflow = "auto";
1482        _div.style.width = defaultWidth;
1483        // END MAKE THE SCROLL HEIGHT
1484
1485        // Hide the contac tips and re-position the pallete color.
1486        _div.onscroll = function() {
1487                var intElemScrollTop = Element("div_message_scroll_"+ID).scrollTop;
1488                if (!is_ie)
1489                        ColorPalette.repos(intElemScrollTop);
1490                Tooltip.scrollChanged();
1491        };
1492        //////////////////////////////////////////////////////////////////////////////////////////////////////
1493        _div.appendChild(form);
1494        content.appendChild(_div);
1495        table_message.appendChild(tbody_message);
1496        form.appendChild(table_message);
1497        expresso.connector.loadScript("jscode/rich_text_editor");
1498        RichTextEditor.loadEditor(ID);
1499        //////////////////////////////////////////////////////////////////////////////////////////////////////
1500        return ID;
1501}
1502
1503//      Verify if any user is sharing his name/email address
1504//      for use in the new messages's "From " field.
1505function draw_from_field(sel_from,tr1_1){
1506
1507        var el_shared_users = Element("el_shared_users");
1508        // The element was loaded and populated...so return.
1509        if(el_shared_users){   
1510                // Nothing to work...so return.
1511                if(el_shared_users.options.length == 0)
1512                        return;
1513                tr1_1.style.display = '';
1514                for (var x = 0; x < el_shared_users.options.length; x++) {
1515                        var _option = document.createElement("OPTION");
1516                        _option.text = el_shared_users.options[x].text;
1517                        _option.value = el_shared_users.options[x].value;
1518                        sel_from.options[sel_from.options.length] = _option;
1519                }
1520                return;
1521        }
1522        // Get the shared folders.....
1523        var sharedFolders = new Array();
1524        for(var i = 0; i < folders.length; i++) {
1525                var x = folders[i].folder_id;
1526                if (folders[i].folder_parent == 'user'){
1527                        sharedFolders[sharedFolders.length] = x;
1528                }
1529        }
1530
1531        var matchUser = '#';
1532        var sharedUsers = new Array();
1533        // Filter the shared folders (only root folders) .....
1534        for(var i = 0; i < sharedFolders.length; i++) {
1535                if(!sharedFolders[i].match(matchUser)) {
1536                        matchUser = sharedFolders[i];
1537                        sharedUsers[sharedUsers.length] = matchUser.substring(("user"+cyrus_delimiter).length,matchUser.length);
1538                }
1539        }
1540
1541        // Handler function for cExecute
1542        var h_user = function(data) {
1543                if(data.length > 0) {
1544                        tr1_1.style.display = '';
1545                        var _option = document.createElement("OPTION");
1546                        _option.text =  '"'+data.myname+'" <'+Element("user_email").value+'>';
1547                        _option.value  = data.myname+";"+Element("user_email").value;
1548                        sel_from.options[sel_from.options.length] = _option;
1549
1550                        var options = '';
1551                        for (var x = 0; x < data.length; x++)   {
1552                                var _option = document.createElement("OPTION");
1553                                _option.text = '"'+data[x].cn[0] + '" <'+data[x].mail[0]+'>';
1554                                _option.value = data[x].cn[0] + ';'+data[x].mail[0]+';'+data[x].save_shared[0]+';'+data[x].uid[0];
1555                                sel_from.options[sel_from.options.length] = _option;
1556                        }
1557                }
1558                var shared_users_from = Element("el_shared_users");
1559                if(!shared_users_from) {
1560                        shared_users_from = sel_from.cloneNode(true);
1561                        shared_users_from.id = "el_shared_users";
1562                        shared_users_from.style.display = 'none';
1563                        document.body.appendChild(shared_users_from);
1564                }
1565        };
1566        // First time, so execute.....
1567        cExecute ("expressoMail1_2.ldap_functions.getSharedUsersFrom&uids="+sharedUsers.join(';'), h_user);
1568}
1569
1570function changeBgColorToON(all_messages, begin, end){
1571        for (begin; begin<=end; begin++)
1572        {
1573                add_className(all_messages[begin], 'selected_msg');
1574                Element("check_box_message_" + all_messages[begin].id).checked = true;
1575        }
1576}
1577function updateBoxBgColor(box){
1578        // Set first TR Class
1579        var _className = 'tr_msg_read2';
1580        for(var i = 0; i < box.length;i++){     
1581                if(exist_className(box[i],_className))
1582                        remove_className(box[i], _className);
1583                _className = (_className == 'tr_msg_read2' ? 'tr_msg_read' : 'tr_msg_read2');
1584                if(!exist_className(box[i],_className))
1585                        add_className( box[i], _className);
1586        }
1587}
1588
1589function changeBgColor(event, msg_number){
1590        actual_tr = Element(msg_number);
1591
1592        if (event.shiftKey)
1593        {
1594                last_tr = Element(last_message_selected);
1595                if(!last_tr)
1596                        last_tr = actual_tr;
1597
1598                all_messages = actual_tr.parentNode.childNodes;
1599
1600                for (var i=0; i < all_messages.length; i++)
1601                {
1602                        if (actual_tr.id == all_messages[i].id)
1603                                first_order = i;
1604                        if (last_tr.id == all_messages[i].id)
1605                                last_order = i;
1606                }
1607
1608                if (parseInt(first_order) > parseInt(last_order))
1609                        changeBgColorToON(all_messages, last_order, first_order);
1610                else
1611                        changeBgColorToON(all_messages, first_order, last_order);
1612        }
1613        else{
1614                //if ( exist_className(actual_tr, 'selected_msg') )
1615                if ( Element('check_box_message_' + msg_number).checked )
1616                        add_className(actual_tr, 'selected_msg');
1617                else
1618                        remove_className(actual_tr, 'selected_msg');
1619        }
1620        last_message_selected = msg_number;
1621}
1622
1623function deny_email(email){
1624        expresso.connector.loadScript("jscode/filter");
1625        expresso.connector.loadScript("jscode/filters");
1626        var dn_em       = document.createElement("SPAN");
1627        dn_em.id = "tt_d";
1628        dn_em.onclick = function(){filter_rules.new_rule(url_encode(email));};
1629        dn_em.setAttribute("title",get_lang("Block Sender"));
1630        dn_em.style.cursor = "pointer";         
1631        dn_em.innerHTML = "<img align='top' onclick=filter.new_rule('"+url_encode(email)+"') src='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/deny.gif'>";
1632        return dn_em;
1633
1634}
1635
1636
1637function show_div_address_full(id, type) {
1638        var div_address_full = Element("div_"+type+"address_full_"+id);
1639        if(!div_address_full) {
1640                div_address_full = document.createElement("SPAN");
1641                div_address_full.id = "div_"+type+"address_full_"+id;   
1642                div_address_full.style.display="none"; 
1643                var _address = eval(type+"address_array['"+id+"']");
1644                var isOverLimit = (_address.length > 100);
1645
1646                if(isOverLimit) {
1647                        alert("Esse campo possui muitos endereços ("+_address.length+" destinatários).\r\n"+
1648                                        "Para evitar o travamento do navegador, o botão 'Adicionar Contato' foi desabilitado!");
1649                }
1650
1651                for(var idx = 1 ; idx  < _address.length;idx++) {
1652                        div_address_full.innerHTML += isOverLimit ?  '<br>'+_address[idx] : ','+draw_plugin_cc(id,_address[idx]);
1653                }               
1654                div_address_full.innerHTML += " (<a STYLE='color: RED;' onclick=document.getElementById('div_"+type+"address_full_"+id+"').style.display='none';document.getElementById('div_"+type+"address_"+id+"').style.display='';>"+get_lang('less')+"</a>)";
1655                Element(type+"_"+id).appendChild(div_address_full);
1656        }
1657        Element('div_'+type+'address_'+id).style.display='none';
1658        div_address_full.style.display='';
1659}
1660function draw_footer_box(num_msgs){
1661        folder = get_current_folder();
1662        var span_R = Element("table_message"); 
1663        var span_options = Element("span_options");     
1664        if(!span_options) {
1665                span_options = document.createElement("TD");   
1666                span_options.style.fontSize = "12";
1667                span_options.id = "span_options";
1668                span_R.appendChild(span_options);
1669        }
1670
1671        var change_font_color = 'onmouseover="var last_class = this.className;'+
1672                'if (this.className != \'message_options_over\')'+
1673                                'this.className=\'message_options_active\'; '+
1674                                'this.onmouseout=function(){this.className=last_class;}"';
1675
1676                                span_options.innerHTML =
1677                                '<span class="message_options_trash"><span ' + change_font_color + ' title="'+get_lang("Delete")+'" class="message_options" onclick=proxy_mensagens.delete_msgs(\'null\',\'selected\',\'null\')>'+get_lang("Delete")+'</span></span>'+
1678                                '<span class="message_options_move"><span ' + change_font_color + ' title="'+get_lang("Move")+'" class="message_options" onclick=wfolders.makeWindow(\"\",\"move_to\")>'+get_lang("Move")+'</span></span>'+
1679                                ((expresso_offline)?" ":'<span class="message_options_print"><span ' + change_font_color + ' title="'+get_lang("Print")+'" class="message_options" onclick=print_all()>'+get_lang("Print")+'</span></span>')+
1680                                //              '<span class="message_options_print"><span ' + change_font_color + ' title="'+get_lang("Print")+'" class="message_options" onclick=print_all()>'+get_lang("Print")+'</span></span>'+
1681                                ((expresso_offline)?" ":'<span class="message_options_export"><span ' + change_font_color + ' title="'+get_lang("Export")+'" class="message_options" onclick="proxy_mensagens.export_all_messages()">'+get_lang("Export")+'</span></span>') +
1682                                ((expresso_offline)?" ":'<span class="message_options_import"><span ' + change_font_color + ' title="'+get_lang("Import")+'" class="message_options" onclick="import_window()">'+get_lang("Import")+'</span></span>');
1683                                if(preferences.use_local_messages==1 && !expresso_offline)
1684                                if(proxy_mensagens.is_local_folder(current_folder))
1685                                span_options.innerHTML += '&nbsp; <span title="'+get_lang("Unarchive")+'" class="message_options" onclick="expresso_local_messages.unarchive_msgs(\''+folder+'\',null)">'+get_lang("Unarchive")+'</span>';
1686                                else
1687                                span_options.innerHTML += '&nbsp; <span title="'+get_lang("Archive")+'" class="message_options" onclick="archive_msgs(\''+folder+'\',null)">'+get_lang("Archive")+'</span>';
1688                                if (use_spam_filter) {
1689                                if ( current_folder == 'INBOX'+cyrus_delimiter+'Spam' ) {
1690                                span_options.innerHTML += ' | <span ' + change_font_color + ' title="'+get_lang("Not Spam")+'" class="message_options" onclick="nospam(\'selected\',\'null\',\'null\')">'+get_lang("Not Spam")+'</span>';
1691                                }
1692                                else {
1693                                        span_options.innerHTML += ' | <span ' + change_font_color + ' title="'+get_lang("Mark as Spam")+'" class="message_options" onclick="spam(\'null\', \'selected\',\'null\')">'+get_lang("Mark as Spam")+'</span>';
1694                                }
1695                                }
1696                                var span_D = Element("span_D");
1697                                if(!span_D){
1698                                        span_D = document.createElement("TD"); 
1699                                        span_D.align = "right";
1700                                        span_D.style.fontSize = "12";
1701                                        span_D.id = "span_D";
1702                                        span_R.appendChild(span_D);
1703                                }
1704                                span_D.innerHTML =
1705                                        get_lang("List")+': '+
1706                                        '<span ' + change_font_color + ' id="span_flag_SORTARRIVAL" class="'+(search_box_type == 'ALL' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("All")+'" onclick="if(\'ALL\' == \''+search_box_type+'\') return false;sort_box(\'ALL\',\''+sort_box_type+'\')">'+get_lang("All")+'</span>, '+
1707                                        '<span ' + change_font_color + ' id="span_flag_UNSEEN" class="'+(search_box_type == 'UNSEEN' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("l_unseen")+'" onclick="if(\'UNSEEN\' == \''+search_box_type+'\') return false;sort_box(\'UNSEEN\',\''+sort_box_type+'\')">'+get_lang("l_unseen")+'</span>, '+
1708                                        '<span ' + change_font_color + ' id="span_flag_SEEN" class="'+(search_box_type == 'SEEN' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("l_seen")+'" onclick="if(\'SEEN\' == \''+search_box_type+'\') return false;sort_box(\'SEEN\',\''+sort_box_type+'\')">'+get_lang("l_seen")+'</span>, '+
1709                                        '<span ' + change_font_color + ' id="span_flag_ANSWERED" class="'+(search_box_type == 'ANSWERED' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("l_answered")+'" onclick="if(\'ANSWERED\' == \''+search_box_type+'\') return false;sort_box(\'ANSWERED\',\''+sort_box_type+'\')">'+get_lang("l_answered")+'</span>, '+
1710                                        '<span ' + change_font_color + ' id="span_flag_FLAGGED" class="'+(search_box_type == 'FLAGGED' ? 'message_options_over' : 'message_options')+'" title="'+get_lang("l_important")+'" onclick="if(\'FLAGGED\' == \''+search_box_type+'\') return false;sort_box(\'FLAGGED\',\''+sort_box_type+'\')">'+get_lang("l_important")+'</span>&nbsp;&nbsp;';
1711                                draw_paging(num_msgs);
1712                                Element("tot_m").innerHTML = num_msgs; 
1713};
Note: See TracBrowser for help on using the repository browser.