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

Revision 2708, 68.5 KB checked in by rafaelraymundo, 14 years ago (diff)

Ticket #1063 - Acerta posicao do icone mensagem assinada

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