source: companies/serpro/expressoMail1_2/js/search.js @ 903

Revision 903, 23.8 KB checked in by niltonneto, 15 years ago (diff)

Importacao inicial do Expresso do Serpro

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