source: trunk/expressoMail1_2/js/jscode/common_functions.js @ 2616

Revision 2616, 21.3 KB checked in by amuller, 14 years ago (diff)

Ticket #911 - Aproveitamento de funções comuns do expressoMail

Line 
1// BEGIN: FUNCTION RESIZE WINDOW
2/*
3if (!expresso_offline) {
4        var _showBar = showBar;
5        var _hideBar = hideBar;
6}
7*/
8
9function __showBar(){
10        _showBar();
11        resizeWindow();
12}
13
14function __hideBar(){
15        _hideBar();
16        resizeWindow();
17}
18showBar = __showBar;
19hideBar = __hideBar;
20
21window.onresize = resizeWindow;
22
23function resizeWindow(){
24
25        var bar = Element("toolbar");
26        var offset = 0;
27        if(bar.style.visibility != 'hidden')
28                offset = (bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight);     
29
30        var screenHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight;
31        var defaultHeight = screenHeight - offset;
32
33        if(typeof(BordersArray) != 'undefined') {
34                for(var i = 1; BordersArray.length > 1 && i < BordersArray.length;i++) {
35                        var div_scroll = Element("div_message_scroll_"+BordersArray[i].sequence);
36                        var div = Element("content_id_"+BordersArray[i].sequence);
37
38                        // This comented code cause/avoid (!?) Firefox to stuck some request
39                        if(div)
40//                              div.setAttribute("style","height: "+parseInt(defaultHeight - 90)+"px;");
41                                div.style.height = defaultHeight - 90;
42                        if(div_scroll)
43//                              div_scroll.setAttribute("style","height: "+parseInt(defaultHeight - 130)+"px;");
44                                div_scroll.style.height = defaultHeight - 130;
45                }
46        }
47
48        if(Element('content_folders'))
49                Element('content_folders').style.height = defaultHeight - (is_ie ? 165 : 150);
50        if(Element("divScrollMain_"+numBox))
51                Element("divScrollMain_"+numBox).style.height   = defaultHeight - (is_ie ? 111 : 110);
52}
53// END: FUNCTION RESIZE WINDOW
54
55var _beforeunload_ = window.onbeforeunload;
56
57window.onbeforeunload = function()
58{
59        return unloadMess();
60};
61
62function unloadMess(){
63        if (typeof(expresso_mail_sync) != "undefined" && expresso_mail_sync.working) {
64                var mess = get_lang("You're about archiving your e-mails from server. Do you really want to stop this action?");
65                return mess;
66        }
67        else {
68                var mess = get_lang("Your message has not been sent and will be discarted.");
69                for (var i = 0; i < BordersArray.length; i++) {
70                        var body = Element('body_' + BordersArray[i].sequence);
71                        if (body && body.contentWindow && body.contentWindow.document.designMode.toLowerCase() == 'on') {
72                                return mess;
73                        }
74                }
75        }
76}
77
78// Translate words and phrases using user language from eGroupware.
79function get_lang(_key) {
80        try
81        {
82                var key = _key.toLowerCase();
83                if(array_lang[key])
84                        var _value = array_lang[key];
85                else
86                        var _value = _key+"*";
87
88                if(arguments.length > 1)
89                        for(j = 1; typeof(arguments[j]) != 'undefined'; j++)
90                                _value = _value.replace("%"+j,arguments[j]);
91                return _value;
92        }
93        catch ( e )
94        {
95                return _key+"*";
96        }
97}
98
99// Change the class of message.
100// In refresh, the flags UnRead and UnSeen don't exist anymore.
101function set_msg_as_read(msg_number, selected){
102        tr_message = Element(msg_number);
103        if (exist_className(tr_message, 'tr_msg_unread'))
104                decrement_folder_unseen();
105        remove_className(tr_message, 'tr_msg_unread');
106        remove_className(tr_message, 'selected_msg');
107        expresso.connector.purgeCache();
108        return true;
109}
110
111function msg_is_read(msg_number, selected){
112        tr_message = Element(msg_number);
113        return !(tr_message && LTrim(tr_message.className).match('tr_msg_unread'));
114}
115
116function set_msg_as_unread(msg_number){
117        tr_message = Element(msg_number);
118        if ((exist_className(tr_message, 'tr_msg_read') || exist_className(tr_message, 'tr_msg_read2')) && (!exist_className(tr_message, 'tr_msg_unread')))
119                increment_folder_unseen();     
120        remove_className(tr_message, 'selected_msg');
121        add_className(tr_message, 'tr_msg_unread');
122}
123
124function set_msg_as_flagged(msg_number){
125        var msg = Element(msg_number);
126        remove_className(msg, 'selected_msg');
127        add_className(msg, 'flagged_msg');
128        Element("td_message_important_"+msg_number).innerHTML = "<img src ='templates/"+template+"/images/important.gif' title='"+get_lang('Important')+"'>";
129}
130
131function set_msg_as_unflagged(msg_number){
132        var msg = Element(msg_number);
133        remove_className(msg, 'selected_msg');
134        remove_className(msg, 'flagged_msg');
135        Element("td_message_important_"+msg_number).innerHTML = "&nbsp;&nbsp;&nbsp;";
136}
137
138
139function get_current_folder(){
140        return current_folder;
141}
142
143// Kill current box (folder or page).
144function kill_current_box(){
145        var box = document.getElementById("table_box");
146        if (box != null)
147                box.parentNode.removeChild(box);
148        else
149                return false;
150}
151
152// Kill current paging.
153function kill_current_paging(){
154        var paging = Element("span_paging");
155        if (paging != null)
156                paging.parentNode.removeChild(paging);
157}
158
159function show_hide_span_paging(ID){
160        if ((ID != "0") && Element("span_paging"))
161                Element("span_paging").style.display = 'none';
162        else
163                if (Element("span_paging"))
164                        Element("span_paging").style.display = '';
165}
166
167//Get the current number of messages in a page.
168function get_messages_number_in_page(){
169        //Get element tBody.
170        main = document.getElementById("tbody_box");
171               
172        // Get all TR (messages) in tBody.
173        main_list = main.childNodes;
174       
175        return main_list.length;
176}
177
178function download_local_attachment(url) {
179        if (div_attachment == null){
180                var div_attachment = document.createElement("DIV");
181                div_attachment.id="id_div_attachment";
182                document.body.appendChild(div_attachment);
183        }
184        div_attachment.innerHTML="<iframe style='display:none;width:0;height:0' name='attachment' src='"+url+"'></iframe>";
185}
186
187function download_attachments(msg_folder, msg_number, idx_file, msg_part, encoding, new_file_name, show_iframe){
188        div_attachment = document.getElementById("id_div_attachment");
189        var params = '';
190       
191        if (div_attachment == null){
192                var div_attachment = document.createElement("DIV");
193                div_attachment.id="id_div_attachment";
194                document.body.appendChild(div_attachment);
195        }
196        if(new_file_name)
197                params = "&newfilename="+escape(new_file_name);
198        if(encoding)
199                params += "&encoding="+encoding;
200
201        div_attachment.innerHTML="<iframe style='display:none;width:0;height:0' name='attachment' src='inc/gotodownload.php?msg_folder="+msg_folder+"&msg_number="+msg_number+"&idx_file="+idx_file+"&msg_part="+msg_part+params+"'></iframe>";
202}
203
204function download_all_attachments(msg_folder, msg_number){
205        var handler_source = function(data){           
206                download_attachments(null, null, data, null,null,'anexos.zip');
207        };
208        cExecute("expressoMail1_2.exporteml.download_all_attachments",handler_source,"folder="+msg_folder+"&num_msg="+msg_number);
209}
210//ADD forwarded files
211function addForwardedFile(id_border,file_name,link){
212        divFiles = document.getElementById("divFiles_"+id_border);
213
214        if (! divFiles)
215                return false;
216       
217        if (divFiles.lastChild)
218                var countDivFiles = parseInt(divFiles.lastChild.id.split('_')[2]) + 1;
219
220        if (! countDivFiles)
221                var countDivFiles = 1;
222       
223        divFile = document.createElement('DIV');
224       
225
226        if (!expresso_offline) {
227                if (!is_ie) {
228                        var inputFile = document.createElement("INPUT");
229                       
230                        var tmp_id_border = document.createAttribute('id_border');
231                        tmp_id_border.value = id_border;
232                       
233                        inputFile.setAttributeNode(tmp_id_border);
234                        inputFile.id = "inputFile_" + id_border + "_" + countDivFiles;
235                        inputFile.type = 'file';
236                        inputFile.size = 50;
237                        inputFile.maxLength = 255;
238                        inputFile.name = 'file_' + countDivFiles;
239                        inputFile.style.display = "none";
240                }
241                else {
242                        var inputFile = document.createElement("link");
243                       
244                        var tmp_id_border = document.createAttribute('id_border');
245                        tmp_id_border.value = id_border;
246                       
247                        inputFile.setAttributeNode(tmp_id_border);
248                        inputFile.id = "inputFile_" + id_border + "_" + countDivFiles;
249                        inputFile.name = 'file_' + countDivFiles;
250                       
251                       
252                }
253               
254        }
255        else {
256                var inputFile = document.createElement("input");
257                inputFile.type = 'hidden';
258                inputFile.name = 'offline_forward_' + countDivFiles;
259        }       
260        divFile.appendChild(inputFile);
261
262        var a_tmp = new Array();
263        a_tmp[0] = "local_";
264        a_tmp[1] = 'file_' + countDivFiles;
265        a_tmp[2] = file_name;
266        s_tmp = escape(expresso.connector.serialize(a_tmp));
267        var checkbox = document.createElement("INPUT");
268        checkbox.type = "checkbox";
269        checkbox.id = "checkbox_"+id_border+"_"+countDivFiles;
270        checkbox.name = "local_attachments[]";
271       
272        checkbox.value = s_tmp;
273        divFile.appendChild(checkbox);
274       
275        var link_attachment = document.createElement("A");
276        link_attachment.setAttribute("href", link);
277       
278        link_attachment.innerHTML = file_name;
279        divFile.appendChild(link_attachment);
280       
281        countDivFiles++;
282        divFile.id = "divFile_"+id_border+"_"+countDivFiles;   
283        divFiles.appendChild(divFile);
284
285        checkbox.checked = true; //Incrível, mas no Internet Explorer o checked só funciona efetivamente se o elemente já estiver renderizado... por isso só aqui eu seleciono ele...
286        return inputFile;
287}
288
289// Add Input File Dynamically.
290function addFile(id_border){
291        divFiles = document.getElementById("divFiles_"+id_border);
292        if (! divFiles)
293                return false;
294       
295        if (divFiles.lastChild)
296                var countDivFiles = parseInt(divFiles.lastChild.id.split('_')[2]) + 1;
297
298        if (! countDivFiles)
299                var countDivFiles = 1;
300       
301        divFile = document.createElement('DIV');
302       
303       
304        divFile.innerHTML = "<input type='file' id_border='"+id_border+"' size='50' maxLength='255' onchange=\"function () {validateFileExtension(this.value, this.id.replace('input','div'), this.getAttribute('id_border'));};\" id='"+"inputFile_"+id_border+"_"+countDivFiles+"' name='file_"+countDivFiles+"'>";
305
306       
307        var linkFile = document.createElement("A");
308        linkFile.id = "linkFile_"+id_border+"_"+countDivFiles;
309        linkFile.href='javascript:void(0)';
310        linkFile.onclick=function () {removeFile(this.id.replace("link","div")); return false;};
311        linkFile.innerHTML=get_lang("Remove"); 
312        //divFile.innerHTML += "&nbsp;&nbsp;";
313        divFile.appendChild(linkFile);
314        divFile.id = "divFile_"+id_border+"_"+countDivFiles;   
315        divFiles.appendChild(divFile);
316
317       
318
319        return document.getElementById("inputFile_"+id_border+"_"+countDivFiles);
320}
321
322var setTimeout_write_msg = 0;
323var old_msg = false;
324// Funcao usada para escrever mensagem
325// notimeout = True : mensagem nao apaga
326function write_msg(msg, notimeout){     
327       
328        if (setTimeout_write_msg)
329                clearTimeout(setTimeout_write_msg);
330       
331        var msg_div = Element('em_div_write_msg');
332        var old_divStatusBar = Element("divStatusBar");
333
334        if(!msg_div) {
335                msg_div = document.createElement('DIV');
336                msg_div.id = 'em_div_write_msg';
337                msg_div.className = 'em_div_write_msg';
338                old_divStatusBar.parentNode.insertBefore(msg_div,old_divStatusBar);
339        }
340       
341        if( document.getElementById('JabberMessenger'))
342                loadscript.adIcon();
343
344        msg_div.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0"><tbody><tr><th width="40%"></th><th noWrap class="action_info_th">'+msg+'</th><th width="40%"></th></tr></tbody></table>';
345
346        old_divStatusBar.style.display = 'none';
347        msg_div.style.display = '';     
348        // Nao ponha var na frente!! jakjr
349        handle_write_msg = function(){
350                try{
351                        if(!old_msg)
352                                clean_msg();
353                        else
354                                write_msg(old_msg, true);                       
355                }
356                catch(e){}
357        };
358        if(notimeout)
359                old_msg = msg;
360        else
361                setTimeout_write_msg = setTimeout("handle_write_msg();", 5000);
362}
363// Funcao usada para apagar mensagem sem timeout
364function clean_msg(){
365        old_msg = false;
366        var msg_div = Element('em_div_write_msg');
367        var old_divStatusBar = Element("divStatusBar");
368        if(msg_div)
369                msg_div.style.display = 'none';
370        old_divStatusBar.style.display = '';   
371}
372
373function make_body_reply(body, to, date_day, date_hour){
374        to = to.replace("<","&lt;");
375        to = to.replace(">","&gt;");
376        block_quoted_body ="<br><br>";
377        block_quoted_body += get_lang('At %1, %2 hours, %3 wrote:', date_day, date_hour, to);
378        block_quoted_body += "<blockquote style=\"border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;\">";
379        block_quoted_body += body;
380        block_quoted_body += "</blockquote>";
381        return block_quoted_body;
382}
383
384function make_forward_body(body, from, date, subject, to, cc){
385        from = from.replace(/</g,"&lt;");
386        from = from.replace(/>/g,"&gt;");
387        to = to.replace(/</g,"&lt;");
388        to = to.replace(/>/g,"&gt;");
389        var forward_body = '<BR><BR>---------- ' + get_lang('Forwarded message') + ' ----------<BR>';
390        forward_body += get_lang('From') + ': ' + from + '<BR>';
391        forward_body += get_lang('Date') + ': ' + date + '<BR>';
392        forward_body += get_lang('Subject') + ': ' + subject + '<BR>';
393        forward_body += get_lang('To') + ': ' + to+ '<BR>';
394        if(cc != undefined){
395                cc = cc.replace(/</g,"&lt;");
396                cc = cc.replace(/>/g,"&gt;");
397                forward_body += get_lang('CC') + ': ' + cc+ '<BR><BR>';
398        }
399        forward_body += body;
400        return forward_body;
401}
402
403function emMessageSearch(e,value){
404        var     e  = is_ie ? window.event : e;
405        if(e.keyCode == 13) {
406                search_emails(value);
407        }
408}
409
410function emQuickSearch(emailList, field, ID){
411        var quickSearchKeyBegin;
412        var quickSearchKeyEnd;
413        if(expresso_offline) {
414                alert(get_lang('Not allowed in offline mode'));
415                return;
416        }
417               
418        var handler_emQuickSearch = function(data)
419        {
420                window_DropDownContacts = Element('tipDiv');
421                if (window_DropDownContacts.style.visibility != 'hidden'){
422                        window_DropDownContacts.style.visibility = 'hidden';
423                }
424               
425                if ((!data.status) && (data.error == "many results")){
426                        alert(get_lang('More than %1 results. Please, try to refine your search.',200));
427                        return false;
428                }
429                       
430                if (data.length > 0){
431                        if ((field != 'null') && (ID != 'null'))
432                        {
433                                expresso.connector.loadScript("jscode/QuickCatalogSearch");
434                                QuickCatalogSearch.showList(data, quickSearchKeyBegin, quickSearchKeyEnd);
435                        }
436                        else
437                        {
438                                expresso.connector.loadScript("jscode/QuickSearchUser");
439                                QuickSearchUser.showList(data);
440                        }
441                }
442                else
443                        alert(get_lang('None result was found.'));
444                return true;
445        };
446       
447        if ((field != 'null') && (ID != 'null'))
448        {
449                Element(field +'_'+ ID).focus(); //It requires for IE.
450                var i = getPosition(Element(field +'_'+ ID)); //inputBox.selectionStart;
451                var j = --i;
452
453                // Acha o inicio
454        while ((j >= 0) && (emailList.charAt(j) != ',')){j--};
455            quickSearchKeyBegin = ++j;
456
457            // Acha o final
458        while ((i <= emailList.length) && (emailList.charAt(i) != ',')){i++};
459            quickSearchKeyEnd = i;
460
461            // A Chave da Pesquisa
462        var search_for = trim(emailList.substring(quickSearchKeyBegin, quickSearchKeyEnd));
463        }
464        else
465                var search_for = emailList;
466       
467        if (search_for.length < preferences.search_characters_number){
468            alert(get_lang('Your search argument must be longer than %1 characters.', preferences.search_characters_number));
469            return false;
470        }
471       
472        cExecute ("expressoMail1_2.ldap_functions.quicksearch&search_for="+search_for+"&field="+field+"&ID="+ID, handler_emQuickSearch);
473}
474
475function folderbox(){
476        expresso.connector.loadScript("jscode/TreeS");
477        ttree.make_Window();
478}
479
480function filterbox(){
481        expresso.connector.loadScript("jscode/filter");
482        expresso.connector.loadScript("jscode/filters");
483        filters.Forms();
484}
485
486function sharebox(){
487        var handler_imap_getacl = function(data)
488        {
489                var options = '';
490                for (var x in data)
491                {
492                        options += "<option value='"+data[x].uid+"'>"+data[x].cn+"</option>";
493                }
494                expresso.connector.loadScript("jscode/sharemailbox");
495                sharemailbox.makeWindow(options);
496        };
497        cExecute ("expressoMail1_2.imap_functions.getacl", handler_imap_getacl);
498}
499
500function preferences_mail(){
501        location.href="../preferences/preferences.php?appname=expressoMail1_2";
502}
503
504function search_emails(value){
505        expresso.connector.loadScript("jscode/search");
506        EsearchE.showForms(value);
507}
508
509function source_msg(id_msg,folder){
510        var num_msg = id_msg.substr(0,(id_msg.length - 2));
511        var handler_source = function(data){
512                download_attachments(null, null, data, null,null,'fonte_da_mensagem.eml');
513        };
514        cExecute("expressoMail1_2.exporteml.export_msg",handler_source,"folder="+url_decode(folder)+"&msgs_to_export="+num_msg);
515}
516
517function Element (el) {
518        return  document.getElementById(el);
519}
520
521function getPosition(obj)
522{
523        if(typeof obj.selectionStart != "undefined")
524        {
525        return obj.selectionStart;
526        }
527        else if(document.selection && document.selection.createRange)
528        {
529                var M = document.selection.createRange();
530                try
531                {
532                        var Lp = M.duplicate();
533                        Lp.moveToElementText(obj);
534                }
535                catch(e)
536                {
537                        var Lp=obj.createTextRange();
538                }
539               
540                Lp.setEndPoint("EndToStart",M);
541                var rb=Lp.text.length;
542               
543                if(rb > obj.value.length)
544                {
545                        return -1;
546                }
547                return rb;
548        }
549};
550
551function increment_folder_unseen(){
552        var folder_id = get_current_folder();
553
554        var folder_unseen = Element('dftree_'+folder_id+'_unseen');
555        var abas_unseen = Element('new_m').innerHTML;
556        abas_unseen = abas_unseen.match( /[0-9]+/);
557
558        if (folder_unseen)
559        {
560                folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) + 1);
561        }
562        else
563        {
564                tree_folders.getNodeById(folder_id).alter({caption: tree_folders.getNodeById(current_folder).caption + '<font style=color:red>&nbsp(</font><span id="dftree_'+current_folder+'_unseen" style=color:red>1</span><font style=color:red>)</font>'});
565                tree_folders.getNodeById(folder_id)._refresh();
566        }
567        if (abas_unseen)
568        {
569                abas_unseen = parseInt(abas_unseen) + 1;
570                Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>';
571        }
572        else{
573                abas_unseen = Element('new_m').innerHTML;
574                abas_unseen = abas_unseen.match( /[0-9]+/);
575                abas_unseen = parseInt(abas_unseen) + 1;
576                Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>';
577        }
578        if ( current_folder.indexOf( 'INBOX' ) !== 0 && current_folder.indexOf( 'local_' ) !== 0 )
579        {
580                var display_unseen_in_shared_folders = Element('dftree_user_unseen');
581                if ( display_unseen_in_shared_folders )
582                        tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + ( parseInt( display_unseen_in_shared_folders.innerHTML) + 1 ) + '</span><font style=color:red>]</font>' + get_lang("Shared folders")});
583                else
584                        tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">1</span><font style=color:red>]</font>' + get_lang("Shared folders")});
585                tree_folders.getNodeById( 'user' )._refresh();
586        }
587        var display_unseen_in_mailbox = Element('dftree_root_unseen');
588        if(!expresso_offline)
589                var node_to_refresh = 'root';
590        else
591                var node_to_refresh = 'local_root';
592        tree_folders.getNodeById( node_to_refresh )._refresh();
593}
594function decrement_folder_unseen(){
595        var folder_id = get_current_folder();
596
597        var folder_unseen = Element('dftree_'+folder_id+'_unseen');
598        var abas_unseen = Element('new_m').innerHTML;
599        abas_unseen = abas_unseen.match( /[0-9]+/);
600
601        if(!folder_unseen || !abas_unseen)
602                return;
603
604        if ((folder_unseen) && (parseInt(folder_unseen.innerHTML) > 1))
605        {
606                folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) - 1);
607        }
608        else if (parseInt(folder_unseen.innerHTML) <= 1)
609        {
610                var tmp_folder_name = tree_folders.getNodeById(folder_id).caption.split('<');
611                var folder_name = tmp_folder_name[0];
612                tree_folders.getNodeById(folder_id).alter({caption: folder_name});
613                tree_folders.getNodeById(folder_id)._refresh();
614        }
615        if ((abas_unseen) && (parseInt(abas_unseen) > 1))
616        {
617                abas_unseen = (parseInt(abas_unseen) - 1);
618                Element('new_m').innerHTML = '<font style="color:red">' + abas_unseen + '</font>';
619        }
620        else if (parseInt(abas_unseen) <= 1)
621        {
622                Element('new_m').innerHTML = '0';
623        }
624        if ( current_folder.indexOf( 'INBOX' ) !== 0 )
625        {
626                var display_unseen_in_shared_folders = Element('dftree_user_unseen');
627                if ( display_unseen_in_shared_folders )
628                {
629                        var unseen_in_shared_folders = parseInt( display_unseen_in_shared_folders.innerHTML );
630                        unseen_in_shared_folders--;
631                        if ( unseen_in_shared_folders > 0 )
632                                tree_folders.getNodeById( 'user' ).alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_shared_folders + '</span><font style=color:red>]</font>' + get_lang("My Folders")});
633                        else
634                                tree_folders.getNodeById( 'user' ).alter({caption:get_lang("Shared folders")});
635                        tree_folders.getNodeById( 'user' )._refresh();
636                }
637        }
638        var display_unseen_in_mailbox = Element('dftree_root_unseen');
639        if ( display_unseen_in_mailbox )
640        {
641                var unseen_in_mailbox = parseInt( display_unseen_in_mailbox.innerHTML );
642                unseen_in_mailbox--;
643                //if ( unseen_in_mailbox > 0 )
644                //      tree_folders.getNodeById( 'root' ).alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox + '</span><font style=color:red>]</font>' + get_lang("My Folders")});
645                //else
646                if(!expresso_offline)
647                        var node_to_refresh = 'root';
648                else
649                        var node_to_refresh = 'local_root';
650                tree_folders.getNodeById( node_to_refresh ).alter({caption:get_lang("My Folders")});
651                tree_folders.getNodeById( node_to_refresh )._refresh();
652        }
653}
654
655//changes MENU background color.
656function set_menu_bg(menu)
657{
658        menu.style.backgroundColor = 'white';
659        menu.style.border = '1px solid black';
660        menu.style.padding = '0px 0px';
661}
662//changes MENU background color.
663function unset_menu_bg(menu)
664{
665        menu.style.backgroundColor = '';
666        menu.style.border = '0px';
667        menu.style.padding = '1px 0px';
668}
669
670function array_search(needle, haystack) {
671        var n = haystack.length;
672        for (var i=0; i<n; i++) {
673                if (haystack[i]==needle) {
674                        return true;
675                }
676        }
677        return false;
678}
679
680function lang_folder(fn) {
681        if (fn.toUpperCase() == "INBOX") return get_lang("Inbox");
682        if (special_folders[fn] && typeof(special_folders[fn]) == 'string') {
683                return get_lang(special_folders[fn]);
684        }
685        return fn;
686}
687
688function select_all_messages(select)
689{
690        var main = Element("tbody_box");
691        var main_list = main.childNodes;
692        var len_main_list = main_list.length;
693       
694        if (select)
695        {
696                for (i=0; i<len_main_list; i++)
697                {
698                        Element("check_box_message_"+main_list[i].id).checked = true;
699                        add_className(Element(main_list[i].id), 'selected_msg');
700                }
701        }
702        else
703        {
704                for (i=0; i<len_main_list; i++)
705                {
706                        Element("check_box_message_"+main_list[i].id).checked = false;
707                        remove_className(Element(main_list[i].id), 'selected_msg');
708                }
709        }
710};
Note: See TracBrowser for help on using the repository browser.