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 *
RevLine 
[2]1/**************************************************************************\
2 Início
3\**************************************************************************/
[832]4        function searchE()
5        {
[2]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";
[1415]32                        div_form_search.style.width = "770px";
33                        div_form_search.style.height = "300px";
[2]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);
[156]38                        form_search.appendChild(div_form_search);
[2]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";
[1415]48                                div_button_search.style.width = "615px";
[2]49                                div_button_search.style.height = "25px";
[67]50                                div_button_search.innerHTML = "<table border='0' width='50%' cellpadding='0' cellspacing='0' align='right'>"+
[2]51                                                                                          "<tr>"+
52                                                                                          "<td><input type='button' value=" + get_lang('Search') + " onclick='EsearchE.func_search()'></td>"+
[53]53                                                                                          "<td><input type='button' value=" + get_lang('Clean') + " onclick='EsearchE.func_clean()'></td>"+
[69]54                                                                                          "<td><input type='button' value=" + get_lang('Close') + " onclick='EsearchE.func_close(\"hidden\")'></td>"+
[2]55                                                                                          "</tr>"+
56                                                                                          "</table>";
57                                form_search.appendChild(div_button_search);
58                }
59               
60                if(!Element("table_layer")){
[67]61                        var table_layer    = "";
[2]62                }
63               
[67]64                if(value == "")
[69]65                        EsearchE.showWindow(Element("window_search"));
66       
[2]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";
[1415]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               
[2]117                return form_sch;
118        }
119
120        // Pastas;
121        searchE.prototype.mount_folders = function(){
122                connector.loadScript("TreeS");
123
[69]124                if( Element("div_folders_search") == null){
[2]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 = "";
[69]135                                var dest_div = Element("folders");
[2]136                                dest_div.appendChild(div_folders);
137                }               
138                ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","","");
139        }
140       
[832]141        // Form resultado
[156]142        searchE.prototype.mount_result = function(data,sort_type){
[2758]143                if (data == undefined)
144                        return;
[2]145                var cont = parseInt(0);
[2758]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
[645]159                switch (sort_type)
160                {
161                        case 'SORTDATE':
[2758]162                                data.sort(date_comp);
[645]163                                break;
[832]164                        case 'SORTDATE_REVERSE':
[2758]165                                data.sort(date_comp_reverse);
[832]166                                break;
[645]167                        case 'SORTBOX':
[2758]168                                data.sort(box_comp);
[645]169                                break;
[832]170                        case 'SORTBOX_REVERSE':
[2758]171                                data.sort(box_comp_reverse);
[832]172                                break;
[645]173                        case 'SORTSUBJECT':
[2758]174                                data.sort(subject_comp);
[645]175                                break;
[832]176                        case 'SORTSUBJECT_REVERSE':
[2758]177                                data.sort(subject_comp_reverse);
[832]178                                break;
[645]179                        case 'SORTWHO':
[2758]180                                data.sort(who_comp);
[645]181                                break;
[832]182                        case 'SORTWHO_REVERSE':
[2758]183                                data.sort(who_comp_reverse);
[832]184                                break;
[645]185                        case 'SORTSIZE':
[2758]186                                data.sort(size_comp);
[645]187                                break;
[832]188                        case 'SORTSIZE_REVERSE':
[2758]189                                data.sort(size_comp_reverse);
[832]190                                break;
[645]191                        default:
192                                var showMsg = 1;
193                }
194
[2758]195                if(data.length > 0 && showMsg)
196                        write_msg(data.length + " "+ get_lang('results found'));
[320]197                numBox++;
198                var border_id = create_border(get_lang("Search Results"), "search_" + numBox);
[1607]199                if (!border_id)
200                {
201                    return;
202                }
[832]203                currentTab = border_id;
204                openTab.type[currentTab] = 1;
[2]205                var table = document.createElement("TABLE");
[320]206                table.id    = "table_resultsearch_" + numBox;
[271]207                table.frame = "void";
208                table.rules = "rows";
209                table.cellPadding = "0";
210                table.cellSpacing = "0";
[667]211                table.className = "table_box";
[72]212
[2]213                var tbody = document.createElement("TBODY");
[832]214                tbody.id    = "tbody_box_" + numBox;
215
[2758]216                for( var i=0; i < data.length; i++){
[2]217                        var tr = document.createElement("TR");
[645]218                        tr.style.height = preferences.line_height;
[2758]219                        var aux = data[i];
220                        var mailbox = aux.boxname;
221                        var uid_msg = aux.uid;
222                        var subject = aux.subject;
[3676]223                        tr.id = uid_msg+"_s"+global_search;
[1339]224
225                        // Keep the two lines together please
226                        tr.setAttribute('name',mailbox);
227                        tr.name = mailbox;
228
[2758]229                        if (aux.flag.match("U"))
[976]230                                add_className(tr,'tr_msg_unread');
231                        add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read');
[1000]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++)
[645]234                        {
[832]235                                var td = document.createElement("TD");
[645]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%";
[2758]244                                        if (aux.flag.match('T'))
[832]245                                        {
[2758]246                                                attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1));
[832]247                                                td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>";
248                                        }
249                                        else
250                                                td1 = '';
[645]251                                }
252                                if (j == 2)
253                                {
254                                        td.style.width = "1%";
255                                        td.id = "td_message_answered_"+uid_msg;
[2758]256                                        if (aux.flag.match('X'))
[832]257                                                td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>';
258                                        else
[2758]259                                                if (aux.flag.match('A'))
[832]260                                                        td1 = '<img src=templates/'+template+'/images/answered.gif>';
261                                                else
262                                                        td1 = '';
[645]263                                }
264                                if (j == 3)
265                                {
266                                        td.style.width = "1%";
267                                        td.id = "td_message_important_"+uid_msg;
[2758]268                                        if (aux.flag.match("F"))
[832]269                                        {
[976]270                                                add_className(tr, 'flagged_msg');
271                                                td.style.background = "url(templates/"+template+"/images/important.gif) no-repeat center";
[832]272                                        }
273                                        else
274                                                td1 = '';
[645]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                                {
[1339]284                                        td.style.width = "14%";
[832]285                                        td.onclick = _onclick;
[2758]286                                        var nm_box = aux.boxname.split(cyrus_delimiter);
[645]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";
[1339]292
293                                        if(td1 == "INBOX"){
294                                                var td1  = get_lang("Inbox");
[2]295                                        }
[832]296
297                                        if(proxy_mensagens.is_local_folder(td1)) {
298                                                var td1 = this.aux_local_folder_display(td1);
[689]299                                        }
[645]300                                }
301                                if( j == 6)
302                                {
[2758]303                                        if (aux.from.length > 29)
304                                                aux.from = aux.from.substr(0,29) + "...";
[832]305                                        td.style.width = "20%";
306                                        td.onclick = _onclick;
307                                        td.setAttribute("NoWrap","true");
308                                        td.style.overflow = "hidden";
[2758]309                                        var td1  =  '<div style="width:100%;overflow:hidden">'+aux.from+"</div>";
[645]310                                }
311                                if( j == 7)
312                                {
313                                        var subject_encode = url_encode(subject);
314                                        if (! subject_encode)
[2758]315                                                aux.subject = get_lang("no subject") + "...";
316                                        if (aux.subject.length > 70)
317                                                aux.subject = aux.subject.substr(0,70) + "...";
[832]318                                        td.style.width = "35%";
319                                        td.onclick = _onclick;
320                                        td.setAttribute("NoWrap","true");
321                                        td.style.overflow = "hidden";
[2758]322                                        var td1  = aux.subject;
[67]323
[2]324                                }
[645]325                                if( j == 8)
326                                {
[832]327                                        td.style.width = "15%";
[645]328                                        td.align = "center";
[832]329                                        td.onclick = _onclick;
[2758]330                                        var _dat = new Date(aux.udate*1000);
[2780]331                                        var td1 = _dat.getDate()+"/"+(_dat.getMonth()+1)+"/"+_dat.getFullYear();
[645]332                                }
333                                if( j == 9)
334                                {
335                                        td.style.width = "10%";
336                                        td.align = "center";
[832]337                                        td.onclick = _onclick;
[2758]338                                        var td1  = borkb(aux.size);
[645]339                                }
340                                if (j == 10)
341                                {
[2758]342                                        if (aux.flag.match("U"))
[976]343                                                add_className(tr, 'tr_msg_unread');
[2758]344                                        if (aux.flag.match("F"))
[976]345                                                add_className(tr, 'flagged_msg');
[645]346                                        var td1 = '';
347                                }
348                                td.innerHTML = td1;
349                                tr.appendChild(td);
[2]350                        }
[569]351                        aux.splice(0,(aux.length));
[271]352
[1339]353                _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox);
[271]354                tbody.appendChild(tr);
[2]355                }
[3676]356                global_search++; //Tabs from search must not have the same id on its tr's
[2]357                table.appendChild(tbody);
[832]358
[2606]359        var content_search =  Element('content_id_search_' + numBox);
[163]360        var div_scroll_result = document.createElement("DIV");
[320]361        div_scroll_result.id = "divScrollMain_"+numBox;
[163]362        div_scroll_result.style.overflow = "auto";
363       
[67]364                if(is_ie)
[72]365                        Element("border_table").width = "99.5%";
[67]366               
[832]367                // Put header
[67]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";
[156]374                td_element0 = document.createElement("TD");
[1339]375                td_element0.setAttribute("width", "1%");
[156]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";
[163]380                chk_box_element.onclick = function(){select_all_search_messages(this.checked,content_search.id);};
[156]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)
[832]386                                        delete_msgs(current_folder,'selected','null');
[156]387                        }
388                        else
389                        {
390                                if ((e.keyCode) == 46)
[832]391                                        delete_msgs(current_folder,'selected','null');
[156]392                        }
393                };
394               
395                td_element0.appendChild(chk_box_element);
[67]396                td_element1 = document.createElement("TD");
[163]397                td_element1.setAttribute("width", "20%");
[67]398                td_element1.align = "left";
[832]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                }
[67]412                td_element2 = document.createElement("TD");
[73]413                td_element2.setAttribute("width", "20%");
[67]414                td_element2.align = "left";
[832]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                }
[67]428                td_element3 = document.createElement("TD");
[645]429                td_element3.setAttribute("width", "35%");
[67]430                td_element3.align = "left";
[832]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                }
[67]444                td_element4 = document.createElement("TD");
[645]445                td_element4.setAttribute("width", "15%");
[67]446                td_element4.align = "center";
[832]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                }
[67]460                td_element5 = document.createElement("TD");
[645]461                td_element5.setAttribute("width", "10%");
[72]462                td_element5.align = "center";
[832]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                }
[156]476                tr_element.appendChild(td_element0);
[67]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);
[163]484                content_search.appendChild(table_element);
[1121]485                /*end of "put header"*/
486               
487                if (!expresso_offline) {
[1294]488/*                      var span_options = document.createElement("SPAN");
[1121]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") +
[1294]497                                '</span>';*/
[1121]498                        div_scroll_result.appendChild(table);
499                        content_search.appendChild(div_scroll_result);
[1294]500                        /*if (span_options)
501                                content_search.appendChild(span_options);*/
[1121]502                }
503                else {
504                        div_scroll_result.appendChild(table);
505                        content_search.appendChild(div_scroll_result);
506                }
[2605]507                resizeWindow();
[2]508        }
509
[1339]510        searchE.prototype.open_msg = function(mailbox, uid_msg, subject){
[2]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"));}
[673]514                        //set_msg_as_read(msgs_to_set[i], false);
[2]515                }
[1339]516                proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg);
[689]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);*/
[2]520
521        }
522
523        // Adiciona caixas postais na busca;
524        searchE.prototype.add_mailboxes = function(){
[69]525                var sel = Element("sel_search_nm_box1");
[689]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                        }
[2]536                }
[689]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                }
[2]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                }
[96]553                var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true);
[2]554                sel[sel.length] = opt;
555        }
556        // Remove as caixas postais na busca;
557        searchE.prototype.del_mailboxes = function(){
[69]558                var sel = Element("sel_search_nm_box1");
[2]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(){
[69]571                var value = Element("check_all_msg").checked;
[2]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;
[69]590                        if(trim(Element("txt_ass").value) != ""){
[372]591                                fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##";
[2]592                        }
[69]593                        if(trim(Element("txt_body").value) != ""){
[372]594                                fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##";
[2]595                        }
[69]596                        if(trim(Element("txt_de").value) != ""){
[372]597                                fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##";
[2]598                        }
[69]599                        if(trim(Element("txt_para").value) != ""){
[372]600                                fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##";
[2]601                        }
[69]602                        if(trim(Element("txt_cc").value) != ""){
[372]603                                fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##";
[2]604                        }
605                        if(value) {
[372]606                                fields = "##ALL " +  "<=>" +url_encode(value) + "##";
[2]607                        }
[69]608
[372]609                if(fields == "##"){
[128]610                        alert(get_lang("Define some search parameters!"));
[2]611                        return false;
612                }
[689]613                var local_folders = new Array();
614                var temp;
[2]615               
[69]616                if(Element("check_all_msg").checked){
[689]617                        this.all_mailboxes();
[2]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                        }
[689]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                        }
[2]628                }else{
629                        var nm_box = new Array;
[69]630                        var sel_combo = Element("sel_search_nm_box1");
[2]631                        if( sel_combo.options.length <= 0){
[118]632                                alert(get_lang("Define the boxes to search!"));
[2]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){
[689]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));
[2]645                                }
646                        }
647                }
648                var handler = function(data){
[689]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                        }
[2758]656                        if((data == "none") || (data.length==0)){alert(get_lang("None result was found."));}
[2778]657                        else if(data.length > 1000){alert(get_lang("More than %1 results. Please, try to refine your search.",1000));}
[2]658                        else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
[2758]659                        else{EsearchE.mount_result(data);}
[2]660                }
661                var args   = "$this.imap_functions.search_msg";
662                var params = "condition=" + nm_box;
[1121]663                if(expresso_offline)
664                        handler('none');
665                else
666                        cExecute(args,handler,params);
[2]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 = "";}
[832]673                }
[2]674            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;}
675
676            EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
[75]677                EsearchE.del_mailboxes();
[69]678        }
[2]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";
[67]692                        div.style.height = "255px";
[2]693                        div.style.visibility = "hidden";
694                        div.style.position = "absolute";
[832]695                        div.style.zIndex = "10003";
[128]696                        var title = ":: "+ get_lang("Search")+" ::";
[2]697                        var wHeight = div.offsetHeight + "px";
698                        var wWidth =  div.offsetWidth   + "px";
[832]699
700                        win = new dJSWin({
[2]701                                id: 'ccList'+div.id,
702                                content_id: div.id,
703                                width: wWidth,
704                                height: wHeight,
705                                title_color: '#3978d6',
706                                bg_color: '#eee',
[832]707                                title: title,
[2]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        }
[689]722       
723        searchE.prototype.aux_local_folder_display = function(folder) {
[1121]724                if(!expresso_offline)
725                        return "(Local) " + lang_folder(folder.substr(6));
726                else
727                        return lang_folder(folder.substr(6));
[689]728        }
729       
[2]730// Cria o objeto
731        var EsearchE;
[569]732        EsearchE = new searchE();
Note: See TracBrowser for help on using the repository browser.