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

Revision 2624, 72.8 KB checked in by amuller, 14 years ago (diff)

Ticket #1048 - Aumentando o contraste do responder

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