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

Revision 2579, 72.5 KB checked in by amuller, 14 years ago (diff)

Ticket #1036 - Correção de ponto e virgula

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