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

Revision 2758, 24.6 KB checked in by rodsouza, 14 years ago (diff)

Ticket #1073 - Resultado da busca corrigindo com caracteres nao permitidos

  • 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;
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()+"/"+_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                table.appendChild(tbody);
357
358        var content_search =  Element('content_id_search_' + numBox);
359        var div_scroll_result = document.createElement("DIV");
360        div_scroll_result.id = "divScrollMain_"+numBox;
361        div_scroll_result.style.overflow = "auto";
362       
363                if(is_ie)
364                        Element("border_table").width = "99.5%";
365               
366                // Put header
367                var table_element = document.createElement("TABLE");
368                var tbody_element = document.createElement("TBODY");
369                table_element.setAttribute("id", "table_message_header_box");
370                table_element.className = "table_message_header_box";
371                tr_element = document.createElement("TR");
372                tr_element.className = "message_header";
373                td_element0 = document.createElement("TD");
374                td_element0.setAttribute("width", "1%");
375                chk_box_element = document.createElement("INPUT");
376                chk_box_element.id  = "chk_box_select_all_messages";
377                chk_box_element.setAttribute("type", "checkbox");
378                chk_box_element.className = "checkbox";
379                chk_box_element.onclick = function(){select_all_search_messages(this.checked,content_search.id);};
380                chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')};
381                chk_box_element.onkeydown = function (e){
382                        if (is_ie)
383                        {
384                                if ((window.event.keyCode) == 46)
385                                        delete_msgs(current_folder,'selected','null');
386                        }
387                        else
388                        {
389                                if ((e.keyCode) == 46)
390                                        delete_msgs(current_folder,'selected','null');
391                        }
392                };
393               
394                td_element0.appendChild(chk_box_element);
395                td_element1 = document.createElement("TD");
396                td_element1.setAttribute("width", "20%");
397                td_element1.align = "left";
398                if (sort_type == 'SORTBOX')
399                {
400                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX_REVERSE'); delete_border(border_id,false);};
401                        td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
402                }
403                else
404                {
405                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);};
406                        if  (sort_type == 'SORTBOX_REVERSE')
407                                td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
408                        else
409                                td_element1.innerHTML = get_lang("Folder");
410                }
411                td_element2 = document.createElement("TD");
412                td_element2.setAttribute("width", "20%");
413                td_element2.align = "left";
414                if (sort_type == 'SORTWHO')
415                {
416                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO_REVERSE'); delete_border(border_id,false);};
417                        td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
418                }
419                else
420                {
421                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);};
422                        if  (sort_type == 'SORTWHO_REVERSE')
423                                td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
424                        else
425                                td_element2.innerHTML = get_lang("who");
426                }
427                td_element3 = document.createElement("TD");
428                td_element3.setAttribute("width", "35%");
429                td_element3.align = "left";
430                if (sort_type == 'SORTSUBJECT')
431                {
432                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); delete_border(border_id,false);};
433                        td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
434                }
435                else
436                {
437                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);};
438                        if  (sort_type == 'SORTSUBJECT_REVERSE')
439                                td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
440                        else
441                                td_element3.innerHTML = get_lang("subject");
442                }
443                td_element4 = document.createElement("TD");
444                td_element4.setAttribute("width", "15%");
445                td_element4.align = "center";
446                if (sort_type == 'SORTDATE')
447                {
448                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE_REVERSE'); delete_border(border_id,false);};
449                        td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
450                }
451                else
452                {
453                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);};
454                        if  (sort_type == 'SORTDATE_REVERSE')
455                                td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
456                        else
457                                td_element4.innerHTML = get_lang("Date");
458                }
459                td_element5 = document.createElement("TD");
460                td_element5.setAttribute("width", "10%");
461                td_element5.align = "center";
462                if (sort_type == 'SORTSIZE')
463                {
464                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE_REVERSE'); delete_border(border_id,false);};
465                        td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>";
466                }
467                else
468                {
469                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);};
470                        if  (sort_type == 'SORTSIZE_REVERSE')
471                                td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>";
472                        else
473                                td_element5.innerHTML = get_lang("Size");
474                }
475                tr_element.appendChild(td_element0);
476                tr_element.appendChild(td_element1);
477                tr_element.appendChild(td_element2);
478                tr_element.appendChild(td_element3);
479                tr_element.appendChild(td_element4);
480                tr_element.appendChild(td_element5);
481                tbody_element.appendChild(tr_element);
482                table_element.appendChild(tbody_element);
483                content_search.appendChild(table_element);
484                /*end of "put header"*/
485               
486                if (!expresso_offline) {
487/*                      var span_options = document.createElement("SPAN");
488                        if (span_options)
489                                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> | ' +
490                                '<span title="' +
491                                get_lang("Move") +
492                                '" class="message_options" onclick=wfolders.makeWindowNew(\"' +
493                                content_search.id +
494                                '\",\"move_to\",true)>' +
495                                get_lang("Move") +
496                                '</span>';*/
497                        div_scroll_result.appendChild(table);
498                        content_search.appendChild(div_scroll_result);
499                        /*if (span_options)
500                                content_search.appendChild(span_options);*/
501                }
502                else {
503                        div_scroll_result.appendChild(table);
504                        content_search.appendChild(div_scroll_result);
505                }
506                resizeWindow();
507        }
508
509        searchE.prototype.open_msg = function(mailbox, uid_msg, subject){
510                var handler_get_msg = function(data){
511                        if(Element("border_id_" + uid_msg + "_r")){alert(get_lang("This message is already opened!"));}
512                        else{draw_message(data,create_border(url_decode(subject), uid_msg + "_r"));}
513                        //set_msg_as_read(msgs_to_set[i], false);
514                }
515                proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg);
516                /*var args   = "$this.imap_functions.get_info_msg";
517                var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox;
518                cExecute(args,handler_get_msg,params);*/
519
520        }
521
522        // Adiciona caixas postais na busca;
523        searchE.prototype.add_mailboxes = function(){
524                var sel = Element("sel_search_nm_box1");
525                if (!proxy_mensagens.is_local_folder(this.name_box_search)) {
526                        var name_box     = this.name_box_search.split(cyrus_delimiter);
527                        if(this.name_box_search == "")
528                                return false;
529                        var name_box_def = "";
530                        if(name_box.length != 1){
531                                name_box_def = name_box[(name_box.length-1)];
532                        }else{
533                                name_box_def = get_lang("Inbox");               
534                        }
535                }
536                else {
537                        if(this.name_box_search=='local_root')
538                                return;
539                        if(this.name_box_search=='local_Inbox')
540                                name_box_def = get_lang("Inbox");
541                        else
542                                name_box_def = this.name_box_search.substr(6);//Retira o 'local_'
543                }
544                if( sel.length > 0){
545                        for(var i=0; i < sel.options.length; i++){
546                                if(sel.options[i].value == this.name_box_search){
547                                        alert(get_lang('This message is already selected!'));
548                                        return false;
549                                }
550                        }
551                }
552                var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true);
553                sel[sel.length] = opt;
554        }
555        // Remove as caixas postais na busca;
556        searchE.prototype.del_mailboxes = function(){
557                var sel = Element("sel_search_nm_box1");
558                if(sel.length > 0){
559                        for(var i=0; i < sel.options.length; i++){
560                                if(sel.options[i].selected == true){
561                                        sel.options[i] = null;
562                                        i--;
563                                }
564                        }
565                }
566       
567        }
568        // todas as caixas
569        searchE.prototype.all_mailboxes = function(){
570                var value = Element("check_all_msg").checked;
571                var cont = parseInt(0);
572                if(value){
573                        if(EsearchE.all_boxes.length > 0){
574                                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));                       
575                        }
576                        for(var i=0; i < folders.length; i++){
577                                EsearchE.all_boxes[cont] = folders[i].folder_id;
578                                cont++;
579                        }
580                }else{
581                        EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
582                }
583        }
584
585        // Search;
586        searchE.prototype.func_search = function(value){
587                var fields = "##";
588                        // Verifica se os campos estão preenchidos;
589                        if(trim(Element("txt_ass").value) != ""){
590                                fields += "SUBJECT " +  "<=>" +url_encode(Element("txt_ass").value) + "##";
591                        }
592                        if(trim(Element("txt_body").value) != ""){
593                                fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##";
594                        }
595                        if(trim(Element("txt_de").value) != ""){
596                                fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##";
597                        }
598                        if(trim(Element("txt_para").value) != ""){
599                                fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##";
600                        }
601                        if(trim(Element("txt_cc").value) != ""){
602                                fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##";
603                        }
604                        if(value) {
605                                fields = "##ALL " +  "<=>" +url_encode(value) + "##";
606                        }
607
608                if(fields == "##"){
609                        alert(get_lang("Define some search parameters!"));
610                        return false;
611                }
612                var local_folders = new Array();
613                var temp;
614               
615                if(Element("check_all_msg").checked){
616                        this.all_mailboxes();
617                        var nm_box = new Array;
618                        for(var i=0; i < EsearchE.all_boxes.length; i++){
619                                nm_box[i] = EsearchE.all_boxes[i] + fields;
620                        }
621                        if (preferences.use_local_messages == 1) {
622                                temp = expresso_local_messages.list_local_folders();
623                                for (var x in temp) {
624                                        local_folders.push(temp[x][0]);
625                                }
626                        }
627                }else{
628                        var nm_box = new Array;
629                        var sel_combo = Element("sel_search_nm_box1");
630                        if( sel_combo.options.length <= 0){
631                                alert(get_lang("Define the boxes to search!"));
632                                return false;
633                        }
634                       
635                        for(var i=0; i < sel_combo.options.length; i++){
636                                sel_combo.options[i].selected = true;
637                        }
638                        for(var i=0; i < sel_combo.options.length; i++){
639                                if(sel_combo.options[i].selected == true){
640                                        if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value))
641                                                nm_box[nm_box.length] = sel_combo.options[i].value + fields;
642                                        else
643                                                local_folders.push(sel_combo.options[i].value.substr(6));
644                                }
645                        }
646                }
647                var handler = function(data){
648                        var tmp;
649                        if (local_folders.length > 0) {
650                                tmp = expresso_local_messages.search(local_folders, fields);
651                                if (tmp!=false) {
652                                        var tmp2 = tmp.substr(2, data.length - 4);
653                                }
654                        }
655                        if((data == "none") || (data.length==0)){alert(get_lang("None result was found."));}
656                        else if(data.length > 50){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
657                        else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));}
658                        else{EsearchE.mount_result(data);}
659                }
660                var args   = "$this.imap_functions.search_msg";
661                var params = "condition=" + nm_box;
662                if(expresso_offline)
663                        handler('none');
664                else
665                        cExecute(args,handler,params);
666        }
667        // clean;
668        searchE.prototype.func_clean = function(){
669                // Limpa os campos;
670                for(var i=0; i < this.fields.length; i++){
671                        if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";}
672                }
673            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;}
674
675            EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
676                EsearchE.del_mailboxes();
677        }
678
679        // close
680        searchE.prototype.func_close = function(type){
681                var _this = this;
682                _this.name_box_search = "";
683                EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length));
684                _this.type = type;
685                _this.searchW['window_search'].close();
686        }
687        // Monta a janela em tela;
688        searchE.prototype.showWindow = function(div){
689                if(!this.searchW[div.id]) {
690                        div.style.width = "660px";
691                        div.style.height = "255px";
692                        div.style.visibility = "hidden";
693                        div.style.position = "absolute";
694                        div.style.zIndex = "10003";
695                        var title = ":: "+ get_lang("Search")+" ::";
696                        var wHeight = div.offsetHeight + "px";
697                        var wWidth =  div.offsetWidth   + "px";
698
699                        win = new dJSWin({
700                                id: 'ccList'+div.id,
701                                content_id: div.id,
702                                width: wWidth,
703                                height: wHeight,
704                                title_color: '#3978d6',
705                                bg_color: '#eee',
706                                title: title,
707                                title_text_color: 'white',
708                                button_y_img: '../phpgwapi/images/win_min.gif',
709                                button_x_img: '../phpgwapi/images/winclose.gif',
710                                border: true });
711                        this.searchW[div.id] = win;
712                        win.draw();
713                }else{
714                        var _this = this;
715                        win = this.searchW[div.id];
716                        if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();}
717                        win.draw();
718                }
719                win.open();     
720        }
721       
722        searchE.prototype.aux_local_folder_display = function(folder) {
723                if(!expresso_offline)
724                        return "(Local) " + lang_folder(folder.substr(6));
725                else
726                        return lang_folder(folder.substr(6));
727        }
728       
729// Cria o objeto
730        var EsearchE;
731        EsearchE = new searchE();
Note: See TracBrowser for help on using the repository browser.