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

Revision 2699, 69.0 KB checked in by amuller, 14 years ago (diff)

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

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