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

Revision 2667, 72.7 KB checked in by amuller, 14 years ago (diff)

Ticket #1036 - Arruma ponto e virgula faltante no final da linha

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