source: branches/2.0/expressoMail1_2/js/search.js @ 3676

Revision 3676, 24.7 KB checked in by niltonneto, 13 years ago (diff)

Ticket #785 - Corrigido problema da navegação anterior/próximo no resultado da busca.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1/**************************************************************************\
2 Início
3\**************************************************************************/
4        function searchE()
5        {
6                this.searchW   = new Array;
7                this.name_box_search = "";
8                this.all_boxes = new Array;
9                this.type = "";
10                this.fields = new Array("_ass","_de","_body","_para","_cc","_cco");
11        }
12       
13        //Monta os forms dentro da janela;
14        searchE.prototype.showForms = function(value){
15                // Principal
16                if(!Element("window_search")) {
17                        var form_search = document.createElement("DIV");
18                        form_search.style.visibility = 'hidden';
19                        form_search.style.top = '0px';
20                        form_search.style.left = '0px';
21                        form_search.id = "window_search";
22                        document.body.appendChild(form_search);                 
23                }
24               
25                // Pesquisa
26                if(!Element("div_form_search")){
27                        var div_form_search = document.createElement("DIV");
28                        div_form_search.id = "div_form_search";
29                        div_form_search.style.position = "absolute";
30                        div_form_search.style.left = "10px";
31                        div_form_search.style.top  = "10px";
32                        div_form_search.style.width = "770px";
33                        div_form_search.style.height = "300px";
34                        div_form_search.style.overflow = "hidden";
35                        div_form_search.innerHTML = "";
36                        var call_form_search = EsearchE.mount_form();
37                        div_form_search.appendChild(call_form_search);
38                        form_search.appendChild(div_form_search);
39
40                }       
41               
42                if(!Element("div_button_search")){
43                        var div_button_search    = document.createElement("DIV");
44                                div_button_search.id = "div_button_search";
45                                div_button_search.style.position = "absolute";
46                                div_button_search.style.left = "10px";
47                                div_button_search.style.top = "223px";
48                                div_button_search.style.width = "615px";
49                                div_button_search.style.height = "25px";
50                                div_button_search.innerHTML = "<table border='0' width='50%' cellpadding='0' cellspacing='0' align='right'>"+
51                                                                                          "<tr>"+
52                                                                                          "<td><input type='button' value=" + get_lang('Search') + " onclick='EsearchE.func_search()'></td>"+
53                                                                                          "<td><input type='button' value=" + get_lang('Clean') + " onclick='EsearchE.func_clean()'></td>"+
54                                                                                          "<td><input type='button' value=" + get_lang('Close') + " onclick='EsearchE.func_close(\"hidden\")'></td>"+
55                                                                                          "</tr>"+
56                                                                                          "</table>";
57                                form_search.appendChild(div_button_search);
58                }
59               
60                if(!Element("table_layer")){
61                        var table_layer    = "";
62                }
63               
64                if(value == "")
65                        EsearchE.showWindow(Element("window_search"));
66       
67                // Cria as caixas postais;
68                EsearchE.mount_folders();
69
70                if(value){
71                        Element("check_all_msg").checked = true;
72                        EsearchE.all_mailboxes();
73                        EsearchE.func_search(value);
74                }
75
76        }
77       
78        //Form
79        searchE.prototype.mount_form = function(value){
80                var form_sch = document.createElement("FORM");
81                form_sch.id  = "form_sch";
82
83                form_sch.innerHTML =  '<fieldset style="width:266px; text-align:right; padding: 5px; position:absolute;">'
84                                                        + '     <legend>'+get_lang('Inform your search in the text fields')+'</legend>'
85                                                        + '     <label>'+get_lang("From")+':</label>'
86                                                        + '     <input type="text" id="txt_de" size="19">'
87                                                        + '     <br style="margin-bottom:15px"/>'
88                                                        + '     <label>'+get_lang('To')+':</label>'
89                                                        + '     <input type="text" id="txt_para" size="19">'
90                                                        + '     <br style="margin-bottom:15px"/>'
91                                                        + '     <label>'+get_lang('Cc')+':</label>'
92                                                        + '     <input type="text" id="txt_cc" size="19">'
93                                                        + '     <br style="margin-bottom:15px"/>'
94                                                        + '     <label>'+get_lang('Subject')+':</label>'
95                                                        + '     <input type="text" id="txt_ass" size="19">'
96                                                        + '     <br style="margin-bottom:15px"/>'
97                                                        + '     <label>'+get_lang('Message body')+':</label>'
98                                                        + '     <input type="text" id="txt_body" size="19">'
99                                                        + '     <br style="margin-bottom:60px"/>'
100                                                        + '</fieldset>'
101                                                        + '<fieldset style="width:350px; padding: 5px; position:absolute; margin-left: 280px">'
102                                                        + '     <legend>'+get_lang('Search the messages in these folders')+'</legend>'
103                                                        + '     <div id="folders" style="width:160px; height:150px;float:left;margin-bottom:10px;"></div>'
104                                                        + '     <div style="float:left;height:100px;padding-top:50px;margin: 0 3px;">'
105                                                        + '             <input type="button" id="incluir" name="incluir" value=">>" onclick="EsearchE.add_mailboxes()">'
106                                                        + '             <br style="margin-bottom:15px">'
107                                                        + '             <input type="button" id="excluir" name="excluir" value="<<" onclick="EsearchE.del_mailboxes()">'
108                                                        + '     </div>'
109                                                        + ' <div style="float:left;">' 
110                                                        + '      <select multiple id="sel_search_nm_box1" name="sel_search_nm_box1" style="width:140px;height:150px;"></select>'
111                                                        + ' </div>'
112                                                        + '     <br clear="both">'
113                                                        + '     <input type="checkBox" id="check_all_msg" name="check_all_msg" onclick="EsearchE.all_mailboxes()">'
114                                                        + '     <b>'+get_lang('In all the folders')+'</b>'
115                                                        + '</fieldset>';
116               
117                return form_sch;
118        }
119
120        // Pastas;
121        searchE.prototype.mount_folders = function(){
122                connector.loadScript("TreeS");
123
124                if( Element("div_folders_search") == null){
125                        var div_folders = document.createElement("DIV");
126                                div_folders.id = "div_folders_search";
127                                div_folders.style.width = "155px";
128                                div_folders.style.height = "152px";
129                                div_folders.style.borderStyle = "outset";
130                                div_folders.style.borderColor = "black";
131                                div_folders.style.borderWidth = "1px";
132                                div_folders.style.background  = "#F7F7F7";
133                                div_folders.style.overflow = "auto";
134                                div_folders.innerHTML = "";
135                                var dest_div = Element("folders");
136                                dest_div.appendChild(div_folders);
137                }               
138                ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","","");
139        }
140       
141        // Form resultado
142        searchE.prototype.mount_result = function(data,sort_type){
143                if (data == undefined)
144                        return;
145                var cont = parseInt(0);
146
147                //This func returns the comparison between criterias
148                var date_comp = function(a,b){ return a.udate > b.udate;};
149                var date_comp_reverse = function(a,b){ return date_comp(b,a);};
150                var box_comp = function(a,b){   return a.boxname > b.boxname; }
151                var box_comp_reverse = function(a,b){   return box_comp(b,a); }
152                var who_comp = function(a,b){ return a.from > b.from; }
153                var who_comp_reverse = function(a,b){ return who_comp(b,a); }
154                var subject_comp = function(a,b){ return a.subject > b.subject; }
155                var subject_comp_reverse = function(a,b){ return subject_comp(b,a); }
156                var size_comp = function(a,b){ return a.size > b.size; }
157                var size_comp_reverse = function(a,b){ return size_comp(b,a); }
158
159                switch (sort_type)
160                {
161                        case 'SORTDATE':
162                                data.sort(date_comp);
163                                break;
164                        case 'SORTDATE_REVERSE':
165                                data.sort(date_comp_reverse);
166                                break;
167                        case 'SORTBOX':
168                                data.sort(box_comp);
169                                break;
170                        case 'SORTBOX_REVERSE':
171                                data.sort(box_comp_reverse);
172                                break;
173                        case 'SORTSUBJECT':
174                                data.sort(subject_comp);
175                                break;
176                        case 'SORTSUBJECT_REVERSE':
177                                data.sort(subject_comp_reverse);
178                                break;
179                        case 'SORTWHO':
180                                data.sort(who_comp);
181                                break;
182                        case 'SORTWHO_REVERSE':
183                                data.sort(who_comp_reverse);
184                                break;
185                        case 'SORTSIZE':
186                                data.sort(size_comp);
187                                break;
188                        case 'SORTSIZE_REVERSE':
189                                data.sort(size_comp_reverse);
190                                break;
191                        default:
192                                var showMsg = 1;
193                }
194
195                if(data.length > 0 && showMsg)
196                        write_msg(data.length + " "+ get_lang('results found'));
197                numBox++;
198                var border_id = create_border(get_lang("Search Results"), "search_" + numBox);
199                if (!border_id)
200                {
201                    return;
202                }
203                currentTab = border_id;
204                openTab.type[currentTab] = 1;
205                var table = document.createElement("TABLE");
206                table.id    = "table_resultsearch_" + numBox;
207                table.frame = "void";
208                table.rules = "rows";
209                table.cellPadding = "0";
210                table.cellSpacing = "0";
211                table.className = "table_box";
212
213                var tbody = document.createElement("TBODY");
214                tbody.id    = "tbody_box_" + numBox;
215
216                for( var i=0; i < data.length; i++){
217                        var tr = document.createElement("TR");
218                        tr.style.height = preferences.line_height;
219                        var aux = data[i];
220                        var mailbox = aux.boxname;
221                        var uid_msg = aux.uid;
222                        var subject = aux.subject;
223                        tr.id = uid_msg+"_s"+global_search;
224
225                        // Keep the two lines together please
226                        tr.setAttribute('name',mailbox);
227                        tr.name = mailbox;
228
229                        if (aux.flag.match("U"))
230                                add_className(tr,'tr_msg_unread');
231                        add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read');
232            var _onclick = function () { proxy_mensagens.get_msg(this.parentNode.id,url_encode(this.parentNode.getAttribute('name')),false,show_msg);};
233            for(var j=0 ; j < 10 ; j++)
234                        {
235                                var td = document.createElement("TD");
236                                if (j == 0)
237                                {
238                                        td.style.width = "1%";
239                                        var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>';
240                                }
241                                if (j == 1)
242                                {
243                                        td.style.width = "2%";
244                                        if (aux.flag.match('T'))
245                                        {
246                                                attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1));
247                                                td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>";
248                                        }
249                                        else
250                                                td1 = '';
251                                }
252                                if (j == 2)
253                                {
254                                        td.style.width = "1%";
255                                        td.id = "td_message_answered_"+uid_msg;
256                                        if (aux.flag.match('X'))
257                                                td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>';
258                                        else
259                                                if (aux.flag.match('A'))
260                                                        td1 = '<img src=templates/'+template+'/images/answered.gif>';
261                                                else
262                                                        td1 = '';
263                                }
264                                if (j == 3)
265                                {
266                                        td.style.width = "1%";
267                                        td.id = "td_message_important_"+uid_msg;
268                                        if (aux.flag.match("F"))
269                                        {
270                                                add_className(tr, 'flagged_msg');
271                                                td.style.background = "url(templates/"+template+"/images/important.gif) no-repeat center";
272                                        }
273                                        else
274                                                td1 = '';
275                                }
276                                if (j == 4)
277                                {
278                                        td.style.width = "1%";
279                                        td.id = "td_message_sent_"+uid_msg;
280                                        td1 = '';
281                                }
282                                if (j == 5)
283                                {
284                                        td.style.width = "14%";
285                                        td.onclick = _onclick;
286                                        var nm_box = aux.boxname.split(cyrus_delimiter);
287                                        var td1 = nm_box.pop();
288                                        td.setAttribute("NoWrap","true");
289                                        td.style.overflow = "hidden";
290                                        td.style.color = "#42795b";
291                                        td.style.fontWeight = "bold";
292
293                                        if(td1 == "INBOX"){
294                                                var td1  = get_lang("Inbox");
295                                        }
296
297                                        if(proxy_mensagens.is_local_folder(td1)) {
298                                                var td1 = this.aux_local_folder_display(td1);
299                                        }
300                                }
301                                if( j == 6)
302                                {
303                                        if (aux.from.length > 29)
304                                                aux.from = aux.from.substr(0,29) + "...";
305                                        td.style.width = "20%";
306                                        td.onclick = _onclick;
307                                        td.setAttribute("NoWrap","true");
308                                        td.style.overflow = "hidden";
309                                        var td1  =  '<div style="width:100%;overflow:hidden">'+aux.from+"</div>";
310                                }
311                                if( j == 7)
312                                {
313                                        var subject_encode = url_encode(subject);
314                                        if (! subject_encode)
315                                                aux.subject = get_lang("no subject") + "...";
316                                        if (aux.subject.length > 70)
317                                                aux.subject = aux.subject.substr(0,70) + "...";
318                                        td.style.width = "35%";
319                                        td.onclick = _onclick;
320                                        td.setAttribute("NoWrap","true");
321                                        td.style.overflow = "hidden";
322                                        var td1  = aux.subject;
323
324                                }
325                                if( j == 8)
326                                {
327                                        td.style.width = "15%";
328                                        td.align = "center";
329                                        td.onclick = _onclick;
330                                        var _dat = new Date(aux.udate*1000);
331                                        var td1 = _dat.getDate()+"/"+(_dat.getMonth()+1)+"/"+_dat.getFullYear();
332                                }
333                                if( j == 9)
334                                {
335                                        td.style.width = "10%";
336                                        td.align = "center";
337                                        td.onclick = _onclick;
338                                        var td1  = borkb(aux.size);
339                                }
340                                if (j == 10)
341                                {
342                                        if (aux.flag.match("U"))
343                                                add_className(tr, 'tr_msg_unread');
344                                        if (aux.flag.match("F"))
345                                                add_className(tr, 'flagged_msg');
346                                        var td1 = '';
347                                }
348                                td.innerHTML = td1;
349                                tr.appendChild(td);
350                        }
351                        aux.splice(0,(aux.length));
352
353                _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox);
354                tbody.appendChild(tr);
355                }
356                global_search++; //Tabs from search must not have the same id on its tr's
357                table.appendChild(tbody);
358
359        var content_search =  Element('content_id_search_' + numBox);
360        var div_scroll_result = document.createElement("DIV");
361        div_scroll_result.id = "divScrollMain_"+numBox;
362        div_scroll_result.style.overflow = "auto";
363       
364                if(is_ie)
365                        Element("border_table").width = "99.5%";
366               
367                // Put header
368                var table_element = document.createElement("TABLE");
369                var tbody_element = document.createElement("TBODY");
370                table_element.setAttribute("id", "table_message_header_box");
371                table_element.className = "table_message_header_box";
372                tr_element = document.createElement("TR");
373                tr_element.className = "message_header";
374                td_element0 = document.createElement("TD");
375                td_element0.setAttribute("width", "1%");
376                chk_box_element = document.createElement("INPUT");
377                chk_box_element.id  = "chk_box_select_all_messages";
378                chk_box_element.setAttribute("type", "checkbox");
379                chk_box_element.className = "checkbox";
380                chk_box_element.onclick = function(){select_all_search_messages(this.checked,content_search.id);};
381                chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
382                chk_box_element.onkeydown = function (e){
383                        if (is_ie)
384                        {
385                                if ((window.event.keyCode) == 46)
386                                        delete_msgs(current_folder,'selected','null');
387                        }
388                        else
389                        {
390                                if ((e.keyCode) == 46)
391                                        delete_msgs(current_folder,'selected','null');
392                        }
393                };
394               
395                td_element0.appendChild(chk_box_element);
396                td_element1 = document.createElement("TD");
397                td_element1.setAttribute("width", "20%");
398                td_element1.align = "left";
399                if (sort_type == 'SORTBOX')
400                {
401                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX_REVERSE'); delete_border(border_id,false);};
402                        td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
403                }
404                else
405                {
406                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);};
407                        if  (sort_type == 'SORTBOX_REVERSE')
408                                td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
409                        else
410                                td_element1.innerHTML = get_lang("Folder");
411                }
412                td_element2 = document.createElement("TD");
413                td_element2.setAttribute("width", "20%");
414                td_element2.align = "left";
415                if (sort_type == 'SORTWHO')
416                {
417                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO_REVERSE'); delete_border(border_id,false);};
418                        td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
419                }
420                else
421                {
422                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);};
423                        if  (sort_type == 'SORTWHO_REVERSE')
424                                td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
425                        else
426                                td_element2.innerHTML = get_lang("who");
427                }
428                td_element3 = document.createElement("TD");
429                td_element3.setAttribute("width", "35%");
430                td_element3.align = "left";
431                if (sort_type == 'SORTSUBJECT')
432                {
433                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); delete_border(border_id,false);};
434                        td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
435                }
436                else
437                {
438                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);};
439                        if  (sort_type == 'SORTSUBJECT_REVERSE')
440                                td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
441                        else
442                                td_element3.innerHTML = get_lang("subject");
443                }
444                td_element4 = document.createElement("TD");
445                td_element4.setAttribute("width", "15%");
446                td_element4.align = "center";
447                if (sort_type == 'SORTDATE')
448                {
449                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE_REVERSE'); delete_border(border_id,false);};
450                        td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
451                }
452                else
453                {
454                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);};
455                        if  (sort_type == 'SORTDATE_REVERSE')
456                                td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
457                        else
458                                td_element4.innerHTML = get_lang("Date");
459                }
460                td_element5 = document.createElement("TD");
461                td_element5.setAttribute("width", "10%");
462                td_element5.align = "center";
463                if (sort_type == 'SORTSIZE')
464                {
465                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE_REVERSE'); delete_border(border_id,false);};
466                        td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
467                }
468                else
469                {
470                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);};
471                        if  (sort_type == 'SORTSIZE_REVERSE')
472                                td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
473                        else
474                                td_element5.innerHTML = get_lang("Size");
475                }
476                tr_element.appendChild(td_element0);
477                tr_element.appendChild(td_element1);
478                tr_element.appendChild(td_element2);
479                tr_element.appendChild(td_element3);
480                tr_element.appendChild(td_element4);
481                tr_element.appendChild(td_element5);
482                tbody_element.appendChild(tr_element);
483                table_element.appendChild(tbody_element);
484                content_search.appendChild(table_element);
485                /*end of "put header"*/
486               
487                if (!expresso_offline) {
488/*                      var span_options = document.createElement("SPAN");
489                        if (span_options)
490                                span_options.innerHTML = '<span title="' + get_lang("Delete") + '" style="margin-top:3px;margin-left:8px" class="message_options" onclick="javascript:move_search_msgs(\'' + content_search.id + '\');">' + get_lang("Delete") + '</span> | ' +
491                                '<span title="' +
492                                get_lang("Move") +
493                                '" class="message_options" onclick=wfolders.makeWindowNew(\"' +
494                                content_search.id +
495                                '\",\"move_to\",true)>' +
496                                get_lang("Move") +
497                                '</span>';*/
498                        div_scroll_result.appendChild(table);
499                        content_search.appendChild(div_scroll_result);
500                        /*if (span_options)
501                                content_search.appendChild(span_options);*/
502                }
503                else {
504                        div_scroll_result.appendChild(table);
505                        content_search.appendChild(div_scroll_result);
506                }
507                resizeWindow();
508        }
509
510        searchE.prototype.open_msg = function(mailbox, uid_msg, subject){
511                var handler_get_msg = function(data){
512                        if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));}
513                        else{draw_message(data,create_border(url_decode(subject), uid_msg + "_r"));}
514                        //set_msg_as_read(msgs_to_set[i], false);
515                }
516                proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg);
517                /*var args   = "$this.imap_functions.get_info_msg";
518                var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox;
519                cExecute(args,handler_get_msg,params);*/
520
521        }
522
523        // Adiciona caixas postais na busca;
524        searchE.prototype.add_mailboxes = function(){
525                var sel = Element("sel_search_nm_box1");
526                if (!proxy_mensagens.is_local_folder(this.name_box_search)) {
527                        var name_box     = this.name_box_search.split(cyrus_delimiter);
528                        if(this.name_box_search == "")
529                                return false;
530                        var name_box_def = "";
531                        if(name_box.length != 1){
532                                name_box_def = name_box[(name_box.length-1)];
533                        }else{
534                                name_box_def = get_lang("Inbox");               
535                        }
536                }
537                else {
538                        if(this.name_box_search=='local_root')
539                                return;
540                        if(this.name_box_search=='local_Inbox')
541                                name_box_def = get_lang("Inbox");
542                        else
543                                name_box_def = this.name_box_search.substr(6);//Retira o 'local_'
544                }
545                if( sel.length > 0){
546                        for(var i=0; i < sel.options.length; i++){
547                                if(sel.options[i].value == this.name_box_search){
548                                        alert(get_lang('This message is already selected!'));
549                                        return false;
550                                }
551                        }
552                }
553                var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true);
554                sel[sel.length] = opt;
555        }
556        // Remove as caixas postais na busca;
557        searchE.prototype.del_mailboxes = function(){
558                var sel = Element("sel_search_nm_box1");
559                if(sel.length > 0){
560                        for(var i=0; i < sel.options.length; i++){
561                                if(sel.options[i].selected == true){
562                                        sel.options[i] = null;
563                                        i--;
564                                }
565                        }
566                }
567       
568        }
569        // todas as caixas
570        searchE.prototype.all_mailboxes = function(){
571                var value = Element("check_all_msg").checked;
572                var cont = parseInt(0);
573                if(value){
574                        if(EsearchE.all_boxes.length > 0){
575                                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));                       
576                        }
577                        for(var i=0; i < folders.length; i++){
578                                EsearchE.all_boxes[cont] = folders[i].folder_id;
579                                cont++;
580                        }
581                }else{
582                        EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
583                }
584        }
585
586        // Search;
587        searchE.prototype.func_search = function(value){
588                var fields = "##";
589                        // Verifica se os campos estão preenchidos;
590                        if(trim(Element("txt_ass").value) != ""){
591                                fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##";
592                        }
593                        if(trim(Element("txt_body").value) != ""){
594                                fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##";
595                        }
596                        if(trim(Element("txt_de").value) != ""){
597                                fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##";
598                        }
599                        if(trim(Element("txt_para").value) != ""){
600                                fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##";
601                        }
602                        if(trim(Element("txt_cc").value) != ""){
603                                fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##";
604                        }
605                        if(value) {
606                                fields = "##ALL " +  "<=>" +url_encode(value) + "##";
607                        }
608
609                if(fields == "##"){
610                        alert(get_lang("Define some search parameters!"));
611                        return false;
612                }
613                var local_folders = new Array();
614                var temp;
615               
616                if(Element("check_all_msg").checked){
617                        this.all_mailboxes();
618                        var nm_box = new Array;
619                        for(var i=0; i < EsearchE.all_boxes.length; i++){
620                                nm_box[i] = EsearchE.all_boxes[i] + fields;
621                        }
622                        if (preferences.use_local_messages == 1) {
623                                temp = expresso_local_messages.list_local_folders();
624                                for (var x in temp) {
625                                        local_folders.push(temp[x][0]);
626                                }
627                        }
628                }else{
629                        var nm_box = new Array;
630                        var sel_combo = Element("sel_search_nm_box1");
631                        if( sel_combo.options.length <= 0){
632                                alert(get_lang("Define the boxes to search!"));
633                                return false;
634                        }
635                       
636                        for(var i=0; i < sel_combo.options.length; i++){
637                                sel_combo.options[i].selected = true;
638                        }
639                        for(var i=0; i < sel_combo.options.length; i++){
640                                if(sel_combo.options[i].selected == true){
641                                        if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value))
642                                                nm_box[nm_box.length] = sel_combo.options[i].value + fields;
643                                        else
644                                                local_folders.push(sel_combo.options[i].value.substr(6));
645                                }
646                        }
647                }
648                var handler = function(data){
649                        var tmp;
650                        if (local_folders.length > 0) {
651                                tmp = expresso_local_messages.search(local_folders, fields);
652                                if (tmp!=false) {
653                                        var tmp2 = tmp.substr(2, data.length - 4);
654                                }
655                        }
656                        if((data == "none") || (data.length==0)){alert(get_lang("None result was found."));}
657                        else if(data.length > 1000){alert(get_lang("More than %1 results. Please, try to refine your search.",1000));}
658                        else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
659                        else{EsearchE.mount_result(data);}
660                }
661                var args   = "$this.imap_functions.search_msg";
662                var params = "condition=" + nm_box;
663                if(expresso_offline)
664                        handler('none');
665                else
666                        cExecute(args,handler,params);
667        }
668        // clean;
669        searchE.prototype.func_clean = function(){
670                // Limpa os campos;
671                for(var i=0; i < this.fields.length; i++){
672                        if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";}
673                }
674            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;}
675
676            EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
677                EsearchE.del_mailboxes();
678        }
679
680        // close
681        searchE.prototype.func_close = function(type){
682                var _this = this;
683                _this.name_box_search = "";
684                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
685                _this.type = type;
686                _this.searchW['window_search'].close();
687        }
688        // Monta a janela em tela;
689        searchE.prototype.showWindow = function(div){
690                if(!this.searchW[div.id]) {
691                        div.style.width = "660px";
692                        div.style.height = "255px";
693                        div.style.visibility = "hidden";
694                        div.style.position = "absolute";
695                        div.style.zIndex = "10003";
696                        var title = ":: "+ get_lang("Search")+" ::";
697                        var wHeight = div.offsetHeight + "px";
698                        var wWidth =  div.offsetWidth   + "px";
699
700                        win = new dJSWin({
701                                id: 'ccList'+div.id,
702                                content_id: div.id,
703                                width: wWidth,
704                                height: wHeight,
705                                title_color: '#3978d6',
706                                bg_color: '#eee',
707                                title: title,
708                                title_text_color: 'white',
709                                button_y_img: '../phpgwapi/images/win_min.gif',
710                                button_x_img: '../phpgwapi/images/winclose.gif',
711                                border: true });
712                        this.searchW[div.id] = win;
713                        win.draw();
714                }else{
715                        var _this = this;
716                        win = this.searchW[div.id];
717                        if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();}
718                        win.draw();
719                }
720                win.open();     
721        }
722       
723        searchE.prototype.aux_local_folder_display = function(folder) {
724                if(!expresso_offline)
725                        return "(Local) " + lang_folder(folder.substr(6));
726                else
727                        return lang_folder(folder.substr(6));
728        }
729       
730// Cria o objeto
731        var EsearchE;
732        EsearchE = new searchE();
Note: See TracBrowser for help on using the repository browser.