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

Revision 2695, 68.6 KB checked in by rafaelraymundo, 14 years ago (diff)

Ticket #1061 - Corrigido dados certificado msg assinada

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