source: trunk/expressoMail1_2/js/base/draw_api_folders.js @ 3111

Revision 3111, 50.9 KB checked in by amuller, 14 years ago (diff)

Ticket #974 - Arrumando problema da data ao visualizar email

RevLine 
[2551]1
2
3var lastPage = 1;
4var numPages = 5;
5var last_folder = 'INBOX';
6
7function draw_quota(data){
[2734]8        build_quota(data);
[2551]9}
10
11function update_quota(folder_id){
[2734]12        cExecute ("expressoMail1_2.imap_functions.get_quota&folder_id="+folder_id,build_quota);
[2551]13}
14
15function draw_search(headers_msgs){
[2734]16        Element("border_id_0").innerHTML = "  " + get_lang('Search Result') + "  ";
[2551]17
[2734]18        var tbody = Element('tbody_box');
19        for (var i=0; i<(headers_msgs.length); i++){
20                var tr = this.make_tr_message(headers_msgs[i], headers_msgs[i].msg_folder);
21                if (tr)
22                        tbody.appendChild(tr);
23        }
[2551]24}
25
[2715]26function draw_header_box(){
27        switch(sort_box_type){
28                case 'SORTFROM':
29                        type_name = get_lang("Who");
30                        break;
31                case 'SORTSUBJECT':
32                        type_name = get_lang("Subject");
33                        break;
34                case 'SORTARRIVAL':
35                        type_name = get_lang("Date");
36                        break;
37                case 'SORTSIZE':
38                        type_name = get_lang("Size");
39                        break;
40                default:
41                        type_name = get_lang("Date");
42                        break;
43        }
[2929]44        document.getElementById("_msgheadSORTFROM_"+numBox).innerHTML   = get_lang("Who");
45        document.getElementById("_msgheadSORTSUBJECT_"+numBox).innerHTML = get_lang("Subject");
46        document.getElementById("_msgheadSORTARRIVAL_"+numBox).innerHTML = get_lang("Date");
47        document.getElementById("_msgheadSORTSIZE_"+numBox).innerHTML   = get_lang("Size");     
[2947]48        var elHead = document.getElementById("_msghead"+(sort_box_type.lastIndexOf("SORT") != "-1" ? sort_box_type : "SORTARRIVAL")+"_"+numBox );
49        if(elHead != null)
50                elHead.innerHTML = "<B>"+type_name+'</B><img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/arrow_'+(sort_box_reverse == 1 ? 'desc' : 'asc')+'endant.gif">';
[2715]51}
52
[2551]53function draw_search_header_box(){
[2930]54        var _tbl_msghead_bx = Element("_tbl_msghead_bx");
55        _tbl_msghead_bx.parentNode.removeChild(_tbl_msghead_bx);
[2551]56
[2734]57        var content_id_0 = Element("content_id_0");
58        var table_element = document.createElement("TABLE");
59        var tbody_element = document.createElement("TBODY");
[2930]60        table_element.setAttribute("id", "_tbl_msghead_bx");
[2734]61        table_element.className = "table_message_header_box";
62        tr_element = document.createElement("TR");
63        tr_element.className = "message_header";
64        td_element1 = document.createElement("TD");
65        td_element1.setAttribute("width", "1%");
66        chk_box_element = document.createElement("INPUT");
[2929]67        chk_box_element.id  = "chkbox_sel_allmsg";
[2734]68        chk_box_element.setAttribute("type", "checkbox");
69        chk_box_element.className = "checkbox";
70        chk_box_element.onclick = function(){
71                select_all_messages(this.checked);
[2551]72        };
[2734]73        chk_box_element.onmouseover = function () {
74                this.title=get_lang('Select all messages.')
75        };
76        chk_box_element.onkeydown = function (e){
77                if (is_ie)
78                {
79                        if ((window.event.keyCode) == 46)
80                        {
81                                //delete_all_selected_msgs_imap();
82                                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
83                        }
84                }
85                else
86                {
87                        if ((e.keyCode) == 46)
88                        {
89                                //delete_all_selected_msgs_imap();
90                                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
91                        }
92                }
93        };
[2551]94
[2734]95        td_element1.appendChild(chk_box_element);
96        td_element2 = document.createElement("TD");
97        td_element2.setAttribute("width", "3%");
98        td_element3 = document.createElement("TD");
99        td_element3.setAttribute("width", "30%");
[2929]100        td_element3.id = "_msgheadSORTFROM";
[2734]101        td_element3.align = "left";
102        td_element3.innerHTML = get_lang("From");
103        td_element4 = document.createElement("TD");
104        td_element4.setAttribute("width", "49%");
[2929]105        td_element4.id = "_msgheadSORTSUBJECT";
[2734]106        td_element4.align = "left";
107        td_element4.innerHTML = get_lang("Subject");
108        td_element5 = document.createElement("TD");
109        td_element5.setAttribute("width", "10%");
[2929]110        td_element5.id = "_msgheadSORTARRIVAL";
[2734]111        td_element5.align = "center";
112        td_element5.innerHTML = "<B>"+get_lang("Date")+"</B>";
113        td_element5.innerHTML += '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/arrow_descendant.gif">';
114        td_element6 = document.createElement("TD");
115        td_element6.setAttribute("width", "10%");
[2929]116        td_element6.id = "_msgheadSORTSIZE";
[2734]117        td_element6.align = "right";
118        td_element6.innerHTML = get_lang("Size");
119        tr_element.appendChild(td_element1);
120        tr_element.appendChild(td_element2);
121        tr_element.appendChild(td_element3);
122        tr_element.appendChild(td_element4);
123        tr_element.appendChild(td_element5);
124        tr_element.appendChild(td_element6);
[2551]125
[2734]126        tbody_element.appendChild(tr_element);
127        table_element.appendChild(tbody_element);
128        content_id_0.appendChild(table_element);
[2551]129}
130
131function draw_search_division(msg){
[2734]132        var tbody = Element('tbody_box');
133        var tr = document.createElement("TR");
134        var td = document.createElement("TD");
135        td.colSpan = '7';
136        td.width = '100%';
[2551]137
[2734]138        var action_info_table = document.createElement("TABLE");
139        var action_info_tbody = document.createElement("TBODY");
[2551]140
[2734]141        action_info_table.className = "action_info_table";
142        action_info_table.width = "100%";
[2551]143
[2734]144        var action_info_tr = document.createElement("TR");
[2551]145
[2734]146        var action_info_th1 = document.createElement("TH");
147        action_info_th1.width = "40%";
148        action_info_th1.innerHTML = "&nbsp;";
[2551]149
[2734]150        var action_info_th2 = document.createElement("TH");
[2551]151
[2734]152        action_info_th2.innerHTML = msg;
153        action_info_th2.className = "action_info_th";
154        action_info_th2.setAttribute("noWrap", "true");
[2551]155
[2734]156        var action_info_th3 = document.createElement("TH");
157        action_info_th3.width = "40%";
158        action_info_th3.innerHTML = "&nbsp;";
[2551]159
[2734]160        action_info_tr.appendChild(action_info_th1);
161        action_info_tr.appendChild(action_info_th2);
162        action_info_tr.appendChild(action_info_th3);
163        action_info_tbody.appendChild(action_info_tr);
164        action_info_table.appendChild(action_info_tbody);
[2551]165
[2734]166        td.appendChild(action_info_table);
167        tr.appendChild(td);
168        tbody.appendChild(tr);
[2551]169}
170
171function draw_search_box(){
[2734]172        var content_id_0 = Element("content_id_0");
173        var table = document.createElement("TABLE");
174        table.id = "table_box";
175        table.width = 'auto';
176        var tbody = document.createElement("TBODY");
177        tbody.id = "tbody_box";
[2551]178
[2734]179        table.className = "table_box";
180        table.setAttribute("frame", "below");
181        table.setAttribute("rules", "none");
182        table.setAttribute("cellpadding", "0");
183        table.onkeydown = function (e){
184                if (is_ie)
185                {
186                        if ((window.event.keyCode) == 46)
187                        {
188                                //delete_all_selected_msgs_imap();
189                                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
190                        }
191                }
192                else
193                {
194                        if ((e.keyCode) == 46)
195                        {
196                                //delete_all_selected_msgs_imap();
197                                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
198                        }
199                }
200        };
[2551]201        if (is_ie)
[2734]202                table.style.cursor = "hand";
[2551]203
[2734]204        table.appendChild(tbody);
205        content_id_0.appendChild(table);
[2551]206}
207
208function build_quota(data){
[2734]209        id = "content_quota";
[2980]210        q_limit = data['quota_limit']*1024;
[2734]211        var div = document.getElementById(id);
212        if(!q_limit){
213                div.innerHTML = '<span><font size="2" style="color:red"><strong>'+get_lang("Without Quota")+'</strong></font></span>';
214        }
215        else{
216                if(div)
217                {
218                        div.innerHTML = '';
219                        value = data['quota_percent'];
[2980]220                        q_used = data['quota_used']*1024;
[2734]221                        table = document.getElementById("table_quota");
222                        if(table)
223                                table.parentNode.removeChild(table);
224                        table = document.createElement("TABLE");
225                        tbody = document.createElement("TBODY");
226                        table.appendChild(tbody);
227                        table.id = "table_quota";
228                        table.width="102";
229                        table.border="0";
230                        table.cellSpacing = 0;
231                        table.cellPadding = 0;
[2551]232
[2734]233                        //tr1 = document.createElement("TR");
234                        td11 = document.createElement("TD");
235                        td11.align="center";
236                        td11.setAttribute("noWrap","true");
[2980]237
238                        td11.innerHTML += '&nbsp;<span class="boxHeaderText">' + value+"% ("+borkb(q_used)+"/"+borkb(q_limit)+")</span>";
[2734]239                        //tr1.appendChild(td11);
[2551]240
[2734]241                        tr2 = document.createElement("TR");
242                        td21 = document.createElement("TD");
243                        td21.setAttribute("noWrap","true");
244                        td21.height="15";
245                        td22 = document.createElement("TD");
246                        td21.setAttribute("background", URL_SERVER + 'phpgwapi/templates/' + template + '/images/dsunused.gif');
247                        table221 = document.createElement("TABLE");
248                        tbody221 = document.createElement("TBODY");
249                        table221.appendChild(tbody221);
250                        table221.style.width=value+"%";
251                        td21.width="102";
252                        table221.border="0";
253                        table221.cellSpacing = 0;
254                        table221.cellPadding = 0;
255                        tr221 = document.createElement("TR");
256                        td221 = document.createElement("TD");
257                        td221.height="15";
258                        if(value > 90) {
259                                if(value >= 100)
260                                        write_msg(get_lang("Your Mailbox is 100% full! You must free more space or will not receive messages."));
261                                else
262                                        write_msg(get_lang("Warning: Your Mailbox is almost full!"));
263                                td221.setAttribute("background","templates/"+template+"/images/dsalert.gif");
264                        }
265                        else if(value > 80)
266                                td221.setAttribute("background", URL_SERVER + 'expressoMail1_2/templates/' + template + '/images/dswarn.gif');
267                        else
268                                td221.className = 'dsused';
[2551]269
[2734]270                        tr221.appendChild(td221);
271                        tbody221.appendChild(tr221);
272                        td21.appendChild(table221);
273                        tr2.appendChild(td21);
274                        tr2.appendChild(td11);
[2551]275
[2734]276                        //tr2.appendChild(td1);
[2551]277
[2734]278                        tbody.appendChild(tr2); //Desenho
279                        //tbody.appendChild(tr1); //Letras
280                        div.appendChild(table);
281                }
[2551]282        }
283}
284
285function draw_paging(num_msgs){
[2734]286        num_msgs = parseInt(num_msgs);
287        total_pages = 1;
[2551]288
[2734]289        if(last_folder != current_folder){
290                lastPage = 1;
291                current_page = 1;
292                last_folder = current_folder;
293        }
[2551]294
[2734]295        if(num_msgs > parseInt(preferences.max_email_per_page)) {
296                total_pages = parseInt(num_msgs/preferences.max_email_per_page);
297                if((num_msgs/preferences.max_email_per_page) > total_pages)
298                        total_pages++;
299        }
[2551]300
[2734]301        if(total_pages == 1) {
302                if(span_paging = document.getElementById("span_paging")) {
303                        span_paging.parentNode.removeChild(span_paging);
304                }
305                return;
[2551]306        }
307
[2734]308        span_paging = document.getElementById("span_paging");
309        if(!span_paging){
310                span_paging = document.createElement("DIV");
311                span_paging.id = "span_paging";
312                span_paging.className = "boxHeaderText";
313                span_paging.align="right";
314                var div_menu_c3 = document.getElementById("div_menu_c3");
315                if ( div_menu_c3 )
316                        div_menu_c3.appendChild(span_paging);
317        }
318        span_paging.style.width="100%";
319        span_paging.innerHTML="";
320        msg_range_begin = 1;
321        msg_range_end = preferences.max_email_per_page;
322        if(current_page != 1) {
323                lnk_page = document.createElement("A");
[2743]324                lnk_page.setAttribute("href", "javascript:current_page=1;kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box.draw_newBox(data, get_current_folder());});");
[2734]325        }
326        else {
327                lnk_page = document.createElement("SPAN");
328        }
329        span_paging.appendChild(lnk_page);
[2551]330
[2734]331        lnk_page.innerHTML = "&lt;&lt;";
332        lnk_page.title = get_lang("First");
333        span_paging.innerHTML += "&nbsp;";
[2551]334
[2734]335        if(current_page == lastPage + numPages)
336                lastPage = current_page - 1;
337        else if((lastPage != 1 && lastPage == current_page) || current_page == total_pages)
338                lastPage = current_page - (numPages - 1);
339        else if(current_page == 1)
340                lastPage = 1;
[2551]341
[2734]342        if(lastPage < 1)
343                lastPage = 1;
344        else if(lastPage > 1 && (lastPage > (total_pages -(numPages - 1))))
345                lastPage = total_pages -(numPages - 1);
[2551]346
[2734]347        var     hasMarked = false;
[2551]348
[2734]349        for(i = lastPage; i <= total_pages; i++) {
[2551]350
[2734]351                if(current_page == i || (i == total_pages && !hasMarked)) {
352                        lnk_page = document.createElement("SPAN");
353                        span_paging.appendChild(lnk_page);
354                        lnk_page.innerHTML = "&nbsp;<b>"+i+"</b>&nbsp;";
355                        hasMarked = true;
356                        continue;
357                }
358                else{
359                        lnk_page = document.createElement("A");
360                        span_paging.appendChild(lnk_page);
361                        msg_range_begin = ((i*preferences.max_email_per_page)-(preferences.max_email_per_page-1));
362                        msg_range_end = (i*preferences.max_email_per_page);
[2743]363                        lnk_page.setAttribute("href", "javascript:current_page="+i+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box.draw_newBox(data, get_current_folder());});");
[2734]364                }
[2551]365
[2734]366                lnk_page.innerHTML = "&nbsp;...&nbsp;";
[2551]367
[2734]368                if(i == (lastPage + numPages))
369                        break;
370                else if(lastPage == 1 || i != lastPage)
371                        lnk_page.innerHTML = "&nbsp;"+i+"&nbsp;";
[2551]372
[2734]373                span_paging.innerHTML += "&nbsp;";
374        }
375
376        if(current_page != total_pages) {
377                lnk_page = document.createElement("A");
378                msg_range_begin = ((total_pages*preferences.max_email_per_page)-(preferences.max_email_per_page-1));
379                msg_range_end = (total_pages*preferences.max_email_per_page);
[2743]380                lnk_page.setAttribute("href", "javascript:current_page="+total_pages+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box.draw_newBox(data, get_current_folder());});");
[2734]381        }
382        else {
383                lnk_page = document.createElement("SPAN");
384        }
[2551]385        span_paging.innerHTML += "&nbsp;";
[2734]386        span_paging.appendChild(lnk_page);
[2551]387
[2734]388        lnk_page.title = get_lang("Last");
389        lnk_page.innerHTML = "&gt;&gt;";
[2551]390}
391
392
393function draw_tree_local_folders() {
[2734]394        /**
[2551]395         * Pastas locais
396         */
[2734]397        if(preferences.use_local_messages==1 || expresso_offline) {
398                var local_folders = expresso_local_messages.list_local_folders();
399                var has_changes = false;
400                for (var i in local_folders) { //Coloca as pastas locais.
401                        if(!isNaN(i)){
402                                var new_caption = local_folders[i][0];
403                                if(local_folders[i][0].indexOf("/")!="-1") {
404                                        final_pos = local_folders[i][0].lastIndexOf("/");
405                                        new_caption = local_folders[i][0].substr(final_pos+1);
406                                }
[2551]407
[2734]408                                var folder_unseen = Element('dftree_local_'+local_folders[i][0]+'_unseen');
[2551]409
[2734]410                                if ((folder_unseen) && (local_folders[i][1] > 0))
411                                {
412                                        folder_unseen.innerHTML = local_folders[i][1];
413                                        has_changes = true;
414                                }
415                                else if (local_folders[i][1] > 0)
416                                {
417                                        tree_folders.getNodeById("local_"+local_folders[i][0]).alter({
418caption:lang_folder(new_caption) + '<font style=color:red>&nbsp(</font><span id="dftree_local_'+local_folders[i][0]+'_unseen" style=color:red>'+local_folders[i][1]+'</span><font style=color:red>)</font>'
419});
420tree_folders.getNodeById("local_"+local_folders[i][0])._refresh();
421has_changes = true;
422}
423else if (local_folders[i][1] <= 0)
424{
425        tree_folders.getNodeById("local_"+local_folders[i][0]).alter({
426caption:lang_folder(new_caption)
427});
428tree_folders.getNodeById("local_"+local_folders[i][0])._refresh();
429has_changes = true;
430}
[2551]431
[2747]432        if("local_"+local_folders[i][0] == get_current_folder()){
433                var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML);
434                if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){
435                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m);
436                }
437                Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0;
438                draw_paging(Element('tot_m').innerHTML);
439                has_changes = true;
440                }
[2676]441        }
[2734]442}
443if(has_changes)
444        tree_folders.getNodeById("local_root").open();
[2551]445
[2734]446        }
[2551]447}
448
[2899]449function draw_tree_folders( folders )
450{
[2734]451        // Check if the tree folders alredy exist.
[2899]452        if ( ! Element( 'dftree_tree_folders' ) )
453        {
454                translatedFolders = new Map( );
455                if ( ! expresso_offline )
456                {
457                        tree_folders = new dFTree( {
458                                "name" : 'tree_folders'
459                        } );
[2551]460
[2899]461                        var n_root = new dNode( {
462                                "id" : 'root',
463                                "caption" : get_lang( "My Folders" )
464                        } );
[2551]465
[2899]466                        tree_folders.add( n_root, 'anything' ); //Places the root; second argument can be anything.
[2551]467
[2899]468                        var unseen_in_mailbox = 0;
469                        var unseen_in_shared_folders = 0;
[2551]470
[2899]471                        for ( var i = 0; i < folders.length; i++ )
[2747]472                        {
[2899]473                                if ( folders[ i ].folder_unseen > 0 )
474                                {
475                                        unseen_in_mailbox = parseInt( unseen_in_mailbox + folders[ i ].folder_unseen );
476                                        if ( folders[i].folder_id.indexOf( 'INBOX' ) !== 0 )
477                                                unseen_in_shared_folders = parseInt( unseen_in_shared_folders + folders[ i ].folder_unseen );
[2551]478
[2899]479                                        var nn = new dNode( {
480                                                "id" : folders[i].folder_id,
481                                                "caption" : lang_folder( folders[ i ].folder_name )
482                                                                        + '<font style=color:red>&nbsp(</font><span id="dftree_'
483                                                                        + folders[ i ].folder_id
484                                                                        + '_unseen" style=color:red>'
485                                                                        + folders[ i ].folder_unseen
486                                                                        + '</span><font style=color:red>)</font>',
487                                                "onClick" : "change_folder('" + folders[ i ].folder_id+"','" + folders[ i ].folder_name + "')",
488                                                "plusSign" : folders[ i ].folder_hasChildren
489                                        } );
[2551]490
[2899]491                                        if ( folders[ i ].folder_name.toLowerCase( ) == 'inbox' )
492                                                Element( 'new_m' ).innerHTML = '<font style="color:red">' + folders[ i ].folder_unseen + '</font>';
493                                }
494                                else
495                                        var nn = new dNode( {
496                                                "id" : folders[ i ].folder_id,
497                                                "caption" : lang_folder( folders[ i ].folder_name ),
498                                                "onClick" : "change_folder('" + folders[ i ].folder_id + "','" + folders[ i ].folder_name + "')",
499                                                "plusSign" : folders[ i ].folder_hasChildren
500                                        });
[2551]501
[2899]502                                if ( folders[ i ].folder_parent == '' )
503                                        folders[ i ].folder_parent = 'root';
504                                else
505                                {
506                                        if ( folders[ i ].folder_parent == 'user' && ( ! tree_folders.getNodeById( 'user' ) ) )
[2747]507                                        {
[2899]508                                                tmpFolderId = folders[ i ].folder_id.split( cyrus_delimiter ).pop( );
509                                                if ( tmpFolderId != folders[ i ].folder_name )
510                                                        translatedFolders.add( tmpFolderId, folders[ i ].folder_name );
511
512                                                var n_root_shared_folders = new dNode( {
513                                                        "id" : 'user',
514                                                        "caption" : get_lang( "Shared folders" ),
515                                                        "plusSign" : true
516                                                } );
517                                                tree_folders.add( n_root_shared_folders, 'root' );
[2747]518                                        }
519                                }
[2899]520                                tree_folders.add( nn, folders[ i ].folder_parent );
521                        }
[2551]522                }
[2899]523
524                /**
525                 * Pastas locais
526                 */
527                if (preferences.use_local_messages==1 || expresso_offline)
528                {
529                        if (!window.google || !google.gears) {
530                                if (!expresso_local_messages.installGears())
531                                        preferences.use_local_messages=0;
[2734]532                        }
[2899]533                        else{
534                                if (!window.google || !google.gears) {
535                                        temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to be redirected to gears installation page?"));
536                                        if (temp) {
537                                                location.href = "http://gears.google.com/?action=install&message="+
538                                                        "Para utilizar o recurso de mensagens locais, instale o google gears&return=" +
539                                                        document.location.href;
540                                        }
541                                        else {
542                                                preferences.use_local_messages=0;
543                                        }
544                                }
545                                else{
546                                        if (expresso_offline)
547                                                tree_folders = new dFTree({
548                                                                "name" : 'tree_folders'
549                                                                });
550                                        var root_local = new dNode({
551                                                        "id" : "local_root",
552                                                        "caption" : get_lang('local folders')
553                                                        });
554                                        tree_folders.add(root_local, "root"); //coloca root local
555                                        var local_folders = expresso_local_messages.list_local_folders();
556                                        for (var i in local_folders) { //Coloca as pastas locais.
557                                                if(!isNaN(i)){
558                                                        var node_root = "local_root";
559                                                        var new_caption = local_folders[i][0];
560                                                        if (local_folders[i][0].indexOf("/") != "-1") {
561                                                                final_pos = local_folders[i][0].lastIndexOf("/");
562                                                                node_root = "local_" + local_folders[i][0].substr(0, final_pos);
563                                                                new_caption = local_folders[i][0].substr(final_pos + 1);
564                                                        }
565                                                        if (local_folders[i][1] > 0)
566                                                                var nodeLocal = new dNode({
567                                                                                "id": "local_" + local_folders[i][0],
568                                                                                "caption": lang_folder(new_caption) + '<font style=color:red>&nbsp(</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>',
569                                                                                "onClick": "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')",
570                                                                                "plusSign": local_folders[i][2]
571                                                                                });
572                                                        else
573                                                                var nodeLocal = new dNode({
574                                                                                "id": "local_" + local_folders[i][0],
575                                                                                "caption": lang_folder(new_caption),
576                                                                                "onClick": "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')",
577                                                                                "plusSign": local_folders[i][2]
578                                                                                });
579                                                        tree_folders.add(nodeLocal, node_root);
580                                                }
581                                        }
582                                }
[2734]583                        }
[2676]584                }
[2899]585
586                tree_folders.draw( Element( 'content_folders' ) );
587                if ( ! expresso_offline )
588                {
589                        n_root.changeState( );
590                        folder_select = ( current_folder ? current_folder : "INBOX" );
591
[2947]592                        if ( typeof( tree_folders.getNodeById( folder_select ) ) != 'function' )
[2899]593                                return false;
594
595                        tree_folders.getNodeById( folder_select )._select( );
[2676]596                }
[2899]597                else
598                {
599                        root_local.changeState( );
600                        tree_folders.getNodeById( 'local_Inbox' )._select( );
601                }
[2551]602
[2899]603                var trash_span = document.getElementById( 'lINBOX/' + trashfolder + 'tree_folders' );
604                var draft_span = document.getElementById( 'lINBOX/' + draftsfolder + 'tree_folders' );
605                var sent_span = document.getElementById( 'lINBOX/' + sentfolder + 'tree_folders' );
606                var spam_span = document.getElementById( 'lINBOX/' + spamfolder + 'tree_folders' );
[2551]607
[2931]608                var folder_img = URL_SERVER + "phpgwapi/templates/" +template + "/images/foldertree_";
[2551]609
[2899]610                if ( trash_span )
611                        trash_span.style.backgroundImage = "url(" + folder_img + "trash.png)";
[2551]612
[2899]613                if ( draft_span )
614                        draft_span.style.backgroundImage = "url(" + folder_img + "draft.png)";
[2551]615
[2899]616                if ( sent_span )
617                        sent_span.style.backgroundImage = "url(" + folder_img + "sent.png)";
[2551]618
[2899]619                if ( spam_span )
620                        spam_span.style.backgroundImage = "url(" + folder_img + "spam.png)";
[2551]621
622
[2899]623                draw_paging( Element( 'tot_m' ).innerHTML );
[2551]624
[2899]625                if ( document.getElementById( "nINBOX/" + trashfolder + "tree_folders" ) )
626                {
627                        var trash = document.createElement( "SPAN" );
628                        trash.id = 'empty_trash';
629                        trash.className = 'clean_folder';
630                        trash.style.cursor = 'pointer';
631                        trash.onclick = function( )
632                        {
633                                empty_trash_imap( );
634                        };
635                        trash.innerHTML = "[" + get_lang( "Clean" ) + "]";
636                        trash.title = get_lang( "Empty trash" );
637                        trash.onmouseover = function( )
638                        {
639                                trash.style.color = "red";
640                        };
641                        trash.onmouseout= function( )
642                        {
643                                trash.style.color="#666666";
644                        };
645                        document.getElementById( "nINBOX/" + trashfolder + "tree_folders" ).appendChild( trash );
646                }
647                if ( document.getElementById( "nINBOX/" + spamfolder + "tree_folders" ) )
648                {
649                        var spam = document.createElement( "SPAN" );
650                        spam.id = 'empty_spam';
651                        spam.className = 'clean_folder';
652                        spam.style.cursor = 'pointer';
653                        spam.style.padding = '0 0 0 6px';
654                        spam.onclick = function( )
655                        {
656                                empty_spam_imap( );
657                        };
658                        spam.innerHTML = "[" + get_lang( "Clean" ) + "]";
659                        spam.title = get_lang( "Empty Spam Folder" );
660                        spam.onmouseover = function( )
661                        {
662                                spam.style.color = "red";
663                        };
664                        spam.onmouseout = function( )
665                        {
666                                spam.style.color = "#666666";
667                        };
668                        document.getElementById( "nINBOX/" + spamfolder + "tree_folders" ).appendChild( spam );
669                }
[2551]670
[2899]671                if ( ! expresso_offline )
[2930]672                        var _disp_unseen_mb = tree_folders.getNodeById( 'root' );
[2899]673                else
[2930]674                        var _disp_unseen_mb = tree_folders.getNodeById( 'local_root' );
[2551]675
[2930]676                _disp_unseen_mb.alter( {
[2899]677                        "caption" : get_lang( "My Folders" )
678                } );
[2551]679
[2930]680                _disp_unseen_mb._refresh( );
[2899]681
[2930]682                var _dip_unseen_shardfolder = tree_folders.getNodeById( 'user' );
[2899]683
[2930]684                if ( _dip_unseen_shardfolder )
[2899]685                {
686                        if ( unseen_in_shared_folders )
[2930]687                                _dip_unseen_shardfolder.alter( {
[2899]688                                        "caption" : '<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">'
689                                                                + unseen_in_shared_folders
690                                                                + '</span><font style=color:red>]</font> '
691                                                                + get_lang( "Shared folders" )
692                                } );
693                        else
[2930]694                                _dip_unseen_shardfolder.alter( {
[2899]695                                        "caption" : get_lang( "Shared folders" )
696                                } );
697
[2930]698                        _dip_unseen_shardfolder._refresh( );
[2899]699                }
700        }
701
702        if ( ! expresso_offline )
703        {
704                var folder_create = "";
705                var nm1 = "";
706                if ( tree_folders._folderPr.length > 0 )
707                {
708                        var nm_folder = "";
709                        for ( var i = 0; i < tree_folders._folderPr.length; i++ )
710                        {
711                                nm_folder = tree_folders._folderPr[ i ].split( cyrus_delimiter );
712                                if( nm_folder[ 0 ] == "INBOX" )
713                                {
714                                        if ( nm1 == "" )
715                                        {
716                                                nm1 = nm_folder[ 1 ];
717                                                folder_create = "INBOX" + cyrus_delimiter + nm_folder[ 1 ] + ";";
[2734]718                                        }
[2899]719                                        else
720                                        {
721                                                if ( nm1 != nm_folder[ 1 ] )
722                                                {
723                                                        folder_create += "INBOX" + cyrus_delimiter + nm_folder[ 1 ] + ";";
724                                                        nm1 = nm_folder[ 1 ];
725                                                }
726                                        }
[2734]727                                }
[2551]728                        }
729                }
[2899]730
731                if ( folder_create != "" )
732                {
733                        if ( confirm( get_lang( "There are folders with invalid format. Do you want to fix them?" ) ) )
734                        {
735                                var handler_correct_folders = function( data )
736                                {
737                                        //Timeout to release HTTPRequest , loadScript and update tree folders.
738                                        if ( data )
739                                                setTimeout( "expresso.connector.loadScript('jscode/TreeShow');ttreeBox.update_folder();", 500 );
740                                };
741                                cExecute( "expressoMail1_2.imap_functions.create_extra_mailbox", handler_correct_folders, "nw_folders=" + folder_create );
742                        }
[2734]743                }
[2551]744        }
[2904]745
746        Element( 'main_table' ).style.display = '';
747        draw_box.prepare_box( false );
748        resizeWindow( );
[2551]749}
750
751
752function update_menu(data){
[2676]753    /*
[2551]754         * @AUTHOR Rodrigo Souza dos Santos
755         * @DATE 2008/09/15
756         * @BRIEF When occurs a error in imap server show the message that is in file "error.html".
757         */
[2676]758    if ( data && data.imap_error )
759    {
760        if(preferences.use_local_messages==1 && expresso_local_messages.is_offline_installed){
761            conf = confirm(get_lang("The expresso imap server is currently down, expresso noticed you have offline mail module installed, would you like to use it?"));
762            if(conf) {
763                window.onresize = function() {
764                    var target = document.getElementById('divAppbox');
765                    target.style.height= document.body.clientHeight - 83;
766                };
767                var target = document.getElementById('divAppbox');
768                document.getElementById("divAppboxHeader").innerHTML="";
769                target.style.height= document.body.clientHeight - 83;
770                expresso_local_messages.set_as_logged(account_id,0,true);
771                target.innerHTML = "<iframe src='offline.php?inside=1' width='100%' height='100%' frameBorder='0'></iframe>";
[2551]772                return false;
[2676]773            }
[2551]774        }
[2676]775        expresso.connector.newRequest('error.html', URL_SERVER + 'expressoMail1_2/templates/'+template+'/error.html', 'GET',
776            function(data)
777            {
778                var target = document.getElementById('divAppbox');
779                if ( target )
780                    target.innerHTML = data;
781            }
782            );
783        return false;
784    }
[2551]785
[2676]786    draw_tree_folders(data);
787    if(data) {
788        build_quota(data);
789        var f_unseen = Element('dftree_'+current_folder+'_unseen');
790        if(f_unseen && f_unseen.innerHTML)
791            Element('new_m').innerHTML = '<font face="Verdana" size="1" color="RED">'+f_unseen.innerHTML+'</font>';
792        else
793        {
794            if( parseInt(Element('new_m').innerHTML) == 0 )
795                Element('new_m').innerHTML = 0;
[2551]796        }
[2676]797        folders = data;
798    }
[2551]799}
800
801var handler_draw_box = function(data){
[2743]802    draw_box.draw_newBox( expresso.connector.unserialize( data ), 'INBOX', true);
[2676]803//alternate_border(0);
[2551]804};
805
806// Action on change folders.
[2676]807function change_folder(folder, folder_name){
[2734]808    alternate_border(numBox);
809    if (openTab.imapBox[numBox] != folder)
[2676]810    {
811        current_folder = folder;
[2743]812        draw_box.prepare_box(true);
[2745]813        Element("border_id_0").innerHTML = "&nbsp;" + lang_folder(folder_name) + '&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">0</span> / <span id="tot_m">0</span>]</font>';
[2676]814        var handler_draw_box = function(data)
815        {
[2747]816                draw_box.headers_msgs = data;
817                draw_box.draw_box_messages(data, folder, true);
818                draw_paging(data.num_msgs);
819                Element("tot_m").innerHTML = data.num_msgs;
820                Element("new_m").innerHTML = '<font style="color:'+(data.num_unseen > 0 ? 'red': '')+'">' + data.num_unseen + '</font>';
821                folder_unseen = Element('dftree_'+current_folder+'_unseen');
822                var num_unseen = data.num_unseen;
823                if (folder_unseen)
824                        num_unseen -= folder_unseen.innerHTML;
825                increment_folder_unseen(num_unseen);
826                update_menu();
827                return true;
[2676]828        };
829        proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box);
830    }
831}
[2551]832
833function open_folder(folder, folder_name){
[2676]834    if (current_folder!= folder) {
835        current_folder = folder;
836        var handler_draw_box = function(data){
837            numBox++;
838            create_border(folder_name,numBox.toString());
[2743]839            draw_box.draw_newBox(data, current_folder);
[2676]840            alternate_border(numBox);
841            return true;
842        };
843        cExecute ("expressoMail1_2.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box);
844    }
845    else
846        alternate_border(numBox);
847    return true;
[2551]848}
849
850function sort_box(search, sort){
[2676]851    var message_header = Element("message_header_"+search);
852    var handler_draw_box = function(data){
[2796]853        draw_box.headers_msgs = data;
854        draw_box.draw_box_messages(current_folder);
855
[2676]856        draw_paging(Element('tot_m').innerHTML);
857        //Mostrar as msgs nao lidas de acordo com o filtro de relevancia
858        var msgs_unseen = 0;
859        for(i in data){
860            if(data[i].Unseen == 'U')
861                msgs_unseen++;
[2551]862        }
[2676]863        Element("new_m").innerHTML = '<font style="color:'+(msgs_unseen == 0 ? '': 'red')+'">' + msgs_unseen + '</font>';
864    };
[2551]865
[2676]866    if(sort_box_type == sort && search_box_type == search){
867        sort_box_reverse = sort_box_reverse ? 0 : 1;
868    }
869    else if(sort_box_type != sort){
870        if ( (sort == 'SORTFROM') || (sort == 'SORTSUBJECT') )
871            sort_box_reverse = 0;
872        else
873            sort_box_reverse = 1;
874    }
[2551]875
[2676]876    // Global variable.
877    sort_box_type = sort;
878    search_box_type = search;
879
[2796]880    draw_box.prepare_box(true);
[2676]881    proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box);
882    current_page = 1;
883//Comentado para nao sobrepor o numero de msgs nao lidas ao utilizar os filtros
884//update_menu();
[2551]885}
886
[2561]887function make_tr_message(headers_msgs, msg_folder)
888{
[2734]889        var tr_element = document.createElement('tr');
890        tr_element.style.height = preferences.line_height;
891        tr_element.id = headers_msgs.msg_number;
[2551]892
[2734]893        tr_element.msg_sample = "";
894        //if(headers_msgs.msg_sample && headers_msgs.msg_sample.preview_msg_subject != "")
895        if(headers_msgs.msg_sample && preferences.preview_msg_subject == "1")
[2676]896        {
[2734]897                tr_element.msg_sample = headers_msgs.msg_sample.body.substr(0,120) + "..."; //trecho do body que sera exibido com o assunto;
[2551]898        }
[2734]899        tr_element.tip = "";
900        if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1")
[2551]901        {
[2734]902                tr_element.tip = headers_msgs.msg_sample.body.substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip;
[2676]903        }
[2551]904
[2734]905        if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')){
906                if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && parseInt(preferences.use_important_flag)))
907                        add_className(tr_element, 'flagged_msg');
908                add_className(tr_element, 'tr_msg_unread');
[2551]909        }
[2676]910        else{
[2734]911                if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && parseInt(preferences.use_important_flag)))
912                        add_className(tr_element,'flagged_msg');
[2551]913        }
914
[2734]915        if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N'))
916                add_className(tr_element, 'tr_msg_unread');
[2551]917
[2734]918        if (headers_msgs.Flagged == 'F')
919                add_className(tr_element,'flagged_msg');
[2551]920
[2752]921        td_element1 = createAndSet("TD",['class','width'],['td_msg','1%']);
922        _chkbox = createAndSet("INPUT", ['type','class','id'], ['checkbox','checkbox',"check_box_message_"+headers_msgs.msg_number]);
923        _chkbox.onclick = function(e){
[2734]924                if (is_ie)
925                        changeBgColor(window.event,headers_msgs.msg_number);
926                else
927                        changeBgColor(e,headers_msgs.msg_number);
928        };
[2752]929        td_element1.appendChild(_chkbox);
[2551]930
[2734]931        td_element2 = document.createElement("TD");
932        td_element2.className = "td_msg";
933        td_element2.setAttribute("width", "2%");
934        if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0)
[3081]935                td_element2.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/clip.png" title="' + url_decode(headers_msgs.attachment.names) + '">';
[2551]936
[2734]937        td_element21 = document.createElement("TD");
938        td_element21.className = "td_msg";
939        td_element21.setAttribute("width", "1%");
940        td_element21.id = "td_message_answered_"+headers_msgs.msg_number;
[2676]941
[2734]942        if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0) {
943                attach_name = headers_msgs.attachment.names.split(", ");
[2752]944                for(var item=0; item < attach_name.length; item++)
[2734]945                {
946                        if (url_decode(attach_name[item]) != 'smime.p7s' && url_decode(attach_name[item]) != 'smime.p7m'){
[3081]947                                td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/clip.png" title="' + url_decode(attach_name[item]) + '">';
[2734]948                                break;
949                        }
950                }
951        }
[2676]952
[2734]953        if ((headers_msgs.Forwarded == 'F')  || (headers_msgs.Draft == 'X' && headers_msgs.Answered == 'A')){
954                td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/forwarded.gif" title="'+get_lang('Forwarded')+'">';
955                headers_msgs.Draft = '';
956                headers_msgs.Answered = '';
957        }
958        else if (headers_msgs.Draft == 'X')
959                td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/draft.gif" title="'+get_lang('Draft')+'">';
960        else if (headers_msgs.Answered == 'A')
961                td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/answered.gif" title="'+get_lang('Answered')+'">';
962        else
963                td_element21.innerHTML = "&nbsp;&nbsp;&nbsp;";
[2551]964
[2734]965        td_element22 = document.createElement("TD");
966        td_element22.className = "td_msg";
967        td_element22.setAttribute("width", "1%");
968        td_element22.id = "td_message_signed_"+headers_msgs.msg_number;
[2561]969
[2734]970        switch(headers_msgs.ContentType)
971        {
972                case "signature":
973                {
974                        td_element22.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed_msg.gif" title="' + get_lang('Signed message') + '">';
975                        break;
976                }
977                case "cipher":
978                {
979                        td_element22.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/lock.gif" title="' + get_lang('Crypted message') + '">';
980                        break;
981                }
982                default:
983                {
984                        break;
985                }
986        };
[2551]987
[2734]988        td_element23 = document.createElement("TD");
989        td_element23.className = "td_msg";
990        td_element23.setAttribute("width", "1%");
991        td_element23.id = "td_message_important_"+headers_msgs.msg_number;
[2551]992
[2752]993        if (headers_msgs.Flagged == 'F' || (parseInt(preferences.use_important_flag) && headers_msgs.Importance.toLowerCase().indexOf("high") != -1))
[2734]994        {
995                td_element23.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/important.gif" title="'+get_lang('Important')+'">';
996        }
997        else
998                td_element23.innerHTML = "&nbsp;&nbsp;&nbsp;";
[2551]999
[2734]1000        td_element24 = document.createElement("TD");
1001        td_element24.className = "td_msg";
1002        td_element24.setAttribute("width", "1%");
1003        td_element24.id = "td_message_sent_"+headers_msgs.msg_number;
1004        td_element24.innerHTML = "&nbsp;&nbsp;&nbsp;";
1005        // preload images
1006        var _img_sent = new Image();
1007        _img_sent.src   = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/sent.gif';
1008        var _img_unseen = new Image();
1009        _img_unseen.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/unseen.gif';
[2551]1010
[2734]1011        var td_element25 = document.createElement("TD");
1012        td_element25.className = "td_msg";
1013        td_element25.setAttribute("width", "1%");
1014        td_element25.id = "td_message_unseen_"+headers_msgs.msg_number;
1015        if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N'))
1016                td_element25.innerHTML = "<img src ='"+_img_unseen.src+"' title='"+get_lang('Unseen')+"'>";
1017        else
1018                td_element25.innerHTML = "<img src ='"+URL_SERVER +"expressoMail1_2/templates/"+template+"/images/seen.gif' title='"+get_lang('Seen')+"'>";
[2551]1019
[2676]1020        td_element3 = document.createElement("TD");
[2734]1021        td_element3.className = "td_msg";
1022        td_element3.id = "td_who_"+ headers_msgs.msg_number;
1023        td_element3.setAttribute("width", "20%");
1024        var _onclick = function(){
[3095]1025                try {
1026                        InfoContact.hide();
1027                }catch(e){
1028                        if(e.toString().match("InfoContact is null")){
1029                                return false;
1030                        }
1031                };
1032                proxy_mensagens.get_msg(headers_msgs, msg_folder,true, show_msg);
[2676]1033        };
[2734]1034        td_element3.onclick = _onclick;
1035        td_element3.innerHTML = '&nbsp;';
[2551]1036
[2734]1037        if (typeof(headers_msgs.from) == 'undefined')
1038                return false;
[2927]1039        if( headers_msgs.from.email && headers_msgs.from.email.toLowerCase() == Element("user_email").value )
[2734]1040        {
1041                td_element3.onmouseover = function () {
1042                        this.title=headers_msgs.to.email;
1043                };
1044                if (headers_msgs.Draft == 'X')
1045                        td_element3.innerHTML += "<span style=\"color:red\">("+get_lang("Draft")+") </span>";
1046                else{
1047                        if(headers_msgs.to.email != null && headers_msgs.to.email.toLowerCase() != Element("user_email").value)
1048                                td_element24.innerHTML = '<img valign="center" src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/sent.gif" title="'+get_lang('Sent')+'">';
1049
1050                        if ((headers_msgs.to)&&(headers_msgs.to.name != null))
1051                                td_element3.innerHTML += headers_msgs.to.name;
1052                        else if (headers_msgs.to){
1053                                td_element3.innerHTML += headers_msgs.to.email;
1054                        }
1055                }
1056        }
1057        else{
1058                if (headers_msgs.Draft == 'X'){
1059                        td_element3.innerHTML = "<span style=\"color:red\">("+get_lang("Draft")+") </span>";
1060                }
1061                else{
1062                        var spanSender = document.createElement("SPAN");
1063                        spanSender.onmouseover = function (event) {
1064                                this.style.textDecoration = "underline";try {
1065                                        InfoContact.begin(this,headers_msgs.from.email)
1066                                } catch(e){};
1067                        };
1068                        spanSender.onmouseout = function (){
1069                                try {
1070                                        this.style.textDecoration = "none"; clearTimeout(InfoContact.timeout);
1071                                } catch(e){}
1072                        };
1073                        spanSender.innerHTML =  headers_msgs.from.name != null ? headers_msgs.from.name : headers_msgs.from.email;
1074                        if (spanSender.innerHTML.indexOf(" ") == '-1' && spanSender.innerHTML.length > 25){
1075                                spanSender.innerHTML = spanSender.innerHTML.substring(0,25) + "...";
1076                        }
1077                        else if (spanSender.innerHTML.length > 40 ){
1078                                spanSender.innerHTML = spanSender.innerHTML.substring(0,40) + "...";
1079                        }
1080                        td_element3.appendChild(spanSender);
1081                }
1082        }
[2676]1083        td_element4 = document.createElement("TD");
[2734]1084        td_element4.className = "td_msg";
1085        td_element4.setAttribute("width", "50%");
1086        td_element4.onclick = _onclick;
1087        //              td_element4.setAttribute("style","white-space:nowrap;");
1088        td_element4.innerHTML = !is_ie ? "<a nowrap id='a_message_"+tr_element.id+"'>&nbsp;" : "&nbsp;";
[2551]1089
[2734]1090        if ((headers_msgs.subject)&&(headers_msgs.subject.length > 50))
1091        {
1092                //                      if( (headers_msgs.subject.length+tr_element.msg_sample.length)>
1093                td_element4.innerHTML += headers_msgs.subject.substring(0,50) + "..." + "<span style=\"color:#b3b3b3;\">  " + tr_element.msg_sample +"</span>";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem;
1094        }
1095        else
1096        {
1097                td_element4.innerHTML += headers_msgs.subject + "<span style=\"color:#b3b3b3;\">  " + tr_element.msg_sample + "</span>";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem;
1098        }
1099
1100        td_element4.title=tr_element.tip;
1101        if(!is_ie){
1102                td_element4.innerHTML += "</a>";
1103        }
1104
1105
[2676]1106        td_element5 = document.createElement("TD");
[2734]1107        td_element5.className = "td_msg";
[2676]1108        td_element5.setAttribute("width", "14%");
[2734]1109        td_element5.onclick = _onclick;
1110        td_element5.setAttribute("align", "center");
[3058]1111        var date_msg = new Date(headers_msgs.udate*1000);
[3111]1112        td_element5.innerHTML = strDateShow(headers_msgs.udate);
[3058]1113        td_element5.title = norm(date_msg.getDate()) + '/' + norm(date_msg.getMonth()+1) + '/' +date_msg.getFullYear();
1114        td_element5.alt = td_element5.title;
[2734]1115
[2676]1116        td_element6 = document.createElement("TD");
[2734]1117        td_element6.className = "td_msg";
[2676]1118        td_element6.setAttribute("width", "14%");
[2734]1119        td_element6.setAttribute("noWrap","true");
1120        td_element6.setAttribute("align", "center");
[2752]1121        td_element6.onclick = _onclick;
[2551]1122
[2734]1123        td_element6.innerHTML = borkb(headers_msgs.Size);
1124
[2752]1125        return appendChilds(tr_element,td_element1,td_element2,td_element21,td_element22,td_element23,td_element24,td_element25,td_element3,td_element4,td_element5,td_element6);
[2734]1126}
[2743]1127function draw_folder(){
1128}
[2551]1129
[2743]1130draw_folder.prototype.draw_newBox = function(headers_msgs,msg_folder,alternate){
1131        this.headers_msgs = headers_msgs;
[2904]1132        this.prepare_box( alternate );
[2743]1133        this.draw_box_messages(headers_msgs,msg_folder);
[2931]1134};
[2743]1135
1136draw_folder.prototype.prepare_box = function(alternate){
[2734]1137        if (alternate)
1138                kill_current_box();
1139
1140        if(is_ie)
1141                document.getElementById("border_table").width = "99.5%";
1142
1143        openTab.content_id[numBox] = document.getElementById("content_id_"+numBox);
1144        openTab.type[numBox] = 0;
[2930]1145        _tbl_msghead_bx = Element("_tbl_msghead_bx_"+numBox);
1146        if (_tbl_msghead_bx == null){
[2734]1147                var table_element = document.createElement("TABLE");
[2930]1148                table_element.setAttribute("id", "_tbl_msghead_bx_"+numBox);
[2734]1149                table_element.setAttribute('class',  "table_message_header_box");
1150
1151                var tbody_element = document.createElement("TBODY");
1152
1153                tr_element = createAndSet("TR",['class'],['message_header']);
1154                td_element1 = createAndSet("TD",['width'],['1%']);
[2929]1155                _chkbox_element = createAndSet("INPUT",['id','type','class'],["chkbox_sel_allmsg","checkbox","checkbox"]);
[2752]1156                _chkbox_element.onclick = function(){
[2734]1157                        select_all_messages(this.checked);
1158                };
[2752]1159                _chkbox_element.onmouseover = function () {
[2734]1160                        this.title=get_lang('Select all messages.');
1161                };
[2752]1162                _chkbox_element.onkeydown = function (e){
[2734]1163                        if (is_ie)
1164                        {
1165                                if ((window.event.keyCode) == 46)
1166                                        proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
1167                        }
1168                        else
1169                        {
1170                                if ((e.keyCode) == 46)
1171                                        proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
1172                        }
1173                };
1174
[2752]1175                td_element1.appendChild(_chkbox_element);
[2734]1176
1177                td_element2 = document.createElement("TD");
1178                td_element2.setAttribute("width", "7%");
[2929]1179                td_element3 = createAndSet("TD",['width','id','align'],['29%',"_msgheadSORTFROM_"+numBox,'left'],get_lang("Who"));
[2734]1180                td_element3.onclick = function () {
1181                        sort_box(search_box_type,'SORTFROM');
1182                };
[2929]1183                td_element4 = createAndSet("TD",['width','id','align'],['38%',"_msgheadSORTSUBJECT_"+numBox,"left"],get_lang("Subject"));
[2734]1184                td_element4.onclick = function () {
1185                        sort_box(search_box_type,'SORTSUBJECT');
1186                };
[2929]1187                td_element5 = createAndSet("TD",['width','id','align'],["14%","_msgheadSORTARRIVAL_"+numBox,"center"],get_lang("Date"));
[2734]1188                td_element5.onclick = function () {
1189                        sort_box(search_box_type,'SORTARRIVAL');
1190                };
[2929]1191                td_element6 = createAndSet("TD",['width','id','align'],["14%","_msgheadSORTSIZE_"+numBox,"left"],get_lang("Size"));
[2734]1192                td_element6.onclick = function () {
1193                        sort_box(search_box_type,'SORTSIZE');
1194                };
1195                appendChilds(tr_element,td_element1,td_element2);
1196                var td_element21 = document.createElement("TD");
1197                td_element21.innerHTML = "&nbsp;&nbsp;&nbsp;";
1198                var td_element22 = document.createElement("TD");
1199                td_element22.innerHTML = "&nbsp;&nbsp;&nbsp;";
1200                var td_element23 = document.createElement("TD");
1201                td_element23.innerHTML = "&nbsp;&nbsp;";
1202
1203                tbody_element.appendChild(appendChilds(tr_element,td_element21,td_element22,td_element23,td_element3,td_element4,td_element5,td_element6));
1204                table_element.appendChild(tbody_element);
1205                openTab.content_id[numBox].appendChild(table_element);
[2676]1206        }
[2734]1207        draw_header_box();
1208        var _divScroll = document.getElementById("divScrollMain_"+numBox);
1209        if(!_divScroll){
1210                _divScroll = document.createElement("DIV");
1211                _divScroll.id = "divScrollMain_"+numBox;
[2676]1212        }
[2551]1213
[2734]1214        _divScroll.style.overflowY = "auto";
1215        _divScroll.style.overflowX = "hidden";
1216        _divScroll.style.width  ="100%";
[2551]1217
[2735]1218        var _t_element = createAndSet("TABLE",['id','class','borderColorDark','frame','rules','cellPadding','cellSpacing'],["table_box","table_box","#bbbbbb","void","rows","0","0"]);
1219        _t_element.onkeydown = function (e){
[2734]1220                if (is_ie)
1221                {
1222                        if ((window.event.keyCode) == 46)
1223                        {
1224                                //delete_all_selected_msgs_imap();
1225                                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
1226                        }
1227                }
1228                else
1229                {
1230                        if ((e.keyCode) == 46)
1231                        {
1232                                //delete_all_selected_msgs_imap();
1233                                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
1234                        }
1235                }
1236        };
1237        if (is_ie)
[2735]1238                _t_element.style.cursor = "hand";
[2551]1239
[2735]1240        var _tbody_element = document.createElement("TBODY");
1241        _tbody_element.setAttribute("id", "tbody_box");
1242        _t_element.appendChild(_tbody_element);
[2551]1243
[2735]1244        _divScroll.appendChild(_t_element);
[2551]1245
[2735]1246        openTab.content_id[numBox].appendChild(_divScroll);
[2913]1247        if (alternate)
1248                _divScroll.appendChild(loading_img);
[2743]1249};
[2735]1250
[2743]1251draw_folder.prototype.draw_box_messages = function(msg_folder){
[2735]1252        openTab.content_id[numBox] = document.getElementById("content_id_"+numBox);
1253        var _divScroll = document.getElementById("divScrollMain_"+numBox);
[2913]1254        try{
1255                loading_img = _divScroll.removeChild( loading_img );
1256        }
1257        catch(e){ }
[2735]1258        var tbody_element = _divScroll.firstChild.firstChild;
1259
[2734]1260        var f_unseen = 0;
1261        openTab.imapBox[numBox] = msg_folder;
[2743]1262        if (this.headers_msgs.num_msgs == 0){
[2734]1263                var tr_info = document.createElement("TR");
[2745]1264                var td_info = createAndSet("TD",['colspan','background','align','style'],
1265                                ['10','#FFF','center','padding-top: 25px;font-weight:bold;font-size:11pt;'],get_lang("This mail box is empty"));
[2734]1266                tr_info.setAttribute("id", "msg_info");
1267                tr_info.appendChild(td_info);
1268                tbody_element.appendChild(tr_info);
1269        }
[2551]1270
1271
[2743]1272        for (var i=0; i < this.headers_msgs.length; i++){
1273                if ((this.headers_msgs[i].Unseen == 'U') || (this.headers_msgs[i].Recent == 'N'))
[2734]1274                        f_unseen++;
[2743]1275                tr_element = make_tr_message(this.headers_msgs[i], msg_folder);
[2734]1276                if (tr_element){
1277                        tbody_element.appendChild(tr_element);
1278                        add_className(tr_element, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read');
1279                }
1280                if ( _dragArea == null )
1281                        _dragArea = new DragArea( );
[2743]1282                _dragArea.makeDragged(tr_element, this.headers_msgs[i].msg_number, this.headers_msgs[i].subject, true);
[2676]1283        }
[2551]1284
[2743]1285        if ((preferences.use_shortcuts == '1') && (this.headers_msgs[0]))
1286                select_msg(this.headers_msgs[0].msg_number, 'null', true);
[2551]1287
[2734]1288        var tdFolders  =  Element("folderscol");
1289        tdFolders.style.display = preferences.hide_folders == '1'  ? "none" : "";
[2743]1290        draw_footer_box(this.headers_msgs.num_msgs);
[2734]1291        Element('main_table').style.display = '';
[3073]1292        resizeWindow();
[2734]1293        if(debug) {
1294                var _eTime = new Date();
1295                _eTime = _eTime.getTime();
1296                alert("Carregou em "+(_eTime - _bTime)+" ms");
1297        }
1298        var msg_folder = Element('msg_folder').value;
1299        var msg_number = Element('msg_number').value;
1300        if(!msg_folder && msg_number) {
1301                new_message('new','null');
1302        }
1303        else if(msg_folder && msg_number){
[2743]1304                proxy_mensagens.get_msg(this.headers_msgs, url_encode(msg_folder),true, show_msg);
[2734]1305                Element('msg_folder').value = '';
1306                Element('msg_number').value = '';
1307        }
[2551]1308
1309
[3095]1310        var scripts = new Array("jscode/messages_controller",
1311                        "jscode/InfoContact",
[3073]1312                        "jscode/local_messages",
1313                        "jscode/draw_api_messages",
1314                        "jscode/draw_messages");
1315        expresso.connector.loadAllScripts(scripts);
1316
[2734]1317        // Loading Quota View Folder Component (if exists...)
1318        if(Element("table_quota"))
1319                expresso.connector.loadScript("jscode/InfoQuota");
[2743]1320        alternate_border(numBox);
[2676]1321};
[2551]1322
[3073]1323function draw_footer_box(num_msgs){
1324        folder = get_current_folder();
1325        var span_R = Element("table_message"); 
1326        var span_options = Element("span_options");     
1327        if(!span_options) {
1328                span_options = document.createElement("TD");   
1329                span_options.style.fontSize = "12";
1330                span_options.id = "span_options";
1331                span_R.appendChild(span_options);
1332        }
1333
1334        var change_font_color = 'onmouseover="var last_class = this.className;'+
1335                'if (this.className != \'message_options_over\')'+
1336                                'this.className=\'message_options_active\'; '+
1337                                'this.onmouseout=function(){this.className=last_class;}"';
1338
1339                                span_options.innerHTML =
1340                                '<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>'+
1341                                '<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>'+
1342                                ((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>')+
1343                                //              '<span class="message_options_print"><span ' + change_font_color + ' title="'+get_lang("Print")+'" class="message_options" onclick=print_all()>'+get_lang("Print")+'</span></span>'+
1344                                ((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>') +
1345                                ((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>');
1346                                if(preferences.use_local_messages==1 && !expresso_offline)
1347                                if(proxy_mensagens.is_local_folder(current_folder))
1348                                span_options.innerHTML += '&nbsp; <span title="'+get_lang("Unarchive")+'" class="message_options" onclick="expresso_local_messages.unarchive_msgs(\''+folder+'\',null)">'+get_lang("Unarchive")+'</span>';
1349                                else
1350                                span_options.innerHTML += '&nbsp; <span title="'+get_lang("Archive")+'" class="message_options" onclick="archive_msgs(\''+folder+'\',null)">'+get_lang("Archive")+'</span>';
1351                                if (use_spam_filter) {
1352                                if ( current_folder == 'INBOX'+cyrus_delimiter+'Spam' ) {
1353                                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>';
1354                                }
1355                                else {
1356                                        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>';
1357                                }
1358                                }
1359                                var span_D = Element("span_D");
1360                                if(!span_D){
1361                                        span_D = document.createElement("TD"); 
1362                                        span_D.align = "right";
1363                                        span_D.style.fontSize = "12";
1364                                        span_D.id = "span_D";
1365                                        span_R.appendChild(span_D);
1366                                }
1367                                span_D.innerHTML =
1368                                        get_lang("List")+': '+
1369                                        '<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>, '+
1370                                        '<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>, '+
1371                                        '<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>, '+
1372                                        '<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>, '+
1373                                        '<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;';
1374                                draw_paging(num_msgs);
1375                                Element("tot_m").innerHTML = num_msgs; 
1376};
1377
1378// Objeto Map, talvez o ideal fosse adicionar este objeto à Api do egroupware, e carregá-lo
1379// aqui no expressoMail.
1380function Map()
1381{
1382        this.keys = new Array();
1383        this.values = new Array();
1384}
1385
1386Map.prototype.add = function(key, value)
1387{
1388        this.keys.push(key);
1389        this.values.push(value);
1390};
1391
1392Map.prototype.get = function(key)
1393{
1394        result = new Array();
1395        for (i = 0; i < this.keys.length; i++)
1396        {
1397                if (this.keys[i] == key)
1398                {
1399                        result.push(this.values[i]);
1400                }
1401        }
1402
1403        if (result.length == 0)
1404        {
1405                return null;
1406        }
1407
1408        return result;
1409};
1410
1411var translatedFolders = new Map();
1412
1413
[2743]1414draw_box = new draw_folder();
Note: See TracBrowser for help on using the repository browser.